diff options
Diffstat (limited to 'catapult/third_party/polymer/components/shadycss/src/style-info.js')
-rw-r--r-- | catapult/third_party/polymer/components/shadycss/src/style-info.js | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/catapult/third_party/polymer/components/shadycss/src/style-info.js b/catapult/third_party/polymer/components/shadycss/src/style-info.js new file mode 100644 index 00000000..fd5b14b2 --- /dev/null +++ b/catapult/third_party/polymer/components/shadycss/src/style-info.js @@ -0,0 +1,75 @@ +/** +@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 {StyleNode} from './css-parse.js'; // eslint-disable-line no-unused-vars + +/** @const {string} */ +const infoKey = '__styleInfo'; + +export default class StyleInfo { + /** + * @param {Element} node + * @return {StyleInfo} + */ + static get(node) { + if (node) { + return node[infoKey]; + } else { + return null; + } + } + /** + * @param {!Element} node + * @param {StyleInfo} styleInfo + * @return {StyleInfo} + */ + static set(node, styleInfo) { + node[infoKey] = styleInfo; + return styleInfo; + } + /** + * @param {StyleNode} ast + * @param {Node=} placeholder + * @param {Array<string>=} ownStylePropertyNames + * @param {string=} elementName + * @param {string=} typeExtension + * @param {string=} cssBuild + */ + constructor(ast, placeholder, ownStylePropertyNames, elementName, typeExtension, cssBuild) { + /** @type {StyleNode} */ + this.styleRules = ast || null; + /** @type {Node} */ + this.placeholder = placeholder || null; + /** @type {!Array<string>} */ + this.ownStylePropertyNames = ownStylePropertyNames || []; + /** @type {Array<Object>} */ + this.overrideStyleProperties = null; + /** @type {string} */ + this.elementName = elementName || ''; + /** @type {string} */ + this.cssBuild = cssBuild || ''; + /** @type {string} */ + this.typeExtension = typeExtension || ''; + /** @type {Object<string, string>} */ + this.styleProperties = null; + /** @type {?string} */ + this.scopeSelector = null; + /** @type {HTMLStyleElement} */ + this.customStyle = null; + } + _getStyleRules() { + return this.styleRules; + } +} + +/* eslint-disable-next-line no-self-assign */ +StyleInfo.prototype['_getStyleRules'] = StyleInfo.prototype._getStyleRules; |