five-bells-visualization
Version:
Tool to visualize Five Bells payments
77 lines (67 loc) • 2.32 kB
HTML
<!--
@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>