react / wstein / node_modules / jest-cli / node_modules / jsdom / node_modules / cssom / lib / clone.js
81143 views//.CommonJS1var CSSOM = {2CSSStyleSheet: require("./CSSStyleSheet").CSSStyleSheet,3CSSStyleRule: require("./CSSStyleRule").CSSStyleRule,4CSSMediaRule: require("./CSSMediaRule").CSSMediaRule,5CSSStyleDeclaration: require("./CSSStyleDeclaration").CSSStyleDeclaration,6CSSKeyframeRule: require('./CSSKeyframeRule').CSSKeyframeRule,7CSSKeyframesRule: require('./CSSKeyframesRule').CSSKeyframesRule8};9///CommonJS101112/**13* Produces a deep copy of stylesheet — the instance variables of stylesheet are copied recursively.14* @param {CSSStyleSheet|CSSOM.CSSStyleSheet} stylesheet15* @nosideeffects16* @return {CSSOM.CSSStyleSheet}17*/18CSSOM.clone = function clone(stylesheet) {1920var cloned = new CSSOM.CSSStyleSheet;2122var rules = stylesheet.cssRules;23if (!rules) {24return cloned;25}2627var RULE_TYPES = {281: CSSOM.CSSStyleRule,294: CSSOM.CSSMediaRule,30//3: CSSOM.CSSImportRule,31//5: CSSOM.CSSFontFaceRule,32//6: CSSOM.CSSPageRule,338: CSSOM.CSSKeyframesRule,349: CSSOM.CSSKeyframeRule35};3637for (var i=0, rulesLength=rules.length; i < rulesLength; i++) {38var rule = rules[i];39var ruleClone = cloned.cssRules[i] = new RULE_TYPES[rule.type];4041var style = rule.style;42if (style) {43var styleClone = ruleClone.style = new CSSOM.CSSStyleDeclaration;44for (var j=0, styleLength=style.length; j < styleLength; j++) {45var name = styleClone[j] = style[j];46styleClone[name] = style[name];47styleClone._importants[name] = style.getPropertyPriority(name);48}49styleClone.length = style.length;50}5152if (rule.hasOwnProperty('keyText')) {53ruleClone.keyText = rule.keyText;54}5556if (rule.hasOwnProperty('selectorText')) {57ruleClone.selectorText = rule.selectorText;58}5960if (rule.hasOwnProperty('mediaText')) {61ruleClone.mediaText = rule.mediaText;62}6364if (rule.hasOwnProperty('cssRules')) {65ruleClone.cssRules = clone(rule).cssRules;66}67}6869return cloned;7071};7273//.CommonJS74exports.clone = CSSOM.clone;75///CommonJS767778