webcomponents-bundle.js.map 603 KB

1
  1. {"version":3,"sources":["../webcomponents-platform/webcomponents-platform.js"," [synthetic:util/defineproperty] "," [synthetic:util/global] "," [synthetic:es6/symbol] "," [synthetic:es6/util/makeiterator] "," [synthetic:es6/util/arrayfromiterator] "," [synthetic:es6/util/setprototypeof] "," [synthetic:es6/generator_engine] ","src/symbol.js","../template/template.js","../../promise-polyfill/src/index.js","../../promise-polyfill/src/finally.js","src/promise.js","../../get-own-property-symbols/build/get-own-property-symbols.max.js","src/flag-parser.js","../shadydom/src/shady-data.js","../shadydom/src/utils.js","../shadydom/src/flush.js","../shadydom/src/observe-changes.js","../shadydom/src/native-methods.js","../shadydom/src/innerHTML.js","../shadydom/src/native-tree-walker.js","../shadydom/src/native-tree-accessors.js","../shadydom/src/native-tree.js","../shadydom/src/patch-accessors.js","../shadydom/src/patch-builtins.js","../shadydom/src/logical-tree.js","../shadydom/src/logical-mutation.js","../shadydom/src/attach-shadow.js","../shadydom/src/patch-events.js","../shadydom/src/array-splice.js"," [synthetic:es6/util/arrayfromiterable] ","../shadydom/src/shadydom.js","../custom-elements/src/Utilities.js","../custom-elements/src/CustomElementInternals.js","../custom-elements/src/CustomElementState.js","../custom-elements/src/DocumentConstructionObserver.js","../custom-elements/src/CustomElementRegistry.js","../custom-elements/src/Deferred.js","../custom-elements/src/Patch/Native.js","../custom-elements/src/AlreadyConstructedMarker.js","../custom-elements/src/Patch/HTMLElement.js","../custom-elements/src/custom-elements.js","../custom-elements/src/Patch/Interface/ParentNode.js","../custom-elements/src/Patch/Document.js","../custom-elements/src/Patch/Node.js","../custom-elements/src/Patch/Interface/ChildNode.js","../custom-elements/src/Patch/Element.js","../custom-elements/src/Patch/DocumentFragment.js","../shadycss/src/css-parse.js","../shadycss/src/style-settings.js","../shadycss/src/common-regex.js","../shadycss/src/unscoped-style-handler.js","../shadycss/src/style-util.js","../shadycss/src/style-transformer.js","../shadycss/src/scoping-shim.js","../shadycss/src/document-watcher.js","../shadycss/src/style-properties.js","../shadycss/src/style-info.js","../shadycss/src/style-placeholder.js","../shadycss/src/style-cache.js","../shadycss/src/template-map.js","../shadycss/src/apply-shim-utils.js","../shadycss/src/common-utils.js","../shadycss/entrypoints/scoping-shim.js","../url/url.js","src/baseuri.js","src/unresolved.js","entrypoints/webcomponents-bundle-index.js"],"names":["$jscomp.defineProperty","$jscomp.global","$jscomp.initSymbol","$jscomp.Symbol","$jscomp.SYMBOL_PREFIX","$jscomp.arrayIterator","$jscomp.initSymbolIterator","$jscomp.iteratorPrototype","$jscomp.setPrototypeOf","$jscomp.generator.Context","$jscomp.generator.Generator_","$jscomp.generator.Engine_","e","document","createEvent","initEvent","preventDefault","defaultPrevented","workingDefaultPrevented","origPreventDefault","Event","prototype","Event.prototype.preventDefault","cancelable","call","Object","defineProperty","get","configurable","isIE","test","navigator","userAgent","window","CustomEvent","window.CustomEvent","inType","params","initCustomEvent","bubbles","detail","origEvent","window.Event","i","MouseEvent","origMouseEvent","window.MouseEvent","initMouseEvent","view","screenX","screenY","clientX","clientY","ctrlKey","altKey","shiftKey","metaKey","button","relatedTarget","Array","from","Array.from","object","slice","assign","Object.assign","target","sources","args","arguments","s","length","n$","getOwnPropertyNames","source","p","WebComponents","PolyfilledHTMLTemplateElement","QSA","node","selector","childNodes","nodeType","Node","DOCUMENT_NODE","docQuerySelectorAll","DOCUMENT_FRAGMENT_NODE","fragQuerySelectorAll","elementQuerySelectorAll","needsTemplate","HTMLTemplateElement","brokenDocFragment","createDocumentFragment","cloneNode","DocumentFragment","needsDocFrag","insertBefore","newNode","refNode","child","firstChild","origInsertBefore","origCloneNode","Node.prototype.cloneNode","deep","newDom","__proto__","querySelectorAll","HTMLElement","querySelector","defineProperties","origAppendChild","appendChild","Node.prototype.appendChild","origRemoveChild","removeChild","origReplaceChild","replaceChild","Node.prototype.replaceChild","newChild","oldChild","Document","Document.prototype.createDocumentFragment","frag","createElement","origImportNode","importNode","Document.prototype.importNode","impNode","capturedCloneNode","capturedCreateElement","capturedImportNode","capturedRemoveChild","capturedAppendChild","capturedReplaceChild","capturedParseFromString","DOMParser","parseFromString","capturedHTMLElementInnerHTML","getOwnPropertyDescriptor","innerHTML","set","text","capturedChildNodes","Element","needsCloning","t","t2","content","clone","contentDoc","implementation","createHTMLDocument","canDecorate","templateStyle","textContent","head","firstElementChild","create","canProtoPatch","hasOwnProperty","decorate","PolyfilledHTMLTemplateElement.decorate","template","namespaceURI","documentElement","template.cloneNode","_cloneNode","defineInnerHTML","defineOuterHTML","err","bootstrap","topLevelWrappingMap","obj","getInnerHTML","wrap","exec","toLowerCase","body","j","lastChild","parentNode","docFrag","ownerDocument","Error","PolyfilledHTMLTemplateElement.bootstrap","doc","templates","TEMPLATE_TAG","l","addEventListener","Document.prototype.createElement","el","apply","localName","DOMParser.prototype.parseFromString","enumerable","escapeAttrRegExp","escapeDataRegExp","escapeReplace","c","makeSet","arr","voidElements","plaintextParents","callback","c$","ELEMENT_NODE","tagName","attrs","attributes","attr","name","value","replace","TEXT_NODE","data","COMMENT_NODE","console","error","PolyfilledHTMLTemplateElement._cloneNode","fixClonedDom","s$","t$","dom","element","scripts","scriptSelector","ns","ai","a","setAttribute","setTimeoutFunc","setTimeout","noop","bind","fn","thisArg","Promise","TypeError","_state","_handled","_value","undefined","_deferreds","doResolve","handle","self","deferred","push","Promise$$module$node_modules$promise_polyfill$src$index._immediateFn","cb","onFulfilled","onRejected","resolve","reject","promise","ret","newValue","then","finale","warn","len","Handler","done","reason","ex","Promise.prototype.then","prom","constructor","finallyConstructor","Promise.all","res","val","remaining","Promise.resolve","Promise.reject","Promise.race","values","setImmediate","Promise$$module$node_modules$promise_polyfill$src$index.all","Promise$$module$node_modules$promise_polyfill$src$index.race","Promise$$module$node_modules$promise_polyfill$src$index.resolve","Promise$$module$node_modules$promise_polyfill$src$index.reject","createTextNode","callbacks","observe","MutationObserver","splice","characterData","PromisePolyfill._immediateFn","GOPS","G","global","id","random","Math","internalSymbol","gOPN","gOPD","keys","freeze","$defineProperties","descriptor","GOPN","ObjectProto","hOP","pIE","toString","addInternalIfNeeded","o","uid","writable","createWithSymbols","proto","descriptors","forEach","key","propertyIsEnumerable","$defineProperty","onlyNonSymbols","onlySymbols","setAndGetSymbol","setDescriptor","sourceConstructor","Symbol","description","prefix","concat","sourceMap","newDescriptor","$getOwnPropertySymbols","filter","map","DP","descriptor.value","symbols","DPies","PIE","symbol","GOPD","str","o_O","protoDescriptor","O","dP","toStringTag","tst","Si","AP","SP","returnThis","iterator","next","fromCodePoint","String","codePointAt","Object.prototype.toString","Object.keys","prop","$jscomp.generator.createGenerator","Set","temp","Map","entries","script","flagMatcher","flags","location","search","split","option","parts","match","f","forceShady","forceCE","ShadyData","publicRoot","root","dirty","flattenedNodes","_prevAssignedSlot","_previouslyAssignedNodes","assignedSlot","assignedNodes","observer","nextSibling","previousSibling","ownerShadyRoot","__insideAccessors","__outsideAccessors","__onCallbackListeners","toJSON","ensureShadyDataForNode","__shady","shadyDataForNode","settings","hasNativeShadowDOM","attachShadow","getRootNode","desc","hasDescriptors","inUse","IS_IE","IS_EDGE","useNativeAccessors","isTrackingLogicalChildNodes","nodeData","isShadyRoot","_localName","ownerShadyRootForNode","matches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","extend","n","pd","extendAll","mixin","twiddle","queue","shift","microtask","hasDocumentContains","contains","container","createPolyfilledHTMLCollection","nodes","getAttribute","isNaN","item","nodes.item","index","namedItem","nodes.namedItem","$jscomp.makeIterator","flushList","scheduled","enqueue","flush","didFlush","AsyncObserver","_scheduled","addedNodes","removedNodes","schedule","mutations","takeRecords","observeChildren","sd","add","_callback","_observer","_node","unobserveChildren","delete","size","filterMutations","targetRootNode","mutation","mutationInScope","m","removeAttribute","removeEventListener","windowAddEventListener","Window","windowRemoveEventListener","dispatchEvent","getElementById","elementQuerySelector","fragmentQuerySelector","documentQuerySelector","fragmentQuerySelectorAll","documentQuerySelectorAll","exports","nodeWalker","createTreeWalker","NodeFilter","SHOW_ALL","elementWalker","SHOW_ELEMENT","currentNode","parentElement","lastElementChild","previousElementSibling","nextElementSibling","children","textWalker","SHOW_TEXT","nextNode","nodeValue","nativeProtos","findNodeDescriptor","nodeAccessors","fragmentAccessors","documentAccessors","accessors","nativeTreeAccessors","nativeTreeWalker","clearNode","inertDoc","nativeIsConnectedAccessors","nativeIsConnected","nativeActiveElementDescriptor","OutsideAccessors","nativeTree","ClassNameAccessor","className","InsideAccessors","childNodes.item","childElementCount","tc","cn","join","nativeAccessors","containerName","htmlContainer","createElementNS","newContent","ShadowRootAccessor","shadowRoot","ActiveElementAccessor","activeElement","active","host","nativeContains","activeRoot","patchAccessorGroup","force","objDesc","patchAccessors","patchShadowRootAccessors","ShadyRoot","nodeName","patchOutsideElementAccessors","patchInsideElementAccessors","recordInsertBefore","ref_node","containerData","linkNode","resetTo","ref_nodeData","psd","nsd","recordRemoveChild","recordChildNodes","preferPerformance","parent","nativeMethods","refData","slotsAdded","scopingFn","addShadyScoping","ownerRoot","newScopeName","currentScopeForNode","oldScopeName","ShadowRoot","getScopingShim","scopingShim","removeShadyScoping","allowNativeInsert","needsScoping","currentScopeIsCorrect","treeVisitor","_addSlots","_asyncRender","parentData","hasShadowRootWithSlot","firstComposedNode","adoptNode","scheduleObserver","skipUnscoping","preventNativeRemove","removeOwnerShadyRoot","changeSlotContent","removingInsertionPoint","_removeContainedSlots","composed","flattened","_hasInsertionPoint","distributeAttributeChange","_updateSlotName","_slotList","_validateSlots","oldName","__slotName","_nameForSlot","slots","_slotMap","indexOf","list","_sortSlots","addedNode","removedNode","query","matcher","halter","queryElements","elements","result","nc","currentScopeName","correctScope","idx","currentScope","visitorFn","eventWrappersName","Date","now","composedGetter","composedProp","ev","alwaysComposed","unpatchedEvents","pathComposer","startNode","composedPath","current","startRoot","retarget","path","refNodePath","ancestor","lastRoot","rootIdx","eventMixin","__composed","type","isTrusted","__composedPath","currentTarget","__relatedTarget","__relatedTargetComposedPath","stopPropagation","__propagationStopped","stopImmediatePropagation","__immediatePropagationStopped","mixinComposedFlag","Base","klazz","options","event","nonBubblingEventsToRetarget","hasRetargeted","fireHandlers","phase","hs","__handlers","retargetNonBubblingEvent","AT_TARGET","lastFiredRoot","findListener","wrappers","capture","once","passive","savedType","savedListener","savedCapture","savedOnce","savedPassive","savedNode","fnOrObj","optionsOrCapture","handlerType","handleEvent","ael","__shadyTarget","wrapperFn","patchEvent","lastCurrentTargetDesc","eventPhase","BUBBLING_PHASE","CAPTURING_PHASE","rel","activateFocusEventOverrides","getPrototypeOf","patchProto","__sourceProto","PatchedEvent","PatchedCustomEvent","PatchedMouseEvent","patchEvents","composedClickFn","click","newSplice","addedCount","removed","calcSplices","currentEnd","old","oldEnd","currentStart","oldStart","prefixCount","suffixCount","minLength","min","currentValue","previousValue","index1","index2","count","equals","rowCount","columnCount","distances","north","west","edits","EDIT_ADD","EDIT_DELETE","northWest","EDIT_LEAVE","EDIT_UPDATE","reverse","splices","oldIndex","ShadyRootConstructionToken","isRendering","readyState","rootRendered","ancestorList","ancestors","unshift","token","SHADYROOT_NAME","_mode","mode","hostData","MODE_CLOSED","rootData","_hasRendered","_renderPending","_pendingSlots","_render","_getRenderRoot","renderRoot","_rendererForHost","_isInsertionPoint","wasRendering","_distribute","slot","_clearSlotAssignedNodes","slotData","_distributeNodeToSlot","slotParentRoot","slotParentData","_addAssignedToFlattenedNodes","prevAssignedNodes","_fireSlotChange","_compose","composeList","_composeNode","_updateChildNodes","d","forcedSlot","oldSlot","CATCHALL_NAME","assigned","nestedAssigned","_ensureSlotData","$jscomp.arrayFromIterator","_mapSlots","slotNamesToSort","sort","b","listA","listB","nA","nB","x","_removeFlattenedNodes","didRemove","connectMap","clear","__shadydom_connectedCallback","__shadydom_disconnectedCallback","ManageConnect","base","connected","disconnected","counter","connectFlag","connectedCallback","base.prototype.__shadydom_connectedCallback","disconnectedCallback","base.prototype.__shadydom_disconnectedCallback","isConnected","define","getAssignedSlot","windowMixin","nodeMixin","ATTRIBUTE_NODE","IsConnectedAccessor","textMixin","queryMixin","useNative","fragmentMixin","slotMixin","flatten","elementMixin","documentMixin","nativeBlur","blur","htmlElementMixin","shadowActive","property","substring","shadyData","eventName","shadowRootMixin","patchBuiltin","ShadyDOM","patch","nativeHTMLElement","Text","HTMLSlotElement","reservedTagList","isValidCustomElementName","reserved","has","validForm","nativeValue","__CE_isImportDocument","nextSiblingOrAncestorSibling","start","walkDeepDescendantElements","visitedImports","import","__CE_shadowRoot","setPropertyUnchecked","destination","CustomElementInternals","_localNameToDefinition","_constructorToDefinition","_patches","_hasPatches","setDefinition","definition","constructorFunction","addPatch","listener","patchTree","__CE_patched","connectTree","custom","__CE_state","upgradeElement","disconnectTree","patchAndUpgradeTree","upgrade","gatherElements","__CE_hasRegistry","__CE_documentLoadHandled","clonedVisitedImports","defaultView","localNameToDefinition","constructionStack","pop","failed","__CE_definition","attributeChangedCallback","observedAttributes","oldValue","namespace","DocumentConstructionObserver","internals","_internals","_document","_handleMutations","childList","subtree","disconnect","Deferred","_resolve","_promise","CustomElementRegistry","_elementDefinitionIsRunning","_whenDefinedDeferred","_flushCallback","this._flushCallback","_flushPending","_pendingDefinitions","_documentConstructionObserver","define.prototype","Function","SyntaxError","getCallback","callbackValue","adoptedCallback","_flush","upgrade.prototype","pendingDefinitions","elementsWithStableDefinitions","elementsWithPendingDefinitions","pendingElements","pendingUpgradableElements","get.prototype","whenDefined.prototype","CustomElementRegistry$$module$node_modules$$webcomponents$custom_elements$src$CustomElementRegistry_prototype$whenDefined","whenDefined","prior","some","polyfillWrapFlushCallback.prototype","polyfillWrapFlushCallback","outer","inner","Document_createElement","Document_createElementNS","Document_importNode","Document_prepend","Document_append","DocumentFragment_prepend","DocumentFragment_append","Node_cloneNode","Node_appendChild","Node_insertBefore","Node_removeChild","Node_replaceChild","Node_textContent","Element_attachShadow","Element_innerHTML","Element_getAttribute","Element_setAttribute","Element_removeAttribute","Element_getAttributeNS","getAttributeNS","Element_setAttributeNS","setAttributeNS","Element_removeAttributeNS","removeAttributeNS","Element_insertAdjacentElement","Element_insertAdjacentHTML","Element_prepend","Element_append","Element_before","Element_after","Element_replaceWith","Element_remove","HTMLElement_innerHTML","HTMLElement_insertAdjacentElement","HTMLElement_insertAdjacentHTML","$jscompDefaultExport","AlreadyConstructedMarker","constructorToDefinition","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Document_createElement.call","setPrototypeOf","lastIndex","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.HTMLElement","builtIn","appendPrependPatch","builtInMethod","connectedElements","prepend","append","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Document_importNode.call","NS_HTML","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Document_createElementNS.call","PatchParentNode","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Document_prepend","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Document_append","patch_textContent","baseDescriptor","assignedValue","childNodesLength","insertedNodes","nativeResult","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Node_insertBefore.call","nodeWasConnected","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Node_appendChild.call","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Node_cloneNode.call","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Node_removeChild.call","nodeToInsert","nodeToRemove","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Node_replaceChild.call","nodeToInsertWasConnected","thisIsConnected","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Node_textContent","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Node_textContent.get","beforeAfterPatch","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Element_before","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Element_after","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Element_replaceWith","wasConnected","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Element_remove","patch_innerHTML","htmlString","removedElements","patch_insertAdjacentElement","baseMethod","position","insertedElement","patch_insertAdjacentHTML","upgradeNodesInRange","end","marker","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Element_attachShadow","init","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Element_attachShadow.call","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Element_innerHTML","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Element_innerHTML.get","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.HTMLElement_innerHTML","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.HTMLElement_innerHTML.get","isTemplate","rawElement","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Element_setAttribute.call","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Element_getAttribute.call","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Element_setAttributeNS.call","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Element_getAttributeNS.call","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Element_removeAttribute.call","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Element_removeAttributeNS.call","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.HTMLElement_insertAdjacentElement","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Element_insertAdjacentElement","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.HTMLElement_insertAdjacentHTML","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Element_insertAdjacentHTML","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Element_prepend","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.Element_append","PatchChildNode","priorCustomElements","PatchHTMLElement","PatchDocument","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.DocumentFragment_prepend","$jscompDefaultExport$$module$node_modules$$webcomponents$custom_elements$src$Patch$Native.DocumentFragment_append","PatchNode","PatchElement","customElements","StyleNode","parse","RX$$module$node_modules$$webcomponents$shadycss$src$css_parse.comments","RX$$module$node_modules$$webcomponents$shadycss$src$css_parse.port","parseCss","OPEN_BRACE","previous","CLOSE_BRACE","trim","ss","_expandUnicodeEscapes","RX$$module$node_modules$$webcomponents$shadycss$src$css_parse.multipleSpaces","lastIndexOf","AT_START","MEDIA_START","types$$module$node_modules$$webcomponents$shadycss$src$css_parse.MEDIA_RULE","RX$$module$node_modules$$webcomponents$shadycss$src$css_parse.keyframesRule","types$$module$node_modules$$webcomponents$shadycss$src$css_parse.KEYFRAMES_RULE","VAR_START","types$$module$node_modules$$webcomponents$shadycss$src$css_parse.MIXIN_RULE","types$$module$node_modules$$webcomponents$shadycss$src$css_parse.STYLE_RULE","r$","r","code","repeat","stringify","preserveProperties","cssText","rules","RX$$module$node_modules$$webcomponents$shadycss$src$css_parse.customProp","RX$$module$node_modules$$webcomponents$shadycss$src$css_parse.mixinProp","RX$$module$node_modules$$webcomponents$shadycss$src$css_parse.mixinApply","RX$$module$node_modules$$webcomponents$shadycss$src$css_parse.varApply","STYLE_RULE","KEYFRAMES_RULE","MEDIA_RULE","MIXIN_RULE","comments","port","customProp","mixinProp","mixinApply","varApply","keyframesRule","multipleSpaces","nativeShadow","nativeCssVariables_","calcCssVariables","CSS","supports","cssBuild","ShadyCSS","nativeCss","nativeCssVariables","module$node_modules$$webcomponents$shadycss$src$style_settings.cssBuild","VAR_ASSIGN","MIXIN_MATCH","VAR_CONSUMED","ANIMATION_MATCH","MEDIA_MATCH","BRACKETED","styleTextSet","toCssText","forEachRule","rulesForStyle","style","isKeyframesSelector","rule","styleRuleCallback","keyframesRuleCallback","onlyActiveRules","skipRules","matchMedia","applyCss","moniker","contextNode","applyStyle","lastHeadApplyNode","applyStylePlaceHolder","placeHolder","createComment","scope","after","compareDocumentPosition","DOCUMENT_POSITION_PRECEDING","findMatchingParen","level","processVariableAndFallback","suffix","comma","fallback","setElementClassRaw","getIsExtends","typeExtension","is","extends","splitSelectorList","part","getCssBuild","__cssBuild","attrValue","CSS_BUILD_ATTR","buildComment","Comment","commentParts","isOptimalCssBuild","StyleTransformer","domAddScope","_transformDom","transformer","_content","shouldRemoveScope","classList","remove","SCOPE_NAME","CLASS","domReplaceScope","oldScope","newScope","domRemoveScope","elementStyles","styleRules","css","ext","hostScope","_calcHostScope","_calcElementScope","CSS_CLASS_PREFIX","isScoped","_transformRule","transformedSelector","_transformRuleCss","_transformComplexSelector","p$","COMPLEX_SELECTOR_SEP","_twiddleNthPlus","NTH","inside","_preserveMatchesPseudo","MATCHES","input","MATCHES_REPLACEMENT","_replaceMatchesPseudo","reduce","acc","cur","stop","isNth","isMatches","SLOTTED_START","SIMPLE_SELECTOR_SEP","info","_transformCompoundSelector","combinator","slottedIndex","SLOTTED","HOST","_transformHostSelector","_transformSimpleSelector","slotted","SLOTTED_PAREN","paren","DIR_PAREN","before","dir","output","PSEUDO_PREFIX","HOST_PAREN","SIMPLE_SELECTOR_PREFIX","SELECTOR_NO_MATCH","normalizeRootSelector","ROOT","_transformDocumentSelector","SCOPE_DOC_SELECTOR","$jscomp.global.Object.defineProperties","StyleInfo","ast","placeholder","ownStylePropertyNames","overrideStyleProperties","customStyle","scopeSelector","styleProperties","styleInfo","_getStyleRules","method","StyleProperties","decorateStyles","props","keyframes","ruleIndex","decorateRule","propertyInfo","collectPropertiesInCssText","onKeyframesRule","_keyframes","names","properties","collectProperties","collectCssText","collectConsumingCssText","any","valueForProperty","valueForProperties","propertyValue","colon","pp","propertyDataFromStyles","selectorToMatch","parseInt","whenHostOrRootRule","parsedSelector","isRoot","isHost","hostAndRootPropertiesForScope","hostProps","rootProps","_element","transformStyles","hostSelector","hostRx","RegExp","StyleInfo$$module$node_modules$$webcomponents$shadycss$src$style_info.get","keyframeTransforms","_elementKeyframeTransforms","applyProperties","applyKeyframeTransforms","hasAnimations","keyframeNamesToTransform","keyframe","transform","_scopeSelector","keyframesRules","keyframesNameRx","_scopeKeyframes","transformedKeyframesName","scopeId","_keyframesRuleTransformer","applyCustomStyle","XSCOPE_NAME","placeholderMap","ce","origDefine","wrappedDefine","clazz","StyleCache","cache","store","tagname","styleElement","typeMax","fetch","ownPropertyNames","entry","_validate","pn","scopeRegExp","getCurrentScope","getOwnerScope","handler","mxns","mxn","unscopedNodes","unscopedNode","scopeForPreviouslyUnscopedNode","delayedStart","requestAnimationFrame","module$node_modules$$webcomponents$shadycss$src$document_watcher.flush","templateMap","invalidate","elementName","templateIsValid","startValidatingTemplate","_validating","styleCache","ScopingShim","_scopeCounter","_documentOwner","_documentOwnerStyleInfo","StyleInfo$$module$node_modules$$webcomponents$shadycss$src$style_info.set","_elementsHaveApplied","_customStyleInterface","_applyShim","flush.prototype","getStyleAst.prototype","getStyleAst","styleAstToString.prototype","styleAstToString","prepareTemplate.prototype","prepareTemplate","prepareTemplateDom","prepareTemplateStyles","prepareTemplateStyles.prototype","_prepared","optimalBuild","styleTextParts","styles","hasAttribute","scopingAttribute","newStyle","_ensure","hasMixins","_generateStaticStyle","shadowroot","_style","_ownPropertyNames","prepareTemplateDom.prototype","_domPrepared","_ensureCustomStyleInterface","CustomStyleInterface","transformCustomStyleForDocument","flushCustomStyles","_ensureApplyShim","ApplyShim","flushCustomStyles.prototype","customStyles","_revalidateCustomStyleApplyShim","_revalidateApplyShim","_updateProperties","_applyCustomStyles","styleDocument","styleElement.prototype","overrideProps","_prepareHost","styleElementNativeVariables","removeProperty","setProperty","styleElementShimVariables","_applyStyleProperties","cachedStyle","cacheEntry","oldScopeSelector","_generateScopeSelector","applyElementStyle","applyElementScopeSelector","v","_styleOwnerForNode","owner","ownerStyleInfo","hostAndRootProps","propertiesMatchingHost","_mixinOverrideStyles","overrides","reify","styleDocument.prototype","styleSubtree","styleSubtree.prototype","shadowChildren","transformCustomStyleForDocument.prototype","documentRule","getComputedStyleValue.prototype","getComputedStyleValue","getComputedStyle","getPropertyValue","setElementClass.prototype","setElementClass","classString","classes","scopeName","classAttr","k$","_styleInfoForNode.prototype","_styleInfoForNode","scopeNode.prototype","scopeNode","unscopeNode.prototype","unscopeNode","scopeForNode.prototype","scopeForNode","currentScopeForNode.prototype","elementExtends","forceJURL","IDNAToASCII","h","_isInvalid","percentEscape","unicode","charCodeAt","encodeURIComponent","percentEscapeQuery","stateOverride","message","errors","state","cursor","buffer","seenAt","seenBracket","ALPHA","ALPHANUMERIC","_scheme","relative","_isRelative","_query","_fragment","_schemeData","_host","_port","_path","_username","_password","nextC","nextNextC","cp","tempC","tmp","relativePathDotMapping","jURL","url","_url","hasWorkingUrl","u","URL","pathname","href","authority","protocol","hostname","hash","origin","OriginalURL","createObjectURL","jURL.createObjectURL","blob","revokeObjectURL","jURL.revokeObjectURL","native_baseURI","shouldFlush","flusher","flushAndFire","ready"],"mappings":"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","file":"webcomponents-bundle.js","sourcesContent":["/**\n * @license\n * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\n(function(scope) {\n\n 'use strict';\n\n // defaultPrevented is broken in IE.\n // https://connect.microsoft.com/IE/feedback/details/790389/event-defaultprevented-returns-false-after-preventdefault-was-called\n var workingDefaultPrevented = (function() {\n var e = document.createEvent('Event');\n e.initEvent('foo', true, true);\n e.preventDefault();\n return e.defaultPrevented;\n })();\n\n if (!workingDefaultPrevented) {\n var origPreventDefault = Event.prototype.preventDefault;\n Event.prototype.preventDefault = function() {\n if (!this.cancelable) {\n return;\n }\n\n origPreventDefault.call(this);\n\n Object.defineProperty(this, 'defaultPrevented', {\n get: function() {\n return true;\n },\n configurable: true\n });\n };\n }\n\n var isIE = /Trident/.test(navigator.userAgent);\n\n // CustomEvent constructor shim\n if (!window.CustomEvent || isIE && (typeof window.CustomEvent !== 'function')) {\n window.CustomEvent = function(inType, params) {\n params = params || {};\n var e = document.createEvent('CustomEvent');\n e.initCustomEvent(inType, Boolean(params.bubbles), Boolean(params.cancelable), params.detail);\n return e;\n };\n window.CustomEvent.prototype = window.Event.prototype;\n }\n\n // Event constructor shim\n if (!window.Event || isIE && (typeof window.Event !== 'function')) {\n var origEvent = window.Event;\n window.Event = function(inType, params) {\n params = params || {};\n var e = document.createEvent('Event');\n e.initEvent(inType, Boolean(params.bubbles), Boolean(params.cancelable));\n return e;\n };\n if (origEvent) {\n for (var i in origEvent) {\n window.Event[i] = origEvent[i];\n }\n }\n window.Event.prototype = origEvent.prototype;\n }\n\n if (!window.MouseEvent || isIE && (typeof window.MouseEvent !== 'function')) {\n var origMouseEvent = window.MouseEvent;\n window.MouseEvent = function(inType, params) {\n params = params || {};\n var e = document.createEvent('MouseEvent');\n e.initMouseEvent(inType,\n Boolean(params.bubbles), Boolean(params.cancelable),\n params.view || window, params.detail,\n params.screenX, params.screenY, params.clientX, params.clientY,\n params.ctrlKey, params.altKey, params.shiftKey, params.metaKey,\n params.button, params.relatedTarget);\n return e;\n };\n if (origMouseEvent) {\n for (var i in origMouseEvent) {\n window.MouseEvent[i] = origMouseEvent[i];\n }\n }\n window.MouseEvent.prototype = origMouseEvent.prototype;\n }\n\n // ES6 stuff\n if (!Array.from) {\n Array.from = function (object) {\n return [].slice.call(object);\n };\n }\n\n if (!Object.assign) {\n var assign = function(target, source) {\n var n$ = Object.getOwnPropertyNames(source);\n for (var i=0, p; i < n$.length; i++) {\n p = n$[i];\n target[p] = source[p];\n }\n }\n\n Object.assign = function(target, sources) {\n var args = [].slice.call(arguments, 1);\n for (var i=0, s; i < args.length; i++) {\n s = args[i];\n if (s) {\n assign(target, s);\n }\n }\n return target;\n }\n }\n\n})(window.WebComponents);\n",null,null,null,null,null,null,null,"/**\n@license\nCopyright (c) 2018 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// import polyfill for Symbol and Object.getOwnPropertySymbols\nimport '../node_modules/get-own-property-symbols/build/get-own-property-symbols.max.js';\n\n// Fix issue in toString patch when compiled into strict mode via closure\n// https://github.com/es-shims/get-own-property-symbols/issues/16\nconst toString = Object.prototype.toString;\nObject.prototype.toString = function() {\n if (this === undefined) {\n return '[object Undefined]';\n } else if (this === null) {\n return '[object Null]';\n } else {\n return toString.call(this);\n }\n}\n\n// overwrite Object.keys to filter out symbols\nObject.keys = function(obj) {\n return Object.getOwnPropertyNames(obj).filter((name) => {\n const prop = Object.getOwnPropertyDescriptor(obj, name);\n return prop && prop.enumerable;\n });\n};\n\n// implement iterators for IE 11\nconst iterator = window.Symbol.iterator;\n\nif (!String.prototype[iterator] || !String.prototype.codePointAt) {\n /** @this {String} */\n String.prototype[iterator] = function*() {\n for (let i = 0; i < this.length; i++) {\n yield this[i];\n }\n }\n}\n\nif (!Set.prototype[iterator]) {\n /** @this {Set} */\n Set.prototype[iterator] = function*() {\n const temp = [];\n this.forEach((value) => {\n temp.push(value);\n });\n for (let i = 0; i < temp.length; i++) {\n yield temp[i];\n }\n };\n}\n\nif (!Map.prototype[iterator]) {\n /** @this {Map} */\n Map.prototype[iterator] = function*() {\n const entries = [];\n this.forEach((value, key) => {\n entries.push([key, value]);\n });\n for(let i = 0; i < entries.length; i++) {\n yield entries[i];\n }\n };\n}\n","/**\n * @license\n * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\n// minimal template polyfill\n(function() {\n 'use strict';\n\n var needsTemplate = (typeof HTMLTemplateElement === 'undefined');\n var brokenDocFragment = !(document.createDocumentFragment().cloneNode() instanceof DocumentFragment);\n var needsDocFrag = false;\n\n // NOTE: Replace DocumentFragment to work around IE11 bug that\n // causes children of a document fragment modified while\n // there is a mutation observer to not have a parentNode, or\n // have a broken parentNode (!?!)\n if (/Trident/.test(navigator.userAgent)) {\n (function() {\n\n needsDocFrag = true;\n\n var origCloneNode = Node.prototype.cloneNode;\n Node.prototype.cloneNode = function cloneNode(deep) {\n var newDom = origCloneNode.call(this, deep);\n if (this instanceof DocumentFragment) {\n newDom.__proto__ = DocumentFragment.prototype;\n }\n return newDom;\n };\n\n // IE's DocumentFragment querySelector code doesn't work when\n // called on an element instance\n DocumentFragment.prototype.querySelectorAll = HTMLElement.prototype.querySelectorAll;\n DocumentFragment.prototype.querySelector = HTMLElement.prototype.querySelector;\n\n Object.defineProperties(DocumentFragment.prototype, {\n 'nodeType': {\n get: function () {\n return Node.DOCUMENT_FRAGMENT_NODE;\n },\n configurable: true\n },\n\n 'localName': {\n get: function () {\n return undefined;\n },\n configurable: true\n },\n\n 'nodeName': {\n get: function () {\n return '#document-fragment';\n },\n configurable: true\n }\n });\n\n var origInsertBefore = Node.prototype.insertBefore;\n function insertBefore(newNode, refNode) {\n if (newNode instanceof DocumentFragment) {\n var child;\n while ((child = newNode.firstChild)) {\n origInsertBefore.call(this, child, refNode);\n }\n } else {\n origInsertBefore.call(this, newNode, refNode);\n }\n return newNode;\n }\n Node.prototype.insertBefore = insertBefore;\n\n var origAppendChild = Node.prototype.appendChild;\n Node.prototype.appendChild = function appendChild(child) {\n if (child instanceof DocumentFragment) {\n insertBefore.call(this, child, null);\n } else {\n origAppendChild.call(this, child);\n }\n return child;\n };\n\n var origRemoveChild = Node.prototype.removeChild;\n var origReplaceChild = Node.prototype.replaceChild;\n Node.prototype.replaceChild = function replaceChild(newChild, oldChild) {\n if (newChild instanceof DocumentFragment) {\n insertBefore.call(this, newChild, oldChild);\n origRemoveChild.call(this, oldChild);\n } else {\n origReplaceChild.call(this, newChild, oldChild);\n }\n return oldChild;\n };\n\n Document.prototype.createDocumentFragment = function createDocumentFragment() {\n var frag = this.createElement('df');\n frag.__proto__ = DocumentFragment.prototype;\n return frag;\n };\n\n var origImportNode = Document.prototype.importNode;\n Document.prototype.importNode = function importNode(impNode, deep) {\n deep = deep || false;\n var newNode = origImportNode.call(this, impNode, deep);\n if (impNode instanceof DocumentFragment) {\n newNode.__proto__ = DocumentFragment.prototype;\n }\n return newNode;\n };\n })();\n }\n\n // NOTE: we rely on this cloneNode not causing element upgrade.\n // This means this polyfill must load before the CE polyfill and\n // this would need to be re-worked if a browser supports native CE\n // but not <template>.\n var capturedCloneNode = Node.prototype.cloneNode;\n var capturedCreateElement = Document.prototype.createElement;\n var capturedImportNode = Document.prototype.importNode;\n var capturedRemoveChild = Node.prototype.removeChild;\n var capturedAppendChild = Node.prototype.appendChild;\n var capturedReplaceChild = Node.prototype.replaceChild;\n var capturedParseFromString = DOMParser.prototype.parseFromString;\n var capturedHTMLElementInnerHTML = Object.getOwnPropertyDescriptor(window.HTMLElement.prototype, 'innerHTML') || {\n /**\n * @this {!HTMLElement}\n * @return {string}\n */\n get: function() {\n return this.innerHTML;\n },\n /**\n * @this {!HTMLElement}\n * @param {string}\n */\n set: function(text) {\n this.innerHTML = text;\n }\n };\n var capturedChildNodes = Object.getOwnPropertyDescriptor(window.Node.prototype, 'childNodes') || {\n /**\n * @this {!Node}\n * @return {!NodeList}\n */\n get: function() {\n return this.childNodes;\n }\n };\n\n var elementQuerySelectorAll = Element.prototype.querySelectorAll;\n var docQuerySelectorAll = Document.prototype.querySelectorAll;\n var fragQuerySelectorAll = DocumentFragment.prototype.querySelectorAll;\n\n var scriptSelector = 'script:not([type]),script[type=\"application/javascript\"],script[type=\"text/javascript\"]';\n\n function QSA(node, selector) {\n // IE 11 throws a SyntaxError with `scriptSelector` if the node has no children due to the `:not([type])` syntax\n if (!node.childNodes.length) {\n return [];\n }\n switch (node.nodeType) {\n case Node.DOCUMENT_NODE:\n return docQuerySelectorAll.call(node, selector);\n case Node.DOCUMENT_FRAGMENT_NODE:\n return fragQuerySelectorAll.call(node, selector);\n default:\n return elementQuerySelectorAll.call(node, selector);\n }\n }\n\n // returns true if nested templates cannot be cloned (they cannot be on\n // some impl's like Safari 8 and Edge)\n // OR if cloning a document fragment does not result in a document fragment\n var needsCloning = (function() {\n if (!needsTemplate) {\n var t = document.createElement('template');\n var t2 = document.createElement('template');\n t2.content.appendChild(document.createElement('div'));\n t.content.appendChild(t2);\n var clone = t.cloneNode(true);\n return (clone.content.childNodes.length === 0 || clone.content.firstChild.content.childNodes.length === 0\n || brokenDocFragment);\n }\n })();\n\n var TEMPLATE_TAG = 'template';\n var PolyfilledHTMLTemplateElement = function() {};\n\n if (needsTemplate) {\n\n var contentDoc = document.implementation.createHTMLDocument('template');\n var canDecorate = true;\n\n var templateStyle = document.createElement('style');\n templateStyle.textContent = TEMPLATE_TAG + '{display:none;}';\n\n var head = document.head;\n head.insertBefore(templateStyle, head.firstElementChild);\n\n /**\n Provides a minimal shim for the <template> element.\n */\n PolyfilledHTMLTemplateElement.prototype = Object.create(HTMLElement.prototype);\n\n\n // if elements do not have `innerHTML` on instances, then\n // templates can be patched by swizzling their prototypes.\n var canProtoPatch =\n !(document.createElement('div').hasOwnProperty('innerHTML'));\n\n /**\n The `decorate` method moves element children to the template's `content`.\n NOTE: there is no support for dynamically adding elements to templates.\n */\n PolyfilledHTMLTemplateElement.decorate = function(template) {\n // if the template is decorated or not in HTML namespace, return fast\n if (template.content ||\n template.namespaceURI !== document.documentElement.namespaceURI) {\n return;\n }\n template.content = contentDoc.createDocumentFragment();\n var child;\n while ((child = template.firstChild)) {\n capturedAppendChild.call(template.content, child);\n }\n // NOTE: prefer prototype patching for performance and\n // because on some browsers (IE11), re-defining `innerHTML`\n // can result in intermittent errors.\n if (canProtoPatch) {\n template.__proto__ = PolyfilledHTMLTemplateElement.prototype;\n } else {\n template.cloneNode = function(deep) {\n return PolyfilledHTMLTemplateElement._cloneNode(this, deep);\n };\n // add innerHTML to template, if possible\n // Note: this throws on Safari 7\n if (canDecorate) {\n try {\n defineInnerHTML(template);\n defineOuterHTML(template);\n } catch (err) {\n canDecorate = false;\n }\n }\n }\n // bootstrap recursively\n PolyfilledHTMLTemplateElement.bootstrap(template.content);\n };\n\n // Taken from https://github.com/jquery/jquery/blob/73d7e6259c63ac45f42c6593da8c2796c6ce9281/src/manipulation/wrapMap.js\n var topLevelWrappingMap = {\n 'option': ['select'],\n 'thead': ['table'],\n 'col': ['colgroup', 'table'],\n 'tr': ['tbody', 'table'],\n 'th': ['tr', 'tbody', 'table'],\n 'td': ['tr', 'tbody', 'table']\n };\n\n var getTagName = function(text) {\n // Taken from https://github.com/jquery/jquery/blob/73d7e6259c63ac45f42c6593da8c2796c6ce9281/src/manipulation/var/rtagName.js\n return ( /<([a-z][^/\\0>\\x20\\t\\r\\n\\f]+)/i.exec(text) || ['', ''])[1].toLowerCase();\n };\n\n var defineInnerHTML = function defineInnerHTML(obj) {\n Object.defineProperty(obj, 'innerHTML', {\n get: function() {\n return getInnerHTML(this);\n },\n set: function(text) {\n // For IE11, wrap the text in the correct (table) context\n var wrap = topLevelWrappingMap[getTagName(text)];\n if (wrap) {\n for (var i = 0; i < wrap.length; i++) {\n text = '<' + wrap[i] + '>' + text + '</' + wrap[i] + '>';\n }\n }\n contentDoc.body.innerHTML = text;\n PolyfilledHTMLTemplateElement.bootstrap(contentDoc);\n while (this.content.firstChild) {\n capturedRemoveChild.call(this.content, this.content.firstChild);\n }\n var body = contentDoc.body;\n // If we had wrapped, get back to the original node\n if (wrap) {\n for (var j = 0; j < wrap.length; j++) {\n body = body.lastChild;\n }\n }\n while (body.firstChild) {\n capturedAppendChild.call(this.content, body.firstChild);\n }\n },\n configurable: true\n });\n };\n\n var defineOuterHTML = function defineOuterHTML(obj) {\n Object.defineProperty(obj, 'outerHTML', {\n get: function() {\n return '<' + TEMPLATE_TAG + '>' + this.innerHTML + '</' + TEMPLATE_TAG + '>';\n },\n set: function(innerHTML) {\n if (this.parentNode) {\n contentDoc.body.innerHTML = innerHTML;\n var docFrag = this.ownerDocument.createDocumentFragment();\n while (contentDoc.body.firstChild) {\n capturedAppendChild.call(docFrag, contentDoc.body.firstChild);\n }\n capturedReplaceChild.call(this.parentNode, docFrag, this);\n } else {\n throw new Error(\"Failed to set the 'outerHTML' property on 'Element': This element has no parent node.\");\n }\n },\n configurable: true\n });\n };\n\n defineInnerHTML(PolyfilledHTMLTemplateElement.prototype);\n defineOuterHTML(PolyfilledHTMLTemplateElement.prototype);\n\n /**\n The `bootstrap` method is called automatically and \"fixes\" all\n <template> elements in the document referenced by the `doc` argument.\n */\n PolyfilledHTMLTemplateElement.bootstrap = function bootstrap(doc) {\n var templates = QSA(doc, TEMPLATE_TAG);\n for (var i=0, l=templates.length, t; (i<l) && (t=templates[i]); i++) {\n PolyfilledHTMLTemplateElement.decorate(t);\n }\n };\n\n // auto-bootstrapping for main document\n document.addEventListener('DOMContentLoaded', function() {\n PolyfilledHTMLTemplateElement.bootstrap(document);\n });\n\n // Patch document.createElement to ensure newly created templates have content\n Document.prototype.createElement = function createElement() {\n var el = capturedCreateElement.apply(this, arguments);\n if (el.localName === 'template') {\n PolyfilledHTMLTemplateElement.decorate(el);\n }\n return el;\n };\n\n DOMParser.prototype.parseFromString = function() {\n var el = capturedParseFromString.apply(this, arguments);\n PolyfilledHTMLTemplateElement.bootstrap(el);\n return el;\n };\n\n Object.defineProperty(HTMLElement.prototype, 'innerHTML', {\n get: function() {\n return getInnerHTML(this);\n },\n set: function(text) {\n capturedHTMLElementInnerHTML.set.call(this, text);\n PolyfilledHTMLTemplateElement.bootstrap(this);\n },\n configurable: true,\n enumerable: true\n });\n\n // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-end.html#escapingString\n var escapeAttrRegExp = /[&\\u00A0\"]/g;\n var escapeDataRegExp = /[&\\u00A0<>]/g;\n\n var escapeReplace = function(c) {\n switch (c) {\n case '&':\n return '&amp;';\n case '<':\n return '&lt;';\n case '>':\n return '&gt;';\n case '\"':\n return '&quot;';\n case '\\u00A0':\n return '&nbsp;';\n }\n };\n\n var escapeAttr = function(s) {\n return s.replace(escapeAttrRegExp, escapeReplace);\n };\n\n var escapeData = function(s) {\n return s.replace(escapeDataRegExp, escapeReplace);\n };\n\n var makeSet = function(arr) {\n var set = {};\n for (var i = 0; i < arr.length; i++) {\n set[arr[i]] = true;\n }\n return set;\n };\n\n // http://www.whatwg.org/specs/web-apps/current-work/#void-elements\n var voidElements = makeSet([\n 'area',\n 'base',\n 'br',\n 'col',\n 'command',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr'\n ]);\n\n var plaintextParents = makeSet([\n 'style',\n 'script',\n 'xmp',\n 'iframe',\n 'noembed',\n 'noframes',\n 'plaintext',\n 'noscript'\n ]);\n\n /**\n * @param {Node} node\n * @param {Node} parentNode\n * @param {Function=} callback\n */\n var getOuterHTML = function(node, parentNode, callback) {\n switch (node.nodeType) {\n case Node.ELEMENT_NODE: {\n var tagName = node.localName;\n var s = '<' + tagName;\n var attrs = node.attributes;\n for (var i = 0, attr; (attr = attrs[i]); i++) {\n s += ' ' + attr.name + '=\"' + escapeAttr(attr.value) + '\"';\n }\n s += '>';\n if (voidElements[tagName]) {\n return s;\n }\n return s + getInnerHTML(node, callback) + '</' + tagName + '>';\n }\n case Node.TEXT_NODE: {\n var data = /** @type {Text} */ (node).data;\n if (parentNode && plaintextParents[parentNode.localName]) {\n return data;\n }\n return escapeData(data);\n }\n case Node.COMMENT_NODE: {\n return '<!--' + /** @type {Comment} */ (node).data + '-->';\n }\n default: {\n window.console.error(node);\n throw new Error('not implemented');\n }\n }\n };\n\n /**\n * @param {Node} node\n * @param {Function=} callback\n */\n var getInnerHTML = function(node, callback) {\n if (node.localName === 'template') {\n node = /** @type {HTMLTemplateElement} */ (node).content;\n }\n var s = '';\n var c$ = callback ? callback(node) : capturedChildNodes.get.call(node);\n for (var i=0, l=c$.length, child; (i<l) && (child=c$[i]); i++) {\n s += getOuterHTML(child, node, callback);\n }\n return s;\n };\n\n }\n\n // make cloning/importing work!\n if (needsTemplate || needsCloning) {\n\n PolyfilledHTMLTemplateElement._cloneNode = function _cloneNode(template, deep) {\n var clone = capturedCloneNode.call(template, false);\n // NOTE: decorate doesn't auto-fix children because they are already\n // decorated so they need special clone fixup.\n if (this.decorate) {\n this.decorate(clone);\n }\n if (deep) {\n // NOTE: use native clone node to make sure CE's wrapped\n // cloneNode does not cause elements to upgrade.\n capturedAppendChild.call(clone.content, capturedCloneNode.call(template.content, true));\n // now ensure nested templates are cloned correctly.\n fixClonedDom(clone.content, template.content);\n }\n return clone;\n };\n\n // Given a source and cloned subtree, find <template>'s in the cloned\n // subtree and replace them with cloned <template>'s from source.\n // We must do this because only the source templates have proper .content.\n var fixClonedDom = function fixClonedDom(clone, source) {\n // do nothing if cloned node is not an element\n if (!source.querySelectorAll) return;\n // these two lists should be coincident\n var s$ = QSA(source, TEMPLATE_TAG);\n if (s$.length === 0) {\n return;\n }\n var t$ = QSA(clone, TEMPLATE_TAG);\n for (var i=0, l=t$.length, t, s; i<l; i++) {\n s = s$[i];\n t = t$[i];\n if (PolyfilledHTMLTemplateElement && PolyfilledHTMLTemplateElement.decorate) {\n PolyfilledHTMLTemplateElement.decorate(s);\n }\n capturedReplaceChild.call(t.parentNode, cloneNode.call(s, true), t);\n }\n };\n\n // make sure scripts inside of a cloned template are executable\n var fixClonedScripts = function fixClonedScripts(fragment) {\n var scripts = QSA(fragment, scriptSelector);\n for (var ns, s, i = 0; i < scripts.length; i++) {\n s = scripts[i];\n ns = capturedCreateElement.call(document, 'script');\n ns.textContent = s.textContent;\n var attrs = s.attributes;\n for (var ai = 0, a; ai < attrs.length; ai++) {\n a = attrs[ai];\n ns.setAttribute(a.name, a.value);\n }\n capturedReplaceChild.call(s.parentNode, ns, s);\n }\n };\n\n // override all cloning to fix the cloned subtree to contain properly\n // cloned templates.\n var cloneNode = Node.prototype.cloneNode = function cloneNode(deep) {\n var dom;\n // workaround for Edge bug cloning documentFragments\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/8619646/\n if (!needsDocFrag && brokenDocFragment && this instanceof DocumentFragment) {\n if (!deep) {\n return this.ownerDocument.createDocumentFragment();\n } else {\n dom = importNode.call(this.ownerDocument, this, true);\n }\n } else if (this.nodeType === Node.ELEMENT_NODE &&\n this.localName === TEMPLATE_TAG &&\n this.namespaceURI == document.documentElement.namespaceURI) {\n dom = PolyfilledHTMLTemplateElement._cloneNode(this, deep);\n } else {\n dom = capturedCloneNode.call(this, deep);\n }\n // template.content is cloned iff `deep`.\n if (deep) {\n fixClonedDom(dom, this);\n }\n return dom;\n };\n\n // NOTE: we are cloning instead of importing <template>'s.\n // However, the ownerDocument of the cloned template will be correct!\n // This is because the native import node creates the right document owned\n // subtree and `fixClonedDom` inserts cloned templates into this subtree,\n // thus updating the owner doc.\n var importNode = Document.prototype.importNode = function importNode(element, deep) {\n deep = deep || false;\n if (element.localName === TEMPLATE_TAG) {\n return PolyfilledHTMLTemplateElement._cloneNode(element, deep);\n } else {\n var dom = capturedImportNode.call(this, element, deep);\n if (deep) {\n fixClonedDom(dom, element);\n fixClonedScripts(dom);\n }\n return dom;\n }\n };\n }\n\n if (needsTemplate) {\n window.HTMLTemplateElement = PolyfilledHTMLTemplateElement;\n }\n\n})();\n","import promiseFinally from './finally';\n\n// Store setTimeout reference so promise-polyfill will be unaffected by\n// other code modifying setTimeout (like sinon.useFakeTimers())\nvar setTimeoutFunc = setTimeout;\n\nfunction noop() {}\n\n// Polyfill for Function.prototype.bind\nfunction bind(fn, thisArg) {\n return function() {\n fn.apply(thisArg, arguments);\n };\n}\n\n/**\n * @constructor\n * @param {Function} fn\n */\nfunction Promise(fn) {\n if (!(this instanceof Promise))\n throw new TypeError('Promises must be constructed via new');\n if (typeof fn !== 'function') throw new TypeError('not a function');\n /** @type {!number} */\n this._state = 0;\n /** @type {!boolean} */\n this._handled = false;\n /** @type {Promise|undefined} */\n this._value = undefined;\n /** @type {!Array<!Function>} */\n this._deferreds = [];\n\n doResolve(fn, this);\n}\n\nfunction handle(self, deferred) {\n while (self._state === 3) {\n self = self._value;\n }\n if (self._state === 0) {\n self._deferreds.push(deferred);\n return;\n }\n self._handled = true;\n Promise._immediateFn(function() {\n var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n return;\n }\n var ret;\n try {\n ret = cb(self._value);\n } catch (e) {\n reject(deferred.promise, e);\n return;\n }\n resolve(deferred.promise, ret);\n });\n}\n\nfunction resolve(self, newValue) {\n try {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self)\n throw new TypeError('A promise cannot be resolved with itself.');\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = newValue.then;\n if (newValue instanceof Promise) {\n self._state = 3;\n self._value = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(bind(then, newValue), self);\n return;\n }\n }\n self._state = 1;\n self._value = newValue;\n finale(self);\n } catch (e) {\n reject(self, e);\n }\n}\n\nfunction reject(self, newValue) {\n self._state = 2;\n self._value = newValue;\n finale(self);\n}\n\nfunction finale(self) {\n if (self._state === 2 && self._deferreds.length === 0) {\n Promise._immediateFn(function() {\n if (!self._handled) {\n Promise._unhandledRejectionFn(self._value);\n }\n });\n }\n\n for (var i = 0, len = self._deferreds.length; i < len; i++) {\n handle(self, self._deferreds[i]);\n }\n self._deferreds = null;\n}\n\n/**\n * @constructor\n */\nfunction Handler(onFulfilled, onRejected, promise) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, self) {\n var done = false;\n try {\n fn(\n function(value) {\n if (done) return;\n done = true;\n resolve(self, value);\n },\n function(reason) {\n if (done) return;\n done = true;\n reject(self, reason);\n }\n );\n } catch (ex) {\n if (done) return;\n done = true;\n reject(self, ex);\n }\n}\n\nPromise.prototype['catch'] = function(onRejected) {\n return this.then(null, onRejected);\n};\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n // @ts-ignore\n var prom = new this.constructor(noop);\n\n handle(this, new Handler(onFulfilled, onRejected, prom));\n return prom;\n};\n\nPromise.prototype['finally'] = promiseFinally;\n\nPromise.all = function(arr) {\n return new Promise(function(resolve, reject) {\n if (!arr || typeof arr.length === 'undefined')\n throw new TypeError('Promise.all accepts an array');\n var args = Array.prototype.slice.call(arr);\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n\n function res(i, val) {\n try {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(\n val,\n function(val) {\n res(i, val);\n },\n reject\n );\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nPromise.resolve = function(value) {\n if (value && typeof value === 'object' && value.constructor === Promise) {\n return value;\n }\n\n return new Promise(function(resolve) {\n resolve(value);\n });\n};\n\nPromise.reject = function(value) {\n return new Promise(function(resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function(values) {\n return new Promise(function(resolve, reject) {\n for (var i = 0, len = values.length; i < len; i++) {\n values[i].then(resolve, reject);\n }\n });\n};\n\n// Use polyfill for setImmediate for performance gains\nPromise._immediateFn =\n (typeof setImmediate === 'function' &&\n function(fn) {\n setImmediate(fn);\n }) ||\n function(fn) {\n setTimeoutFunc(fn, 0);\n };\n\nPromise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n if (typeof console !== 'undefined' && console) {\n console.warn('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console\n }\n};\n\nexport default Promise;\n","/**\n * @this {Promise}\n */\nfunction finallyConstructor(callback) {\n var constructor = this.constructor;\n return this.then(\n function(value) {\n return constructor.resolve(callback()).then(function() {\n return value;\n });\n },\n function(reason) {\n return constructor.resolve(callback()).then(function() {\n return constructor.reject(reason);\n });\n }\n );\n}\n\nexport default finallyConstructor;\n","/**\n@license\nCopyright (c) 2017 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\nimport PromisePolyfill from '../node_modules/promise-polyfill/src/index.js';\n\n/*\nAssign the ES6 promise polyfill to window ourselves instead of using the \"auto\" polyfill\nto work around https://github.com/webcomponents/webcomponentsjs/issues/837\n*/\nif (!window.Promise) {\n window.Promise = PromisePolyfill;\n // save Promise API\n /* eslint-disable no-self-assign */\n // PromisePolyfill.prototype['catch'] = PromisePolyfill.prototype.catch;\n PromisePolyfill.prototype['then'] = PromisePolyfill.prototype.then;\n // PromisePolyfill.prototype['finally'] = PromisePolyfill.prototype.finally;\n PromisePolyfill['all'] = PromisePolyfill.all;\n PromisePolyfill['race'] = PromisePolyfill.race;\n PromisePolyfill['resolve'] = PromisePolyfill.resolve;\n PromisePolyfill['reject'] = PromisePolyfill.reject;\n /* eslint-enable */\n\n // approach copied from https://github.com/Polymer/polymer/blob/v3.0.2/lib/utils/async.js\n const node = document.createTextNode('');\n const twiddleNode = function twiddleNode() {\n node.textContent = node.textContent.length > 0 ? '' : 'a';\n };\n /** @type {!Array<function():void>} */\n const callbacks = [];\n (new MutationObserver(() => {\n const len = callbacks.length;\n for (let i = 0; i < len; i++) {\n callbacks[i]();\n }\n callbacks.splice(0, len);\n }).observe(node, {characterData: true}));\n\n // set _immediateFn to a MutationObserver for close-to-native timing\n PromisePolyfill._immediateFn = (fn) => {\n callbacks.push(fn);\n twiddleNode();\n }\n}\n","/*!\nCopyright (C) 2015 by WebReflection\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n*/\n(function (Object, GOPS) {'use strict';\n\n // (C) Andrea Giammarchi - Mit Style\n\n if (GOPS in Object) return;\n\n var\n setDescriptor,\n G = typeof global === typeof G ? window : global,\n id = 0,\n random = '' + Math.random(),\n prefix = '__\\x01symbol:',\n prefixLength = prefix.length,\n internalSymbol = '__\\x01symbol@@' + random,\n DP = 'defineProperty',\n DPies = 'defineProperties',\n GOPN = 'getOwnPropertyNames',\n GOPD = 'getOwnPropertyDescriptor',\n PIE = 'propertyIsEnumerable',\n gOPN = Object[GOPN],\n gOPD = Object[GOPD],\n create = Object.create,\n keys = Object.keys,\n freeze = Object.freeze || Object,\n defineProperty = Object[DP],\n $defineProperties = Object[DPies],\n descriptor = gOPD(Object, GOPN),\n ObjectProto = Object.prototype,\n hOP = ObjectProto.hasOwnProperty,\n pIE = ObjectProto[PIE],\n toString = ObjectProto.toString,\n indexOf = Array.prototype.indexOf || function (v) {\n for (var i = this.length; i-- && this[i] !== v;) {}\n return i;\n },\n addInternalIfNeeded = function (o, uid, enumerable) {\n if (!hOP.call(o, internalSymbol)) {\n defineProperty(o, internalSymbol, {\n enumerable: false,\n configurable: false,\n writable: false,\n value: {}\n });\n }\n o[internalSymbol]['@@' + uid] = enumerable;\n },\n createWithSymbols = function (proto, descriptors) {\n var self = create(proto);\n gOPN(descriptors).forEach(function (key) {\n if (propertyIsEnumerable.call(descriptors, key)) {\n $defineProperty(self, key, descriptors[key]);\n }\n });\n return self;\n },\n copyAsNonEnumerable = function (descriptor) {\n var newDescriptor = create(descriptor);\n newDescriptor.enumerable = false;\n return newDescriptor;\n },\n get = function get(){},\n onlyNonSymbols = function (name) {\n return name != internalSymbol &&\n !hOP.call(source, name);\n },\n onlySymbols = function (name) {\n return name != internalSymbol &&\n hOP.call(source, name);\n },\n propertyIsEnumerable = function propertyIsEnumerable(key) {\n var uid = '' + key;\n return onlySymbols(uid) ? (\n hOP.call(this, uid) &&\n this[internalSymbol]['@@' + uid]\n ) : pIE.call(this, key);\n },\n setAndGetSymbol = function (uid) {\n var descriptor = {\n enumerable: false,\n configurable: true,\n get: get,\n set: function (value) {\n setDescriptor(this, uid, {\n enumerable: false,\n configurable: true,\n writable: true,\n value: value\n });\n addInternalIfNeeded(this, uid, true);\n }\n };\n defineProperty(ObjectProto, uid, descriptor);\n return freeze(source[uid] = defineProperty(\n Object(uid),\n 'constructor',\n sourceConstructor\n ));\n },\n Symbol = function Symbol(description) {\n if (this && this !== G) {\n throw new TypeError('Symbol is not a constructor');\n }\n return setAndGetSymbol(\n prefix.concat(description || '', random, ++id)\n );\n },\n source = create(null),\n sourceConstructor = {value: Symbol},\n sourceMap = function (uid) {\n return source[uid];\n },\n $defineProperty = function defineProp(o, key, descriptor) {\n var uid = '' + key;\n if (onlySymbols(uid)) {\n setDescriptor(o, uid, descriptor.enumerable ?\n copyAsNonEnumerable(descriptor) : descriptor);\n addInternalIfNeeded(o, uid, !!descriptor.enumerable);\n } else {\n defineProperty(o, key, descriptor);\n }\n return o;\n },\n $getOwnPropertySymbols = function getOwnPropertySymbols(o) {\n return gOPN(o).filter(onlySymbols).map(sourceMap);\n }\n ;\n\n descriptor.value = $defineProperty;\n defineProperty(Object, DP, descriptor);\n\n descriptor.value = $getOwnPropertySymbols;\n defineProperty(Object, GOPS, descriptor);\n\n descriptor.value = function getOwnPropertyNames(o) {\n return gOPN(o).filter(onlyNonSymbols);\n };\n defineProperty(Object, GOPN, descriptor);\n\n descriptor.value = function defineProperties(o, descriptors) {\n var symbols = $getOwnPropertySymbols(descriptors);\n if (symbols.length) {\n keys(descriptors).concat(symbols).forEach(function (uid) {\n if (propertyIsEnumerable.call(descriptors, uid)) {\n $defineProperty(o, uid, descriptors[uid]);\n }\n });\n } else {\n $defineProperties(o, descriptors);\n }\n return o;\n };\n defineProperty(Object, DPies, descriptor);\n\n descriptor.value = propertyIsEnumerable;\n defineProperty(ObjectProto, PIE, descriptor);\n\n descriptor.value = Symbol;\n defineProperty(G, 'Symbol', descriptor);\n\n // defining `Symbol.for(key)`\n descriptor.value = function (key) {\n var uid = prefix.concat(prefix, key, random);\n return uid in ObjectProto ? source[uid] : setAndGetSymbol(uid);\n };\n defineProperty(Symbol, 'for', descriptor);\n\n // defining `Symbol.keyFor(symbol)`\n descriptor.value = function (symbol) {\n if (onlyNonSymbols(symbol))\n throw new TypeError(symbol + ' is not a symbol');\n return hOP.call(source, symbol) ?\n symbol.slice(prefixLength * 2, -random.length) :\n void 0\n ;\n };\n defineProperty(Symbol, 'keyFor', descriptor);\n\n descriptor.value = function getOwnPropertyDescriptor(o, key) {\n var descriptor = gOPD(o, key);\n if (descriptor && onlySymbols(key)) {\n descriptor.enumerable = propertyIsEnumerable.call(o, key);\n }\n return descriptor;\n };\n defineProperty(Object, GOPD, descriptor);\n\n descriptor.value = function (proto, descriptors) {\n return arguments.length === 1 ?\n create(proto) :\n createWithSymbols(proto, descriptors);\n };\n defineProperty(Object, 'create', descriptor);\n\n descriptor.value = function () {\n var str = toString.call(this);\n return (str === '[object String]' && onlySymbols(this)) ? '[object Symbol]' : str;\n };\n defineProperty(ObjectProto, 'toString', descriptor);\n\n try { // fails in few pre ES 5.1 engines\n setDescriptor = create(\n defineProperty(\n {},\n prefix,\n {\n get: function () {\n return defineProperty(this, prefix, {value: false})[prefix];\n }\n }\n )\n )[prefix] || defineProperty;\n } catch(o_O) {\n setDescriptor = function (o, key, descriptor) {\n var protoDescriptor = gOPD(ObjectProto, key);\n delete ObjectProto[key];\n defineProperty(o, key, descriptor);\n defineProperty(ObjectProto, key, protoDescriptor);\n };\n }\n\n}(Object, 'getOwnPropertySymbols'));\n\n(function (O, S) {\n var\n dP = O.defineProperty,\n ObjectProto = O.prototype,\n toString = ObjectProto.toString,\n toStringTag = 'toStringTag',\n descriptor\n ;\n [\n 'iterator', // A method returning the default iterator for an object. Used by for...of.\n 'match', // A method that matches against a string, also used to determine if an object may be used as a regular expression. Used by String.prototype.match().\n 'replace', // A method that replaces matched substrings of a string. Used by String.prototype.replace().\n 'search', // A method that returns the index within a string that matches the regular expression. Used by String.prototype.search().\n 'split', // A method that splits a string at the indices that match a regular expression. Used by String.prototype.split().\n 'hasInstance', // A method determining if a constructor object recognizes an object as its instance. Used by instanceof.\n 'isConcatSpreadable', // A Boolean value indicating if an object should be flattened to its array elements. Used by Array.prototype.concat().\n 'unscopables', // An Array of string values that are property values. These are excluded from the with environment bindings of the associated objects.\n 'species', // A constructor function that is used to create derived objects.\n 'toPrimitive', // A method converting an object to a primitive value.\n toStringTag // A string value used for the default description of an object. Used by Object.prototype.toString().\n ].forEach(function (name) {\n if (!(name in Symbol)) {\n dP(Symbol, name, {value: Symbol(name)});\n switch (name) {\n case toStringTag:\n descriptor = O.getOwnPropertyDescriptor(ObjectProto, 'toString');\n descriptor.value = function () {\n var\n str = toString.call(this),\n tst = this[Symbol.toStringTag]\n ;\n return typeof tst === 'undefined' ? str : ('[object ' + tst + ']');\n };\n dP(ObjectProto, 'toString', descriptor);\n break;\n }\n }\n });\n}(Object, Symbol));\n\n(function (Si, AP, SP) {\n\n function returnThis() { return this; }\n\n // make Arrays usable as iterators\n // so that other iterables can copy same logic\n if (!AP[Si]) AP[Si] = function () {\n var\n i = 0,\n self = this,\n iterator = {\n next: function next() {\n var done = self.length <= i;\n return done ?\n {done: done} :\n {done: done, value: self[i++]};\n }\n }\n ;\n iterator[Si] = returnThis;\n return iterator;\n };\n\n // make Strings usable as iterators\n // to simplify Array.from and for/of like loops\n if (!SP[Si]) SP[Si] = function () {\n var\n fromCodePoint = String.fromCodePoint,\n self = this,\n i = 0,\n length = self.length,\n iterator = {\n next: function next() {\n var\n done = length <= i,\n c = done ? '' : fromCodePoint(self.codePointAt(i))\n ;\n i += c.length;\n return done ?\n {done: done} :\n {done: done, value: c};\n }\n }\n ;\n iterator[Si] = returnThis;\n return iterator;\n };\n\n}(Symbol.iterator, Array.prototype, String.prototype));\n","/**\n * @license\n * Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\nexport {};\n\n// Establish scope.\nwindow['WebComponents'] = window['WebComponents'] || {'flags':{}};\n\n// loading script\nlet file = 'webcomponents-bundle';\nlet script = document.querySelector('script[src*=\"' + file + '\"]');\nlet flagMatcher = /wc-(.+)/;\n\n// Flags. Convert url arguments to flags\nlet flags = {};\nif (!flags['noOpts']) {\n // from url\n location.search.slice(1).split('&').forEach(function(option) {\n let parts = option.split('=');\n let match;\n if (parts[0] && (match = parts[0].match(flagMatcher))) {\n flags[match[1]] = parts[1] || true;\n }\n });\n // from script\n if (script) {\n for (let i=0, a; (a=script.attributes[i]); i++) {\n if (a.name !== 'src') {\n flags[a.name] = a.value || true;\n }\n }\n }\n // log flags\n if (flags['log'] && flags['log']['split']) {\n let parts = flags['log'].split(',');\n flags['log'] = {};\n parts.forEach(function(f) {\n flags['log'][f] = true;\n });\n } else {\n flags['log'] = {};\n }\n}\n\n// exports\nwindow['WebComponents']['flags'] = flags;\nlet forceShady = flags['shadydom'];\nif (forceShady) {\n window['ShadyDOM'] = window['ShadyDOM'] || {};\n window['ShadyDOM']['force'] = forceShady;\n}\n\nlet forceCE = flags['register'] || flags['ce'];\nif (forceCE && window['customElements']) {\n window['customElements']['forcePolyfill'] = forceCE;\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\nexport class ShadyData {\n constructor() {\n /** @type {ShadowRoot} */\n this.root = null;\n /** @type {ShadowRoot} */\n this.publicRoot = null;\n this.dirty = false;\n this.observer = null;\n /** @type {Array<Node>} */\n this.assignedNodes = null;\n /** @type {Element} */\n this.assignedSlot = null;\n /** @type {Array<Node>} */\n this._previouslyAssignedNodes = null;\n /** @type {Element} */\n this._prevAssignedSlot = null;\n /** @type {Array<Node>} */\n this.flattenedNodes = null;\n this.ownerShadyRoot = undefined;\n /** @type {Node|undefined} */\n this.parentNode = undefined;\n /** @type {Node|undefined} */\n this.firstChild = undefined;\n /** @type {Node|undefined} */\n this.lastChild = undefined;\n /** @type {Node|undefined} */\n this.previousSibling = undefined;\n /** @type {Node|undefined} */\n this.nextSibling = undefined;\n /** @type {Array<Node>|undefined} */\n this.childNodes = undefined;\n this.__outsideAccessors = false;\n this.__insideAccessors = false;\n this.__onCallbackListeners = {};\n }\n\n toJSON() {\n return {};\n }\n}\n\nexport function ensureShadyDataForNode(node) {\n if (!node.__shady) {\n node.__shady = new ShadyData();\n }\n return node.__shady;\n}\n\nexport function shadyDataForNode(node) {\n return node && node.__shady;\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*/\nimport {shadyDataForNode} from './shady-data.js';\n\nexport let settings = window['ShadyDOM'] || {};\n\nsettings.hasNativeShadowDOM = Boolean(Element.prototype.attachShadow && Node.prototype.getRootNode);\n\nlet desc = Object.getOwnPropertyDescriptor(Node.prototype, 'firstChild');\n\nsettings.hasDescriptors = Boolean(desc && desc.configurable && desc.get);\nsettings.inUse = settings['force'] || !settings.hasNativeShadowDOM;\n\n// Default to using native accessors (instead of treewalker) only for\n// IE/Edge where they are faster.\nconst IS_IE = navigator.userAgent.match('Trident');\nconst IS_EDGE = navigator.userAgent.match('Edge');\nif (settings.useNativeAccessors === undefined) {\n settings.useNativeAccessors = settings.hasDescriptors && (IS_IE || IS_EDGE);\n}\n\nexport function isTrackingLogicalChildNodes(node) {\n const nodeData = shadyDataForNode(node);\n return (nodeData && nodeData.firstChild !== undefined);\n}\n\nexport function isShadyRoot(obj) {\n return Boolean(obj._localName === 'ShadyRoot');\n}\n\nexport function ownerShadyRootForNode(node) {\n let root = node.getRootNode();\n if (isShadyRoot(root)) {\n return root;\n }\n}\n\nlet p = Element.prototype;\nlet matches = p.matches || p.matchesSelector ||\n p.mozMatchesSelector || p.msMatchesSelector ||\n p.oMatchesSelector || p.webkitMatchesSelector;\n\nexport function matchesSelector(element, selector) {\n return matches.call(element, selector);\n}\n\nfunction copyOwnProperty(name, source, target) {\n let pd = Object.getOwnPropertyDescriptor(source, name);\n if (pd) {\n Object.defineProperty(target, name, pd);\n }\n}\n\nexport function extend(target, source) {\n if (target && source) {\n let n$ = Object.getOwnPropertyNames(source);\n for (let i=0, n; (i<n$.length) && (n=n$[i]); i++) {\n copyOwnProperty(n, source, target);\n }\n }\n return target || source;\n}\n\nexport function extendAll(target, ...sources) {\n for (let i=0; i < sources.length; i++) {\n extend(target, sources[i]);\n }\n return target;\n}\n\nexport function mixin(target, source) {\n for (var i in source) {\n target[i] = source[i];\n }\n return target;\n}\n\nexport function patchPrototype(obj, mixin) {\n let proto = Object.getPrototypeOf(obj);\n if (!proto.hasOwnProperty('__patchProto')) {\n let patchProto = Object.create(proto);\n patchProto.__sourceProto = proto;\n extend(patchProto, mixin);\n proto['__patchProto'] = patchProto;\n }\n // old browsers don't have setPrototypeOf\n obj.__proto__ = proto['__patchProto'];\n}\n\n\nlet twiddle = document.createTextNode('');\nlet content = 0;\nlet queue = [];\nnew MutationObserver(() => {\n while (queue.length) {\n // catch errors in user code...\n try {\n queue.shift()();\n } catch(e) {\n // enqueue another record and throw\n twiddle.textContent = content++;\n throw(e);\n }\n }\n}).observe(twiddle, {characterData: true});\n\n// use MutationObserver to get microtask async timing.\nexport function microtask(callback) {\n queue.push(callback);\n twiddle.textContent = content++;\n}\n\nexport const hasDocumentContains = Boolean(document.contains);\n\nexport function contains(container, node) {\n while (node) {\n if (node == container) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}\n\nfunction getNodeHTMLCollectionName(node) {\n return node.getAttribute('id') || node.getAttribute('name');\n}\n\nfunction isValidHTMLCollectionName(name) {\n return name !== 'length' && isNaN(name);\n}\n\nexport function createPolyfilledHTMLCollection(nodes) {\n // Note: loop in reverse so that the first named item matches the named property\n for (let l = nodes.length - 1; l >= 0; l--) {\n const node = nodes[l];\n const name = getNodeHTMLCollectionName(node);\n\n if (name && isValidHTMLCollectionName(name)) {\n nodes[name] = node;\n }\n }\n nodes.item = function(index) {\n return nodes[index];\n }\n nodes.namedItem = function(name) {\n if (isValidHTMLCollectionName(name) && nodes[name]) {\n return nodes[name];\n }\n\n for (const node of nodes) {\n const nodeName = getNodeHTMLCollectionName(node);\n\n if (nodeName == name) {\n return node;\n }\n }\n\n return null;\n };\n return nodes;\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\nimport * as utils from './utils.js';\n\n// render enqueuer/flusher\nlet flushList = [];\nlet scheduled;\nexport function enqueue(callback) {\n if (!scheduled) {\n scheduled = true;\n utils.microtask(flush);\n }\n flushList.push(callback);\n}\n\nexport function flush() {\n scheduled = false;\n let didFlush = Boolean(flushList.length);\n while (flushList.length) {\n flushList.shift()();\n }\n return didFlush;\n}\n\nflush['list'] = flushList;\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\nimport * as utils from './utils.js';\nimport {ensureShadyDataForNode} from './shady-data.js';\n\nclass AsyncObserver {\n\n constructor() {\n this._scheduled = false;\n this.addedNodes = [];\n this.removedNodes = [];\n this.callbacks = new Set();\n }\n\n schedule() {\n if (!this._scheduled) {\n this._scheduled = true;\n utils.microtask(() => {\n this.flush();\n });\n }\n }\n\n flush() {\n if (this._scheduled) {\n this._scheduled = false;\n let mutations = this.takeRecords();\n if (mutations.length) {\n this.callbacks.forEach(function(cb) {\n cb(mutations);\n });\n }\n }\n }\n\n takeRecords() {\n if (this.addedNodes.length || this.removedNodes.length) {\n let mutations = [{\n addedNodes: this.addedNodes,\n removedNodes: this.removedNodes\n }];\n this.addedNodes = [];\n this.removedNodes = [];\n return mutations;\n }\n return [];\n }\n\n}\n\n// TODO(sorvell): consider instead polyfilling MutationObserver\n// directly so that users do not have to fork their code.\n// Supporting the entire api may be challenging: e.g. filtering out\n// removed nodes in the wrong scope and seeing non-distributing\n// subtree child mutations.\nexport let observeChildren = function(node, callback) {\n const sd = ensureShadyDataForNode(node);\n if (!sd.observer) {\n sd.observer = new AsyncObserver();\n }\n sd.observer.callbacks.add(callback);\n let observer = sd.observer;\n return {\n _callback: callback,\n _observer: observer,\n _node: node,\n takeRecords() {\n return observer.takeRecords()\n }\n };\n}\n\nexport let unobserveChildren = function(handle) {\n let observer = handle && handle._observer;\n if (observer) {\n observer.callbacks.delete(handle._callback);\n if (!observer.callbacks.size) {\n ensureShadyDataForNode(handle._node).observer = null;\n }\n }\n}\n\nexport function filterMutations(mutations, target) {\n /** @const {Node} */\n const targetRootNode = target.getRootNode();\n return mutations.map(function(mutation) {\n /** @const {boolean} */\n const mutationInScope = (targetRootNode === mutation.target.getRootNode());\n if (mutationInScope && mutation.addedNodes) {\n let nodes = Array.from(mutation.addedNodes).filter(function(n) {\n return (targetRootNode === n.getRootNode());\n });\n if (nodes.length) {\n mutation = Object.create(mutation);\n Object.defineProperty(mutation, 'addedNodes', {\n value: nodes,\n configurable: true\n });\n return mutation;\n }\n } else if (mutationInScope) {\n return mutation;\n }\n }).filter(function(m) { return m});\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\nexport let appendChild = Element.prototype.appendChild;\nexport let insertBefore = Element.prototype.insertBefore;\nexport let replaceChild = Element.prototype.replaceChild;\nexport let removeChild = Element.prototype.removeChild;\nexport let setAttribute = Element.prototype.setAttribute;\nexport let removeAttribute = Element.prototype.removeAttribute;\nexport let cloneNode = Element.prototype.cloneNode;\nexport let importNode = Document.prototype.importNode;\nexport let addEventListener = Element.prototype.addEventListener;\nexport let removeEventListener = Element.prototype.removeEventListener;\nexport let windowAddEventListener = Window.prototype.addEventListener;\nexport let windowRemoveEventListener = Window.prototype.removeEventListener;\nexport let dispatchEvent = Element.prototype.dispatchEvent;\nexport let contains = Node.prototype.contains || HTMLElement.prototype.contains;\nexport let getElementById = Document.prototype.getElementById;\nexport let elementQuerySelector = Element.prototype.querySelector;\nexport let fragmentQuerySelector = DocumentFragment.prototype.querySelector;\nexport let documentQuerySelector = Document.prototype.querySelector;\nexport let querySelector = /** @this {Element|Document|DocumentFragment} */ function(selector) {\n switch (this.nodeType) {\n case Node.ELEMENT_NODE:\n return elementQuerySelector.call(/** @type {Element} */ (this), selector);\n case Node.DOCUMENT_NODE:\n return documentQuerySelector.call(/** @type {Document} */ (this), selector);\n default:\n return fragmentQuerySelector.call(this, selector);\n }\n};\nexport let elementQuerySelectorAll = Element.prototype.querySelectorAll;\nexport let fragmentQuerySelectorAll = DocumentFragment.prototype.querySelectorAll;\nexport let documentQuerySelectorAll = Document.prototype.querySelectorAll;\nexport let querySelectorAll = /** @this {Element|Document|DocumentFragment} */ function(selector) {\n switch (this.nodeType) {\n case Node.ELEMENT_NODE:\n return elementQuerySelectorAll.call(/** @type {Element} */ (this), selector);\n case Node.DOCUMENT_NODE:\n return documentQuerySelectorAll.call(/** @type {Document} */ (this), selector);\n default:\n return fragmentQuerySelectorAll.call(this, selector);\n }\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// Cribbed from ShadowDOM polyfill\n// https://github.com/webcomponents/webcomponentsjs/blob/master/src/ShadowDOM/wrappers/HTMLElement.js#L28\n/////////////////////////////////////////////////////////////////////////////\n// innerHTML and outerHTML\n\n// http://www.whatwg.org/specs/web-apps/current-work/multipage/the-end.html#escapingString\nlet escapeAttrRegExp = /[&\\u00A0\"]/g;\nlet escapeDataRegExp = /[&\\u00A0<>]/g;\n\nfunction escapeReplace(c) {\n switch (c) {\n case '&':\n return '&amp;';\n case '<':\n return '&lt;';\n case '>':\n return '&gt;';\n case '\"':\n return '&quot;';\n case '\\u00A0':\n return '&nbsp;';\n }\n}\n\nfunction escapeAttr(s) {\n return s.replace(escapeAttrRegExp, escapeReplace);\n}\n\nfunction escapeData(s) {\n return s.replace(escapeDataRegExp, escapeReplace);\n}\n\nfunction makeSet(arr) {\n let set = {};\n for (let i = 0; i < arr.length; i++) {\n set[arr[i]] = true;\n }\n return set;\n}\n\n// http://www.whatwg.org/specs/web-apps/current-work/#void-elements\nlet voidElements = makeSet([\n 'area',\n 'base',\n 'br',\n 'col',\n 'command',\n 'embed',\n 'hr',\n 'img',\n 'input',\n 'keygen',\n 'link',\n 'meta',\n 'param',\n 'source',\n 'track',\n 'wbr'\n]);\n\nlet plaintextParents = makeSet([\n 'style',\n 'script',\n 'xmp',\n 'iframe',\n 'noembed',\n 'noframes',\n 'plaintext',\n 'noscript'\n]);\n\n/**\n * @param {Node} node\n * @param {Node} parentNode\n * @param {Function=} callback\n */\nexport function getOuterHTML(node, parentNode, callback) {\n switch (node.nodeType) {\n case Node.ELEMENT_NODE: {\n let tagName = node.localName;\n let s = '<' + tagName;\n let attrs = node.attributes;\n for (let i = 0, attr; (attr = attrs[i]); i++) {\n s += ' ' + attr.name + '=\"' + escapeAttr(attr.value) + '\"';\n }\n s += '>';\n if (voidElements[tagName]) {\n return s;\n }\n return s + getInnerHTML(node, callback) + '</' + tagName + '>';\n }\n case Node.TEXT_NODE: {\n let data = /** @type {Text} */ (node).data;\n if (parentNode && plaintextParents[parentNode.localName]) {\n return data;\n }\n return escapeData(data);\n }\n case Node.COMMENT_NODE: {\n return '<!--' + /** @type {Comment} */ (node).data + '-->';\n }\n default: {\n window.console.error(node);\n throw new Error('not implemented');\n }\n }\n}\n\n/**\n * @param {Node} node\n * @param {Function=} callback\n */\nexport function getInnerHTML(node, callback) {\n if (node.localName === 'template') {\n node = /** @type {HTMLTemplateElement} */ (node).content;\n }\n let s = '';\n let c$ = callback ? callback(node) : node.childNodes;\n for (let i=0, l=c$.length, child; (i<l) && (child=c$[i]); i++) {\n s += getOuterHTML(child, node, callback);\n }\n return s;\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\nimport {getInnerHTML} from './innerHTML.js';\nimport * as utils from './utils.js';\n\nlet nodeWalker = document.createTreeWalker(document, NodeFilter.SHOW_ALL,\n null, false);\n\nlet elementWalker = document.createTreeWalker(document, NodeFilter.SHOW_ELEMENT,\n null, false);\n\nexport function parentNode(node) {\n nodeWalker.currentNode = node;\n return nodeWalker.parentNode();\n}\n\nexport function firstChild(node) {\n nodeWalker.currentNode = node;\n return nodeWalker.firstChild();\n}\n\nexport function lastChild(node) {\n nodeWalker.currentNode = node;\n return nodeWalker.lastChild();\n}\n\nexport function previousSibling(node) {\n nodeWalker.currentNode = node;\n return nodeWalker.previousSibling();\n}\n\nexport function nextSibling(node) {\n nodeWalker.currentNode = node;\n return nodeWalker.nextSibling();\n}\n\nexport function childNodes(node) {\n let nodes = [];\n nodeWalker.currentNode = node;\n let n = nodeWalker.firstChild();\n while (n) {\n nodes.push(n);\n n = nodeWalker.nextSibling();\n }\n return nodes;\n}\n\nexport function parentElement(node) {\n elementWalker.currentNode = node;\n return elementWalker.parentNode();\n}\n\nexport function firstElementChild(node) {\n elementWalker.currentNode = node;\n return elementWalker.firstChild();\n}\n\nexport function lastElementChild(node) {\n elementWalker.currentNode = node;\n return elementWalker.lastChild();\n}\n\nexport function previousElementSibling(node) {\n elementWalker.currentNode = node;\n return elementWalker.previousSibling();\n}\n\nexport function nextElementSibling(node) {\n elementWalker.currentNode = node;\n return elementWalker.nextSibling();\n}\n\nexport function children(node) {\n let nodes = [];\n elementWalker.currentNode = node;\n let n = elementWalker.firstChild();\n while (n) {\n nodes.push(n);\n n = elementWalker.nextSibling();\n }\n return utils.createPolyfilledHTMLCollection(nodes);\n}\n\nexport function innerHTML(node) {\n return getInnerHTML(node, (n) => childNodes(n));\n}\n\nexport function textContent(node) {\n /* eslint-disable no-case-declarations */\n switch (node.nodeType) {\n case Node.ELEMENT_NODE:\n case Node.DOCUMENT_FRAGMENT_NODE:\n let textWalker = document.createTreeWalker(node, NodeFilter.SHOW_TEXT,\n null, false);\n let content = '', n;\n while ( (n = textWalker.nextNode()) ) {\n // TODO(sorvell): can't use textContent since we patch it on Node.prototype!\n // However, should probably patch it only on element.\n content += n.nodeValue;\n }\n return content;\n default:\n return node.nodeValue;\n }\n /* eslint-enable */\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*/\nimport * as utils from './utils.js';\n\nconst hasDescriptors = utils.settings.hasDescriptors;\n\n// Find descriptor on the \"lowest\" native prototype. Safe as these are not\n// overridden and we call these on nodes.\nconst nativeProtos = [Node.prototype, Element.prototype, HTMLElement.prototype];\n// note, avoid Array.find for IE11 compat.\nfunction findNativeProtoWithDescriptor(name) {\n for (let i=0; i < nativeProtos.length; i++) {\n const proto = nativeProtos[i];\n if (proto.hasOwnProperty(name)) {\n return proto;\n }\n }\n}\nfunction findNodeDescriptor(name) {\n const proto = findNativeProtoWithDescriptor(name);\n if (!proto) {\n throw Error(`Could not find descriptor for ${name}`);\n }\n return Object.getOwnPropertyDescriptor(proto, name);\n}\n\nexport const nodeAccessors = hasDescriptors ? {\n parentNode: findNodeDescriptor('parentNode'),\n firstChild: findNodeDescriptor('firstChild'),\n lastChild: findNodeDescriptor('lastChild'),\n previousSibling: findNodeDescriptor('previousSibling'),\n nextSibling: findNodeDescriptor('nextSibling'),\n childNodes: findNodeDescriptor('childNodes'),\n parentElement: findNodeDescriptor('parentElement'),\n previousElementSibling: findNodeDescriptor('previousElementSibling'),\n nextElementSibling: findNodeDescriptor('nextElementSibling'),\n innerHTML: findNodeDescriptor('innerHTML'),\n textContent: findNodeDescriptor('textContent'),\n firstElementChild: findNodeDescriptor('firstElementChild'),\n lastElementChild: findNodeDescriptor('lastElementChild'),\n children: findNodeDescriptor('children'),\n} : {};\n\nexport const fragmentAccessors = hasDescriptors ? {\n firstElementChild: Object.getOwnPropertyDescriptor(\n DocumentFragment.prototype, 'firstElementChild'),\n lastElementChild: Object.getOwnPropertyDescriptor(\n DocumentFragment.prototype, 'lastElementChild'),\n children: Object.getOwnPropertyDescriptor(\n DocumentFragment.prototype, 'children')\n} : {};\n\nexport const documentAccessors = hasDescriptors ? {\n firstElementChild: Object.getOwnPropertyDescriptor(\n Document.prototype, 'firstElementChild'),\n lastElementChild: Object.getOwnPropertyDescriptor(\n Document.prototype, 'lastElementChild'),\n children: Object.getOwnPropertyDescriptor(\n Document.prototype, 'children')\n} : {};\n\nexport function parentNode(node) {\n return nodeAccessors.parentNode.get.call(node);\n}\n\nexport function firstChild(node) {\n return nodeAccessors.firstChild.get.call(node);\n}\n\nexport function lastChild(node) {\n return nodeAccessors.lastChild.get.call(node);\n}\n\nexport function previousSibling(node) {\n return nodeAccessors.previousSibling.get.call(node);\n}\n\nexport function nextSibling(node) {\n return nodeAccessors.nextSibling.get.call(node);\n}\n\nexport function childNodes(node) {\n return Array.prototype.slice.call(nodeAccessors.childNodes.get.call(node));\n}\n\nexport function parentElement(node) {\n return nodeAccessors.parentElement.get.call(node);\n}\n\nexport function previousElementSibling(node) {\n return nodeAccessors.previousElementSibling.get.call(node);\n}\n\nexport function nextElementSibling(node) {\n return nodeAccessors.nextElementSibling.get.call(node);\n}\n\nexport function innerHTML(node) {\n return nodeAccessors.innerHTML.get.call(node);\n}\n\nexport function textContent(node) {\n return nodeAccessors.textContent.get.call(node);\n}\n\nexport function children(node) {\n switch (node.nodeType) {\n case Node.DOCUMENT_FRAGMENT_NODE:\n return fragmentAccessors.children.get.call(node);\n case Node.DOCUMENT_NODE:\n return documentAccessors.children.get.call(node);\n default:\n return nodeAccessors.children.get.call(node);\n }\n}\n\nexport function firstElementChild(node) {\n switch (node.nodeType) {\n case Node.DOCUMENT_FRAGMENT_NODE:\n return fragmentAccessors.firstElementChild.get.call(node);\n case Node.DOCUMENT_NODE:\n return documentAccessors.firstElementChild.get.call(node);\n default:\n return nodeAccessors.firstElementChild.get.call(node);\n }\n}\n\nexport function lastElementChild(node) {\n switch (node.nodeType) {\n case Node.DOCUMENT_FRAGMENT_NODE:\n return fragmentAccessors.lastElementChild.get.call(node);\n case Node.DOCUMENT_NODE:\n return documentAccessors.lastElementChild.get.call(node);\n default:\n return nodeAccessors.lastElementChild.get.call(node);\n }\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\nimport * as nativeTreeWalker from './native-tree-walker.js';\nimport * as nativeTreeAccessors from './native-tree-accessors.js';\nimport * as utils from './utils.js';\n\nexport const accessors = utils.settings.useNativeAccessors ?\n nativeTreeAccessors : nativeTreeWalker;","/**\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\nimport * as utils from './utils.js';\nimport {getInnerHTML} from './innerHTML.js';\nimport {accessors as nativeTree} from './native-tree.js';\nimport {nodeAccessors as nativeAccessors} from './native-tree-accessors.js';\nimport {contains as nativeContains} from './native-methods.js';\nimport {ensureShadyDataForNode, shadyDataForNode} from './shady-data.js';\n\nfunction clearNode(node) {\n while (node.firstChild) {\n node.removeChild(node.firstChild);\n }\n}\n\nconst hasDescriptors = utils.settings.hasDescriptors;\nconst inertDoc = document.implementation.createHTMLDocument('inert');\n\nconst nativeIsConnectedAccessors =\n/** @type {ObjectPropertyDescriptor} */(\n Object.getOwnPropertyDescriptor(Node.prototype, 'isConnected')\n);\n\nconst nativeIsConnected = nativeIsConnectedAccessors && nativeIsConnectedAccessors.get;\n\nconst nativeActiveElementDescriptor =\n /** @type {ObjectPropertyDescriptor} */(\n Object.getOwnPropertyDescriptor(Document.prototype, 'activeElement')\n );\nfunction getDocumentActiveElement() {\n if (nativeActiveElementDescriptor && nativeActiveElementDescriptor.get) {\n return nativeActiveElementDescriptor.get.call(document);\n } else if (!utils.settings.hasDescriptors) {\n return document.activeElement;\n }\n}\n\nfunction activeElementForNode(node) {\n let active = getDocumentActiveElement();\n // In IE11, activeElement might be an empty object if the document is\n // contained in an iframe.\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10998788/\n if (!active || !active.nodeType) {\n return null;\n }\n let isShadyRoot = !!(utils.isShadyRoot(node));\n if (node !== document) {\n // If this node isn't a document or shady root, then it doesn't have\n // an active element.\n if (!isShadyRoot) {\n return null;\n }\n // If this shady root's host is the active element or the active\n // element is not a descendant of the host (in the composed tree),\n // then it doesn't have an active element.\n if (node.host === active ||\n !nativeContains.call(node.host, active)) {\n return null;\n }\n }\n // This node is either the document or a shady root of which the active\n // element is a (composed) descendant of its host; iterate upwards to\n // find the active element's most shallow host within it.\n let activeRoot = utils.ownerShadyRootForNode(active);\n while (activeRoot && activeRoot !== node) {\n active = activeRoot.host;\n activeRoot = utils.ownerShadyRootForNode(active);\n }\n if (node === document) {\n // This node is the document, so activeRoot should be null.\n return activeRoot ? null : active;\n } else {\n // This node is a non-document shady root, and it should be\n // activeRoot.\n return activeRoot === node ? active : null;\n }\n}\n\nlet OutsideAccessors = {\n\n parentElement: {\n /** @this {Node} */\n get() {\n const nodeData = shadyDataForNode(this);\n let l = nodeData && nodeData.parentNode;\n if (l && l.nodeType !== Node.ELEMENT_NODE) {\n l = null;\n }\n return l !== undefined ? l : nativeTree.parentElement(this);\n },\n configurable: true\n },\n\n parentNode: {\n /** @this {Node} */\n get() {\n const nodeData = shadyDataForNode(this);\n const l = nodeData && nodeData.parentNode;\n return l !== undefined ? l : nativeTree.parentNode(this);\n },\n configurable: true\n },\n\n nextSibling: {\n /** @this {Node} */\n get() {\n const nodeData = shadyDataForNode(this);\n const l = nodeData && nodeData.nextSibling;\n return l !== undefined ? l : nativeTree.nextSibling(this);\n },\n configurable: true\n },\n\n previousSibling: {\n /** @this {Node} */\n get() {\n const nodeData = shadyDataForNode(this);\n const l = nodeData && nodeData.previousSibling;\n return l !== undefined ? l : nativeTree.previousSibling(this);\n },\n configurable: true\n },\n\n // fragment, element, document\n nextElementSibling: {\n /**\n * @this {HTMLElement}\n */\n get() {\n const nodeData = shadyDataForNode(this);\n if (nodeData && nodeData.nextSibling !== undefined) {\n let n = this.nextSibling;\n while (n && n.nodeType !== Node.ELEMENT_NODE) {\n n = n.nextSibling;\n }\n return n;\n } else {\n return nativeTree.nextElementSibling(this);\n }\n },\n configurable: true\n },\n\n previousElementSibling: {\n /**\n * @this {HTMLElement}\n */\n get() {\n const nodeData = shadyDataForNode(this);\n if (nodeData && nodeData.previousSibling !== undefined) {\n let n = this.previousSibling;\n while (n && n.nodeType !== Node.ELEMENT_NODE) {\n n = n.previousSibling;\n }\n return n;\n } else {\n return nativeTree.previousElementSibling(this);\n }\n },\n configurable: true\n }\n\n};\n\nexport const ClassNameAccessor = {\n className: {\n /**\n * @this {HTMLElement}\n */\n get() {\n return this.getAttribute('class') || '';\n },\n /**\n * @this {HTMLElement}\n */\n set(value) {\n this.setAttribute('class', value);\n },\n configurable: true\n }\n}\n\nexport const IsConnectedAccessor = {\n\n isConnected: {\n /**\n * @this {Node}\n */\n get() {\n if (nativeIsConnected && nativeIsConnected.call(this)) {\n return true;\n }\n if (this.nodeType == Node.DOCUMENT_FRAGMENT_NODE) {\n return false;\n }\n // Fast path for distributed nodes.\n const ownerDocument = this.ownerDocument;\n if (utils.hasDocumentContains) {\n if (nativeContains.call(ownerDocument, this)) {\n return true;\n }\n } else if (ownerDocument.documentElement &&\n nativeContains.call(ownerDocument.documentElement, this)) {\n return true;\n }\n // Slow path for non-distributed nodes.\n let node = this;\n while (node && !(node instanceof Document)) {\n node = node.parentNode || (utils.isShadyRoot(node) ? /** @type {ShadowRoot} */(node).host : undefined);\n }\n return !!(node && node instanceof Document);\n },\n configurable: true\n }\n};\n\nlet InsideAccessors = {\n\n childNodes: {\n /**\n * @this {HTMLElement}\n */\n get() {\n let childNodes;\n if (utils.isTrackingLogicalChildNodes(this)) {\n const nodeData = shadyDataForNode(this);\n if (!nodeData.childNodes) {\n nodeData.childNodes = [];\n for (let n=this.firstChild; n; n=n.nextSibling) {\n nodeData.childNodes.push(n);\n }\n }\n childNodes = nodeData.childNodes;\n } else {\n childNodes = nativeTree.childNodes(this);\n }\n childNodes.item = function(index) {\n return childNodes[index];\n }\n return childNodes;\n },\n configurable: true\n },\n\n childElementCount: {\n /** @this {HTMLElement} */\n get() {\n return this.children.length;\n },\n configurable: true\n },\n\n firstChild: {\n /** @this {HTMLElement} */\n get() {\n const nodeData = shadyDataForNode(this);\n const l = nodeData && nodeData.firstChild;\n return l !== undefined ? l : nativeTree.firstChild(this);\n },\n configurable: true\n },\n\n lastChild: {\n /** @this {HTMLElement} */\n get() {\n const nodeData = shadyDataForNode(this);\n const l = nodeData && nodeData.lastChild;\n return l !== undefined ? l : nativeTree.lastChild(this);\n },\n configurable: true\n },\n\n textContent: {\n /**\n * @this {HTMLElement}\n */\n get() {\n if (utils.isTrackingLogicalChildNodes(this)) {\n let tc = [];\n for (let i = 0, cn = this.childNodes, c; (c = cn[i]); i++) {\n if (c.nodeType !== Node.COMMENT_NODE) {\n tc.push(c.textContent);\n }\n }\n return tc.join('');\n } else {\n return nativeTree.textContent(this);\n }\n },\n /**\n * @this {HTMLElement}\n * @param {string} text\n */\n set(text) {\n if (typeof text === 'undefined' || text === null) {\n text = ''\n }\n switch (this.nodeType) {\n case Node.ELEMENT_NODE:\n case Node.DOCUMENT_FRAGMENT_NODE:\n if (!utils.isTrackingLogicalChildNodes(this) && hasDescriptors) {\n // may be removing a nested slot but fast path if we know we are not.\n const firstChild = this.firstChild;\n if (firstChild != this.lastChild ||\n (firstChild && firstChild.nodeType != Node.TEXT_NODE)) {\n clearNode(this);\n }\n nativeAccessors.textContent.set.call(this, text);\n } else {\n clearNode(this);\n // Document fragments must have no childnodes if setting a blank string\n if (text.length > 0 || this.nodeType === Node.ELEMENT_NODE) {\n this.appendChild(document.createTextNode(text));\n }\n }\n break;\n default:\n // TODO(sorvell): can't do this if patch nodeValue.\n this.nodeValue = text;\n break;\n }\n },\n configurable: true\n },\n\n // fragment, element, document\n firstElementChild: {\n /**\n * @this {HTMLElement}\n */\n get() {\n const nodeData = shadyDataForNode(this);\n if (nodeData && nodeData.firstChild !== undefined) {\n let n = this.firstChild;\n while (n && n.nodeType !== Node.ELEMENT_NODE) {\n n = n.nextSibling;\n }\n return n;\n } else {\n return nativeTree.firstElementChild(this);\n }\n },\n configurable: true\n },\n\n lastElementChild: {\n /**\n * @this {HTMLElement}\n */\n get() {\n const nodeData = shadyDataForNode(this);\n if (nodeData && nodeData.lastChild !== undefined) {\n let n = this.lastChild;\n while (n && n.nodeType !== Node.ELEMENT_NODE) {\n n = n.previousSibling;\n }\n return n;\n } else {\n return nativeTree.lastElementChild(this);\n }\n },\n configurable: true\n },\n\n children: {\n /**\n * @this {HTMLElement}\n */\n get() {\n if (!utils.isTrackingLogicalChildNodes(this)) {\n return nativeTree.children(this);\n }\n return utils.createPolyfilledHTMLCollection(Array.prototype.filter.call(this.childNodes, function(n) {\n return (n.nodeType === Node.ELEMENT_NODE);\n }));\n },\n configurable: true\n },\n\n // element (HTMLElement on IE11)\n innerHTML: {\n /**\n * @this {HTMLElement}\n */\n get() {\n if (utils.isTrackingLogicalChildNodes(this)) {\n const content = this.localName === 'template' ?\n /** @type {HTMLTemplateElement} */(this).content : this;\n return getInnerHTML(content);\n } else {\n return nativeTree.innerHTML(this);\n }\n },\n /**\n * @this {HTMLElement}\n */\n set(text) {\n const content = this.localName === 'template' ?\n /** @type {HTMLTemplateElement} */(this).content : this;\n clearNode(content);\n const containerName = this.localName || 'div';\n let htmlContainer;\n if (!this.namespaceURI || this.namespaceURI === inertDoc.namespaceURI) {\n htmlContainer = inertDoc.createElement(containerName);\n } else {\n htmlContainer = inertDoc.createElementNS(this.namespaceURI, containerName);\n }\n if (hasDescriptors) {\n nativeAccessors.innerHTML.set.call(htmlContainer, text);\n } else {\n htmlContainer.innerHTML = text;\n }\n const newContent = this.localName === 'template' ?\n /** @type {HTMLTemplateElement} */(htmlContainer).content : htmlContainer;\n while (newContent.firstChild) {\n content.appendChild(newContent.firstChild);\n }\n },\n configurable: true\n }\n\n};\n\n// Note: Can be patched on element prototype on all browsers.\n// Must be patched on instance on browsers that support native Shadow DOM\n// but do not have builtin accessors (old Chrome).\nexport let ShadowRootAccessor = {\n\n shadowRoot: {\n /**\n * @this {HTMLElement}\n */\n get() {\n const nodeData = shadyDataForNode(this);\n return nodeData && nodeData.publicRoot || null;\n },\n configurable: true\n }\n};\n\n// Note: Can be patched on document prototype on browsers with builtin accessors.\n// Must be patched separately on simulated ShadowRoot.\n// Must be patched as `_activeElement` on browsers without builtin accessors.\nexport let ActiveElementAccessor = {\n\n activeElement: {\n /**\n * @this {HTMLElement}\n */\n get() {\n return activeElementForNode(this);\n },\n /**\n * @this {HTMLElement}\n */\n set() {},\n configurable: true\n }\n\n};\n\n// patch a group of descriptors on an object only if it exists or if the `force`\n// argument is true.\n/**\n * @param {!Object} obj\n * @param {!Object} descriptors\n * @param {boolean=} force\n */\nfunction patchAccessorGroup(obj, descriptors, force) {\n for (let p in descriptors) {\n let objDesc = Object.getOwnPropertyDescriptor(obj, p);\n if ((objDesc && objDesc.configurable) ||\n (!objDesc && force)) {\n Object.defineProperty(obj, p, descriptors[p]);\n } else if (force) {\n console.warn('Could not define', p, 'on', obj); // eslint-disable-line no-console\n }\n }\n}\n\n// patch dom accessors on proto where they exist\nexport function patchAccessors(proto) {\n patchAccessorGroup(proto, OutsideAccessors);\n patchAccessorGroup(proto, ClassNameAccessor);\n patchAccessorGroup(proto, InsideAccessors);\n patchAccessorGroup(proto, ActiveElementAccessor);\n}\n\nexport function patchShadowRootAccessors(proto) {\n proto.__proto__ = DocumentFragment.prototype;\n // ensure element descriptors (IE/Edge don't have em)\n patchAccessorGroup(proto, OutsideAccessors, true);\n patchAccessorGroup(proto, InsideAccessors, true);\n patchAccessorGroup(proto, ActiveElementAccessor, true);\n // Ensure native properties are all safely wrapped since ShadowRoot is not an\n // actual DocumentFragment instance.\n Object.defineProperties(proto, {\n nodeType: {\n value: Node.DOCUMENT_FRAGMENT_NODE,\n configurable: true\n },\n nodeName: {\n value: '#document-fragment',\n configurable: true\n },\n nodeValue: {\n value: null,\n configurable: true\n }\n });\n // make undefined\n [\n 'localName',\n 'namespaceURI',\n 'prefix'\n ].forEach((prop) => {\n Object.defineProperty(proto, prop, {\n value: undefined,\n configurable: true\n });\n });\n // defer properties to host\n [\n 'ownerDocument',\n 'baseURI',\n 'isConnected'\n ].forEach((prop) => {\n Object.defineProperty(proto, prop, {\n get() {\n return this.host[prop];\n },\n configurable: true\n });\n });\n}\n\n// ensure an element has patched \"outside\" accessors; no-op when not needed\nexport let patchOutsideElementAccessors = utils.settings.hasDescriptors ?\n function() {} : function(element) {\n const sd = ensureShadyDataForNode(element);\n if (!sd.__outsideAccessors) {\n sd.__outsideAccessors = true;\n patchAccessorGroup(element, OutsideAccessors, true);\n patchAccessorGroup(element, ClassNameAccessor, true);\n }\n }\n\n// ensure an element has patched \"inside\" accessors; no-op when not needed\nexport let patchInsideElementAccessors = utils.settings.hasDescriptors ?\n function() {} : function(element) {\n const sd = ensureShadyDataForNode(element);\n if (!sd.__insideAccessors) {\n patchAccessorGroup(element, InsideAccessors, true);\n patchAccessorGroup(element, ShadowRootAccessor, true);\n }\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\nimport * as utils from './utils.js';\nimport {flush} from './flush.js';\nimport {dispatchEvent, querySelectorAll} from './native-methods.js';\nimport * as mutation from './logical-mutation.js';\nimport {ActiveElementAccessor, ShadowRootAccessor, patchAccessors, patchShadowRootAccessors, IsConnectedAccessor} from './patch-accessors.js';\nimport {addEventListener, removeEventListener} from './patch-events.js';\nimport {attachShadow, ShadyRoot} from './attach-shadow.js';\nimport {shadyDataForNode, ensureShadyDataForNode} from './shady-data.js';\n\nfunction getAssignedSlot(node) {\n mutation.renderRootNode(node);\n const nodeData = shadyDataForNode(node);\n return nodeData && nodeData.assignedSlot || null;\n}\n\nlet windowMixin = {\n\n // NOTE: ensure these methods are bound to `window` so that `this` is correct\n // when called directly from global context without a receiver; e.g.\n // `addEventListener(...)`.\n addEventListener: addEventListener.bind(window),\n\n removeEventListener: removeEventListener.bind(window)\n\n};\n\nlet nodeMixin = {\n\n addEventListener: addEventListener,\n\n removeEventListener: removeEventListener,\n\n appendChild(node) {\n return mutation.insertBefore(this, node);\n },\n\n insertBefore(node, ref_node) {\n return mutation.insertBefore(this, node, ref_node);\n },\n\n removeChild(node) {\n return mutation.removeChild(this, node);\n },\n\n /**\n * @this {Node}\n */\n replaceChild(node, ref_node) {\n mutation.insertBefore(this, node, ref_node);\n mutation.removeChild(this, ref_node);\n return node;\n },\n\n /**\n * @this {Node}\n */\n cloneNode(deep) {\n return mutation.cloneNode(this, deep);\n },\n\n /**\n * @this {Node}\n */\n getRootNode(options) {\n return mutation.getRootNode(this, options);\n },\n\n contains(node) {\n return utils.contains(this, node);\n },\n\n /**\n * @this {Node}\n */\n dispatchEvent(event) {\n flush();\n return dispatchEvent.call(this, event);\n }\n\n};\n\n// NOTE: we can do this regardless of the browser supporting native accessors\n// since this is always \"new\" in that case.\nObject.defineProperties(nodeMixin, IsConnectedAccessor);\n\n// NOTE: For some reason 'Text' redefines 'assignedSlot'\nlet textMixin = {\n /**\n * @this {Text}\n */\n get assignedSlot() {\n return getAssignedSlot(this);\n }\n};\n\nlet queryMixin = {\n\n // TODO(sorvell): consider doing native QSA and filtering results.\n /**\n * @this {DocumentFragment}\n */\n querySelector(selector) {\n // match selector and halt on first result.\n let result = mutation.query(this, function(n) {\n return utils.matchesSelector(n, selector);\n }, function(n) {\n return Boolean(n);\n })[0];\n return result || null;\n },\n\n /**\n * @this {DocumentFragment}\n */\n // TODO(sorvell): `useNative` option relies on native querySelectorAll and\n // misses distributed nodes, see\n // https://github.com/webcomponents/shadydom/pull/210#issuecomment-361435503\n querySelectorAll(selector, useNative) {\n if (useNative) {\n const o = Array.prototype.slice.call(querySelectorAll.call(this, selector));\n const root = this.getRootNode();\n return o.filter(e => e.getRootNode() == root);\n }\n return mutation.query(this, function(n) {\n return utils.matchesSelector(n, selector);\n });\n }\n\n};\n\nlet fragmentMixin = {};\n\nlet slotMixin = {\n\n /**\n * @this {HTMLSlotElement}\n */\n assignedNodes(options) {\n if (this.localName === 'slot') {\n mutation.renderRootNode(this);\n const nodeData = shadyDataForNode(this);\n return nodeData ?\n ((options && options.flatten ? nodeData.flattenedNodes :\n nodeData.assignedNodes) || []) :\n [];\n }\n }\n\n};\n\nlet elementMixin = utils.extendAll({\n\n /**\n * @this {HTMLElement}\n */\n setAttribute(name, value) {\n mutation.setAttribute(this, name, value);\n },\n\n /**\n * @this {HTMLElement}\n */\n removeAttribute(name) {\n mutation.removeAttribute(this, name);\n },\n\n /**\n * @this {HTMLElement}\n */\n attachShadow(options) {\n return attachShadow(this, options);\n },\n\n /**\n * @this {HTMLElement}\n */\n get slot() {\n return this.getAttribute('slot');\n },\n\n /**\n * @this {HTMLElement}\n */\n set slot(value) {\n mutation.setAttribute(this, 'slot', value);\n },\n\n /**\n * @this {HTMLElement}\n */\n get assignedSlot() {\n return getAssignedSlot(this);\n }\n\n}, queryMixin, slotMixin);\n\nObject.defineProperties(elementMixin, ShadowRootAccessor);\n\nlet documentMixin = {\n /**\n * @this {Document}\n */\n importNode(node, deep) {\n return mutation.importNode(node, deep);\n },\n\n /**\n * @this {Document}\n */\n getElementById(id) {\n let result = mutation.query(this, function(n) {\n return n.id == id;\n }, function(n) {\n return Boolean(n);\n })[0];\n return result || null;\n }\n\n};\n\nObject.defineProperties(documentMixin, {\n '_activeElement': ActiveElementAccessor.activeElement\n});\n\nlet nativeBlur = HTMLElement.prototype.blur;\n\nlet htmlElementMixin = {\n /**\n * @this {HTMLElement}\n */\n blur() {\n const nodeData = shadyDataForNode(this);\n let root = nodeData && nodeData.root;\n let shadowActive = root && root.activeElement;\n if (shadowActive) {\n shadowActive.blur();\n } else {\n nativeBlur.call(this);\n }\n }\n};\n\nfor (const property of Object.getOwnPropertyNames(Document.prototype)) {\n if (property.substring(0,2) === 'on') {\n Object.defineProperty(htmlElementMixin, property, {\n /** @this {HTMLElement} */\n set: function(fn) {\n const shadyData = ensureShadyDataForNode(this);\n const eventName = property.substring(2);\n shadyData.__onCallbackListeners[property] && this.removeEventListener(eventName, shadyData.__onCallbackListeners[property]);\n this.addEventListener(eventName, fn, {});\n shadyData.__onCallbackListeners[property] = fn;\n },\n /** @this {HTMLElement} */\n get() {\n const shadyData = shadyDataForNode(this);\n return shadyData && shadyData.__onCallbackListeners[property];\n },\n configurable: true\n });\n }\n}\n\nconst shadowRootMixin = utils.extendAll({\n /**\n * @this {ShadowRoot}\n */\n addEventListener(type, fn, optionsOrCapture) {\n if (typeof optionsOrCapture !== 'object') {\n optionsOrCapture = {\n capture: Boolean(optionsOrCapture)\n }\n }\n optionsOrCapture.__shadyTarget = this;\n this.host.addEventListener(type, fn, optionsOrCapture);\n },\n\n /**\n * @this {ShadowRoot}\n */\n removeEventListener(type, fn, optionsOrCapture) {\n if (typeof optionsOrCapture !== 'object') {\n optionsOrCapture = {\n capture: Boolean(optionsOrCapture)\n }\n }\n optionsOrCapture.__shadyTarget = this;\n this.host.removeEventListener(type, fn, optionsOrCapture);\n },\n\n /**\n * @this {ShadowRoot}\n */\n getElementById(id) {\n let result = mutation.query(this, function(n) {\n return n.id == id;\n }, function(n) {\n return Boolean(n);\n })[0];\n return result || null;\n }\n}, queryMixin);\n\n// Patch querySelector/All on documents and fragments only if\n// flag is not set.\nif (!utils.settings['preferPerformance']) {\n utils.extendAll(documentMixin, queryMixin);\n utils.extendAll(fragmentMixin, queryMixin);\n}\n\nfunction patchBuiltin(proto, obj) {\n let n$ = Object.getOwnPropertyNames(obj);\n for (let i=0; i < n$.length; i++) {\n let n = n$[i];\n let d = Object.getOwnPropertyDescriptor(obj, n);\n // NOTE: we prefer writing directly here because some browsers\n // have descriptors that are writable but not configurable (e.g.\n // `appendChild` on older browsers)\n if (d.value) {\n proto[n] = d.value;\n } else {\n Object.defineProperty(proto, n, d);\n }\n }\n}\n\n// Apply patches to builtins (e.g. Element.prototype). Some of these patches\n// can be done unconditionally (mostly methods like\n// `Element.prototype.appendChild`) and some can only be done when the browser\n// has proper descriptors on the builtin prototype\n// (e.g. `Element.prototype.firstChild`)`. When descriptors are not available,\n// elements are individually patched when needed (see e.g.\n// `patchInside/OutsideElementAccessors` in `patch-accessors.js`).\nexport function patchBuiltins() {\n let nativeHTMLElement =\n (window['customElements'] && window['customElements']['nativeHTMLElement']) ||\n HTMLElement;\n // These patches can always be done, for all supported browsers.\n patchBuiltin(ShadyRoot.prototype, shadowRootMixin);\n patchBuiltin(window.Node.prototype, nodeMixin);\n patchBuiltin(window.Window.prototype, windowMixin);\n patchBuiltin(window.Text.prototype, textMixin);\n patchBuiltin(window.Element.prototype, elementMixin);\n patchBuiltin(window.DocumentFragment.prototype, fragmentMixin);\n patchBuiltin(window.Document.prototype, documentMixin);\n if (window.HTMLSlotElement) {\n patchBuiltin(window.HTMLSlotElement.prototype, slotMixin);\n }\n patchBuiltin(nativeHTMLElement.prototype, htmlElementMixin);\n // These patches can *only* be done\n // on browsers that have proper property descriptors on builtin prototypes.\n // This includes: IE11, Edge, Chrome >= 4?; Safari >= 10, Firefox\n // On older browsers (Chrome <= 4?, Safari 9), a per element patching\n // strategy is used for patching accessors.\n if (utils.settings.hasDescriptors) {\n patchAccessors(window.Node.prototype);\n patchAccessors(window.Text.prototype);\n patchAccessors(window.DocumentFragment.prototype);\n patchAccessors(window.Element.prototype);\n patchAccessors(nativeHTMLElement.prototype);\n patchAccessors(window.Document.prototype);\n if (window.HTMLSlotElement) {\n patchAccessors(window.HTMLSlotElement.prototype);\n }\n }\n patchShadowRootAccessors(ShadyRoot.prototype);\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\nimport {patchInsideElementAccessors, patchOutsideElementAccessors} from './patch-accessors.js';\nimport {accessors} from './native-tree.js';\nimport {ensureShadyDataForNode, shadyDataForNode} from './shady-data.js';\n\nconst {childNodes} = accessors;\n\nexport function recordInsertBefore(node, container, ref_node) {\n patchInsideElementAccessors(container);\n const containerData = ensureShadyDataForNode(container);\n if (containerData.firstChild !== undefined) {\n containerData.childNodes = null;\n }\n // handle document fragments\n if (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n let c$ = node.childNodes;\n for (let i=0; i < c$.length; i++) {\n linkNode(c$[i], container, ref_node);\n }\n // cleanup logical dom in doc fragment.\n const nodeData = ensureShadyDataForNode(node);\n let resetTo = (nodeData.firstChild !== undefined) ? null : undefined;\n nodeData.firstChild = nodeData.lastChild = resetTo;\n nodeData.childNodes = resetTo;\n } else {\n linkNode(node, container, ref_node);\n }\n}\n\nfunction linkNode(node, container, ref_node) {\n patchOutsideElementAccessors(node);\n ref_node = ref_node || null;\n const nodeData = ensureShadyDataForNode(node);\n const containerData = ensureShadyDataForNode(container);\n const ref_nodeData = ref_node ? ensureShadyDataForNode(ref_node) : null;\n // update ref_node.previousSibling <-> node\n nodeData.previousSibling = ref_node ? ref_nodeData.previousSibling :\n container.lastChild;\n let psd = shadyDataForNode(nodeData.previousSibling);\n if (psd) {\n psd.nextSibling = node;\n }\n // update node <-> ref_node\n let nsd = shadyDataForNode(nodeData.nextSibling = ref_node);\n if (nsd) {\n nsd.previousSibling = node;\n }\n // update node <-> container\n nodeData.parentNode = container;\n if (ref_node) {\n if (ref_node === containerData.firstChild) {\n containerData.firstChild = node;\n }\n } else {\n containerData.lastChild = node;\n if (!containerData.firstChild) {\n containerData.firstChild = node;\n }\n }\n // remove caching of childNodes\n containerData.childNodes = null;\n}\n\nexport function recordRemoveChild(node, container) {\n const nodeData = ensureShadyDataForNode(node);\n const containerData = ensureShadyDataForNode(container);\n if (node === containerData.firstChild) {\n containerData.firstChild = nodeData.nextSibling;\n }\n if (node === containerData.lastChild) {\n containerData.lastChild = nodeData.previousSibling;\n }\n let p = nodeData.previousSibling;\n let n = nodeData.nextSibling;\n if (p) {\n ensureShadyDataForNode(p).nextSibling = n;\n }\n if (n) {\n ensureShadyDataForNode(n).previousSibling = p;\n }\n // When an element is removed, logical data is no longer tracked.\n // Explicitly set `undefined` here to indicate this. This is disginguished\n // from `null` which is set if info is null.\n nodeData.parentNode = nodeData.previousSibling =\n nodeData.nextSibling = undefined;\n if (containerData.childNodes !== undefined) {\n // remove caching of childNodes\n containerData.childNodes = null;\n }\n}\n\n/**\n * @param {!Node} node\n * @param {Array<Node>=} nodes\n */\nfunction recordChildNodes(node, nodes) {\n const nodeData = ensureShadyDataForNode(node);\n if (nodeData.firstChild === undefined) {\n // remove caching of childNodes\n nodeData.childNodes = null;\n const c$ = nodes || childNodes(node);\n nodeData.firstChild = c$[0] || null;\n nodeData.lastChild = c$[c$.length-1] || null;\n patchInsideElementAccessors(node);\n for (let i=0; i<c$.length; i++) {\n const n = c$[i];\n const sd = ensureShadyDataForNode(n);\n sd.parentNode = node;\n sd.nextSibling = c$[i+1] || null;\n sd.previousSibling = c$[i-1] || null;\n patchOutsideElementAccessors(n);\n }\n }\n}\n\nexport {recordChildNodes}\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\nimport * as utils from './utils.js';\nimport * as logicalTree from './logical-tree.js';\nimport * as nativeMethods from './native-methods.js';\nimport {accessors} from './native-tree.js';\nimport {ensureShadyDataForNode, shadyDataForNode} from './shady-data.js';\n\nconst {parentNode} = accessors;\n\nconst doc = window.document;\n\nconst preferPerformance = utils.settings.preferPerformance;\n\n// Patched `insertBefore`. Note that all mutations that add nodes are routed\n// here. When a <slot> is added or a node is added to a host with a shadowRoot\n// with a slot, a standard dom `insert` call is aborted and `_asyncRender`\n// is called on the relevant shadowRoot. In all other cases, a standard dom\n// `insert` can be made, but the location and ref_node may need to be changed.\n/**\n * @param {!Node} parent\n * @param {Node} node\n * @param {Node=} ref_node\n */\nexport function insertBefore(parent, node, ref_node) {\n if (parent.ownerDocument !== doc && node.ownerDocument !== doc) {\n return nativeMethods.insertBefore.call(parent, node, ref_node);\n }\n if (node === parent) {\n throw Error(`Failed to execute 'appendChild' on 'Node': The new child element contains the parent.`);\n }\n if (ref_node) {\n const refData = shadyDataForNode(ref_node);\n const p = refData && refData.parentNode;\n if ((p !== undefined && p !== parent) ||\n (p === undefined && parentNode(ref_node) !== parent)) {\n throw Error(`Failed to execute 'insertBefore' on 'Node': The node ` +\n `before which the new node is to be inserted is not a child of this node.`);\n }\n }\n if (ref_node === node) {\n return node;\n }\n /** @type {!Array<!HTMLSlotElement>} */\n let slotsAdded = [];\n /** @type {function(!Node, string): void} */\n let scopingFn = addShadyScoping;\n let ownerRoot = utils.ownerShadyRootForNode(parent);\n /** @type {string} */\n let newScopeName;\n if (ownerRoot) {\n // get scope name from new ShadyRoot host\n newScopeName = ownerRoot.host.localName;\n } else {\n // borrow parent's scope name\n newScopeName = currentScopeForNode(parent);\n }\n // remove from existing location\n if (node.parentNode) {\n // NOTE: avoid node.removeChild as this *can* trigger another patched\n // method (e.g. custom elements) and we want only the shady method to run.\n // The following table describes what style scoping actions should happen as a result of this insertion.\n // document -> shadowRoot: replace\n // shadowRoot -> shadowRoot: replace\n // shadowRoot -> shadowRoot of same type: do nothing\n // shadowRoot -> document: allow unscoping\n // document -> document: do nothing\n // The \"same type of shadowRoot\" and \"document to document cases rely on `currentScopeIsCorrect` returning true\n const oldScopeName = currentScopeForNode(node);\n removeChild(node.parentNode, node, Boolean(ownerRoot) || !(node.getRootNode() instanceof ShadowRoot));\n scopingFn = (node, newScopeName) => {\n replaceShadyScoping(node, newScopeName, oldScopeName);\n };\n }\n // add to new parent\n let allowNativeInsert = true;\n const needsScoping = (!preferPerformance || node['__noInsertionPoint'] === undefined)\n && !currentScopeIsCorrect(node, newScopeName);\n if (ownerRoot) {\n // in a shadowroot, only tree walk if new insertion points may have been added, or scoping is needed\n if (!node['__noInsertionPoint'] || needsScoping) {\n treeVisitor(node, (node) => {\n if (node.localName === 'slot') {\n slotsAdded.push(/** @type {!HTMLSlotElement} */(node));\n }\n if (needsScoping) {\n scopingFn(node, newScopeName);\n }\n });\n }\n } else if (needsScoping) {\n // in a document or disconnected tree, replace scoping if necessary\n const oldScopeName = currentScopeForNode(node);\n treeVisitor(node, (node) => {\n replaceShadyScoping(node, newScopeName, oldScopeName);\n });\n }\n if (slotsAdded.length) {\n ownerRoot._addSlots(slotsAdded);\n }\n // if a slot is added, must render containing root.\n if (parent.localName === 'slot' || slotsAdded.length) {\n if (ownerRoot) {\n ownerRoot._asyncRender();\n }\n }\n if (utils.isTrackingLogicalChildNodes(parent)) {\n logicalTree.recordInsertBefore(node, parent, ref_node);\n // when inserting into a host with a shadowRoot with slot, use\n // `shadowRoot._asyncRender()` via `attach-shadow` module\n const parentData = shadyDataForNode(parent);\n if (hasShadowRootWithSlot(parent)) {\n parentData.root._asyncRender();\n allowNativeInsert = false;\n // when inserting into a host with shadowRoot with NO slot, do nothing\n // as the node should not be added to composed dome anywhere.\n } else if (parentData.root) {\n allowNativeInsert = false;\n }\n }\n if (allowNativeInsert) {\n // if adding to a shadyRoot, add to host instead\n let container = utils.isShadyRoot(parent) ?\n /** @type {ShadowRoot} */(parent).host : parent;\n // if ref_node, get the ref_node that's actually in composed dom.\n if (ref_node) {\n ref_node = firstComposedNode(ref_node);\n nativeMethods.insertBefore.call(container, node, ref_node);\n } else {\n nativeMethods.appendChild.call(container, node);\n }\n // Since ownerDocument is not patched, it can be incorrect afer this call\n // if the node is physically appended via distribution. This can result\n // in the custom elements polyfill not upgrading the node if it's in an inert doc.\n // We correct this by calling `adoptNode`.\n } else if (node.ownerDocument !== parent.ownerDocument) {\n parent.ownerDocument.adoptNode(node);\n }\n scheduleObserver(parent, node);\n return node;\n}\n\n/**\n * Patched `removeChild`. Note that all dom \"removals\" are routed here.\n * Removes the given `node` from the element's `children`.\n * This method also performs dom composition.\n * @param {Node} parent\n * @param {Node} node\n * @param {boolean=} skipUnscoping\n*/\nexport function removeChild(parent, node, skipUnscoping = false) {\n if (parent.ownerDocument !== doc) {\n return nativeMethods.removeChild.call(parent, node);\n }\n if (node.parentNode !== parent) {\n throw Error('The node to be removed is not a child of this node: ' +\n node);\n }\n let preventNativeRemove;\n let ownerRoot = utils.ownerShadyRootForNode(node);\n let removingInsertionPoint;\n const parentData = shadyDataForNode(parent);\n if (utils.isTrackingLogicalChildNodes(parent)) {\n logicalTree.recordRemoveChild(node, parent);\n if (hasShadowRootWithSlot(parent)) {\n parentData.root._asyncRender();\n preventNativeRemove = true;\n }\n }\n // unscope a node leaving a ShadowRoot if ShadyCSS is present, and this node\n // is not going to be rescoped in `insertBefore`\n if (getScopingShim() && !skipUnscoping && ownerRoot) {\n const oldScopeName = currentScopeForNode(node);\n treeVisitor(node, (node) => {\n removeShadyScoping(node, oldScopeName);\n });\n }\n removeOwnerShadyRoot(node);\n // if removing slot, must render containing root\n if (ownerRoot) {\n let changeSlotContent = parent && parent.localName === 'slot';\n if (changeSlotContent) {\n preventNativeRemove = true;\n }\n removingInsertionPoint = ownerRoot._removeContainedSlots(node);\n if (removingInsertionPoint || changeSlotContent) {\n ownerRoot._asyncRender();\n }\n }\n if (!preventNativeRemove) {\n // if removing from a shadyRoot, remove from host instead\n let container = utils.isShadyRoot(parent) ?\n /** @type {ShadowRoot} */(parent).host :\n parent;\n // not guaranteed to physically be in container; e.g.\n // (1) if parent has a shadyRoot, element may or may not at distributed\n // location (could be undistributed)\n // (2) if parent is a slot, element may not ben in composed dom\n if (!(parentData.root || node.localName === 'slot') ||\n (container === parentNode(node))) {\n nativeMethods.removeChild.call(container, node);\n }\n }\n scheduleObserver(parent, null, node);\n return node;\n}\n\nfunction removeOwnerShadyRoot(node) {\n // optimization: only reset the tree if node is actually in a root\n if (hasCachedOwnerRoot(node)) {\n let c$ = node.childNodes;\n for (let i=0, l=c$.length, n; (i<l) && (n=c$[i]); i++) {\n removeOwnerShadyRoot(n);\n }\n }\n const nodeData = shadyDataForNode(node);\n if (nodeData) {\n nodeData.ownerShadyRoot = undefined;\n }\n}\n\nfunction hasCachedOwnerRoot(node) {\n const nodeData = shadyDataForNode(node);\n return Boolean(nodeData && nodeData.ownerShadyRoot !== undefined);\n}\n\n/**\n * Finds the first flattened node that is composed in the node's parent.\n * If the given node is a slot, then the first flattened node is returned\n * if it exists, otherwise advance to the node's nextSibling.\n * @param {Node} node within which to find first composed node\n * @returns {Node} first composed node\n */\nfunction firstComposedNode(node) {\n let composed = node;\n if (node && node.localName === 'slot') {\n const nodeData = shadyDataForNode(node);\n const flattened = nodeData && nodeData.flattenedNodes;\n composed = flattened && flattened.length ? flattened[0] :\n firstComposedNode(node.nextSibling);\n }\n return composed;\n}\n\nfunction hasShadowRootWithSlot(node) {\n const nodeData = shadyDataForNode(node);\n let root = nodeData && nodeData.root;\n return (root && root._hasInsertionPoint());\n}\n\n/**\n * Should be called whenever an attribute changes. If the `slot` attribute\n * changes, provokes rendering if necessary. If a `<slot>` element's `name`\n * attribute changes, updates the root's slot map and renders.\n * @param {Node} node\n * @param {string} name\n */\nfunction distributeAttributeChange(node, name) {\n if (name === 'slot') {\n const parent = node.parentNode;\n if (hasShadowRootWithSlot(parent)) {\n shadyDataForNode(parent).root._asyncRender();\n }\n } else if (node.localName === 'slot' && name === 'name') {\n let root = utils.ownerShadyRootForNode(node);\n if (root) {\n root._updateSlotName(node);\n root._asyncRender();\n }\n }\n}\n\n/**\n * @param {Node} node\n * @param {Node=} addedNode\n * @param {Node=} removedNode\n */\nfunction scheduleObserver(node, addedNode, removedNode) {\n const nodeData = shadyDataForNode(node);\n const observer = nodeData && nodeData.observer;\n if (observer) {\n if (addedNode) {\n observer.addedNodes.push(addedNode);\n }\n if (removedNode) {\n observer.removedNodes.push(removedNode);\n }\n observer.schedule();\n }\n}\n\n/**\n * @param {Node} node\n * @param {Object=} options\n */\nexport function getRootNode(node, options) { // eslint-disable-line no-unused-vars\n if (!node || !node.nodeType) {\n return;\n }\n const nodeData = ensureShadyDataForNode(node);\n let root = nodeData.ownerShadyRoot;\n if (root === undefined) {\n if (utils.isShadyRoot(node)) {\n root = node;\n nodeData.ownerShadyRoot = root;\n } else {\n let parent = node.parentNode;\n root = parent ? getRootNode(parent) : node;\n // memo-ize result for performance but only memo-ize\n // result if node is in the document. This avoids a problem where a root\n // can be cached while an element is inside a fragment.\n // If this happens and we cache the result, the value can become stale\n // because for perf we avoid processing the subtree of added fragments.\n if (nativeMethods.contains.call(document.documentElement, node)) {\n nodeData.ownerShadyRoot = root;\n }\n }\n\n }\n return root;\n}\n\n// NOTE: `query` is used primarily for ShadyDOM's querySelector impl,\n// but it's also generally useful to recurse through the element tree\n// and is used by Polymer's styling system.\n/**\n * @param {Node} node\n * @param {Function} matcher\n * @param {Function=} halter\n */\nexport function query(node, matcher, halter) {\n let list = [];\n queryElements(node.childNodes, matcher,\n halter, list);\n return list;\n}\n\nfunction queryElements(elements, matcher, halter, list) {\n for (let i=0, l=elements.length, c; (i<l) && (c=elements[i]); i++) {\n if (c.nodeType === Node.ELEMENT_NODE &&\n queryElement(c, matcher, halter, list)) {\n return true;\n }\n }\n}\n\nfunction queryElement(node, matcher, halter, list) {\n let result = matcher(node);\n if (result) {\n list.push(node);\n }\n if (halter && halter(result)) {\n return result;\n }\n queryElements(node.childNodes, matcher,\n halter, list);\n}\n\nexport function renderRootNode(element) {\n var root = element.getRootNode();\n if (utils.isShadyRoot(root)) {\n root._render();\n }\n}\n\nlet scopingShim = null;\n\nfunction getScopingShim() {\n if (!scopingShim) {\n scopingShim = window['ShadyCSS'] && window['ShadyCSS']['ScopingShim'];\n }\n return scopingShim || null;\n}\n\nexport function setAttribute(node, attr, value) {\n if (node.ownerDocument !== doc) {\n nativeMethods.setAttribute.call(node, attr, value);\n } else {\n const scopingShim = getScopingShim();\n if (scopingShim && attr === 'class') {\n scopingShim['setElementClass'](node, value);\n } else {\n nativeMethods.setAttribute.call(node, attr, value);\n distributeAttributeChange(node, attr);\n }\n }\n}\n\nexport function removeAttribute(node, attr) {\n nativeMethods.removeAttribute.call(node, attr);\n distributeAttributeChange(node, attr);\n}\n\nexport function cloneNode(node, deep) {\n if (node.localName == 'template') {\n return nativeMethods.cloneNode.call(node, deep);\n } else {\n let n = nativeMethods.cloneNode.call(node, false);\n // Attribute nodes historically had childNodes, but they have later\n // been removed from the spec.\n // Make sure we do not do a deep clone on them for old browsers (IE11)\n if (deep && n.nodeType !== Node.ATTRIBUTE_NODE) {\n let c$ = node.childNodes;\n for (let i=0, nc; i < c$.length; i++) {\n nc = c$[i].cloneNode(true);\n n.appendChild(nc);\n }\n }\n return n;\n }\n}\n\n// note: Though not technically correct, we fast path `importNode`\n// when called on a node not owned by the main document.\n// This allows, for example, elements that cannot\n// contain custom elements and are therefore not likely to contain shadowRoots\n// to cloned natively. This is a fairly significant performance win.\nexport function importNode(node, deep) {\n // A template element normally has no children with shadowRoots, so make\n // sure we always make a deep copy to correctly construct the template.content\n if (node.ownerDocument !== document || node.localName === 'template') {\n return nativeMethods.importNode.call(document, node, deep);\n }\n let n = nativeMethods.importNode.call(document, node, false);\n if (deep) {\n let c$ = node.childNodes;\n for (let i=0, nc; i < c$.length; i++) {\n nc = importNode(c$[i], true);\n n.appendChild(nc);\n }\n }\n return n;\n}\n\n/**\n * @param {!Node} node\n * @param {string} newScopeName\n */\nfunction addShadyScoping(node, newScopeName) {\n const scopingShim = getScopingShim();\n if (!scopingShim) {\n return;\n }\n scopingShim['scopeNode'](node, newScopeName);\n}\n\n/**\n * @param {!Node} node\n * @param {string} currentScopeName\n */\nfunction removeShadyScoping(node, currentScopeName) {\n const scopingShim = getScopingShim();\n if (!scopingShim) {\n return;\n }\n scopingShim['unscopeNode'](node, currentScopeName);\n}\n\n/**\n * @param {!Node} node\n * @param {string} newScopeName\n * @param {string} oldScopeName\n */\nfunction replaceShadyScoping(node, newScopeName, oldScopeName) {\n const scopingShim = getScopingShim();\n if (!scopingShim) {\n return;\n }\n removeShadyScoping(node, oldScopeName);\n addShadyScoping(node, newScopeName);\n}\n\n/**\n * @param {!Node} node\n * @param {string} newScopeName\n * @return {boolean}\n */\nfunction currentScopeIsCorrect(node, newScopeName) {\n const scopingShim = getScopingShim();\n if (!scopingShim) {\n return true;\n }\n if (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n // NOTE: as an optimization, only check that all the top-level children\n // have the correct scope.\n let correctScope = true;\n for (let idx = 0; correctScope && (idx < node.childNodes.length); idx++) {\n correctScope = correctScope &&\n currentScopeIsCorrect(node.childNodes[idx], newScopeName);\n }\n return correctScope;\n }\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return true;\n }\n const currentScope = scopingShim['currentScopeForNode'](node);\n return currentScope === newScopeName;\n}\n\n/**\n * @param {!Node} node\n * @return {string}\n */\nfunction currentScopeForNode(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return '';\n }\n const scopingShim = getScopingShim();\n if (!scopingShim) {\n return '';\n }\n return scopingShim['currentScopeForNode'](node);\n}\n\n/**\n * Walk over a node's tree and apply visitorFn to each element node\n *\n * @param {Node} node\n * @param {function(!Node):void} visitorFn\n */\nfunction treeVisitor(node, visitorFn) {\n if (!node) {\n return;\n }\n // this check is necessary if `node` is a Document Fragment\n if (node.nodeType === Node.ELEMENT_NODE) {\n visitorFn(node);\n }\n for (let idx = 0, n; idx < node.childNodes.length; idx++) {\n n = node.childNodes[idx];\n if (n.nodeType === Node.ELEMENT_NODE) {\n treeVisitor(n, visitorFn);\n }\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\nimport {calculateSplices} from './array-splice.js';\nimport * as utils from './utils.js';\nimport {enqueue} from './flush.js';\nimport {recordChildNodes} from './logical-tree.js';\nimport {removeChild, insertBefore, dispatchEvent} from './native-methods.js';\nimport {accessors} from './native-tree.js';\nimport {ensureShadyDataForNode, shadyDataForNode} from './shady-data.js';\n\nconst {parentNode, childNodes} = accessors;\n\n// Do not export this object. It must be passed as the first argument to the\n// ShadyRoot constructor in `attachShadow` to prevent the constructor from\n// throwing. This prevents the user from being able to manually construct a\n// ShadyRoot (i.e. `new ShadowRoot()`).\nconst ShadyRootConstructionToken = {};\n\nconst CATCHALL_NAME = '__catchall';\nconst SHADYROOT_NAME = 'ShadyRoot';\n\nconst MODE_CLOSED = 'closed';\n\nlet isRendering = utils.settings['deferConnectionCallbacks'] && document.readyState === 'loading';\nlet rootRendered;\n\nfunction ancestorList(node) {\n let ancestors = [];\n do {\n ancestors.unshift(node);\n } while ((node = node.parentNode));\n return ancestors;\n}\n\n/**\n * @extends {ShadowRoot}\n */\nclass ShadyRoot {\n\n constructor(token, host, options) {\n if (token !== ShadyRootConstructionToken) {\n throw new TypeError('Illegal constructor');\n }\n // NOTE: set a fake local name so this element can be\n // distinguished from a DocumentFragment when patching.\n // FF doesn't allow this to be `localName`\n this._localName = SHADYROOT_NAME;\n // root <=> host\n this.host = host;\n this._mode = options && options.mode;\n const c$ = childNodes(host);\n recordChildNodes(host, c$);\n const hostData = ensureShadyDataForNode(host);\n hostData.root = this;\n hostData.publicRoot = this._mode !== MODE_CLOSED ? this : null;\n // setup root\n const rootData = ensureShadyDataForNode(this);\n rootData.firstChild = rootData.lastChild =\n rootData.parentNode = rootData.nextSibling =\n rootData.previousSibling = null;\n rootData.childNodes = [];\n // state flags\n this._renderPending = false;\n this._hasRendered = false;\n // marsalled lazily\n this._slotList = null;\n /** @type {Object<string, Array<HTMLSlotElement>>} */\n this._slotMap = null;\n this._pendingSlots = null;\n // NOTE: optimization flag, only require an asynchronous render\n // to record parsed children if flag is not set.\n if (utils.settings['preferPerformance']) {\n for (let i=0, l=c$.length; i < l; i++) {\n removeChild.call(host, c$[i])\n }\n } else {\n this._asyncRender();\n }\n }\n\n // async render\n _asyncRender() {\n if (!this._renderPending) {\n this._renderPending = true;\n enqueue(() => this._render());\n }\n }\n\n // returns the oldest renderPending ancestor root.\n _getRenderRoot() {\n let renderRoot;\n let root = this;\n while (root) {\n if (root._renderPending) {\n renderRoot = root;\n }\n root = root._rendererForHost();\n }\n return renderRoot;\n }\n\n // Returns the shadyRoot `this.host` if `this.host`\n // has children that require distribution.\n _rendererForHost() {\n let root = this.host.getRootNode();\n if (utils.isShadyRoot(root)) {\n let c$ = this.host.childNodes;\n for (let i=0, c; i < c$.length; i++) {\n c = c$[i];\n if (this._isInsertionPoint(c)) {\n return root;\n }\n }\n }\n }\n\n _render() {\n const root = this._getRenderRoot();\n if (root) {\n root['_renderRoot']();\n }\n }\n\n // NOTE: avoid renaming to ease testability.\n ['_renderRoot']() {\n // track rendering state.\n const wasRendering = isRendering;\n isRendering = true;\n this._renderPending = false;\n if (this._slotList) {\n this._distribute();\n this._compose();\n }\n // NOTE: optimization flag, only process parsed children\n // if optimization flag is not set.\n // on initial render remove any undistributed children.\n if (!utils.settings['preferPerformance'] && !this._hasRendered) {\n const c$ = this.host.childNodes;\n for (let i=0, l=c$.length; i < l; i++) {\n const child = c$[i];\n const data = shadyDataForNode(child);\n if (parentNode(child) === this.host &&\n (child.localName === 'slot' || !data.assignedSlot)) {\n removeChild.call(this.host, child);\n }\n }\n }\n this._hasRendered = true;\n isRendering = wasRendering;\n if (rootRendered) {\n rootRendered();\n }\n }\n\n _distribute() {\n this._validateSlots();\n // capture # of previously assigned nodes to help determine if dirty.\n for (let i=0, slot; i < this._slotList.length; i++) {\n slot = this._slotList[i];\n this._clearSlotAssignedNodes(slot);\n }\n // distribute host children.\n for (let n=this.host.firstChild; n; n=n.nextSibling) {\n this._distributeNodeToSlot(n);\n }\n // fallback content, slotchange, and dirty roots\n for (let i=0; i < this._slotList.length; i++) {\n const slot = this._slotList[i];\n const slotData = shadyDataForNode(slot);\n // distribute fallback content\n if (!slotData.assignedNodes.length) {\n for (let n=slot.firstChild; n; n=n.nextSibling) {\n this._distributeNodeToSlot(n, slot);\n }\n }\n const slotParentData = shadyDataForNode(slot.parentNode);\n const slotParentRoot = slotParentData && slotParentData.root;\n if (slotParentRoot && (slotParentRoot._hasInsertionPoint() || slotParentRoot._renderPending)) {\n slotParentRoot['_renderRoot']();\n }\n this._addAssignedToFlattenedNodes(slotData.flattenedNodes,\n slotData.assignedNodes);\n let prevAssignedNodes = slotData._previouslyAssignedNodes;\n if (prevAssignedNodes) {\n for (let i=0; i < prevAssignedNodes.length; i++) {\n shadyDataForNode(prevAssignedNodes[i])._prevAssignedSlot = null;\n }\n slotData._previouslyAssignedNodes = null;\n // dirty if previously less assigned nodes than previously assigned.\n if (prevAssignedNodes.length > slotData.assignedNodes.length) {\n slotData.dirty = true;\n }\n }\n /* Note: A slot is marked dirty whenever a node is newly assigned to it\n or a node is assigned to a different slot (done in `_distributeNodeToSlot`)\n or if the number of nodes assigned to the slot has decreased (done above);\n */\n if (slotData.dirty) {\n slotData.dirty = false;\n this._fireSlotChange(slot);\n }\n }\n }\n\n /**\n * Distributes given `node` to the appropriate slot based on its `slot`\n * attribute. If `forcedSlot` is given, then the node is distributed to the\n * `forcedSlot`.\n * Note: slot to which the node is assigned will be marked dirty for firing\n * `slotchange`.\n * @param {Node} node\n * @param {Node=} forcedSlot\n *\n */\n _distributeNodeToSlot(node, forcedSlot) {\n const nodeData = ensureShadyDataForNode(node);\n let oldSlot = nodeData._prevAssignedSlot;\n nodeData._prevAssignedSlot = null;\n let slot = forcedSlot;\n if (!slot) {\n let name = node.slot || CATCHALL_NAME;\n const list = this._slotMap[name];\n slot = list && list[0];\n }\n if (slot) {\n const slotData = ensureShadyDataForNode(slot);\n slotData.assignedNodes.push(node);\n nodeData.assignedSlot = slot;\n } else {\n nodeData.assignedSlot = undefined;\n }\n if (oldSlot !== nodeData.assignedSlot) {\n if (nodeData.assignedSlot) {\n ensureShadyDataForNode(nodeData.assignedSlot).dirty = true;\n }\n }\n }\n\n /**\n * Clears the assignedNodes tracking data for a given `slot`. Note, the current\n * assigned node data is tracked (via _previouslyAssignedNodes and\n * _prevAssignedSlot) to see if `slotchange` should fire. This data may be out\n * of date at this time because the assigned nodes may have already been\n * distributed to another root. This is ok since this data is only used to\n * track changes.\n * @param {HTMLSlotElement} slot\n */\n _clearSlotAssignedNodes(slot) {\n const slotData = shadyDataForNode(slot);\n let n$ = slotData.assignedNodes;\n slotData.assignedNodes = [];\n slotData.flattenedNodes = [];\n slotData._previouslyAssignedNodes = n$;\n if (n$) {\n for (let i=0; i < n$.length; i++) {\n let n = shadyDataForNode(n$[i]);\n n._prevAssignedSlot = n.assignedSlot;\n // only clear if it was previously set to this slot;\n // this helps ensure that if the node has otherwise been distributed\n // ignore it.\n if (n.assignedSlot === slot) {\n n.assignedSlot = null;\n }\n }\n }\n }\n\n _addAssignedToFlattenedNodes(flattened, assigned) {\n for (let i=0, n; (i<assigned.length) && (n=assigned[i]); i++) {\n if (n.localName == 'slot') {\n const nestedAssigned = shadyDataForNode(n).assignedNodes;\n if (nestedAssigned && nestedAssigned.length) {\n this._addAssignedToFlattenedNodes(flattened, nestedAssigned);\n }\n } else {\n flattened.push(assigned[i]);\n }\n }\n }\n\n _fireSlotChange(slot) {\n // NOTE: cannot bubble correctly here so not setting bubbles: true\n // Safari tech preview does not bubble but chrome does\n // Spec says it bubbles (https://dom.spec.whatwg.org/#mutation-observers)\n dispatchEvent.call(slot, new Event('slotchange'));\n const slotData = shadyDataForNode(slot);\n if (slotData.assignedSlot) {\n this._fireSlotChange(slotData.assignedSlot);\n }\n }\n\n // Reify dom such that it is at its correct rendering position\n // based on logical distribution.\n // NOTE: here we only compose parents of <slot> elements and not the\n // shadowRoot into the host. The latter is performend via a fast path\n // in the `logical-mutation`.insertBefore.\n _compose() {\n const slots = this._slotList;\n let composeList = [];\n for (let i=0; i < slots.length; i++) {\n const parent = slots[i].parentNode;\n /* compose node only if:\n (1) parent does not have a shadowRoot since shadowRoot has already\n composed into the host\n (2) we're not already composing it\n [consider (n^2) but rare better than Set]\n */\n const parentData = shadyDataForNode(parent);\n if (!(parentData && parentData.root) &&\n composeList.indexOf(parent) < 0) {\n composeList.push(parent);\n }\n }\n for (let i=0; i < composeList.length; i++) {\n const node = composeList[i];\n const targetNode = node === this ? this.host : node;\n this._updateChildNodes(targetNode, this._composeNode(node));\n }\n }\n\n // Returns the list of nodes which should be rendered inside `node`.\n _composeNode(node) {\n let children = [];\n let c$ = node.childNodes;\n for (let i = 0; i < c$.length; i++) {\n let child = c$[i];\n // Note: if we see a slot here, the nodes are guaranteed to need to be\n // composed here. This is because if there is redistribution, it has\n // already been handled by this point.\n if (this._isInsertionPoint(child)) {\n let flattenedNodes = shadyDataForNode(child).flattenedNodes;\n for (let j = 0; j < flattenedNodes.length; j++) {\n let distributedNode = flattenedNodes[j];\n children.push(distributedNode);\n }\n } else {\n children.push(child);\n }\n }\n return children;\n }\n\n _isInsertionPoint(node) {\n return node.localName == 'slot';\n }\n\n // Ensures that the rendered node list inside `container` is `children`.\n _updateChildNodes(container, children) {\n let composed = childNodes(container);\n let splices = calculateSplices(children, composed);\n // process removals\n for (let i=0, d=0, s; (i<splices.length) && (s=splices[i]); i++) {\n for (let j=0, n; (j < s.removed.length) && (n=s.removed[j]); j++) {\n // check if the node is still where we expect it is before trying\n // to remove it; this can happen if we move a node and\n // then schedule its previous host for distribution resulting in\n // the node being removed here.\n if (parentNode(n) === container) {\n removeChild.call(container, n);\n }\n // TODO(sorvell): avoid the need for splicing here.\n composed.splice(s.index + d, 1);\n }\n d -= s.addedCount;\n }\n // process adds\n for (let i=0, s, next; (i<splices.length) && (s=splices[i]); i++) { //eslint-disable-line no-redeclare\n next = composed[s.index];\n for (let j=s.index, n; j < s.index + s.addedCount; j++) {\n n = children[j];\n insertBefore.call(container, n, next);\n composed.splice(j, 0, n);\n }\n }\n }\n\n _ensureSlotData() {\n this._pendingSlots = this._pendingSlots || [];\n this._slotList = this._slotList || [];\n this._slotMap = this._slotMap || {};\n }\n\n _addSlots(slots) {\n this._ensureSlotData();\n this._pendingSlots.push(...slots);\n }\n\n _validateSlots() {\n if (this._pendingSlots && this._pendingSlots.length) {\n this._mapSlots(this._pendingSlots);\n this._pendingSlots = [];\n }\n }\n\n /**\n * Adds the given slots. Slots are maintained in an dom-ordered list.\n * In addition a map of name to slot is updated.\n */\n _mapSlots(slots) {\n let slotNamesToSort;\n for (let i=0; i < slots.length; i++) {\n let slot = slots[i];\n // ensure insertionPoints's and their parents have logical dom info.\n // save logical tree info\n // a. for shadyRoot\n // b. for insertion points (fallback)\n // c. for parents of insertion points\n recordChildNodes(slot);\n recordChildNodes(slot.parentNode);\n let name = this._nameForSlot(slot);\n if (this._slotMap[name]) {\n slotNamesToSort = slotNamesToSort || {};\n slotNamesToSort[name] = true;\n this._slotMap[name].push(slot);\n } else {\n this._slotMap[name] = [slot];\n }\n this._slotList.push(slot);\n }\n if (slotNamesToSort) {\n for (let n in slotNamesToSort) {\n this._slotMap[n] = this._sortSlots(this._slotMap[n]);\n }\n }\n }\n\n _nameForSlot(slot) {\n const name = slot['name'] || slot.getAttribute('name') || CATCHALL_NAME;\n slot.__slotName = name;\n return name;\n }\n\n /**\n * Slots are kept in an ordered list. Slots with the same name\n * are sorted here by tree order.\n */\n _sortSlots(slots) {\n // NOTE: Cannot use `compareDocumentPosition` because it's not polyfilled,\n // but the code here could be used to polyfill the preceeding/following info\n // in `compareDocumentPosition`.\n return slots.sort((a, b) => {\n let listA = ancestorList(a);\n let listB = ancestorList(b);\n for (var i=0; i < listA.length; i++) {\n let nA = listA[i];\n let nB = listB[i];\n if (nA !== nB) {\n let c$ = Array.from(nA.parentNode.childNodes);\n return c$.indexOf(nA) - c$.indexOf(nB);\n }\n }\n });\n }\n\n /**\n * Removes from tracked slot data any slots contained within `container` and\n * then updates the tracked data (_slotList and _slotMap).\n * Any removed slots also have their `assignedNodes` removed from comopsed dom.\n */\n _removeContainedSlots(container) {\n if (!this._slotList) {\n return;\n }\n this._validateSlots();\n let didRemove;\n const map = this._slotMap;\n for (let n in map) {\n let slots = map[n];\n for (let i=0; i < slots.length; i++) {\n let slot = slots[i];\n if (utils.contains(container, slot)) {\n slots.splice(i, 1);\n const x = this._slotList.indexOf(slot);\n if (x >= 0) {\n this._slotList.splice(x, 1);\n }\n i--;\n this._removeFlattenedNodes(slot);\n didRemove = true;\n }\n }\n }\n return didRemove;\n }\n\n _updateSlotName(slot) {\n if (!this._slotList) {\n return;\n }\n // make sure slotMap is initialized with this slot\n this._validateSlots();\n const oldName = slot.__slotName;\n const name = this._nameForSlot(slot);\n if (name === oldName) {\n return;\n }\n // remove from existing tracking\n let slots = this._slotMap[oldName];\n const i = slots.indexOf(slot);\n if (i >= 0) {\n slots.splice(i, 1);\n }\n // add to new location and sort if nedessary\n let list = this._slotMap[name] || (this._slotMap[name] = []);\n list.push(slot);\n if (list.length > 1) {\n this._slotMap[name] = this._sortSlots(list);\n }\n }\n\n _removeFlattenedNodes(slot) {\n const data = shadyDataForNode(slot);\n let n$ = data.flattenedNodes;\n if (n$) {\n for (let i=0; i<n$.length; i++) {\n let node = n$[i];\n let parent = parentNode(node);\n if (parent) {\n removeChild.call(parent, node);\n }\n }\n }\n data.flattenedNodes = [];\n data.assignedNodes = [];\n }\n\n _hasInsertionPoint() {\n this._validateSlots();\n return Boolean(this._slotList && this._slotList.length);\n }\n}\n\nexport {ShadyRoot};\n\n/**\n Implements a pared down version of ShadowDOM's scoping, which is easy to\n polyfill across browsers.\n*/\nexport function attachShadow(host, options) {\n if (!host) {\n throw 'Must provide a host.';\n }\n if (!options) {\n throw 'Not enough arguments.'\n }\n return new ShadyRoot(ShadyRootConstructionToken, host, options);\n}\n\n// Mitigate connect/disconnect spam by wrapping custom element classes.\nif (window['customElements'] && utils.settings.inUse && !utils.settings['preferPerformance']) {\n\n // process connect/disconnect after roots have rendered to avoid\n // issues with reaction stack.\n let connectMap = new Map();\n rootRendered = function() {\n // allow elements to connect\n const map = Array.from(connectMap);\n connectMap.clear();\n for (const [e, value] of map) {\n if (value) {\n e.__shadydom_connectedCallback();\n } else {\n e.__shadydom_disconnectedCallback();\n }\n }\n }\n\n // Document is in loading state and flag is set (deferConnectionCallbacks)\n // so process connection stack when `readystatechange` fires.\n if (isRendering) {\n document.addEventListener('readystatechange', () => {\n isRendering = false;\n rootRendered();\n }, {once: true});\n }\n\n /*\n * (1) elements can only be connected/disconnected if they are in the expected\n * state.\n * (2) never run connect/disconnect during rendering to avoid reaction stack issues.\n */\n const ManageConnect = (base, connected, disconnected) => {\n let counter = 0;\n const connectFlag = `__isConnected${counter++}`;\n if (connected || disconnected) {\n\n base.prototype.connectedCallback = base.prototype.__shadydom_connectedCallback = function() {\n // if rendering defer connected\n // otherwise connect only if we haven't already\n if (isRendering) {\n connectMap.set(this, true);\n } else if (!this[connectFlag]) {\n this[connectFlag] = true;\n if (connected) {\n connected.call(this);\n }\n }\n }\n\n base.prototype.disconnectedCallback = base.prototype.__shadydom_disconnectedCallback = function() {\n // if rendering, cancel a pending connection and queue disconnect,\n // otherwise disconnect only if a connection has been allowed\n if (isRendering) {\n // This is necessary only because calling removeChild\n // on a node that requires distribution leaves it in the DOM tree\n // until distribution.\n // NOTE: remember this is checking the patched isConnected to determine\n // if the node is in the logical tree.\n if (!this.isConnected) {\n connectMap.set(this, false);\n }\n } else if (this[connectFlag]) {\n this[connectFlag] = false;\n if (disconnected) {\n disconnected.call(this);\n }\n }\n }\n }\n\n return base;\n }\n\n const define = window['customElements']['define'];\n // NOTE: Instead of patching customElements.define,\n // re-define on the CustomElementRegistry.prototype.define\n // for Safari 10 compatibility (it's flakey otherwise).\n Object.defineProperty(window['CustomElementRegistry'].prototype, 'define', {\n value: function(name, constructor) {\n const connected = constructor.prototype.connectedCallback;\n const disconnected = constructor.prototype.disconnectedCallback;\n define.call(window['customElements'], name,\n ManageConnect(constructor, connected, disconnected));\n // unpatch connected/disconnected on class; custom elements tears this off\n // so the patch is maintained, but if the user calls these methods for\n // e.g. testing, they will be as expected.\n constructor.prototype.connectedCallback = connected;\n constructor.prototype.disconnectedCallback = disconnected;\n }\n });\n\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\nimport * as utils from './utils.js';\nimport * as nativeMethods from './native-methods.js';\nimport {shadyDataForNode} from './shady-data.js';\n\n/*\nMake this name unique so it is unlikely to conflict with properties on objects passed to `addEventListener`\nhttps://github.com/webcomponents/shadydom/issues/173\n*/\nconst /** string */ eventWrappersName = `__eventWrappers${Date.now()}`;\n\n/** @type {?function(!Event): boolean} */\nconst composedGetter = (() => {\n const composedProp = Object.getOwnPropertyDescriptor(Event.prototype, 'composed');\n return composedProp ? (ev) => composedProp.get.call(ev) : null;\n})();\n\n// https://github.com/w3c/webcomponents/issues/513#issuecomment-224183937\nconst alwaysComposed = {\n 'blur': true,\n 'focus': true,\n 'focusin': true,\n 'focusout': true,\n 'click': true,\n 'dblclick': true,\n 'mousedown': true,\n 'mouseenter': true,\n 'mouseleave': true,\n 'mousemove': true,\n 'mouseout': true,\n 'mouseover': true,\n 'mouseup': true,\n 'wheel': true,\n 'beforeinput': true,\n 'input': true,\n 'keydown': true,\n 'keyup': true,\n 'compositionstart': true,\n 'compositionupdate': true,\n 'compositionend': true,\n 'touchstart': true,\n 'touchend': true,\n 'touchmove': true,\n 'touchcancel': true,\n 'pointerover': true,\n 'pointerenter': true,\n 'pointerdown': true,\n 'pointermove': true,\n 'pointerup': true,\n 'pointercancel': true,\n 'pointerout': true,\n 'pointerleave': true,\n 'gotpointercapture': true,\n 'lostpointercapture': true,\n 'dragstart': true,\n 'drag': true,\n 'dragenter': true,\n 'dragleave': true,\n 'dragover': true,\n 'drop': true,\n 'dragend': true,\n 'DOMActivate': true,\n 'DOMFocusIn': true,\n 'DOMFocusOut': true,\n 'keypress': true\n};\n\nconst unpatchedEvents = {\n 'DOMAttrModified': true,\n 'DOMAttributeNameChanged': true,\n 'DOMCharacterDataModified': true,\n 'DOMElementNameChanged': true,\n 'DOMNodeInserted': true,\n 'DOMNodeInsertedIntoDocument': true,\n 'DOMNodeRemoved': true,\n 'DOMNodeRemovedFromDocument': true,\n 'DOMSubtreeModified': true\n}\n\nfunction pathComposer(startNode, composed) {\n let composedPath = [];\n let current = startNode;\n let startRoot = startNode === window ? window : startNode.getRootNode();\n while (current) {\n composedPath.push(current);\n if (current.assignedSlot) {\n current = current.assignedSlot;\n } else if (current.nodeType === Node.DOCUMENT_FRAGMENT_NODE && current.host && (composed || current !== startRoot)) {\n current = current.host;\n } else {\n current = current.parentNode;\n }\n }\n // event composedPath includes window when startNode's ownerRoot is document\n if (composedPath[composedPath.length - 1] === document) {\n composedPath.push(window);\n }\n return composedPath;\n}\n\nfunction retarget(refNode, path) {\n if (!utils.isShadyRoot) {\n return refNode;\n }\n // If ANCESTOR's root is not a shadow root or ANCESTOR's root is BASE's\n // shadow-including inclusive ancestor, return ANCESTOR.\n let refNodePath = pathComposer(refNode, true);\n let p$ = path;\n for (let i=0, ancestor, lastRoot, root, rootIdx; i < p$.length; i++) {\n ancestor = p$[i];\n root = ancestor === window ? window : ancestor.getRootNode();\n if (root !== lastRoot) {\n rootIdx = refNodePath.indexOf(root);\n lastRoot = root;\n }\n if (!utils.isShadyRoot(root) || rootIdx > -1) {\n return ancestor;\n }\n }\n}\n\nlet eventMixin = {\n\n /**\n * @this {Event}\n */\n get composed() {\n if (this.__composed === undefined) {\n // if there's an original `composed` getter on the Event prototype, use that\n if (composedGetter) {\n // TODO(web-padawan): see https://github.com/webcomponents/shadydom/issues/275\n this.__composed = this.type === 'focusin' || this.type === 'focusout' || composedGetter(this);\n // If the event is trusted, or `isTrusted` is not supported, check the list of always composed events\n } else if (this.isTrusted !== false) {\n this.__composed = alwaysComposed[this.type];\n }\n }\n return this.__composed || false;\n },\n\n /**\n * @this {Event}\n */\n composedPath() {\n if (!this.__composedPath) {\n this.__composedPath = pathComposer(this['__target'], this.composed);\n }\n return this.__composedPath;\n },\n\n /**\n * @this {Event}\n */\n get target() {\n return retarget(this.currentTarget || this['__previousCurrentTarget'], this.composedPath());\n },\n\n // http://w3c.github.io/webcomponents/spec/shadow/#event-relatedtarget-retargeting\n /**\n * @this {Event}\n */\n get relatedTarget() {\n if (!this.__relatedTarget) {\n return null;\n }\n if (!this.__relatedTargetComposedPath) {\n this.__relatedTargetComposedPath = pathComposer(this.__relatedTarget, true);\n }\n // find the deepest node in relatedTarget composed path that is in the same root with the currentTarget\n return retarget(this.currentTarget || this['__previousCurrentTarget'], this.__relatedTargetComposedPath);\n },\n /**\n * @this {Event}\n */\n stopPropagation() {\n Event.prototype.stopPropagation.call(this);\n this.__propagationStopped = true;\n },\n /**\n * @this {Event}\n */\n stopImmediatePropagation() {\n Event.prototype.stopImmediatePropagation.call(this);\n this.__immediatePropagationStopped = true;\n this.__propagationStopped = true;\n }\n\n};\n\nfunction mixinComposedFlag(Base) {\n // NOTE: avoiding use of `class` here so that transpiled output does not\n // try to do `Base.call` with a dom construtor.\n let klazz = function(type, options) {\n let event = new Base(type, options);\n event.__composed = options && Boolean(options['composed']);\n return event;\n }\n // put constructor properties on subclass\n utils.mixin(klazz, Base);\n klazz.prototype = Base.prototype;\n return klazz;\n}\n\nlet nonBubblingEventsToRetarget = {\n 'focus': true,\n 'blur': true\n};\n\n\n/**\n * Check if the event has been retargeted by comparing original `target`, and calculated `target`\n * @param {Event} event\n * @return {boolean} True if the original target and calculated target are the same\n */\nfunction hasRetargeted(event) {\n return event['__target'] !== event.target || event.__relatedTarget !== event.relatedTarget;\n}\n\n/**\n *\n * @param {Event} event\n * @param {Node} node\n * @param {string} phase\n */\nfunction fireHandlers(event, node, phase) {\n let hs = node.__handlers && node.__handlers[event.type] &&\n node.__handlers[event.type][phase];\n if (hs) {\n for (let i = 0, fn; (fn = hs[i]); i++) {\n if (hasRetargeted(event) && event.target === event.relatedTarget) {\n return;\n }\n fn.call(node, event);\n if (event.__immediatePropagationStopped) {\n return;\n }\n }\n }\n}\n\nfunction retargetNonBubblingEvent(e) {\n let path = e.composedPath();\n let node;\n // override `currentTarget` to let patched `target` calculate correctly\n Object.defineProperty(e, 'currentTarget', {\n get: function() {\n return node;\n },\n configurable: true\n });\n for (let i = path.length - 1; i >= 0; i--) {\n node = path[i];\n // capture phase fires all capture handlers\n fireHandlers(e, node, 'capture');\n if (e.__propagationStopped) {\n return;\n }\n }\n\n // set the event phase to `AT_TARGET` as in spec\n Object.defineProperty(e, 'eventPhase', {get() { return Event.AT_TARGET }});\n\n // the event only needs to be fired when owner roots change when iterating the event path\n // keep track of the last seen owner root\n let lastFiredRoot;\n for (let i = 0; i < path.length; i++) {\n node = path[i];\n const nodeData = shadyDataForNode(node);\n const root = nodeData && nodeData.root;\n if (i === 0 || (root && root === lastFiredRoot)) {\n fireHandlers(e, node, 'bubble');\n // don't bother with window, it doesn't have `getRootNode` and will be last in the path anyway\n if (node !== window) {\n lastFiredRoot = node.getRootNode();\n }\n if (e.__propagationStopped) {\n return;\n }\n }\n }\n}\n\nfunction listenerSettingsEqual(savedListener, node, type, capture, once, passive) {\n let {\n node: savedNode,\n type: savedType,\n capture: savedCapture,\n once: savedOnce,\n passive: savedPassive\n } = savedListener;\n return node === savedNode &&\n type === savedType &&\n capture === savedCapture &&\n once === savedOnce &&\n passive === savedPassive;\n}\n\nexport function findListener(wrappers, node, type, capture, once, passive) {\n for (let i = 0; i < wrappers.length; i++) {\n if (listenerSettingsEqual(wrappers[i], node, type, capture, once, passive)) {\n return i;\n }\n }\n return -1;\n}\n\n/**\n * Firefox can throw on accessing eventWrappers inside of `removeEventListener` during a selenium run\n * Try/Catch accessing eventWrappers to work around\n * https://bugzilla.mozilla.org/show_bug.cgi?id=1353074\n */\nfunction getEventWrappers(eventLike) {\n let wrappers = null;\n try {\n wrappers = eventLike[eventWrappersName];\n } catch (e) {} // eslint-disable-line no-empty\n return wrappers;\n}\n\n/**\n * @this {Event}\n */\nexport function addEventListener(type, fnOrObj, optionsOrCapture) {\n if (!fnOrObj) {\n return;\n }\n\n const handlerType = typeof fnOrObj;\n\n // bail if `fnOrObj` is not a function, not an object\n if (handlerType !== 'function' && handlerType !== 'object') {\n return;\n }\n\n // bail if `fnOrObj` is an object without a `handleEvent` method\n if (handlerType === 'object' && (!fnOrObj.handleEvent || typeof fnOrObj.handleEvent !== 'function')) {\n return;\n }\n\n const ael = this instanceof Window ? nativeMethods.windowAddEventListener :\n nativeMethods.addEventListener;\n\n if (unpatchedEvents[type]) {\n return ael.call(this, type, fnOrObj, optionsOrCapture);\n }\n\n // The callback `fn` might be used for multiple nodes/events. Since we generate\n // a wrapper function, we need to keep track of it when we remove the listener.\n // It's more efficient to store the node/type/options information as Array in\n // `fn` itself rather than the node (we assume that the same callback is used\n // for few nodes at most, whereas a node will likely have many event listeners).\n // NOTE(valdrin) invoking external functions is costly, inline has better perf.\n let capture, once, passive;\n if (optionsOrCapture && typeof optionsOrCapture === 'object') {\n capture = Boolean(optionsOrCapture.capture);\n once = Boolean(optionsOrCapture.once);\n passive = Boolean(optionsOrCapture.passive);\n } else {\n capture = Boolean(optionsOrCapture);\n once = false;\n passive = false;\n }\n // hack to let ShadyRoots have event listeners\n // event listener will be on host, but `currentTarget`\n // will be set to shadyroot for event listener\n let target = (optionsOrCapture && optionsOrCapture.__shadyTarget) || this;\n\n let wrappers = fnOrObj[eventWrappersName];\n if (wrappers) {\n // Stop if the wrapper function has already been created.\n if (findListener(wrappers, target, type, capture, once, passive) > -1) {\n return;\n }\n } else {\n fnOrObj[eventWrappersName] = [];\n }\n\n /**\n * @this {HTMLElement}\n * @param {Event} e\n */\n const wrapperFn = function(e) {\n // Support `once` option.\n if (once) {\n this.removeEventListener(type, fnOrObj, optionsOrCapture);\n }\n if (!e['__target']) {\n patchEvent(e);\n }\n let lastCurrentTargetDesc;\n if (target !== this) {\n // replace `currentTarget` to make `target` and `relatedTarget` correct for inside the shadowroot\n lastCurrentTargetDesc = Object.getOwnPropertyDescriptor(e, 'currentTarget');\n Object.defineProperty(e, 'currentTarget', {get() { return target }, configurable: true});\n }\n e['__previousCurrentTarget'] = e['currentTarget'];\n // Always check if a shadowRoot is in the current event path.\n // If it is not, the event was generated on either the host of the shadowRoot\n // or a children of the host.\n if (utils.isShadyRoot(target) && e.composedPath().indexOf(target) == -1) {\n return;\n }\n // There are two critera that should stop events from firing on this node\n // 1. the event is not composed and the current node is not in the same root as the target\n // 2. when bubbling, if after retargeting, relatedTarget and target point to the same node\n if (e.composed || e.composedPath().indexOf(target) > -1) {\n if (hasRetargeted(e) && e.target === e.relatedTarget) {\n if (e.eventPhase === Event.BUBBLING_PHASE) {\n e.stopImmediatePropagation();\n }\n return;\n }\n // prevent non-bubbling events from triggering bubbling handlers on shadowroot, but only if not in capture phase\n if (e.eventPhase !== Event.CAPTURING_PHASE && !e.bubbles && e.target !== target && !(target instanceof Window)) {\n return;\n }\n let ret = handlerType === 'function' ?\n fnOrObj.call(target, e) :\n (fnOrObj.handleEvent && fnOrObj.handleEvent(e));\n if (target !== this) {\n // replace the \"correct\" `currentTarget`\n if (lastCurrentTargetDesc) {\n Object.defineProperty(e, 'currentTarget', lastCurrentTargetDesc);\n lastCurrentTargetDesc = null;\n } else {\n delete e['currentTarget'];\n }\n }\n return ret;\n }\n };\n // Store the wrapper information.\n fnOrObj[eventWrappersName].push({\n // note: use target here which is either a shadowRoot\n // (when the host element is proxy'ing the event) or this element\n node: target,\n type: type,\n capture: capture,\n once: once,\n passive: passive,\n wrapperFn: wrapperFn\n });\n\n if (nonBubblingEventsToRetarget[type]) {\n this.__handlers = this.__handlers || {};\n this.__handlers[type] = this.__handlers[type] ||\n {'capture': [], 'bubble': []};\n this.__handlers[type][capture ? 'capture' : 'bubble'].push(wrapperFn);\n } else {\n ael.call(this, type, wrapperFn, optionsOrCapture);\n }\n}\n\n/**\n * @this {Event}\n */\nexport function removeEventListener(type, fnOrObj, optionsOrCapture) {\n if (!fnOrObj) {\n return;\n }\n const rel = this instanceof Window ? nativeMethods.windowRemoveEventListener :\n nativeMethods.removeEventListener;\n if (unpatchedEvents[type]) {\n return rel.call(this, type, fnOrObj, optionsOrCapture);\n }\n // NOTE(valdrin) invoking external functions is costly, inline has better perf.\n let capture, once, passive;\n if (optionsOrCapture && typeof optionsOrCapture === 'object') {\n capture = Boolean(optionsOrCapture.capture);\n once = Boolean(optionsOrCapture.once);\n passive = Boolean(optionsOrCapture.passive);\n } else {\n capture = Boolean(optionsOrCapture);\n once = false;\n passive = false;\n }\n let target = (optionsOrCapture && optionsOrCapture.__shadyTarget) || this;\n // Search the wrapped function.\n let wrapperFn = undefined;\n let wrappers = getEventWrappers(fnOrObj);\n if (wrappers) {\n let idx = findListener(wrappers, target, type, capture, once, passive);\n if (idx > -1) {\n wrapperFn = wrappers.splice(idx, 1)[0].wrapperFn;\n // Cleanup.\n if (!wrappers.length) {\n fnOrObj[eventWrappersName] = undefined;\n }\n }\n }\n rel.call(this, type, wrapperFn || fnOrObj, optionsOrCapture);\n if (wrapperFn && nonBubblingEventsToRetarget[type] &&\n this.__handlers && this.__handlers[type]) {\n const arr = this.__handlers[type][capture ? 'capture' : 'bubble'];\n const idx = arr.indexOf(wrapperFn);\n if (idx > -1) {\n arr.splice(idx, 1);\n }\n }\n}\n\nfunction activateFocusEventOverrides() {\n for (let ev in nonBubblingEventsToRetarget) {\n window.addEventListener(ev, function(e) {\n if (!e['__target']) {\n patchEvent(e);\n retargetNonBubblingEvent(e);\n }\n }, true);\n }\n}\n\nfunction patchEvent(event) {\n event['__target'] = event.target;\n event.__relatedTarget = event.relatedTarget;\n // patch event prototype if we can\n if (utils.settings.hasDescriptors) {\n utils.patchPrototype(event, eventMixin);\n // and fallback to patching instance\n } else {\n utils.extend(event, eventMixin);\n }\n}\n\nlet PatchedEvent = mixinComposedFlag(window.Event);\nlet PatchedCustomEvent = mixinComposedFlag(window.CustomEvent);\nlet PatchedMouseEvent = mixinComposedFlag(window.MouseEvent);\n\nexport function patchEvents() {\n window.Event = PatchedEvent;\n window.CustomEvent = PatchedCustomEvent;\n window.MouseEvent = PatchedMouseEvent;\n activateFocusEventOverrides();\n\n // Fix up `Element.prototype.click()` if `isTrusted` is supported, but `composed` isn't\n if (!composedGetter && Object.getOwnPropertyDescriptor(Event.prototype, 'isTrusted')) {\n /** @this {Element} */\n const composedClickFn = function() {\n const ev = new MouseEvent('click', {\n bubbles: true,\n cancelable: true,\n composed: true\n });\n this.dispatchEvent(ev);\n };\n if (Element.prototype.click) {\n Element.prototype.click = composedClickFn;\n } else if (HTMLElement.prototype.click) {\n HTMLElement.prototype.click = composedClickFn;\n }\n }\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\nfunction newSplice(index, removed, addedCount) {\n return {\n index: index,\n removed: removed,\n addedCount: addedCount\n };\n}\n\nconst EDIT_LEAVE = 0;\nconst EDIT_UPDATE = 1;\nconst EDIT_ADD = 2;\nconst EDIT_DELETE = 3;\n\n// Note: This function is *based* on the computation of the Levenshtein\n// \"edit\" distance. The one change is that \"updates\" are treated as two\n// edits - not one. With Array splices, an update is really a delete\n// followed by an add. By retaining this, we optimize for \"keeping\" the\n// maximum array items in the original array. For example:\n//\n// 'xxxx123' -> '123yyyy'\n//\n// With 1-edit updates, the shortest path would be just to update all seven\n// characters. With 2-edit updates, we delete 4, leave 3, and add 4. This\n// leaves the substring '123' intact.\nfunction calcEditDistances(current, currentStart, currentEnd,\n old, oldStart, oldEnd) {\n // \"Deletion\" columns\n let rowCount = oldEnd - oldStart + 1;\n let columnCount = currentEnd - currentStart + 1;\n let distances = new Array(rowCount);\n\n // \"Addition\" rows. Initialize null column.\n for (let i = 0; i < rowCount; i++) {\n distances[i] = new Array(columnCount);\n distances[i][0] = i;\n }\n\n // Initialize null row\n for (let j = 0; j < columnCount; j++)\n distances[0][j] = j;\n\n for (let i = 1; i < rowCount; i++) {\n for (let j = 1; j < columnCount; j++) {\n if (equals(current[currentStart + j - 1], old[oldStart + i - 1]))\n distances[i][j] = distances[i - 1][j - 1];\n else {\n let north = distances[i - 1][j] + 1;\n let west = distances[i][j - 1] + 1;\n distances[i][j] = north < west ? north : west;\n }\n }\n }\n\n return distances;\n}\n\n// This starts at the final weight, and walks \"backward\" by finding\n// the minimum previous weight recursively until the origin of the weight\n// matrix.\nfunction spliceOperationsFromEditDistances(distances) {\n let i = distances.length - 1;\n let j = distances[0].length - 1;\n let current = distances[i][j];\n let edits = [];\n while (i > 0 || j > 0) {\n if (i == 0) {\n edits.push(EDIT_ADD);\n j--;\n continue;\n }\n if (j == 0) {\n edits.push(EDIT_DELETE);\n i--;\n continue;\n }\n let northWest = distances[i - 1][j - 1];\n let west = distances[i - 1][j];\n let north = distances[i][j - 1];\n\n let min;\n if (west < north)\n min = west < northWest ? west : northWest;\n else\n min = north < northWest ? north : northWest;\n\n if (min == northWest) {\n if (northWest == current) {\n edits.push(EDIT_LEAVE);\n } else {\n edits.push(EDIT_UPDATE);\n current = northWest;\n }\n i--;\n j--;\n } else if (min == west) {\n edits.push(EDIT_DELETE);\n i--;\n current = west;\n } else {\n edits.push(EDIT_ADD);\n j--;\n current = north;\n }\n }\n\n edits.reverse();\n return edits;\n}\n\n/**\n * Splice Projection functions:\n *\n * A splice map is a representation of how a previous array of items\n * was transformed into a new array of items. Conceptually it is a list of\n * tuples of\n *\n * <index, removed, addedCount>\n *\n * which are kept in ascending index order of. The tuple represents that at\n * the |index|, |removed| sequence of items were removed, and counting forward\n * from |index|, |addedCount| items were added.\n */\n\n/**\n * Lacking individual splice mutation information, the minimal set of\n * splices can be synthesized given the previous state and final state of an\n * array. The basic approach is to calculate the edit distance matrix and\n * choose the shortest path through it.\n *\n * Complexity: O(l * p)\n * l: The length of the current array\n * p: The length of the old array\n */\nfunction calcSplices(current, currentStart, currentEnd,\n old, oldStart, oldEnd) {\n let prefixCount = 0;\n let suffixCount = 0;\n let splice;\n\n let minLength = Math.min(currentEnd - currentStart, oldEnd - oldStart);\n if (currentStart == 0 && oldStart == 0)\n prefixCount = sharedPrefix(current, old, minLength);\n\n if (currentEnd == current.length && oldEnd == old.length)\n suffixCount = sharedSuffix(current, old, minLength - prefixCount);\n\n currentStart += prefixCount;\n oldStart += prefixCount;\n currentEnd -= suffixCount;\n oldEnd -= suffixCount;\n\n if (currentEnd - currentStart == 0 && oldEnd - oldStart == 0)\n return [];\n\n if (currentStart == currentEnd) {\n splice = newSplice(currentStart, [], 0);\n while (oldStart < oldEnd)\n splice.removed.push(old[oldStart++]);\n\n return [ splice ];\n } else if (oldStart == oldEnd)\n return [ newSplice(currentStart, [], currentEnd - currentStart) ];\n\n let ops = spliceOperationsFromEditDistances(\n calcEditDistances(current, currentStart, currentEnd,\n old, oldStart, oldEnd));\n\n splice = undefined;\n let splices = [];\n let index = currentStart;\n let oldIndex = oldStart;\n for (let i = 0; i < ops.length; i++) {\n switch(ops[i]) {\n case EDIT_LEAVE:\n if (splice) {\n splices.push(splice);\n splice = undefined;\n }\n\n index++;\n oldIndex++;\n break;\n case EDIT_UPDATE:\n if (!splice)\n splice = newSplice(index, [], 0);\n\n splice.addedCount++;\n index++;\n\n splice.removed.push(old[oldIndex]);\n oldIndex++;\n break;\n case EDIT_ADD:\n if (!splice)\n splice = newSplice(index, [], 0);\n\n splice.addedCount++;\n index++;\n break;\n case EDIT_DELETE:\n if (!splice)\n splice = newSplice(index, [], 0);\n\n splice.removed.push(old[oldIndex]);\n oldIndex++;\n break;\n }\n }\n\n if (splice) {\n splices.push(splice);\n }\n return splices;\n}\n\nfunction sharedPrefix(current, old, searchLength) {\n for (let i = 0; i < searchLength; i++)\n if (!equals(current[i], old[i]))\n return i;\n return searchLength;\n}\n\nfunction sharedSuffix(current, old, searchLength) {\n let index1 = current.length;\n let index2 = old.length;\n let count = 0;\n while (count < searchLength && equals(current[--index1], old[--index2]))\n count++;\n\n return count;\n}\n\nfunction equals(currentValue, previousValue) {\n return currentValue === previousValue;\n}\n\nexport function calculateSplices(current, previous) {\n return calcSplices(current, 0, current.length, previous, 0,\n previous.length);\n}\n\n",null,"/**\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/**\n * Patches elements that interacts with ShadyDOM\n * such that tree traversal and mutation apis act like they would under\n * ShadowDOM.\n *\n * This import enables seemless interaction with ShadyDOM powered\n * custom elements, enabling better interoperation with 3rd party code,\n * libraries, and frameworks that use DOM tree manipulation apis.\n */\n\nimport * as utils from './utils.js';\nimport {flush, enqueue} from './flush.js';\nimport {observeChildren, unobserveChildren, filterMutations} from './observe-changes.js';\nimport * as nativeMethods from './native-methods.js';\nimport {accessors as nativeTree} from './native-tree.js';\nimport {patchBuiltins} from './patch-builtins.js';\nimport {patchInsideElementAccessors, patchOutsideElementAccessors} from './patch-accessors.js';\nimport {patchEvents} from './patch-events.js';\nimport {ShadyRoot} from './attach-shadow.js';\n\nif (utils.settings.inUse) {\n let ShadyDOM = {\n // TODO(sorvell): remove when Polymer does not depend on this.\n 'inUse': utils.settings.inUse,\n // NOTE: old browsers without prototype accessors (very old Chrome\n // and Safari) need manually patched accessors to properly set\n // `innerHTML` and `textContent` when an element is:\n // (1) inside a shadowRoot\n // (2) does not have special (slot) children itself\n // (3) and setting the property needs to provoke distribution (because\n // a nested slot is added/removed)\n 'patch': (node) => {\n patchInsideElementAccessors(node);\n patchOutsideElementAccessors(node);\n return node;\n },\n 'isShadyRoot': utils.isShadyRoot,\n 'enqueue': enqueue,\n 'flush': flush,\n 'settings': utils.settings,\n 'filterMutations': filterMutations,\n 'observeChildren': observeChildren,\n 'unobserveChildren': unobserveChildren,\n 'nativeMethods': nativeMethods,\n 'nativeTree': nativeTree,\n // Set to true to defer native custom elements connection until the\n // document has fully parsed. This enables custom elements that create\n // shadowRoots to be defined while the document is loading. Elements\n // customized as they are created by the parser will successfully\n // render with this flag on.\n 'deferConnectionCallbacks': utils.settings['deferConnectionCallbacks'],\n // Set to true to speed up the polyfill slightly at the cost of correctness\n // * does not patch querySelector/All on Document or DocumentFragment\n // * does not wrap connected/disconnected callbacks to de-dup these\n // when using native customElements\n // * does not wait to process children of elements with shadowRoots\n // meaning shadowRoots should not be created while an element is parsing\n // (e.g. if a custom element that creates a shadowRoot is defined before\n // a candidate element in the document below it.\n 'preferPerformance': utils.settings['preferPerformance'],\n // Integration point with ShadyCSS to disable styling MutationObserver,\n // as ShadyDOM will now handle dynamic scoping.\n 'handlesDynamicScoping': true\n };\n\n window['ShadyDOM'] = ShadyDOM;\n\n // Apply patches to events...\n patchEvents();\n // Apply patches to builtins (e.g. Element.prototype) where applicable.\n patchBuiltins();\n\n window.ShadowRoot = ShadyRoot;\n}\n","const reservedTagList = new Set([\n 'annotation-xml',\n 'color-profile',\n 'font-face',\n 'font-face-src',\n 'font-face-uri',\n 'font-face-format',\n 'font-face-name',\n 'missing-glyph',\n]);\n\n/**\n * @param {string} localName\n * @returns {boolean}\n */\nexport function isValidCustomElementName(localName) {\n const reserved = reservedTagList.has(localName);\n const validForm = /^[a-z][.0-9_a-z]*-[\\-.0-9_a-z]*$/.test(localName);\n return !reserved && validForm;\n}\n\n/**\n * @private\n * @param {!Node} node\n * @return {boolean}\n */\nexport function isConnected(node) {\n // Use `Node#isConnected`, if defined.\n const nativeValue = node.isConnected;\n if (nativeValue !== undefined) {\n return nativeValue;\n }\n\n /** @type {?Node|undefined} */\n let current = node;\n while (current && !(current.__CE_isImportDocument || current instanceof Document)) {\n current = current.parentNode || (window.ShadowRoot && current instanceof ShadowRoot ? current.host : undefined);\n }\n return !!(current && (current.__CE_isImportDocument || current instanceof Document));\n}\n\n/**\n * @param {!Node} root\n * @param {!Node} start\n * @return {?Node}\n */\nfunction nextSiblingOrAncestorSibling(root, start) {\n let node = start;\n while (node && node !== root && !node.nextSibling) {\n node = node.parentNode;\n }\n return (!node || node === root) ? null : node.nextSibling;\n}\n\n/**\n * @param {!Node} root\n * @param {!Node} start\n * @return {?Node}\n */\nfunction nextNode(root, start) {\n return start.firstChild ? start.firstChild : nextSiblingOrAncestorSibling(root, start);\n}\n\n/**\n * @param {!Node} root\n * @param {!function(!Element)} callback\n * @param {!Set<Node>=} visitedImports\n */\nexport function walkDeepDescendantElements(root, callback, visitedImports = new Set()) {\n let node = root;\n while (node) {\n if (node.nodeType === Node.ELEMENT_NODE) {\n const element = /** @type {!Element} */(node);\n\n callback(element);\n\n const localName = element.localName;\n if (localName === 'link' && element.getAttribute('rel') === 'import') {\n // If this import (polyfilled or not) has it's root node available,\n // walk it.\n const importNode = /** @type {!Node} */ (element.import);\n if (importNode instanceof Node && !visitedImports.has(importNode)) {\n // Prevent multiple walks of the same import root.\n visitedImports.add(importNode);\n\n for (let child = importNode.firstChild; child; child = child.nextSibling) {\n walkDeepDescendantElements(child, callback, visitedImports);\n }\n }\n\n // Ignore descendants of import links to prevent attempting to walk the\n // elements created by the HTML Imports polyfill that we just walked\n // above.\n node = nextSiblingOrAncestorSibling(root, element);\n continue;\n } else if (localName === 'template') {\n // Ignore descendants of templates. There shouldn't be any descendants\n // because they will be moved into `.content` during construction in\n // browsers that support template but, in case they exist and are still\n // waiting to be moved by a polyfill, they will be ignored.\n node = nextSiblingOrAncestorSibling(root, element);\n continue;\n }\n\n // Walk shadow roots.\n const shadowRoot = element.__CE_shadowRoot;\n if (shadowRoot) {\n for (let child = shadowRoot.firstChild; child; child = child.nextSibling) {\n walkDeepDescendantElements(child, callback, visitedImports);\n }\n }\n }\n\n node = nextNode(root, node);\n }\n}\n\n/**\n * Used to suppress Closure's \"Modifying the prototype is only allowed if the\n * constructor is in the same scope\" warning without using\n * `@suppress {newCheckTypes, duplicate}` because `newCheckTypes` is too broad.\n *\n * @param {!Object} destination\n * @param {string} name\n * @param {*} value\n */\nexport function setPropertyUnchecked(destination, name, value) {\n destination[name] = value;\n}\n","import * as Utilities from './Utilities.js';\nimport CEState from './CustomElementState.js';\n\nexport default class CustomElementInternals {\n constructor() {\n /** @type {!Map<string, !CustomElementDefinition>} */\n this._localNameToDefinition = new Map();\n\n /** @type {!Map<!Function, !CustomElementDefinition>} */\n this._constructorToDefinition = new Map();\n\n /** @type {!Array<!function(!Node)>} */\n this._patches = [];\n\n /** @type {boolean} */\n this._hasPatches = false;\n }\n\n /**\n * @param {string} localName\n * @param {!CustomElementDefinition} definition\n */\n setDefinition(localName, definition) {\n this._localNameToDefinition.set(localName, definition);\n this._constructorToDefinition.set(definition.constructorFunction, definition);\n }\n\n /**\n * @param {string} localName\n * @return {!CustomElementDefinition|undefined}\n */\n localNameToDefinition(localName) {\n return this._localNameToDefinition.get(localName);\n }\n\n /**\n * @param {!Function} constructor\n * @return {!CustomElementDefinition|undefined}\n */\n constructorToDefinition(constructor) {\n return this._constructorToDefinition.get(constructor);\n }\n\n /**\n * @param {!function(!Node)} listener\n */\n addPatch(listener) {\n this._hasPatches = true;\n this._patches.push(listener);\n }\n\n /**\n * @param {!Node} node\n */\n patchTree(node) {\n if (!this._hasPatches) return;\n\n Utilities.walkDeepDescendantElements(node, element => this.patch(element));\n }\n\n /**\n * @param {!Node} node\n */\n patch(node) {\n if (!this._hasPatches) return;\n\n if (node.__CE_patched) return;\n node.__CE_patched = true;\n\n for (let i = 0; i < this._patches.length; i++) {\n this._patches[i](node);\n }\n }\n\n /**\n * @param {!Node} root\n */\n connectTree(root) {\n const elements = [];\n\n Utilities.walkDeepDescendantElements(root, element => elements.push(element));\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n if (element.__CE_state === CEState.custom) {\n this.connectedCallback(element);\n } else {\n this.upgradeElement(element);\n }\n }\n }\n\n /**\n * @param {!Node} root\n */\n disconnectTree(root) {\n const elements = [];\n\n Utilities.walkDeepDescendantElements(root, element => elements.push(element));\n\n for (let i = 0; i < elements.length; i++) {\n const element = elements[i];\n if (element.__CE_state === CEState.custom) {\n this.disconnectedCallback(element);\n }\n }\n }\n\n /**\n * Upgrades all uncustomized custom elements at and below a root node for\n * which there is a definition. When custom element reaction callbacks are\n * assumed to be called synchronously (which, by the current DOM / HTML spec\n * definitions, they are *not*), callbacks for both elements customized\n * synchronously by the parser and elements being upgraded occur in the same\n * relative order.\n *\n * NOTE: This function, when used to simulate the construction of a tree that\n * is already created but not customized (i.e. by the parser), does *not*\n * prevent the element from reading the 'final' (true) state of the tree. For\n * example, the element, during truly synchronous parsing / construction would\n * see that it contains no children as they have not yet been inserted.\n * However, this function does not modify the tree, the element will\n * (incorrectly) have children. Additionally, self-modification restrictions\n * for custom element constructors imposed by the DOM spec are *not* enforced.\n *\n *\n * The following nested list shows the steps extending down from the HTML\n * spec's parsing section that cause elements to be synchronously created and\n * upgraded:\n *\n * The \"in body\" insertion mode:\n * https://html.spec.whatwg.org/multipage/syntax.html#parsing-main-inbody\n * - Switch on token:\n * .. other cases ..\n * -> Any other start tag\n * - [Insert an HTML element](below) for the token.\n *\n * Insert an HTML element:\n * https://html.spec.whatwg.org/multipage/syntax.html#insert-an-html-element\n * - Insert a foreign element for the token in the HTML namespace:\n * https://html.spec.whatwg.org/multipage/syntax.html#insert-a-foreign-element\n * - Create an element for a token:\n * https://html.spec.whatwg.org/multipage/syntax.html#create-an-element-for-the-token\n * - Will execute script flag is true?\n * - (Element queue pushed to the custom element reactions stack.)\n * - Create an element:\n * https://dom.spec.whatwg.org/#concept-create-element\n * - Sync CE flag is true?\n * - Constructor called.\n * - Self-modification restrictions enforced.\n * - Sync CE flag is false?\n * - (Upgrade reaction enqueued.)\n * - Attributes appended to element.\n * (`attributeChangedCallback` reactions enqueued.)\n * - Will execute script flag is true?\n * - (Element queue popped from the custom element reactions stack.\n * Reactions in the popped stack are invoked.)\n * - (Element queue pushed to the custom element reactions stack.)\n * - Insert the element:\n * https://dom.spec.whatwg.org/#concept-node-insert\n * - Shadow-including descendants are connected. During parsing\n * construction, there are no shadow-*excluding* descendants.\n * However, the constructor may have validly attached a shadow\n * tree to itself and added descendants to that shadow tree.\n * (`connectedCallback` reactions enqueued.)\n * - (Element queue popped from the custom element reactions stack.\n * Reactions in the popped stack are invoked.)\n *\n * @param {!Node} root\n * @param {{\n * visitedImports: (!Set<!Node>|undefined),\n * upgrade: (!function(!Element)|undefined),\n * }=} options\n */\n patchAndUpgradeTree(root, options = {}) {\n const visitedImports = options.visitedImports || new Set();\n const upgrade = options.upgrade || (element => this.upgradeElement(element));\n\n const elements = [];\n\n const gatherElements = element => {\n if (element.localName === 'link' && element.getAttribute('rel') === 'import') {\n // The HTML Imports polyfill sets a descendant element of the link to\n // the `import` property, specifically this is *not* a Document.\n const importNode = /** @type {?Node} */ (element.import);\n\n if (importNode instanceof Node) {\n importNode.__CE_isImportDocument = true;\n // Connected links are associated with the registry.\n importNode.__CE_hasRegistry = true;\n }\n\n if (importNode && importNode.readyState === 'complete') {\n importNode.__CE_documentLoadHandled = true;\n } else {\n // If this link's import root is not available, its contents can't be\n // walked. Wait for 'load' and walk it when it's ready.\n element.addEventListener('load', () => {\n const importNode = /** @type {!Node} */ (element.import);\n\n if (importNode.__CE_documentLoadHandled) return;\n importNode.__CE_documentLoadHandled = true;\n\n // Clone the `visitedImports` set that was populated sync during\n // the `patchAndUpgradeTree` call that caused this 'load' handler to\n // be added. Then, remove *this* link's import node so that we can\n // walk that import again, even if it was partially walked later\n // during the same `patchAndUpgradeTree` call.\n const clonedVisitedImports = new Set(visitedImports);\n clonedVisitedImports.delete(importNode);\n\n this.patchAndUpgradeTree(importNode, {visitedImports: clonedVisitedImports, upgrade});\n });\n }\n } else {\n elements.push(element);\n }\n };\n\n // `walkDeepDescendantElements` populates (and internally checks against)\n // `visitedImports` when traversing a loaded import.\n Utilities.walkDeepDescendantElements(root, gatherElements, visitedImports);\n\n if (this._hasPatches) {\n for (let i = 0; i < elements.length; i++) {\n this.patch(elements[i]);\n }\n }\n\n for (let i = 0; i < elements.length; i++) {\n upgrade(elements[i]);\n }\n }\n\n /**\n * @param {!HTMLElement} element\n */\n upgradeElement(element) {\n const currentState = element.__CE_state;\n if (currentState !== undefined) return;\n\n // Prevent elements created in documents without a browsing context from\n // upgrading.\n //\n // https://html.spec.whatwg.org/multipage/custom-elements.html#look-up-a-custom-element-definition\n // \"If document does not have a browsing context, return null.\"\n //\n // https://html.spec.whatwg.org/multipage/window-object.html#dom-document-defaultview\n // \"The defaultView IDL attribute of the Document interface, on getting,\n // must return this Document's browsing context's WindowProxy object, if\n // this Document has an associated browsing context, or null otherwise.\"\n const ownerDocument = element.ownerDocument;\n if (\n !ownerDocument.defaultView &&\n !(ownerDocument.__CE_isImportDocument && ownerDocument.__CE_hasRegistry)\n ) return;\n\n const definition = this.localNameToDefinition(element.localName);\n if (!definition) return;\n\n definition.constructionStack.push(element);\n\n const constructor = definition.constructorFunction;\n try {\n try {\n let result = new (constructor)();\n if (result !== element) {\n throw new Error('The custom element constructor did not produce the element being upgraded.');\n }\n } finally {\n definition.constructionStack.pop();\n }\n } catch (e) {\n element.__CE_state = CEState.failed;\n throw e;\n }\n\n element.__CE_state = CEState.custom;\n element.__CE_definition = definition;\n\n if (definition.attributeChangedCallback) {\n const observedAttributes = definition.observedAttributes;\n for (let i = 0; i < observedAttributes.length; i++) {\n const name = observedAttributes[i];\n const value = element.getAttribute(name);\n if (value !== null) {\n this.attributeChangedCallback(element, name, null, value, null);\n }\n }\n }\n\n if (Utilities.isConnected(element)) {\n this.connectedCallback(element);\n }\n }\n\n /**\n * @param {!Element} element\n */\n connectedCallback(element) {\n const definition = element.__CE_definition;\n if (definition.connectedCallback) {\n definition.connectedCallback.call(element);\n }\n }\n\n /**\n * @param {!Element} element\n */\n disconnectedCallback(element) {\n const definition = element.__CE_definition;\n if (definition.disconnectedCallback) {\n definition.disconnectedCallback.call(element);\n }\n }\n\n /**\n * @param {!Element} element\n * @param {string} name\n * @param {?string} oldValue\n * @param {?string} newValue\n * @param {?string} namespace\n */\n attributeChangedCallback(element, name, oldValue, newValue, namespace) {\n const definition = element.__CE_definition;\n if (\n definition.attributeChangedCallback &&\n definition.observedAttributes.indexOf(name) > -1\n ) {\n definition.attributeChangedCallback.call(element, name, oldValue, newValue, namespace);\n }\n }\n}\n","/**\n * @enum {number}\n */\nconst CustomElementState = {\n custom: 1,\n failed: 2,\n};\n\nexport default CustomElementState;\n","import CustomElementInternals from './CustomElementInternals.js';\n\nexport default class DocumentConstructionObserver {\n constructor(internals, doc) {\n /**\n * @type {!CustomElementInternals}\n */\n this._internals = internals;\n\n /**\n * @type {!Document}\n */\n this._document = doc;\n\n /**\n * @type {MutationObserver|undefined}\n */\n this._observer = undefined;\n\n\n // Simulate tree construction for all currently accessible nodes in the\n // document.\n this._internals.patchAndUpgradeTree(this._document);\n\n if (this._document.readyState === 'loading') {\n this._observer = new MutationObserver(this._handleMutations.bind(this));\n\n // Nodes created by the parser are given to the observer *before* the next\n // task runs. Inline scripts are run in a new task. This means that the\n // observer will be able to handle the newly parsed nodes before the inline\n // script is run.\n this._observer.observe(this._document, {\n childList: true,\n subtree: true,\n });\n }\n }\n\n disconnect() {\n if (this._observer) {\n this._observer.disconnect();\n }\n }\n\n /**\n * @param {!Array<!MutationRecord>} mutations\n */\n _handleMutations(mutations) {\n // Once the document's `readyState` is 'interactive' or 'complete', all new\n // nodes created within that document will be the result of script and\n // should be handled by patching.\n const readyState = this._document.readyState;\n if (readyState === 'interactive' || readyState === 'complete') {\n this.disconnect();\n }\n\n for (let i = 0; i < mutations.length; i++) {\n const addedNodes = mutations[i].addedNodes;\n for (let j = 0; j < addedNodes.length; j++) {\n const node = addedNodes[j];\n this._internals.patchAndUpgradeTree(node);\n }\n }\n }\n}\n","import CustomElementInternals from './CustomElementInternals.js';\nimport DocumentConstructionObserver from './DocumentConstructionObserver.js';\nimport Deferred from './Deferred.js';\nimport * as Utilities from './Utilities.js';\n\n/**\n * @unrestricted\n */\nexport default class CustomElementRegistry {\n\n /**\n * @param {!CustomElementInternals} internals\n */\n constructor(internals) {\n /**\n * @private\n * @type {boolean}\n */\n this._elementDefinitionIsRunning = false;\n\n /**\n * @private\n * @type {!CustomElementInternals}\n */\n this._internals = internals;\n\n /**\n * @private\n * @type {!Map<string, !Deferred<undefined>>}\n */\n this._whenDefinedDeferred = new Map();\n\n /**\n * The default flush callback triggers the document walk synchronously.\n * @private\n * @type {!Function}\n */\n this._flushCallback = fn => fn();\n\n /**\n * @private\n * @type {boolean}\n */\n this._flushPending = false;\n\n /**\n * @private\n * @type {!Array<!CustomElementDefinition>}\n */\n this._pendingDefinitions = [];\n\n /**\n * @private\n * @type {!DocumentConstructionObserver}\n */\n this._documentConstructionObserver = new DocumentConstructionObserver(internals, document);\n }\n\n /**\n * @param {string} localName\n * @param {!Function} constructor\n */\n define(localName, constructor) {\n if (!(constructor instanceof Function)) {\n throw new TypeError('Custom element constructors must be functions.');\n }\n\n if (!Utilities.isValidCustomElementName(localName)) {\n throw new SyntaxError(`The element name '${localName}' is not valid.`);\n }\n\n if (this._internals.localNameToDefinition(localName)) {\n throw new Error(`A custom element with name '${localName}' has already been defined.`);\n }\n\n if (this._elementDefinitionIsRunning) {\n throw new Error('A custom element is already being defined.');\n }\n this._elementDefinitionIsRunning = true;\n\n let connectedCallback;\n let disconnectedCallback;\n let adoptedCallback;\n let attributeChangedCallback;\n let observedAttributes;\n try {\n /** @type {!Object} */\n const prototype = constructor.prototype;\n if (!(prototype instanceof Object)) {\n throw new TypeError('The custom element constructor\\'s prototype is not an object.');\n }\n\n function getCallback(name) {\n const callbackValue = prototype[name];\n if (callbackValue !== undefined && !(callbackValue instanceof Function)) {\n throw new Error(`The '${name}' callback must be a function.`);\n }\n return callbackValue;\n }\n\n connectedCallback = getCallback('connectedCallback');\n disconnectedCallback = getCallback('disconnectedCallback');\n adoptedCallback = getCallback('adoptedCallback');\n attributeChangedCallback = getCallback('attributeChangedCallback');\n observedAttributes = constructor['observedAttributes'] || [];\n } catch (e) {\n return;\n } finally {\n this._elementDefinitionIsRunning = false;\n }\n\n const definition = {\n localName,\n constructorFunction: constructor,\n connectedCallback,\n disconnectedCallback,\n adoptedCallback,\n attributeChangedCallback,\n observedAttributes,\n constructionStack: [],\n };\n\n this._internals.setDefinition(localName, definition);\n this._pendingDefinitions.push(definition);\n\n // If we've already called the flush callback and it hasn't called back yet,\n // don't call it again.\n if (!this._flushPending) {\n this._flushPending = true;\n this._flushCallback(() => this._flush());\n }\n }\n\n upgrade(element) {\n this._internals.patchAndUpgradeTree(element);\n }\n\n _flush() {\n // If no new definitions were defined, don't attempt to flush. This could\n // happen if a flush callback keeps the function it is given and calls it\n // multiple times.\n if (this._flushPending === false) return;\n this._flushPending = false;\n\n const pendingDefinitions = this._pendingDefinitions;\n\n /**\n * Unupgraded elements with definitions that were defined *before* the last\n * flush, in document order.\n * @type {!Array<!HTMLElement>}\n */\n const elementsWithStableDefinitions = [];\n\n /**\n * A map from `localName`s of definitions that were defined *after* the last\n * flush to unupgraded elements matching that definition, in document order.\n * @type {!Map<string, !Array<!HTMLElement>>}\n */\n const elementsWithPendingDefinitions = new Map();\n for (let i = 0; i < pendingDefinitions.length; i++) {\n elementsWithPendingDefinitions.set(pendingDefinitions[i].localName, []);\n }\n\n this._internals.patchAndUpgradeTree(document, {\n upgrade: element => {\n // Ignore the element if it has already upgraded or failed to upgrade.\n if (element.__CE_state !== undefined) return;\n\n const localName = element.localName;\n\n // If there is an applicable pending definition for the element, add the\n // element to the list of elements to be upgraded with that definition.\n const pendingElements = elementsWithPendingDefinitions.get(localName);\n if (pendingElements) {\n pendingElements.push(element);\n // If there is *any other* applicable definition for the element, add it\n // to the list of elements with stable definitions that need to be upgraded.\n } else if (this._internals.localNameToDefinition(localName)) {\n elementsWithStableDefinitions.push(element);\n }\n },\n });\n\n // Upgrade elements with 'stable' definitions first.\n for (let i = 0; i < elementsWithStableDefinitions.length; i++) {\n this._internals.upgradeElement(elementsWithStableDefinitions[i]);\n }\n\n // Upgrade elements with 'pending' definitions in the order they were defined.\n while (pendingDefinitions.length > 0) {\n const definition = pendingDefinitions.shift();\n const localName = definition.localName;\n\n // Attempt to upgrade all applicable elements.\n const pendingUpgradableElements = elementsWithPendingDefinitions.get(definition.localName);\n for (let i = 0; i < pendingUpgradableElements.length; i++) {\n this._internals.upgradeElement(pendingUpgradableElements[i]);\n }\n\n // Resolve any promises created by `whenDefined` for the definition.\n const deferred = this._whenDefinedDeferred.get(localName);\n if (deferred) {\n deferred.resolve(undefined);\n }\n }\n }\n\n /**\n * @param {string} localName\n * @return {Function|undefined}\n */\n get(localName) {\n const definition = this._internals.localNameToDefinition(localName);\n if (definition) {\n return definition.constructorFunction;\n }\n\n return undefined;\n }\n\n /**\n * @param {string} localName\n * @return {!Promise<undefined>}\n */\n whenDefined(localName) {\n if (!Utilities.isValidCustomElementName(localName)) {\n return Promise.reject(new SyntaxError(`'${localName}' is not a valid custom element name.`));\n }\n\n const prior = this._whenDefinedDeferred.get(localName);\n if (prior) {\n return prior.toPromise();\n }\n\n const deferred = new Deferred();\n this._whenDefinedDeferred.set(localName, deferred);\n\n const definition = this._internals.localNameToDefinition(localName);\n // Resolve immediately only if the given local name has a definition *and*\n // the full document walk to upgrade elements with that local name has\n // already happened.\n if (definition && !this._pendingDefinitions.some(d => d.localName === localName)) {\n deferred.resolve(undefined);\n }\n\n return deferred.toPromise();\n }\n\n polyfillWrapFlushCallback(outer) {\n this._documentConstructionObserver.disconnect();\n const inner = this._flushCallback;\n this._flushCallback = flush => outer(() => inner(flush));\n }\n}\n\n// Closure compiler exports.\nwindow['CustomElementRegistry'] = CustomElementRegistry;\nCustomElementRegistry.prototype['define'] = CustomElementRegistry.prototype.define;\nCustomElementRegistry.prototype['upgrade'] = CustomElementRegistry.prototype.upgrade;\nCustomElementRegistry.prototype['get'] = CustomElementRegistry.prototype.get;\nCustomElementRegistry.prototype['whenDefined'] = CustomElementRegistry.prototype.whenDefined;\nCustomElementRegistry.prototype['polyfillWrapFlushCallback'] = CustomElementRegistry.prototype.polyfillWrapFlushCallback;\n","/**\n * @template T\n */\nexport default class Deferred {\n constructor() {\n /**\n * @private\n * @type {T|undefined}\n */\n this._value = undefined;\n\n /**\n * @private\n * @type {Function|undefined}\n */\n this._resolve = undefined;\n\n /**\n * @private\n * @type {!Promise<T>}\n */\n this._promise = new Promise(resolve => {\n this._resolve = resolve;\n\n if (this._value) {\n resolve(this._value);\n }\n });\n }\n\n /**\n * @param {T} value\n */\n resolve(value) {\n if (this._value) {\n throw new Error('Already resolved.');\n }\n\n this._value = value;\n\n if (this._resolve) {\n this._resolve(value);\n }\n }\n\n /**\n * @return {!Promise<T>}\n */\n toPromise() {\n return this._promise;\n }\n}\n","export default {\n Document_createElement: window.Document.prototype.createElement,\n Document_createElementNS: window.Document.prototype.createElementNS,\n Document_importNode: window.Document.prototype.importNode,\n Document_prepend: window.Document.prototype['prepend'],\n Document_append: window.Document.prototype['append'],\n DocumentFragment_prepend: window.DocumentFragment.prototype['prepend'],\n DocumentFragment_append: window.DocumentFragment.prototype['append'],\n Node_cloneNode: window.Node.prototype.cloneNode,\n Node_appendChild: window.Node.prototype.appendChild,\n Node_insertBefore: window.Node.prototype.insertBefore,\n Node_removeChild: window.Node.prototype.removeChild,\n Node_replaceChild: window.Node.prototype.replaceChild,\n Node_textContent: Object.getOwnPropertyDescriptor(window.Node.prototype, 'textContent'),\n Element_attachShadow: window.Element.prototype['attachShadow'],\n Element_innerHTML: Object.getOwnPropertyDescriptor(window.Element.prototype, 'innerHTML'),\n Element_getAttribute: window.Element.prototype.getAttribute,\n Element_setAttribute: window.Element.prototype.setAttribute,\n Element_removeAttribute: window.Element.prototype.removeAttribute,\n Element_getAttributeNS: window.Element.prototype.getAttributeNS,\n Element_setAttributeNS: window.Element.prototype.setAttributeNS,\n Element_removeAttributeNS: window.Element.prototype.removeAttributeNS,\n Element_insertAdjacentElement: window.Element.prototype['insertAdjacentElement'],\n Element_insertAdjacentHTML: window.Element.prototype['insertAdjacentHTML'],\n Element_prepend: window.Element.prototype['prepend'],\n Element_append: window.Element.prototype['append'],\n Element_before: window.Element.prototype['before'],\n Element_after: window.Element.prototype['after'],\n Element_replaceWith: window.Element.prototype['replaceWith'],\n Element_remove: window.Element.prototype['remove'],\n HTMLElement: window.HTMLElement,\n HTMLElement_innerHTML: Object.getOwnPropertyDescriptor(window.HTMLElement.prototype, 'innerHTML'),\n HTMLElement_insertAdjacentElement: window.HTMLElement.prototype['insertAdjacentElement'],\n HTMLElement_insertAdjacentHTML: window.HTMLElement.prototype['insertAdjacentHTML'],\n};\n","/**\n * This class exists only to work around Closure's lack of a way to describe\n * singletons. It represents the 'already constructed marker' used in custom\n * element construction stacks.\n *\n * https://html.spec.whatwg.org/#concept-already-constructed-marker\n * @extends AlreadyConstructedMarkerType\n */\nclass AlreadyConstructedMarker {}\n\nexport default new AlreadyConstructedMarker();\n","import Native from './Native.js';\nimport CustomElementInternals from '../CustomElementInternals.js';\nimport CEState from '../CustomElementState.js';\nimport AlreadyConstructedMarker from '../AlreadyConstructedMarker.js';\n\n/**\n * @param {!CustomElementInternals} internals\n */\nexport default function(internals) {\n window['HTMLElement'] = (function() {\n /**\n * @type {function(new: HTMLElement): !HTMLElement}\n */\n function HTMLElement() {\n // This should really be `new.target` but `new.target` can't be emulated\n // in ES5. Assuming the user keeps the default value of the constructor's\n // prototype's `constructor` property, this is equivalent.\n const constructor = /** @type {!Function} */ (this.constructor);\n\n const definition = internals.constructorToDefinition(constructor);\n if (!definition) {\n throw new Error('The custom element being constructed was not registered with `customElements`.');\n }\n\n const constructionStack = definition.constructionStack;\n\n if (constructionStack.length === 0) {\n const element = /** @type {!HTMLElement} */ (Native.Document_createElement.call(document, definition.localName));\n Object.setPrototypeOf(element, constructor.prototype);\n element.__CE_state = CEState.custom;\n element.__CE_definition = definition;\n internals.patch(element);\n return element;\n }\n\n const lastIndex = constructionStack.length - 1;\n const element = constructionStack[lastIndex];\n if (element === AlreadyConstructedMarker) {\n throw new Error('The HTMLElement constructor was either called reentrantly for this constructor or called multiple times.');\n }\n const toConstructElement = /** @type {!HTMLElement} */ (element);\n constructionStack[lastIndex] = AlreadyConstructedMarker;\n\n Object.setPrototypeOf(toConstructElement, constructor.prototype);\n internals.patch(toConstructElement);\n\n return toConstructElement;\n }\n\n HTMLElement.prototype = Native.HTMLElement.prototype;\n // Safari 9 has `writable: false` on the propertyDescriptor\n // Make it writable so that TypeScript can patch up the\n // constructor in the ES5 compiled code.\n Object.defineProperty(HTMLElement.prototype, 'constructor', {\n writable: true,\n configurable: true,\n enumerable: false,\n value: HTMLElement\n });\n\n return HTMLElement;\n })();\n};\n","/**\n * @license\n * Copyright (c) 2016 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\nimport CustomElementInternals from './CustomElementInternals.js';\nimport CustomElementRegistry from './CustomElementRegistry.js';\n\nimport PatchHTMLElement from './Patch/HTMLElement.js';\nimport PatchDocument from './Patch/Document.js';\nimport PatchDocumentFragment from './Patch/DocumentFragment.js';\nimport PatchNode from './Patch/Node.js';\nimport PatchElement from './Patch/Element.js';\n\nconst priorCustomElements = window['customElements'];\n\nif (!priorCustomElements ||\n priorCustomElements['forcePolyfill'] ||\n (typeof priorCustomElements['define'] != 'function') ||\n (typeof priorCustomElements['get'] != 'function')) {\n /** @type {!CustomElementInternals} */\n const internals = new CustomElementInternals();\n\n PatchHTMLElement(internals);\n PatchDocument(internals);\n PatchDocumentFragment(internals);\n PatchNode(internals);\n PatchElement(internals);\n\n // The main document is always associated with the registry.\n document.__CE_hasRegistry = true;\n\n /** @type {!CustomElementRegistry} */\n const customElements = new CustomElementRegistry(internals);\n\n Object.defineProperty(window, 'customElements', {\n configurable: true,\n enumerable: true,\n value: customElements,\n });\n}\n","import CustomElementInternals from '../../CustomElementInternals.js';\nimport * as Utilities from '../../Utilities.js';\n\n/**\n * @typedef {{\n * prepend: !function(...(!Node|string)),\n * append: !function(...(!Node|string)),\n * }}\n */\nlet ParentNodeNativeMethods;\n\n/**\n * @param {!CustomElementInternals} internals\n * @param {!Object} destination\n * @param {!ParentNodeNativeMethods} builtIn\n */\nexport default function(internals, destination, builtIn) {\n /**\n * @param {!function(...(!Node|string))} builtInMethod\n * @return {!function(...(!Node|string))}\n */\n function appendPrependPatch(builtInMethod) {\n return function(...nodes) {\n /**\n * A copy of `nodes`, with any DocumentFragment replaced by its children.\n * @type {!Array<!Node>}\n */\n const flattenedNodes = [];\n\n /**\n * Elements in `nodes` that were connected before this call.\n * @type {!Array<!Node>}\n */\n const connectedElements = [];\n\n for (var i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n\n if (node instanceof Element && Utilities.isConnected(node)) {\n connectedElements.push(node);\n }\n\n if (node instanceof DocumentFragment) {\n for (let child = node.firstChild; child; child = child.nextSibling) {\n flattenedNodes.push(child);\n }\n } else {\n flattenedNodes.push(node);\n }\n }\n\n builtInMethod.apply(this, nodes);\n\n for (let i = 0; i < connectedElements.length; i++) {\n internals.disconnectTree(connectedElements[i]);\n }\n\n if (Utilities.isConnected(this)) {\n for (let i = 0; i < flattenedNodes.length; i++) {\n const node = flattenedNodes[i];\n if (node instanceof Element) {\n internals.connectTree(node);\n }\n }\n }\n };\n }\n\n if (builtIn.prepend !== undefined) {\n Utilities.setPropertyUnchecked(destination, 'prepend', appendPrependPatch(builtIn.prepend));\n }\n\n if (builtIn.append !== undefined) {\n Utilities.setPropertyUnchecked(destination, 'append', appendPrependPatch(builtIn.append));\n }\n};\n","import Native from './Native.js';\nimport CustomElementInternals from '../CustomElementInternals.js';\nimport * as Utilities from '../Utilities.js';\n\nimport PatchParentNode from './Interface/ParentNode.js';\n\n/**\n * @param {!CustomElementInternals} internals\n */\nexport default function(internals) {\n Utilities.setPropertyUnchecked(Document.prototype, 'createElement',\n /**\n * @this {Document}\n * @param {string} localName\n * @return {!Element}\n */\n function(localName) {\n // Only create custom elements if this document is associated with the registry.\n if (this.__CE_hasRegistry) {\n const definition = internals.localNameToDefinition(localName);\n if (definition) {\n return new (definition.constructorFunction)();\n }\n }\n\n const result = /** @type {!Element} */\n (Native.Document_createElement.call(this, localName));\n internals.patch(result);\n return result;\n });\n\n Utilities.setPropertyUnchecked(Document.prototype, 'importNode',\n /**\n * @this {Document}\n * @param {!Node} node\n * @param {boolean=} deep\n * @return {!Node}\n */\n function(node, deep) {\n const clone = /** @type {!Node} */ (Native.Document_importNode.call(this, node, !!deep));\n // Only create custom elements if this document is associated with the registry.\n if (!this.__CE_hasRegistry) {\n internals.patchTree(clone);\n } else {\n internals.patchAndUpgradeTree(clone);\n }\n return clone;\n });\n\n const NS_HTML = \"http://www.w3.org/1999/xhtml\";\n\n Utilities.setPropertyUnchecked(Document.prototype, 'createElementNS',\n /**\n * @this {Document}\n * @param {?string} namespace\n * @param {string} localName\n * @return {!Element}\n */\n function(namespace, localName) {\n // Only create custom elements if this document is associated with the registry.\n if (this.__CE_hasRegistry && (namespace === null || namespace === NS_HTML)) {\n const definition = internals.localNameToDefinition(localName);\n if (definition) {\n return new (definition.constructorFunction)();\n }\n }\n\n const result = /** @type {!Element} */\n (Native.Document_createElementNS.call(this, namespace, localName));\n internals.patch(result);\n return result;\n });\n\n PatchParentNode(internals, Document.prototype, {\n prepend: Native.Document_prepend,\n append: Native.Document_append,\n });\n};\n","import Native from './Native.js';\nimport CustomElementInternals from '../CustomElementInternals.js';\nimport * as Utilities from '../Utilities.js';\n\n/**\n * @param {!CustomElementInternals} internals\n */\nexport default function(internals) {\n // `Node#nodeValue` is implemented on `Attr`.\n // `Node#textContent` is implemented on `Attr`, `Element`.\n\n Utilities.setPropertyUnchecked(Node.prototype, 'insertBefore',\n /**\n * @this {Node}\n * @param {!Node} node\n * @param {?Node} refNode\n * @return {!Node}\n */\n function(node, refNode) {\n if (node instanceof DocumentFragment) {\n const insertedNodes = Array.prototype.slice.apply(node.childNodes);\n const nativeResult = Native.Node_insertBefore.call(this, node, refNode);\n\n // DocumentFragments can't be connected, so `disconnectTree` will never\n // need to be called on a DocumentFragment's children after inserting it.\n\n if (Utilities.isConnected(this)) {\n for (let i = 0; i < insertedNodes.length; i++) {\n internals.connectTree(insertedNodes[i]);\n }\n }\n\n return nativeResult;\n }\n\n const nodeWasConnected = Utilities.isConnected(node);\n const nativeResult = Native.Node_insertBefore.call(this, node, refNode);\n\n if (nodeWasConnected) {\n internals.disconnectTree(node);\n }\n\n if (Utilities.isConnected(this)) {\n internals.connectTree(node);\n }\n\n return nativeResult;\n });\n\n Utilities.setPropertyUnchecked(Node.prototype, 'appendChild',\n /**\n * @this {Node}\n * @param {!Node} node\n * @return {!Node}\n */\n function(node) {\n if (node instanceof DocumentFragment) {\n const insertedNodes = Array.prototype.slice.apply(node.childNodes);\n const nativeResult = Native.Node_appendChild.call(this, node);\n\n // DocumentFragments can't be connected, so `disconnectTree` will never\n // need to be called on a DocumentFragment's children after inserting it.\n\n if (Utilities.isConnected(this)) {\n for (let i = 0; i < insertedNodes.length; i++) {\n internals.connectTree(insertedNodes[i]);\n }\n }\n\n return nativeResult;\n }\n\n const nodeWasConnected = Utilities.isConnected(node);\n const nativeResult = Native.Node_appendChild.call(this, node);\n\n if (nodeWasConnected) {\n internals.disconnectTree(node);\n }\n\n if (Utilities.isConnected(this)) {\n internals.connectTree(node);\n }\n\n return nativeResult;\n });\n\n Utilities.setPropertyUnchecked(Node.prototype, 'cloneNode',\n /**\n * @this {Node}\n * @param {boolean=} deep\n * @return {!Node}\n */\n function(deep) {\n const clone = Native.Node_cloneNode.call(this, !!deep);\n // Only create custom elements if this element's owner document is\n // associated with the registry.\n if (!this.ownerDocument.__CE_hasRegistry) {\n internals.patchTree(clone);\n } else {\n internals.patchAndUpgradeTree(clone);\n }\n return clone;\n });\n\n Utilities.setPropertyUnchecked(Node.prototype, 'removeChild',\n /**\n * @this {Node}\n * @param {!Node} node\n * @return {!Node}\n */\n function(node) {\n const nodeWasConnected = Utilities.isConnected(node);\n const nativeResult = Native.Node_removeChild.call(this, node);\n\n if (nodeWasConnected) {\n internals.disconnectTree(node);\n }\n\n return nativeResult;\n });\n\n Utilities.setPropertyUnchecked(Node.prototype, 'replaceChild',\n /**\n * @this {Node}\n * @param {!Node} nodeToInsert\n * @param {!Node} nodeToRemove\n * @return {!Node}\n */\n function(nodeToInsert, nodeToRemove) {\n if (nodeToInsert instanceof DocumentFragment) {\n const insertedNodes = Array.prototype.slice.apply(nodeToInsert.childNodes);\n const nativeResult = Native.Node_replaceChild.call(this, nodeToInsert, nodeToRemove);\n\n // DocumentFragments can't be connected, so `disconnectTree` will never\n // need to be called on a DocumentFragment's children after inserting it.\n\n if (Utilities.isConnected(this)) {\n internals.disconnectTree(nodeToRemove);\n for (let i = 0; i < insertedNodes.length; i++) {\n internals.connectTree(insertedNodes[i]);\n }\n }\n\n return nativeResult;\n }\n\n const nodeToInsertWasConnected = Utilities.isConnected(nodeToInsert);\n const nativeResult = Native.Node_replaceChild.call(this, nodeToInsert, nodeToRemove);\n const thisIsConnected = Utilities.isConnected(this);\n\n if (thisIsConnected) {\n internals.disconnectTree(nodeToRemove);\n }\n\n if (nodeToInsertWasConnected) {\n internals.disconnectTree(nodeToInsert);\n }\n\n if (thisIsConnected) {\n internals.connectTree(nodeToInsert);\n }\n\n return nativeResult;\n });\n\n\n function patch_textContent(destination, baseDescriptor) {\n Object.defineProperty(destination, 'textContent', {\n enumerable: baseDescriptor.enumerable,\n configurable: true,\n get: baseDescriptor.get,\n set: /** @this {Node} */ function(assignedValue) {\n // If this is a text node then there are no nodes to disconnect.\n if (this.nodeType === Node.TEXT_NODE) {\n baseDescriptor.set.call(this, assignedValue);\n return;\n }\n\n let removedNodes = undefined;\n // Checking for `firstChild` is faster than reading `childNodes.length`\n // to compare with 0.\n if (this.firstChild) {\n // Using `childNodes` is faster than `children`, even though we only\n // care about elements.\n const childNodes = this.childNodes;\n const childNodesLength = childNodes.length;\n if (childNodesLength > 0 && Utilities.isConnected(this)) {\n // Copying an array by iterating is faster than using slice.\n removedNodes = new Array(childNodesLength);\n for (let i = 0; i < childNodesLength; i++) {\n removedNodes[i] = childNodes[i];\n }\n }\n }\n\n baseDescriptor.set.call(this, assignedValue);\n\n if (removedNodes) {\n for (let i = 0; i < removedNodes.length; i++) {\n internals.disconnectTree(removedNodes[i]);\n }\n }\n },\n });\n }\n\n if (Native.Node_textContent && Native.Node_textContent.get) {\n patch_textContent(Node.prototype, Native.Node_textContent);\n } else {\n internals.addPatch(function(element) {\n patch_textContent(element, {\n enumerable: true,\n configurable: true,\n // NOTE: This implementation of the `textContent` getter assumes that\n // text nodes' `textContent` getter will not be patched.\n get: /** @this {Node} */ function() {\n /** @type {!Array<string>} */\n const parts = [];\n\n for (let i = 0; i < this.childNodes.length; i++) {\n parts.push(this.childNodes[i].textContent);\n }\n\n return parts.join('');\n },\n set: /** @this {Node} */ function(assignedValue) {\n while (this.firstChild) {\n Native.Node_removeChild.call(this, this.firstChild);\n }\n Native.Node_appendChild.call(this, document.createTextNode(assignedValue));\n },\n });\n });\n }\n};\n","import CustomElementInternals from '../../CustomElementInternals.js';\nimport * as Utilities from '../../Utilities.js';\n\n/**\n * @typedef {{\n * before: !function(...(!Node|string)),\n * after: !function(...(!Node|string)),\n * replaceWith: !function(...(!Node|string)),\n * remove: !function(),\n * }}\n */\nlet ChildNodeNativeMethods;\n\n/**\n * @param {!CustomElementInternals} internals\n * @param {!Object} destination\n * @param {!ChildNodeNativeMethods} builtIn\n */\nexport default function(internals, destination, builtIn) {\n /**\n * @param {!function(...(!Node|string))} builtInMethod\n * @return {!function(...(!Node|string))}\n */\n function beforeAfterPatch(builtInMethod) {\n return function(...nodes) {\n /**\n * A copy of `nodes`, with any DocumentFragment replaced by its children.\n * @type {!Array<!Node>}\n */\n const flattenedNodes = [];\n\n /**\n * Elements in `nodes` that were connected before this call.\n * @type {!Array<!Node>}\n */\n const connectedElements = [];\n\n for (var i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n\n if (node instanceof Element && Utilities.isConnected(node)) {\n connectedElements.push(node);\n }\n\n if (node instanceof DocumentFragment) {\n for (let child = node.firstChild; child; child = child.nextSibling) {\n flattenedNodes.push(child);\n }\n } else {\n flattenedNodes.push(node);\n }\n }\n\n builtInMethod.apply(this, nodes);\n\n for (let i = 0; i < connectedElements.length; i++) {\n internals.disconnectTree(connectedElements[i]);\n }\n\n if (Utilities.isConnected(this)) {\n for (let i = 0; i < flattenedNodes.length; i++) {\n const node = flattenedNodes[i];\n if (node instanceof Element) {\n internals.connectTree(node);\n }\n }\n }\n };\n }\n\n if (builtIn.before !== undefined) {\n Utilities.setPropertyUnchecked(destination, 'before', beforeAfterPatch(builtIn.before));\n }\n\n if (builtIn.before !== undefined) {\n Utilities.setPropertyUnchecked(destination, 'after', beforeAfterPatch(builtIn.after));\n }\n\n if (builtIn.replaceWith !== undefined) {\n Utilities.setPropertyUnchecked(destination, 'replaceWith',\n /**\n * @param {...(!Node|string)} nodes\n */\n function(...nodes) {\n /**\n * A copy of `nodes`, with any DocumentFragment replaced by its children.\n * @type {!Array<!Node|string>}\n */\n const flattenedNodes = [];\n\n /**\n * Elements in `nodes` that were connected before this call.\n * @type {!Array<!Node>}\n */\n const connectedElements = [];\n\n for (var i = 0; i < nodes.length; i++) {\n const node = nodes[i];\n\n if (node instanceof Element && Utilities.isConnected(node)) {\n connectedElements.push(node);\n }\n\n if (node instanceof DocumentFragment) {\n for (let child = node.firstChild; child; child = child.nextSibling) {\n flattenedNodes.push(child);\n }\n } else {\n flattenedNodes.push(node);\n }\n }\n\n const wasConnected = Utilities.isConnected(this);\n\n builtIn.replaceWith.apply(this, nodes);\n\n for (let i = 0; i < connectedElements.length; i++) {\n internals.disconnectTree(connectedElements[i]);\n }\n\n if (wasConnected) {\n internals.disconnectTree(this);\n for (let i = 0; i < flattenedNodes.length; i++) {\n const node = flattenedNodes[i];\n if (node instanceof Element) {\n internals.connectTree(node);\n }\n }\n }\n });\n }\n\n if (builtIn.remove !== undefined) {\n Utilities.setPropertyUnchecked(destination, 'remove',\n function() {\n const wasConnected = Utilities.isConnected(this);\n\n builtIn.remove.call(this);\n\n if (wasConnected) {\n internals.disconnectTree(this);\n }\n });\n }\n};\n","import Native from './Native.js';\nimport CustomElementInternals from '../CustomElementInternals.js';\nimport CEState from '../CustomElementState.js';\nimport * as Utilities from '../Utilities.js';\n\nimport PatchParentNode from './Interface/ParentNode.js';\nimport PatchChildNode from './Interface/ChildNode.js';\n\n/**\n * @param {!CustomElementInternals} internals\n */\nexport default function(internals) {\n if (Native.Element_attachShadow) {\n Utilities.setPropertyUnchecked(Element.prototype, 'attachShadow',\n /**\n * @this {Element}\n * @param {!{mode: string}} init\n * @return {ShadowRoot}\n */\n function(init) {\n const shadowRoot = Native.Element_attachShadow.call(this, init);\n this.__CE_shadowRoot = shadowRoot;\n return shadowRoot;\n });\n }\n\n\n function patch_innerHTML(destination, baseDescriptor) {\n Object.defineProperty(destination, 'innerHTML', {\n enumerable: baseDescriptor.enumerable,\n configurable: true,\n get: baseDescriptor.get,\n set: /** @this {Element} */ function(htmlString) {\n const isConnected = Utilities.isConnected(this);\n\n // NOTE: In IE11, when using the native `innerHTML` setter, all nodes\n // that were previously descendants of the context element have all of\n // their children removed as part of the set - the entire subtree is\n // 'disassembled'. This work around walks the subtree *before* using the\n // native setter.\n /** @type {!Array<!Element>|undefined} */\n let removedElements = undefined;\n if (isConnected) {\n removedElements = [];\n Utilities.walkDeepDescendantElements(this, element => {\n if (element !== this) {\n removedElements.push(element);\n }\n });\n }\n\n baseDescriptor.set.call(this, htmlString);\n\n if (removedElements) {\n for (let i = 0; i < removedElements.length; i++) {\n const element = removedElements[i];\n if (element.__CE_state === CEState.custom) {\n internals.disconnectedCallback(element);\n }\n }\n }\n\n // Only create custom elements if this element's owner document is\n // associated with the registry.\n if (!this.ownerDocument.__CE_hasRegistry) {\n internals.patchTree(this);\n } else {\n internals.patchAndUpgradeTree(this);\n }\n return htmlString;\n },\n });\n }\n\n if (Native.Element_innerHTML && Native.Element_innerHTML.get) {\n patch_innerHTML(Element.prototype, Native.Element_innerHTML);\n } else if (Native.HTMLElement_innerHTML && Native.HTMLElement_innerHTML.get) {\n patch_innerHTML(HTMLElement.prototype, Native.HTMLElement_innerHTML);\n } else {\n\n internals.addPatch(function(element) {\n patch_innerHTML(element, {\n enumerable: true,\n configurable: true,\n // Implements getting `innerHTML` by performing an unpatched `cloneNode`\n // of the element and returning the resulting element's `innerHTML`.\n // TODO: Is this too expensive?\n get: /** @this {Element} */ function() {\n return Native.Node_cloneNode.call(this, true).innerHTML;\n },\n // Implements setting `innerHTML` by creating an unpatched element,\n // setting `innerHTML` of that element and replacing the target\n // element's children with those of the unpatched element.\n set: /** @this {Element} */ function(assignedValue) {\n // NOTE: re-route to `content` for `template` elements.\n // We need to do this because `template.appendChild` does not\n // route into `template.content`.\n const isTemplate = (this.localName === 'template');\n /** @type {!Node} */\n const content = isTemplate ? (/** @type {!HTMLTemplateElement} */\n (this)).content : this;\n /** @type {!Node} */\n const rawElement = Native.Document_createElementNS.call(document,\n this.namespaceURI, this.localName);\n rawElement.innerHTML = assignedValue;\n\n while (content.childNodes.length > 0) {\n Native.Node_removeChild.call(content, content.childNodes[0]);\n }\n const container = isTemplate ? rawElement.content : rawElement;\n while (container.childNodes.length > 0) {\n Native.Node_appendChild.call(content, container.childNodes[0]);\n }\n },\n });\n });\n }\n\n\n Utilities.setPropertyUnchecked(Element.prototype, 'setAttribute',\n /**\n * @this {Element}\n * @param {string} name\n * @param {string} newValue\n */\n function(name, newValue) {\n // Fast path for non-custom elements.\n if (this.__CE_state !== CEState.custom) {\n return Native.Element_setAttribute.call(this, name, newValue);\n }\n\n const oldValue = Native.Element_getAttribute.call(this, name);\n Native.Element_setAttribute.call(this, name, newValue);\n newValue = Native.Element_getAttribute.call(this, name);\n internals.attributeChangedCallback(this, name, oldValue, newValue, null);\n });\n\n Utilities.setPropertyUnchecked(Element.prototype, 'setAttributeNS',\n /**\n * @this {Element}\n * @param {?string} namespace\n * @param {string} name\n * @param {string} newValue\n */\n function(namespace, name, newValue) {\n // Fast path for non-custom elements.\n if (this.__CE_state !== CEState.custom) {\n return Native.Element_setAttributeNS.call(this, namespace, name, newValue);\n }\n\n const oldValue = Native.Element_getAttributeNS.call(this, namespace, name);\n Native.Element_setAttributeNS.call(this, namespace, name, newValue);\n newValue = Native.Element_getAttributeNS.call(this, namespace, name);\n internals.attributeChangedCallback(this, name, oldValue, newValue, namespace);\n });\n\n Utilities.setPropertyUnchecked(Element.prototype, 'removeAttribute',\n /**\n * @this {Element}\n * @param {string} name\n */\n function(name) {\n // Fast path for non-custom elements.\n if (this.__CE_state !== CEState.custom) {\n return Native.Element_removeAttribute.call(this, name);\n }\n\n const oldValue = Native.Element_getAttribute.call(this, name);\n Native.Element_removeAttribute.call(this, name);\n if (oldValue !== null) {\n internals.attributeChangedCallback(this, name, oldValue, null, null);\n }\n });\n\n Utilities.setPropertyUnchecked(Element.prototype, 'removeAttributeNS',\n /**\n * @this {Element}\n * @param {?string} namespace\n * @param {string} name\n */\n function(namespace, name) {\n // Fast path for non-custom elements.\n if (this.__CE_state !== CEState.custom) {\n return Native.Element_removeAttributeNS.call(this, namespace, name);\n }\n\n const oldValue = Native.Element_getAttributeNS.call(this, namespace, name);\n Native.Element_removeAttributeNS.call(this, namespace, name);\n // In older browsers, `Element#getAttributeNS` may return the empty string\n // instead of null if the attribute does not exist. For details, see;\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttributeNS#Notes\n const newValue = Native.Element_getAttributeNS.call(this, namespace, name);\n if (oldValue !== newValue) {\n internals.attributeChangedCallback(this, name, oldValue, newValue, namespace);\n }\n });\n\n\n function patch_insertAdjacentElement(destination, baseMethod) {\n Utilities.setPropertyUnchecked(destination, 'insertAdjacentElement',\n /**\n * @this {Element}\n * @param {string} position\n * @param {!Element} element\n * @return {?Element}\n */\n function(position, element) {\n const wasConnected = Utilities.isConnected(element);\n const insertedElement = /** @type {!Element} */\n (baseMethod.call(this, position, element));\n\n if (wasConnected) {\n internals.disconnectTree(element);\n }\n\n if (Utilities.isConnected(insertedElement)) {\n internals.connectTree(element);\n }\n return insertedElement;\n });\n }\n\n if (Native.HTMLElement_insertAdjacentElement) {\n patch_insertAdjacentElement(HTMLElement.prototype, Native.HTMLElement_insertAdjacentElement);\n } else if (Native.Element_insertAdjacentElement) {\n patch_insertAdjacentElement(Element.prototype, Native.Element_insertAdjacentElement);\n } else {\n console.warn('Custom Elements: `Element#insertAdjacentElement` was not patched.');\n }\n\n\n function patch_insertAdjacentHTML(destination, baseMethod) {\n /**\n * Patches and upgrades all nodes which are siblings between `start`\n * (inclusive) and `end` (exclusive). If `end` is `null`, then all siblings\n * following `start` will be patched and upgraded.\n * @param {!Node} start\n * @param {?Node} end\n */\n function upgradeNodesInRange(start, end) {\n const nodes = [];\n for (let node = start; node !== end; node = node.nextSibling) {\n nodes.push(node);\n }\n for (let i = 0; i < nodes.length; i++) {\n internals.patchAndUpgradeTree(nodes[i]);\n }\n }\n\n Utilities.setPropertyUnchecked(destination, 'insertAdjacentHTML',\n /**\n * @this {Element}\n * @param {string} position\n * @param {string} text\n */\n function(position, text) {\n position = position.toLowerCase();\n\n if (position === \"beforebegin\") {\n const marker = this.previousSibling;\n baseMethod.call(this, position, text);\n upgradeNodesInRange(marker || /** @type {!Node} */ (this.parentNode.firstChild), this);\n } else if (position === \"afterbegin\") {\n const marker = this.firstChild;\n baseMethod.call(this, position, text);\n upgradeNodesInRange(/** @type {!Node} */ (this.firstChild), marker);\n } else if (position === \"beforeend\") {\n const marker = this.lastChild;\n baseMethod.call(this, position, text);\n upgradeNodesInRange(marker || /** @type {!Node} */ (this.firstChild), null);\n } else if (position === \"afterend\") {\n const marker = this.nextSibling;\n baseMethod.call(this, position, text);\n upgradeNodesInRange(/** @type {!Node} */ (this.nextSibling), marker);\n } else {\n throw new SyntaxError(`The value provided (${String(position)}) is ` +\n \"not one of 'beforebegin', 'afterbegin', 'beforeend', or 'afterend'.\");\n }\n });\n }\n\n if (Native.HTMLElement_insertAdjacentHTML) {\n patch_insertAdjacentHTML(HTMLElement.prototype, Native.HTMLElement_insertAdjacentHTML);\n } else if (Native.Element_insertAdjacentHTML) {\n patch_insertAdjacentHTML(Element.prototype, Native.Element_insertAdjacentHTML);\n } else {\n console.warn('Custom Elements: `Element#insertAdjacentHTML` was not patched.');\n }\n\n\n PatchParentNode(internals, Element.prototype, {\n prepend: Native.Element_prepend,\n append: Native.Element_append,\n });\n\n PatchChildNode(internals, Element.prototype, {\n before: Native.Element_before,\n after: Native.Element_after,\n replaceWith: Native.Element_replaceWith,\n remove: Native.Element_remove,\n });\n};\n","import CustomElementInternals from '../CustomElementInternals.js';\nimport Native from './Native.js';\nimport PatchParentNode from './Interface/ParentNode.js';\n\n/**\n * @param {!CustomElementInternals} internals\n */\nexport default function(internals) {\n PatchParentNode(internals, DocumentFragment.prototype, {\n prepend: Native.DocumentFragment_prepend,\n append: Native.DocumentFragment_append,\n });\n};\n","/**\n@license\nCopyright (c) 2017 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) 2017 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 const nativeShadow = !(window['ShadyDOM'] && window['ShadyDOM']['inUse']);\nlet nativeCssVariables_;\n\n/**\n * @param {(ShadyCSSOptions | ShadyCSSInterface)=} settings\n */\nfunction calcCssVariables(settings) {\n if (settings && settings['shimcssproperties']) {\n nativeCssVariables_ = false;\n } else {\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\n // However, shim css custom properties are only supported with ShadyDOM enabled,\n // so fall back on native if we do not detect ShadyDOM\n // Edge 15: custom properties used in ::before and ::after will also be used in the parent element\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12414257/\n nativeCssVariables_ = nativeShadow || Boolean(!navigator.userAgent.match(/AppleWebKit\\/601|Edge\\/15/) &&\n window.CSS && CSS.supports && CSS.supports('box-shadow', '0 0 0 var(--foo)'));\n }\n}\n\n/** @type {string | undefined} */\nexport let cssBuild;\nif (window.ShadyCSS && window.ShadyCSS.cssBuild !== undefined) {\n cssBuild = window.ShadyCSS.cssBuild;\n}\n\nif (window.ShadyCSS && window.ShadyCSS.nativeCss !== undefined) {\n nativeCssVariables_ = window.ShadyCSS.nativeCss;\n} else if (window.ShadyCSS) {\n calcCssVariables(window.ShadyCSS);\n // reset window variable to let ShadyCSS API take its place\n window.ShadyCSS = undefined;\n} else {\n calcCssVariables(window['WebComponents'] && window['WebComponents']['flags']);\n}\n\n// Hack for type error under new type inference which doesn't like that\n// nativeCssVariables is updated in a function and assigns the type\n// `function(): ?` instead of `boolean`.\nexport const nativeCssVariables = /** @type {boolean} */(nativeCssVariables_);","/**\n@license\nCopyright (c) 2017 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\\s(.*)/;\nexport const IS_VAR = /^--/;\nexport const BRACKETED = /\\{[^}]*\\}/g;\nexport const HOST_PREFIX = '(?:^|[^.#[:])';\nexport const HOST_SUFFIX = '($|[.:[\\\\s>+~])';\n","/**\n@license\nCopyright (c) 2017 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\n/** @type {!Set<string>} */\nconst styleTextSet = new Set();\n\nexport const scopingAttribute = 'shady-unscoped';\n\n/**\n * Add a specifically-marked style to the document directly, and only one copy of that style.\n *\n * @param {!HTMLStyleElement} style\n * @return {undefined}\n */\nexport function processUnscopedStyle(style) {\n const text = style.textContent;\n if (!styleTextSet.has(text)) {\n styleTextSet.add(text);\n const newStyle = style.cloneNode(true);\n document.head.appendChild(newStyle);\n }\n}\n\n/**\n * Check if a style is supposed to be unscoped\n * @param {!HTMLStyleElement} style\n * @return {boolean} true if the style has the unscoping attribute\n */\nexport function isUnscopedStyle(style) {\n return style.hasAttribute(scopingAttribute);\n}","/**\n@license\nCopyright (c) 2017 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, cssBuild} from './style-settings.js';\nimport {parse, stringify, types, StyleNode} from './css-parse.js'; // eslint-disable-line no-unused-vars\nimport {MEDIA_MATCH} from './common-regex.js';\nimport {processUnscopedStyle, isUnscopedStyle} from './unscoped-style-handler.js';\n\n/**\n * @param {string|StyleNode} rules\n * @param {function(StyleNode)=} callback\n * @return {string}\n */\nexport function toCssText (rules, callback) {\n if (!rules) {\n return '';\n }\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'] || null;\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 applyStyle(style, target, contextNode);\n return style;\n}\n\n/**\n * @param {string} cssText\n * @param {string} moniker\n * @return {HTMLStyleElement}\n */\nexport function createScopeStyle(cssText, moniker) {\n let style = /** @type {HTMLStyleElement} */(document.createElement('style'));\n if (moniker) {\n style.setAttribute('scope', moniker);\n }\n style.textContent = cssText;\n return style;\n}\n\n/**\n * Track the position of the last added style for placing placeholders\n * @type {Node}\n */\nlet lastHeadApplyNode = null;\n\n// insert a comment node as a styling position placeholder.\n/**\n * @param {string} moniker\n * @return {!Comment}\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 {HTMLStyleElement} style\n * @param {?Node} target\n * @param {?Node} contextNode\n */\nexport function applyStyle(style, target, contextNode) {\n target = target || document.head;\n let after = (contextNode && contextNode.nextSibling) ||\n target.firstChild;\n target.insertBefore(style, after);\n if (!lastHeadApplyNode) {\n lastHeadApplyNode = style;\n } else {\n // only update lastHeadApplyNode if the new style is inserted after the old lastHeadApplyNode\n let position = style.compareDocumentPosition(lastHeadApplyNode);\n if (position === Node.DOCUMENT_POSITION_PRECEDING) {\n lastHeadApplyNode = style;\n }\n }\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 * 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 */\nexport function 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 (nativeShadow) {\n element.setAttribute('class', value);\n } else {\n window['ShadyDOM']['nativeMethods']['setAttribute'].call(element, 'class', value);\n }\n}\n\n/**\n * @param {Element | {is: string, extends: string}} element\n * @return {{is: string, typeExtension: string}}\n */\nexport function getIsExtends(element) {\n let localName = element['localName'];\n let is = '', typeExtension = '';\n /*\n NOTE: technically, this can be wrong for certain svg elements\n with `-` in the name like `<font-face>`\n */\n if (localName) {\n if (localName.indexOf('-') > -1) {\n is = localName;\n } else {\n typeExtension = localName;\n is = (element.getAttribute && element.getAttribute('is')) || '';\n }\n } else {\n is = /** @type {?} */(element).is;\n typeExtension = /** @type {?} */(element).extends;\n }\n return {is, typeExtension};\n}\n\n/**\n * @param {Element|DocumentFragment} element\n * @return {string}\n */\nexport function gatherStyleText(element) {\n /** @type {!Array<string>} */\n const styleTextParts = [];\n const styles = /** @type {!NodeList<!HTMLStyleElement>} */(element.querySelectorAll('style'));\n for (let i = 0; i < styles.length; i++) {\n const style = styles[i];\n if (isUnscopedStyle(style)) {\n if (!nativeShadow) {\n processUnscopedStyle(style);\n style.parentNode.removeChild(style);\n }\n } else {\n styleTextParts.push(style.textContent);\n style.parentNode.removeChild(style);\n }\n }\n return styleTextParts.join('').trim();\n}\n\n/**\n * Split a selector separated by commas into an array in a smart way\n * @param {string} selector\n * @return {!Array<string>}\n */\nexport function splitSelectorList(selector) {\n const parts = [];\n let part = '';\n for (let i = 0; i >= 0 && i < selector.length; i++) {\n // A selector with parentheses will be one complete part\n if (selector[i] === '(') {\n // find the matching paren\n const end = findMatchingParen(selector, i);\n // push the paren block into the part\n part += selector.slice(i, end + 1);\n // move the index to after the paren block\n i = end;\n } else if (selector[i] === ',') {\n parts.push(part);\n part = '';\n } else {\n part += selector[i];\n }\n }\n // catch any pieces after the last comma\n if (part) {\n parts.push(part);\n }\n return parts;\n}\n\nconst CSS_BUILD_ATTR = 'css-build';\n\n/**\n * Return the polymer-css-build \"build type\" applied to this element\n *\n * @param {!HTMLElement} element\n * @return {string} Can be \"\", \"shady\", or \"shadow\"\n */\nexport function getCssBuild(element) {\n if (cssBuild !== undefined) {\n return /** @type {string} */(cssBuild);\n }\n if (element.__cssBuild === undefined) {\n // try attribute first, as it is the common case\n const attrValue = element.getAttribute(CSS_BUILD_ATTR);\n if (attrValue) {\n element.__cssBuild = attrValue;\n } else {\n const buildComment = getBuildComment(element);\n if (buildComment !== '') {\n // remove build comment so it is not needlessly copied into every element instance\n removeBuildComment(element);\n }\n element.__cssBuild = buildComment;\n }\n }\n return element.__cssBuild || '';\n}\n\n/**\n * Check if the given element, either a <template> or <style>, has been processed\n * by polymer-css-build.\n *\n * If so, then we can make a number of optimizations:\n * - polymer-css-build will decompose mixins into individual CSS Custom Properties,\n * so the ApplyShim can be skipped entirely.\n * - Under native ShadowDOM, the style text can just be copied into each instance\n * without modification\n * - If the build is \"shady\" and ShadyDOM is in use, the styling does not need\n * scoping beyond the shimming of CSS Custom Properties\n *\n * @param {!HTMLElement} element\n * @return {boolean}\n */\nexport function elementHasBuiltCss(element) {\n return getCssBuild(element) !== '';\n}\n\n/**\n * For templates made with tagged template literals, polymer-css-build will\n * insert a comment of the form `<!--css-build:shadow-->`\n *\n * @param {!HTMLElement} element\n * @return {string}\n */\nexport function getBuildComment(element) {\n const buildComment = element.localName === 'template' ?\n /** @type {!HTMLTemplateElement} */ (element).content.firstChild :\n element.firstChild;\n if (buildComment instanceof Comment) {\n const commentParts = buildComment.textContent.trim().split(':');\n if (commentParts[0] === CSS_BUILD_ATTR) {\n return commentParts[1];\n }\n }\n return '';\n}\n\n/**\n * Check if the css build status is optimal, and do no unneeded work.\n *\n * @param {string=} cssBuild CSS build status\n * @return {boolean} css build is optimal or not\n */\nexport function isOptimalCssBuild(cssBuild = '') {\n // CSS custom property shim always requires work\n if (cssBuild === '' || !nativeCssVariables) {\n return false;\n }\n return nativeShadow ? cssBuild === 'shadow' : cssBuild === 'shady';\n}\n\n/**\n * @param {!HTMLElement} element\n */\nfunction removeBuildComment(element) {\n const buildComment = element.localName === 'template' ?\n /** @type {!HTMLTemplateElement} */ (element).content.firstChild :\n element.firstChild;\n buildComment.parentNode.removeChild(buildComment);\n}\n","/**\n@license\nCopyright (c) 2017 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 {StyleNode} from './css-parse.js'; // eslint-disable-line no-unused-vars\nimport * as StyleUtil from './style-util.js';\nimport {nativeShadow} from './style-settings.js';\n\n/* Transforms ShadowDOM styling into ShadyDOM styling\n\n* scoping:\n\n * elements in scope get scoping selector class=\"x-foo-scope\"\n * selectors re-written as follows:\n\n div button -> div.x-foo-scope button.x-foo-scope\n\n* :host -> scopeName\n\n* :host(...) -> scopeName...\n\n* ::slotted(...) -> scopeName > ...\n\n* ...:dir(ltr|rtl) -> [dir=\"ltr|rtl\"] ..., ...[dir=\"ltr|rtl\"]\n\n* :host(:dir[rtl]) -> scopeName:dir(rtl) -> [dir=\"rtl\"] scopeName, scopeName[dir=\"rtl\"]\n\n*/\nconst SCOPE_NAME = 'style-scope';\n\nclass StyleTransformer {\n get SCOPE_NAME() {\n return SCOPE_NAME;\n }\n /**\n * Given a node and scope name, add a scoping class to each node\n * in the tree. This facilitates transforming css into scoped rules.\n * @param {!Node} node\n * @param {string} scope\n * @param {boolean=} shouldRemoveScope\n * @deprecated\n */\n dom(node, scope, shouldRemoveScope) {\n const fn = (node) => {\n this.element(node, scope || '', shouldRemoveScope);\n };\n this._transformDom(node, fn);\n }\n\n /**\n * Given a node and scope name, add a scoping class to each node in the tree.\n * @param {!Node} node\n * @param {string} scope\n */\n domAddScope(node, scope) {\n const fn = (node) => {\n this.element(node, scope || '');\n };\n this._transformDom(node, fn);\n }\n\n /**\n * @param {!Node} startNode\n * @param {!function(!Node)} transformer\n */\n _transformDom(startNode, transformer) {\n if (startNode.nodeType === Node.ELEMENT_NODE) {\n transformer(startNode)\n }\n let c$;\n if (startNode.localName === 'template') {\n const template = /** @type {!HTMLTemplateElement} */ (startNode);\n // In case the template is in svg context, fall back to the node\n // since it won't be an HTMLTemplateElement with a .content property\n c$ = (template.content || template._content || template).childNodes;\n } else {\n c$ = /** @type {!ParentNode} */ (startNode).children ||\n startNode.childNodes;\n }\n if (c$) {\n for (let i = 0; i < c$.length; i++) {\n this._transformDom(c$[i], transformer);\n }\n }\n }\n\n /**\n * @param {?} element\n * @param {?} scope\n * @param {?=} shouldRemoveScope\n */\n element(element, scope, shouldRemoveScope) {\n // note: if using classes, we add both the general 'style-scope' class\n // as well as the specific scope. This enables easy filtering of all\n // `style-scope` elements\n if (scope) {\n // note: svg on IE does not have classList so fallback to class\n if (element.classList) {\n if (shouldRemoveScope) {\n element.classList.remove(SCOPE_NAME);\n element.classList.remove(scope);\n } else {\n element.classList.add(SCOPE_NAME);\n element.classList.add(scope);\n }\n } else if (element.getAttribute) {\n let c = element.getAttribute(CLASS);\n if (shouldRemoveScope) {\n if (c) {\n let newValue = c.replace(SCOPE_NAME, '').replace(scope, '');\n StyleUtil.setElementClassRaw(element, newValue);\n }\n } else {\n let newValue = (c ? c + ' ' : '') + SCOPE_NAME + ' ' + scope;\n StyleUtil.setElementClassRaw(element, newValue);\n }\n }\n }\n }\n\n /**\n * Given a node, replace the scoping class to each subnode in the tree.\n * @param {!Node} node\n * @param {string} oldScope\n * @param {string} newScope\n */\n domReplaceScope(node, oldScope, newScope) {\n const fn = (node) => {\n this.element(node, oldScope, true);\n this.element(node, newScope);\n };\n this._transformDom(node, fn);\n }\n /**\n * Given a node, remove the scoping class to each subnode in the tree.\n * @param {!Node} node\n * @param {string} oldScope\n */\n domRemoveScope(node, oldScope) {\n const fn = (node) => {\n this.element(node, oldScope || '', true);\n };\n this._transformDom(node, fn);\n }\n\n /**\n * @param {?} element\n * @param {?} styleRules\n * @param {?=} callback\n * @param {string=} cssBuild\n * @param {string=} cssText\n * @return {string}\n */\n elementStyles(element, styleRules, callback, cssBuild = '', cssText = '') {\n // no need to shim selectors if settings.useNativeShadow, also\n // a shady css build will already have transformed selectors\n // NOTE: This method may be called as part of static or property shimming.\n // When there is a targeted build it will not be called for static shimming,\n // but when the property shim is used it is called and should opt out of\n // static shimming work when a proper build exists.\n if (cssText === '') {\n if (nativeShadow || cssBuild === 'shady') {\n cssText = StyleUtil.toCssText(styleRules, callback);\n } else {\n let {is, typeExtension} = StyleUtil.getIsExtends(element);\n cssText = this.css(styleRules, is, typeExtension, callback) + '\\n\\n';\n }\n }\n return cssText.trim();\n }\n\n // Given a string of cssText and a scoping string (scope), returns\n // a string of scoped css where each selector is transformed to include\n // a class created from the scope. ShadowDOM selectors are also transformed\n // (e.g. :host) to use the scoping selector.\n css(rules, scope, ext, callback) {\n let hostScope = this._calcHostScope(scope, ext);\n scope = this._calcElementScope(scope);\n let self = this;\n return StyleUtil.toCssText(rules, function(/** StyleNode */rule) {\n if (!rule.isScoped) {\n self.rule(rule, scope, hostScope);\n rule.isScoped = true;\n }\n if (callback) {\n callback(rule, scope, hostScope);\n }\n });\n }\n\n _calcElementScope(scope) {\n if (scope) {\n return CSS_CLASS_PREFIX + scope;\n } else {\n return '';\n }\n }\n\n _calcHostScope(scope, ext) {\n return ext ? `[is=${scope}]` : scope;\n }\n\n rule(rule, scope, hostScope) {\n this._transformRule(rule, this._transformComplexSelector,\n scope, hostScope);\n }\n\n /**\n * transforms a css rule to a scoped rule.\n *\n * @param {StyleNode} rule\n * @param {Function} transformer\n * @param {string=} scope\n * @param {string=} hostScope\n */\n _transformRule(rule, transformer, scope, hostScope) {\n // NOTE: save transformedSelector for subsequent matching of elements\n // against selectors (e.g. when calculating style properties)\n rule['selector'] = rule.transformedSelector =\n this._transformRuleCss(rule, transformer, scope, hostScope);\n }\n\n /**\n * @param {StyleNode} rule\n * @param {Function} transformer\n * @param {string=} scope\n * @param {string=} hostScope\n */\n _transformRuleCss(rule, transformer, scope, hostScope) {\n let p$ = StyleUtil.splitSelectorList(rule['selector']);\n // we want to skip transformation of rules that appear in keyframes,\n // because they are keyframe selectors, not element selectors.\n if (!StyleUtil.isKeyframesSelector(rule)) {\n for (let i=0, l=p$.length, p; (i<l) && (p=p$[i]); i++) {\n p$[i] = transformer.call(this, p, scope, hostScope);\n }\n }\n return p$.filter((part) => Boolean(part)).join(COMPLEX_SELECTOR_SEP);\n }\n\n /**\n * @param {string} selector\n * @return {string}\n */\n _twiddleNthPlus(selector) {\n return selector.replace(NTH, (m, type, inside) => {\n if (inside.indexOf('+') > -1) {\n inside = inside.replace(/\\+/g, '___');\n } else if (inside.indexOf('___') > -1) {\n inside = inside.replace(/___/g, '+');\n }\n return `:${type}(${inside})`;\n });\n }\n\n /**\n * Preserve `:matches()` selectors by replacing them with MATCHES_REPLACMENT\n * and returning an array of `:matches()` selectors.\n * Use `_replacesMatchesPseudo` to replace the `:matches()` parts\n *\n * @param {string} selector\n * @return {{selector: string, matches: !Array<string>}}\n */\n _preserveMatchesPseudo(selector) {\n /** @type {!Array<string>} */\n const matches = [];\n let match;\n while ((match = selector.match(MATCHES))) {\n const start = match.index;\n const end = StyleUtil.findMatchingParen(selector, start);\n if (end === -1) {\n throw new Error(`${match.input} selector missing ')'`)\n }\n const part = selector.slice(start, end + 1);\n selector = selector.replace(part, MATCHES_REPLACEMENT);\n matches.push(part);\n }\n return {selector, matches};\n }\n\n /**\n * Replace MATCHES_REPLACMENT character with the given set of `:matches()`\n * selectors.\n *\n * @param {string} selector\n * @param {!Array<string>} matches\n * @return {string}\n */\n _replaceMatchesPseudo(selector, matches) {\n const parts = selector.split(MATCHES_REPLACEMENT);\n return matches.reduce((acc, cur, idx) => acc + cur + parts[idx + 1], parts[0]);\n }\n\n/**\n * @param {string} selector\n * @param {string} scope\n * @param {string=} hostScope\n */\n _transformComplexSelector(selector, scope, hostScope) {\n let stop = false;\n selector = selector.trim();\n // Remove spaces inside of selectors like `:nth-of-type` because it confuses SIMPLE_SELECTOR_SEP\n let isNth = NTH.test(selector);\n if (isNth) {\n selector = selector.replace(NTH, (m, type, inner) => `:${type}(${inner.replace(/\\s/g, '')})`)\n selector = this._twiddleNthPlus(selector);\n }\n // Preserve selectors like `:-webkit-any` so that SIMPLE_SELECTOR_SEP does\n // not get confused by spaces inside the pseudo selector\n const isMatches = MATCHES.test(selector);\n /** @type {!Array<string>} */\n let matches;\n if (isMatches) {\n ({selector, matches} = this._preserveMatchesPseudo(selector));\n }\n selector = selector.replace(SLOTTED_START, `${HOST} $1`);\n selector = selector.replace(SIMPLE_SELECTOR_SEP, (m, c, s) => {\n if (!stop) {\n let info = this._transformCompoundSelector(s, c, scope, hostScope);\n stop = stop || info.stop;\n c = info.combinator;\n s = info.value;\n }\n return c + s;\n });\n // replace `:matches()` selectors\n if (isMatches) {\n selector = this._replaceMatchesPseudo(selector, matches);\n }\n if (isNth) {\n selector = this._twiddleNthPlus(selector);\n }\n return selector;\n }\n\n _transformCompoundSelector(selector, combinator, scope, hostScope) {\n // replace :host with host scoping class\n let slottedIndex = selector.indexOf(SLOTTED);\n if (selector.indexOf(HOST) >= 0) {\n selector = this._transformHostSelector(selector, hostScope);\n // replace other selectors with scoping class\n } else if (slottedIndex !== 0) {\n selector = scope ? this._transformSimpleSelector(selector, scope) :\n selector;\n }\n // mark ::slotted() scope jump to replace with descendant selector + arg\n // also ignore left-side combinator\n let slotted = false;\n if (slottedIndex >= 0) {\n combinator = '';\n slotted = true;\n }\n // process scope jumping selectors up to the scope jump and then stop\n let stop;\n if (slotted) {\n stop = true;\n if (slotted) {\n // .zonk ::slotted(.foo) -> .zonk.scope > .foo\n selector = selector.replace(SLOTTED_PAREN, (m, paren) => ` > ${paren}`);\n }\n }\n selector = selector.replace(DIR_PAREN, (m, before, dir) =>\n `[dir=\"${dir}\"] ${before}, ${before}[dir=\"${dir}\"]`);\n return {value: selector, combinator, stop};\n }\n\n _transformSimpleSelector(selector, scope) {\n const attributes = selector.split(/(\\[.+?\\])/);\n\n const output = [];\n for (let i = 0; i < attributes.length; i++) {\n // Do not attempt to transform any attribute selector content\n if ((i % 2) === 1) {\n output.push(attributes[i]);\n } else {\n const part = attributes[i];\n\n if (!(part === '' && i === attributes.length - 1)) {\n let p$ = part.split(PSEUDO_PREFIX);\n p$[0] += scope;\n output.push(p$.join(PSEUDO_PREFIX));\n }\n }\n }\n\n return output.join('');\n }\n\n // :host(...) -> scopeName...\n _transformHostSelector(selector, hostScope) {\n let m = selector.match(HOST_PAREN);\n let paren = m && m[2].trim() || '';\n if (paren) {\n if (!paren[0].match(SIMPLE_SELECTOR_PREFIX)) {\n // paren starts with a type selector\n let typeSelector = paren.split(SIMPLE_SELECTOR_PREFIX)[0];\n // if the type selector is our hostScope then avoid pre-pending it\n if (typeSelector === hostScope) {\n return paren;\n // otherwise, this selector should not match in this scope so\n // output a bogus selector.\n } else {\n return SELECTOR_NO_MATCH;\n }\n } else {\n // make sure to do a replace here to catch selectors like:\n // `:host(.foo)::before`\n return selector.replace(HOST_PAREN, function(m, host, paren) {\n return hostScope + paren;\n });\n }\n // if no paren, do a straight :host replacement.\n // TODO(sorvell): this should not strictly be necessary but\n // it's needed to maintain support for `:host[foo]` type selectors\n // which have been improperly used under Shady DOM. This should be\n // deprecated.\n } else {\n return selector.replace(HOST, hostScope);\n }\n }\n\n /**\n * @param {StyleNode} rule\n */\n documentRule(rule) {\n // reset selector in case this is redone.\n rule['selector'] = rule['parsedSelector'];\n this.normalizeRootSelector(rule);\n this._transformRule(rule, this._transformDocumentSelector);\n }\n\n /**\n * @param {StyleNode} rule\n */\n normalizeRootSelector(rule) {\n if (rule['selector'] === ROOT) {\n rule['selector'] = 'html';\n }\n }\n\n/**\n * @param {string} selector\n */\n _transformDocumentSelector(selector) {\n if (selector.match(HOST)) {\n // remove ':host' type selectors in document rules\n return '';\n } else if (selector.match(SLOTTED)) {\n return this._transformComplexSelector(selector, SCOPE_DOC_SELECTOR)\n } else {\n return this._transformSimpleSelector(selector.trim(), SCOPE_DOC_SELECTOR);\n }\n }\n}\n\nconst NTH = /:(nth[-\\w]+)\\(([^)]+)\\)/;\nconst SCOPE_DOC_SELECTOR = `:not(.${SCOPE_NAME})`;\nconst COMPLEX_SELECTOR_SEP = ',';\nconst SIMPLE_SELECTOR_SEP = /(^|[\\s>+~]+)((?:\\[.+?\\]|[^\\s>+~=[])+)/g;\nconst SIMPLE_SELECTOR_PREFIX = /[[.:#*]/;\nconst HOST = ':host';\nconst ROOT = ':root';\nconst SLOTTED = '::slotted';\nconst SLOTTED_START = new RegExp(`^(${SLOTTED})`);\n// NOTE: this supports 1 nested () pair for things like\n// :host(:not([selected]), more general support requires\n// parsing which seems like overkill\nconst HOST_PAREN = /(:host)(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))/;\n// similar to HOST_PAREN\nconst SLOTTED_PAREN = /(?:::slotted)(?:\\(((?:\\([^)(]*\\)|[^)(]*)+?)\\))/;\nconst DIR_PAREN = /(.*):dir\\((?:(ltr|rtl))\\)/;\nconst CSS_CLASS_PREFIX = '.';\nconst PSEUDO_PREFIX = ':';\nconst CLASS = 'class';\nconst SELECTOR_NO_MATCH = 'should_not_match';\nconst MATCHES = /:(?:matches|any|-(?:webkit|moz)-any)/;\nconst MATCHES_REPLACEMENT = '\\u{e000}';\n\nexport default new StyleTransformer()\n","/**\n@license\nCopyright (c) 2017 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 {parse, StyleNode} from './css-parse.js';\nimport {nativeShadow, nativeCssVariables} from './style-settings.js';\nimport StyleTransformer from './style-transformer.js';\nimport * as StyleUtil from './style-util.js';\nimport StyleProperties from './style-properties.js';\nimport {ensureStylePlaceholder, getStylePlaceholder} from './style-placeholder.js';\nimport StyleInfo from './style-info.js';\nimport StyleCache from './style-cache.js';\nimport {flush as watcherFlush, getOwnerScope, getCurrentScope} from './document-watcher.js';\nimport templateMap from './template-map.js';\nimport * as ApplyShimUtils from './apply-shim-utils.js';\nimport {updateNativeProperties, detectMixin} from './common-utils.js';\nimport {CustomStyleInterfaceInterface} from './custom-style-interface.js'; // eslint-disable-line no-unused-vars\n\n/**\n * @const {StyleCache}\n */\nconst styleCache = new StyleCache();\n\nexport default class ScopingShim {\n constructor() {\n this._scopeCounter = {};\n this._documentOwner = /** @type {!HTMLElement} */(document.documentElement);\n let ast = new StyleNode();\n ast['rules'] = [];\n this._documentOwnerStyleInfo = StyleInfo.set(this._documentOwner, new StyleInfo(ast));\n this._elementsHaveApplied = false;\n /** @type {?Object} */\n this._applyShim = null;\n /** @type {?CustomStyleInterfaceInterface} */\n this._customStyleInterface = null;\n }\n flush() {\n watcherFlush();\n }\n _generateScopeSelector(name) {\n let id = this._scopeCounter[name] = (this._scopeCounter[name] || 0) + 1;\n return `${name}-${id}`;\n }\n getStyleAst(style) {\n return StyleUtil.rulesForStyle(style);\n }\n styleAstToString(ast) {\n return StyleUtil.toCssText(ast);\n }\n _gatherStyles(template) {\n return StyleUtil.gatherStyleText(template.content);\n }\n /**\n * Prepare the styling and template for the given element type\n *\n * @param {!HTMLTemplateElement} template\n * @param {string} elementName\n * @param {string=} typeExtension\n */\n prepareTemplate(template, elementName, typeExtension) {\n this.prepareTemplateDom(template, elementName);\n this.prepareTemplateStyles(template, elementName, typeExtension);\n }\n /**\n * Prepare styling for the given element type\n * @param {!HTMLTemplateElement} template\n * @param {string} elementName\n * @param {string=} typeExtension\n */\n prepareTemplateStyles(template, elementName, typeExtension) {\n if (template._prepared) {\n return;\n }\n // style placeholders are only used when ShadyDOM is active\n if (!nativeShadow) {\n ensureStylePlaceholder(elementName);\n }\n template._prepared = true;\n template.name = elementName;\n template.extends = typeExtension;\n templateMap[elementName] = template;\n let cssBuild = StyleUtil.getCssBuild(template);\n const optimalBuild = StyleUtil.isOptimalCssBuild(cssBuild);\n let info = {\n is: elementName,\n extends: typeExtension,\n };\n let cssText = this._gatherStyles(template);\n // check if the styling has mixin definitions or uses\n this._ensure();\n if (!optimalBuild) {\n let hasMixins = !cssBuild && detectMixin(cssText);\n let ast = parse(cssText);\n // only run the applyshim transforms if there is a mixin involved\n if (hasMixins && nativeCssVariables && this._applyShim) {\n this._applyShim['transformRules'](ast, elementName);\n }\n template['_styleAst'] = ast;\n }\n let ownPropertyNames = [];\n if (!nativeCssVariables) {\n ownPropertyNames = StyleProperties.decorateStyles(template['_styleAst']);\n }\n if (!ownPropertyNames.length || nativeCssVariables) {\n let root = nativeShadow ? template.content : null;\n let placeholder = getStylePlaceholder(elementName);\n let style = this._generateStaticStyle(info, template['_styleAst'], root, placeholder, cssBuild, optimalBuild ? cssText : '');\n template._style = style;\n }\n template._ownPropertyNames = ownPropertyNames;\n }\n /**\n * Prepare template for the given element type\n * @param {!HTMLTemplateElement} template\n * @param {string} elementName\n */\n prepareTemplateDom(template, elementName) {\n const cssBuild = StyleUtil.getCssBuild(template);\n if (!nativeShadow && cssBuild !== 'shady' && !template._domPrepared) {\n template._domPrepared = true;\n StyleTransformer.domAddScope(template.content, elementName);\n }\n }\n /**\n * @param {!{is: string, extends: (string|undefined)}} info\n * @param {!StyleNode} rules\n * @param {DocumentFragment} shadowroot\n * @param {Node} placeholder\n * @param {string} cssBuild\n * @param {string=} cssText\n * @return {?HTMLStyleElement}\n */\n _generateStaticStyle(info, rules, shadowroot, placeholder, cssBuild, cssText) {\n cssText = StyleTransformer.elementStyles(info, rules, null, cssBuild, cssText);\n if (cssText.length) {\n return StyleUtil.applyCss(cssText, info.is, shadowroot, placeholder);\n }\n return null;\n }\n _prepareHost(host) {\n let {is, typeExtension} = StyleUtil.getIsExtends(host);\n let placeholder = getStylePlaceholder(is)\n let template = templateMap[is];\n let ast;\n let ownStylePropertyNames;\n let cssBuild;\n if (template) {\n ast = template['_styleAst'];\n ownStylePropertyNames = template._ownPropertyNames;\n cssBuild = StyleUtil.getCssBuild(template);\n }\n const styleInfo = new StyleInfo(\n ast,\n placeholder,\n ownStylePropertyNames,\n is,\n typeExtension,\n cssBuild\n );\n // only set the style info after this element has registered its template\n if (template) {\n StyleInfo.set(host, styleInfo);\n }\n return styleInfo;\n }\n _ensureApplyShim() {\n if (this._applyShim) {\n return;\n } else if (window.ShadyCSS && window.ShadyCSS.ApplyShim) {\n this._applyShim = /** @type {!Object} */ (window.ShadyCSS.ApplyShim);\n this._applyShim['invalidCallback'] = ApplyShimUtils.invalidate;\n }\n }\n _ensureCustomStyleInterface() {\n if (this._customStyleInterface) {\n return;\n } else if (window.ShadyCSS && window.ShadyCSS.CustomStyleInterface) {\n this._customStyleInterface = /** @type {!CustomStyleInterfaceInterface} */(window.ShadyCSS.CustomStyleInterface);\n /** @type {function(!HTMLStyleElement)} */\n this._customStyleInterface['transformCallback'] = (style) => {this.transformCustomStyleForDocument(style)};\n this._customStyleInterface['validateCallback'] = () => {\n requestAnimationFrame(() => {\n if (this._customStyleInterface['enqueued'] || this._elementsHaveApplied) {\n this.flushCustomStyles();\n }\n })\n };\n }\n }\n _ensure() {\n this._ensureApplyShim();\n this._ensureCustomStyleInterface();\n }\n /**\n * Flush and apply custom styles to document\n */\n flushCustomStyles() {\n this._ensure();\n if (!this._customStyleInterface) {\n return;\n }\n let customStyles = this._customStyleInterface['processStyles']();\n // early return if custom-styles don't need validation\n if (!this._customStyleInterface['enqueued']) {\n return;\n }\n // bail if custom styles are built optimally\n if (StyleUtil.isOptimalCssBuild(this._documentOwnerStyleInfo.cssBuild)) {\n return;\n }\n if (!nativeCssVariables) {\n this._updateProperties(this._documentOwner, this._documentOwnerStyleInfo);\n this._applyCustomStyles(customStyles);\n if (this._elementsHaveApplied) {\n // if custom elements have upgraded and there are no native css variables, we must recalculate the whole tree\n this.styleDocument();\n }\n } else if (!this._documentOwnerStyleInfo.cssBuild) {\n this._revalidateCustomStyleApplyShim(customStyles);\n }\n this._customStyleInterface['enqueued'] = false;\n }\n /**\n * Apply styles for the given element\n *\n * @param {!HTMLElement} host\n * @param {Object=} overrideProps\n */\n styleElement(host, overrideProps) {\n let styleInfo = StyleInfo.get(host);\n if (!styleInfo) {\n styleInfo = this._prepareHost(host);\n }\n // Only trip the `elementsHaveApplied` flag if a node other that the root document has `applyStyle` called\n if (!this._isRootOwner(host)) {\n this._elementsHaveApplied = true;\n }\n if (overrideProps) {\n styleInfo.overrideStyleProperties =\n styleInfo.overrideStyleProperties || {};\n Object.assign(styleInfo.overrideStyleProperties, overrideProps);\n }\n if (!nativeCssVariables) {\n this.styleElementShimVariables(host, styleInfo);\n } else {\n this.styleElementNativeVariables(host, styleInfo);\n }\n }\n /**\n * @param {!HTMLElement} host\n * @param {!StyleInfo} styleInfo\n */\n styleElementShimVariables(host, styleInfo) {\n this.flush();\n this._updateProperties(host, styleInfo);\n if (styleInfo.ownStylePropertyNames && styleInfo.ownStylePropertyNames.length) {\n this._applyStyleProperties(host, styleInfo);\n }\n }\n /**\n * @param {!HTMLElement} host\n * @param {!StyleInfo} styleInfo\n */\n styleElementNativeVariables(host, styleInfo) {\n const { is } = StyleUtil.getIsExtends(host);\n if (styleInfo.overrideStyleProperties) {\n updateNativeProperties(host, styleInfo.overrideStyleProperties);\n }\n const template = templateMap[is];\n // bail early if there is no shadowroot for this element\n if (!template && !this._isRootOwner(host)) {\n return;\n }\n // bail early if the template was built with polymer-css-build\n if (template && StyleUtil.elementHasBuiltCss(template)) {\n return;\n }\n if (template && template._style && !ApplyShimUtils.templateIsValid(template)) {\n // update template\n if (!ApplyShimUtils.templateIsValidating(template)) {\n this._ensure();\n this._applyShim && this._applyShim['transformRules'](template['_styleAst'], is);\n template._style.textContent = StyleTransformer.elementStyles(host, styleInfo.styleRules);\n ApplyShimUtils.startValidatingTemplate(template);\n }\n // update instance if native shadowdom\n if (nativeShadow) {\n let root = host.shadowRoot;\n if (root) {\n let style = root.querySelector('style');\n if (style) {\n style.textContent = StyleTransformer.elementStyles(host, styleInfo.styleRules);\n }\n }\n }\n styleInfo.styleRules = template['_styleAst'];\n }\n }\n _styleOwnerForNode(node) {\n let root = node.getRootNode();\n let host = root.host;\n if (host) {\n if (StyleInfo.get(host)) {\n return host;\n } else {\n return this._styleOwnerForNode(host);\n }\n }\n return this._documentOwner;\n }\n _isRootOwner(node) {\n return (node === this._documentOwner);\n }\n _applyStyleProperties(host, styleInfo) {\n let is = StyleUtil.getIsExtends(host).is;\n let cacheEntry = styleCache.fetch(is, styleInfo.styleProperties, styleInfo.ownStylePropertyNames);\n let cachedScopeSelector = cacheEntry && cacheEntry.scopeSelector;\n let cachedStyle = cacheEntry ? cacheEntry.styleElement : null;\n let oldScopeSelector = styleInfo.scopeSelector;\n // only generate new scope if cached style is not found\n styleInfo.scopeSelector = cachedScopeSelector || this._generateScopeSelector(is);\n let style = StyleProperties.applyElementStyle(host, styleInfo.styleProperties, styleInfo.scopeSelector, cachedStyle);\n if (!nativeShadow) {\n StyleProperties.applyElementScopeSelector(host, styleInfo.scopeSelector, oldScopeSelector);\n }\n if (!cacheEntry) {\n styleCache.store(is, styleInfo.styleProperties, style, styleInfo.scopeSelector);\n }\n return style;\n }\n _updateProperties(host, styleInfo) {\n let owner = this._styleOwnerForNode(host);\n let ownerStyleInfo = StyleInfo.get(owner);\n let ownerProperties = ownerStyleInfo.styleProperties;\n let props = Object.create(ownerProperties || null);\n let hostAndRootProps = StyleProperties.hostAndRootPropertiesForScope(host, styleInfo.styleRules, styleInfo.cssBuild);\n let propertyData = StyleProperties.propertyDataFromStyles(ownerStyleInfo.styleRules, host);\n let propertiesMatchingHost = propertyData.properties\n Object.assign(\n props,\n hostAndRootProps.hostProps,\n propertiesMatchingHost,\n hostAndRootProps.rootProps\n );\n this._mixinOverrideStyles(props, styleInfo.overrideStyleProperties);\n StyleProperties.reify(props);\n styleInfo.styleProperties = props;\n }\n _mixinOverrideStyles(props, overrides) {\n for (let p in overrides) {\n let v = overrides[p];\n // skip override props if they are not truthy or 0\n // in order to fall back to inherited values\n if (v || v === 0) {\n props[p] = v;\n }\n }\n }\n /**\n * Update styles of the whole document\n *\n * @param {Object=} properties\n */\n styleDocument(properties) {\n this.styleSubtree(this._documentOwner, properties);\n }\n /**\n * Update styles of a subtree\n *\n * @param {!HTMLElement} host\n * @param {Object=} properties\n */\n styleSubtree(host, properties) {\n let root = host.shadowRoot;\n if (root || this._isRootOwner(host)) {\n this.styleElement(host, properties);\n }\n // process the shadowdom children of `host`\n let shadowChildren =\n root && (/** @type {!ParentNode} */ (root).children || root.childNodes);\n if (shadowChildren) {\n for (let i = 0; i < shadowChildren.length; i++) {\n let c = /** @type {!HTMLElement} */(shadowChildren[i]);\n this.styleSubtree(c);\n }\n } else {\n // process the lightdom children of `host`\n let children = host.children || host.childNodes;\n if (children) {\n for (let i = 0; i < children.length; i++) {\n let c = /** @type {!HTMLElement} */(children[i]);\n this.styleSubtree(c);\n }\n }\n }\n }\n /* Custom Style operations */\n _revalidateCustomStyleApplyShim(customStyles) {\n for (let i = 0; i < customStyles.length; i++) {\n let c = customStyles[i];\n let s = this._customStyleInterface['getStyleForCustomStyle'](c);\n if (s) {\n this._revalidateApplyShim(s);\n }\n }\n }\n _applyCustomStyles(customStyles) {\n for (let i = 0; i < customStyles.length; i++) {\n let c = customStyles[i];\n let s = this._customStyleInterface['getStyleForCustomStyle'](c);\n if (s) {\n StyleProperties.applyCustomStyle(s, this._documentOwnerStyleInfo.styleProperties);\n }\n }\n }\n transformCustomStyleForDocument(style) {\n const cssBuild = StyleUtil.getCssBuild(style);\n if (cssBuild !== this._documentOwnerStyleInfo.cssBuild) {\n this._documentOwnerStyleInfo.cssBuild = cssBuild;\n }\n if (StyleUtil.isOptimalCssBuild(cssBuild)) {\n return;\n }\n let ast = StyleUtil.rulesForStyle(style);\n StyleUtil.forEachRule(ast, (rule) => {\n if (nativeShadow) {\n StyleTransformer.normalizeRootSelector(rule);\n } else {\n StyleTransformer.documentRule(rule);\n }\n if (nativeCssVariables && cssBuild === '') {\n this._ensure();\n this._applyShim && this._applyShim['transformRule'](rule);\n }\n });\n if (nativeCssVariables) {\n style.textContent = StyleUtil.toCssText(ast);\n } else {\n this._documentOwnerStyleInfo.styleRules['rules'].push(ast);\n }\n }\n _revalidateApplyShim(style) {\n if (nativeCssVariables && this._applyShim) {\n let ast = StyleUtil.rulesForStyle(style);\n this._ensure();\n this._applyShim['transformRules'](ast);\n style.textContent = StyleUtil.toCssText(ast);\n }\n }\n getComputedStyleValue(element, property) {\n let value;\n if (!nativeCssVariables) {\n // element is either a style host, or an ancestor of a style host\n let styleInfo = StyleInfo.get(element) || StyleInfo.get(this._styleOwnerForNode(element));\n value = styleInfo.styleProperties[property];\n }\n // fall back to the property value from the computed styling\n value = value || window.getComputedStyle(element).getPropertyValue(property);\n // trim whitespace that can come after the `:` in css\n // example: padding: 2px -> \" 2px\"\n return value ? value.trim() : '';\n }\n // given an element and a classString, replaces\n // the element's class with the provided classString and adds\n // any necessary ShadyCSS static and property based scoping selectors\n setElementClass(element, classString) {\n let root = element.getRootNode();\n let classes = classString ? classString.split(/\\s/) : [];\n let scopeName = root.host && root.host.localName;\n // If no scope, try to discover scope name from existing class.\n // This can occur if, for example, a template stamped element that\n // has been scoped is manipulated when not in a root.\n if (!scopeName) {\n var classAttr = element.getAttribute('class');\n if (classAttr) {\n let k$ = classAttr.split(/\\s/);\n for (let i=0; i < k$.length; i++) {\n if (k$[i] === StyleTransformer.SCOPE_NAME) {\n scopeName = k$[i+1];\n break;\n }\n }\n }\n }\n if (scopeName) {\n classes.push(StyleTransformer.SCOPE_NAME, scopeName);\n }\n if (!nativeCssVariables) {\n let styleInfo = StyleInfo.get(element);\n if (styleInfo && styleInfo.scopeSelector) {\n classes.push(StyleProperties.XSCOPE_NAME, styleInfo.scopeSelector);\n }\n }\n StyleUtil.setElementClassRaw(element, classes.join(' '));\n }\n _styleInfoForNode(node) {\n return StyleInfo.get(node);\n }\n /**\n * @param {!Element} node\n * @param {string} scope\n */\n scopeNode(node, scope) {\n StyleTransformer.element(node, scope);\n }\n /**\n * @param {!Element} node\n * @param {string} scope\n */\n unscopeNode(node, scope) {\n StyleTransformer.element(node, scope, true);\n }\n /**\n * @param {!Node} node\n * @return {string}\n */\n scopeForNode(node) {\n return getOwnerScope(node);\n }\n /**\n * @param {!Element} node\n * @return {string}\n */\n currentScopeForNode(node) {\n return getCurrentScope(node);\n }\n}\n\n/* exports */\n/* eslint-disable no-self-assign */\nScopingShim.prototype['flush'] = ScopingShim.prototype.flush;\nScopingShim.prototype['prepareTemplate'] = ScopingShim.prototype.prepareTemplate;\nScopingShim.prototype['styleElement'] = ScopingShim.prototype.styleElement;\nScopingShim.prototype['styleDocument'] = ScopingShim.prototype.styleDocument;\nScopingShim.prototype['styleSubtree'] = ScopingShim.prototype.styleSubtree;\nScopingShim.prototype['getComputedStyleValue'] = ScopingShim.prototype.getComputedStyleValue;\nScopingShim.prototype['setElementClass'] = ScopingShim.prototype.setElementClass;\nScopingShim.prototype['_styleInfoForNode'] = ScopingShim.prototype._styleInfoForNode;\nScopingShim.prototype['transformCustomStyleForDocument'] = ScopingShim.prototype.transformCustomStyleForDocument;\nScopingShim.prototype['getStyleAst'] = ScopingShim.prototype.getStyleAst;\nScopingShim.prototype['styleAstToString'] = ScopingShim.prototype.styleAstToString;\nScopingShim.prototype['flushCustomStyles'] = ScopingShim.prototype.flushCustomStyles;\nScopingShim.prototype['scopeNode'] = ScopingShim.prototype.scopeNode;\nScopingShim.prototype['unscopeNode'] = ScopingShim.prototype.unscopeNode;\nScopingShim.prototype['scopeForNode'] = ScopingShim.prototype.scopeForNode;\nScopingShim.prototype['currentScopeForNode'] = ScopingShim.prototype.currentScopeForNode;\n/* eslint-enable no-self-assign */\nObject.defineProperties(ScopingShim.prototype, {\n 'nativeShadow': {\n get() {\n return nativeShadow;\n }\n },\n 'nativeCss': {\n get() {\n return nativeCssVariables;\n }\n }\n});\n","/**\n@license\nCopyright (c) 2017 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} from './style-settings.js';\nimport StyleTransformer from './style-transformer.js';\nimport {getIsExtends, elementHasBuiltCss} from './style-util.js';\n\nexport let flush = function() {};\n\n/**\n * @param {!Element} element\n * @return {string}\n */\nfunction getClasses(element) {\n if (element.classList && element.classList.value) {\n return element.classList.value;\n } else {\n // NOTE: className is patched to remove scoping classes in ShadyDOM\n // use getAttribute('class') instead, which is unpatched\n return element.getAttribute('class') || '';\n }\n}\n\nconst scopeRegExp = new RegExp(`${StyleTransformer.SCOPE_NAME}\\\\s*([^\\\\s]*)`);\n\n/**\n * @param {!Element} element\n * @return {string}\n */\nexport function getCurrentScope(element) {\n const match = getClasses(element).match(scopeRegExp);\n if (match) {\n return match[1];\n } else {\n return '';\n }\n}\n\n/**\n * @param {!Node} node\n */\nexport function getOwnerScope(node) {\n const ownerRoot = node.getRootNode();\n if (ownerRoot === node || ownerRoot === node.ownerDocument) {\n return '';\n }\n const host = /** @type {!ShadowRoot} */(ownerRoot).host;\n if (!host) {\n // this may actually be a document fragment\n return '';\n }\n return getIsExtends(host).is;\n}\n\n/**\n * @param {!Element} element\n */\nexport function ensureCorrectScope(element) {\n const currentScope = getCurrentScope(element);\n const ownerRoot = element.getRootNode();\n if (ownerRoot === element) {\n return;\n }\n if (currentScope && ownerRoot === element.ownerDocument) {\n // node was scoped, but now is in document\n StyleTransformer.domRemoveScope(element, currentScope);\n } else if (ownerRoot instanceof ShadowRoot) {\n const ownerScope = getOwnerScope(element);\n if (ownerScope !== currentScope) {\n // node was scoped, but not by its current owner\n StyleTransformer.domReplaceScope(element, currentScope, ownerScope);\n }\n }\n}\n\n/**\n * @param {!HTMLElement|!HTMLDocument} element\n */\nexport function ensureCorrectSubtreeScoping(element) {\n // find unscoped subtree nodes\n const unscopedNodes = window['ShadyDOM']['nativeMethods']['querySelectorAll'].call(\n element, `:not(.${StyleTransformer.SCOPE_NAME})`);\n\n for (let j = 0; j < unscopedNodes.length; j++) {\n // it's possible, during large batch inserts, that nodes that aren't\n // scoped within the current scope were added.\n // To make sure that any unscoped nodes that were inserted in the current batch are correctly styled,\n // query all unscoped nodes and force their style-scope to be applied.\n // This could happen if a sub-element appended an unscoped node in its shadowroot and this function\n // runs on a parent element of the host of that unscoped node:\n // parent-element -> element -> unscoped node\n // Here unscoped node should have the style-scope element, not parent-element.\n const unscopedNode = unscopedNodes[j];\n const scopeForPreviouslyUnscopedNode = getOwnerScope(unscopedNode);\n if (scopeForPreviouslyUnscopedNode) {\n StyleTransformer.element(unscopedNode, scopeForPreviouslyUnscopedNode);\n }\n }\n}\n\n/**\n * @param {HTMLElement} el\n * @return {boolean}\n */\nfunction isElementWithBuiltCss(el) {\n if (el.localName === 'style' || el.localName === 'template') {\n return elementHasBuiltCss(el);\n }\n return false;\n}\n\n/**\n * @param {Array<MutationRecord|null>|null} mxns\n */\nfunction handler(mxns) {\n for (let x=0; x < mxns.length; x++) {\n let mxn = mxns[x];\n if (mxn.target === document.documentElement ||\n mxn.target === document.head) {\n continue;\n }\n for (let i=0; i < mxn.addedNodes.length; i++) {\n let n = mxn.addedNodes[i];\n if (n.nodeType !== Node.ELEMENT_NODE) {\n continue;\n }\n n = /** @type {HTMLElement} */(n); // eslint-disable-line no-self-assign\n let root = n.getRootNode();\n let currentScope = getCurrentScope(n);\n // node was scoped, but now is in document\n // If this element has built css, we must not remove scoping as this node\n // will be used as a template or style without re - applying scoping as an optimization\n if (currentScope && root === n.ownerDocument && !isElementWithBuiltCss(n)) {\n StyleTransformer.domRemoveScope(n, currentScope);\n } else if (root instanceof ShadowRoot) {\n const newScope = getOwnerScope(n);\n // rescope current node and subtree if necessary\n if (newScope !== currentScope) {\n StyleTransformer.domReplaceScope(n, currentScope, newScope);\n }\n // make sure all the subtree elements are scoped correctly\n ensureCorrectSubtreeScoping(n);\n }\n }\n }\n}\n\n// if native Shadow DOM is being used, or ShadyDOM handles dynamic scoiping, do not activate the MutationObserver\nif (!nativeShadow && !(window['ShadyDOM'] && window['ShadyDOM']['handlesDynamicScoping'])) {\n let observer = new MutationObserver(handler);\n let start = (node) => {\n observer.observe(node, {childList: true, subtree: true});\n }\n let nativeCustomElements = (window['customElements'] &&\n !window['customElements']['polyfillWrapFlushCallback']);\n // need to start immediately with native custom elements\n // TODO(dfreedm): with polyfilled HTMLImports and native custom elements\n // excessive mutations may be observed; this can be optimized via cooperation\n // with the HTMLImports polyfill.\n if (nativeCustomElements) {\n start(document);\n } else {\n let delayedStart = () => {\n start(document.body);\n }\n // use polyfill timing if it's available\n if (window['HTMLImports']) {\n window['HTMLImports']['whenReady'](delayedStart);\n // otherwise push beyond native imports being ready\n // which requires RAF + readystate interactive.\n } else {\n requestAnimationFrame(function() {\n if (document.readyState === 'loading') {\n let listener = function() {\n delayedStart();\n document.removeEventListener('readystatechange', listener);\n }\n document.addEventListener('readystatechange', listener);\n } else {\n delayedStart();\n }\n });\n }\n }\n\n flush = function() {\n handler(observer.takeRecords());\n }\n}\n","/**\n@license\nCopyright (c) 2017 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 {removeCustomPropAssignment, StyleNode} from './css-parse.js'; // eslint-disable-line no-unused-vars\nimport {nativeShadow} from './style-settings.js';\nimport StyleTransformer from './style-transformer.js';\nimport * as StyleUtil from './style-util.js';\nimport * as RX from './common-regex.js';\nimport StyleInfo from './style-info.js';\n\n// TODO: dedupe with shady\n/**\n * @param {string} selector\n * @return {boolean}\n * @this {Element}\n */\nconst matchesSelector = function(selector) {\n const method = this.matches || this.matchesSelector ||\n this.mozMatchesSelector || this.msMatchesSelector ||\n this.oMatchesSelector || this.webkitMatchesSelector;\n return method && method.call(this, selector);\n};\n\nconst IS_IE = navigator.userAgent.match('Trident');\n\nconst XSCOPE_NAME = 'x-scope';\n\nclass StyleProperties {\n get XSCOPE_NAME() {\n return XSCOPE_NAME;\n }\n/**\n * decorates styles with rule info and returns an array of used style property names\n *\n * @param {StyleNode} rules\n * @return {Array<string>}\n */\n decorateStyles(rules) {\n let self = this, props = {}, keyframes = [], ruleIndex = 0;\n StyleUtil.forEachRule(rules, function(rule) {\n self.decorateRule(rule);\n // mark in-order position of ast rule in styles block, used for cache key\n rule.index = ruleIndex++;\n self.collectPropertiesInCssText(rule.propertyInfo.cssText, props);\n }, function onKeyframesRule(rule) {\n keyframes.push(rule);\n });\n // Cache all found keyframes rules for later reference:\n rules._keyframes = keyframes;\n // return this list of property names *consumes* in these styles.\n let names = [];\n for (let i in props) {\n names.push(i);\n }\n return names;\n }\n\n // decorate a single rule with property info\n decorateRule(rule) {\n if (rule.propertyInfo) {\n return rule.propertyInfo;\n }\n let info = {}, properties = {};\n let hasProperties = this.collectProperties(rule, properties);\n if (hasProperties) {\n info.properties = properties;\n // TODO(sorvell): workaround parser seeing mixins as additional rules\n rule['rules'] = null;\n }\n info.cssText = this.collectCssText(rule);\n rule.propertyInfo = info;\n return info;\n }\n\n // collects the custom properties from a rule's cssText\n collectProperties(rule, properties) {\n let info = rule.propertyInfo;\n if (info) {\n if (info.properties) {\n Object.assign(properties, info.properties);\n return true;\n }\n } else {\n let m, rx = RX.VAR_ASSIGN;\n let cssText = rule['parsedCssText'];\n let value;\n let any;\n while ((m = rx.exec(cssText))) {\n // note: group 2 is var, 3 is mixin\n value = (m[2] || m[3]).trim();\n // value of 'inherit' or 'unset' is equivalent to not setting the property here\n if (value !== 'inherit' || value !== 'unset') {\n properties[m[1].trim()] = value;\n }\n any = true;\n }\n return any;\n }\n\n }\n\n // returns cssText of properties that consume variables/mixins\n collectCssText(rule) {\n return this.collectConsumingCssText(rule['parsedCssText']);\n }\n\n // NOTE: we support consumption inside mixin assignment\n // but not production, so strip out {...}\n collectConsumingCssText(cssText) {\n return cssText.replace(RX.BRACKETED, '')\n .replace(RX.VAR_ASSIGN, '');\n }\n\n collectPropertiesInCssText(cssText, props) {\n let m;\n while ((m = RX.VAR_CONSUMED.exec(cssText))) {\n let name = m[1];\n // This regex catches all variable names, and following non-whitespace char\n // If next char is not ':', then variable is a consumer\n if (m[2] !== ':') {\n props[name] = true;\n }\n }\n }\n\n // turns custom properties into realized values.\n reify(props) {\n // big perf optimization here: reify only *own* properties\n // since this object has __proto__ of the element's scope properties\n let names = Object.getOwnPropertyNames(props);\n for (let i=0, n; i < names.length; i++) {\n n = names[i];\n props[n] = this.valueForProperty(props[n], props);\n }\n }\n\n // given a property value, returns the reified value\n // a property value may be:\n // (1) a literal value like: red or 5px;\n // (2) a variable value like: var(--a), var(--a, red), or var(--a, --b) or\n // var(--a, var(--b));\n // (3) a literal mixin value like { properties }. Each of these properties\n // can have values that are: (a) literal, (b) variables, (c) @apply mixins.\n valueForProperty(property, props) {\n // case (1) default\n // case (3) defines a mixin and we have to reify the internals\n if (property) {\n if (property.indexOf(';') >=0) {\n property = this.valueForProperties(property, props);\n } else {\n // case (2) variable\n let self = this;\n let fn = function(prefix, value, fallback, suffix) {\n if (!value) {\n return prefix + suffix;\n }\n let propertyValue = self.valueForProperty(props[value], props);\n // if value is \"initial\", then the variable should be treated as unset\n if (!propertyValue || propertyValue === 'initial') {\n // fallback may be --a or var(--a) or literal\n propertyValue = self.valueForProperty(props[fallback] || fallback, props) ||\n fallback;\n } else if (propertyValue === 'apply-shim-inherit') {\n // CSS build will replace `inherit` with `apply-shim-inherit`\n // for use with native css variables.\n // Since we have full control, we can use `inherit` directly.\n propertyValue = 'inherit';\n }\n return prefix + (propertyValue || '') + suffix;\n };\n property = StyleUtil.processVariableAndFallback(property, fn);\n }\n }\n return property && property.trim() || '';\n }\n\n // note: we do not yet support mixin within mixin\n valueForProperties(property, props) {\n let parts = property.split(';');\n for (let i=0, p, m; i<parts.length; i++) {\n if ((p = parts[i])) {\n RX.MIXIN_MATCH.lastIndex = 0;\n m = RX.MIXIN_MATCH.exec(p);\n if (m) {\n p = this.valueForProperty(props[m[1]], props);\n } else {\n let colon = p.indexOf(':');\n if (colon !== -1) {\n let pp = p.substring(colon);\n pp = pp.trim();\n pp = this.valueForProperty(pp, props) || pp;\n p = p.substring(0, colon) + pp;\n }\n }\n parts[i] = (p && p.lastIndexOf(';') === p.length - 1) ?\n // strip trailing ;\n p.slice(0, -1) :\n p || '';\n }\n }\n return parts.join(';');\n }\n\n applyProperties(rule, props) {\n let output = '';\n // dynamically added sheets may not be decorated so ensure they are.\n if (!rule.propertyInfo) {\n this.decorateRule(rule);\n }\n if (rule.propertyInfo.cssText) {\n output = this.valueForProperties(rule.propertyInfo.cssText, props);\n }\n rule['cssText'] = output;\n }\n\n // Apply keyframe transformations to the cssText of a given rule. The\n // keyframeTransforms object is a map of keyframe names to transformer\n // functions which take in cssText and spit out transformed cssText.\n applyKeyframeTransforms(rule, keyframeTransforms) {\n let input = rule['cssText'];\n let output = rule['cssText'];\n if (rule.hasAnimations == null) {\n // Cache whether or not the rule has any animations to begin with:\n rule.hasAnimations = RX.ANIMATION_MATCH.test(input);\n }\n // If there are no animations referenced, we can skip transforms:\n if (rule.hasAnimations) {\n let transform;\n // If we haven't transformed this rule before, we iterate over all\n // transforms:\n if (rule.keyframeNamesToTransform == null) {\n rule.keyframeNamesToTransform = [];\n for (let keyframe in keyframeTransforms) {\n transform = keyframeTransforms[keyframe];\n output = transform(input);\n // If the transform actually changed the CSS text, we cache the\n // transform name for future use:\n if (input !== output) {\n input = output;\n rule.keyframeNamesToTransform.push(keyframe);\n }\n }\n } else {\n // If we already have a list of keyframe names that apply to this\n // rule, we apply only those keyframe name transforms:\n for (let i = 0; i < rule.keyframeNamesToTransform.length; ++i) {\n transform = keyframeTransforms[rule.keyframeNamesToTransform[i]];\n input = transform(input);\n }\n output = input;\n }\n }\n rule['cssText'] = output;\n }\n\n // Test if the rules in these styles matches the given `element` and if so,\n // collect any custom properties into `props`.\n /**\n * @param {StyleNode} rules\n * @param {Element} element\n */\n propertyDataFromStyles(rules, element) {\n let props = {};\n // generates a unique key for these matches\n let o = [];\n // note: active rules excludes non-matching @media rules\n StyleUtil.forEachRule(rules, (rule) => {\n // TODO(sorvell): we could trim the set of rules at declaration\n // time to only include ones that have properties\n if (!rule.propertyInfo) {\n this.decorateRule(rule);\n }\n // match element against transformedSelector: selector may contain\n // unwanted uniquification and parsedSelector does not directly match\n // for :host selectors.\n let selectorToMatch = rule.transformedSelector || rule['parsedSelector'];\n if (element && rule.propertyInfo.properties && selectorToMatch) {\n if (matchesSelector.call(element, selectorToMatch)) {\n this.collectProperties(rule, props);\n // produce numeric key for these matches for lookup\n addToBitMask(rule.index, o);\n }\n }\n }, null, true);\n return {properties: props, key: o};\n }\n\n /**\n * @param {Element} scope\n * @param {StyleNode} rule\n * @param {string} cssBuild\n * @param {function(Object)} callback\n */\n whenHostOrRootRule(scope, rule, cssBuild, callback) {\n if (!rule.propertyInfo) {\n this.decorateRule(rule);\n }\n if (!rule.propertyInfo.properties) {\n return;\n }\n let {is, typeExtension} = StyleUtil.getIsExtends(scope);\n let hostScope = is ?\n StyleTransformer._calcHostScope(is, typeExtension) :\n 'html';\n let parsedSelector = rule['parsedSelector'];\n let isRoot = (parsedSelector === ':host > *' || parsedSelector === 'html');\n let isHost = parsedSelector.indexOf(':host') === 0 && !isRoot;\n // build info is either in scope (when scope is an element) or in the style\n // when scope is the default scope; note: this allows default scope to have\n // mixed mode built and unbuilt styles.\n if (cssBuild === 'shady') {\n // :root -> x-foo > *.x-foo for elements and html for custom-style\n isRoot = parsedSelector === (hostScope + ' > *.' + hostScope) || parsedSelector.indexOf('html') !== -1;\n // :host -> x-foo for elements, but sub-rules have .x-foo in them\n isHost = !isRoot && parsedSelector.indexOf(hostScope) === 0;\n }\n if (!isRoot && !isHost) {\n return;\n }\n let selectorToMatch = hostScope;\n if (isHost) {\n // need to transform :host because `:host` does not work with `matches`\n if (!rule.transformedSelector) {\n // transform :host into a matchable selector\n rule.transformedSelector =\n StyleTransformer._transformRuleCss(\n rule,\n StyleTransformer._transformComplexSelector,\n StyleTransformer._calcElementScope(is),\n hostScope\n );\n }\n selectorToMatch = rule.transformedSelector || hostScope;\n }\n callback({\n selector: selectorToMatch,\n isHost: isHost,\n isRoot: isRoot\n });\n }\n/**\n * @param {Element} scope\n * @param {StyleNode} rules\n * @param {string} cssBuild\n * @return {Object}\n */\n hostAndRootPropertiesForScope(scope, rules, cssBuild) {\n let hostProps = {}, rootProps = {};\n // note: active rules excludes non-matching @media rules\n StyleUtil.forEachRule(rules, (rule) => {\n // if scope is StyleDefaults, use _element for matchesSelector\n this.whenHostOrRootRule(scope, rule, cssBuild, (info) => {\n let element = scope._element || scope;\n if (matchesSelector.call(element, info.selector)) {\n if (info.isHost) {\n this.collectProperties(rule, hostProps);\n } else {\n this.collectProperties(rule, rootProps);\n }\n }\n });\n }, null, true);\n return {rootProps: rootProps, hostProps: hostProps};\n }\n\n /**\n * @param {Element} element\n * @param {Object} properties\n * @param {string} scopeSelector\n */\n transformStyles(element, properties, scopeSelector) {\n let self = this;\n let {is, typeExtension} = StyleUtil.getIsExtends(element);\n let hostSelector = StyleTransformer\n ._calcHostScope(is, typeExtension);\n let rxHostSelector = element.extends ?\n '\\\\' + hostSelector.slice(0, -1) + '\\\\]' :\n hostSelector;\n let hostRx = new RegExp(RX.HOST_PREFIX + rxHostSelector +\n RX.HOST_SUFFIX);\n let {styleRules: rules, cssBuild} = StyleInfo.get(element);\n let keyframeTransforms =\n this._elementKeyframeTransforms(element, rules, scopeSelector);\n return StyleTransformer.elementStyles(element, rules, function(rule) {\n self.applyProperties(rule, properties);\n if (!nativeShadow &&\n !StyleUtil.isKeyframesSelector(rule) &&\n rule['cssText']) {\n // NOTE: keyframe transforms only scope munge animation names, so it\n // is not necessary to apply them in ShadowDOM.\n self.applyKeyframeTransforms(rule, keyframeTransforms);\n self._scopeSelector(rule, hostRx, hostSelector, scopeSelector);\n }\n }, cssBuild);\n }\n\n /**\n * @param {Element} element\n * @param {StyleNode} rules\n * @param {string} scopeSelector\n * @return {Object}\n */\n _elementKeyframeTransforms(element, rules, scopeSelector) {\n let keyframesRules = rules._keyframes;\n let keyframeTransforms = {};\n if (!nativeShadow && keyframesRules) {\n // For non-ShadowDOM, we transform all known keyframes rules in\n // advance for the current scope. This allows us to catch keyframes\n // rules that appear anywhere in the stylesheet:\n for (let i = 0, keyframesRule = keyframesRules[i];\n i < keyframesRules.length;\n keyframesRule = keyframesRules[++i]) {\n this._scopeKeyframes(keyframesRule, scopeSelector);\n keyframeTransforms[keyframesRule['keyframesName']] =\n this._keyframesRuleTransformer(keyframesRule);\n }\n }\n return keyframeTransforms;\n }\n\n // Generate a factory for transforming a chunk of CSS text to handle a\n // particular scoped keyframes rule.\n /**\n * @param {StyleNode} keyframesRule\n * @return {function(string):string}\n */\n _keyframesRuleTransformer(keyframesRule) {\n return function(cssText) {\n return cssText.replace(\n keyframesRule.keyframesNameRx,\n keyframesRule.transformedKeyframesName);\n };\n }\n\n/**\n * Transforms `@keyframes` names to be unique for the current host.\n * Example: @keyframes foo-anim -> @keyframes foo-anim-x-foo-0\n *\n * @param {StyleNode} rule\n * @param {string} scopeId\n */\n _scopeKeyframes(rule, scopeId) {\n // Animation names are of the form [\\w-], so ensure that the name regex does not partially apply\n // to similarly named keyframe names by checking for a word boundary at the beginning and\n // a non-word boundary or `-` at the end.\n rule.keyframesNameRx = new RegExp(`\\\\b${rule['keyframesName']}(?!\\\\B|-)`, 'g');\n rule.transformedKeyframesName = rule['keyframesName'] + '-' + scopeId;\n rule.transformedSelector = rule.transformedSelector || rule['selector'];\n rule['selector'] = rule.transformedSelector.replace(\n rule['keyframesName'], rule.transformedKeyframesName);\n }\n\n // Strategy: x scope shim a selector e.g. to scope `.x-foo-42` (via classes):\n // non-host selector: .a.x-foo -> .x-foo-42 .a.x-foo\n // host selector: x-foo.wide -> .x-foo-42.wide\n // note: we use only the scope class (.x-foo-42) and not the hostSelector\n // (x-foo) to scope :host rules; this helps make property host rules\n // have low specificity. They are overrideable by class selectors but,\n // unfortunately, not by type selectors (e.g. overriding via\n // `.special` is ok, but not by `x-foo`).\n /**\n * @param {StyleNode} rule\n * @param {RegExp} hostRx\n * @param {string} hostSelector\n * @param {string} scopeId\n */\n _scopeSelector(rule, hostRx, hostSelector, scopeId) {\n rule.transformedSelector = rule.transformedSelector || rule['selector'];\n let selector = rule.transformedSelector;\n let scope = '.' + scopeId;\n let parts = StyleUtil.splitSelectorList(selector);\n for (let i=0, l=parts.length, p; (i<l) && (p=parts[i]); i++) {\n parts[i] = p.match(hostRx) ?\n p.replace(hostSelector, scope) :\n scope + ' ' + p;\n }\n rule['selector'] = parts.join(',');\n }\n\n /**\n * @param {Element} element\n * @param {string} selector\n * @param {string} old\n */\n applyElementScopeSelector(element, selector, old) {\n let c = element.getAttribute('class') || '';\n let v = c;\n if (old) {\n v = c.replace(\n new RegExp('\\\\s*' + XSCOPE_NAME + '\\\\s*' + old + '\\\\s*', 'g'), ' ');\n }\n v += (v ? ' ' : '') + XSCOPE_NAME + ' ' + selector;\n if (c !== v) {\n StyleUtil.setElementClassRaw(element, v);\n }\n }\n\n /**\n * @param {HTMLElement} element\n * @param {Object} properties\n * @param {string} selector\n * @param {HTMLStyleElement} style\n * @return {HTMLStyleElement}\n */\n applyElementStyle(element, properties, selector, style) {\n // calculate cssText to apply\n let cssText = style ? style.textContent || '' :\n this.transformStyles(element, properties, selector);\n // if shady and we have a cached style that is not style, decrement\n let styleInfo = StyleInfo.get(element);\n let s = styleInfo.customStyle;\n if (s && !nativeShadow && (s !== style)) {\n s['_useCount']--;\n if (s['_useCount'] <= 0 && s.parentNode) {\n s.parentNode.removeChild(s);\n }\n }\n // apply styling always under native or if we generated style\n // or the cached style is not in document(!)\n if (nativeShadow) {\n // update existing style only under native\n if (styleInfo.customStyle) {\n styleInfo.customStyle.textContent = cssText;\n style = styleInfo.customStyle;\n // otherwise, if we have css to apply, do so\n } else if (cssText) {\n // apply css after the scope style of the element to help with\n // style precedence rules.\n style = StyleUtil.applyCss(cssText, selector, element.shadowRoot,\n styleInfo.placeholder);\n }\n } else {\n // shady and no cache hit\n if (!style) {\n // apply css after the scope style of the element to help with\n // style precedence rules.\n if (cssText) {\n style = StyleUtil.applyCss(cssText, selector, null,\n styleInfo.placeholder);\n }\n // shady and cache hit but not in document\n } else if (!style.parentNode) {\n if (IS_IE && cssText.indexOf('@media') > -1) {\n // @media rules may be stale in IE 10 and 11\n // refresh the text content of the style to revalidate them.\n style.textContent = cssText;\n }\n StyleUtil.applyStyle(style, null, styleInfo.placeholder);\n }\n }\n // ensure this style is our custom style and increment its use count.\n if (style) {\n style['_useCount'] = style['_useCount'] || 0;\n // increment use count if we changed styles\n if (styleInfo.customStyle != style) {\n style['_useCount']++;\n }\n styleInfo.customStyle = style;\n }\n return style;\n }\n\n /**\n * @param {Element} style\n * @param {Object} properties\n */\n applyCustomStyle(style, properties) {\n let rules = StyleUtil.rulesForStyle(/** @type {HTMLStyleElement} */(style));\n let self = this;\n style.textContent = StyleUtil.toCssText(rules, function(/** StyleNode */rule) {\n let css = rule['cssText'] = rule['parsedCssText'];\n if (rule.propertyInfo && rule.propertyInfo.cssText) {\n // remove property assignments\n // so next function isn't confused\n // NOTE: we have 3 categories of css:\n // (1) normal properties,\n // (2) custom property assignments (--foo: red;),\n // (3) custom property usage: border: var(--foo); @apply(--foo);\n // In elements, 1 and 3 are separated for efficiency; here they\n // are not and this makes this case unique.\n css = removeCustomPropAssignment(/** @type {string} */(css));\n // replace with reified properties, scenario is same as mixin\n rule['cssText'] = self.valueForProperties(css, properties);\n }\n });\n }\n}\n\n/**\n * @param {number} n\n * @param {Array<number>} bits\n */\nfunction addToBitMask(n, bits) {\n let o = parseInt(n / 32, 10);\n let v = 1 << (n % 32);\n bits[o] = (bits[o] || 0) | v;\n}\n\nexport default new StyleProperties();","/**\n@license\nCopyright (c) 2017 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 {StyleNode} from './css-parse.js'; // eslint-disable-line no-unused-vars\n\n/** @const {string} */\nconst infoKey = '__styleInfo';\n\nexport default class StyleInfo {\n /**\n * @param {Element} node\n * @return {StyleInfo}\n */\n static get(node) {\n if (node) {\n return node[infoKey];\n } else {\n return null;\n }\n }\n /**\n * @param {!Element} node\n * @param {StyleInfo} styleInfo\n * @return {StyleInfo}\n */\n static set(node, styleInfo) {\n node[infoKey] = styleInfo;\n return styleInfo;\n }\n /**\n * @param {StyleNode} ast\n * @param {Node=} placeholder\n * @param {Array<string>=} ownStylePropertyNames\n * @param {string=} elementName\n * @param {string=} typeExtension\n * @param {string=} cssBuild\n */\n constructor(ast, placeholder, ownStylePropertyNames, elementName, typeExtension, cssBuild) {\n /** @type {StyleNode} */\n this.styleRules = ast || null;\n /** @type {Node} */\n this.placeholder = placeholder || null;\n /** @type {!Array<string>} */\n this.ownStylePropertyNames = ownStylePropertyNames || [];\n /** @type {Array<Object>} */\n this.overrideStyleProperties = null;\n /** @type {string} */\n this.elementName = elementName || '';\n /** @type {string} */\n this.cssBuild = cssBuild || '';\n /** @type {string} */\n this.typeExtension = typeExtension || '';\n /** @type {Object<string, string>} */\n this.styleProperties = null;\n /** @type {?string} */\n this.scopeSelector = null;\n /** @type {HTMLStyleElement} */\n this.customStyle = null;\n }\n _getStyleRules() {\n return this.styleRules;\n }\n}\n\n/* eslint-disable-next-line no-self-assign */\nStyleInfo.prototype['_getStyleRules'] = StyleInfo.prototype._getStyleRules;\n","/**\n@license\nCopyright (c) 2017 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 {applyStylePlaceHolder} from './style-util.js';\nimport {nativeShadow} from './style-settings.js';\n\n/** @type {!Object<string, !Node>} */\nconst placeholderMap = {};\n\n/**\n * @param {string} elementName\n * @return {Node}\n */\nexport function getStylePlaceholder(elementName) {\n return placeholderMap[elementName] || null;\n}\n\n/**\n * @param {string} elementName\n */\nexport function ensureStylePlaceholder(elementName) {\n if (!placeholderMap[elementName]) {\n placeholderMap[elementName] = applyStylePlaceHolder(elementName);\n }\n}\n\n/**\n * @const {CustomElementRegistry}\n */\nconst ce = window['customElements'];\nif (ce && !nativeShadow) {\n /**\n * @const {function(this:CustomElementRegistry, string,function(new:HTMLElement),{extends: string}=)}\n */\n const origDefine = ce['define'];\n /**\n * @param {string} name\n * @param {function(new:HTMLElement)} clazz\n * @param {{extends: string}=} options\n */\n const wrappedDefine = (name, clazz, options) => {\n ensureStylePlaceholder(name);\n origDefine.call(/** @type {!CustomElementRegistry} */(ce), name, clazz, options);\n };\n ce['define'] = wrappedDefine;\n}","/**\n@license\nCopyright (c) 2017 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'use strict';\n\nexport default class StyleCache {\n constructor(typeMax = 100) {\n // map element name -> [{properties, styleElement, scopeSelector}]\n this.cache = {};\n /** @type {number} */\n this.typeMax = typeMax;\n }\n\n _validate(cacheEntry, properties, ownPropertyNames) {\n for (let idx = 0; idx < ownPropertyNames.length; idx++) {\n let pn = ownPropertyNames[idx];\n if (cacheEntry.properties[pn] !== properties[pn]) {\n return false;\n }\n }\n return true;\n }\n\n store(tagname, properties, styleElement, scopeSelector) {\n let list = this.cache[tagname] || [];\n list.push({properties, styleElement, scopeSelector});\n if (list.length > this.typeMax) {\n list.shift();\n }\n this.cache[tagname] = list;\n }\n\n fetch(tagname, properties, ownPropertyNames) {\n let list = this.cache[tagname];\n if (!list) {\n return;\n }\n // reverse list for most-recent lookups\n for (let idx = list.length - 1; idx >= 0; idx--) {\n let entry = list[idx];\n if (this._validate(entry, properties, ownPropertyNames)) {\n return entry;\n }\n }\n }\n}\n","/**\n@license\nCopyright (c) 2017 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\n/**\n * @const {!Object<string, !HTMLTemplateElement>}\n */\nconst templateMap = {};\nexport default templateMap;\n","/**\n@license\nCopyright (c) 2017 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';\nimport templateMap from './template-map.js';\nimport {StyleNode} from './css-parse.js'; // eslint-disable-line no-unused-vars\n\n/*\n * Utilities for handling invalidating apply-shim mixins for a given template.\n *\n * The invalidation strategy involves keeping track of the \"current\" version of a template's mixins, and updating that count when a mixin is invalidated.\n * The template\n */\n\n/** @const {string} */\nconst CURRENT_VERSION = '_applyShimCurrentVersion';\n\n/** @const {string} */\nconst NEXT_VERSION = '_applyShimNextVersion';\n\n/** @const {string} */\nconst VALIDATING_VERSION = '_applyShimValidatingVersion';\n\n/**\n * @const {Promise<void>}\n */\nconst promise = Promise.resolve();\n\n/**\n * @param {string} elementName\n */\nexport function invalidate(elementName){\n let template = templateMap[elementName];\n if (template) {\n invalidateTemplate(template);\n }\n}\n\n/**\n * This function can be called multiple times to mark a template invalid\n * and signal that the style inside must be regenerated.\n *\n * Use `startValidatingTemplate` to begin an asynchronous validation cycle.\n * During that cycle, call `templateIsValidating` to see if the template must\n * be revalidated\n * @param {HTMLTemplateElement} template\n */\nexport function invalidateTemplate(template) {\n // default the current version to 0\n template[CURRENT_VERSION] = template[CURRENT_VERSION] || 0;\n // ensure the \"validating for\" flag exists\n template[VALIDATING_VERSION] = template[VALIDATING_VERSION] || 0;\n // increment the next version\n template[NEXT_VERSION] = (template[NEXT_VERSION] || 0) + 1;\n}\n\n/**\n * @param {string} elementName\n * @return {boolean}\n */\nexport function isValid(elementName) {\n let template = templateMap[elementName];\n if (template) {\n return templateIsValid(template);\n }\n return true;\n}\n\n/**\n * @param {HTMLTemplateElement} template\n * @return {boolean}\n */\nexport function templateIsValid(template) {\n return template[CURRENT_VERSION] === template[NEXT_VERSION];\n}\n\n/**\n * @param {string} elementName\n * @return {boolean}\n */\nexport function isValidating(elementName) {\n let template = templateMap[elementName];\n if (template) {\n return templateIsValidating(template);\n }\n return false;\n}\n\n/**\n * Returns true if the template is currently invalid and `startValidating` has been called since the last invalidation.\n * If false, the template must be validated.\n * @param {HTMLTemplateElement} template\n * @return {boolean}\n */\nexport function templateIsValidating(template) {\n return !templateIsValid(template) && template[VALIDATING_VERSION] === template[NEXT_VERSION];\n}\n\n/**\n * the template is marked as `validating` for one microtask so that all instances\n * found in the tree crawl of `applyStyle` will update themselves,\n * but the template will only be updated once.\n * @param {string} elementName\n*/\nexport function startValidating(elementName) {\n let template = templateMap[elementName];\n startValidatingTemplate(template);\n}\n\n/**\n * Begin an asynchronous invalidation cycle.\n * This should be called after every validation of a template\n *\n * After one microtask, the template will be marked as valid until the next call to `invalidateTemplate`\n * @param {HTMLTemplateElement} template\n */\nexport function startValidatingTemplate(template) {\n // remember that the current \"next version\" is the reason for this validation cycle\n template[VALIDATING_VERSION] = template[NEXT_VERSION];\n // however, there only needs to be one async task to clear the counters\n if (!template._validating) {\n template._validating = true;\n promise.then(function() {\n // sync the current version to let future invalidations cause a refresh cycle\n template[CURRENT_VERSION] = template[NEXT_VERSION];\n template._validating = false;\n });\n }\n}\n\n/**\n * @return {boolean}\n */\nexport function elementsAreInvalid() {\n for (let elementName in templateMap) {\n let template = templateMap[elementName];\n if (!templateIsValid(template)) {\n return true;\n }\n }\n return false;\n}\n","/**\n@license\nCopyright (c) 2017 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 { MIXIN_MATCH, VAR_ASSIGN } from './common-regex.js';\n\n/**\n * @param {Element} element\n * @param {Object=} properties\n */\nexport function updateNativeProperties(element, properties) {\n // remove previous properties\n for (let p in properties) {\n // NOTE: for bc with shim, don't apply null values.\n if (p === null) {\n element.style.removeProperty(p);\n } else {\n element.style.setProperty(p, properties[p]);\n }\n }\n}\n\n/**\n * @param {Element} element\n * @param {string} property\n * @return {string}\n */\nexport function getComputedStyleValue(element, property) {\n /**\n * @const {string}\n */\n const value = window.getComputedStyle(element).getPropertyValue(property);\n if (!value) {\n return '';\n } else {\n return value.trim();\n }\n}\n\n/**\n * return true if `cssText` contains a mixin definition or consumption\n * @param {string} cssText\n * @return {boolean}\n */\nexport function 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@license\nCopyright (c) 2017 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 ScopingShim from '../src/scoping-shim.js';\nimport {nativeCssVariables, nativeShadow, cssBuild} from '../src/style-settings.js';\n\n/** @const {ScopingShim} */\nconst scopingShim = new ScopingShim();\n\nlet ApplyShim, CustomStyleInterface;\n\nif (window['ShadyCSS']) {\n ApplyShim = window['ShadyCSS']['ApplyShim'];\n CustomStyleInterface = window['ShadyCSS']['CustomStyleInterface'];\n}\n\nwindow.ShadyCSS = {\n ScopingShim: scopingShim,\n /**\n * @param {!HTMLTemplateElement} template\n * @param {string} elementName\n * @param {string=} elementExtends\n */\n prepareTemplate(template, elementName, elementExtends) {\n scopingShim.flushCustomStyles();\n scopingShim.prepareTemplate(template, elementName, elementExtends)\n },\n\n /**\n * @param {!HTMLTemplateElement} template\n * @param {string} elementName\n */\n prepareTemplateDom(template, elementName) {\n scopingShim.prepareTemplateDom(template, elementName);\n },\n\n /**\n * @param {!HTMLTemplateElement} template\n * @param {string} elementName\n * @param {string=} elementExtends\n */\n prepareTemplateStyles(template, elementName, elementExtends) {\n scopingShim.flushCustomStyles();\n scopingShim.prepareTemplateStyles(template, elementName, elementExtends)\n },\n /**\n * @param {!HTMLElement} element\n * @param {Object=} properties\n */\n styleSubtree(element, properties) {\n scopingShim.flushCustomStyles();\n scopingShim.styleSubtree(element, properties);\n },\n\n /**\n * @param {!HTMLElement} element\n */\n styleElement(element) {\n scopingShim.flushCustomStyles();\n scopingShim.styleElement(element);\n },\n\n /**\n * @param {Object=} properties\n */\n styleDocument(properties) {\n scopingShim.flushCustomStyles();\n scopingShim.styleDocument(properties);\n },\n\n flushCustomStyles() {\n scopingShim.flushCustomStyles();\n },\n\n /**\n * @param {Element} element\n * @param {string} property\n * @return {string}\n */\n getComputedStyleValue(element, property) {\n return scopingShim.getComputedStyleValue(element, property);\n },\n\n nativeCss: nativeCssVariables,\n\n nativeShadow: nativeShadow,\n\n cssBuild: cssBuild\n};\n\nif (ApplyShim) {\n window.ShadyCSS.ApplyShim = ApplyShim;\n}\n\nif (CustomStyleInterface) {\n window.ShadyCSS.CustomStyleInterface = CustomStyleInterface;\n}","/* Any copyright is dedicated to the Public Domain.\n * http://creativecommons.org/publicdomain/zero/1.0/ */\n\n /** @type {boolean|undefined} */\nWindow.prototype.forceJURL = false;\n\n(function(scope) {\n 'use strict';\n\n // feature detect for URL constructor\n var hasWorkingUrl = false;\n if (!scope.forceJURL) {\n try {\n var u = new URL('b', 'http://a');\n u.pathname = 'c%20d';\n hasWorkingUrl = u.href === 'http://a/c%20d';\n } catch(e) {}\n }\n\n if (hasWorkingUrl)\n return;\n\n var relative = Object.create(null);\n relative['ftp'] = 21;\n relative['file'] = 0;\n relative['gopher'] = 70;\n relative['http'] = 80;\n relative['https'] = 443;\n relative['ws'] = 80;\n relative['wss'] = 443;\n\n var relativePathDotMapping = Object.create(null);\n relativePathDotMapping['%2e'] = '.';\n relativePathDotMapping['.%2e'] = '..';\n relativePathDotMapping['%2e.'] = '..';\n relativePathDotMapping['%2e%2e'] = '..';\n\n function isRelativeScheme(scheme) {\n return relative[scheme] !== undefined;\n }\n\n function invalid() {\n clear.call(this);\n this._isInvalid = true;\n }\n\n function IDNAToASCII(h) {\n if ('' == h) {\n invalid.call(this)\n }\n // XXX\n return h.toLowerCase()\n }\n\n function percentEscape(c) {\n var unicode = c.charCodeAt(0);\n if (unicode > 0x20 &&\n unicode < 0x7F &&\n // \" # < > ? `\n [0x22, 0x23, 0x3C, 0x3E, 0x3F, 0x60].indexOf(unicode) == -1\n ) {\n return c;\n }\n return encodeURIComponent(c);\n }\n\n function percentEscapeQuery(c) {\n // XXX This actually needs to encode c using encoding and then\n // convert the bytes one-by-one.\n\n var unicode = c.charCodeAt(0);\n if (unicode > 0x20 &&\n unicode < 0x7F &&\n // \" # < > ` (do not escape '?')\n [0x22, 0x23, 0x3C, 0x3E, 0x60].indexOf(unicode) == -1\n ) {\n return c;\n }\n return encodeURIComponent(c);\n }\n\n var EOF = undefined,\n ALPHA = /[a-zA-Z]/,\n ALPHANUMERIC = /[a-zA-Z0-9\\+\\-\\.]/;\n\n /**\n * @param {!string} input\n * @param {?string=} stateOverride\n * @param {(URL|string)=} base\n */\n function parse(input, stateOverride, base) {\n function err(message) {\n errors.push(message)\n }\n\n var state = stateOverride || 'scheme start',\n cursor = 0,\n buffer = '',\n seenAt = false,\n seenBracket = false,\n errors = [];\n\n loop: while ((input[cursor - 1] != EOF || cursor == 0) && !this._isInvalid) {\n var c = input[cursor];\n switch (state) {\n case 'scheme start':\n if (c && ALPHA.test(c)) {\n buffer += c.toLowerCase(); // ASCII-safe\n state = 'scheme';\n } else if (!stateOverride) {\n buffer = '';\n state = 'no scheme';\n continue;\n } else {\n err('Invalid scheme.');\n break loop;\n }\n break;\n\n case 'scheme':\n if (c && ALPHANUMERIC.test(c)) {\n buffer += c.toLowerCase(); // ASCII-safe\n } else if (':' == c) {\n this._scheme = buffer;\n buffer = '';\n if (stateOverride) {\n break loop;\n }\n if (isRelativeScheme(this._scheme)) {\n this._isRelative = true;\n }\n if ('file' == this._scheme) {\n state = 'relative';\n } else if (this._isRelative && base && base._scheme == this._scheme) {\n state = 'relative or authority';\n } else if (this._isRelative) {\n state = 'authority first slash';\n } else {\n state = 'scheme data';\n }\n } else if (!stateOverride) {\n buffer = '';\n cursor = 0;\n state = 'no scheme';\n continue;\n } else if (EOF == c) {\n break loop;\n } else {\n err('Code point not allowed in scheme: ' + c)\n break loop;\n }\n break;\n\n case 'scheme data':\n if ('?' == c) {\n this._query = '?';\n state = 'query';\n } else if ('#' == c) {\n this._fragment = '#';\n state = 'fragment';\n } else {\n // XXX error handling\n if (EOF != c && '\\t' != c && '\\n' != c && '\\r' != c) {\n this._schemeData += percentEscape(c);\n }\n }\n break;\n\n case 'no scheme':\n if (!base || !(isRelativeScheme(base._scheme))) {\n err('Missing scheme.');\n invalid.call(this);\n } else {\n state = 'relative';\n continue;\n }\n break;\n\n case 'relative or authority':\n if ('/' == c && '/' == input[cursor+1]) {\n state = 'authority ignore slashes';\n } else {\n err('Expected /, got: ' + c);\n state = 'relative';\n continue\n }\n break;\n\n case 'relative':\n this._isRelative = true;\n if ('file' != this._scheme)\n this._scheme = base._scheme;\n if (EOF == c) {\n this._host = base._host;\n this._port = base._port;\n this._path = base._path.slice();\n this._query = base._query;\n this._username = base._username;\n this._password = base._password;\n break loop;\n } else if ('/' == c || '\\\\' == c) {\n if ('\\\\' == c)\n err('\\\\ is an invalid code point.');\n state = 'relative slash';\n } else if ('?' == c) {\n this._host = base._host;\n this._port = base._port;\n this._path = base._path.slice();\n this._query = '?';\n this._username = base._username;\n this._password = base._password;\n state = 'query';\n } else if ('#' == c) {\n this._host = base._host;\n this._port = base._port;\n this._path = base._path.slice();\n this._query = base._query;\n this._fragment = '#';\n this._username = base._username;\n this._password = base._password;\n state = 'fragment';\n } else {\n var nextC = input[cursor+1]\n var nextNextC = input[cursor+2]\n if (\n 'file' != this._scheme || !ALPHA.test(c) ||\n (nextC != ':' && nextC != '|') ||\n (EOF != nextNextC && '/' != nextNextC && '\\\\' != nextNextC && '?' != nextNextC && '#' != nextNextC)) {\n this._host = base._host;\n this._port = base._port;\n this._username = base._username;\n this._password = base._password;\n this._path = base._path.slice();\n this._path.pop();\n }\n state = 'relative path';\n continue;\n }\n break;\n\n case 'relative slash':\n if ('/' == c || '\\\\' == c) {\n if ('\\\\' == c) {\n err('\\\\ is an invalid code point.');\n }\n if ('file' == this._scheme) {\n state = 'file host';\n } else {\n state = 'authority ignore slashes';\n }\n } else {\n if ('file' != this._scheme) {\n this._host = base._host;\n this._port = base._port;\n this._username = base._username;\n this._password = base._password;\n }\n state = 'relative path';\n continue;\n }\n break;\n\n case 'authority first slash':\n if ('/' == c) {\n state = 'authority second slash';\n } else {\n err(\"Expected '/', got: \" + c);\n state = 'authority ignore slashes';\n continue;\n }\n break;\n\n case 'authority second slash':\n state = 'authority ignore slashes';\n if ('/' != c) {\n err(\"Expected '/', got: \" + c);\n continue;\n }\n break;\n\n case 'authority ignore slashes':\n if ('/' != c && '\\\\' != c) {\n state = 'authority';\n continue;\n } else {\n err('Expected authority, got: ' + c);\n }\n break;\n\n case 'authority':\n if ('@' == c) {\n if (seenAt) {\n err('@ already seen.');\n buffer += '%40';\n }\n seenAt = true;\n for (var i = 0; i < buffer.length; i++) {\n var cp = buffer[i];\n if ('\\t' == cp || '\\n' == cp || '\\r' == cp) {\n err('Invalid whitespace in authority.');\n continue;\n }\n // XXX check URL code points\n if (':' == cp && null === this._password) {\n this._password = '';\n continue;\n }\n var tempC = percentEscape(cp);\n (null !== this._password) ? this._password += tempC : this._username += tempC;\n }\n buffer = '';\n } else if (EOF == c || '/' == c || '\\\\' == c || '?' == c || '#' == c) {\n cursor -= buffer.length;\n buffer = '';\n state = 'host';\n continue;\n } else {\n buffer += c;\n }\n break;\n\n case 'file host':\n if (EOF == c || '/' == c || '\\\\' == c || '?' == c || '#' == c) {\n if (buffer.length == 2 && ALPHA.test(buffer[0]) && (buffer[1] == ':' || buffer[1] == '|')) {\n state = 'relative path';\n } else if (buffer.length == 0) {\n state = 'relative path start';\n } else {\n this._host = IDNAToASCII.call(this, buffer);\n buffer = '';\n state = 'relative path start';\n }\n continue;\n } else if ('\\t' == c || '\\n' == c || '\\r' == c) {\n err('Invalid whitespace in file host.');\n } else {\n buffer += c;\n }\n break;\n\n case 'host':\n case 'hostname':\n if (':' == c && !seenBracket) {\n // XXX host parsing\n this._host = IDNAToASCII.call(this, buffer);\n buffer = '';\n state = 'port';\n if ('hostname' == stateOverride) {\n break loop;\n }\n } else if (EOF == c || '/' == c || '\\\\' == c || '?' == c || '#' == c) {\n this._host = IDNAToASCII.call(this, buffer);\n buffer = '';\n state = 'relative path start';\n if (stateOverride) {\n break loop;\n }\n continue;\n } else if ('\\t' != c && '\\n' != c && '\\r' != c) {\n if ('[' == c) {\n seenBracket = true;\n } else if (']' == c) {\n seenBracket = false;\n }\n buffer += c;\n } else {\n err('Invalid code point in host/hostname: ' + c);\n }\n break;\n\n case 'port':\n if (/[0-9]/.test(c)) {\n buffer += c;\n } else if (EOF == c || '/' == c || '\\\\' == c || '?' == c || '#' == c || stateOverride) {\n if ('' != buffer) {\n var temp = parseInt(buffer, 10);\n if (temp != relative[this._scheme]) {\n this._port = temp + '';\n }\n buffer = '';\n }\n if (stateOverride) {\n break loop;\n }\n state = 'relative path start';\n continue;\n } else if ('\\t' == c || '\\n' == c || '\\r' == c) {\n err('Invalid code point in port: ' + c);\n } else {\n invalid.call(this);\n }\n break;\n\n case 'relative path start':\n if ('\\\\' == c)\n err(\"'\\\\' not allowed in path.\");\n state = 'relative path';\n if ('/' != c && '\\\\' != c) {\n continue;\n }\n break;\n\n case 'relative path':\n if (EOF == c || '/' == c || '\\\\' == c || (!stateOverride && ('?' == c || '#' == c))) {\n if ('\\\\' == c) {\n err('\\\\ not allowed in relative path.');\n }\n var tmp;\n if (tmp = relativePathDotMapping[buffer.toLowerCase()]) {\n buffer = tmp;\n }\n if ('..' == buffer) {\n this._path.pop();\n if ('/' != c && '\\\\' != c) {\n this._path.push('');\n }\n } else if ('.' == buffer && '/' != c && '\\\\' != c) {\n this._path.push('');\n } else if ('.' != buffer) {\n if ('file' == this._scheme && this._path.length == 0 && buffer.length == 2 && ALPHA.test(buffer[0]) && buffer[1] == '|') {\n buffer = buffer[0] + ':';\n }\n this._path.push(buffer);\n }\n buffer = '';\n if ('?' == c) {\n this._query = '?';\n state = 'query';\n } else if ('#' == c) {\n this._fragment = '#';\n state = 'fragment';\n }\n } else if ('\\t' != c && '\\n' != c && '\\r' != c) {\n buffer += percentEscape(c);\n }\n break;\n\n case 'query':\n if (!stateOverride && '#' == c) {\n this._fragment = '#';\n state = 'fragment';\n } else if (EOF != c && '\\t' != c && '\\n' != c && '\\r' != c) {\n this._query += percentEscapeQuery(c);\n }\n break;\n\n case 'fragment':\n if (EOF != c && '\\t' != c && '\\n' != c && '\\r' != c) {\n this._fragment += c;\n }\n break;\n }\n\n cursor++;\n }\n }\n\n function clear() {\n this._scheme = '';\n this._schemeData = '';\n this._username = '';\n this._password = null;\n this._host = '';\n this._port = '';\n this._path = [];\n this._query = '';\n this._fragment = '';\n this._isInvalid = false;\n this._isRelative = false;\n }\n\n // Does not process domain names or IP addresses.\n // Does not handle encoding for the query parameter.\n /**\n * @constructor\n * @extends {URL}\n * @param {!string} url\n * @param {(URL|string)=} base\n */\n function jURL(url, base /* , encoding */) {\n if (base !== undefined && !(base instanceof jURL))\n base = new jURL(String(base));\n\n this._url = '' + url;\n clear.call(this);\n\n var input = this._url.replace(/^[ \\t\\r\\n\\f]+|[ \\t\\r\\n\\f]+$/g, '');\n // encoding = encoding || 'utf-8'\n\n parse.call(this, input, null, base);\n }\n\n jURL.prototype = {\n toString: function() {\n return this.href;\n },\n get href() {\n if (this._isInvalid)\n return this._url;\n\n var authority = '';\n if ('' != this._username || null != this._password) {\n authority = this._username +\n (null != this._password ? ':' + this._password : '') + '@';\n }\n\n return this.protocol +\n (this._isRelative ? '//' + authority + this.host : '') +\n this.pathname + this._query + this._fragment;\n },\n set href(href) {\n clear.call(this);\n parse.call(this, href);\n },\n\n get protocol() {\n return this._scheme + ':';\n },\n set protocol(protocol) {\n if (this._isInvalid)\n return;\n parse.call(this, protocol + ':', 'scheme start');\n },\n\n get host() {\n return this._isInvalid ? '' : this._port ?\n this._host + ':' + this._port : this._host;\n },\n set host(host) {\n if (this._isInvalid || !this._isRelative)\n return;\n parse.call(this, host, 'host');\n },\n\n get hostname() {\n return this._host;\n },\n set hostname(hostname) {\n if (this._isInvalid || !this._isRelative)\n return;\n parse.call(this, hostname, 'hostname');\n },\n\n get port() {\n return this._port;\n },\n set port(port) {\n if (this._isInvalid || !this._isRelative)\n return;\n parse.call(this, port, 'port');\n },\n\n get pathname() {\n return this._isInvalid ? '' : this._isRelative ?\n '/' + this._path.join('/') : this._schemeData;\n },\n set pathname(pathname) {\n if (this._isInvalid || !this._isRelative)\n return;\n this._path = [];\n parse.call(this, pathname, 'relative path start');\n },\n\n get search() {\n return this._isInvalid || !this._query || '?' == this._query ?\n '' : this._query;\n },\n set search(search) {\n if (this._isInvalid || !this._isRelative)\n return;\n this._query = '?';\n if ('?' == search[0])\n search = search.slice(1);\n parse.call(this, search, 'query');\n },\n\n get hash() {\n return this._isInvalid || !this._fragment || '#' == this._fragment ?\n '' : this._fragment;\n },\n set hash(hash) {\n if (this._isInvalid)\n return;\n if(!hash) {\n this._fragment = '';\n return;\n } \n this._fragment = '#';\n if ('#' == hash[0])\n hash = hash.slice(1);\n parse.call(this, hash, 'fragment');\n },\n\n get origin() {\n var host;\n if (this._isInvalid || !this._scheme) {\n return '';\n }\n // javascript: Gecko returns String(\"\"), WebKit/Blink String(\"null\")\n // Gecko throws error for \"data://\"\n // data: Gecko returns \"\", Blink returns \"data://\", WebKit returns \"null\"\n // Gecko returns String(\"\") for file: mailto:\n // WebKit/Blink returns String(\"SCHEME://\") for file: mailto:\n switch (this._scheme) {\n case 'data':\n case 'file':\n case 'javascript':\n case 'mailto':\n return 'null';\n }\n host = this.host;\n if (!host) {\n return '';\n }\n return this._scheme + '://' + host;\n }\n };\n\n // Copy over the static methods\n var OriginalURL = scope.URL;\n if (OriginalURL) {\n jURL.createObjectURL = function(blob) {\n // IE extension allows a second optional options argument.\n // http://msdn.microsoft.com/en-us/library/ie/hh772302(v=vs.85).aspx\n return OriginalURL.createObjectURL.apply(OriginalURL, arguments);\n };\n jURL.revokeObjectURL = function(url) {\n OriginalURL.revokeObjectURL(url);\n };\n }\n\n scope.URL = jURL;\n\n})(window);\n","/**\n@license\nCopyright (c) 2018 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 {};\n\n// Implement Node.baseURI for IE 11\n// adapted from\n// https://github.com/webcomponents/html-imports/blob/v1.2.0/src/html-imports.js\n\n/** @type {Object|undefined} */\nconst native_baseURI = Object.getOwnPropertyDescriptor(Node.prototype, 'baseURI');\nif (!native_baseURI) {\n Object.defineProperty(Node.prototype, 'baseURI', {\n /**\n * @this {Node}\n * @return {string}\n */\n get() {\n // this.ownerDocument is `null` for documents\n const doc = this.ownerDocument || this;\n const base = /** @type {HTMLBaseElement} */ (doc.querySelector('base[href]'));\n return base && base.href || window.location.href;\n },\n configurable: true,\n enumerable: true\n });\n}\n","/**\n * @license\n * Copyright (c) 2014 The Polymer Project Authors. All rights reserved.\n * This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt\n * The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt\n * The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt\n * Code distributed by Google as part of the polymer project is also\n * subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt\n */\n\nexport {};\n\n// It's desireable to provide a default stylesheet\n// that's convenient for styling unresolved elements, but\n// it's cumbersome to have to include this manually in every page.\n// It would make sense to put inside some HTMLImport but\n// the HTMLImports polyfill does not allow loading of stylesheets\n// that block rendering. Therefore this injection is tolerated here.\n//\n// NOTE: position: relative fixes IE's failure to inherit opacity\n// when a child is not statically positioned.\nlet style = document.createElement('style');\nstyle.textContent = ''\n + 'body {'\n + 'transition: opacity ease-in 0.2s;'\n + ' } \\n'\n + 'body[unresolved] {'\n + 'opacity: 0; display: block; overflow: hidden; position: relative;'\n + ' } \\n'\n ;\nlet head = document.querySelector('head');\nhead.insertBefore(style, head.firstChild);\n","/**\n@license\nCopyright (c) 2018 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'use strict';\n\n/*\n * Polyfills loaded: HTML Imports, Custom Elements, Shady DOM/Shady CSS, platform polyfills, template\n * Used in: webcomponents bundle to load ALL the things\n */\n\nimport './webcomponents-sd-ce-pf-index.js';\n\nconst customElements = window.customElements;\n\nlet shouldFlush = false;\n/** @type {?function()} */\nlet flusher = null;\n\nif (customElements['polyfillWrapFlushCallback']) {\n customElements['polyfillWrapFlushCallback']((flush) => {\n flusher = flush;\n if (shouldFlush) {\n flush();\n }\n });\n}\n\nfunction flushAndFire() {\n if (window.HTMLTemplateElement.bootstrap) {\n window.HTMLTemplateElement.bootstrap(window.document);\n }\n flusher && flusher();\n shouldFlush = true;\n window.WebComponents.ready = true;\n document.dispatchEvent(new CustomEvent('WebComponentsReady', { bubbles: true }));\n}\n\nif (document.readyState !== 'complete') {\n // this script may come between DCL and load, so listen for both, and cancel load listener if DCL fires\n window.addEventListener('load', flushAndFire)\n window.addEventListener('DOMContentLoaded', () => {\n window.removeEventListener('load', flushAndFire);\n flushAndFire();\n });\n} else {\n flushAndFire();\n}"]}