/** @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; }