diff options
Diffstat (limited to 'catapult/third_party/polymer/components/shadycss/src/common-utils.js')
-rw-r--r-- | catapult/third_party/polymer/components/shadycss/src/common-utils.js | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/catapult/third_party/polymer/components/shadycss/src/common-utils.js b/catapult/third_party/polymer/components/shadycss/src/common-utils.js new file mode 100644 index 00000000..863250be --- /dev/null +++ b/catapult/third_party/polymer/components/shadycss/src/common-utils.js @@ -0,0 +1,59 @@ +/** +@license +Copyright (c) 2017 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 +*/ + +'use strict'; + +import { MIXIN_MATCH, VAR_ASSIGN } from './common-regex.js'; + +/** + * @param {Element} element + * @param {Object=} properties + */ +export function updateNativeProperties(element, properties) { + // remove previous properties + for (let p in properties) { + // NOTE: for bc with shim, don't apply null values. + if (p === null) { + element.style.removeProperty(p); + } else { + element.style.setProperty(p, properties[p]); + } + } +} + +/** + * @param {Element} element + * @param {string} property + * @return {string} + */ +export function getComputedStyleValue(element, property) { + /** + * @const {string} + */ + const value = window.getComputedStyle(element).getPropertyValue(property); + if (!value) { + return ''; + } else { + return value.trim(); + } +} + +/** + * return true if `cssText` contains a mixin definition or consumption + * @param {string} cssText + * @return {boolean} + */ +export function detectMixin(cssText) { + const has = MIXIN_MATCH.test(cssText) || VAR_ASSIGN.test(cssText); + // reset state of the regexes + MIXIN_MATCH.lastIndex = 0; + VAR_ASSIGN.lastIndex = 0; + return has; +} |