Index: node_modules/vulcanize/node_modules/cssom/lib/clone.js |
diff --git a/node_modules/vulcanize/node_modules/cssom/lib/clone.js b/node_modules/vulcanize/node_modules/cssom/lib/clone.js |
new file mode 100644 |
index 0000000000000000000000000000000000000000..1d81f10133326985345885ce5390b8d2f6a214ba |
--- /dev/null |
+++ b/node_modules/vulcanize/node_modules/cssom/lib/clone.js |
@@ -0,0 +1,76 @@ |
+//.CommonJS |
+var CSSOM = { |
+ CSSStyleSheet: require("./CSSStyleSheet").CSSStyleSheet, |
+ CSSStyleRule: require("./CSSStyleRule").CSSStyleRule, |
+ CSSMediaRule: require("./CSSMediaRule").CSSMediaRule, |
+ CSSStyleDeclaration: require("./CSSStyleDeclaration").CSSStyleDeclaration, |
+ CSSKeyframeRule: require('./CSSKeyframeRule').CSSKeyframeRule, |
+ CSSKeyframesRule: require('./CSSKeyframesRule').CSSKeyframesRule |
+}; |
+///CommonJS |
+ |
+ |
+/** |
+ * Produces a deep copy of stylesheet — the instance variables of stylesheet are copied recursively. |
+ * @param {CSSStyleSheet|CSSOM.CSSStyleSheet} stylesheet |
+ * @nosideeffects |
+ * @return {CSSOM.CSSStyleSheet} |
+ */ |
+CSSOM.clone = function clone(stylesheet) { |
+ |
+ var cloned = new CSSOM.CSSStyleSheet; |
+ |
+ var rules = stylesheet.cssRules; |
+ if (!rules) { |
+ return cloned; |
+ } |
+ |
+ var RULE_TYPES = { |
+ 1: CSSOM.CSSStyleRule, |
+ 4: CSSOM.CSSMediaRule, |
+ //3: CSSOM.CSSImportRule, |
+ //5: CSSOM.CSSFontFaceRule, |
+ //6: CSSOM.CSSPageRule, |
+ 8: CSSOM.CSSKeyframesRule, |
+ 9: CSSOM.CSSKeyframeRule |
+ }; |
+ |
+ for (var i=0, rulesLength=rules.length; i < rulesLength; i++) { |
+ var rule = rules[i]; |
+ var ruleClone = cloned.cssRules[i] = new RULE_TYPES[rule.type]; |
+ |
+ var style = rule.style; |
+ if (style) { |
+ var styleClone = ruleClone.style = new CSSOM.CSSStyleDeclaration; |
+ for (var j=0, styleLength=style.length; j < styleLength; j++) { |
+ var name = styleClone[j] = style[j]; |
+ styleClone[name] = style[name]; |
+ styleClone._importants[name] = style.getPropertyPriority(name); |
+ } |
+ styleClone.length = style.length; |
+ } |
+ |
+ if (rule.hasOwnProperty('keyText')) { |
+ ruleClone.keyText = rule.keyText; |
+ } |
+ |
+ if (rule.hasOwnProperty('selectorText')) { |
+ ruleClone.selectorText = rule.selectorText; |
+ } |
+ |
+ if (rule.hasOwnProperty('mediaText')) { |
+ ruleClone.mediaText = rule.mediaText; |
+ } |
+ |
+ if (rule.hasOwnProperty('cssRules')) { |
+ ruleClone.cssRules = clone(rule).cssRules; |
+ } |
+ } |
+ |
+ return cloned; |
+ |
+}; |
+ |
+//.CommonJS |
+exports.clone = CSSOM.clone; |
+///CommonJS |