summaryrefslogtreecommitdiff
path: root/school/node_modules/cssom/lib/clone.js
diff options
context:
space:
mode:
Diffstat (limited to 'school/node_modules/cssom/lib/clone.js')
-rw-r--r--school/node_modules/cssom/lib/clone.js71
1 files changed, 71 insertions, 0 deletions
diff --git a/school/node_modules/cssom/lib/clone.js b/school/node_modules/cssom/lib/clone.js
new file mode 100644
index 0000000..c6867f2
--- /dev/null
+++ b/school/node_modules/cssom/lib/clone.js
@@ -0,0 +1,71 @@
+//.CommonJS
+var CSSOM = {
+ CSSStyleSheet: require("./CSSStyleSheet").CSSStyleSheet,
+ CSSStyleRule: require("./CSSStyleRule").CSSStyleRule,
+ CSSMediaRule: require("./CSSMediaRule").CSSMediaRule,
+ CSSSupportsRule: require("./CSSSupportsRule").CSSSupportsRule,
+ 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;
+ }
+
+ for (var i = 0, rulesLength = rules.length; i < rulesLength; i++) {
+ var rule = rules[i];
+ var ruleClone = cloned.cssRules[i] = new rule.constructor();
+
+ 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('conditionText')) {
+ ruleClone.conditionText = rule.conditionText;
+ }
+
+ if (rule.hasOwnProperty('cssRules')) {
+ ruleClone.cssRules = clone(rule).cssRules;
+ }
+ }
+
+ return cloned;
+
+};
+
+//.CommonJS
+exports.clone = CSSOM.clone;
+///CommonJS