| 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>
|
|
|