{"version":3,"file":"polymer.min.js","sources":["../../node_modules/@polymer/polymer/lib/utils/boot.js","../../node_modules/@polymer/polymer/lib/utils/resolve-url.js","../../node_modules/@polymer/polymer/lib/utils/settings.js","../../node_modules/@polymer/polymer/lib/elements/dom-module.js","../../node_modules/@polymer/polymer/lib/utils/style-gather.js","../../node_modules/@polymer/polymer/lib/elements/custom-style.js","../../node_modules/@polymer/polymer/lib/utils/html-tag.js","../../node_modules/@polymer/polymer/lib/utils/mixin.js","../../node_modules/@polymer/polymer/lib/utils/wrap.js","../../node_modules/@polymer/polymer/lib/utils/path.js","../../node_modules/@polymer/polymer/lib/utils/case-map.js","../../node_modules/@polymer/polymer/lib/utils/async.js","../../node_modules/@polymer/polymer/lib/mixins/properties-changed.js","../../node_modules/@polymer/polymer/lib/mixins/property-accessors.js","../../node_modules/@polymer/polymer/lib/mixins/template-stamp.js","../../node_modules/@polymer/polymer/lib/mixins/property-effects.js","../../node_modules/@polymer/polymer/lib/mixins/properties-mixin.js","../../node_modules/@polymer/polymer/lib/mixins/element-mixin.js","../../node_modules/@polymer/polymer/polymer-element.js","../../node_modules/@polymer/polymer/lib/utils/debounce.js","../../node_modules/@polymer/polymer/lib/utils/gestures.js","../../node_modules/@polymer/polymer/lib/mixins/gesture-event-listeners.js","../../node_modules/@polymer/polymer/lib/utils/flush.js","../../node_modules/@polymer/polymer/lib/utils/array-splice.js","../../node_modules/@polymer/polymer/lib/utils/flattened-nodes-observer.js","../../node_modules/@polymer/polymer/lib/mixins/dir-mixin.js","../../node_modules/@polymer/polymer/lib/utils/render-status.js","../../node_modules/@polymer/polymer/lib/utils/unresolved.js","../../node_modules/@polymer/polymer/lib/legacy/polymer.dom.js","../../node_modules/@polymer/polymer/lib/utils/scope-subtree.js","../../node_modules/@polymer/polymer/lib/legacy/legacy-element-mixin.js","../../node_modules/@polymer/polymer/lib/legacy/class.js","../../node_modules/@polymer/polymer/lib/legacy/polymer-fn.js","../../node_modules/@polymer/polymer/lib/mixins/mutable-data.js","../../node_modules/@polymer/polymer/lib/utils/templatize.js","../../node_modules/@polymer/polymer/lib/legacy/templatizer-behavior.js","../../node_modules/@polymer/polymer/lib/utils/hide-template-controls.js","../../node_modules/@polymer/polymer/lib/elements/dom-bind.js","../../node_modules/@polymer/polymer/lib/elements/dom-repeat.js","../../node_modules/@polymer/polymer/lib/elements/dom-if.js","../../node_modules/@polymer/polymer/lib/elements/array-selector.js","../../node_modules/@polymer/polymer/lib/legacy/mutable-data-behavior.js","../../node_modules/@polymer/polymer/polymer-legacy.js","../../node_modules/@polymer/iron-resizable-behavior/iron-resizable-behavior.js","../../node_modules/@polymer/iron-scroll-target-behavior/iron-scroll-target-behavior.js","../../node_modules/@polymer/app-layout/helpers/helpers.js","../../node_modules/@polymer/app-layout/app-scroll-effects/app-scroll-effects-behavior.js","../../node_modules/@polymer/app-layout/app-scroll-effects/effects/blend-background.js","../../node_modules/@polymer/app-layout/app-scroll-effects/effects/fade-background.js","../../node_modules/@polymer/app-layout/app-scroll-effects/effects/waterfall.js","../../node_modules/@polymer/app-layout/app-scroll-effects/effects/resize-title.js","../../node_modules/@polymer/app-layout/app-scroll-effects/effects/parallax-background.js","../../node_modules/@polymer/app-layout/app-scroll-effects/effects/material.js","../../node_modules/@polymer/app-layout/app-scroll-effects/effects/resize-snapped-title.js","../../node_modules/@polymer/paper-tooltip/paper-tooltip.js","../../node_modules/@polymer/iron-a11y-keys-behavior/iron-a11y-keys-behavior.js","../../node_modules/@polymer/paper-ripple/paper-ripple.js","../../node_modules/@polymer/iron-collapse/iron-collapse.js","../../node_modules/@polymer/iron-flex-layout/iron-flex-layout.js","../../node_modules/@polymer/iron-meta/iron-meta.js","../../node_modules/@polymer/iron-icon/iron-icon.js","../../node_modules/@polymer/paper-styles/color.js","../../node_modules/@polymer/paper-styles/default-theme.js","../../node_modules/@polymer/iron-behaviors/iron-control-state.js","../../node_modules/@polymer/iron-behaviors/iron-button-state.js","../../node_modules/@polymer/paper-behaviors/paper-ripple-behavior.js","../../node_modules/@polymer/paper-behaviors/paper-inky-focus-behavior.js","../../node_modules/@polymer/paper-icon-button/paper-icon-button.js","../../node_modules/@polymer/iron-media-query/iron-media-query.js","../../node_modules/@polymer/app-layout/app-layout-behavior/app-layout-behavior.js","../../node_modules/@polymer/app-layout/app-drawer-layout/app-drawer-layout.js","../../node_modules/@polymer/app-layout/app-drawer/app-drawer.js","../../node_modules/@polymer/app-layout/app-header/app-header.js","../../node_modules/@polymer/app-layout/app-header-layout/app-header-layout.js","../../node_modules/@polymer/polymer/lib/mixins/disable-upgrade-mixin.js","../../node_modules/@polymer/iron-a11y-announcer/iron-a11y-announcer.js","../../node_modules/@polymer/iron-fit-behavior/iron-fit-behavior.js","../../node_modules/@polymer/iron-overlay-behavior/iron-focusables-helper.js","../../node_modules/@polymer/iron-overlay-behavior/iron-overlay-backdrop.js","../../node_modules/@polymer/iron-overlay-behavior/iron-overlay-manager.js","../../node_modules/@polymer/iron-overlay-behavior/iron-scroll-manager.js","../../node_modules/@polymer/iron-overlay-behavior/iron-overlay-behavior.js","../../node_modules/@polymer/paper-toast/paper-toast.js","../../node_modules/@polymer/font-roboto/roboto.js","../../node_modules/@polymer/paper-styles/typography.js","../../node_modules/@polymer/paper-styles/shadow.js","../../node_modules/@polymer/paper-dialog-behavior/paper-dialog-shared-styles.js","../../node_modules/@polymer/neon-animation/neon-animatable-behavior.js","../../node_modules/@polymer/neon-animation/neon-animation-runner-behavior.js","../../node_modules/@polymer/paper-dialog-behavior/paper-dialog-behavior.js","../../node_modules/@polymer/paper-dialog/paper-dialog.js","../../node_modules/@polymer/iron-iconset-svg/iron-iconset-svg.js","../../node_modules/@polymer/paper-tabs/paper-tabs-icons.js","../../node_modules/@polymer/paper-tabs/paper-tab.js","../../node_modules/@polymer/iron-selector/iron-selection.js","../../node_modules/@polymer/iron-selector/iron-selectable.js","../../node_modules/@polymer/iron-selector/iron-multi-selectable.js","../../node_modules/@polymer/iron-menu-behavior/iron-menu-behavior.js","../../node_modules/@polymer/iron-menu-behavior/iron-menubar-behavior.js","../../node_modules/@polymer/paper-tabs/paper-tabs.js","../../node_modules/@polymer/iron-list/iron-list.js","../../node_modules/@polymer/paper-spinner/paper-spinner-styles.js","../../node_modules/@polymer/paper-spinner/paper-spinner-behavior.js","../../node_modules/@polymer/paper-spinner/paper-spinner-lite.js"],"sourcesContent":["/**\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/* eslint-disable no-unused-vars */\n/**\n * When using Closure Compiler, JSCompiler_renameProperty(property, object) is replaced by the munged name for object[property]\n * We cannot alias this function, so we have to use a small shim that has the same behavior when not compiling.\n *\n * @param {string} prop Property name\n * @param {?Object} obj Reference object\n * @return {string} Potentially renamed property name\n */\nwindow.JSCompiler_renameProperty = function(prop, obj) {\n return prop;\n};\n/* eslint-enable */\n\nexport {};\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*/\nimport './boot.js';\n\nlet CSS_URL_RX = /(url\\()([^)]*)(\\))/g;\nlet ABS_URL = /(^\\/[^\\/])|(^#)|(^[\\w-\\d]*:)/;\nlet workingURL;\nlet resolveDoc;\n/**\n * Resolves the given URL against the provided `baseUri'.\n *\n * Note that this function performs no resolution for URLs that start\n * with `/` (absolute URLs) or `#` (hash identifiers). For general purpose\n * URL resolution, use `window.URL`.\n *\n * @param {string} url Input URL to resolve\n * @param {?string=} baseURI Base URI to resolve the URL against\n * @return {string} resolved URL\n */\nexport function resolveUrl(url, baseURI) {\n if (url && ABS_URL.test(url)) {\n return url;\n }\n if (url === '//') {\n return url;\n }\n // Lazy feature detection.\n if (workingURL === undefined) {\n workingURL = false;\n try {\n const u = new URL('b', 'http://a');\n u.pathname = 'c%20d';\n workingURL = (u.href === 'http://a/c%20d');\n } catch (e) {\n // silently fail\n }\n }\n if (!baseURI) {\n baseURI = document.baseURI || window.location.href;\n }\n if (workingURL) {\n try {\n return (new URL(url, baseURI)).href;\n } catch (e) {\n // Bad url or baseURI structure. Do not attempt to resolve.\n return url;\n }\n }\n // Fallback to creating an anchor into a disconnected document.\n if (!resolveDoc) {\n resolveDoc = document.implementation.createHTMLDocument('temp');\n resolveDoc.base = resolveDoc.createElement('base');\n resolveDoc.head.appendChild(resolveDoc.base);\n resolveDoc.anchor = resolveDoc.createElement('a');\n resolveDoc.body.appendChild(resolveDoc.anchor);\n }\n resolveDoc.base.href = baseURI;\n resolveDoc.anchor.href = url;\n return resolveDoc.anchor.href || url;\n\n}\n\n/**\n * Resolves any relative URL's in the given CSS text against the provided\n * `ownerDocument`'s `baseURI`.\n *\n * @param {string} cssText CSS text to process\n * @param {string} baseURI Base URI to resolve the URL against\n * @return {string} Processed CSS text with resolved URL's\n */\nexport function resolveCss(cssText, baseURI) {\n return cssText.replace(CSS_URL_RX, function(m, pre, url, post) {\n return pre + '\\'' +\n resolveUrl(url.replace(/[\"']/g, ''), baseURI) +\n '\\'' + post;\n });\n}\n\n/**\n * Returns a path from a given `url`. The path includes the trailing\n * `/` from the url.\n *\n * @param {string} url Input URL to transform\n * @return {string} resolved path\n */\nexport function pathFromUrl(url) {\n return url.substring(0, url.lastIndexOf('/') + 1);\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*/\nimport './boot.js';\n\nimport { pathFromUrl } from './resolve-url.js';\nexport const useShadow = !(window.ShadyDOM);\nexport const useNativeCSSProperties = Boolean(!window.ShadyCSS || window.ShadyCSS.nativeCss);\nexport const useNativeCustomElements = !(window.customElements.polyfillWrapFlushCallback);\n\n\n/**\n * Globally settable property that is automatically assigned to\n * `ElementMixin` instances, useful for binding in templates to\n * make URL's relative to an application's root. Defaults to the main\n * document URL, but can be overridden by users. It may be useful to set\n * `rootPath` to provide a stable application mount path when\n * using client side routing.\n */\nexport let rootPath = pathFromUrl(document.baseURI || window.location.href);\n\n/**\n * Sets the global rootPath property used by `ElementMixin` and\n * available via `rootPath`.\n *\n * @param {string} path The new root path\n * @return {void}\n */\nexport const setRootPath = function(path) {\n rootPath = path;\n};\n\n/**\n * A global callback used to sanitize any value before inserting it into the DOM.\n * The callback signature is:\n *\n * function sanitizeDOMValue(value, name, type, node) { ... }\n *\n * Where:\n *\n * `value` is the value to sanitize.\n * `name` is the name of an attribute or property (for example, href).\n * `type` indicates where the value is being inserted: one of property, attribute, or text.\n * `node` is the node where the value is being inserted.\n *\n * @type {(function(*,string,string,Node):*)|undefined}\n */\nexport let sanitizeDOMValue = window.Polymer && window.Polymer.sanitizeDOMValue || undefined;\n\n/**\n * Sets the global sanitizeDOMValue available via this module's exported\n * `sanitizeDOMValue` variable.\n *\n * @param {(function(*,string,string,Node):*)|undefined} newSanitizeDOMValue the global sanitizeDOMValue callback\n * @return {void}\n */\nexport const setSanitizeDOMValue = function(newSanitizeDOMValue) {\n sanitizeDOMValue = newSanitizeDOMValue;\n};\n\n/**\n * Globally settable property to make Polymer Gestures use passive TouchEvent listeners when recognizing gestures.\n * When set to `true`, gestures made from touch will not be able to prevent scrolling, allowing for smoother\n * scrolling performance.\n * Defaults to `false` for backwards compatibility.\n */\nexport let passiveTouchGestures = false;\n\n/**\n * Sets `passiveTouchGestures` globally for all elements using Polymer Gestures.\n *\n * @param {boolean} usePassive enable or disable passive touch gestures globally\n * @return {void}\n */\nexport const setPassiveTouchGestures = function(usePassive) {\n passiveTouchGestures = usePassive;\n};\n\n/**\n * Setting to ensure Polymer template evaluation only occurs based on tempates\n * defined in trusted script. When true, `` re-registration is\n * disallowed, `` is disabled, and ``/``\n * templates will only evaluate in the context of a trusted element template.\n */\nexport let strictTemplatePolicy = false;\n\n/**\n * Sets `strictTemplatePolicy` globally for all elements\n *\n * @param {boolean} useStrictPolicy enable or disable strict template policy\n * globally\n * @return {void}\n */\nexport const setStrictTemplatePolicy = function(useStrictPolicy) {\n strictTemplatePolicy = useStrictPolicy;\n};\n\n/**\n * Setting to enable dom-module lookup from Polymer.Element. By default,\n * templates must be defined in script using the `static get template()`\n * getter and the `html` tag function. To enable legacy loading of templates\n * via dom-module, set this flag to true.\n */\nexport let allowTemplateFromDomModule = false;\n\n/**\n * Sets `lookupTemplateFromDomModule` globally for all elements\n *\n * @param {boolean} allowDomModule enable or disable template lookup\n * globally\n * @return {void}\n */\nexport const setAllowTemplateFromDomModule = function(allowDomModule) {\n allowTemplateFromDomModule = allowDomModule;\n};\n\n/**\n * Setting to skip processing style includes and re-writing urls in css styles.\n * Normally \"included\" styles are pulled into the element and all urls in styles\n * are re-written to be relative to the containing script url.\n * If no includes or relative urls are used in styles, these steps can be\n * skipped as an optimization.\n */\nexport let legacyOptimizations = false;\n\n/**\n * Sets `legacyOptimizations` globally for all elements to enable optimizations\n * when only legacy based elements are used.\n *\n * @param {boolean} useLegacyOptimizations enable or disable legacy optimizations\n * includes and url rewriting\n * @return {void}\n */\nexport const setLegacyOptimizations = function(useLegacyOptimizations) {\n legacyOptimizations = useLegacyOptimizations;\n};\n\n/**\n * Setting to perform initial rendering synchronously when running under ShadyDOM.\n * This matches the behavior of Polymer 1.\n */\nexport let syncInitialRender = false;\n\n/**\n * Sets `syncInitialRender` globally for all elements to enable synchronous\n * initial rendering.\n *\n * @param {boolean} useSyncInitialRender enable or disable synchronous initial\n * rendering globally.\n * @return {void}\n */\nexport const setSyncInitialRender = function(useSyncInitialRender) {\n syncInitialRender = useSyncInitialRender;\n};\n\n/**\n * Setting to cancel synthetic click events fired by older mobile browsers. Modern browsers\n * no longer fire synthetic click events, and the cancellation behavior can interfere\n * when programmatically clicking on elements.\n */\nexport let cancelSyntheticClickEvents = true;\n\n/**\n * Sets `setCancelSyntheticEvents` globally for all elements to cancel synthetic click events.\n *\n * @param {boolean} useCancelSyntheticClickEvents enable or disable cancelling synthetic\n * events\n * @return {void}\n */\nexport const setCancelSyntheticClickEvents = function(useCancelSyntheticClickEvents) {\n cancelSyntheticClickEvents = useCancelSyntheticClickEvents;\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*/\nimport '../utils/boot.js';\n\nimport { resolveUrl, pathFromUrl } from '../utils/resolve-url.js';\nimport { strictTemplatePolicy } from '../utils/settings.js';\n\nlet modules = {};\nlet lcModules = {};\n/**\n * Sets a dom-module into the global registry by id.\n *\n * @param {string} id dom-module id\n * @param {DomModule} module dom-module instance\n * @return {void}\n */\nfunction setModule(id, module) {\n // store id separate from lowercased id so that\n // in all cases mixedCase id will stored distinctly\n // and lowercase version is a fallback\n modules[id] = lcModules[id.toLowerCase()] = module;\n}\n/**\n * Retrieves a dom-module from the global registry by id.\n *\n * @param {string} id dom-module id\n * @return {DomModule!} dom-module instance\n */\nfunction findModule(id) {\n return modules[id] || lcModules[id.toLowerCase()];\n}\n\nfunction styleOutsideTemplateCheck(inst) {\n if (inst.querySelector('style')) {\n console.warn('dom-module %s has style outside template', inst.id);\n }\n}\n\n/**\n * The `dom-module` element registers the dom it contains to the name given\n * by the module's id attribute. It provides a unified database of dom\n * accessible via its static `import` API.\n *\n * A key use case of `dom-module` is for providing custom element `