This repository has been archived by the owner on Jul 27, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 6
/
apply-shim.min.js.map
1 lines (1 loc) · 46.5 KB
/
apply-shim.min.js.map
1
{"version":3,"sources":["src/common-regex.js","src/style-settings.js","src/css-parse.js","src/style-util.js","src/apply-shim.js"],"names":["VAR_ASSIGN","MIXIN_MATCH","MEDIA_MATCH","nativeCssVariables","navigator","userAgent","match","window","CSS","supports","parseSettings$$module$$src$style_settings","parseSettings","settings","ShadyCSS","WebComponents","module$$src$style_settings.nativeCssVariables","constructor","StyleNode","parse$$module$$src$css_parse","parse","text","replace","RX$$module$$src$css_parse.comments","RX$$module$$src$css_parse.port","parseCss","root","length","n","i","l","OPEN_BRACE","p","previous","push","CLOSE_BRACE","parseCss$$module$$src$css_parse","node","t","substring","trim","ss","_expandUnicodeEscapes","RX$$module$$src$css_parse.multipleSpaces","lastIndexOf","s","indexOf","AT_START","MEDIA_START","RX$$module$$src$css_parse.keyframesRule","types$$module$$src$css_parse.KEYFRAMES_RULE","split","pop","types$$module$$src$css_parse.MEDIA_RULE","VAR_START","types$$module$$src$css_parse.STYLE_RULE","types$$module$$src$css_parse.MIXIN_RULE","r$","r","_expandUnicodeEscapes$$module$$src$css_parse","code","repeat","stringify$$module$$src$css_parse","stringify","preserveProperties","cssText","rules","RX$$module$$src$css_parse.customProp","RX$$module$$src$css_parse.mixinProp","RX$$module$$src$css_parse.mixinApply","RX$$module$$src$css_parse.varApply","STYLE_RULE","KEYFRAMES_RULE","MEDIA_RULE","MIXIN_RULE","comments","port","customProp","mixinProp","mixinApply","varApply","keyframesRule","multipleSpaces","toCssText$$module$$src$style_util","toCssText","rulesForStyle$$module$$src$style_util","rulesForStyle","style","textContent","forEachRule$$module$$src$style_util","forEachRule","styleRuleCallback","keyframesRuleCallback","onlyActiveRules","skipRules","type","matchMedia","matches","processVariableAndFallback$$module$$src$style_util","processVariableAndFallback","str","callback","start","end","level","inner","prefix","suffix","comma","value","fallback","APPLY_NAME_CLEAN","INITIAL_INHERIT","MixinMap","_map","set","name","props","properties","dependants","get","invalidCallback","ApplyShim","_measureElement","_currentElement","detectMixin","has","test","lastIndex","transformTemplate","template","elementName","content","querySelector","ast","transformStyle","transformRules","transformCustomStyle","rule","transformRule","transformCssText","matchText","propertyName","valueProperty","valueMixin","_produceCssProperties","_consumeCssProperties","m","exec","mixinName","idx","index","textBeforeApply","slice","textAfterApply","defaults","_cssTextToMap","f","parts","_atApplyToCssProperties","vars","mixinEntry","fallbacks","MIXIN_VAR_SEP","join","replacement","property","out","sp","_replaceInitialOrInherit","document","createElement","setAttribute","all","head","appendChild","getComputedStyle","getPropertyValue","_invalidateMixinEntry","mixinAsProperties","combinedProps","mixinValues","oldProps","Object","assign","create","v","needToInvalidate","undefined","prototype","defineProperty","cb"],"mappings":"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","file":"apply-shim.min.js","sourcesContent":["/**\n@license\nCopyright (c) 2016 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\nThe complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\nThe complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\nCode distributed by Google as part of the polymer project is also\nsubject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n*/\n\nexport const VAR_ASSIGN = /(?:^|[;\\s{]\\s*)(--[\\w-]*?)\\s*:\\s*(?:([^;{]*)|{([^}]*)})(?:(?=[;\\s}])|$)/gi;\nexport const MIXIN_MATCH = /(?:^|\\W+)@apply\\s*\\(?([^);\\n]*)\\)?/gi;\nexport const VAR_CONSUMED = /(--[\\w-]+)\\s*([:,;)]|$)/gi;\nexport const ANIMATION_MATCH = /(animation\\s*:)|(animation-name\\s*:)/;\nexport const MEDIA_MATCH = /@media[^(]*(\\([^)]*\\))/;\nexport const IS_VAR = /^--/;\nexport const BRACKETED = /\\{[^}]*\\}/g;\nexport const HOST_PREFIX = '(?:^|[^.#[:])';\nexport const HOST_SUFFIX = '($|[.:[\\\\s>+~])';","/**\n@license\nCopyright (c) 2016 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\nThe complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\nThe complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\nCode distributed by Google as part of the polymer project is also\nsubject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n*/\n\n'use strict';\n\nexport let nativeShadow = !(window['ShadyDOM'] && window['ShadyDOM']['inUse']);\n// chrome 49 has semi-working css vars, check if box-shadow works\n// safari 9.1 has a recalc bug: https://bugs.webkit.org/show_bug.cgi?id=155782\nexport let nativeCssVariables = (!navigator.userAgent.match('AppleWebKit/601') &&\nwindow.CSS && CSS.supports && CSS.supports('box-shadow', '0 0 0 var(--foo)'));\n\n/**\n * @param {?Object} settings\n */\nfunction parseSettings(settings) {\n if (settings) {\n nativeCssVariables = nativeCssVariables && !settings['shimcssproperties'];\n nativeShadow = nativeShadow && !settings['shimshadow'];\n }\n}\n\nif (window.ShadyCSS) {\n parseSettings(window['ShadyCSS']);\n} else if (window.WebComponents) {\n parseSettings(window['WebComponents']['flags']);\n}\n","/**\n@license\nCopyright (c) 2016 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\nThe complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\nThe complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\nCode distributed by Google as part of the polymer project is also\nsubject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n*/\n\n/*\nExtremely simple css parser. Intended to be not more than what we need\nand definitely not necessarily correct =).\n*/\n\n'use strict';\n\n/** @unrestricted */\nclass StyleNode {\n constructor() {\n /** @type {number} */\n this['start'] = 0;\n /** @type {number} */\n this['end'] = 0;\n /** @type {StyleNode} */\n this['previous'] = null;\n /** @type {StyleNode} */\n this['parent'] = null;\n /** @type {Array<StyleNode>} */\n this['rules'] = null;\n /** @type {string} */\n this['parsedCssText'] = '';\n /** @type {string} */\n this['cssText'] = '';\n /** @type {boolean} */\n this['atRule'] = false;\n /** @type {number} */\n this['type'] = 0;\n /** @type {string} */\n this['keyframesName'] = '';\n /** @type {string} */\n this['selector'] = '';\n /** @type {string} */\n this['parsedSelector'] = '';\n }\n}\n\nexport {StyleNode}\n\n// given a string of css, return a simple rule tree\n/**\n * @param {string} text\n * @return {StyleNode}\n */\nexport function parse(text) {\n text = clean(text);\n return parseCss(lex(text), text);\n}\n\n// remove stuff we don't care about that may hinder parsing\n/**\n * @param {string} cssText\n * @return {string}\n */\nfunction clean(cssText) {\n return cssText.replace(RX.comments, '').replace(RX.port, '');\n}\n\n// super simple {...} lexer that returns a node tree\n/**\n * @param {string} text\n * @return {StyleNode}\n */\nfunction lex(text) {\n let root = new StyleNode();\n root['start'] = 0;\n root['end'] = text.length\n let n = root;\n for (let i = 0, l = text.length; i < l; i++) {\n if (text[i] === OPEN_BRACE) {\n if (!n['rules']) {\n n['rules'] = [];\n }\n let p = n;\n let previous = p['rules'][p['rules'].length - 1] || null;\n n = new StyleNode();\n n['start'] = i + 1;\n n['parent'] = p;\n n['previous'] = previous;\n p['rules'].push(n);\n } else if (text[i] === CLOSE_BRACE) {\n n['end'] = i + 1;\n n = n['parent'] || root;\n }\n }\n return root;\n}\n\n// add selectors/cssText to node tree\n/**\n * @param {StyleNode} node\n * @param {string} text\n * @return {StyleNode}\n */\nfunction parseCss(node, text) {\n let t = text.substring(node['start'], node['end'] - 1);\n node['parsedCssText'] = node['cssText'] = t.trim();\n if (node['parent']) {\n let ss = node['previous'] ? node['previous']['end'] : node['parent']['start'];\n t = text.substring(ss, node['start'] - 1);\n t = _expandUnicodeEscapes(t);\n t = t.replace(RX.multipleSpaces, ' ');\n // TODO(sorvell): ad hoc; make selector include only after last ;\n // helps with mixin syntax\n t = t.substring(t.lastIndexOf(';') + 1);\n let s = node['parsedSelector'] = node['selector'] = t.trim();\n node['atRule'] = (s.indexOf(AT_START) === 0);\n // note, support a subset of rule types...\n if (node['atRule']) {\n if (s.indexOf(MEDIA_START) === 0) {\n node['type'] = types.MEDIA_RULE;\n } else if (s.match(RX.keyframesRule)) {\n node['type'] = types.KEYFRAMES_RULE;\n node['keyframesName'] =\n node['selector'].split(RX.multipleSpaces).pop();\n }\n } else {\n if (s.indexOf(VAR_START) === 0) {\n node['type'] = types.MIXIN_RULE;\n } else {\n node['type'] = types.STYLE_RULE;\n }\n }\n }\n let r$ = node['rules'];\n if (r$) {\n for (let i = 0, l = r$.length, r;\n (i < l) && (r = r$[i]); i++) {\n parseCss(r, text);\n }\n }\n return node;\n}\n\n/**\n * conversion of sort unicode escapes with spaces like `\\33 ` (and longer) into\n * expanded form that doesn't require trailing space `\\000033`\n * @param {string} s\n * @return {string}\n */\nfunction _expandUnicodeEscapes(s) {\n return s.replace(/\\\\([0-9a-f]{1,6})\\s/gi, function() {\n let code = arguments[1],\n repeat = 6 - code.length;\n while (repeat--) {\n code = '0' + code;\n }\n return '\\\\' + code;\n });\n}\n\n/**\n * stringify parsed css.\n * @param {StyleNode} node\n * @param {boolean=} preserveProperties\n * @param {string=} text\n * @return {string}\n */\nexport function stringify(node, preserveProperties, text = '') {\n // calc rule cssText\n let cssText = '';\n if (node['cssText'] || node['rules']) {\n let r$ = node['rules'];\n if (r$ && !_hasMixinRules(r$)) {\n for (let i = 0, l = r$.length, r;\n (i < l) && (r = r$[i]); i++) {\n cssText = stringify(r, preserveProperties, cssText);\n }\n } else {\n cssText = preserveProperties ? node['cssText'] :\n removeCustomProps(node['cssText']);\n cssText = cssText.trim();\n if (cssText) {\n cssText = ' ' + cssText + '\\n';\n }\n }\n }\n // emit rule if there is cssText\n if (cssText) {\n if (node['selector']) {\n text += node['selector'] + ' ' + OPEN_BRACE + '\\n';\n }\n text += cssText;\n if (node['selector']) {\n text += CLOSE_BRACE + '\\n\\n';\n }\n }\n return text;\n}\n\n/**\n * @param {Array<StyleNode>} rules\n * @return {boolean}\n */\nfunction _hasMixinRules(rules) {\n let r = rules[0];\n return Boolean(r) && Boolean(r['selector']) && r['selector'].indexOf(VAR_START) === 0;\n}\n\n/**\n * @param {string} cssText\n * @return {string}\n */\nfunction removeCustomProps(cssText) {\n cssText = removeCustomPropAssignment(cssText);\n return removeCustomPropApply(cssText);\n}\n\n/**\n * @param {string} cssText\n * @return {string}\n */\nexport function removeCustomPropAssignment(cssText) {\n return cssText\n .replace(RX.customProp, '')\n .replace(RX.mixinProp, '');\n}\n\n/**\n * @param {string} cssText\n * @return {string}\n */\nfunction removeCustomPropApply(cssText) {\n return cssText\n .replace(RX.mixinApply, '')\n .replace(RX.varApply, '');\n}\n\n/** @enum {number} */\nexport const types = {\n STYLE_RULE: 1,\n KEYFRAMES_RULE: 7,\n MEDIA_RULE: 4,\n MIXIN_RULE: 1000\n}\n\nconst OPEN_BRACE = '{';\nconst CLOSE_BRACE = '}';\n\n// helper regexp's\nconst RX = {\n comments: /\\/\\*[^*]*\\*+([^/*][^*]*\\*+)*\\//gim,\n port: /@import[^;]*;/gim,\n customProp: /(?:^[^;\\-\\s}]+)?--[^;{}]*?:[^{};]*?(?:[;\\n]|$)/gim,\n mixinProp: /(?:^[^;\\-\\s}]+)?--[^;{}]*?:[^{};]*?{[^}]*?}(?:[;\\n]|$)?/gim,\n mixinApply: /@apply\\s*\\(?[^);]*\\)?\\s*(?:[;\\n]|$)?/gim,\n varApply: /[^;:]*?:[^;]*?var\\([^;]*\\)(?:[;\\n]|$)?/gim,\n keyframesRule: /^@[^\\s]*keyframes/,\n multipleSpaces: /\\s+/g\n}\n\nconst VAR_START = '--';\nconst MEDIA_START = '@media';\nconst AT_START = '@';\n","/**\n@license\nCopyright (c) 2016 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\nThe complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\nThe complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\nCode distributed by Google as part of the polymer project is also\nsubject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n*/\n\n'use strict';\n\nimport {nativeShadow, nativeCssVariables} from './style-settings'\nimport {parse, stringify, types, StyleNode} from './css-parse'\nimport {MEDIA_MATCH} from './common-regex';\n\n/**\n * @param {string|StyleNode} rules\n * @param {function(StyleNode)=} callback\n */\nexport function toCssText (rules, callback) {\n if (typeof rules === 'string') {\n rules = parse(rules);\n }\n if (callback) {\n forEachRule(rules, callback);\n }\n return stringify(rules, nativeCssVariables);\n}\n\n/**\n * @param {HTMLStyleElement} style\n * @return {StyleNode}\n */\nexport function rulesForStyle(style) {\n if (!style['__cssRules'] && style.textContent) {\n style['__cssRules'] = parse(style.textContent);\n }\n return style['__cssRules'];\n}\n\n// Tests if a rule is a keyframes selector, which looks almost exactly\n// like a normal selector but is not (it has nothing to do with scoping\n// for example).\n/**\n * @param {StyleNode} rule\n * @return {boolean}\n */\nexport function isKeyframesSelector(rule) {\n return Boolean(rule['parent']) &&\n rule['parent']['type'] === types.KEYFRAMES_RULE;\n}\n\n/**\n * @param {StyleNode} node\n * @param {Function=} styleRuleCallback\n * @param {Function=} keyframesRuleCallback\n * @param {boolean=} onlyActiveRules\n */\nexport function forEachRule(node, styleRuleCallback, keyframesRuleCallback, onlyActiveRules) {\n if (!node) {\n return;\n }\n let skipRules = false;\n let type = node['type'];\n if (onlyActiveRules) {\n if (type === types.MEDIA_RULE) {\n let matchMedia = node['selector'].match(MEDIA_MATCH);\n if (matchMedia) {\n // if rule is a non matching @media rule, skip subrules\n if (!window.matchMedia(matchMedia[1]).matches) {\n skipRules = true;\n }\n }\n }\n }\n if (type === types.STYLE_RULE) {\n styleRuleCallback(node);\n } else if (keyframesRuleCallback &&\n type === types.KEYFRAMES_RULE) {\n keyframesRuleCallback(node);\n } else if (type === types.MIXIN_RULE) {\n skipRules = true;\n }\n let r$ = node['rules'];\n if (r$ && !skipRules) {\n for (let i=0, l=r$.length, r; (i<l) && (r=r$[i]); i++) {\n forEachRule(r, styleRuleCallback, keyframesRuleCallback, onlyActiveRules);\n }\n }\n}\n\n// add a string of cssText to the document.\n/**\n * @param {string} cssText\n * @param {string} moniker\n * @param {Node} target\n * @param {Node} contextNode\n * @return {HTMLStyleElement}\n */\nexport function applyCss(cssText, moniker, target, contextNode) {\n let style = createScopeStyle(cssText, moniker);\n return applyStyle(style, target, contextNode);\n}\n\n/**\n * @param {Node} style\n * @param {?Node} target\n * @param {?Node} contextNode\n * @return {HTMLStyleElement}\n */\nexport function applyStyle(style, target, contextNode) {\n target = target || document.head;\n let after = (contextNode && contextNode.nextSibling) ||\n target.firstChild;\n lastHeadApplyNode = style;\n return /** @type {HTMLStyleElement} */(target.insertBefore(style, after));\n}\n\n/**\n * @param {string} cssText\n * @param {string} moniker\n * @return {Element}\n */\nexport function createScopeStyle(cssText, moniker) {\n let style = document.createElement('style');\n if (moniker) {\n style.setAttribute('scope', moniker);\n }\n style.textContent = cssText;\n return style;\n}\n\n/** @type {Node} */\nlet lastHeadApplyNode = null;\n\n// insert a comment node as a styling position placeholder.\n/**\n * @param {string} moniker\n * @return {Node}\n */\nexport function applyStylePlaceHolder(moniker) {\n let placeHolder = document.createComment(' Shady DOM styles for ' +\n moniker + ' ');\n let after = lastHeadApplyNode ?\n lastHeadApplyNode['nextSibling'] : null;\n let scope = document.head;\n scope.insertBefore(placeHolder, after || scope.firstChild);\n lastHeadApplyNode = placeHolder;\n return placeHolder;\n}\n\n/**\n * @param {string} buildType\n * @return {boolean}\n */\nexport function isTargetedBuild(buildType) {\n return nativeShadow ? buildType === 'shadow' : buildType === 'shady';\n}\n\n/**\n * @param {Element} element\n * @return {?string}\n */\nexport function getCssBuildType(element) {\n return element.getAttribute('css-build');\n}\n\n/**\n * Walk from text[start] matching parens and\n * returns position of the outer end paren\n * @param {string} text\n * @param {number} start\n * @return {number}\n */\nfunction findMatchingParen(text, start) {\n let level = 0;\n for (let i=start, l=text.length; i < l; i++) {\n if (text[i] === '(') {\n level++;\n } else if (text[i] === ')') {\n if (--level === 0) {\n return i;\n }\n }\n }\n return -1;\n}\n\n/**\n * @param {string} str\n * @param {function(string, string, string, string)} callback\n */\nexport function processVariableAndFallback(str, callback) {\n // find 'var('\n let start = str.indexOf('var(');\n if (start === -1) {\n // no var?, everything is prefix\n return callback(str, '', '', '');\n }\n //${prefix}var(${inner})${suffix}\n let end = findMatchingParen(str, start + 3);\n let inner = str.substring(start + 4, end);\n let prefix = str.substring(0, start);\n // suffix may have other variables\n let suffix = processVariableAndFallback(str.substring(end + 1), callback);\n let comma = inner.indexOf(',');\n // value and fallback args should be trimmed to match in property lookup\n if (comma === -1) {\n // variable, no fallback\n return callback(prefix, inner.trim(), '', suffix);\n }\n // var(${value},${fallback})\n let value = inner.substring(0, comma).trim();\n let fallback = inner.substring(comma + 1).trim();\n return callback(prefix, value, fallback, suffix);\n}\n\n/**\n * @param {Element} element\n * @param {string} value\n */\nexport function setElementClassRaw(element, value) {\n // use native setAttribute provided by ShadyDOM when setAttribute is patched\n if (window['ShadyDOM']) {\n window['ShadyDOM']['nativeMethods']['setAttribute'].call(element, 'class', value);\n } else {\n element.setAttribute('class', value);\n }\n}\n\n/**\n * @param {Element|Object} element\n * @return {{is: string, extends: string}}\n */\nexport function getIsExtends(element) {\n let is = element.is || (element.getAttribute && element.getAttribute('is')) || element.localName;\n let extendz = element.extends || element.localName !== is ? element.localName : '';\n return {is, extends: extendz};\n}","/**\n@license\nCopyright (c) 2016 The Polymer Project Authors. All rights reserved.\nThis code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\nThe complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\nThe complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\nCode distributed by Google as part of the polymer project is also\nsubject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n*/\n/*\n * The apply shim simulates the behavior of `@apply` proposed at\n * https://tabatkins.github.io/specs/css-apply-rule/.\n * The approach is to convert a property like this:\n *\n * --foo: {color: red; background: blue;}\n *\n * to this:\n *\n * --foo_-_color: red;\n * --foo_-_background: blue;\n *\n * Then where `@apply --foo` is used, that is converted to:\n *\n * color: var(--foo_-_color);\n * background: var(--foo_-_background);\n *\n * This approach generally works but there are some issues and limitations.\n * Consider, for example, that somewhere *between* where `--foo` is set and used,\n * another element sets it to:\n *\n * --foo: { border: 2px solid red; }\n *\n * We must now ensure that the color and background from the previous setting\n * do not apply. This is accomplished by changing the property set to this:\n *\n * --foo_-_border: 2px solid red;\n * --foo_-_color: initial;\n * --foo_-_background: initial;\n *\n * This works but introduces one new issue.\n * Consider this setup at the point where the `@apply` is used:\n *\n * background: orange;\n * `@apply --foo;`\n *\n * In this case the background will be unset (initial) rather than the desired\n * `orange`. We address this by altering the property set to use a fallback\n * value like this:\n *\n * color: var(--foo_-_color);\n * background: var(--foo_-_background, orange);\n * border: var(--foo_-_border);\n *\n * Note that the default is retained in the property set and the `background` is\n * the desired `orange`. This leads us to a limitation.\n *\n * Limitation 1:\n\n * Only properties in the rule where the `@apply`\n * is used are considered as default values.\n * If another rule matches the element and sets `background` with\n * less specificity than the rule in which `@apply` appears,\n * the `background` will not be set.\n *\n * Limitation 2:\n *\n * When using Polymer's `updateStyles` api, new properties may not be set for\n * `@apply` properties.\n\n*/\n\n'use strict';\n\nimport {forEachRule, processVariableAndFallback, rulesForStyle, toCssText} from './style-util'\nimport {MIXIN_MATCH, VAR_ASSIGN} from './common-regex'\nimport {StyleNode} from './css-parse'\n\nconst APPLY_NAME_CLEAN = /;\\s*/m;\nconst INITIAL_INHERIT = /^\\s*(initial)|(inherit)\\s*$/;\n\n// separator used between mixin-name and mixin-property-name when producing properties\n// NOTE: plain '-' may cause collisions in user styles\nconst MIXIN_VAR_SEP = '_-_';\n\n/**\n * @typedef {!Object<string, string>}\n */\nlet PropertyEntry;\n\n/**\n * @typedef {!Object<string, boolean>}\n */\nlet DependantsEntry;\n\n/** @typedef {{\n * properties: PropertyEntry,\n * dependants: DependantsEntry\n * }}\n */\nlet MixinMapEntry;\n\n// map of mixin to property names\n// --foo: {border: 2px} -> {properties: {(--foo, ['border'])}, dependants: {'element-name': proto}}\nclass MixinMap {\n constructor() {\n /** @type {!Object<string, !MixinMapEntry>} */\n this._map = {};\n }\n /**\n * @param {string} name\n * @param {!PropertyEntry} props\n */\n set(name, props) {\n name = name.trim();\n this._map[name] = {\n properties: props,\n dependants: {}\n }\n }\n /**\n * @param {string} name\n * @return {MixinMapEntry}\n */\n get(name) {\n name = name.trim();\n return this._map[name] || null;\n }\n}\n\n/**\n * Callback for when an element is marked invalid\n * @type {?function(string)}\n */\nlet invalidCallback = null;\n\n/** @unrestricted */\nclass ApplyShim {\n constructor() {\n /** @type {?string} */\n this._currentElement = null;\n /** @type {HTMLMetaElement} */\n this._measureElement = null;\n this._map = new MixinMap();\n }\n /**\n * return true if `cssText` contains a mixin definition or consumption\n * @param {string} cssText\n * @return {boolean}\n */\n detectMixin(cssText) {\n const has = MIXIN_MATCH.test(cssText) || VAR_ASSIGN.test(cssText);\n // reset state of the regexes\n MIXIN_MATCH.lastIndex = 0;\n VAR_ASSIGN.lastIndex = 0;\n return has;\n }\n /**\n * @param {!HTMLTemplateElement} template\n * @param {string} elementName\n * @return {StyleNode}\n */\n transformTemplate(template, elementName) {\n const style = /** @type {HTMLStyleElement} */(template.content.querySelector('style'));\n /** @type {StyleNode} */\n let ast = null;\n if (style) {\n ast = this.transformStyle(style, elementName);\n }\n return ast;\n }\n /**\n * @param {!HTMLStyleElement} style\n * @param {string} elementName\n * @return {StyleNode}\n */\n transformStyle(style, elementName = '') {\n let ast = rulesForStyle(style);\n this.transformRules(ast, elementName);\n style.textContent = toCssText(ast);\n return ast;\n }\n /**\n * @param {!HTMLStyleElement} style\n * @return {StyleNode}\n */\n transformCustomStyle(style) {\n let ast = rulesForStyle(style);\n forEachRule(ast, (rule) => {\n if (rule['selector'] === ':root') {\n rule['selector'] = 'html';\n }\n this.transformRule(rule);\n })\n style.textContent = toCssText(ast);\n return ast;\n }\n /**\n * @param {StyleNode} rules\n * @param {string} elementName\n */\n transformRules(rules, elementName) {\n this._currentElement = elementName;\n forEachRule(rules, (r) => {\n this.transformRule(r);\n });\n this._currentElement = null;\n }\n /**\n * @param {!StyleNode} rule\n */\n transformRule(rule) {\n rule['cssText'] = this.transformCssText(rule['parsedCssText']);\n // :root was only used for variable assignment in property shim,\n // but generates invalid selectors with real properties.\n // replace with `:host > *`, which serves the same effect\n if (rule['selector'] === ':root') {\n rule['selector'] = ':host > *';\n }\n }\n /**\n * @param {string} cssText\n * @return {string}\n */\n transformCssText(cssText) {\n // produce variables\n cssText = cssText.replace(VAR_ASSIGN, (matchText, propertyName, valueProperty, valueMixin) =>\n this._produceCssProperties(matchText, propertyName, valueProperty, valueMixin));\n // consume mixins\n return this._consumeCssProperties(cssText);\n }\n /**\n * @param {string} property\n * @return {string}\n */\n _getInitialValueForProperty(property) {\n if (!this._measureElement) {\n this._measureElement = /** @type {HTMLMetaElement} */(document.createElement('meta'));\n this._measureElement.setAttribute('apply-shim-measure', '');\n this._measureElement.style.all = 'initial';\n document.head.appendChild(this._measureElement);\n }\n return window.getComputedStyle(this._measureElement).getPropertyValue(property);\n }\n /**\n * replace mixin consumption with variable consumption\n * @param {string} text\n * @return {string}\n */\n _consumeCssProperties(text) {\n /** @type {Array} */\n let m = null;\n // loop over text until all mixins with defintions have been applied\n while((m = MIXIN_MATCH.exec(text))) {\n let matchText = m[0];\n let mixinName = m[1];\n let idx = m.index;\n // collect properties before apply to be \"defaults\" if mixin might override them\n // match includes a \"prefix\", so find the start and end positions of @apply\n let applyPos = idx + matchText.indexOf('@apply');\n let afterApplyPos = idx + matchText.length;\n // find props defined before this @apply\n let textBeforeApply = text.slice(0, applyPos);\n let textAfterApply = text.slice(afterApplyPos);\n let defaults = this._cssTextToMap(textBeforeApply);\n let replacement = this._atApplyToCssProperties(mixinName, defaults);\n // use regex match position to replace mixin, keep linear processing time\n text = `${textBeforeApply}${replacement}${textAfterApply}`;\n // move regex search to _after_ replacement\n MIXIN_MATCH.lastIndex = idx + replacement.length;\n }\n return text;\n }\n /**\n * produce variable consumption at the site of mixin consumption\n * `@apply --foo;` -> for all props (${propname}: var(--foo_-_${propname}, ${fallback[propname]}}))\n * Example:\n * border: var(--foo_-_border); padding: var(--foo_-_padding, 2px)\n * @param {string} mixinName\n * @param {Object} fallbacks\n * @return {string}\n */\n _atApplyToCssProperties(mixinName, fallbacks) {\n mixinName = mixinName.replace(APPLY_NAME_CLEAN, '');\n let vars = [];\n let mixinEntry = this._map.get(mixinName);\n // if we depend on a mixin before it is created\n // make a sentinel entry in the map to add this element as a dependency for when it is defined.\n if (!mixinEntry) {\n this._map.set(mixinName, {});\n mixinEntry = this._map.get(mixinName);\n }\n if (mixinEntry) {\n if (this._currentElement) {\n mixinEntry.dependants[this._currentElement] = true;\n }\n let p, parts, f;\n for (p in mixinEntry.properties) {\n f = fallbacks && fallbacks[p];\n parts = [p, ': var(', mixinName, MIXIN_VAR_SEP, p];\n if (f) {\n parts.push(',', f);\n }\n parts.push(')');\n vars.push(parts.join(''));\n }\n }\n return vars.join('; ');\n }\n\n /**\n * @param {string} property\n * @param {string} value\n * @return {string}\n */\n _replaceInitialOrInherit(property, value) {\n let match = INITIAL_INHERIT.exec(value);\n if (match) {\n if (match[1]) {\n // initial\n // replace `initial` with the concrete initial value for this property\n value = this._getInitialValueForProperty(property);\n } else {\n // inherit\n // with this purposfully illegal value, the variable will be invalid at\n // compute time (https://www.w3.org/TR/css-variables/#invalid-at-computed-value-time)\n // and for inheriting values, will behave similarly\n // we cannot support the same behavior for non inheriting values like 'border'\n value = 'apply-shim-inherit';\n }\n }\n return value;\n }\n\n /**\n * \"parse\" a mixin definition into a map of properties and values\n * cssTextToMap('border: 2px solid black') -> ('border', '2px solid black')\n * @param {string} text\n * @return {!Object<string, string>}\n */\n _cssTextToMap(text) {\n let props = text.split(';');\n let property, value;\n let out = {};\n for (let i = 0, p, sp; i < props.length; i++) {\n p = props[i];\n if (p) {\n sp = p.split(':');\n // ignore lines that aren't definitions like @media\n if (sp.length > 1) {\n property = sp[0].trim();\n // some properties may have ':' in the value, like data urls\n value = this._replaceInitialOrInherit(property, sp.slice(1).join(':'));\n out[property] = value;\n }\n }\n }\n return out;\n }\n\n /**\n * @param {MixinMapEntry} mixinEntry\n */\n _invalidateMixinEntry(mixinEntry) {\n if (!invalidCallback) {\n return;\n }\n for (let elementName in mixinEntry.dependants) {\n if (elementName !== this._currentElement) {\n invalidCallback(elementName);\n }\n }\n }\n\n /**\n * @param {string} matchText\n * @param {string} propertyName\n * @param {?string} valueProperty\n * @param {?string} valueMixin\n * @return {string}\n */\n _produceCssProperties(matchText, propertyName, valueProperty, valueMixin) {\n // handle case where property value is a mixin\n if (valueProperty) {\n // form: --mixin2: var(--mixin1), where --mixin1 is in the map\n processVariableAndFallback(valueProperty, (prefix, value) => {\n if (value && this._map.get(value)) {\n valueMixin = `@apply ${value};`\n }\n });\n }\n if (!valueMixin) {\n return matchText;\n }\n let mixinAsProperties = this._consumeCssProperties(valueMixin);\n let prefix = matchText.slice(0, matchText.indexOf('--'));\n let mixinValues = this._cssTextToMap(mixinAsProperties);\n let combinedProps = mixinValues;\n let mixinEntry = this._map.get(propertyName);\n let oldProps = mixinEntry && mixinEntry.properties;\n if (oldProps) {\n // NOTE: since we use mixin, the map of properties is updated here\n // and this is what we want.\n combinedProps = Object.assign(Object.create(oldProps), mixinValues);\n } else {\n this._map.set(propertyName, combinedProps);\n }\n let out = [];\n let p, v;\n // set variables defined by current mixin\n let needToInvalidate = false;\n for (p in combinedProps) {\n v = mixinValues[p];\n // if property not defined by current mixin, set initial\n if (v === undefined) {\n v = 'initial';\n }\n if (oldProps && !(p in oldProps)) {\n needToInvalidate = true;\n }\n out.push(`${propertyName}${MIXIN_VAR_SEP}${p}: ${v}`);\n }\n if (needToInvalidate) {\n this._invalidateMixinEntry(mixinEntry);\n }\n if (mixinEntry) {\n mixinEntry.properties = combinedProps;\n }\n // because the mixinMap is global, the mixin might conflict with\n // a different scope's simple variable definition:\n // Example:\n // some style somewhere:\n // --mixin1:{ ... }\n // --mixin2: var(--mixin1);\n // some other element:\n // --mixin1: 10px solid red;\n // --foo: var(--mixin1);\n // In this case, we leave the original variable definition in place.\n if (valueProperty) {\n prefix = `${matchText};${prefix}`;\n }\n return `${prefix}${out.join('; ')};`;\n }\n}\n\n/* exports */\nApplyShim.prototype['detectMixin'] = ApplyShim.prototype.detectMixin;\nApplyShim.prototype['transformStyle'] = ApplyShim.prototype.transformStyle;\nApplyShim.prototype['transformCustomStyle'] = ApplyShim.prototype.transformCustomStyle;\nApplyShim.prototype['transformRules'] = ApplyShim.prototype.transformRules;\nApplyShim.prototype['transformRule'] = ApplyShim.prototype.transformRule;\nApplyShim.prototype['transformTemplate'] = ApplyShim.prototype.transformTemplate;\nApplyShim.prototype['_separator'] = MIXIN_VAR_SEP;\nObject.defineProperty(ApplyShim.prototype, 'invalidCallback', {\n /** @return {?function(string)} */\n get() {\n return invalidCallback;\n },\n /** @param {?function(string)} cb */\n set(cb) {\n invalidCallback = cb;\n }\n});\n\nif (!window['ApplyShim']) {\n window['ApplyShim'] = new ApplyShim();\n}"]}