aboutsummaryrefslogtreecommitdiffstats
path: root/vanilla/node_modules/@acemir/cssom/lib/CSSCounterStyleRule.js
diff options
context:
space:
mode:
Diffstat (limited to 'vanilla/node_modules/@acemir/cssom/lib/CSSCounterStyleRule.js')
-rw-r--r--vanilla/node_modules/@acemir/cssom/lib/CSSCounterStyleRule.js57
1 files changed, 57 insertions, 0 deletions
diff --git a/vanilla/node_modules/@acemir/cssom/lib/CSSCounterStyleRule.js b/vanilla/node_modules/@acemir/cssom/lib/CSSCounterStyleRule.js
new file mode 100644
index 0000000..44c4330
--- /dev/null
+++ b/vanilla/node_modules/@acemir/cssom/lib/CSSCounterStyleRule.js
@@ -0,0 +1,57 @@
+//.CommonJS
+var CSSOM = {
+ CSSRule: require("./CSSRule").CSSRule
+};
+///CommonJS
+
+
+/**
+ * @constructor
+ * @see https://drafts.csswg.org/css-counter-styles/#the-csscounterstylerule-interface
+ */
+CSSOM.CSSCounterStyleRule = function CSSCounterStyleRule() {
+ CSSOM.CSSRule.call(this);
+ this.name = "";
+ this.__props = "";
+};
+
+CSSOM.CSSCounterStyleRule.prototype = Object.create(CSSOM.CSSRule.prototype);
+CSSOM.CSSCounterStyleRule.prototype.constructor = CSSOM.CSSCounterStyleRule;
+
+Object.setPrototypeOf(CSSOM.CSSCounterStyleRule, CSSOM.CSSRule);
+
+Object.defineProperty(CSSOM.CSSCounterStyleRule.prototype, "type", {
+ value: 11,
+ writable: false
+});
+
+Object.defineProperty(CSSOM.CSSCounterStyleRule.prototype, "cssText", {
+ get: function() {
+ // FIXME : Implement real cssText generation based on properties
+ return "@counter-style " + this.name + " { " + this.__props + " }";
+ }
+});
+
+/**
+ * NON-STANDARD
+ * Rule text parser.
+ * @param {string} cssText
+ */
+Object.defineProperty(CSSOM.CSSCounterStyleRule.prototype, "parse", {
+ value: function(cssText) {
+ // Extract the name from "@counter-style <name> { ... }"
+ var match = cssText.match(/@counter-style\s+([^\s{]+)\s*\{([^]*)\}/);
+ if (match) {
+ this.name = match[1];
+ // Get the text inside the brackets and clean it up
+ var propsText = match[2];
+ this.__props = propsText.trim().replace(/\n/g, " ").replace(/(['"])(?:\\.|[^\\])*?\1|(\s{2,})/g, function (match, quote) {
+ return quote ? match : ' ';
+ });
+ }
+ }
+});
+
+//.CommonJS
+exports.CSSCounterStyleRule = CSSOM.CSSCounterStyleRule;
+///CommonJS