Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1)

Unified Diff: node_modules/vulcanize/node_modules/cssom/lib/clone.js

Issue 800513006: Added vulcanize under third_party/npm_modules (Closed) Base URL: https://chromium.googlesource.com/infra/third_party/npm_modules.git@master
Patch Set: Created 6 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
« no previous file with comments | « node_modules/vulcanize/node_modules/cssom/lib/StyleSheet.js ('k') | node_modules/vulcanize/node_modules/cssom/lib/index.js » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698