Index: third_party/polymer/v0_8/components/polymer/src/lib/style-util.html |
diff --git a/third_party/polymer/v0_8/components/polymer/src/lib/style-util.html b/third_party/polymer/v0_8/components/polymer/src/lib/style-util.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..fd550c63a03d8a1a16c084bb67745601d7407f87 |
--- /dev/null |
+++ b/third_party/polymer/v0_8/components/polymer/src/lib/style-util.html |
@@ -0,0 +1,77 @@ |
+<!-- |
+@license |
+Copyright (c) 2014 The Polymer Project Authors. All rights reserved. |
+This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt |
+The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt |
+The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt |
+Code distributed by Google as part of the polymer project is also |
+subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt |
+--> |
+ |
+<link rel="import" href="css-parse.html"> |
+ |
+<script> |
+ |
+ (function() { |
+ |
+ function toCssText(rules, callback) { |
+ if (typeof rules === 'string') { |
+ rules = Polymer.CssParse.parse(rules); |
+ } |
+ if (callback) { |
+ forEachStyleRule(rules, callback); |
+ } |
+ return Polymer.CssParse.stringify(rules); |
+ } |
+ |
+ function forEachStyleRule(node, cb) { |
+ var s = node.selector; |
+ var skipRules = false; |
+ if (s) { |
+ if ((s.indexOf(AT_RULE) !== 0) && (s.indexOf(MIXIN_SELECTOR) !== 0)) { |
+ cb(node); |
+ } |
+ skipRules = (s.indexOf(KEYFRAME_RULE) >= 0) || |
+ (s.indexOf(MIXIN_SELECTOR) >= 0); |
+ } |
+ var r$ = node.rules; |
+ if (r$ && !skipRules) { |
+ for (var i=0, l=r$.length, r; (i<l) && (r=r$[i]); i++) { |
+ forEachStyleRule(r, cb); |
+ } |
+ } |
+ } |
+ |
+ // add a string of cssText to the document. |
+ function applyCss(cssText, moniker, target, lowPriority) { |
+ var style = document.createElement('style'); |
+ if (moniker) { |
+ style.setAttribute('scope', moniker); |
+ } |
+ style.textContent = cssText; |
+ target = target || document.head; |
+ if (lowPriority) { |
+ var n$ = target.querySelectorAll('style[scope]'); |
+ var ref = n$.length ? n$[n$.length-1].nextSibling : target.firstChild; |
+ target.insertBefore(style, ref); |
+ } else { |
+ target.appendChild(style); |
+ } |
+ return style; |
+ } |
+ |
+ var AT_RULE = '@'; |
+ var KEYFRAME_RULE = 'keyframe'; |
+ var MIXIN_SELECTOR = '--'; |
+ |
+ // exports |
+ Polymer.StyleUtil = { |
+ parser: Polymer.CssParse, |
+ applyCss: applyCss, |
+ forEachStyleRule: forEachStyleRule, |
+ toCssText: toCssText |
+ }; |
+ |
+ })(); |
+ |
+</script> |