| Index: node_modules/vulcanize/node_modules/cssom/lib/CSSStyleRule.js
|
| diff --git a/node_modules/vulcanize/node_modules/cssom/lib/CSSStyleRule.js b/node_modules/vulcanize/node_modules/cssom/lib/CSSStyleRule.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..4224397eb42ec2594d50d9158d51e943c8601879
|
| --- /dev/null
|
| +++ b/node_modules/vulcanize/node_modules/cssom/lib/CSSStyleRule.js
|
| @@ -0,0 +1,189 @@
|
| +//.CommonJS
|
| +var CSSOM = {
|
| + CSSStyleDeclaration: require("./CSSStyleDeclaration").CSSStyleDeclaration,
|
| + CSSRule: require("./CSSRule").CSSRule
|
| +};
|
| +///CommonJS
|
| +
|
| +
|
| +/**
|
| + * @constructor
|
| + * @see http://dev.w3.org/csswg/cssom/#cssstylerule
|
| + * @see http://www.w3.org/TR/DOM-Level-2-Style/css.html#CSS-CSSStyleRule
|
| + */
|
| +CSSOM.CSSStyleRule = function CSSStyleRule() {
|
| + CSSOM.CSSRule.call(this);
|
| + this.selectorText = "";
|
| + this.style = new CSSOM.CSSStyleDeclaration;
|
| + this.style.parentRule = this;
|
| +};
|
| +
|
| +CSSOM.CSSStyleRule.prototype = new CSSOM.CSSRule;
|
| +CSSOM.CSSStyleRule.prototype.constructor = CSSOM.CSSStyleRule;
|
| +CSSOM.CSSStyleRule.prototype.type = 1;
|
| +
|
| +CSSOM.CSSStyleRule.prototype.__defineGetter__("cssText", function() {
|
| + var text;
|
| + if (this.selectorText) {
|
| + text = this.selectorText + " {" + this.style.cssText + "}";
|
| + } else {
|
| + text = "";
|
| + }
|
| + return text;
|
| +});
|
| +
|
| +CSSOM.CSSStyleRule.prototype.__defineSetter__("cssText", function(cssText) {
|
| + var rule = CSSOM.CSSStyleRule.parse(cssText);
|
| + this.style = rule.style;
|
| + this.selectorText = rule.selectorText;
|
| +});
|
| +
|
| +
|
| +/**
|
| + * NON-STANDARD
|
| + * lightweight version of parse.js.
|
| + * @param {string} ruleText
|
| + * @return CSSStyleRule
|
| + */
|
| +CSSOM.CSSStyleRule.parse = function(ruleText) {
|
| + var i = 0;
|
| + var state = "selector";
|
| + var index;
|
| + var j = i;
|
| + var buffer = "";
|
| +
|
| + var SIGNIFICANT_WHITESPACE = {
|
| + "selector": true,
|
| + "value": true
|
| + };
|
| +
|
| + var styleRule = new CSSOM.CSSStyleRule;
|
| + var selector, name, value, priority="";
|
| +
|
| + for (var character; character = ruleText.charAt(i); i++) {
|
| +
|
| + switch (character) {
|
| +
|
| + case " ":
|
| + case "\t":
|
| + case "\r":
|
| + case "\n":
|
| + case "\f":
|
| + if (SIGNIFICANT_WHITESPACE[state]) {
|
| + // Squash 2 or more white-spaces in the row into 1
|
| + switch (ruleText.charAt(i - 1)) {
|
| + case " ":
|
| + case "\t":
|
| + case "\r":
|
| + case "\n":
|
| + case "\f":
|
| + break;
|
| + default:
|
| + buffer += " ";
|
| + break;
|
| + }
|
| + }
|
| + break;
|
| +
|
| + // String
|
| + case '"':
|
| + j = i + 1;
|
| + index = ruleText.indexOf('"', j) + 1;
|
| + if (!index) {
|
| + throw '" is missing';
|
| + }
|
| + buffer += ruleText.slice(i, index);
|
| + i = index - 1;
|
| + break;
|
| +
|
| + case "'":
|
| + j = i + 1;
|
| + index = ruleText.indexOf("'", j) + 1;
|
| + if (!index) {
|
| + throw "' is missing";
|
| + }
|
| + buffer += ruleText.slice(i, index);
|
| + i = index - 1;
|
| + break;
|
| +
|
| + // Comment
|
| + case "/":
|
| + if (ruleText.charAt(i + 1) === "*") {
|
| + i += 2;
|
| + index = ruleText.indexOf("*/", i);
|
| + if (index === -1) {
|
| + throw new SyntaxError("Missing */");
|
| + } else {
|
| + i = index + 1;
|
| + }
|
| + } else {
|
| + buffer += character;
|
| + }
|
| + break;
|
| +
|
| + case "{":
|
| + if (state === "selector") {
|
| + styleRule.selectorText = buffer.trim();
|
| + buffer = "";
|
| + state = "name";
|
| + }
|
| + break;
|
| +
|
| + case ":":
|
| + if (state === "name") {
|
| + name = buffer.trim();
|
| + buffer = "";
|
| + state = "value";
|
| + } else {
|
| + buffer += character;
|
| + }
|
| + break;
|
| +
|
| + case "!":
|
| + if (state === "value" && ruleText.indexOf("!important", i) === i) {
|
| + priority = "important";
|
| + i += "important".length;
|
| + } else {
|
| + buffer += character;
|
| + }
|
| + break;
|
| +
|
| + case ";":
|
| + if (state === "value") {
|
| + styleRule.style.setProperty(name, buffer.trim(), priority);
|
| + priority = "";
|
| + buffer = "";
|
| + state = "name";
|
| + } else {
|
| + buffer += character;
|
| + }
|
| + break;
|
| +
|
| + case "}":
|
| + if (state === "value") {
|
| + styleRule.style.setProperty(name, buffer.trim(), priority);
|
| + priority = "";
|
| + buffer = "";
|
| + } else if (state === "name") {
|
| + break;
|
| + } else {
|
| + buffer += character;
|
| + }
|
| + state = "selector";
|
| + break;
|
| +
|
| + default:
|
| + buffer += character;
|
| + break;
|
| +
|
| + }
|
| + }
|
| +
|
| + return styleRule;
|
| +
|
| +};
|
| +
|
| +
|
| +//.CommonJS
|
| +exports.CSSStyleRule = CSSOM.CSSStyleRule;
|
| +///CommonJS
|
|
|