]> scripts.mit.edu Git - autoinstalls/mediawiki.git/blobdiff - vendor/wikimedia/css-sanitizer/src/Objects/Stylesheet.php
MediaWiki 1.30.2
[autoinstalls/mediawiki.git] / vendor / wikimedia / css-sanitizer / src / Objects / Stylesheet.php
diff --git a/vendor/wikimedia/css-sanitizer/src/Objects/Stylesheet.php b/vendor/wikimedia/css-sanitizer/src/Objects/Stylesheet.php
new file mode 100644 (file)
index 0000000..e7b048f
--- /dev/null
@@ -0,0 +1,59 @@
+<?php
+/**
+ * @file
+ * @license https://opensource.org/licenses/Apache-2.0 Apache-2.0
+ */
+
+namespace Wikimedia\CSS\Objects;
+
+use Wikimedia\CSS\Util;
+use Wikimedia\CSS\Sanitizer\Sanitizer;
+
+/**
+ * Represent a stylesheet
+ * @note This isn't necessarily a "CSS stylesheet" though.
+ * @warning If you're not using the provided Sanitizer classes to further sanitize
+ *  the CSS, you'll want to manually filter out any at-rules named "charset"
+ *  before stringifying and/or prepend `@charset "utf-8";` after stringifying
+ *  this object.
+ */
+class Stylesheet implements CSSObject {
+
+       /** @var RuleList */
+       protected $ruleList;
+
+       /**
+        * @param RuleList $rules
+        */
+       public function __construct( RuleList $rules = null ) {
+               $this->ruleList = $rules ?: new RuleList();
+       }
+
+       public function __clone() {
+               $this->ruleList = clone( $this->ruleList );
+       }
+
+       /**
+        * @return RuleList
+        */
+       public function getRuleList() {
+               return $this->ruleList;
+       }
+
+       public function getPosition() {
+               // Stylesheets don't really have a position
+               return [ 0, 0 ];
+       }
+
+       public function toTokenArray() {
+               return $this->ruleList->toTokenArray();
+       }
+
+       public function toComponentValueArray() {
+               return $this->ruleList->toComponentValueArray();
+       }
+
+       public function __toString() {
+               return Util::stringify( $this );
+       }
+}