{"version":3,"file":"ie11CustomProperties.js","names":["testEl","document","createElement","style","setProperty","getPropertyValue","msMatchesSelector","Element","prototype","matches","listeners","root","Observer","qsa","el","selector","querySelectorAll","e","onElement","callback","listener","elements","WeakMap","els","i","set","call","push","MutationObserver","checkMutations","observe","childList","subtree","checkListener","target","loaded","Array","apply","has","checkListeners","inside","mutations","j","mutation","nodes","addedNodes","nodeType","addEventListener","copyProperty","prop","from","to","desc","Object","getOwnPropertyDescriptor","defineProperty","HTMLElement","SVGStyleElement","get","all","styleSheets","sheet","ownerNode","styles_of_getter_properties","drawQueue","Set","collecting","drawing","regFindSetters","regFindGetters","regRuleIEGetters","regRuleIESetters","regPseudos","foundStyle","ieCP_polyfilled","ieCP_elementSheet","href","fetchCss","css","newCss","rewriteCss","activateStyleElement","innerHTML","getAttribute","substr","cssText","found","parseRewrittenStyle","getters","addGetterElement","setters","addSetterElement","replace","$0","$1","$2","$3","$4","important","encodeValue","value","keywords","initial","inherit","revert","unset","decodeValue","undefined","trimmed","trim","x","matchesGetters","match","propName","slice","matchesSetters","split","propValue","rules","rule","addGettersSelector","selectorText","addSettersSelector","media","parentRule","mediaText","matchMedia","addListener","drawTree","documentElement","redrawStyleSheets","properties","selectorAddPseudoListeners","unPseudo","drawElement","selectors","setAttribute","ieCPSelectors","parts","pseudo","propVals","ieCP_setters","styles","owningElement","styleComputeValueWidthVars","getComputedStyle","pseudos","hover","on","off","focus","active","_loop","length","ending","sel","drawTreeEvent","CSSActive","setTimeout","activeElement","evt","createEvent","initEvent","dispatchEvent","add","requestAnimationFrame","forEach","_drawElement","clear","uniqueCounter","ieCP_unique","classList","runtimeStyle","valueWithVar","details","item","allByRoot","elementSetCss","ieCP_styleEl","styleEl","head","appendChild","hasAttribute","findVars","str","cb","level","openedLevel","lastPoint","newStr","char","insideCalc","substring","variable","fallback","indexOf","valueWithVars","lastPropertyServedBy","observer","attributeName","attributes","oldHash","location","hash","newEl","getElementById","oldEl","descriptor","styleGetter","originalGetComputed","window","arguments","computedFor","StyleProto","CSSStyleDeclaration","oldGetP","property","undashed","ieProperty","iePropertyImportant","inheritingKeywords","register","inherits","parentNode","tmpVal","initialValue","oldSetP","prio","CSS","registerProperty","options","name","url","request","XMLHttpRequest","open","overrideMimeType","onload","status","responseText","send"],"sources":["../../Javascript/ie11CustomProperties.js"],"sourcesContent":["/*! ie11CustomProperties.js v4.1.0 | MIT License | https://git.io/fjXMN */\n!function () {\n\t'use strict';\n\n\t// check for support\n\tvar testEl = document.createElement('i');\n\ttestEl.style.setProperty('--x', 'y');\n\tif (testEl.style.getPropertyValue('--x') === 'y' || !testEl.msMatchesSelector) return;\n\n\tif (!Element.prototype.matches) Element.prototype.matches = Element.prototype.msMatchesSelector;\n\n var listeners = [],\n root = document,\n Observer;\n\n\tfunction qsa(el, selector){\n\t\ttry {\n\t\t\treturn el.querySelectorAll(selector);\n\t\t} catch(e) {\n\t\t\t// console.warn('the Selector '+selector+' can not be parsed');\n\t\t\treturn [];\n\t\t}\n\t}\n function onElement (selector, callback) {\n var listener = {\n selector: selector,\n callback: callback,\n elements: new WeakMap(),\n };\n\t\tvar els = qsa(root, listener.selector), i=0, el;\n\t\twhile (el = els[i++]) {\n listener.elements.set(el, true);\n listener.callback.call(el, el);\n }\n listeners.push(listener);\n if (!Observer) {\n Observer = new MutationObserver(checkMutations);\n Observer.observe(root, {\n childList: true,\n subtree: true\n });\n }\n checkListener(listener);\n };\n function checkListener(listener, target) {\n var i = 0, el, els = [];\n\t\ttry {\n\t\t\ttarget && target.matches(listener.selector) && els.push(target);\n\t\t} catch(e) {}\n if (loaded) { // ok? check inside node on innerHTML - only when loaded\n Array.prototype.push.apply(els, qsa(target || root, listener.selector));\n }\n while (el = els[i++]) {\n if (listener.elements.has(el)) continue;\n listener.elements.set(el,true);\n listener.callback.call(el, el);\n }\n }\n function checkListeners(inside) {\n var i = 0, listener;\n while (listener = listeners[i++]) checkListener(listener, inside);\n }\n function checkMutations(mutations) {\n\t\tvar j = 0, i, mutation, nodes, target;\n while (mutation = mutations[j++]) {\n nodes = mutation.addedNodes, i = 0;\n while (target = nodes[i++]) target.nodeType === 1 && checkListeners(target);\n }\n }\n\n var loaded = false;\n document.addEventListener('DOMContentLoaded', function () {\n loaded = true;\n });\n\n\t// svg polyfills\n\tfunction copyProperty(prop, from, to){\n\t\tvar desc = Object.getOwnPropertyDescriptor(from, prop);\n\t\tObject.defineProperty(to, prop, desc);\n\t}\n\tif (!('classList' in Element.prototype)) {\n\t\tcopyProperty('classList', HTMLElement.prototype, Element.prototype);\n\t}\n\tif (!('innerHTML' in Element.prototype)) {\n\t\tcopyProperty('innerHTML', HTMLElement.prototype, Element.prototype);\n\t}\n\tif (!('runtimeStyle' in Element.prototype)) { // new\n\t\tcopyProperty('runtimeStyle', HTMLElement.prototype, Element.prototype);\n\t}\n\tif (!('sheet' in SVGStyleElement.prototype)) {\n\t\tObject.defineProperty(SVGStyleElement.prototype, 'sheet', {\n\t\t\tget:function(){\n\t\t\t\tvar all = document.styleSheets, i=0, sheet;\n\t\t\t\twhile (sheet=all[i++]) {\n\t\t\t\t\tif (sheet.ownerNode === this) return sheet;\n\t\t\t\t}\n\n\t\t\t}\n\t\t});\n\t}\n\n\t// main logic\n\tvar styles_of_getter_properties = {};\n\tvar drawQueue = new Set();\n\tvar collecting = false;\n\tvar drawing = false;\n\n\t// cached regexps, better performance\n\tvar regFindSetters = /([\\s{;])(--([A-Za-z0-9-_]*)\\s*:([^;!}{]+)(!important)?)(?=\\s*([;}]|$))/g;\n\tvar regFindGetters = /([{;]\\s*)([A-Za-z0-9-_]+\\s*:[^;}{]*var\\([^!;}{]+)(!important)?(?=\\s*([;}$]|$))/g;\n\tvar regRuleIEGetters = /-ieVar-([^:]+):/g\n\tvar regRuleIESetters = /-ie-([^};]+)/g\n\t//const regHasVar = /var\\(/;\n\tvar regPseudos = /:(hover|active|focus|target|visited|link|:before|:after|:first-letter|:first-line)/;\n\n\tfunction foundStyle(el){\n\t\tif (el.ieCP_polyfilled) return;\n\t\tif (el.ieCP_elementSheet) return;\n\t\tif (!el.sheet) return;\n\t\tif (el.href) {\n\t\t\treturn fetchCss(el.href, function (css) {\n\t\t\t\tvar newCss = rewriteCss(css);\n\t\t\t\tif (css === newCss) return;\n\t\t\t\tactivateStyleElement(el, newCss);\n\t\t\t});\n\t\t}\n\n\t\tvar css = el.innerHTML;\n\t\tvar newCss = rewriteCss(css);\n\t\tif (css === newCss) return;\n\t\tactivateStyleElement(el, newCss);\n\t}\n\tonElement('style', foundStyle);\n\tonElement('link[rel=\"stylesheet\"]', foundStyle);\n\t// immediate, to pass w3c-tests, bud its a bad idea\n\t// addEventListener('DOMNodeInserted',function(e){ e.target.tagName === 'STYLE' && foundStyle(e.target); });\n\n\n\n\tonElement('[ie-style]', function (el) {\n\t\tvar newCss = rewriteCss('{'+el.getAttribute('ie-style')).substr(1);\n\t\tel.style.cssText += ';'+ newCss;\n\t\tvar found = parseRewrittenStyle(el.style);\n\t\tif (found.getters) addGetterElement(el, found.getters, '%styleAttr');\n\t\tif (found.setters) addSetterElement(el, found.setters);\n\t});\n\n\t// ie has a bug, where unknown properties at pseudo-selectors are computed at the element\n\t// #el::after { -content:'x'; } => getComputedStyle(el)['-content'] == 'x'\n\t// should we add something like -ieVar-pseudo_after-content:'x'?\n\tfunction rewriteCss(css) {\n\n\t\t/* uncomment if spec finished and needed by someone\n\t\tcss = css.replace(/@property ([^{]+){([^}]+)}/, function($0, prop, body){\n\t\t\tprop = prop.trim();\n\t\t\tconst declaration = {name:prop};\n\t\t\tbody.split(';').forEach(function(pair){\n\t\t\t\tconst x = pair.split(':');\n\t\t\t\tif (x[1]) declaration[ x[0].trim() ] = x[1];\n\t\t\t});\n\t\t\tdeclaration['inherits'] = declaration['inherits'].trim()==='true' ? true : false;\n\t\t\tdeclaration['initialValue'] = declaration['initial-value'];\n\t\t\tCSS.registerProperty(declaration)\n\t\t\treturn '/*\\n @property ... removed \\n*'+'/';\n\t\t});\n\t\t*/\n\t\treturn css.replace(regFindSetters, function($0, $1, $2, $3, $4, important){\n\t\t\treturn $1+'-ie-'+(important?'❗':'')+$3+':'+encodeValue($4);\n\t\t}).replace(regFindGetters, function($0, $1, $2, important){\n\t\t\treturn $1+'-ieVar-'+(important?'❗':'')+$2+'; '+$2; // keep the original, so chaining works \"--x:var(--y)\"\n\t\t});\n\t}\n\tfunction encodeValue(value){\n\t\treturn value;\n\t\treturn value.replace(/ /g,'␣');\n\t}\n\tvar keywords = {initial:1,inherit:1,revert:1,unset:1};\n\tfunction decodeValue(value){\n\t\treturn value;\n\t\tif (value===undefined) return;\n\t\tvalue = value.replace(/␣/g,' ');\n\t\tconst trimmed = value.trim();\n\t\tif (keywords[trimmed]) return trimmed;\n\t\treturn value;\n\t}\n\n\tfunction parseRewrittenStyle(style) { // less memory then parameter cssText?\n\n\t\t// ie11 can access unknown properties in stylesheets only if accessed a dashed known property\n\t\tstyle['z-index'] === style && x(); // do something (compare and call) just for minifiers\n\n\t\tconst cssText = style.cssText;\n\t\tvar matchesGetters = cssText.match(regRuleIEGetters), j, match;\n\t\tif (matchesGetters) {\n\t\t\tvar getters = []; // eg. [border,color]\n\t\t\tfor (j = 0; match = matchesGetters[j++];) {\n\t\t\t\tlet propName = match.slice(7, -1);\n\t\t\t\tif (propName[0] === '❗') propName = propName.substr(1);\n\t\t\t\tgetters.push(propName);\n\n\t\t\t\tif (!styles_of_getter_properties[propName]) styles_of_getter_properties[propName] = [];\n\t\t\t\tstyles_of_getter_properties[propName].push(style);\n\t\t\t}\n\t\t}\n\t\tvar matchesSetters = cssText.match(regRuleIESetters);\n\t\tif (matchesSetters) {\n\t\t\tvar setters = {}; // eg. [--color:#fff, --padding:10px];\n\t\t\tfor (j = 0; match = matchesSetters[j++];) {\n\t\t\t\tlet x = match.substr(4).split(':');\n\t\t\t\tlet propName = x[0];\n\t\t\t\tlet propValue = x[1];\n\t\t\t\tif (propName[0] === '❗') propName = propName.substr(1);\n\t\t\t\tsetters[propName] = propValue;\n\t\t\t}\n\t\t}\n\t\treturn {getters:getters, setters:setters};\n\t}\n\tfunction activateStyleElement(style, css) {\n\t\tstyle.sheet.cssText = css;\n\t\tstyle.ieCP_polyfilled = true;\n\t\tvar rules = style.sheet.rules, i=0, rule; // cssRules = CSSRuleList, rules = MSCSSRuleList\n\t\twhile (rule = rules[i++]) {\n\t\t\tconst found = parseRewrittenStyle(rule.style);\n\t\t\tif (found.getters) addGettersSelector(rule.selectorText, found.getters);\n\t\t\tif (found.setters) addSettersSelector(rule.selectorText, found.setters);\n\n\t\t\t// mediaQueries: redraw the hole document\n\t\t\t// better add events for each element?\n\t\t\tconst media = rule.parentRule && rule.parentRule.media && rule.parentRule.media.mediaText;\n\t\t\tif (media && (found.getters || found.setters)) {\n\t\t\t\tmatchMedia(media).addListener(function(){\n\t\t\t\t\tdrawTree(document.documentElement)\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\tredrawStyleSheets();\n\t}\n\n\tfunction addGettersSelector(selector, properties) {\n\t\tselectorAddPseudoListeners(selector);\n\t\tonElement(unPseudo(selector), function (el) {\n\t\t\taddGetterElement(el, properties, selector);\n\t\t\tdrawElement(el);\n\t\t});\n\t}\n\tfunction addGetterElement(el, properties, selector) {\n\t\tvar i=0, prop, j;\n\t\tconst selectors = selector.split(','); // split grouped selectors\n\t\tel.setAttribute('iecp-needed', true);\n\t\tif (!el.ieCPSelectors) el.ieCPSelectors = {};\n\t\twhile (prop = properties[i++]) {\n\t\t\tfor (j = 0; selector = selectors[j++];) {\n\t\t\t\tconst parts = selector.trim().split('::');\n\t\t\t\tif (!el.ieCPSelectors[prop]) el.ieCPSelectors[prop] = [];\n\t\t\t\tel.ieCPSelectors[prop].push({\n\t\t\t\t\tselector: parts[0],\n\t\t\t\t\tpseudo: parts[1] ? '::' + parts[1] : ''\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\tfunction addSettersSelector(selector, propVals) {\n\t\tselectorAddPseudoListeners(selector);\n\t\tonElement(unPseudo(selector), function (el) {\n\t\t\taddSetterElement(el, propVals);\n\t\t});\n\t}\n\tfunction addSetterElement(el, propVals) {\n\t\tif (!el.ieCP_setters) el.ieCP_setters = {};\n\t\tfor (var prop in propVals) { // eg. {foo:#fff, bar:baz}\n\t\t\tel.ieCP_setters['--' + prop] = 1;\n\t\t}\n\t\tdrawTree(el);\n\t}\n\n\tfunction redrawStyleSheets() {\n\t\tfor (var prop in styles_of_getter_properties) {\n\t\t\tlet styles = styles_of_getter_properties[prop];\n\t\t\tfor (var i=0, style; style=styles[i++];) {\n\t\t\t\tif (style.owningElement) continue;\n\t\t\t\tvar value = style['-ieVar-'+prop];\n\t\t\t\tif (!value) continue;\n\t\t\t\tvalue = styleComputeValueWidthVars(getComputedStyle(document.documentElement), value);\n\t\t\t\tif (value === '') continue;\n\t\t\t\ttry {\n\t\t\t\t\tstyle[prop] = value;\n\t\t\t\t} catch(e) {}\n\t\t\t}\n\t\t}\n\t}\n\n\n\tvar pseudos = {\n\t\thover:{\n\t\t\ton:'mouseenter',\n\t\t\toff:'mouseleave'\n\t\t},\n\t\tfocus:{\n\t\t\ton:'focusin',\n\t\t\toff:'focusout'\n\t\t},\n\t\tactive:{\n\t\t\ton:'CSSActivate',\n\t\t\toff:'CSSDeactivate'\n\t\t},\n\t};\n\tfunction selectorAddPseudoListeners(selector){\n\t\t// ie11 has the strange behavoir, that groups of selectors are individual rules, but starting with the full selector:\n\t\t// td, th, button { color:red } results in this rules:\n\t\t// \"td, th, button\" | \"th, th\" | \"th\"\n\t\tselector = selector.split(',')[0];\n\t\tfor (var pseudo in pseudos) {\n\t\t\tvar parts = selector.split(':'+pseudo);\n\t\t\tif (parts.length > 1) {\n\t\t\t\tvar ending = parts[1].match(/^[^\\s]*/); // ending elementpart of selector (used for not(:active))\n\t\t\t\tlet sel = unPseudo(parts[0]+ending);\n\t\t\t\tconst listeners = pseudos[pseudo];\n\t\t\t\tonElement(sel, function (el) {\n\t\t\t\t\tel.addEventListener(listeners.on, drawTreeEvent);\n\t\t\t\t\tel.addEventListener(listeners.off, drawTreeEvent);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tvar CSSActive = null;\n\tdocument.addEventListener('mousedown',function(e){\n\t\tsetTimeout(function(){\n\t\t\tif (e.target === document.activeElement) {\n\t\t\t\tvar evt = document.createEvent('Event');\n\t\t\t\tevt.initEvent('CSSActivate', true, true);\n\t\t\t\tCSSActive = e.target;\n\t\t\t\tCSSActive.dispatchEvent(evt);\n\t\t\t}\n\t\t})\n\t});\n\tdocument.addEventListener('mouseup',function(){\n\t\tif (CSSActive) {\n\t\t\tvar evt = document.createEvent('Event');\n\t\t\tevt.initEvent('CSSDeactivate', true, true);\n\t\t\tCSSActive.dispatchEvent(evt);\n\t\t\tCSSActive = null;\n\t\t}\n\t});\n\n\tfunction unPseudo(selector){\n\t\treturn selector.replace(regPseudos,'').replace(':not()','');\n\t}\n\n\t// draw queue\n\tfunction drawElement(el){\n\t\tdrawQueue.add(el);\n\t\tif (collecting) return;\n\t\tcollecting = true;\n\t\trequestAnimationFrame(function(){\n\t\t//setImmediate(function(){\n\t\t\tcollecting = false;\n\t\t\tdrawing = true;\n\t\t\tdrawQueue.forEach(_drawElement);\n\t\t\tdrawQueue.clear();\n\t\t\tsetTimeout(function(){ // mutationObserver will trigger delayed, requestAnimationFrame will miss some changes\n\t\t\t\tdrawing = false;\n\t\t\t})\n\t\t})\n\t}\n\n\tvar uniqueCounter = 0;\n\tfunction _drawElement(el) {\n\t\tif (!el.ieCP_unique) { // use el.uniqueNumber? but needs class for the css-selector => test performance\n\t\t\tel.ieCP_unique = ++uniqueCounter;\n\t\t\tel.classList.add('iecp-u' + el.ieCP_unique);\n\t\t}\n\t\tvar style = getComputedStyle(el);\n\t\tlet css = '';\n\n\t\tel.runtimeStyle.cssText = ''; // new\n\n\t\tfor (var prop in el.ieCPSelectors) {\n\t\t\tvar important = style['-ieVar-❗' + prop];\n\t\t\tlet valueWithVar = important || style['-ieVar-' + prop];\n\t\t\tif (!valueWithVar) continue; // todo, what if '0'\n\t\t\tvar details = {};\n\t\t\tvar value = styleComputeValueWidthVars(style, valueWithVar, details);\n\t\t\t//if (value==='initial') value = initials[prop];\n\t\t\tif (important) value += ' !important';\n\t\t\tfor (var i=0, item; item=el.ieCPSelectors[prop][i++];) { // todo: split and use requestAnimationFrame?\n\t\t\t\tif (item.selector === '%styleAttr') el.style[prop] = value; // i dont know why but i initial have to set style also (seen in demo)\n\t\t\t\tif (!important && details.allByRoot !== false) continue; // dont have to draw root-properties\n\t\t\t\tif (item.pseudo) {\n\t\t\t\t\tcss += item.selector + '.iecp-u' + el.ieCP_unique + item.pseudo + '{' + prop + ':' + value + '}\\n';\n\t\t\t\t} else {\n\t\t\t\t\tel.runtimeStyle[prop] = value; // new\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telementSetCss(el, css);\n\t}\n\tfunction elementSetCss(el, css){\n\t\tif (!el.ieCP_styleEl && css) {\n\t\t\tconst styleEl = document.createElement('style');\n\t\t\tstyleEl.ieCP_elementSheet = 1;\n\t\t\t//el.appendChild(styleEl); // yes! self-closing tags can have style as children, but - if i set innerHTML, the stylesheet is lost\n\t\t\tdocument.head.appendChild(styleEl);\n\t\t\tel.ieCP_styleEl = styleEl;\n\t\t}\n\t\tif (el.ieCP_styleEl) el.ieCP_styleEl.innerHTML = css;\n\t}\n\t/* */\n\n\tfunction drawTree(target) {\n\t\tif (!target) return;\n\n\t\ttarget === document.documentElement && redrawStyleSheets(); // new\n\n\t\tvar els = target.querySelectorAll('[iecp-needed]');\n\t\tif (target.hasAttribute && target.hasAttribute('iecp-needed')) drawElement(target); // self\n\t\tfor (var i = 0, el; el = els[i++];) drawElement(el); // tree\n\t}\n\tfunction drawTreeEvent(e) {\n\t\tdrawTree(e.target)\n\t}\n\n\tfunction findVars(str, cb){ // css value parser\n\t\tlet level=0, openedLevel=null, lastPoint=0, newStr = '', i=0, char, insideCalc;\n\t\twhile (char=str[i++]) {\n\t\t\tif (char === '(') {\n\t\t\t\t++level;\n\t\t\t\tif (openedLevel === null && str[i-4]+str[i-3]+str[i-2] === 'var') {\n\t\t\t\t\topenedLevel = level;\n\t\t\t\t\tnewStr += str.substring(lastPoint, i-4);\n\t\t\t\t\tlastPoint = i;\n\t\t\t\t}\n\t\t\t\tif (str[i-5]+str[i-4]+str[i-3]+str[i-2] === 'calc') {\n\t\t\t\t\tinsideCalc = level;\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (char === ')' && openedLevel === level) {\n\t\t\t\tlet variable = str.substring(lastPoint, i-1).trim(), fallback;\n\t\t\t\tlet x = variable.indexOf(',');\n\t\t\t\tif (x!==-1) {\n\t\t\t\t\tfallback = variable.slice(x+1);\n\t\t\t\t\tvariable = variable.slice(0,x);\n\t\t\t\t}\n\t\t\t\tnewStr += cb(variable, fallback, insideCalc);\n\t\t\t\tlastPoint = i;\n\t\t\t\topenedLevel = null;\n\t\t\t}\n\t\t\tif (char === ')') {\n\t\t\t\t--level;\n\t\t\t\tif (insideCalc === level) insideCalc = null;\n\t\t\t}\n\t\t}\n\t\tnewStr += str.substring(lastPoint);\n\t\treturn newStr;\n\t}\n\tfunction styleComputeValueWidthVars(style, valueWithVars, details){\n\t\treturn findVars(valueWithVars, function(variable, fallback, insideCalc){\n\t\t\tvar value = style.getPropertyValue(variable);\n\t\t\tif (insideCalc) value = value.replace(/^calc\\(/, '('); // prevent nested calc\n\t\t\tif (details && style.lastPropertyServedBy !== document.documentElement) details.allByRoot = false;\n\t\t\tif (value==='' && fallback) value = styleComputeValueWidthVars(style, fallback, details);\n\t\t\treturn value;\n\t\t});\n\t}\n\n\t// mutation listener\n\tvar observer = new MutationObserver(function(mutations) {\n\t\tif (drawing) return;\n\t\tfor (var i=0, mutation; mutation=mutations[i++];) {\n\t\t\tif (mutation.attributeName === 'iecp-needed') continue; // why?\n\t\t\t// recheck all selectors if it targets new elements?\n\t\t\tdrawTree(mutation.target);\n\t\t}\n\t});\n\tsetTimeout(function(){\n\t\tobserver.observe(document,{attributes: true, subtree: true });\n\t})\n\n\t// :target listener\n\tvar oldHash = location.hash\n\taddEventListener('hashchange',function(e){\n\t\tvar newEl = document.getElementById(location.hash.substr(1));\n\t\tif (newEl) {\n\t\t\tvar oldEl = document.getElementById(oldHash.substr(1));\n\t\t\tdrawTree(newEl);\n\t\t\tdrawTree(oldEl);\n\t\t} else {\n\t\t\tdrawTree(document);\n\t\t}\n\t\toldHash = location.hash;\n\t});\n\n\t// add owningElement to Element.style\n\tvar descriptor = Object.getOwnPropertyDescriptor(HTMLElement.prototype, 'style');\n\tvar styleGetter = descriptor.get;\n\tdescriptor.get = function () {\n\t\tconst style = styleGetter.call(this);\n\t\tstyle.owningElement = this;\n\t\treturn style;\n\t}\n\tObject.defineProperty(HTMLElement.prototype, 'style', descriptor);\n\n\t// add computedFor to computed style-objects\n\tvar originalGetComputed = getComputedStyle;\n\twindow.getComputedStyle = function (el) {\n\t\tvar style = originalGetComputed.apply(this, arguments);\n\t\tstyle.computedFor = el;\n\t\t//style.pseudoElt = pseudoElt; //not needed at the moment\n\t\treturn style;\n\t}\n\n\t// getPropertyValue / setProperty hooks\n\tvar StyleProto = CSSStyleDeclaration.prototype;\n\n\tvar oldGetP = StyleProto.getPropertyValue;\n\tStyleProto.getPropertyValue = function (property) {\n\t\tthis.lastPropertyServedBy = false;\n\t\tproperty = property.trim();\n\n\t\t/* *\n\t\tif (this.owningElement) {\n\t\t\tconst ieProperty = '-ieVar-'+property;\n\t\t\tconst iePropertyImportant = '-ieVar-❗'+property;\n\t\t\tlet value = this[iePropertyImportant] || this[ieProperty];\n\t\t\tif (value !== undefined) {\n\t\t\t\t// todo, test if syntax valid\n\t\t\t\treturn value;\n\t\t\t}\n\t\t}\n\t\t/* */\n\n\t\tif (property[0] !== '-' || property[1] !== '-') return oldGetP.apply(this, arguments);\n\t\tconst undashed = property.substr(2);\n\t\tconst ieProperty = '-ie-'+undashed;\n\t\tconst iePropertyImportant = '-ie-❗'+undashed;\n\t\tlet value = decodeValue(this[iePropertyImportant] || this[ieProperty]);\n\n\t\tif (this.computedFor) { // computedStyle\n\t\t\tif (value !== undefined && !inheritingKeywords[value]) {\n\t\t\t\t//if (regHasVar.test(value)) // todo: to i need this check?!!! i think its faster without\n\t\t\t\t\tvalue = styleComputeValueWidthVars(this, value);\n\t\t\t\tthis.lastPropertyServedBy = this.computedFor;\n\t\t\t} else { // inherited\n\t\t\t\tif (inheritingKeywords[value] || !register[property] || register[property].inherits) {\n\t\t\t\t\t//let el = this.pseudoElt ? this.computedFor : this.computedFor.parentNode;\n\t\t\t\t\tlet el = this.computedFor.parentNode;\n\t\t\t\t\twhile (el && el.nodeType === 1) {\n\t\t\t\t\t\t// without, it affects performance: 1000 els inside 100 parents: 1000ms (instead of 600ms) is it acceptable?\n\t\t\t\t\t\t// would also remove complexity, because i can remove the ieCP_setters property\n\t\t\t\t\t\t//if (el.ieCP_setters && el.ieCP_setters[property]) {\n\t\t\t\t\t\t\t// i could make\n\t\t\t\t\t\t\t// value = el.nodeType ? getComputedStyle(this.computedFor.parentNode).getPropertyValue(property)\n\t\t\t\t\t\t\t// but i fear performance, stupid?\n\t\t\t\t\t\t\tvar style = getComputedStyle(el);\n\t\t\t\t\t\t\tvar tmpVal = decodeValue(style[iePropertyImportant] || style[ieProperty]);\n\t\t\t\t\t\t\tif (tmpVal !== undefined) {\n\t\t\t\t\t\t\t\t// calculated style from current element not from the element the value was inherited from! (style, value)\n\t\t\t\t\t\t\t\t//value = tmpVal; if (regHasVar.test(tmpVal)) // todo: to i need this check?!!! i think its faster without\n\t\t\t\t\t\t\t\t\tvalue = styleComputeValueWidthVars(this, tmpVal);\n\t\t\t\t\t\t\t\tthis.lastPropertyServedBy = el;\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t//}\n\t\t\t\t\t\tel = el.parentNode;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (value==='initial') return '';\n\t\t}\n\t\t//if ((value === undefined || value === 'initial') && register[property]) value = register[property].initialValue; // todo?\n\t\tif (value === undefined && register[property]) value = register[property].initialValue;\n\t\tif (value === undefined) return '';\n\t\treturn value;\n\t};\n\tvar inheritingKeywords = {inherit:1,revert:1,unset:1};\n\n\tvar oldSetP = StyleProto.setProperty;\n\tStyleProto.setProperty = function (property, value, prio) {\n\t\tif (property[0] !== '-' || property[1] !== '-') return oldSetP.apply(this, arguments);\n\t\tconst el = this.owningElement;\n\t\tif (el) {\n\t\t\tif (!el.ieCP_setters) el.ieCP_setters = {};\n\t\t\tel.ieCP_setters[property] = 1;\n\t\t}\n\t\tproperty = '-ie-'+(prio==='important'?'❗':'') + property.substr(2);\n\t\tthis.cssText += '; ' + property + ':' + encodeValue(value) + ';';\n\t\t//this[property] = value;\n//\t\tel === document.documentElement && redrawStyleSheets(); new in drawTree\n\t\tel && drawTree(el); // its delayed internal\n\t};\n\n\n\t/*\n\tvar descriptor = Object.getOwnPropertyDescriptor(StyleProto, 'cssText');\n\tvar cssTextGetter = descriptor.get;\n\tvar cssTextSetter = descriptor.set;\n\t// descriptor.get = function () {\n\t// \tconst style = styleGetter.call(this);\n\t// \tstyle.owningElement = this;\n\t// \treturn style;\n\t// }\n\tdescriptor.set = function (css) {\n\t\tvar el = this.owningElement;\n\t\tif (el) {\n\t\t\tcss = rewriteCss('{'+css).substr(1);\n\t\t\tcssTextSetter.call(this, css);\n\t\t\tvar found = parseRewrittenStyle(this);\n\t\t\tif (found.getters) addGetterElement(el, found.getters, '%styleAttr');\n\t\t\tif (found.setters) addSetterElement(el, found.setters);\n\t\t\treturn;\n\t\t}\n\t\treturn cssTextSetter.call(this, css);\n\t}\n\tObject.defineProperty(StyleProto, 'cssText', descriptor);\n\t*/\n\n\n\tif (!window.CSS) window.CSS = {};\n\tvar register = {}\n\tCSS.registerProperty = function(options){\n\t\tregister[options.name] = options;\n\t}\n\n\t// fix \"initial\" keyword with generated custom properties, this is not supported ad all by ie, should i make a separate \"inherit\"-polyfill?\n\t/*\n\tconst computed = getComputedStyle(document.documentElement)\n\tconst initials = {};\n\tfor (let i in computed) {\n\t\tinitials[i.replace(/([A-Z])/, function(x){ return '-'+x.toLowerCase(x) })] = computed[i];\n\t}\n\tinitials['display'] = 'inline';\n\t*/\n\n\t// utils\n\tfunction fetchCss(url, callback) {\n\t\tvar request = new XMLHttpRequest();\n\t\trequest.open('GET', url);\n\t\trequest.overrideMimeType('text/css');\n\t\trequest.onload = function () {\n\t\t\tif (request.status >= 200 && request.status < 400) {\n\t\t\t\tcallback(request.responseText);\n\t\t\t}\n\t\t};\n\t\trequest.send();\n\t}\n\n}();\n"],"mappings":"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","ignoreList":[]}