summaryrefslogtreecommitdiff
path: root/chromium/third_party/polymer
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2019-02-13 15:05:36 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2019-02-14 10:33:47 +0000
commite684a3455bcc29a6e3e66a004e352dea4e1141e7 (patch)
treed55b4003bde34d7d05f558f02cfd82b2a66a7aac /chromium/third_party/polymer
parent2b94bfe47ccb6c08047959d1c26e392919550e86 (diff)
downloadqtwebengine-chromium-e684a3455bcc29a6e3e66a004e352dea4e1141e7.tar.gz
BASELINE: Update Chromium to 72.0.3626.110 and Ninja to 1.9.0
Change-Id: Ic57220b00ecc929a893c91f5cc552f5d3e99e922 Reviewed-by: Michael BrĂ¼ning <michael.bruning@qt.io>
Diffstat (limited to 'chromium/third_party/polymer')
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/iron-autogrow-textarea/BUILD.gn14
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/iron-autogrow-textarea/bower.json63
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/iron-autogrow-textarea/iron-autogrow-textarea-extracted.js262
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/iron-autogrow-textarea/iron-autogrow-textarea.html105
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/iron-checked-element-behavior/BUILD.gn14
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/iron-checked-element-behavior/bower.json55
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/iron-checked-element-behavior/iron-checked-element-behavior-extracted.js102
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/iron-checked-element-behavior/iron-checked-element-behavior.html13
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/iron-list/iron-list-extracted.js35
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-behaviors/BUILD.gn7
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-behaviors/paper-checked-element-behavior-extracted.js41
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-behaviors/paper-checked-element-behavior.html13
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-input/BUILD.gn35
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-input/all-imports.html12
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input-behavior-extracted.js579
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input-behavior.html13
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input-char-counter-extracted.js41
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input-char-counter.html55
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input-container.html4
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input-extracted.js54
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input.html195
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-textarea-extracted.js77
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-textarea.html68
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-item/BUILD.gn9
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-item/all-imports.html13
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-item/paper-item-body-extracted.js3
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-item/paper-item-body.html77
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-item/paper-item-extracted.js7
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-item/paper-item.html100
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-listbox/BUILD.gn13
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-listbox/bower.json58
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-listbox/paper-listbox-extracted.js13
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-listbox/paper-listbox.html80
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-radio-group/BUILD.gn14
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-radio-group/bower.json61
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-radio-group/paper-radio-group-extracted.js110
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-radio-group/paper-radio-group.html70
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-slider/BUILD.gn1
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/paper-slider/paper-slider.html6
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/polymer2/bower.json45
-rw-r--r--chromium/third_party/polymer/v1_0/components-chromium/polymer2/polymer-extracted.js8
41 files changed, 85 insertions, 2460 deletions
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/iron-autogrow-textarea/BUILD.gn b/chromium/third_party/polymer/v1_0/components-chromium/iron-autogrow-textarea/BUILD.gn
deleted file mode 100644
index 390c4f6f288..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/iron-autogrow-textarea/BUILD.gn
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright 2018 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-#
-# NOTE: Created with generate_gn.py, please do not edit.
-
-import("//third_party/closure_compiler/compile_js.gni")
-
-js_library("iron-autogrow-textarea-extracted") {
- deps = [
- "../iron-behaviors:iron-control-state-extracted",
- "../iron-validatable-behavior:iron-validatable-behavior-extracted",
- ]
-}
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/iron-autogrow-textarea/bower.json b/chromium/third_party/polymer/v1_0/components-chromium/iron-autogrow-textarea/bower.json
deleted file mode 100644
index 1ed77375e4b..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/iron-autogrow-textarea/bower.json
+++ /dev/null
@@ -1,63 +0,0 @@
-{
- "name": "iron-autogrow-textarea",
- "version": "2.1.1",
- "description": "A textarea element that automatically grows with input",
- "authors": [
- "The Polymer Authors"
- ],
- "keywords": [
- "web-components",
- "polymer",
- "input",
- "textarea"
- ],
- "main": "iron-autogrow-textarea.html",
- "private": true,
- "repository": {
- "type": "git",
- "url": "git://github.com/PolymerElements/iron-autogrow-textarea.git"
- },
- "license": "http://polymer.github.io/LICENSE.txt",
- "homepage": "https://github.com/PolymerElements/iron-autogrow-textarea",
- "ignore": [],
- "dependencies": {
- "iron-behaviors": "PolymerElements/iron-behaviors#1 - 2",
- "iron-flex-layout": "PolymerElements/iron-flex-layout#1 - 2",
- "iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#1 - 2",
- "polymer": "Polymer/polymer#1.9 - 2"
- },
- "devDependencies": {
- "iron-component-page": "PolymerElements/iron-component-page#1 - 2",
- "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2",
- "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2",
- "paper-styles": "PolymerElements/paper-styles#1 - 2",
- "test-fixture": "PolymerElements/test-fixture#^3.0.0-rc.1",
- "web-component-tester": "^6.0.0",
- "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0"
- },
- "variants": {
- "1.x": {
- "dependencies": {
- "iron-behaviors": "PolymerElements/iron-behaviors#^1.0.0",
- "iron-flex-layout": "PolymerElements/iron-flex-layout#^1.0.0",
- "iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#^1.0.0",
- "polymer": "Polymer/polymer#^1.9"
- },
- "devDependencies": {
- "iron-component-page": "PolymerElements/iron-component-page#^1.0.0",
- "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0",
- "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0",
- "paper-styles": "PolymerElements/paper-styles#^1.0.0",
- "test-fixture": "PolymerElements/test-fixture#^1.0.0",
- "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0",
- "web-component-tester": "Polymer/web-component-tester#^4.0.0"
- },
- "resolutions": {
- "webcomponentsjs": "^0.7"
- }
- }
- },
- "resolutions": {
- "webcomponentsjs": "^1.0.0"
- }
-}
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/iron-autogrow-textarea/iron-autogrow-textarea-extracted.js b/chromium/third_party/polymer/v1_0/components-chromium/iron-autogrow-textarea/iron-autogrow-textarea-extracted.js
deleted file mode 100644
index 274d3ff2075..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/iron-autogrow-textarea/iron-autogrow-textarea-extracted.js
+++ /dev/null
@@ -1,262 +0,0 @@
-Polymer({
-
- is: 'iron-autogrow-textarea',
-
- behaviors: [
- Polymer.IronValidatableBehavior,
- Polymer.IronControlState
- ],
-
- properties: {
- /**
- * Use this property instead of `bind-value` for two-way data binding.
- * @type {string|number}
- */
- value: {
- observer: '_valueChanged',
- type: String,
- notify: true
- },
-
- /**
- * This property is deprecated, and just mirrors `value`. Use `value` instead.
- * @type {string|number}
- */
- bindValue: {
- observer: '_bindValueChanged',
- type: String,
- notify: true
- },
-
- /**
- * The initial number of rows.
- *
- * @attribute rows
- * @type number
- * @default 1
- */
- rows: {
- type: Number,
- value: 1,
- observer: '_updateCached'
- },
-
- /**
- * The maximum number of rows this element can grow to until it
- * scrolls. 0 means no maximum.
- *
- * @attribute maxRows
- * @type number
- * @default 0
- */
- maxRows: {
- type: Number,
- value: 0,
- observer: '_updateCached'
- },
-
- /**
- * Bound to the textarea's `autocomplete` attribute.
- */
- autocomplete: {
- type: String,
- value: 'off'
- },
-
- /**
- * Bound to the textarea's `autofocus` attribute.
- */
- autofocus: {
- type: Boolean,
- value: false
- },
-
- /**
- * Bound to the textarea's `inputmode` attribute.
- */
- inputmode: {
- type: String
- },
-
- /**
- * Bound to the textarea's `placeholder` attribute.
- */
- placeholder: {
- type: String
- },
-
- /**
- * Bound to the textarea's `readonly` attribute.
- */
- readonly: {
- type: String
- },
-
- /**
- * Set to true to mark the textarea as required.
- */
- required: {
- type: Boolean
- },
-
- /**
- * The minimum length of the input value.
- */
- minlength: {
- type: Number
- },
-
- /**
- * The maximum length of the input value.
- */
- maxlength: {
- type: Number
- },
-
- /**
- * Bound to the textarea's `aria-label` attribute.
- */
- label: {
- type: String
- }
-
- },
-
- listeners: {
- 'input': '_onInput'
- },
-
- /**
- * Returns the underlying textarea.
- * @type HTMLTextAreaElement
- */
- get textarea() {
- return this.$.textarea;
- },
-
- /**
- * Returns textarea's selection start.
- * @type Number
- */
- get selectionStart() {
- return this.$.textarea.selectionStart;
- },
-
- /**
- * Returns textarea's selection end.
- * @type Number
- */
- get selectionEnd() {
- return this.$.textarea.selectionEnd;
- },
-
- /**
- * Sets the textarea's selection start.
- */
- set selectionStart(value) {
- this.$.textarea.selectionStart = value;
- },
-
- /**
- * Sets the textarea's selection end.
- */
- set selectionEnd(value) {
- this.$.textarea.selectionEnd = value;
- },
-
- attached: function() {
- /* iOS has an arbitrary left margin of 3px that isn't present
- * in any other browser, and means that the paper-textarea's cursor
- * overlaps the label.
- * See https://github.com/PolymerElements/paper-input/issues/468.
- */
- var IS_IOS = navigator.userAgent.match(/iP(?:[oa]d|hone)/);
- if (IS_IOS) {
- this.$.textarea.style.marginLeft = '-3px';
- }
- },
-
- /**
- * Returns true if `value` is valid. The validator provided in `validator`
- * will be used first, if it exists; otherwise, the `textarea`'s validity
- * is used.
- * @return {boolean} True if the value is valid.
- */
- validate: function() {
- // Use the nested input's native validity.
- var valid = this.$.textarea.validity.valid;
-
- // Only do extra checking if the browser thought this was valid.
- if (valid) {
- // Empty, required input is invalid
- if (this.required && this.value === '') {
- valid = false;
- } else if (this.hasValidator()) {
- valid = Polymer.IronValidatableBehavior.validate.call(this, this.value);
- }
- }
-
- this.invalid = !valid;
- this.fire('iron-input-validate');
- return valid;
- },
-
- _bindValueChanged: function(bindValue) {
- this.value = bindValue;
- },
-
- _valueChanged: function(value) {
- var textarea = this.textarea;
- if (!textarea) {
- return;
- }
-
- // If the bindValue changed manually, then we need to also update
- // the underlying textarea's value. Otherwise this change was probably
- // generated from the _onInput handler, and the two values are already
- // the same.
- if (textarea.value !== value) {
- textarea.value = !(value || value === 0) ? '' : value;
- }
-
- this.bindValue = value;
- this.$.mirror.innerHTML = this._valueForMirror();
-
- // Manually notify because we don't want to notify until after setting value.
- this.fire('bind-value-changed', {value: this.bindValue});
- },
-
- _onInput: function(event) {
- var eventPath = Polymer.dom(event).path;
- this.value = eventPath ? eventPath[0].value : event.target.value;
- },
-
- _constrain: function(tokens) {
- var _tokens;
- tokens = tokens || [''];
- // Enforce the min and max heights for a multiline input to avoid measurement
- if (this.maxRows > 0 && tokens.length > this.maxRows) {
- _tokens = tokens.slice(0, this.maxRows);
- } else {
- _tokens = tokens.slice(0);
- }
- while (this.rows > 0 && _tokens.length < this.rows) {
- _tokens.push('');
- }
- // Use &#160; instead &nbsp; of to allow this element to be used in XHTML.
- return _tokens.join('<br/>') + '&#160;';
- },
-
- _valueForMirror: function() {
- var input = this.textarea;
- if (!input) {
- return;
- }
- this.tokens = (input && input.value) ? input.value.replace(/&/gm, '&amp;').replace(/"/gm, '&quot;').replace(/'/gm, '&#39;').replace(/</gm, '&lt;').replace(/>/gm, '&gt;').split('\n') : [''];
- return this._constrain(this.tokens);
- },
-
- _updateCached: function() {
- this.$.mirror.innerHTML = this._constrain(this.tokens);
- },
- }); \ No newline at end of file
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/iron-autogrow-textarea/iron-autogrow-textarea.html b/chromium/third_party/polymer/v1_0/components-chromium/iron-autogrow-textarea/iron-autogrow-textarea.html
deleted file mode 100644
index 132bbded39d..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/iron-autogrow-textarea/iron-autogrow-textarea.html
+++ /dev/null
@@ -1,105 +0,0 @@
-<!--
-@license
-Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
-This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
-The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
-The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
-Code distributed by Google as part of the polymer project is also
-subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
---><html><head><link rel="import" href="../polymer/polymer.html">
-<link rel="import" href="../iron-behaviors/iron-control-state.html">
-<link rel="import" href="../iron-flex-layout/iron-flex-layout.html">
-<link rel="import" href="../iron-validatable-behavior/iron-validatable-behavior.html">
-
-<!--
-`iron-autogrow-textarea` is an element containing a textarea that grows in height as more
-lines of input are entered. Unless an explicit height or the `maxRows` property is set, it will
-never scroll.
-
-Example:
-
- <iron-autogrow-textarea></iron-autogrow-textarea>
-
-### Styling
-
-The following custom properties and mixins are available for styling:
-
-Custom property | Description | Default
-----------------|-------------|----------
-`--iron-autogrow-textarea` | Mixin applied to the textarea | `{}`
-`--iron-autogrow-textarea-placeholder` | Mixin applied to the textarea placeholder | `{}`
-
-@group Iron Elements
-@hero hero.svg
-@demo demo/index.html
--->
-
-</head><body><dom-module id="iron-autogrow-textarea">
- <template>
- <style>
- :host {
- display: inline-block;
- position: relative;
- width: 400px;
- border: 1px solid;
- padding: 2px;
- -webkit-appearance: textarea;
- overflow: hidden;
- }
-
- .mirror-text {
- visibility: hidden;
- word-wrap: break-word;
- @apply --iron-autogrow-textarea;
- }
-
- .fit {
- @apply --layout-fit;
- }
-
- textarea {
- position: relative;
- outline: none;
- border: none;
- resize: none;
- background: inherit;
- color: inherit;
- /* see comments in template */
- width: 100%;
- height: 100%;
- font-size: inherit;
- font-family: inherit;
- line-height: inherit;
- text-align: inherit;
- @apply --iron-autogrow-textarea;
- }
-
- textarea::-webkit-input-placeholder {
- @apply --iron-autogrow-textarea-placeholder;
- }
-
- textarea:-moz-placeholder {
- @apply --iron-autogrow-textarea-placeholder;
- }
-
- textarea::-moz-placeholder {
- @apply --iron-autogrow-textarea-placeholder;
- }
-
- textarea:-ms-input-placeholder {
- @apply --iron-autogrow-textarea-placeholder;
- }
- </style>
-
- <!-- the mirror sizes the input/textarea so it grows with typing -->
- <!-- use &#160; instead &nbsp; of to allow this element to be used in XHTML -->
- <div id="mirror" class="mirror-text" aria-hidden="true">&nbsp;</div>
-
- <!-- size the input/textarea with a div, because the textarea has intrinsic size in ff -->
- <div class="textarea-container fit">
- <textarea id="textarea" name$="[[name]]" aria-label$="[[label]]" autocomplete$="[[autocomplete]]" autofocus$="[[autofocus]]" inputmode$="[[inputmode]]" placeholder$="[[placeholder]]" readonly$="[[readonly]]" required$="[[required]]" disabled$="[[disabled]]" rows$="[[rows]]" minlength$="[[minlength]]" maxlength$="[[maxlength]]"></textarea>
- </div>
- </template>
-</dom-module>
-
-<script src="iron-autogrow-textarea-extracted.js"></script></body></html> \ No newline at end of file
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/iron-checked-element-behavior/BUILD.gn b/chromium/third_party/polymer/v1_0/components-chromium/iron-checked-element-behavior/BUILD.gn
deleted file mode 100644
index 25dca59f64f..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/iron-checked-element-behavior/BUILD.gn
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright 2018 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-#
-# NOTE: Created with generate_gn.py, please do not edit.
-
-import("//third_party/closure_compiler/compile_js.gni")
-
-js_library("iron-checked-element-behavior-extracted") {
- deps = [
- "../iron-form-element-behavior:iron-form-element-behavior-extracted",
- "../iron-validatable-behavior:iron-validatable-behavior-extracted",
- ]
-}
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/iron-checked-element-behavior/bower.json b/chromium/third_party/polymer/v1_0/components-chromium/iron-checked-element-behavior/bower.json
deleted file mode 100644
index 95768596315..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/iron-checked-element-behavior/bower.json
+++ /dev/null
@@ -1,55 +0,0 @@
-{
- "name": "iron-checked-element-behavior",
- "version": "2.0.0",
- "description": "Implements an element that has a checked attribute and can be added to a form",
- "authors": "The Polymer Authors",
- "keywords": [
- "web-components",
- "polymer",
- "iron",
- "behavior"
- ],
- "main": "iron-checked-element-behavior.html",
- "private": true,
- "repository": {
- "type": "git",
- "url": "git://github.com/PolymerElements/iron-checked-element-behavior.git"
- },
- "license": "http://polymer.github.io/LICENSE.txt",
- "homepage": "https://github.com/PolymerElements/iron-checked-element-behavior",
- "ignore": [],
- "dependencies": {
- "polymer": "Polymer/polymer#1.9 - 2",
- "iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#1 - 2",
- "iron-form-element-behavior": "PolymerElements/iron-form-element-behavior#1 - 2"
- },
- "devDependencies": {
- "paper-styles": "PolymerElements/paper-styles#1 - 2",
- "paper-button": "PolymerElements/paper-button#1 - 2",
- "iron-component-page": "PolymerElements/iron-component-page#1 - 2",
- "web-component-tester": "^6.0.0",
- "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0"
- },
- "variants": {
- "1.x": {
- "dependencies": {
- "polymer": "Polymer/polymer#^1.9",
- "iron-validatable-behavior": "PolymerElements/iron-validatable-behavior#^1.0.0",
- "iron-form-element-behavior": "PolymerElements/iron-form-element-behavior#^1.0.0"
- },
- "devDependencies": {
- "paper-styles": "PolymerElements/paper-styles#^1.0.0",
- "paper-button": "PolymerElements/paper-button#^1.0.0",
- "iron-component-page": "PolymerElements/iron-component-page#^1.0.0",
- "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0",
- "web-component-tester": "Polymer/web-component-tester#^4.0.0"
- },
- "resolutions": {
- "webcomponentsjs": "^0.7"
- }
- }
- },
- "resolutions": {
- "webcomponentsjs": "^1.0.0"
- }
-}
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/iron-checked-element-behavior/iron-checked-element-behavior-extracted.js b/chromium/third_party/polymer/v1_0/components-chromium/iron-checked-element-behavior/iron-checked-element-behavior-extracted.js
deleted file mode 100644
index f6acdd050d2..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/iron-checked-element-behavior/iron-checked-element-behavior-extracted.js
+++ /dev/null
@@ -1,102 +0,0 @@
-/**
- * Use `Polymer.IronCheckedElementBehavior` to implement a custom element
- * that has a `checked` property, which can be used for validation if the
- * element is also `required`. Element instances implementing this behavior
- * will also be registered for use in an `iron-form` element.
- *
- * @demo demo/index.html
- * @polymerBehavior Polymer.IronCheckedElementBehavior
- */
- Polymer.IronCheckedElementBehaviorImpl = {
-
- properties: {
- /**
- * Fired when the checked state changes.
- *
- * @event iron-change
- */
-
- /**
- * Gets or sets the state, `true` is checked and `false` is unchecked.
- */
- checked: {
- type: Boolean,
- value: false,
- reflectToAttribute: true,
- notify: true,
- observer: '_checkedChanged'
- },
-
- /**
- * If true, the button toggles the active state with each tap or press
- * of the spacebar.
- */
- toggles: {
- type: Boolean,
- value: true,
- reflectToAttribute: true
- },
-
- /* Overriden from Polymer.IronFormElementBehavior */
- value: {
- type: String,
- value: 'on',
- observer: '_valueChanged'
- }
- },
-
- observers: [
- '_requiredChanged(required)'
- ],
-
- created: function() {
- // Used by `iron-form` to handle the case that an element with this behavior
- // doesn't have a role of 'checkbox' or 'radio', but should still only be
- // included when the form is serialized if `this.checked === true`.
- this._hasIronCheckedElementBehavior = true;
- },
-
- /**
- * Returns false if the element is required and not checked, and true otherwise.
- * @param {*=} _value Ignored.
- * @return {boolean} true if `required` is false or if `checked` is true.
- */
- _getValidity: function(_value) {
- return this.disabled || !this.required || this.checked;
- },
-
- /**
- * Update the aria-required label when `required` is changed.
- */
- _requiredChanged: function() {
- if (this.required) {
- this.setAttribute('aria-required', 'true');
- } else {
- this.removeAttribute('aria-required');
- }
- },
-
- /**
- * Fire `iron-changed` when the checked state changes.
- */
- _checkedChanged: function() {
- this.active = this.checked;
- this.fire('iron-change');
- },
-
- /**
- * Reset value to 'on' if it is set to `undefined`.
- */
- _valueChanged: function() {
- if (this.value === undefined || this.value === null) {
- this.value = 'on';
- }
- }
- };
-
- /** @polymerBehavior Polymer.IronCheckedElementBehavior */
- Polymer.IronCheckedElementBehavior = [
- Polymer.IronFormElementBehavior,
- Polymer.IronValidatableBehavior,
- Polymer.IronCheckedElementBehaviorImpl
- ]; \ No newline at end of file
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/iron-checked-element-behavior/iron-checked-element-behavior.html b/chromium/third_party/polymer/v1_0/components-chromium/iron-checked-element-behavior/iron-checked-element-behavior.html
deleted file mode 100644
index ba18b4ad80a..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/iron-checked-element-behavior/iron-checked-element-behavior.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!--
-@license
-Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
-This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
-The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
-The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
-Code distributed by Google as part of the polymer project is also
-subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
---><html><head><link rel="import" href="../polymer/polymer.html">
-<link rel="import" href="../iron-validatable-behavior/iron-validatable-behavior.html">
-<link rel="import" href="../iron-form-element-behavior/iron-form-element-behavior.html">
-
-</head><body><script src="iron-checked-element-behavior-extracted.js"></script></body></html> \ No newline at end of file
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/iron-list/iron-list-extracted.js b/chromium/third_party/polymer/v1_0/components-chromium/iron-list/iron-list-extracted.js
index 0fb8db3eb45..a460269e902 100644
--- a/chromium/third_party/polymer/v1_0/components-chromium/iron-list/iron-list-extracted.js
+++ b/chromium/third_party/polymer/v1_0/components-chromium/iron-list/iron-list-extracted.js
@@ -795,6 +795,39 @@
},
/**
+ * Finds and returns the focused element (both within self and children's
+ * Shadow DOM).
+ * @return {?HTMLElement}
+ */
+ _getFocusedElement: function() {
+ function doSearch(node, query) {
+ let result = null;
+ let type = node.nodeType;
+ if (type == Node.ELEMENT_NODE || type == Node.DOCUMENT_FRAGMENT_NODE)
+ result = node.querySelector(query);
+ if (result)
+ return result;
+
+ let child = node.firstChild;
+ while (child !== null && result === null) {
+ result = doSearch(child, query);
+ child = child.nextSibling;
+ }
+ if (result)
+ return result;
+
+ const shadowRoot = node.shadowRoot;
+ return shadowRoot ? doSearch(shadowRoot, query) : null;
+ }
+
+ // Find out if any of the items are focused first, and only search
+ // recursively in the item that contains focus, to avoid a slow
+ // search of the entire list.
+ const focusWithin = doSearch(this, ':focus-within');
+ return focusWithin ? doSearch(focusWithin, ':focus') : null;
+ },
+
+ /**
* Called when the items have changed. That is, reassignments
* to `items`, splices or updates to a single item.
*/
@@ -803,7 +836,7 @@
var lastFocusedIndex, focusedElement;
if (rendering && this.preserveFocus) {
lastFocusedIndex = this._focusedVirtualIndex;
- focusedElement = this.querySelector('* /deep/ *:focus');
+ focusedElement = this._getFocusedElement();
}
var preservingFocus = rendering && this.preserveFocus && focusedElement;
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-behaviors/BUILD.gn b/chromium/third_party/polymer/v1_0/components-chromium/paper-behaviors/BUILD.gn
index ed519e50ffe..84361782cd4 100644
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-behaviors/BUILD.gn
+++ b/chromium/third_party/polymer/v1_0/components-chromium/paper-behaviors/BUILD.gn
@@ -13,13 +13,6 @@ js_library("paper-button-behavior-extracted") {
]
}
-js_library("paper-checked-element-behavior-extracted") {
- deps = [
- ":paper-inky-focus-behavior-extracted",
- "../iron-checked-element-behavior:iron-checked-element-behavior-extracted",
- ]
-}
-
js_library("paper-inky-focus-behavior-extracted") {
deps = [
":paper-ripple-behavior-extracted",
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-behaviors/paper-checked-element-behavior-extracted.js b/chromium/third_party/polymer/v1_0/components-chromium/paper-behaviors/paper-checked-element-behavior-extracted.js
deleted file mode 100644
index 4b1c405d72f..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-behaviors/paper-checked-element-behavior-extracted.js
+++ /dev/null
@@ -1,41 +0,0 @@
-/**
- * Use `Polymer.PaperCheckedElementBehavior` to implement a custom element
- * that has a `checked` property similar to `Polymer.IronCheckedElementBehavior`
- * and is compatible with having a ripple effect.
- * @polymerBehavior Polymer.PaperCheckedElementBehavior
- */
- Polymer.PaperCheckedElementBehaviorImpl = {
- /**
- * Synchronizes the element's checked state with its ripple effect.
- */
- _checkedChanged: function() {
- Polymer.IronCheckedElementBehaviorImpl._checkedChanged.call(this);
- if (this.hasRipple()) {
- if (this.checked) {
- this._ripple.setAttribute('checked', '');
- } else {
- this._ripple.removeAttribute('checked');
- }
- }
- },
-
- /**
- * Synchronizes the element's `active` and `checked` state.
- */
- _buttonStateChanged: function() {
- Polymer.PaperRippleBehavior._buttonStateChanged.call(this);
- if (this.disabled) {
- return;
- }
- if (this.isAttached) {
- this.checked = this.active;
- }
- }
- };
-
- /** @polymerBehavior Polymer.PaperCheckedElementBehavior */
- Polymer.PaperCheckedElementBehavior = [
- Polymer.PaperInkyFocusBehavior,
- Polymer.IronCheckedElementBehavior,
- Polymer.PaperCheckedElementBehaviorImpl
- ]; \ No newline at end of file
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-behaviors/paper-checked-element-behavior.html b/chromium/third_party/polymer/v1_0/components-chromium/paper-behaviors/paper-checked-element-behavior.html
deleted file mode 100644
index 873b42a8ae3..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-behaviors/paper-checked-element-behavior.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!--
-@license
-Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
-This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
-The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
-The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
-Code distributed by Google as part of the polymer project is also
-subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
---><html><head><link rel="import" href="../polymer/polymer.html">
-<link rel="import" href="../iron-checked-element-behavior/iron-checked-element-behavior.html">
-<link rel="import" href="paper-inky-focus-behavior.html">
-
-</head><body><script src="paper-checked-element-behavior-extracted.js"></script></body></html> \ No newline at end of file
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-input/BUILD.gn b/chromium/third_party/polymer/v1_0/components-chromium/paper-input/BUILD.gn
index 6e4e1f6a54e..9cf16f72717 100644
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-input/BUILD.gn
+++ b/chromium/third_party/polymer/v1_0/components-chromium/paper-input/BUILD.gn
@@ -9,19 +9,6 @@ import("//third_party/closure_compiler/compile_js.gni")
js_library("paper-input-addon-behavior-extracted") {
}
-js_library("paper-input-behavior-extracted") {
- deps = [
- "../iron-a11y-keys-behavior:iron-a11y-keys-behavior-extracted",
- "../iron-behaviors:iron-control-state-extracted",
- ]
-}
-
-js_library("paper-input-char-counter-extracted") {
- deps = [
- ":paper-input-addon-behavior-extracted",
- ]
-}
-
js_library("paper-input-container-extracted") {
}
@@ -30,25 +17,3 @@ js_library("paper-input-error-extracted") {
":paper-input-addon-behavior-extracted",
]
}
-
-js_library("paper-input-extracted") {
- deps = [
- ":paper-input-behavior-extracted",
- ":paper-input-char-counter-extracted",
- ":paper-input-container-extracted",
- ":paper-input-error-extracted",
- "../iron-form-element-behavior:iron-form-element-behavior-extracted",
- "../iron-input:iron-input-extracted",
- ]
-}
-
-js_library("paper-textarea-extracted") {
- deps = [
- ":paper-input-behavior-extracted",
- ":paper-input-char-counter-extracted",
- ":paper-input-container-extracted",
- ":paper-input-error-extracted",
- "../iron-autogrow-textarea:iron-autogrow-textarea-extracted",
- "../iron-form-element-behavior:iron-form-element-behavior-extracted",
- ]
-}
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-input/all-imports.html b/chromium/third_party/polymer/v1_0/components-chromium/paper-input/all-imports.html
deleted file mode 100644
index 0f457718644..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-input/all-imports.html
+++ /dev/null
@@ -1,12 +0,0 @@
-<!--
-@license
-Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
-This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
-The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
-The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
-Code distributed by Google as part of the polymer project is also
-subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
--->
-
-<link rel="import" href="paper-input.html">
-<link rel="import" href="paper-textarea.html">
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input-behavior-extracted.js b/chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input-behavior-extracted.js
deleted file mode 100644
index 4c7a3531561..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input-behavior-extracted.js
+++ /dev/null
@@ -1,579 +0,0 @@
-// Generate unique, monotonically increasing IDs for labels (needed by
- // aria-labelledby) and add-ons.
- Polymer.PaperInputHelper = {};
- Polymer.PaperInputHelper.NextLabelID = 1;
- Polymer.PaperInputHelper.NextAddonID = 1;
- Polymer.PaperInputHelper.NextInputID = 1;
-
- /**
- * Use `Polymer.PaperInputBehavior` to implement inputs with `<paper-input-container>`. This
- * behavior is implemented by `<paper-input>`. It exposes a number of properties from
- * `<paper-input-container>` and `<input is="iron-input">` and they should be bound in your
- * template.
- *
- * The input element can be accessed by the `inputElement` property if you need to access
- * properties or methods that are not exposed.
- * @polymerBehavior Polymer.PaperInputBehavior
- */
- Polymer.PaperInputBehaviorImpl = {
-
- properties: {
- /**
- * Fired when the input changes due to user interaction.
- *
- * @event change
- */
-
- /**
- * The label for this input. If you're using PaperInputBehavior to
- * implement your own paper-input-like element, bind this to
- * `<label>`'s content and `hidden` property, e.g.
- * `<label hidden$="[[!label]]">[[label]]</label>` in your `template`
- */
- label: {
- type: String
- },
-
- /**
- * The value for this input. If you're using PaperInputBehavior to
- * implement your own paper-input-like element, bind this to
- * the `<iron-input>`'s `bindValue`
- * property, or the value property of your input that is `notify:true`.
- */
- value: {
- notify: true,
- type: String
- },
-
- /**
- * Set to true to disable this input. If you're using PaperInputBehavior to
- * implement your own paper-input-like element, bind this to
- * both the `<paper-input-container>`'s and the input's `disabled` property.
- */
- disabled: {
- type: Boolean,
- value: false
- },
-
- /**
- * Returns true if the value is invalid. If you're using PaperInputBehavior to
- * implement your own paper-input-like element, bind this to both the
- * `<paper-input-container>`'s and the input's `invalid` property.
- *
- * If `autoValidate` is true, the `invalid` attribute is managed automatically,
- * which can clobber attempts to manage it manually.
- */
- invalid: {
- type: Boolean,
- value: false,
- notify: true
- },
-
- /**
- * Set this to specify the pattern allowed by `preventInvalidInput`. If
- * you're using PaperInputBehavior to implement your own paper-input-like
- * element, bind this to the `<input is="iron-input">`'s `allowedPattern`
- * property.
- */
- allowedPattern: {
- type: String
- },
-
- /**
- * The type of the input. The supported types are the
- * [native input's types](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_<input>_types).
- * If you're using PaperInputBehavior to implement your own paper-input-like element,
- * bind this to the (Polymer 1) `<input is="iron-input">`'s or (Polymer 2)
- * `<iron-input>`'s `type` property.
- */
- type: {
- type: String
- },
-
- /**
- * The datalist of the input (if any). This should match the id of an existing `<datalist>`.
- * If you're using PaperInputBehavior to implement your own paper-input-like
- * element, bind this to the `<input is="iron-input">`'s `list` property.
- */
- list: {
- type: String
- },
-
- /**
- * A pattern to validate the `input` with. If you're using PaperInputBehavior to
- * implement your own paper-input-like element, bind this to
- * the `<input is="iron-input">`'s `pattern` property.
- */
- pattern: {
- type: String
- },
-
- /**
- * Set to true to mark the input as required. If you're using PaperInputBehavior to
- * implement your own paper-input-like element, bind this to
- * the `<input is="iron-input">`'s `required` property.
- */
- required: {
- type: Boolean,
- value: false
- },
-
- /**
- * The error message to display when the input is invalid. If you're using
- * PaperInputBehavior to implement your own paper-input-like element,
- * bind this to the `<paper-input-error>`'s content, if using.
- */
- errorMessage: {
- type: String
- },
-
- /**
- * Set to true to show a character counter.
- */
- charCounter: {
- type: Boolean,
- value: false
- },
-
- /**
- * Set to true to disable the floating label. If you're using PaperInputBehavior to
- * implement your own paper-input-like element, bind this to
- * the `<paper-input-container>`'s `noLabelFloat` property.
- */
- noLabelFloat: {
- type: Boolean,
- value: false
- },
-
- /**
- * Set to true to always float the label. If you're using PaperInputBehavior to
- * implement your own paper-input-like element, bind this to
- * the `<paper-input-container>`'s `alwaysFloatLabel` property.
- */
- alwaysFloatLabel: {
- type: Boolean,
- value: false
- },
-
- /**
- * Set to true to auto-validate the input value. If you're using PaperInputBehavior to
- * implement your own paper-input-like element, bind this to
- * the `<paper-input-container>`'s `autoValidate` property.
- */
- autoValidate: {
- type: Boolean,
- value: false
- },
-
- /**
- * Name of the validator to use. If you're using PaperInputBehavior to
- * implement your own paper-input-like element, bind this to
- * the `<input is="iron-input">`'s `validator` property.
- */
- validator: {
- type: String
- },
-
- // HTMLInputElement attributes for binding if needed
-
- /**
- * If you're using PaperInputBehavior to implement your own paper-input-like
- * element, bind this to the `<input is="iron-input">`'s `autocomplete` property.
- */
- autocomplete: {
- type: String,
- value: 'off'
- },
-
- /**
- * If you're using PaperInputBehavior to implement your own paper-input-like
- * element, bind this to the `<input is="iron-input">`'s `autofocus` property.
- */
- autofocus: {
- type: Boolean,
- observer: '_autofocusChanged'
- },
-
- /**
- * If you're using PaperInputBehavior to implement your own paper-input-like
- * element, bind this to the `<input is="iron-input">`'s `inputmode` property.
- */
- inputmode: {
- type: String
- },
-
- /**
- * The minimum length of the input value.
- * If you're using PaperInputBehavior to implement your own paper-input-like
- * element, bind this to the `<input is="iron-input">`'s `minlength` property.
- */
- minlength: {
- type: Number
- },
-
- /**
- * The maximum length of the input value.
- * If you're using PaperInputBehavior to implement your own paper-input-like
- * element, bind this to the `<input is="iron-input">`'s `maxlength` property.
- */
- maxlength: {
- type: Number
- },
-
- /**
- * The minimum (numeric or date-time) input value.
- * If you're using PaperInputBehavior to implement your own paper-input-like
- * element, bind this to the `<input is="iron-input">`'s `min` property.
- */
- min: {
- type: String
- },
-
- /**
- * The maximum (numeric or date-time) input value.
- * Can be a String (e.g. `"2000-01-01"`) or a Number (e.g. `2`).
- * If you're using PaperInputBehavior to implement your own paper-input-like
- * element, bind this to the `<input is="iron-input">`'s `max` property.
- */
- max: {
- type: String
- },
-
- /**
- * Limits the numeric or date-time increments.
- * If you're using PaperInputBehavior to implement your own paper-input-like
- * element, bind this to the `<input is="iron-input">`'s `step` property.
- */
- step: {
- type: String
- },
-
- /**
- * If you're using PaperInputBehavior to implement your own paper-input-like
- * element, bind this to the `<input is="iron-input">`'s `name` property.
- */
- name: {
- type: String
- },
-
- /**
- * A placeholder string in addition to the label. If this is set, the label will always float.
- */
- placeholder: {
- type: String,
- // need to set a default so _computeAlwaysFloatLabel is run
- value: ''
- },
-
- /**
- * If you're using PaperInputBehavior to implement your own paper-input-like
- * element, bind this to the `<input is="iron-input">`'s `readonly` property.
- */
- readonly: {
- type: Boolean,
- value: false
- },
-
- /**
- * If you're using PaperInputBehavior to implement your own paper-input-like
- * element, bind this to the `<input is="iron-input">`'s `size` property.
- */
- size: {
- type: Number
- },
-
- // Nonstandard attributes for binding if needed
-
- /**
- * If you're using PaperInputBehavior to implement your own paper-input-like
- * element, bind this to the `<input is="iron-input">`'s `autocapitalize` property.
- */
- autocapitalize: {
- type: String,
- value: 'none'
- },
-
- /**
- * If you're using PaperInputBehavior to implement your own paper-input-like
- * element, bind this to the `<input is="iron-input">`'s `autocorrect` property.
- */
- autocorrect: {
- type: String,
- value: 'off'
- },
-
- /**
- * If you're using PaperInputBehavior to implement your own paper-input-like
- * element, bind this to the `<input is="iron-input">`'s `autosave` property,
- * used with type=search.
- */
- autosave: {
- type: String
- },
-
- /**
- * If you're using PaperInputBehavior to implement your own paper-input-like
- * element, bind this to the `<input is="iron-input">`'s `results` property,
- * used with type=search.
- */
- results: {
- type: Number
- },
-
- /**
- * If you're using PaperInputBehavior to implement your own paper-input-like
- * element, bind this to the `<input is="iron-input">`'s `accept` property,
- * used with type=file.
- */
- accept: {
- type: String
- },
-
- /**
- * If you're using PaperInputBehavior to implement your own paper-input-like
- * element, bind this to the`<input is="iron-input">`'s `multiple` property,
- * used with type=file.
- */
- multiple: {
- type: Boolean
- },
-
- /** @private */
- _ariaDescribedBy: {
- type: String,
- value: ''
- },
-
- /** @private */
- _ariaLabelledBy: {
- type: String,
- value: ''
- },
-
- /** @private */
- _inputId: {
- type: String,
- value: ''
- }
- },
-
- listeners: {
- 'addon-attached': '_onAddonAttached',
- },
-
- /**
- * @type {!Object}
- */
- keyBindings: {
- 'shift+tab:keydown': '_onShiftTabDown'
- },
-
- /** @private */
- hostAttributes: {
- tabindex: 0
- },
-
- /**
- * Returns a reference to the input element.
- * @return {!HTMLElement}
- */
- get inputElement() {
- // Chrome generates audit errors if an <input type="password"> has a
- // duplicate ID, which is almost always true in Shady DOM. Generate
- // a unique ID instead.
- if (!this.$) {
- this.$ = {}
- }
- if (!this.$.input) {
- this._generateInputId();
- this.$.input = this.$$('#' + this._inputId);
- }
- return this.$.input;
- },
-
- /**
- * Returns a reference to the focusable element.
- * @return {!HTMLElement}
- */
- get _focusableElement() {
- return this.inputElement;
- },
-
- created: function() {
- // These types have some default placeholder text; overlapping
- // the label on top of it looks terrible. Auto-float the label in this case.
- this._typesThatHaveText = ["date", "datetime", "datetime-local", "month",
- "time", "week", "file"];
- },
-
- attached: function() {
- this._updateAriaLabelledBy();
-
- // In the 2.0 version of the element, this is handled in `onIronInputReady`,
- // i.e. after the native input has finished distributing. In the 1.0 version,
- // the input is in the shadow tree, so it's already available.
- if (!Polymer.Element && this.inputElement &&
- this._typesThatHaveText.indexOf(this.inputElement.type) !== -1) {
- this.alwaysFloatLabel = true;
- }
- },
-
- _appendStringWithSpace: function(str, more) {
- if (str) {
- str = str + ' ' + more;
- } else {
- str = more;
- }
- return str;
- },
-
- _onAddonAttached: function(event) {
- var target = Polymer.dom(event).rootTarget;
- if (target.id) {
- this._ariaDescribedBy = this._appendStringWithSpace(this._ariaDescribedBy, target.id);
- } else {
- var id = 'paper-input-add-on-' + Polymer.PaperInputHelper.NextAddonID++;
- target.id = id;
- this._ariaDescribedBy = this._appendStringWithSpace(this._ariaDescribedBy, id);
- }
- },
-
- /**
- * Validates the input element and sets an error style if needed.
- *
- * @return {boolean}
- */
- validate: function() {
- return this.inputElement.validate();
- },
-
- /**
- * Forward focus to inputElement. Overriden from IronControlState.
- */
- _focusBlurHandler: function(event) {
- Polymer.IronControlState._focusBlurHandler.call(this, event);
-
- // Forward the focus to the nested input.
- if (this.focused && !this._shiftTabPressed && this._focusableElement) {
- this._focusableElement.focus();
- }
- },
-
- /**
- * Handler that is called when a shift+tab keypress is detected by the menu.
- *
- * @param {CustomEvent} event A key combination event.
- */
- _onShiftTabDown: function(event) {
- var oldTabIndex = this.getAttribute('tabindex');
- this._shiftTabPressed = true;
- this.setAttribute('tabindex', '-1');
- this.async(function() {
- this.setAttribute('tabindex', oldTabIndex);
- this._shiftTabPressed = false;
- }, 1);
- },
-
- /**
- * If `autoValidate` is true, then validates the element.
- */
- _handleAutoValidate: function() {
- if (this.autoValidate)
- this.validate();
- },
-
- /**
- * Restores the cursor to its original position after updating the value.
- * @param {string} newValue The value that should be saved.
- */
- updateValueAndPreserveCaret: function(newValue) {
- // Not all elements might have selection, and even if they have the
- // right properties, accessing them might throw an exception (like for
- // <input type=number>)
- try {
- var start = this.inputElement.selectionStart;
- this.value = newValue;
-
- // The cursor automatically jumps to the end after re-setting the value,
- // so restore it to its original position.
- this.inputElement.selectionStart = start;
- this.inputElement.selectionEnd = start;
- } catch (e) {
- // Just set the value and give up on the caret.
- this.value = newValue;
- }
- },
-
- _computeAlwaysFloatLabel: function(alwaysFloatLabel, placeholder) {
- return placeholder || alwaysFloatLabel;
- },
-
- _updateAriaLabelledBy: function() {
- var label = Polymer.dom(this.root).querySelector('label');
- if (!label) {
- this._ariaLabelledBy = '';
- return;
- }
- var labelledBy;
- if (label.id) {
- labelledBy = label.id;
- } else {
- labelledBy = 'paper-input-label-' + Polymer.PaperInputHelper.NextLabelID++;
- label.id = labelledBy;
- }
- this._ariaLabelledBy = labelledBy;
- },
-
- _generateInputId: function() {
- if (!this._inputId || this._inputId === '') {
- this._inputId = 'input-' + Polymer.PaperInputHelper.NextInputID++;
- }
- },
-
- _onChange:function(event) {
- // In the Shadow DOM, the `change` event is not leaked into the
- // ancestor tree, so we must do this manually.
- // See https://w3c.github.io/webcomponents/spec/shadow/#events-that-are-not-leaked-into-ancestor-trees.
- if (this.shadowRoot) {
- this.fire(event.type, {sourceEvent: event}, {
- node: this,
- bubbles: event.bubbles,
- cancelable: event.cancelable
- });
- }
- },
-
- _autofocusChanged: function() {
- // Firefox doesn't respect the autofocus attribute if it's applied after
- // the page is loaded (Chrome/WebKit do respect it), preventing an
- // autofocus attribute specified in markup from taking effect when the
- // element is upgraded. As a workaround, if the autofocus property is set,
- // and the focus hasn't already been moved elsewhere, we take focus.
- if (this.autofocus && this._focusableElement) {
-
- // In IE 11, the default document.activeElement can be the page's
- // outermost html element, but there are also cases (under the
- // polyfill?) in which the activeElement is not a real HTMLElement, but
- // just a plain object. We identify the latter case as having no valid
- // activeElement.
- var activeElement = document.activeElement;
- var isActiveElementValid = activeElement instanceof HTMLElement;
-
- // Has some other element has already taken the focus?
- var isSomeElementActive = isActiveElementValid &&
- activeElement !== document.body &&
- activeElement !== document.documentElement; /* IE 11 */
- if (!isSomeElementActive) {
- // No specific element has taken the focus yet, so we can take it.
- this._focusableElement.focus();
- }
- }
- }
- };
-
- /** @polymerBehavior */
- Polymer.PaperInputBehavior = [
- Polymer.IronControlState,
- Polymer.IronA11yKeysBehavior,
- Polymer.PaperInputBehaviorImpl
- ]; \ No newline at end of file
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input-behavior.html b/chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input-behavior.html
deleted file mode 100644
index 73362e0ce85..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input-behavior.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!--
-@license
-Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
-This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
-The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
-The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
-Code distributed by Google as part of the polymer project is also
-subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
---><html><head><link rel="import" href="../polymer/polymer.html">
-<link rel="import" href="../iron-a11y-keys-behavior/iron-a11y-keys-behavior.html">
-<link rel="import" href="../iron-behaviors/iron-control-state.html">
-
-</head><body><script src="paper-input-behavior-extracted.js"></script></body></html> \ No newline at end of file
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input-char-counter-extracted.js b/chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input-char-counter-extracted.js
deleted file mode 100644
index 5a6fc192b7e..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input-char-counter-extracted.js
+++ /dev/null
@@ -1,41 +0,0 @@
-Polymer({
- is: 'paper-input-char-counter',
-
- behaviors: [
- Polymer.PaperInputAddonBehavior
- ],
-
- properties: {
- _charCounterStr: {
- type: String,
- value: '0'
- }
- },
-
- /**
- * This overrides the update function in PaperInputAddonBehavior.
- * @param {{
- * inputElement: (Element|undefined),
- * value: (string|undefined),
- * invalid: boolean
- * }} state -
- * inputElement: The input element.
- * value: The input value.
- * invalid: True if the input value is invalid.
- */
- update: function(state) {
- if (!state.inputElement) {
- return;
- }
-
- state.value = state.value || '';
-
- var counter = state.value.toString().length.toString();
-
- if (state.inputElement.hasAttribute('maxlength')) {
- counter += '/' + state.inputElement.getAttribute('maxlength');
- }
-
- this._charCounterStr = counter;
- }
- }); \ No newline at end of file
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input-char-counter.html b/chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input-char-counter.html
deleted file mode 100644
index 67d8eee1939..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input-char-counter.html
+++ /dev/null
@@ -1,55 +0,0 @@
-<!--
-@license
-Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
-This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
-The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
-The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
-Code distributed by Google as part of the polymer project is also
-subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
---><html><head><link rel="import" href="../polymer/polymer.html">
-<link rel="import" href="../paper-styles/typography.html">
-<link rel="import" href="paper-input-addon-behavior.html">
-
-<!--
-`<paper-input-char-counter>` is a character counter for use with `<paper-input-container>`. It
-shows the number of characters entered in the input and the max length if it is specified.
-
- <paper-input-container>
- <input maxlength="20">
- <paper-input-char-counter></paper-input-char-counter>
- </paper-input-container>
-
-### Styling
-
-The following mixin is available for styling:
-
-Custom property | Description | Default
-----------------|-------------|----------
-`--paper-input-char-counter` | Mixin applied to the element | `{}`
--->
-
-</head><body><dom-module id="paper-input-char-counter">
- <template>
- <style>
- :host {
- display: inline-block;
- float: right;
-
- @apply --paper-font-caption;
- @apply --paper-input-char-counter;
- }
-
- :host([hidden]) {
- display: none !important;
- }
-
- :host(:dir(rtl)) {
- float: left;
- }
- </style>
-
- <span>[[_charCounterStr]]</span>
- </template>
-</dom-module>
-
-<script src="paper-input-char-counter-extracted.js"></script></body></html> \ No newline at end of file
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input-container.html b/chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input-container.html
index 55714942c93..46fb9adf6a0 100644
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input-container.html
+++ b/chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input-container.html
@@ -254,8 +254,8 @@ This element is `display:block` by default, but you can set the `inline` attribu
@apply --paper-input-container-label-floating;
}
- :host(:dir(rtl)) .input-content.label-is-floating ::slotted(label),
- :host(:dir(rtl)) .input-content.label-is-floating ::slotted(.paper-input-label) {
+ :host-context([dir="rtl"]) .input-content.label-is-floating ::slotted(label),
+ :host-context([dir="rtl"]) .input-content.label-is-floating ::slotted(.paper-input-label) {
right: 0;
left: auto;
transform-origin: right top;
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input-extracted.js b/chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input-extracted.js
deleted file mode 100644
index 3cb605bbaed..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input-extracted.js
+++ /dev/null
@@ -1,54 +0,0 @@
-Polymer({
- is: 'paper-input',
-
- behaviors: [
- Polymer.PaperInputBehavior,
- Polymer.IronFormElementBehavior
- ],
-
- beforeRegister: function() {
- var version = 'v1'; // Hard coded Polymer 2 style iron-input.
- var template = Polymer.DomModule.import('paper-input', 'template');
- var inputTemplate = Polymer.DomModule.import('paper-input', 'template#' + version);
- var inputPlaceholder = template.content.querySelector('#template-placeholder');
- if (inputPlaceholder) {
- inputPlaceholder.parentNode.replaceChild(inputTemplate.content, inputPlaceholder);
- }
- // else it's already been processed, probably in superclass
- },
-
- /**
- * Returns a reference to the focusable element. Overridden from PaperInputBehavior
- * to correctly focus the native input.
- *
- * @return {!HTMLElement}
- */
- get _focusableElement() {
- // TODO(hcarmona): remove this patch after polymer is v2.
- return this.inputElement._inputElement;
- },
-
- // Note: This event is only available in the 1.0 version of this element.
- // In 2.0, the functionality of `_onIronInputReady` is done in
- // PaperInputBehavior::attached.
- listeners: {
- 'iron-input-ready': '_onIronInputReady'
- },
-
- _onIronInputReady: function() {
- // Even though this is only used in the next line, save this for
- // backwards compatibility, since the native input had this ID until 2.0.5.
- if (!this.$.nativeInput) {
- this.$.nativeInput = this.$$('input');
- }
- if (this.inputElement &&
- this._typesThatHaveText.indexOf(this.$.nativeInput.type) !== -1) {
- this.alwaysFloatLabel = true;
- }
-
- // Only validate when attached if the input already has a value.
- if (!!this.inputElement.bindValue) {
- this.$.container._handleValueAndAutoValidate(this.inputElement);
- }
- },
- }); \ No newline at end of file
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input.html b/chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input.html
deleted file mode 100644
index 50fa0632a3e..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-input.html
+++ /dev/null
@@ -1,195 +0,0 @@
-<!--
-@license
-Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
-This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
-The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
-The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
-Code distributed by Google as part of the polymer project is also
-subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
---><html><head><link rel="import" href="../polymer/polymer.html">
-<link rel="import" href="../iron-form-element-behavior/iron-form-element-behavior.html">
-<link rel="import" href="../iron-input/iron-input.html">
-<link rel="import" href="paper-input-behavior.html">
-<link rel="import" href="paper-input-char-counter.html">
-<link rel="import" href="paper-input-container.html">
-<link rel="import" href="paper-input-error.html">
-
-<!--
-Material design: [Text fields](https://www.google.com/design/spec/components/text-fields.html)
-
-`<paper-input>` is a single-line text field with Material Design styling.
-
- <paper-input label="Input label"></paper-input>
-
-It may include an optional error message or character counter.
-
- <paper-input error-message="Invalid input!" label="Input label"></paper-input>
- <paper-input char-counter label="Input label"></paper-input>
-
-It can also include custom prefix or suffix elements, which are displayed
-before or after the text input itself. In order for an element to be
-considered as a prefix, it must have the `prefix` attribute (and similarly
-for `suffix`).
-
- <paper-input label="total">
- <div prefix>$</div>
- <paper-icon-button slot="suffix" icon="clear"></paper-icon-button>
- </paper-input>
-
-A `paper-input` can use the native `type=search` or `type=file` features.
-However, since we can't control the native styling of the input (search icon,
-file button, date placeholder, etc.), in these cases the label will be
-automatically floated. The `placeholder` attribute can still be used for
-additional informational text.
-
- <paper-input label="search!" type="search"
- placeholder="search for cats" autosave="test" results="5">
- </paper-input>
-
-See `Polymer.PaperInputBehavior` for more API docs.
-
-### Focus
-
-To focus a paper-input, you can call the native `focus()` method as long as the
-paper input has a tab index. Similarly, `blur()` will blur the element.
-
-### Styling
-
-See `Polymer.PaperInputContainer` for a list of custom properties used to
-style this element.
-
-The following custom properties and mixins are available for styling:
-
-Custom property | Description | Default
-----------------|-------------|----------
-`--paper-input-container-ms-clear` | Mixin applied to the Internet Explorer reveal button (the eyeball) | {}
-
-@group Paper Elements
-@element paper-input
-@hero hero.svg
-@demo demo/index.html
-
--->
-
-</head><body><dom-module id="paper-input">
- <template>
- <style>
- :host {
- display: block;
- }
-
- :host([focused]) {
- outline: none;
- }
-
- :host([hidden]) {
- display: none !important;
- }
-
- input {
- /* Firefox sets a min-width on the input, which can cause layout issues */
- min-width: 0;
- }
-
- /* In 1.x, the <input> is distributed to paper-input-container, which styles it.
- In 2.x the <iron-input> is distributed to paper-input-container, which styles
- it, but in order for this to work correctly, we need to reset some
- of the native input's properties to inherit (from the iron-input) */
- iron-input > input {
- @apply --paper-input-container-shared-input-style;
- font-family: inherit;
- font-weight: inherit;
- font-size: inherit;
- letter-spacing: inherit;
- word-spacing: inherit;
- line-height: inherit;
- text-shadow: inherit;
- color: inherit;
- cursor: inherit;
- }
-
- input:disabled {
- @apply --paper-input-container-input-disabled;
- }
-
- input::-webkit-outer-spin-button,
- input::-webkit-inner-spin-button {
- @apply --paper-input-container-input-webkit-spinner;
- }
-
- input::-webkit-clear-button {
- @apply --paper-input-container-input-webkit-clear;
- }
-
- input::-webkit-calendar-picker-indicator {
- @apply --paper-input-container-input-webkit-calendar-picker-indicator;
- }
-
- input::-webkit-input-placeholder {
- color: var(--paper-input-container-color, var(--secondary-text-color));
- }
-
- input:-moz-placeholder {
- color: var(--paper-input-container-color, var(--secondary-text-color));
- }
-
- input::-moz-placeholder {
- color: var(--paper-input-container-color, var(--secondary-text-color));
- }
-
- input::-ms-clear {
- @apply --paper-input-container-ms-clear;
- }
-
- input::-ms-reveal {
- @apply --paper-input-container-ms-reveal;
- }
-
- input:-ms-input-placeholder {
- color: var(--paper-input-container-color, var(--secondary-text-color));
- }
-
- label {
- pointer-events: none;
- }
- </style>
-
- <paper-input-container id="container" no-label-float="[[noLabelFloat]]" always-float-label="[[_computeAlwaysFloatLabel(alwaysFloatLabel,placeholder)]]" auto-validate$="[[autoValidate]]" disabled$="[[disabled]]" invalid="[[invalid]]">
-
- <slot name="prefix" slot="prefix"></slot>
-
- <label hidden$="[[!label]]" aria-hidden="true" for$="[[_inputId]]" slot="label">[[label]]</label>
-
- <span id="template-placeholder"></span>
-
- <slot name="suffix" slot="suffix"></slot>
-
- <template is="dom-if" if="[[errorMessage]]">
- <paper-input-error aria-live="assertive" slot="add-on">[[errorMessage]]</paper-input-error>
- </template>
-
- <template is="dom-if" if="[[charCounter]]">
- <paper-input-char-counter slot="add-on"></paper-input-char-counter>
- </template>
-
- </paper-input-container>
- </template>
-
- <!-- This is a fresh new hell to make this element hybrid. Basically, in 2.0
- we lost is=, so the example same template can't be used with iron-input 1.0 and 2.0.
- Expect some conditional code (especially in the tests).
- -->
- <template id="v0">
- <input is="iron-input" slot="input" class="input-element" id$="[[_inputId]]" aria-labelledby$="[[_ariaLabelledBy]]" aria-describedby$="[[_ariaDescribedBy]]" disabled$="[[disabled]]" title$="[[title]]" bind-value="{{value}}" invalid="{{invalid}}" prevent-invalid-input="[[preventInvalidInput]]" allowed-pattern="[[allowedPattern]]" validator="[[validator]]" type$="[[type]]" pattern$="[[pattern]]" required$="[[required]]" autocomplete$="[[autocomplete]]" autofocus$="[[autofocus]]" inputmode$="[[inputmode]]" minlength$="[[minlength]]" maxlength$="[[maxlength]]" min$="[[min]]" max$="[[max]]" step$="[[step]]" name$="[[name]]" placeholder$="[[placeholder]]" readonly$="[[readonly]]" list$="[[list]]" size$="[[size]]" autocapitalize$="[[autocapitalize]]" autocorrect$="[[autocorrect]]" on-change="_onChange" tabindex$="[[tabIndex]]" autosave$="[[autosave]]" results$="[[results]]" accept$="[[accept]]" multiple$="[[multiple]]">
- </template>
-
- <template id="v1">
- <!-- Need to bind maxlength so that the paper-input-char-counter works correctly -->
- <iron-input bind-value="{{value}}" slot="input" class="input-element" id$="[[_inputId]]" maxlength$="[[maxlength]]" allowed-pattern="[[allowedPattern]]" invalid="{{invalid}}" validator="[[validator]]">
- <input aria-labelledby$="[[_ariaLabelledBy]]" aria-describedby$="[[_ariaDescribedBy]]" disabled$="[[disabled]]" title$="[[title]]" type$="[[type]]" pattern$="[[pattern]]" required$="[[required]]" autocomplete$="[[autocomplete]]" autofocus$="[[autofocus]]" inputmode$="[[inputmode]]" minlength$="[[minlength]]" maxlength$="[[maxlength]]" min$="[[min]]" max$="[[max]]" step$="[[step]]" name$="[[name]]" placeholder$="[[placeholder]]" readonly$="[[readonly]]" list$="[[list]]" size$="[[size]]" autocapitalize$="[[autocapitalize]]" autocorrect$="[[autocorrect]]" on-change="_onChange" tabindex$="[[tabIndex]]" autosave$="[[autosave]]" results$="[[results]]" accept$="[[accept]]" multiple$="[[multiple]]">
- </iron-input>
- </template>
-
-</dom-module>
-
-<script src="paper-input-extracted.js"></script></body></html> \ No newline at end of file
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-textarea-extracted.js b/chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-textarea-extracted.js
deleted file mode 100644
index 787ec08b07e..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-textarea-extracted.js
+++ /dev/null
@@ -1,77 +0,0 @@
-Polymer({
- is: 'paper-textarea',
-
- behaviors: [
- Polymer.PaperInputBehavior,
- Polymer.IronFormElementBehavior,
- ],
-
- properties: {
- _ariaLabelledBy: {
- observer: '_ariaLabelledByChanged',
- type: String,
- },
-
- _ariaDescribedBy: {
- observer: '_ariaDescribedByChanged',
- type: String,
- },
-
- /**
- * The initial number of rows.
- *
- * @attribute rows
- * @type number
- * @default 1
- */
- rows: {
- type: Number,
- value: 1,
- },
-
- /**
- * The maximum number of rows this element can grow to until it
- * scrolls. 0 means no maximum.
- *
- * @attribute maxRows
- * @type number
- * @default 0
- */
- maxRows: {
- type: Number,
- value: 0,
- },
- },
-
- /**
- * @return {number}
- */
- get selectionStart() {
- return this.$.input.textarea.selectionStart;
- },
- set selectionStart(start) {
- this.$.input.textarea.selectionStart = start;
- },
-
- /**
- * @return {number}
- */
- get selectionEnd() {
- return this.$.input.textarea.selectionEnd;
- },
- set selectionEnd(end) {
- this.$.input.textarea.selectionEnd = end;
- },
-
- _ariaLabelledByChanged: function() {
- this._focusableElement.setAttribute('aria-label', this.label);
- },
-
- _ariaDescribedByChanged: function(ariaDescribedBy) {
- this._focusableElement.setAttribute('aria-describedby', ariaDescribedBy);
- },
-
- get _focusableElement() {
- return this.inputElement.textarea;
- },
- }); \ No newline at end of file
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-textarea.html b/chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-textarea.html
deleted file mode 100644
index f00b31c3461..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-input/paper-textarea.html
+++ /dev/null
@@ -1,68 +0,0 @@
-<!--
-@license
-Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
-This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
-The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
-The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
-Code distributed by Google as part of the polymer project is also
-subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
---><html><head><link rel="import" href="../polymer/polymer.html">
-<link rel="import" href="../iron-autogrow-textarea/iron-autogrow-textarea.html">
-<link rel="import" href="../iron-form-element-behavior/iron-form-element-behavior.html">
-<link rel="import" href="paper-input-behavior.html">
-<link rel="import" href="paper-input-char-counter.html">
-<link rel="import" href="paper-input-container.html">
-<link rel="import" href="paper-input-error.html">
-
-<!--
-`<paper-textarea>` is a multi-line text field with Material Design styling.
-
- <paper-textarea label="Textarea label"></paper-textarea>
-
-See `Polymer.PaperInputBehavior` for more API docs.
-
-### Validation
-
-Currently only `required` and `maxlength` validation is supported.
-
-### Styling
-
-See `Polymer.PaperInputContainer` for a list of custom properties used to
-style this element.
--->
-
-</head><body><dom-module id="paper-textarea">
- <template>
- <style>
- :host {
- display: block;
- }
-
- :host([hidden]) {
- display: none !important;
- }
-
- label {
- pointer-events: none;
- }
- </style>
-
- <paper-input-container no-label-float$="[[noLabelFloat]]" always-float-label="[[_computeAlwaysFloatLabel(alwaysFloatLabel,placeholder)]]" auto-validate$="[[autoValidate]]" disabled$="[[disabled]]" invalid="[[invalid]]">
-
- <label hidden$="[[!label]]" aria-hidden="true" for$="[[_inputId]]" slot="label">[[label]]</label>
-
- <iron-autogrow-textarea class="paper-input-input" slot="input" id$="[[_inputId]]" aria-labelledby$="[[_ariaLabelledBy]]" aria-describedby$="[[_ariaDescribedBy]]" bind-value="{{value}}" invalid="{{invalid}}" validator$="[[validator]]" disabled$="[[disabled]]" autocomplete$="[[autocomplete]]" autofocus$="[[autofocus]]" inputmode$="[[inputmode]]" name$="[[name]]" placeholder$="[[placeholder]]" readonly$="[[readonly]]" required$="[[required]]" minlength$="[[minlength]]" maxlength$="[[maxlength]]" autocapitalize$="[[autocapitalize]]" rows$="[[rows]]" max-rows$="[[maxRows]]" on-change="_onChange"></iron-autogrow-textarea>
-
- <template is="dom-if" if="[[errorMessage]]">
- <paper-input-error aria-live="assertive" slot="add-on">[[errorMessage]]</paper-input-error>
- </template>
-
- <template is="dom-if" if="[[charCounter]]">
- <paper-input-char-counter slot="add-on"></paper-input-char-counter>
- </template>
-
- </paper-input-container>
- </template>
-</dom-module>
-
-<script src="paper-textarea-extracted.js"></script></body></html> \ No newline at end of file
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-item/BUILD.gn b/chromium/third_party/polymer/v1_0/components-chromium/paper-item/BUILD.gn
index 23972ad5f1d..830c114e54d 100644
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-item/BUILD.gn
+++ b/chromium/third_party/polymer/v1_0/components-chromium/paper-item/BUILD.gn
@@ -18,12 +18,3 @@ js_library("paper-item-behavior-extracted") {
"../iron-behaviors:iron-control-state-extracted",
]
}
-
-js_library("paper-item-body-extracted") {
-}
-
-js_library("paper-item-extracted") {
- deps = [
- ":paper-item-behavior-extracted",
- ]
-}
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-item/all-imports.html b/chromium/third_party/polymer/v1_0/components-chromium/paper-item/all-imports.html
deleted file mode 100644
index 4b1583fe410..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-item/all-imports.html
+++ /dev/null
@@ -1,13 +0,0 @@
-<!--
-@license
-Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
-This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
-The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
-The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
-Code distributed by Google as part of the polymer project is also
-subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
--->
-
-<link rel="import" href="paper-item.html">
-<link rel="import" href="paper-item-body.html">
-<link rel="import" href="paper-icon-item.html">
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-item/paper-item-body-extracted.js b/chromium/third_party/polymer/v1_0/components-chromium/paper-item/paper-item-body-extracted.js
deleted file mode 100644
index 49e85eb0af4..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-item/paper-item-body-extracted.js
+++ /dev/null
@@ -1,3 +0,0 @@
-Polymer({
- is: 'paper-item-body'
- }); \ No newline at end of file
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-item/paper-item-body.html b/chromium/third_party/polymer/v1_0/components-chromium/paper-item/paper-item-body.html
deleted file mode 100644
index 5df6b8ae0ed..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-item/paper-item-body.html
+++ /dev/null
@@ -1,77 +0,0 @@
-<!--
-@license
-Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
-This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
-The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
-The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
-Code distributed by Google as part of the polymer project is also
-subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
---><html><head><link rel="import" href="../polymer/polymer.html">
-<link rel="import" href="../iron-flex-layout/iron-flex-layout.html">
-<link rel="import" href="../paper-styles/default-theme.html">
-<link rel="import" href="../paper-styles/typography.html">
-
-<!--
-Use `<paper-item-body>` in a `<paper-item>` or `<paper-icon-item>` to make two- or
-three- line items. It is a flex item that is a vertical flexbox.
-
- <paper-item>
- <paper-item-body two-line>
- <div>Show your status</div>
- <div secondary>Your status is visible to everyone</div>
- </paper-item-body>
- </paper-item>
-
-The child elements with the `secondary` attribute is given secondary text styling.
-
-### Styling
-
-The following custom properties and mixins are available for styling:
-
-Custom property | Description | Default
-----------------|-------------|----------
-`--paper-item-body-two-line-min-height` | Minimum height of a two-line item | `72px`
-`--paper-item-body-three-line-min-height` | Minimum height of a three-line item | `88px`
-`--paper-item-body-secondary-color` | Foreground color for the `secondary` area | `--secondary-text-color`
-`--paper-item-body-secondary` | Mixin applied to the `secondary` area | `{}`
-
--->
-
-</head><body><dom-module id="paper-item-body">
- <template>
- <style>
- :host {
- overflow: hidden; /* needed for text-overflow: ellipsis to work on ff */
- @apply --layout-vertical;
- @apply --layout-center-justified;
- @apply --layout-flex;
- }
-
- :host([two-line]) {
- min-height: var(--paper-item-body-two-line-min-height, 72px);
- }
-
- :host([three-line]) {
- min-height: var(--paper-item-body-three-line-min-height, 88px);
- }
-
- :host > ::slotted(*) {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- }
-
- :host > ::slotted([secondary]) {
- @apply --paper-font-body1;
-
- color: var(--paper-item-body-secondary-color, var(--secondary-text-color));
-
- @apply --paper-item-body-secondary;
- }
- </style>
-
- <slot></slot>
- </template>
-
- </dom-module>
-<script src="paper-item-body-extracted.js"></script></body></html> \ No newline at end of file
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-item/paper-item-extracted.js b/chromium/third_party/polymer/v1_0/components-chromium/paper-item/paper-item-extracted.js
deleted file mode 100644
index 0386a2a269a..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-item/paper-item-extracted.js
+++ /dev/null
@@ -1,7 +0,0 @@
-Polymer({
- is: 'paper-item',
-
- behaviors: [
- Polymer.PaperItemBehavior
- ]
- }); \ No newline at end of file
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-item/paper-item.html b/chromium/third_party/polymer/v1_0/components-chromium/paper-item/paper-item.html
deleted file mode 100644
index 6cc8bb6a690..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-item/paper-item.html
+++ /dev/null
@@ -1,100 +0,0 @@
-<!--
-@license
-Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
-This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
-The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
-The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
-Code distributed by Google as part of the polymer project is also
-subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
---><html><head><link rel="import" href="../polymer/polymer.html">
-<link rel="import" href="../iron-flex-layout/iron-flex-layout.html">
-<link rel="import" href="paper-item-behavior.html">
-<link rel="import" href="paper-item-shared-styles.html">
-
-<!--
-Material design: [Lists](https://www.google.com/design/spec/components/lists.html)
-
-`<paper-item>` is an interactive list item. By default, it is a horizontal flexbox.
-
- <paper-item>Item</paper-item>
-
-Use this element with `<paper-item-body>` to make Material Design styled two-line and three-line
-items.
-
- <paper-item>
- <paper-item-body two-line>
- <div>Show your status</div>
- <div secondary>Your status is visible to everyone</div>
- </paper-item-body>
- <iron-icon icon="warning"></iron-icon>
- </paper-item>
-
-To use `paper-item` as a link, wrap it in an anchor tag. Since `paper-item` will
-already receive focus, you may want to prevent the anchor tag from receiving
-focus as well by setting its tabindex to -1.
-
- <a href="https://www.polymer-project.org/" tabindex="-1">
- <paper-item raised>Polymer Project</paper-item>
- </a>
-
-If you are concerned about performance and want to use `paper-item` in a `paper-listbox`
-with many items, you can just use a native `button` with the `paper-item` class
-applied (provided you have correctly included the shared styles):
-
- <style is="custom-style" include="paper-item-shared-styles"></style>
-
- <paper-listbox>
- <button class="paper-item" role="option">Inbox</button>
- <button class="paper-item" role="option">Starred</button>
- <button class="paper-item" role="option">Sent mail</button>
- </paper-listbox>
-
-### Styling
-
-The following custom properties and mixins are available for styling:
-
-Custom property | Description | Default
-------------------------------|----------------------------------------------|----------
-`--paper-item-min-height` | Minimum height of the item | `48px`
-`--paper-item` | Mixin applied to the item | `{}`
-`--paper-item-selected-weight`| The font weight of a selected item | `bold`
-`--paper-item-selected` | Mixin applied to selected paper-items | `{}`
-`--paper-item-disabled-color` | The color for disabled paper-items | `--disabled-text-color`
-`--paper-item-disabled` | Mixin applied to disabled paper-items | `{}`
-`--paper-item-focused` | Mixin applied to focused paper-items | `{}`
-`--paper-item-focused-before` | Mixin applied to :before focused paper-items | `{}`
-
-### Accessibility
-
-This element has `role="listitem"` by default. Depending on usage, it may be more appropriate to set
-`role="menuitem"`, `role="menuitemcheckbox"` or `role="menuitemradio"`.
-
- <paper-item role="menuitemcheckbox">
- <paper-item-body>
- Show your status
- </paper-item-body>
- <paper-checkbox></paper-checkbox>
- </paper-item>
-
-@group Paper Elements
-@element paper-item
-@demo demo/index.html
--->
-
-</head><body><dom-module id="paper-item">
- <template>
- <style include="paper-item-shared-styles"></style>
- <style>
- :host {
- @apply --layout-horizontal;
- @apply --layout-center;
- @apply --paper-font-subhead;
-
- @apply --paper-item;
- }
- </style>
- <slot></slot>
- </template>
-
- </dom-module>
-<script src="paper-item-extracted.js"></script></body></html> \ No newline at end of file
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-listbox/BUILD.gn b/chromium/third_party/polymer/v1_0/components-chromium/paper-listbox/BUILD.gn
deleted file mode 100644
index 7bd6f1499ed..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-listbox/BUILD.gn
+++ /dev/null
@@ -1,13 +0,0 @@
-# Copyright 2018 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-#
-# NOTE: Created with generate_gn.py, please do not edit.
-
-import("//third_party/closure_compiler/compile_js.gni")
-
-js_library("paper-listbox-extracted") {
- deps = [
- "../iron-menu-behavior:iron-menu-behavior-extracted",
- ]
-}
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-listbox/bower.json b/chromium/third_party/polymer/v1_0/components-chromium/paper-listbox/bower.json
deleted file mode 100644
index 84df57574c7..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-listbox/bower.json
+++ /dev/null
@@ -1,58 +0,0 @@
-{
- "name": "paper-listbox",
- "version": "2.0.0",
- "description": "Implements an accessible material design listbox",
- "authors": "The Polymer Authors",
- "keywords": [
- "web-components",
- "polymer",
- "listbox"
- ],
- "main": "paper-listbox.html",
- "private": true,
- "repository": {
- "type": "git",
- "url": "git://github.com/PolymerElements/paper-listbox"
- },
- "license": "http://polymer.github.io/LICENSE.txt",
- "homepage": "https://github.com/PolymerElements/paper-listbox",
- "ignore": [],
- "dependencies": {
- "polymer": "Polymer/polymer#1.9 - 2",
- "iron-behaviors": "PolymerElements/iron-behaviors#1 - 2",
- "iron-menu-behavior": "PolymerElements/iron-menu-behavior#1 - 2",
- "paper-styles": "PolymerElements/paper-styles#1 - 2"
- },
- "devDependencies": {
- "iron-component-page": "PolymerElements/iron-component-page#1 - 2",
- "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2",
- "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2",
- "paper-item": "PolymerElements/paper-item#1 - 2",
- "web-component-tester": "^6.0.0",
- "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0"
- },
- "variants": {
- "1.x": {
- "dependencies": {
- "polymer": "Polymer/polymer#^1.9",
- "iron-behaviors": "PolymerElements/iron-behaviors#^1.0.0",
- "iron-menu-behavior": "PolymerElements/iron-menu-behavior#^1.0.0",
- "paper-styles": "PolymerElements/paper-styles#^1.0.0"
- },
- "devDependencies": {
- "iron-component-page": "PolymerElements/iron-component-page#^1.0.0",
- "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.2.5",
- "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0",
- "paper-item": "PolymerElements/paper-item#^1.0.0",
- "web-component-tester": "^4.0.0",
- "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
- },
- "resolutions": {
- "webcomponentsjs": "^0.7"
- }
- }
- },
- "resolutions": {
- "webcomponentsjs": "^1.0.0"
- }
-}
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-listbox/paper-listbox-extracted.js b/chromium/third_party/polymer/v1_0/components-chromium/paper-listbox/paper-listbox-extracted.js
deleted file mode 100644
index 51011988ad0..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-listbox/paper-listbox-extracted.js
+++ /dev/null
@@ -1,13 +0,0 @@
-(function() {
- Polymer({
- is: 'paper-listbox',
-
- behaviors: [
- Polymer.IronMenuBehavior
- ],
-
- hostAttributes: {
- role: 'listbox'
- }
- });
- })(); \ No newline at end of file
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-listbox/paper-listbox.html b/chromium/third_party/polymer/v1_0/components-chromium/paper-listbox/paper-listbox.html
deleted file mode 100644
index 27e253869f6..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-listbox/paper-listbox.html
+++ /dev/null
@@ -1,80 +0,0 @@
-<!--
-@license
-Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
-This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
-The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
-The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
-Code distributed by Google as part of the polymer project is also
-subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
---><html><head><link rel="import" href="../polymer/polymer.html">
-<link rel="import" href="../iron-menu-behavior/iron-menu-behavior.html">
-<link rel="import" href="../paper-styles/default-theme.html">
-
-<!--
-Material design: [Menus](https://www.google.com/design/spec/components/menus.html)
-
-`<paper-listbox>` implements an accessible listbox control with Material Design styling. The focused item
-is highlighted, and the selected item has bolded text.
-
- <paper-listbox>
- <paper-item>Item 1</paper-item>
- <paper-item>Item 2</paper-item>
- </paper-listbox>
-
-An initial selection can be specified with the `selected` attribute.
-
- <paper-listbox selected="0">
- <paper-item>Item 1</paper-item>
- <paper-item>Item 2</paper-item>
- </paper-listbox>
-
-Make a multi-select listbox with the `multi` attribute. Items in a multi-select listbox can be deselected,
-and multiple item can be selected.
-
- <paper-listbox multi>
- <paper-item>Item 1</paper-item>
- <paper-item>Item 2</paper-item>
- </paper-listbox>
-
-### Styling
-
-The following custom properties and mixins are available for styling:
-
-Custom property | Description | Default
-----------------|-------------|----------
-`--paper-listbox-background-color` | Menu background color | `--primary-background-color`
-`--paper-listbox-color` | Menu foreground color | `--primary-text-color`
-`--paper-listbox` | Mixin applied to the listbox | `{}`
-
-### Accessibility
-
-`<paper-listbox>` has `role="listbox"` by default. A multi-select listbox will also have
-`aria-multiselectable` set. It implements key bindings to navigate through the listbox with the up and
-down arrow keys, esc to exit the listbox, and enter to activate a listbox item. Typing the first letter
-of a listbox item will also focus it.
-
-@group Paper Elements
-@element paper-listbox
-@hero hero.svg
-@demo demo/index.html
--->
-
-</head><body><dom-module id="paper-listbox">
- <template>
- <style>
- :host {
- display: block;
- padding: 8px 0;
-
- background: var(--paper-listbox-background-color, var(--primary-background-color));
- color: var(--paper-listbox-color, var(--primary-text-color));
-
- @apply --paper-listbox;
- }
- </style>
-
- <slot></slot>
- </template>
-
- </dom-module>
-<script src="paper-listbox-extracted.js"></script></body></html> \ No newline at end of file
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-radio-group/BUILD.gn b/chromium/third_party/polymer/v1_0/components-chromium/paper-radio-group/BUILD.gn
deleted file mode 100644
index 02097db7ed1..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-radio-group/BUILD.gn
+++ /dev/null
@@ -1,14 +0,0 @@
-# Copyright 2018 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-#
-# NOTE: Created with generate_gn.py, please do not edit.
-
-import("//third_party/closure_compiler/compile_js.gni")
-
-js_library("paper-radio-group-extracted") {
- deps = [
- "../iron-a11y-keys-behavior:iron-a11y-keys-behavior-extracted",
- "../iron-menu-behavior:iron-menubar-behavior-extracted",
- ]
-}
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-radio-group/bower.json b/chromium/third_party/polymer/v1_0/components-chromium/paper-radio-group/bower.json
deleted file mode 100644
index de65ec7efb1..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-radio-group/bower.json
+++ /dev/null
@@ -1,61 +0,0 @@
-{
- "name": "paper-radio-group",
- "version": "2.1.0",
- "description": "A group of material design radio buttons",
- "authors": [
- "The Polymer Authors"
- ],
- "keywords": [
- "web-components",
- "polymer",
- "radio",
- "control"
- ],
- "private": true,
- "repository": {
- "type": "git",
- "url": "git://github.com/PolymerElements/paper-radio-group.git"
- },
- "license": "http://polymer.github.io/LICENSE.txt",
- "homepage": "https://github.com/PolymerElements/paper-radio-group",
- "main": "paper-radio-group.html",
- "ignore": [],
- "dependencies": {
- "polymer": "Polymer/polymer#1.9 - 2",
- "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#1 - 2",
- "iron-menu-behavior": "PolymerElements/iron-menu-behavior#1 - 2",
- "paper-radio-button": "PolymerElements/paper-radio-button#1 - 2"
- },
- "devDependencies": {
- "iron-component-page": "PolymerElements/iron-component-page#1 - 2",
- "iron-demo-helpers": "PolymerElements/iron-demo-helpers#1 - 2",
- "iron-test-helpers": "PolymerElements/iron-test-helpers#1 - 2",
- "paper-styles": "PolymerElements/paper-styles#1 - 2",
- "web-component-tester": "^6.0.0",
- "webcomponentsjs": "webcomponents/webcomponentsjs#^1.0.0"
- },
- "variants": {
- "1.x": {
- "dependencies": {
- "polymer": "Polymer/polymer#^1.9",
- "iron-a11y-keys-behavior": "PolymerElements/iron-a11y-keys-behavior#^1.0.0",
- "iron-menu-behavior": "PolymerElements/iron-menu-behavior#^1.1.7",
- "paper-radio-button": "PolymerElements/paper-radio-button#^1.0.0"
- },
- "devDependencies": {
- "iron-component-page": "PolymerElements/iron-component-page#^1.0.0",
- "iron-demo-helpers": "PolymerElements/iron-demo-helpers#^1.0.0",
- "iron-test-helpers": "PolymerElements/iron-test-helpers#^1.0.0",
- "paper-styles": "PolymerElements/paper-styles#^1.0.0",
- "web-component-tester": "^4.0.0",
- "webcomponentsjs": "webcomponents/webcomponentsjs#^0.7.0"
- },
- "resolutions": {
- "webcomponentsjs": "^0.7"
- }
- }
- },
- "resolutions": {
- "webcomponentsjs": "^1.0.0"
- }
-}
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-radio-group/paper-radio-group-extracted.js b/chromium/third_party/polymer/v1_0/components-chromium/paper-radio-group/paper-radio-group-extracted.js
deleted file mode 100644
index 9780df96b0c..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-radio-group/paper-radio-group-extracted.js
+++ /dev/null
@@ -1,110 +0,0 @@
-Polymer({
- is: 'paper-radio-group',
-
- behaviors: [
- Polymer.IronMenubarBehavior
- ],
-
- hostAttributes: {
- role: 'radiogroup',
- },
-
- properties: {
- /**
- * Fired when the radio group selection changes.
- *
- * @event paper-radio-group-changed
- */
-
- /**
- * Overriden from Polymer.IronSelectableBehavior
- */
- attrForSelected: {
- type: String,
- value: 'name'
- },
-
- /**
- * Overriden from Polymer.IronSelectableBehavior
- */
- selectedAttribute: {
- type: String,
- value: 'checked'
- },
-
- /**
- * Overriden from Polymer.IronSelectableBehavior
- */
- selectable: {
- type: String,
- value: 'paper-radio-button'
- },
-
- /**
- * If true, radio-buttons can be deselected
- */
- allowEmptySelection: {
- type: Boolean,
- value: false
- }
- },
-
- /**
- * Selects the given value.
- */
- select: function(value) {
- var newItem = this._valueToItem(value);
- if (newItem && newItem.hasAttribute('disabled')) {
- return;
- }
-
- if (this.selected) {
- var oldItem = this._valueToItem(this.selected);
-
- if (this.selected == value) {
- // If deselecting is allowed we'll have to apply an empty selection.
- // Otherwise, we should force the selection to stay and make this
- // action a no-op.
- if (this.allowEmptySelection) {
- value = '';
- } else {
- if (oldItem)
- oldItem.checked = true;
- return;
- }
- }
-
- if (oldItem)
- oldItem.checked = false;
- }
-
- Polymer.IronSelectableBehavior.select.apply(this, [value]);
- this.fire('paper-radio-group-changed');
- },
-
- _activateFocusedItem: function() {
- this._itemActivate(this._valueForItem(this.focusedItem), this.focusedItem);
- },
-
- _onUpKey: function(event) {
- this._focusPrevious();
- event.preventDefault();
- this._activateFocusedItem();
- },
-
- _onDownKey: function(event) {
- this._focusNext();
- event.preventDefault();
- this._activateFocusedItem();
- },
-
- _onLeftKey: function(event) {
- Polymer.IronMenubarBehaviorImpl._onLeftKey.apply(this, arguments);
- this._activateFocusedItem();
- },
-
- _onRightKey: function(event) {
- Polymer.IronMenubarBehaviorImpl._onRightKey.apply(this, arguments);
- this._activateFocusedItem();
- }
- }); \ No newline at end of file
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-radio-group/paper-radio-group.html b/chromium/third_party/polymer/v1_0/components-chromium/paper-radio-group/paper-radio-group.html
deleted file mode 100644
index d38cde35582..00000000000
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-radio-group/paper-radio-group.html
+++ /dev/null
@@ -1,70 +0,0 @@
-<!--
-@license
-Copyright (c) 2015 The Polymer Project Authors. All rights reserved.
-This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
-The complete set of authors may be found at http://polymer.github.io/AUTHORS.txt
-The complete set of contributors may be found at http://polymer.github.io/CONTRIBUTORS.txt
-Code distributed by Google as part of the polymer project is also
-subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
---><html><head><link rel="import" href="../polymer/polymer.html">
-<link rel="import" href="../iron-a11y-keys-behavior/iron-a11y-keys-behavior.html">
-<link rel="import" href="../iron-menu-behavior/iron-menubar-behavior.html">
-
-<!--
-Material design: [Radio button](https://www.google.com/design/spec/components/selection-controls.html#selection-controls-radio-button)
-
-`paper-radio-group` allows user to select at most one radio button from a set.
-Checking one radio button that belongs to a radio group unchecks any
-previously checked radio button within the same group. Use
-`selected` to get or set the selected radio button.
-
-The <paper-radio-buttons> inside the group must have the `name` attribute
-set.
-
-Example:
-
- <paper-radio-group selected="small">
- <paper-radio-button name="small">Small</paper-radio-button>
- <paper-radio-button name="medium">Medium</paper-radio-button>
- <paper-radio-button name="large">Large</paper-radio-button>
- </paper-radio-group>
-
-Radio-button-groups can be made optional, and allow zero buttons to be selected:
-
- <paper-radio-group selected="small" allow-empty-selection>
- <paper-radio-button name="small">Small</paper-radio-button>
- <paper-radio-button name="medium">Medium</paper-radio-button>
- <paper-radio-button name="large">Large</paper-radio-button>
- </paper-radio-group>
-
-See <a href="paper-radio-button">paper-radio-button</a> for more
-information about `paper-radio-button`.
-
-
-Custom property | Description | Default
-----------------|-------------|----------
-`--paper-radio-group-item-padding` | The padding of the item | `12px`
-
-@group Paper Elements
-@element paper-radio-group
-@hero hero.svg
-@demo demo/index.html
--->
-
-</head><body><dom-module id="paper-radio-group">
- <template>
- <style>
- :host {
- display: inline-block;
- }
-
- :host ::slotted(*) {
- padding: var(--paper-radio-group-item-padding, 12px);
- }
- </style>
-
- <slot></slot>
- </template>
-</dom-module>
-
-<script src="paper-radio-group-extracted.js"></script></body></html> \ No newline at end of file
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-slider/BUILD.gn b/chromium/third_party/polymer/v1_0/components-chromium/paper-slider/BUILD.gn
index 4fd68c1e99a..2868066e290 100644
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-slider/BUILD.gn
+++ b/chromium/third_party/polymer/v1_0/components-chromium/paper-slider/BUILD.gn
@@ -12,7 +12,6 @@ js_library("paper-slider-extracted") {
"../iron-form-element-behavior:iron-form-element-behavior-extracted",
"../iron-range-behavior:iron-range-behavior-extracted",
"../paper-behaviors:paper-inky-focus-behavior-extracted",
- "../paper-input:paper-input-extracted",
"../paper-progress:paper-progress-extracted",
]
}
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/paper-slider/paper-slider.html b/chromium/third_party/polymer/v1_0/components-chromium/paper-slider/paper-slider.html
index 952818290c1..42f2bee7fe3 100644
--- a/chromium/third_party/polymer/v1_0/components-chromium/paper-slider/paper-slider.html
+++ b/chromium/third_party/polymer/v1_0/components-chromium/paper-slider/paper-slider.html
@@ -12,7 +12,6 @@ subject to an additional IP rights grant found at http://polymer.github.io/PATEN
<link rel="import" href="../iron-form-element-behavior/iron-form-element-behavior.html">
<link rel="import" href="../iron-range-behavior/iron-range-behavior.html">
<link rel="import" href="../paper-behaviors/paper-inky-focus-behavior.html">
-<link rel="import" href="../paper-input/paper-input.html">
<link rel="import" href="../paper-progress/paper-progress.html">
<link rel="import" href="../paper-styles/color.html">
@@ -331,11 +330,6 @@ Custom property | Description | Default
<div class="slider-knob-inner" value$="[[immediateValue]]"></div>
</div>
</div>
-
- <template is="dom-if" if="[[editable]]">
- <paper-input id="input" type="number" step="[[step]]" min="[[min]]" max="[[max]]" class="slider-input" disabled$="[[disabled]]" value="[[immediateValue]]" on-change="_changeValue" on-keydown="_inputKeyDown" no-label-float="">
- </paper-input>
- </template>
</template>
</dom-module>
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/polymer2/bower.json b/chromium/third_party/polymer/v1_0/components-chromium/polymer2/bower.json
index ae2bcf5033c..4efadc9ebd1 100644
--- a/chromium/third_party/polymer/v1_0/components-chromium/polymer2/bower.json
+++ b/chromium/third_party/polymer/v1_0/components-chromium/polymer2/bower.json
@@ -1,6 +1,48 @@
{
"name": "polymer",
"main": [
+ "lib/elements/array-selector.html",
+ "lib/elements/custom-style.html",
+ "lib/elements/dom-bind.html",
+ "lib/elements/dom-if.html",
+ "lib/elements/dom-module.html",
+ "lib/elements/dom-repeat.html",
+ "lib/legacy/class.html",
+ "lib/legacy/legacy-element-mixin.html",
+ "lib/legacy/mutable-data-behavior.html",
+ "lib/legacy/polymer-fn.html",
+ "lib/legacy/polymer.dom.html",
+ "lib/legacy/templatizer-behavior.html",
+ "lib/mixins/dir-mixin.html",
+ "lib/mixins/disable-upgrade-mixin.html",
+ "lib/mixins/element-mixin.html",
+ "lib/mixins/gesture-event-listeners.html",
+ "lib/mixins/mutable-data.html",
+ "lib/mixins/properties-changed.html",
+ "lib/mixins/properties-mixin.html",
+ "lib/mixins/property-accessors.html",
+ "lib/mixins/property-effects.html",
+ "lib/mixins/strict-binding-parser.html",
+ "lib/mixins/template-stamp.html",
+ "lib/utils/array-splice.html",
+ "lib/utils/async.html",
+ "lib/utils/boot.html",
+ "lib/utils/case-map.html",
+ "lib/utils/debounce.html",
+ "lib/utils/flattened-nodes-observer.html",
+ "lib/utils/flush.html",
+ "lib/utils/gestures.html",
+ "lib/utils/html-tag.html",
+ "lib/utils/import-href.html",
+ "lib/utils/mixin.html",
+ "lib/utils/path.html",
+ "lib/utils/render-status.html",
+ "lib/utils/resolve-url.html",
+ "lib/utils/settings.html",
+ "lib/utils/style-gather.html",
+ "lib/utils/templatize.html",
+ "lib/utils/unresolved.html",
+ "polymer-element.html",
"polymer.html"
],
"license": "http://polymer.github.io/LICENSE.txt",
@@ -26,7 +68,8 @@
"devDependencies": {
"web-component-tester": "^6.0.0",
"test-fixture": "PolymerElements/test-fixture#3.0.0-rc.1",
- "iron-component-page": "PolymerElements/iron-component-page#^3.0.1"
+ "iron-component-page": "PolymerElements/iron-component-page#^3.0.1",
+ "perf-tester": "polymerlabs/perf-tester"
},
"private": true,
"resolutions": {
diff --git a/chromium/third_party/polymer/v1_0/components-chromium/polymer2/polymer-extracted.js b/chromium/third_party/polymer/v1_0/components-chromium/polymer2/polymer-extracted.js
index 1ee8ed4c36d..1cd51dd695a 100644
--- a/chromium/third_party/polymer/v1_0/components-chromium/polymer2/polymer-extracted.js
+++ b/chromium/third_party/polymer/v1_0/components-chromium/polymer2/polymer-extracted.js
@@ -1,4 +1,5 @@
-(function(){/*
+(function(){
+/*
Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
@@ -7,7 +8,8 @@ The complete set of contributors may be found at http://polymer.github.io/CONTRI
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
*/
-"use strict";var k={};function n(){this.end=this.start=0;this.rules=this.parent=this.previous=null;this.cssText=this.parsedCssText="";this.atRule=!1;this.type=0;this.parsedSelector=this.selector=this.keyframesName=""}function p(a){a=a.replace(r,"").replace(aa,"");var c=t,b=a,d=new n;d.start=0;d.end=b.length;for(var e=d,f=0,h=b.length;f<h;f++)if("{"===b[f]){e.rules||(e.rules=[]);var g=e,m=g.rules[g.rules.length-1]||null;e=new n;e.start=f+1;e.parent=g;e.previous=m;g.rules.push(e)}else"}"===b[f]&&(e.end=f+1,e=e.parent||d);return c(d,a)}function t(a,c){var b=c.substring(a.start,a.end-1);a.parsedCssText=a.cssText=b.trim();a.parent&&(b=c.substring(a.previous?a.previous.end:a.parent.start,a.start-1),b=ba(b),b=b.replace(u," "),b=b.substring(b.lastIndexOf(";")+1),b=a.parsedSelector=a.selector=b.trim(),a.atRule=0===b.indexOf("@"),a.atRule?0===b.indexOf("@media")?a.type=v:b.match(ca)&&(a.type=x,a.keyframesName=a.selector.split(u).pop()):a.type=0===b.indexOf("--")?y:z);if(b=a.rules)for(var d=0,e=b.length,f;d<e&&(f=b[d]);d++)t(f,c);return a}function ba(a){return a.replace(/\\([0-9a-f]{1,6})\s/gi,function(a,b){a=b;for(b=6-a.length;b--;)a="0"+a;return"\\"+a})}function A(a,c,b){b=void 0===b?"":b;var d="";if(a.cssText||a.rules){var e=a.rules,f;if(f=e)f=e[0],f=!(f&&f.selector&&0===f.selector.indexOf("--"));if(f){f=0;for(var h=e.length,g;f<h&&(g=e[f]);f++)d=A(g,c,d)}else c?c=a.cssText:(c=a.cssText,c=c.replace(da,"").replace(ea,""),c=c.replace(fa,"").replace(ha,"")),(d=c.trim())&&(d=" "+d+"\n")}d&&(a.selector&&(b+=a.selector+" {\n"),b+=d,a.selector&&(b+="}\n\n"));return b}var z=1,x=7,v=4,y=1e3,r=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//gim,aa=/@import[^;]*;/gim,da=/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?(?:[;\n]|$)/gim,ea=/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?{[^}]*?}(?:[;\n]|$)?/gim,fa=/@apply\s*\(?[^);]*\)?\s*(?:[;\n]|$)?/gim,ha=/[^;:]*?:[^;]*?var\([^;]*\)(?:[;\n]|$)?/gim,ca=/^@[^\s]*keyframes/,u=/\s+/g;var ia=Promise.resolve();function ja(a){if(a=k[a])a._applyShimCurrentVersion=a._applyShimCurrentVersion||0,a._applyShimValidatingVersion=a._applyShimValidatingVersion||0,a._applyShimNextVersion=(a._applyShimNextVersion||0)+1}function B(a){return a._applyShimCurrentVersion===a._applyShimNextVersion}function ka(a){a._applyShimValidatingVersion=a._applyShimNextVersion;a.b||(a.b=!0,ia.then(function(){a._applyShimCurrentVersion=a._applyShimNextVersion;a.b=!1}))}var C=!(window.ShadyDOM&&window.ShadyDOM.inUse),D;function F(a){D=a&&a.shimcssproperties?!1:C||!(navigator.userAgent.match(/AppleWebKit\/601|Edge\/15/)||!window.CSS||!CSS.supports||!CSS.supports("box-shadow","0 0 0 var(--foo)"))}window.ShadyCSS&&void 0!==window.ShadyCSS.nativeCss?D=window.ShadyCSS.nativeCss:window.ShadyCSS?(F(window.ShadyCSS),window.ShadyCSS=void 0):F(window.WebComponents&&window.WebComponents.flags);var G=D;var H=/(?:^|[;\s{]\s*)(--[\w-]*?)\s*:\s*(?:((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};{])+)|\{([^}]*)\}(?:(?=[;\s}])|$))/gi,I=/(?:^|\W+)@apply\s*\(?([^);\n]*)\)?/gi,la=/@media\s(.*)/;var J=new Set;function K(a){if(!a)return"";"string"===typeof a&&(a=p(a));return A(a,G)}function L(a){!a.__cssRules&&a.textContent&&(a.__cssRules=p(a.textContent));return a.__cssRules||null}function M(a,c,b,d){if(a){var e=!1,f=a.type;if(d&&f===v){var h=a.selector.match(la);h&&(window.matchMedia(h[1]).matches||(e=!0))}f===z?c(a):b&&f===x?b(a):f===y&&(e=!0);if((a=a.rules)&&!e){e=0;f=a.length;for(var g;e<f&&(g=a[e]);e++)M(g,c,b,d)}}}function N(a,c){var b=a.indexOf("var(");if(-1===b)return c(a,"","","");a:{var d=0;var e=b+3;for(var f=a.length;e<f;e++)if("("===a[e])d++;else if(")"===a[e]&&0===--d)break a;e=-1}d=a.substring(b+4,e);b=a.substring(0,b);a=N(a.substring(e+1),c);e=d.indexOf(",");return-1===e?c(b,d.trim(),"",a):c(b,d.substring(0,e).trim(),d.substring(e+1).trim(),a)}var ma=/;\s*/m,na=/^\s*(initial)|(inherit)\s*$/,O=/\s*!important/;function P(){this.a={}}P.prototype.set=function(a,c){a=a.trim();this.a[a]={h:c,i:{}}};P.prototype.get=function(a){a=a.trim();return this.a[a]||null};var Q=null;function R(){this.b=this.c=null;this.a=new P}R.prototype.o=function(a){a=I.test(a)||H.test(a);I.lastIndex=0;H.lastIndex=0;return a};R.prototype.m=function(a,c){if(void 0===a.a){var b=[];for(var d=a.content.querySelectorAll("style"),e=0;e<d.length;e++){var f=d[e];if(f.hasAttribute("shady-unscoped")){if(!C){var h=f.textContent;J.has(h)||(J.add(h),h=f.cloneNode(!0),document.head.appendChild(h));f.parentNode.removeChild(f)}}else b.push(f.textContent),f.parentNode.removeChild(f)}(b=b.join("").trim())?(d=document.createElement("style"),d.textContent=b,a.content.insertBefore(d,a.content.firstChild),b=d):b=null;a.a=b}return(a=a.a)?this.j(a,c):null};R.prototype.j=function(a,c){c=void 0===c?"":c;var b=L(a);this.l(b,c);a.textContent=K(b);return b};R.prototype.f=function(a){var c=this,b=L(a);M(b,function(a){":root"===a.selector&&(a.selector="html");c.g(a)});a.textContent=K(b);return b};R.prototype.l=function(a,c){var b=this;this.c=c;M(a,function(a){b.g(a)});this.c=null};R.prototype.g=function(a){a.cssText=oa(this,a.parsedCssText);":root"===a.selector&&(a.selector=":host > *")};function oa(a,c){c=c.replace(H,function(b,c,e,f){return pa(a,b,c,e,f)});return S(a,c)}function S(a,c){for(var b;b=I.exec(c);){var d=b[0],e=b[1];b=b.index;var f=c.slice(0,b+d.indexOf("@apply"));c=c.slice(b+d.length);var h=T(a,f);d=void 0;var g=a;e=e.replace(ma,"");var m=[];var l=g.a.get(e);l||(g.a.set(e,{}),l=g.a.get(e));if(l){g.c&&(l.i[g.c]=!0);var q=l.h;for(d in q)g=h&&h[d],l=[d,": var(",e,"_-_",d],g&&l.push(",",g.replace(O,"")),l.push(")"),O.test(q[d])&&l.push(" !important"),m.push(l.join(""))}d=m.join("; ");c=""+f+d+c;I.lastIndex=b+d.length}return c}function T(a,c){c=c.split(";");for(var b,d,e={},f=0,h;f<c.length;f++)if(b=c[f])if(h=b.split(":"),1<h.length){b=h[0].trim();var g=a;d=b;h=h.slice(1).join(":");var m=na.exec(h);m&&(m[1]?(g.b||(g.b=document.createElement("meta"),g.b.setAttribute("apply-shim-measure",""),g.b.style.all="initial",document.head.appendChild(g.b)),d=window.getComputedStyle(g.b).getPropertyValue(d)):d="apply-shim-inherit",h=d);d=h;e[b]=d}return e}function qa(a,c){if(Q)for(var b in c.i)b!==a.c&&Q(b)}function pa(a,c,b,d,e){d&&N(d,function(c,b){b&&a.a.get(b)&&(e="@apply "+b+";")});if(!e)return c;var f=S(a,""+e),h=c.slice(0,c.indexOf("--")),g=f=T(a,f),m=a.a.get(b),l=m&&m.h;l?g=Object.assign(Object.create(l),f):a.a.set(b,g);var q=[],w,X=!1;for(w in g){var E=f[w];void 0===E&&(E="initial");!l||w in l||(X=!0);q.push(""+b+"_-_"+w+": "+E)}X&&qa(a,m);m&&(m.h=g);d&&(h=c+";"+h);return""+h+q.join("; ")+";"}R.prototype.detectMixin=R.prototype.o;R.prototype.transformStyle=R.prototype.j;R.prototype.transformCustomStyle=R.prototype.f;R.prototype.transformRules=R.prototype.l;R.prototype.transformRule=R.prototype.g;R.prototype.transformTemplate=R.prototype.m;R.prototype._separator="_-_";Object.defineProperty(R.prototype,"invalidCallback",{get:function(){return Q},set:function(a){Q=a}});var U=new R;function V(){this.a=null;U.invalidCallback=ja}function W(a){a.a||(a.a=window.ShadyCSS.CustomStyleInterface,a.a&&(a.a.transformCallback=function(a){U.f(a)},a.a.validateCallback=function(){requestAnimationFrame(function(){a.a.enqueued&&a.flushCustomStyles()})}))}V.prototype.prepareTemplate=function(a,c){W(this);k[c]=a;c=U.m(a,c);a._styleAst=c};V.prototype.flushCustomStyles=function(){W(this);if(this.a){var a=this.a.processStyles();if(this.a.enqueued){for(var c=0;c<a.length;c++){var b=this.a.getStyleForCustomStyle(a[c]);b&&U.f(b)}this.a.enqueued=!1}}};V.prototype.styleSubtree=function(a,c){W(this);if(c)for(var b in c)null===b?a.style.removeProperty(b):a.style.setProperty(b,c[b]);if(a.shadowRoot)for(this.styleElement(a),a=a.shadowRoot.children||a.shadowRoot.childNodes,c=0;c<a.length;c++)this.styleSubtree(a[c]);else for(a=a.children||a.childNodes,c=0;c<a.length;c++)this.styleSubtree(a[c])};V.prototype.styleElement=function(a){W(this);var c=a.localName,b;c?-1<c.indexOf("-")?b=c:b=a.getAttribute&&a.getAttribute("is")||"":b=a.is;if((c=k[b])&&!B(c)){if(B(c)||c._applyShimValidatingVersion!==c._applyShimNextVersion)this.prepareTemplate(c,b),ka(c);if(a=a.shadowRoot)if(a=a.querySelector("style"))a.__cssRules=c._styleAst,a.textContent=K(c._styleAst)}};V.prototype.styleDocument=function(a){W(this);this.styleSubtree(document.body,a)};if(!window.ShadyCSS||!window.ShadyCSS.ScopingShim){var Y=new V,Z=window.ShadyCSS&&window.ShadyCSS.CustomStyleInterface;window.ShadyCSS={prepareTemplate:function(a,c){Y.flushCustomStyles();Y.prepareTemplate(a,c)},styleSubtree:function(a,c){Y.flushCustomStyles();Y.styleSubtree(a,c)},styleElement:function(a){Y.flushCustomStyles();Y.styleElement(a)},styleDocument:function(a){Y.flushCustomStyles();Y.styleDocument(a)},getComputedStyleValue:function(a,c){return(a=window.getComputedStyle(a).getPropertyValue(c))?a.trim():""},flushCustomStyles:function(){Y.flushCustomStyles()},nativeCss:G,nativeShadow:C};Z&&(window.ShadyCSS.CustomStyleInterface=Z)}window.ShadyCSS.ApplyShim=U}).call(this);(function(){"use strict";const userPolymer=window.Polymer;window.Polymer=function(info){return window.Polymer._polymerFn(info)};if(userPolymer){Object.assign(Polymer,userPolymer)}window.Polymer._polymerFn=function(info){throw new Error("Load polymer.html to use the Polymer() function.")};window.Polymer.version="2.6.0";window.JSCompiler_renameProperty=function(prop,obj){return prop}})();(function(){"use strict";let CSS_URL_RX=/(url\()([^)]*)(\))/g;let ABS_URL=/(^\/)|(^#)|(^[\w-\d]*:)/;let workingURL;let resolveDoc;function resolveUrl(url,baseURI){if(url&&ABS_URL.test(url)){return url}if(workingURL===undefined){workingURL=false;try{const u=new URL("b","http://a");u.pathname="c%20d";workingURL=u.href==="http://a/c%20d"}catch(e){}}if(!baseURI){baseURI=document.baseURI||window.location.href}if(workingURL){return new URL(url,baseURI).href}if(!resolveDoc){resolveDoc=document.implementation.createHTMLDocument("temp");resolveDoc.base=resolveDoc.createElement("base");resolveDoc.head.appendChild(resolveDoc.base);resolveDoc.anchor=resolveDoc.createElement("a");resolveDoc.body.appendChild(resolveDoc.anchor)}resolveDoc.base.href=baseURI;resolveDoc.anchor.href=url;return resolveDoc.anchor.href||url}function resolveCss(cssText,baseURI){return cssText.replace(CSS_URL_RX,function(m,pre,url,post){return pre+"'"+resolveUrl(url.replace(/["']/g,""),baseURI)+"'"+post})}function pathFromUrl(url){return url.substring(0,url.lastIndexOf("/")+1)}Polymer.ResolveUrl={resolveCss:resolveCss,resolveUrl:resolveUrl,pathFromUrl:pathFromUrl}})();(function(){"use strict";Polymer.Settings=Polymer.Settings||{};Polymer.Settings.useShadow=!window.ShadyDOM;Polymer.Settings.useNativeCSSProperties=Boolean(!window.ShadyCSS||window.ShadyCSS.nativeCss);Polymer.Settings.useNativeCustomElements=!window.customElements.polyfillWrapFlushCallback;let rootPath=Polymer.rootPath||Polymer.ResolveUrl.pathFromUrl(document.baseURI||window.location.href);Polymer.rootPath=rootPath;Polymer.setRootPath=function(path){Polymer.rootPath=path};let sanitizeDOMValue=Polymer.sanitizeDOMValue;Polymer.sanitizeDOMValue=sanitizeDOMValue;Polymer.setSanitizeDOMValue=function(newSanitizeDOMValue){Polymer.sanitizeDOMValue=newSanitizeDOMValue};let passiveTouchGestures=false;Polymer.passiveTouchGestures=passiveTouchGestures;Polymer.setPassiveTouchGestures=function(usePassive){Polymer.passiveTouchGestures=usePassive}})();(function(){"use strict";let dedupeId=0;function MixinFunction(){}MixinFunction.prototype.__mixinApplications;MixinFunction.prototype.__mixinSet;Polymer.dedupingMixin=function(mixin){let mixinApplications=mixin.__mixinApplications;if(!mixinApplications){mixinApplications=new WeakMap;mixin.__mixinApplications=mixinApplications}let mixinDedupeId=dedupeId++;function dedupingMixin(base){let baseSet=base.__mixinSet;if(baseSet&&baseSet[mixinDedupeId]){return base}let map=mixinApplications;let extended=map.get(base);if(!extended){extended=mixin(base);map.set(base,extended)}let mixinSet=Object.create(extended.__mixinSet||baseSet||null);mixinSet[mixinDedupeId]=true;extended.__mixinSet=mixinSet;return extended}return dedupingMixin}})();(function(){"use strict";const MODULE_STYLE_LINK_SELECTOR="link[rel=import][type~=css]";const INCLUDE_ATTR="include";const SHADY_UNSCOPED_ATTR="shady-unscoped";function importModule(moduleId){const PolymerDomModule=customElements.get("dom-module");if(!PolymerDomModule){return null}return PolymerDomModule.import(moduleId)}function styleForImport(importDoc){let container=importDoc.body?importDoc.body:importDoc;const importCss=Polymer.ResolveUrl.resolveCss(container.textContent,importDoc.baseURI);const style=document.createElement("style");style.textContent=importCss;return style}let templateWithAssetPath;const StyleGather={stylesFromModules(moduleIds){const modules=moduleIds.trim().split(/\s+/);const styles=[];for(let i=0;i<modules.length;i++){styles.push(...this.stylesFromModule(modules[i]))}return styles},stylesFromModule(moduleId){const m=importModule(moduleId);if(!m){console.warn("Could not find style data in module named",moduleId);return[]}if(m._styles===undefined){const styles=[];styles.push(...this._stylesFromModuleImports(m));const template=m.querySelector("template");if(template){styles.push(...this.stylesFromTemplate(template,m.assetpath))}m._styles=styles}return m._styles},stylesFromTemplate(template,baseURI){if(!template._styles){const styles=[];const e$=template.content.querySelectorAll("style");for(let i=0;i<e$.length;i++){let e=e$[i];let include=e.getAttribute(INCLUDE_ATTR);if(include){styles.push(...this.stylesFromModules(include).filter(function(item,index,self){return self.indexOf(item)===index}))}if(baseURI){e.textContent=Polymer.ResolveUrl.resolveCss(e.textContent,baseURI)}styles.push(e)}template._styles=styles}return template._styles},stylesFromModuleImports(moduleId){let m=importModule(moduleId);return m?this._stylesFromModuleImports(m):[]},_stylesFromModuleImports(module){const styles=[];const p$=module.querySelectorAll(MODULE_STYLE_LINK_SELECTOR);for(let i=0;i<p$.length;i++){let p=p$[i];if(p.import){const importDoc=p.import;const unscoped=p.hasAttribute(SHADY_UNSCOPED_ATTR);if(unscoped&&!importDoc._unscopedStyle){const style=styleForImport(importDoc);style.setAttribute(SHADY_UNSCOPED_ATTR,"");importDoc._unscopedStyle=style}else if(!importDoc._style){importDoc._style=styleForImport(importDoc)}styles.push(unscoped?importDoc._unscopedStyle:importDoc._style)}}return styles},cssFromModules(moduleIds){let modules=moduleIds.trim().split(/\s+/);let cssText="";for(let i=0;i<modules.length;i++){cssText+=this.cssFromModule(modules[i])}return cssText},cssFromModule(moduleId){let m=importModule(moduleId);if(m&&m._cssText===undefined){let cssText=this._cssFromModuleImports(m);let t=m.querySelector("template");if(t){cssText+=this.cssFromTemplate(t,m.assetpath)}m._cssText=cssText||null}if(!m){console.warn("Could not find style data in module named",moduleId)}return m&&m._cssText||""},cssFromTemplate(template,baseURI){let cssText="";const e$=this.stylesFromTemplate(template,baseURI);for(let i=0;i<e$.length;i++){let e=e$[i];if(e.parentNode){e.parentNode.removeChild(e)}cssText+=e.textContent}return cssText},cssFromModuleImports(moduleId){let m=importModule(moduleId);return m?this._cssFromModuleImports(m):""},_cssFromModuleImports(module){let cssText="";let styles=this._stylesFromModuleImports(module);for(let i=0;i<styles.length;i++){cssText+=styles[i].textContent}return cssText}};Polymer.StyleGather=StyleGather})();(function(){"use strict";let modules={};let lcModules={};function findModule(id){return modules[id]||lcModules[id.toLowerCase()]}function styleOutsideTemplateCheck(inst){if(inst.querySelector("style")){console.warn("dom-module %s has style outside template",inst.id)}}class DomModule extends HTMLElement{static get observedAttributes(){return["id"]}static import(id,selector){if(id){let m=findModule(id);if(m&&selector){return m.querySelector(selector)}return m}return null}attributeChangedCallback(name,old,value){if(old!==value){this.register()}}get assetpath(){if(!this.__assetpath){const owner=window.HTMLImports&&HTMLImports.importForElement?HTMLImports.importForElement(this)||document:this.ownerDocument;const url=Polymer.ResolveUrl.resolveUrl(this.getAttribute("assetpath")||"",owner.baseURI);this.__assetpath=Polymer.ResolveUrl.pathFromUrl(url)}return this.__assetpath}register(id){id=id||this.id;if(id){this.id=id;modules[id]=this;lcModules[id.toLowerCase()]=this;styleOutsideTemplateCheck(this)}}}DomModule.prototype["modules"]=modules;customElements.define("dom-module",DomModule);Polymer.DomModule=DomModule})();(function(){"use strict";const Path={isPath:function(path){return path.indexOf(".")>=0},root:function(path){let dotIndex=path.indexOf(".");if(dotIndex===-1){return path}return path.slice(0,dotIndex)},isAncestor:function(base,path){return base.indexOf(path+".")===0},isDescendant:function(base,path){return path.indexOf(base+".")===0},translate:function(base,newBase,path){return newBase+path.slice(base.length)},matches:function(base,path){return base===path||this.isAncestor(base,path)||this.isDescendant(base,path)},normalize:function(path){if(Array.isArray(path)){let parts=[];for(let i=0;i<path.length;i++){let args=path[i].toString().split(".");for(let j=0;j<args.length;j++){parts.push(args[j])}}return parts.join(".")}else{return path}},split:function(path){if(Array.isArray(path)){return this.normalize(path).split(".")}return path.toString().split(".")},get:function(root,path,info){let prop=root;let parts=this.split(path);for(let i=0;i<parts.length;i++){if(!prop){return}let part=parts[i];prop=prop[part]}if(info){info.path=parts.join(".")}return prop},set:function(root,path,value){let prop=root;let parts=this.split(path);let last=parts[parts.length-1];if(parts.length>1){for(let i=0;i<parts.length-1;i++){let part=parts[i];prop=prop[part];if(!prop){return}}prop[last]=value}else{prop[path]=value}return parts.join(".")}};Path.isDeep=Path.isPath;Polymer.Path=Path})();(function(){"use strict";const caseMap={};const DASH_TO_CAMEL=/-[a-z]/g;const CAMEL_TO_DASH=/([A-Z])/g;const CaseMap={dashToCamelCase(dash){return caseMap[dash]||(caseMap[dash]=dash.indexOf("-")<0?dash:dash.replace(DASH_TO_CAMEL,m=>m[1].toUpperCase()))},camelToDashCase(camel){return caseMap[camel]||(caseMap[camel]=camel.replace(CAMEL_TO_DASH,"-$1").toLowerCase())}};Polymer.CaseMap=CaseMap})();(function(){"use strict";let microtaskCurrHandle=0;let microtaskLastHandle=0;let microtaskCallbacks=[];let microtaskNodeContent=0;let microtaskNode=document.createTextNode("");new window.MutationObserver(microtaskFlush).observe(microtaskNode,{characterData:true});function microtaskFlush(){const len=microtaskCallbacks.length;for(let i=0;i<len;i++){let cb=microtaskCallbacks[i];if(cb){try{cb()}catch(e){setTimeout(()=>{throw e})}}}microtaskCallbacks.splice(0,len);microtaskLastHandle+=len}Polymer.Async={timeOut:{after(delay){return{run(fn){return window.setTimeout(fn,delay)},cancel(handle){window.clearTimeout(handle)}}},run(fn,delay){return window.setTimeout(fn,delay)},cancel(handle){window.clearTimeout(handle)}},animationFrame:{run(fn){return window.requestAnimationFrame(fn)},cancel(handle){window.cancelAnimationFrame(handle)}},idlePeriod:{run(fn){return window.requestIdleCallback?window.requestIdleCallback(fn):window.setTimeout(fn,16)},cancel(handle){window.cancelIdleCallback?window.cancelIdleCallback(handle):window.clearTimeout(handle)}},microTask:{run(callback){microtaskNode.textContent=microtaskNodeContent++;microtaskCallbacks.push(callback);return microtaskCurrHandle++},cancel(handle){const idx=handle-microtaskLastHandle;if(idx>=0){if(!microtaskCallbacks[idx]){throw new Error("invalid async handle: "+handle)}microtaskCallbacks[idx]=null}}}}})();(function(){"use strict";const microtask=Polymer.Async.microTask;Polymer.PropertiesChanged=Polymer.dedupingMixin(superClass=>{class PropertiesChanged extends superClass{static createProperties(props){const proto=this.prototype;for(let prop in props){if(!(prop in proto)){proto._createPropertyAccessor(prop)}}}static attributeNameForProperty(property){return property.toLowerCase()}static typeForProperty(name){}_createPropertyAccessor(property,readOnly){this._addPropertyToAttributeMap(property);if(!this.hasOwnProperty("__dataHasAccessor")){this.__dataHasAccessor=Object.assign({},this.__dataHasAccessor)}if(!this.__dataHasAccessor[property]){this.__dataHasAccessor[property]=true;this._definePropertyAccessor(property,readOnly)}}_addPropertyToAttributeMap(property){if(!this.hasOwnProperty("__dataAttributes")){this.__dataAttributes=Object.assign({},this.__dataAttributes)}if(!this.__dataAttributes[property]){const attr=this.constructor.attributeNameForProperty(property);this.__dataAttributes[attr]=property}}_definePropertyAccessor(property,readOnly){Object.defineProperty(this,property,{get(){return this._getProperty(property)},set:readOnly?function(){}:function(value){this._setProperty(property,value)}})}constructor(){super();this.__dataEnabled=false;this.__dataReady=false;this.__dataInvalid=false;this.__data={};this.__dataPending=null;this.__dataOld=null;this.__dataInstanceProps=null;this.__serializing=false;this._initializeProperties()}ready(){this.__dataReady=true;this._flushProperties()}_initializeProperties(){for(let p in this.__dataHasAccessor){if(this.hasOwnProperty(p)){this.__dataInstanceProps=this.__dataInstanceProps||{};this.__dataInstanceProps[p]=this[p];delete this[p]}}}_initializeInstanceProperties(props){Object.assign(this,props)}_setProperty(property,value){if(this._setPendingProperty(property,value)){this._invalidateProperties()}}_getProperty(property){return this.__data[property]}_setPendingProperty(property,value,ext){let old=this.__data[property];let changed=this._shouldPropertyChange(property,value,old);if(changed){if(!this.__dataPending){this.__dataPending={};this.__dataOld={}}if(this.__dataOld&&!(property in this.__dataOld)){this.__dataOld[property]=old}this.__data[property]=value;this.__dataPending[property]=value}return changed}_invalidateProperties(){if(!this.__dataInvalid&&this.__dataReady){this.__dataInvalid=true;microtask.run(()=>{if(this.__dataInvalid){this.__dataInvalid=false;this._flushProperties()}})}}_enableProperties(){if(!this.__dataEnabled){this.__dataEnabled=true;if(this.__dataInstanceProps){this._initializeInstanceProperties(this.__dataInstanceProps);this.__dataInstanceProps=null}this.ready()}}_flushProperties(){const props=this.__data;const changedProps=this.__dataPending;const old=this.__dataOld;if(this._shouldPropertiesChange(props,changedProps,old)){this.__dataPending=null;this.__dataOld=null;this._propertiesChanged(props,changedProps,old)}}_shouldPropertiesChange(currentProps,changedProps,oldProps){return Boolean(changedProps)}_propertiesChanged(currentProps,changedProps,oldProps){}_shouldPropertyChange(property,value,old){return old!==value&&(old===old||value===value)}attributeChangedCallback(name,old,value){if(old!==value){this._attributeToProperty(name,value)}if(super.attributeChangedCallback){super.attributeChangedCallback(name,old,value)}}_attributeToProperty(attribute,value,type){if(!this.__serializing){const map=this.__dataAttributes;const property=map&&map[attribute]||attribute;this[property]=this._deserializeValue(value,type||this.constructor.typeForProperty(property))}}_propertyToAttribute(property,attribute,value){this.__serializing=true;value=arguments.length<3?this[property]:value;this._valueToNodeAttribute(this,value,attribute||this.constructor.attributeNameForProperty(property));this.__serializing=false}_valueToNodeAttribute(node,value,attribute){const str=this._serializeValue(value);if(str===undefined){node.removeAttribute(attribute)}else{node.setAttribute(attribute,str)}}_serializeValue(value){switch(typeof value){case"boolean":return value?"":undefined;default:return value!=null?value.toString():undefined}}_deserializeValue(value,type){switch(type){case Boolean:return value!==null;case Number:return Number(value);default:return value}}}return PropertiesChanged})})();(function(){"use strict";let caseMap=Polymer.CaseMap;const nativeProperties={};let proto=HTMLElement.prototype;while(proto){let props=Object.getOwnPropertyNames(proto);for(let i=0;i<props.length;i++){nativeProperties[props[i]]=true}proto=Object.getPrototypeOf(proto)}function saveAccessorValue(model,property){if(!nativeProperties[property]){let value=model[property];if(value!==undefined){if(model.__data){model._setPendingProperty(property,value)}else{if(!model.__dataProto){model.__dataProto={}}else if(!model.hasOwnProperty(JSCompiler_renameProperty("__dataProto",model))){model.__dataProto=Object.create(model.__dataProto)}model.__dataProto[property]=value}}}}Polymer.PropertyAccessors=Polymer.dedupingMixin(superClass=>{const base=Polymer.PropertiesChanged(superClass);class PropertyAccessors extends base{static createPropertiesForAttributes(){let a$=this.observedAttributes;for(let i=0;i<a$.length;i++){this.prototype._createPropertyAccessor(caseMap.dashToCamelCase(a$[i]))}}static attributeNameForProperty(property){return caseMap.camelToDashCase(property)}_initializeProperties(){if(this.__dataProto){this._initializeProtoProperties(this.__dataProto);this.__dataProto=null}super._initializeProperties()}_initializeProtoProperties(props){for(let p in props){this._setProperty(p,props[p])}}_ensureAttribute(attribute,value){const el=this;if(!el.hasAttribute(attribute)){this._valueToNodeAttribute(el,value,attribute)}}_serializeValue(value){switch(typeof value){case"object":if(value instanceof Date){return value.toString()}else if(value){try{return JSON.stringify(value)}catch(x){return""}}default:return super._serializeValue(value)}}_deserializeValue(value,type){let outValue;switch(type){case Object:try{outValue=JSON.parse(value)}catch(x){outValue=value}break;case Array:try{outValue=JSON.parse(value)}catch(x){outValue=null;console.warn(`Polymer::Attributes: couldn't decode Array as JSON: ${value}`)}break;case Date:outValue=isNaN(value)?String(value):Number(value);outValue=new Date(outValue);break;default:outValue=super._deserializeValue(value,type);break}return outValue}_definePropertyAccessor(property,readOnly){saveAccessorValue(this,property);super._definePropertyAccessor(property,readOnly)}_hasAccessor(property){return this.__dataHasAccessor&&this.__dataHasAccessor[property]}_isPropertyPending(prop){return Boolean(this.__dataPending&&prop in this.__dataPending)}}return PropertyAccessors})})();(function(){"use strict";const templateExtensions={"dom-if":true,"dom-repeat":true};function wrapTemplateExtension(node){let is=node.getAttribute("is");if(is&&templateExtensions[is]){let t=node;t.removeAttribute("is");node=t.ownerDocument.createElement(is);t.parentNode.replaceChild(node,t);node.appendChild(t);while(t.attributes.length){node.setAttribute(t.attributes[0].name,t.attributes[0].value);t.removeAttribute(t.attributes[0].name)}}return node}function findTemplateNode(root,nodeInfo){let parent=nodeInfo.parentInfo&&findTemplateNode(root,nodeInfo.parentInfo);if(parent){for(let n=parent.firstChild,i=0;n;n=n.nextSibling){if(nodeInfo.parentIndex===i++){return n}}}else{return root}}function applyIdToMap(inst,map,node,nodeInfo){if(nodeInfo.id){map[nodeInfo.id]=node}}function applyEventListener(inst,node,nodeInfo){if(nodeInfo.events&&nodeInfo.events.length){for(let j=0,e$=nodeInfo.events,e;j<e$.length&&(e=e$[j]);j++){inst._addMethodEventListenerToNode(node,e.name,e.value,inst)}}}function applyTemplateContent(inst,node,nodeInfo){if(nodeInfo.templateInfo){node._templateInfo=nodeInfo.templateInfo}}function createNodeEventHandler(context,eventName,methodName){context=context._methodHost||context;let handler=function(e){if(context[methodName]){context[methodName](e,e.detail)}else{console.warn("listener method `"+methodName+"` not defined")}};return handler}Polymer.TemplateStamp=Polymer.dedupingMixin(superClass=>{class TemplateStamp extends superClass{static _parseTemplate(template,outerTemplateInfo){if(!template._templateInfo){let templateInfo=template._templateInfo={};templateInfo.nodeInfoList=[];templateInfo.stripWhiteSpace=outerTemplateInfo&&outerTemplateInfo.stripWhiteSpace||template.hasAttribute("strip-whitespace");this._parseTemplateContent(template,templateInfo,{parent:null})}return template._templateInfo}static _parseTemplateContent(template,templateInfo,nodeInfo){return this._parseTemplateNode(template.content,templateInfo,nodeInfo)}static _parseTemplateNode(node,templateInfo,nodeInfo){let noted;let element=node;if(element.localName=="template"&&!element.hasAttribute("preserve-content")){noted=this._parseTemplateNestedTemplate(element,templateInfo,nodeInfo)||noted}else if(element.localName==="slot"){templateInfo.hasInsertionPoint=true}if(element.firstChild){noted=this._parseTemplateChildNodes(element,templateInfo,nodeInfo)||noted}if(element.hasAttributes&&element.hasAttributes()){noted=this._parseTemplateNodeAttributes(element,templateInfo,nodeInfo)||noted}return noted}static _parseTemplateChildNodes(root,templateInfo,nodeInfo){if(root.localName==="script"||root.localName==="style"){return}for(let node=root.firstChild,parentIndex=0,next;node;node=next){if(node.localName=="template"){node=wrapTemplateExtension(node)}next=node.nextSibling;if(node.nodeType===Node.TEXT_NODE){let n=next;while(n&&n.nodeType===Node.TEXT_NODE){node.textContent+=n.textContent;next=n.nextSibling;root.removeChild(n);n=next}if(templateInfo.stripWhiteSpace&&!node.textContent.trim()){root.removeChild(node);continue}}let childInfo={parentIndex:parentIndex,parentInfo:nodeInfo};if(this._parseTemplateNode(node,templateInfo,childInfo)){childInfo.infoIndex=templateInfo.nodeInfoList.push(childInfo)-1}if(node.parentNode){parentIndex++}}}static _parseTemplateNestedTemplate(node,outerTemplateInfo,nodeInfo){let templateInfo=this._parseTemplate(node,outerTemplateInfo);let content=templateInfo.content=node.content.ownerDocument.createDocumentFragment();content.appendChild(node.content);nodeInfo.templateInfo=templateInfo;return true}static _parseTemplateNodeAttributes(node,templateInfo,nodeInfo){let noted=false;let attrs=Array.from(node.attributes);for(let i=attrs.length-1,a;a=attrs[i];i--){noted=this._parseTemplateNodeAttribute(node,templateInfo,nodeInfo,a.name,a.value)||noted}return noted}static _parseTemplateNodeAttribute(node,templateInfo,nodeInfo,name,value){if(name.slice(0,3)==="on-"){node.removeAttribute(name);nodeInfo.events=nodeInfo.events||[];nodeInfo.events.push({name:name.slice(3),value:value});return true}else if(name==="id"){nodeInfo.id=value;return true}return false}static _contentForTemplate(template){let templateInfo=template._templateInfo;return templateInfo&&templateInfo.content||template.content}_stampTemplate(template){if(template&&!template.content&&window.HTMLTemplateElement&&HTMLTemplateElement.decorate){HTMLTemplateElement.decorate(template)}let templateInfo=this.constructor._parseTemplate(template);let nodeInfo=templateInfo.nodeInfoList;let content=templateInfo.content||template.content;let dom=document.importNode(content,true);dom.__noInsertionPoint=!templateInfo.hasInsertionPoint;let nodes=dom.nodeList=new Array(nodeInfo.length);dom.$={};for(let i=0,l=nodeInfo.length,info;i<l&&(info=nodeInfo[i]);i++){let node=nodes[i]=findTemplateNode(dom,info);applyIdToMap(this,dom.$,node,info);applyTemplateContent(this,node,info);applyEventListener(this,node,info)}dom=dom;return dom}_addMethodEventListenerToNode(node,eventName,methodName,context){context=context||node;let handler=createNodeEventHandler(context,eventName,methodName);this._addEventListenerToNode(node,eventName,handler);return handler}_addEventListenerToNode(node,eventName,handler){node.addEventListener(eventName,handler)}_removeEventListenerFromNode(node,eventName,handler){node.removeEventListener(eventName,handler)}}return TemplateStamp})})();(function(){"use strict";const CaseMap=Polymer.CaseMap;let dedupeId=0;const TYPES={COMPUTE:"__computeEffects",REFLECT:"__reflectEffects",NOTIFY:"__notifyEffects",PROPAGATE:"__propagateEffects",OBSERVE:"__observeEffects",READ_ONLY:"__readOnly"};const capitalAttributeRegex=/[A-Z]/;let DataTrigger;let DataEffect;let PropertyEffectsType;function ensureOwnEffectMap(model,type){let effects=model[type];if(!effects){effects=model[type]={}}else if(!model.hasOwnProperty(type)){effects=model[type]=Object.create(model[type]);for(let p in effects){let protoFx=effects[p];let instFx=effects[p]=Array(protoFx.length);for(let i=0;i<protoFx.length;i++){instFx[i]=protoFx[i]}}}return effects}function runEffects(inst,effects,props,oldProps,hasPaths,extraArgs){if(effects){let ran=false;let id=dedupeId++;for(let prop in props){if(runEffectsForProperty(inst,effects,id,prop,props,oldProps,hasPaths,extraArgs)){ran=true}}return ran}return false}function runEffectsForProperty(inst,effects,dedupeId,prop,props,oldProps,hasPaths,extraArgs){let ran=false;let rootProperty=hasPaths?Polymer.Path.root(prop):prop;let fxs=effects[rootProperty];if(fxs){for(let i=0,l=fxs.length,fx;i<l&&(fx=fxs[i]);i++){if((!fx.info||fx.info.lastRun!==dedupeId)&&(!hasPaths||pathMatchesTrigger(prop,fx.trigger))){if(fx.info){fx.info.lastRun=dedupeId}fx.fn(inst,prop,props,oldProps,fx.info,hasPaths,extraArgs);ran=true}}}return ran}function pathMatchesTrigger(path,trigger){if(trigger){let triggerPath=trigger.name;return triggerPath==path||trigger.structured&&Polymer.Path.isAncestor(triggerPath,path)||trigger.wildcard&&Polymer.Path.isDescendant(triggerPath,path)}else{return true}}function runObserverEffect(inst,property,props,oldProps,info){let fn=typeof info.method==="string"?inst[info.method]:info.method;let changedProp=info.property;if(fn){fn.call(inst,inst.__data[changedProp],oldProps[changedProp])}else if(!info.dynamicFn){console.warn("observer method `"+info.method+"` not defined")}}function runNotifyEffects(inst,notifyProps,props,oldProps,hasPaths){let fxs=inst[TYPES.NOTIFY];let notified;let id=dedupeId++;for(let prop in notifyProps){if(notifyProps[prop]){if(fxs&&runEffectsForProperty(inst,fxs,id,prop,props,oldProps,hasPaths)){notified=true}else if(hasPaths&&notifyPath(inst,prop,props)){notified=true}}}let host;if(notified&&(host=inst.__dataHost)&&host._invalidateProperties){host._invalidateProperties()}}function notifyPath(inst,path,props){let rootProperty=Polymer.Path.root(path);if(rootProperty!==path){let eventName=Polymer.CaseMap.camelToDashCase(rootProperty)+"-changed";dispatchNotifyEvent(inst,eventName,props[path],path);return true}return false}function dispatchNotifyEvent(inst,eventName,value,path){let detail={value:value,queueProperty:true};if(path){detail.path=path}inst.dispatchEvent(new CustomEvent(eventName,{detail:detail}))}function runNotifyEffect(inst,property,props,oldProps,info,hasPaths){let rootProperty=hasPaths?Polymer.Path.root(property):property;let path=rootProperty!=property?property:null;let value=path?Polymer.Path.get(inst,path):inst.__data[property];if(path&&value===undefined){value=props[property]}dispatchNotifyEvent(inst,info.eventName,value,path)}function handleNotification(event,inst,fromProp,toPath,negate){let value;let detail=event.detail;let fromPath=detail&&detail.path;if(fromPath){toPath=Polymer.Path.translate(fromProp,toPath,fromPath);value=detail&&detail.value}else{value=event.target[fromProp]}value=negate?!value:value;if(!inst[TYPES.READ_ONLY]||!inst[TYPES.READ_ONLY][toPath]){if(inst._setPendingPropertyOrPath(toPath,value,true,Boolean(fromPath))&&(!detail||!detail.queueProperty)){inst._invalidateProperties()}}}function runReflectEffect(inst,property,props,oldProps,info){let value=inst.__data[property];if(Polymer.sanitizeDOMValue){value=Polymer.sanitizeDOMValue(value,info.attrName,"attribute",inst)}inst._propertyToAttribute(property,info.attrName,value)}function runComputedEffects(inst,changedProps,oldProps,hasPaths){let computeEffects=inst[TYPES.COMPUTE];if(computeEffects){let inputProps=changedProps;while(runEffects(inst,computeEffects,inputProps,oldProps,hasPaths)){Object.assign(oldProps,inst.__dataOld);Object.assign(changedProps,inst.__dataPending);inputProps=inst.__dataPending;inst.__dataPending=null}}}function runComputedEffect(inst,property,props,oldProps,info){let result=runMethodEffect(inst,property,props,oldProps,info);let computedProp=info.methodInfo;if(inst.__dataHasAccessor&&inst.__dataHasAccessor[computedProp]){inst._setPendingProperty(computedProp,result,true)}else{inst[computedProp]=result}}function computeLinkedPaths(inst,path,value){let links=inst.__dataLinkedPaths;if(links){let link;for(let a in links){let b=links[a];if(Polymer.Path.isDescendant(a,path)){link=Polymer.Path.translate(a,b,path);inst._setPendingPropertyOrPath(link,value,true,true)}else if(Polymer.Path.isDescendant(b,path)){link=Polymer.Path.translate(b,a,path);inst._setPendingPropertyOrPath(link,value,true,true)}}}}function addBinding(constructor,templateInfo,nodeInfo,kind,target,parts,literal){nodeInfo.bindings=nodeInfo.bindings||[];let binding={kind:kind,target:target,parts:parts,literal:literal,isCompound:parts.length!==1};nodeInfo.bindings.push(binding);if(shouldAddListener(binding)){let{event:event,negate:negate}=binding.parts[0];binding.listenerEvent=event||CaseMap.camelToDashCase(target)+"-changed";binding.listenerNegate=negate}let index=templateInfo.nodeInfoList.length;for(let i=0;i<binding.parts.length;i++){let part=binding.parts[i];part.compoundIndex=i;addEffectForBindingPart(constructor,templateInfo,binding,part,index)}}function addEffectForBindingPart(constructor,templateInfo,binding,part,index){if(!part.literal){if(binding.kind==="attribute"&&binding.target[0]==="-"){console.warn("Cannot set attribute "+binding.target+' because "-" is not a valid attribute starting character')}else{let dependencies=part.dependencies;let info={index:index,binding:binding,part:part,evaluator:constructor};for(let j=0;j<dependencies.length;j++){let trigger=dependencies[j];if(typeof trigger=="string"){trigger=parseArg(trigger);trigger.wildcard=true}constructor._addTemplatePropertyEffect(templateInfo,trigger.rootProperty,{fn:runBindingEffect,info:info,trigger:trigger})}}}}function runBindingEffect(inst,path,props,oldProps,info,hasPaths,nodeList){let node=nodeList[info.index];let binding=info.binding;let part=info.part;if(hasPaths&&part.source&&path.length>part.source.length&&binding.kind=="property"&&!binding.isCompound&&node.__isPropertyEffectsClient&&node.__dataHasAccessor&&node.__dataHasAccessor[binding.target]){let value=props[path];path=Polymer.Path.translate(part.source,binding.target,path);if(node._setPendingPropertyOrPath(path,value,false,true)){inst._enqueueClient(node)}}else{let value=info.evaluator._evaluateBinding(inst,part,path,props,oldProps,hasPaths);applyBindingValue(inst,node,binding,part,value)}}function applyBindingValue(inst,node,binding,part,value){value=computeBindingValue(node,value,binding,part);if(Polymer.sanitizeDOMValue){value=Polymer.sanitizeDOMValue(value,binding.target,binding.kind,node)}if(binding.kind=="attribute"){inst._valueToNodeAttribute(node,value,binding.target)}else{let prop=binding.target;if(node.__isPropertyEffectsClient&&node.__dataHasAccessor&&node.__dataHasAccessor[prop]){if(!node[TYPES.READ_ONLY]||!node[TYPES.READ_ONLY][prop]){if(node._setPendingProperty(prop,value)){inst._enqueueClient(node)}}}else{inst._setUnmanagedPropertyToNode(node,prop,value)}}}function computeBindingValue(node,value,binding,part){if(binding.isCompound){let storage=node.__dataCompoundStorage[binding.target];storage[part.compoundIndex]=value;value=storage.join("")}if(binding.kind!=="attribute"){if(binding.target==="textContent"||binding.target==="value"&&(node.localName==="input"||node.localName==="textarea")){value=value==undefined?"":value}}return value}function shouldAddListener(binding){return Boolean(binding.target)&&binding.kind!="attribute"&&binding.kind!="text"&&!binding.isCompound&&binding.parts[0].mode==="{"}function setupBindings(inst,templateInfo){let{nodeList:nodeList,nodeInfoList:nodeInfoList}=templateInfo;if(nodeInfoList.length){for(let i=0;i<nodeInfoList.length;i++){let info=nodeInfoList[i];let node=nodeList[i];let bindings=info.bindings;if(bindings){for(let i=0;i<bindings.length;i++){let binding=bindings[i];setupCompoundStorage(node,binding);addNotifyListener(node,inst,binding)}}node.__dataHost=inst}}}function setupCompoundStorage(node,binding){if(binding.isCompound){let storage=node.__dataCompoundStorage||(node.__dataCompoundStorage={});let parts=binding.parts;let literals=new Array(parts.length);for(let j=0;j<parts.length;j++){literals[j]=parts[j].literal}let target=binding.target;storage[target]=literals;if(binding.literal&&binding.kind=="property"){node[target]=binding.literal}}}function addNotifyListener(node,inst,binding){if(binding.listenerEvent){let part=binding.parts[0];node.addEventListener(binding.listenerEvent,function(e){handleNotification(e,inst,binding.target,part.source,part.negate)})}}function createMethodEffect(model,sig,type,effectFn,methodInfo,dynamicFn){dynamicFn=sig.static||dynamicFn&&(typeof dynamicFn!=="object"||dynamicFn[sig.methodName]);let info={methodName:sig.methodName,args:sig.args,methodInfo:methodInfo,dynamicFn:dynamicFn};for(let i=0,arg;i<sig.args.length&&(arg=sig.args[i]);i++){if(!arg.literal){model._addPropertyEffect(arg.rootProperty,type,{fn:effectFn,info:info,trigger:arg})}}if(dynamicFn){model._addPropertyEffect(sig.methodName,type,{fn:effectFn,info:info})}}function runMethodEffect(inst,property,props,oldProps,info){let context=inst._methodHost||inst;let fn=context[info.methodName];if(fn){let args=marshalArgs(inst.__data,info.args,property,props);return fn.apply(context,args)}else if(!info.dynamicFn){console.warn("method `"+info.methodName+"` not defined")}}const emptyArray=[];const IDENT="(?:"+"[a-zA-Z_$][\\w.:$\\-*]*"+")";const NUMBER="(?:"+"[-+]?[0-9]*\\.?[0-9]+(?:[eE][-+]?[0-9]+)?"+")";const SQUOTE_STRING="(?:"+"'(?:[^'\\\\]|\\\\.)*'"+")";const DQUOTE_STRING="(?:"+'"(?:[^"\\\\]|\\\\.)*"'+")";const STRING="(?:"+SQUOTE_STRING+"|"+DQUOTE_STRING+")";const ARGUMENT="(?:("+IDENT+"|"+NUMBER+"|"+STRING+")\\s*"+")";const ARGUMENTS="(?:"+ARGUMENT+"(?:,\\s*"+ARGUMENT+")*"+")";const ARGUMENT_LIST="(?:"+"\\(\\s*"+"(?:"+ARGUMENTS+"?"+")"+"\\)\\s*"+")";const BINDING="("+IDENT+"\\s*"+ARGUMENT_LIST+"?"+")";const OPEN_BRACKET="(\\[\\[|{{)"+"\\s*";const CLOSE_BRACKET="(?:]]|}})";const NEGATE="(?:(!)\\s*)?";const EXPRESSION=OPEN_BRACKET+NEGATE+BINDING+CLOSE_BRACKET;const bindingRegex=new RegExp(EXPRESSION,"g");function literalFromParts(parts){let s="";for(let i=0;i<parts.length;i++){let literal=parts[i].literal;s+=literal||""}return s}function parseMethod(expression){let m=expression.match(/([^\s]+?)\(([\s\S]*)\)/);if(m){let methodName=m[1];let sig={methodName:methodName,static:true,args:emptyArray};if(m[2].trim()){let args=m[2].replace(/\\,/g,"&comma;").split(",");return parseArgs(args,sig)}else{return sig}}return null}function parseArgs(argList,sig){sig.args=argList.map(function(rawArg){let arg=parseArg(rawArg);if(!arg.literal){sig.static=false}return arg},this);return sig}function parseArg(rawArg){let arg=rawArg.trim().replace(/&comma;/g,",").replace(/\\(.)/g,"$1");let a={name:arg,value:"",literal:false};let fc=arg[0];if(fc==="-"){fc=arg[1]}if(fc>="0"&&fc<="9"){fc="#"}switch(fc){case"'":case'"':a.value=arg.slice(1,-1);a.literal=true;break;case"#":a.value=Number(arg);a.literal=true;break}if(!a.literal){a.rootProperty=Polymer.Path.root(arg);a.structured=Polymer.Path.isPath(arg);if(a.structured){a.wildcard=arg.slice(-2)==".*";if(a.wildcard){a.name=arg.slice(0,-2)}}}return a}function marshalArgs(data,args,path,props){let values=[];for(let i=0,l=args.length;i<l;i++){let arg=args[i];let name=arg.name;let v;if(arg.literal){v=arg.value}else{if(arg.structured){v=Polymer.Path.get(data,name);if(v===undefined){v=props[name]}}else{v=data[name]}}if(arg.wildcard){let baseChanged=name.indexOf(path+".")===0;let matches=path.indexOf(name)===0&&!baseChanged;values[i]={path:matches?path:name,value:matches?props[path]:v,base:v}}else{values[i]=v}}return values}function notifySplices(inst,array,path,splices){let splicesPath=path+".splices";inst.notifyPath(splicesPath,{indexSplices:splices});inst.notifyPath(path+".length",array.length);inst.__data[splicesPath]={indexSplices:null}}function notifySplice(inst,array,path,index,addedCount,removed){notifySplices(inst,array,path,[{index:index,addedCount:addedCount,removed:removed,object:array,type:"splice"}])}function upper(name){return name[0].toUpperCase()+name.substring(1)}Polymer.PropertyEffects=Polymer.dedupingMixin(superClass=>{const propertyEffectsBase=Polymer.TemplateStamp(Polymer.PropertyAccessors(superClass));class PropertyEffects extends propertyEffectsBase{constructor(){super();this.__isPropertyEffectsClient=true;this.__dataCounter=0;this.__dataClientsReady;this.__dataPendingClients;this.__dataToNotify;this.__dataLinkedPaths;this.__dataHasPaths;this.__dataCompoundStorage;this.__dataHost;this.__dataTemp;this.__dataClientsInitialized;this.__data;this.__dataPending;this.__dataOld;this.__computeEffects;this.__reflectEffects;this.__notifyEffects;this.__propagateEffects;this.__observeEffects;this.__readOnly;this.__templateInfo}get PROPERTY_EFFECT_TYPES(){return TYPES}_initializeProperties(){super._initializeProperties();hostStack.registerHost(this);this.__dataClientsReady=false;this.__dataPendingClients=null;this.__dataToNotify=null;this.__dataLinkedPaths=null;this.__dataHasPaths=false;this.__dataCompoundStorage=this.__dataCompoundStorage||null;this.__dataHost=this.__dataHost||null;this.__dataTemp={};this.__dataClientsInitialized=false}_initializeProtoProperties(props){this.__data=Object.create(props);this.__dataPending=Object.create(props);this.__dataOld={}}_initializeInstanceProperties(props){let readOnly=this[TYPES.READ_ONLY];for(let prop in props){if(!readOnly||!readOnly[prop]){this.__dataPending=this.__dataPending||{};this.__dataOld=this.__dataOld||{};this.__data[prop]=this.__dataPending[prop]=props[prop]}}}_addPropertyEffect(property,type,effect){this._createPropertyAccessor(property,type==TYPES.READ_ONLY);let effects=ensureOwnEffectMap(this,type)[property];if(!effects){effects=this[type][property]=[]}effects.push(effect)}_removePropertyEffect(property,type,effect){let effects=ensureOwnEffectMap(this,type)[property];let idx=effects.indexOf(effect);if(idx>=0){effects.splice(idx,1)}}_hasPropertyEffect(property,type){let effects=this[type];return Boolean(effects&&effects[property])}_hasReadOnlyEffect(property){return this._hasPropertyEffect(property,TYPES.READ_ONLY)}_hasNotifyEffect(property){return this._hasPropertyEffect(property,TYPES.NOTIFY)}_hasReflectEffect(property){return this._hasPropertyEffect(property,TYPES.REFLECT)}_hasComputedEffect(property){return this._hasPropertyEffect(property,TYPES.COMPUTE)}_setPendingPropertyOrPath(path,value,shouldNotify,isPathNotification){if(isPathNotification||Polymer.Path.root(Array.isArray(path)?path[0]:path)!==path){if(!isPathNotification){let old=Polymer.Path.get(this,path);path=Polymer.Path.set(this,path,value);if(!path||!super._shouldPropertyChange(path,value,old)){return false}}this.__dataHasPaths=true;if(this._setPendingProperty(path,value,shouldNotify)){computeLinkedPaths(this,path,value);return true}}else{if(this.__dataHasAccessor&&this.__dataHasAccessor[path]){return this._setPendingProperty(path,value,shouldNotify)}else{this[path]=value}}return false}_setUnmanagedPropertyToNode(node,prop,value){if(value!==node[prop]||typeof value=="object"){node[prop]=value}}_setPendingProperty(property,value,shouldNotify){let isPath=this.__dataHasPaths&&Polymer.Path.isPath(property);let prevProps=isPath?this.__dataTemp:this.__data;if(this._shouldPropertyChange(property,value,prevProps[property])){if(!this.__dataPending){this.__dataPending={};this.__dataOld={}}if(!(property in this.__dataOld)){this.__dataOld[property]=this.__data[property]}if(isPath){this.__dataTemp[property]=value}else{this.__data[property]=value}this.__dataPending[property]=value;if(isPath||this[TYPES.NOTIFY]&&this[TYPES.NOTIFY][property]){this.__dataToNotify=this.__dataToNotify||{};this.__dataToNotify[property]=shouldNotify}return true}return false}_setProperty(property,value){if(this._setPendingProperty(property,value,true)){this._invalidateProperties()}}_invalidateProperties(){if(this.__dataReady){this._flushProperties()}}_enqueueClient(client){this.__dataPendingClients=this.__dataPendingClients||[];if(client!==this){this.__dataPendingClients.push(client)}}_flushProperties(){this.__dataCounter++;super._flushProperties();this.__dataCounter--}_flushClients(){if(!this.__dataClientsReady){this.__dataClientsReady=true;this._readyClients();this.__dataReady=true}else{this.__enableOrFlushClients()}}__enableOrFlushClients(){let clients=this.__dataPendingClients;if(clients){this.__dataPendingClients=null;for(let i=0;i<clients.length;i++){let client=clients[i];if(!client.__dataEnabled){client._enableProperties()}else if(client.__dataPending){client._flushProperties()}}}}_readyClients(){this.__enableOrFlushClients()}setProperties(props,setReadOnly){for(let path in props){if(setReadOnly||!this[TYPES.READ_ONLY]||!this[TYPES.READ_ONLY][path]){this._setPendingPropertyOrPath(path,props[path],true)}}this._invalidateProperties()}ready(){this._flushProperties();if(!this.__dataClientsReady){this._flushClients()}if(this.__dataPending){this._flushProperties()}}_propertiesChanged(currentProps,changedProps,oldProps){let hasPaths=this.__dataHasPaths;this.__dataHasPaths=false;runComputedEffects(this,changedProps,oldProps,hasPaths);let notifyProps=this.__dataToNotify;this.__dataToNotify=null;this._propagatePropertyChanges(changedProps,oldProps,hasPaths);this._flushClients();runEffects(this,this[TYPES.REFLECT],changedProps,oldProps,hasPaths);runEffects(this,this[TYPES.OBSERVE],changedProps,oldProps,hasPaths);if(notifyProps){runNotifyEffects(this,notifyProps,changedProps,oldProps,hasPaths)}if(this.__dataCounter==1){this.__dataTemp={}}}_propagatePropertyChanges(changedProps,oldProps,hasPaths){if(this[TYPES.PROPAGATE]){runEffects(this,this[TYPES.PROPAGATE],changedProps,oldProps,hasPaths)}let templateInfo=this.__templateInfo;while(templateInfo){runEffects(this,templateInfo.propertyEffects,changedProps,oldProps,hasPaths,templateInfo.nodeList);templateInfo=templateInfo.nextTemplateInfo}}linkPaths(to,from){to=Polymer.Path.normalize(to);from=Polymer.Path.normalize(from);this.__dataLinkedPaths=this.__dataLinkedPaths||{};this.__dataLinkedPaths[to]=from}unlinkPaths(path){path=Polymer.Path.normalize(path);if(this.__dataLinkedPaths){delete this.__dataLinkedPaths[path]}}notifySplices(path,splices){let info={path:""};let array=Polymer.Path.get(this,path,info);notifySplices(this,array,info.path,splices)}get(path,root){return Polymer.Path.get(root||this,path)}set(path,value,root){if(root){Polymer.Path.set(root,path,value)}else{if(!this[TYPES.READ_ONLY]||!this[TYPES.READ_ONLY][path]){if(this._setPendingPropertyOrPath(path,value,true)){this._invalidateProperties()}}}}push(path,...items){let info={path:""};let array=Polymer.Path.get(this,path,info);let len=array.length;let ret=array.push(...items);if(items.length){notifySplice(this,array,info.path,len,items.length,[])}return ret}pop(path){let info={path:""};let array=Polymer.Path.get(this,path,info);let hadLength=Boolean(array.length);let ret=array.pop();if(hadLength){notifySplice(this,array,info.path,array.length,0,[ret])}return ret}splice(path,start,deleteCount,...items){let info={path:""};let array=Polymer.Path.get(this,path,info);if(start<0){start=array.length-Math.floor(-start)}else if(start){start=Math.floor(start)}let ret;if(arguments.length===2){ret=array.splice(start)}else{ret=array.splice(start,deleteCount,...items)}if(items.length||ret.length){notifySplice(this,array,info.path,start,items.length,ret)}return ret}shift(path){let info={path:""};let array=Polymer.Path.get(this,path,info);let hadLength=Boolean(array.length);let ret=array.shift();if(hadLength){notifySplice(this,array,info.path,0,0,[ret])}return ret}unshift(path,...items){let info={path:""};let array=Polymer.Path.get(this,path,info);let ret=array.unshift(...items);if(items.length){notifySplice(this,array,info.path,0,items.length,[])}return ret}notifyPath(path,value){let propPath;if(arguments.length==1){let info={path:""};value=Polymer.Path.get(this,path,info);propPath=info.path}else if(Array.isArray(path)){propPath=Polymer.Path.normalize(path)}else{propPath=path}if(this._setPendingPropertyOrPath(propPath,value,true,true)){this._invalidateProperties()}}_createReadOnlyProperty(property,protectedSetter){this._addPropertyEffect(property,TYPES.READ_ONLY);if(protectedSetter){this["_set"+upper(property)]=function(value){this._setProperty(property,value)}}}_createPropertyObserver(property,method,dynamicFn){let info={property:property,method:method,dynamicFn:Boolean(dynamicFn)};this._addPropertyEffect(property,TYPES.OBSERVE,{fn:runObserverEffect,info:info,trigger:{name:property}});if(dynamicFn){this._addPropertyEffect(method,TYPES.OBSERVE,{fn:runObserverEffect,info:info,trigger:{name:method}})}}_createMethodObserver(expression,dynamicFn){let sig=parseMethod(expression);if(!sig){throw new Error("Malformed observer expression '"+expression+"'")}createMethodEffect(this,sig,TYPES.OBSERVE,runMethodEffect,null,dynamicFn)}_createNotifyingProperty(property){this._addPropertyEffect(property,TYPES.NOTIFY,{fn:runNotifyEffect,info:{eventName:CaseMap.camelToDashCase(property)+"-changed",property:property}})}_createReflectedProperty(property){let attr=this.constructor.attributeNameForProperty(property);if(attr[0]==="-"){console.warn("Property "+property+" cannot be reflected to attribute "+attr+' because "-" is not a valid starting attribute name. Use a lowercase first letter for the property instead.')}else{this._addPropertyEffect(property,TYPES.REFLECT,{fn:runReflectEffect,info:{attrName:attr}})}}_createComputedProperty(property,expression,dynamicFn){let sig=parseMethod(expression);if(!sig){throw new Error("Malformed computed expression '"+expression+"'")}createMethodEffect(this,sig,TYPES.COMPUTE,runComputedEffect,property,dynamicFn)}static addPropertyEffect(property,type,effect){this.prototype._addPropertyEffect(property,type,effect)}static createPropertyObserver(property,method,dynamicFn){this.prototype._createPropertyObserver(property,method,dynamicFn)}static createMethodObserver(expression,dynamicFn){this.prototype._createMethodObserver(expression,dynamicFn)}static createNotifyingProperty(property){this.prototype._createNotifyingProperty(property)}static createReadOnlyProperty(property,protectedSetter){this.prototype._createReadOnlyProperty(property,protectedSetter)}static createReflectedProperty(property){this.prototype._createReflectedProperty(property)}static createComputedProperty(property,expression,dynamicFn){this.prototype._createComputedProperty(property,expression,dynamicFn)}static bindTemplate(template){return this.prototype._bindTemplate(template)}_bindTemplate(template,instanceBinding){let templateInfo=this.constructor._parseTemplate(template);let wasPreBound=this.__templateInfo==templateInfo;if(!wasPreBound){for(let prop in templateInfo.propertyEffects){this._createPropertyAccessor(prop)}}if(instanceBinding){templateInfo=Object.create(templateInfo);templateInfo.wasPreBound=wasPreBound;if(!wasPreBound&&this.__templateInfo){let last=this.__templateInfoLast||this.__templateInfo;this.__templateInfoLast=last.nextTemplateInfo=templateInfo;templateInfo.previousTemplateInfo=last;return templateInfo}}return this.__templateInfo=templateInfo}static _addTemplatePropertyEffect(templateInfo,prop,effect){let hostProps=templateInfo.hostProps=templateInfo.hostProps||{};hostProps[prop]=true;let effects=templateInfo.propertyEffects=templateInfo.propertyEffects||{};let propEffects=effects[prop]=effects[prop]||[];propEffects.push(effect)}_stampTemplate(template){hostStack.beginHosting(this);let dom=super._stampTemplate(template);hostStack.endHosting(this);let templateInfo=this._bindTemplate(template,true);templateInfo.nodeList=dom.nodeList;if(!templateInfo.wasPreBound){let nodes=templateInfo.childNodes=[];for(let n=dom.firstChild;n;n=n.nextSibling){nodes.push(n)}}dom.templateInfo=templateInfo;setupBindings(this,templateInfo);if(this.__dataReady){runEffects(this,templateInfo.propertyEffects,this.__data,null,false,templateInfo.nodeList)}return dom}_removeBoundDom(dom){let templateInfo=dom.templateInfo;if(templateInfo.previousTemplateInfo){templateInfo.previousTemplateInfo.nextTemplateInfo=templateInfo.nextTemplateInfo}if(templateInfo.nextTemplateInfo){templateInfo.nextTemplateInfo.previousTemplateInfo=templateInfo.previousTemplateInfo}if(this.__templateInfoLast==templateInfo){this.__templateInfoLast=templateInfo.previousTemplateInfo}templateInfo.previousTemplateInfo=templateInfo.nextTemplateInfo=null;let nodes=templateInfo.childNodes;for(let i=0;i<nodes.length;i++){let node=nodes[i];node.parentNode.removeChild(node)}}static _parseTemplateNode(node,templateInfo,nodeInfo){let noted=super._parseTemplateNode(node,templateInfo,nodeInfo);if(node.nodeType===Node.TEXT_NODE){let parts=this._parseBindings(node.textContent,templateInfo);if(parts){node.textContent=literalFromParts(parts)||" ";addBinding(this,templateInfo,nodeInfo,"text","textContent",parts);noted=true}}return noted}static _parseTemplateNodeAttribute(node,templateInfo,nodeInfo,name,value){let parts=this._parseBindings(value,templateInfo);if(parts){let origName=name;let kind="property";if(capitalAttributeRegex.test(name)){kind="attribute"}else if(name[name.length-1]=="$"){name=name.slice(0,-1);kind="attribute"}let literal=literalFromParts(parts);if(literal&&kind=="attribute"){node.setAttribute(name,literal)}if(node.localName==="input"&&origName==="value"){node.setAttribute(origName,"")}node.removeAttribute(origName);if(kind==="property"){name=Polymer.CaseMap.dashToCamelCase(name)}addBinding(this,templateInfo,nodeInfo,kind,name,parts,literal);return true}else{return super._parseTemplateNodeAttribute(node,templateInfo,nodeInfo,name,value)}}static _parseTemplateNestedTemplate(node,templateInfo,nodeInfo){let noted=super._parseTemplateNestedTemplate(node,templateInfo,nodeInfo);let hostProps=nodeInfo.templateInfo.hostProps;let mode="{";for(let source in hostProps){let parts=[{mode:mode,source:source,dependencies:[source]}];addBinding(this,templateInfo,nodeInfo,"property","_host_"+source,parts)}return noted}static _parseBindings(text,templateInfo){let parts=[];let lastIndex=0;let m;while((m=bindingRegex.exec(text))!==null){if(m.index>lastIndex){parts.push({literal:text.slice(lastIndex,m.index)})}let mode=m[1][0];let negate=Boolean(m[2]);let source=m[3].trim();let customEvent=false,notifyEvent="",colon=-1;if(mode=="{"&&(colon=source.indexOf("::"))>0){notifyEvent=source.substring(colon+2);source=source.substring(0,colon);customEvent=true}let signature=parseMethod(source);let dependencies=[];if(signature){let{args:args,methodName:methodName}=signature;for(let i=0;i<args.length;i++){let arg=args[i];if(!arg.literal){dependencies.push(arg)}}let dynamicFns=templateInfo.dynamicFns;if(dynamicFns&&dynamicFns[methodName]||signature.static){dependencies.push(methodName);signature.dynamicFn=true}}else{dependencies.push(source)}parts.push({source:source,mode:mode,negate:negate,customEvent:customEvent,signature:signature,dependencies:dependencies,event:notifyEvent});lastIndex=bindingRegex.lastIndex}if(lastIndex&&lastIndex<text.length){let literal=text.substring(lastIndex);if(literal){parts.push({literal:literal})}}if(parts.length){return parts}else{return null}}static _evaluateBinding(inst,part,path,props,oldProps,hasPaths){let value;if(part.signature){value=runMethodEffect(inst,path,props,oldProps,part.signature)}else if(path!=part.source){value=Polymer.Path.get(inst,part.source)}else{if(hasPaths&&Polymer.Path.isPath(path)){value=Polymer.Path.get(inst,path)}else{value=inst.__data[path]}}if(part.negate){value=!value}return value}}PropertyEffectsType=PropertyEffects;return PropertyEffects});let hostStack={stack:[],registerHost(inst){if(this.stack.length){let host=this.stack[this.stack.length-1];host._enqueueClient(inst)}},beginHosting(inst){this.stack.push(inst)},endHosting(inst){let stackLen=this.stack.length;if(stackLen&&this.stack[stackLen-1]==inst){this.stack.pop()}}}})();(function(){"use strict";function normalizeProperties(props){const output={};for(let p in props){const o=props[p];output[p]=typeof o==="function"?{type:o}:o}return output}Polymer.PropertiesMixin=Polymer.dedupingMixin(superClass=>{const base=Polymer.PropertiesChanged(superClass);function superPropertiesClass(constructor){const superCtor=Object.getPrototypeOf(constructor);return superCtor.prototype instanceof PropertiesMixin?superCtor:null}function ownProperties(constructor){if(!constructor.hasOwnProperty(JSCompiler_renameProperty("__ownProperties",constructor))){let props=null;if(constructor.hasOwnProperty(JSCompiler_renameProperty("properties",constructor))&&constructor.properties){props=normalizeProperties(constructor.properties)}constructor.__ownProperties=props}return constructor.__ownProperties}class PropertiesMixin extends base{static get observedAttributes(){const props=this._properties;return props?Object.keys(props).map(p=>this.attributeNameForProperty(p)):[]}static finalize(){if(!this.hasOwnProperty(JSCompiler_renameProperty("__finalized",this))){const superCtor=superPropertiesClass(this);if(superCtor){superCtor.finalize()}this.__finalized=true;this._finalizeClass()}}static _finalizeClass(){const props=ownProperties(this);if(props){this.createProperties(props)}}static get _properties(){if(!this.hasOwnProperty(JSCompiler_renameProperty("__properties",this))){const superCtor=superPropertiesClass(this);this.__properties=Object.assign({},superCtor&&superCtor._properties,ownProperties(this))}return this.__properties}static typeForProperty(name){const info=this._properties[name];return info&&info.type}_initializeProperties(){this.constructor.finalize();super._initializeProperties()}connectedCallback(){if(super.connectedCallback){super.connectedCallback()}this._enableProperties()}disconnectedCallback(){if(super.disconnectedCallback){super.disconnectedCallback()}}}return PropertiesMixin})})();(function(){"use strict";Polymer.ElementMixin=Polymer.dedupingMixin(base=>{const polymerElementBase=Polymer.PropertiesMixin(Polymer.PropertyEffects(base));function propertyDefaults(constructor){if(!constructor.hasOwnProperty(JSCompiler_renameProperty("__propertyDefaults",constructor))){constructor.__propertyDefaults=null;let props=constructor._properties;for(let p in props){let info=props[p];if("value"in info){constructor.__propertyDefaults=constructor.__propertyDefaults||{};constructor.__propertyDefaults[p]=info}}}return constructor.__propertyDefaults}function ownObservers(constructor){if(!constructor.hasOwnProperty(JSCompiler_renameProperty("__ownObservers",constructor))){constructor.__ownObservers=constructor.hasOwnProperty(JSCompiler_renameProperty("observers",constructor))?constructor.observers:null}return constructor.__ownObservers}function createPropertyFromConfig(proto,name,info,allProps){if(info.computed){info.readOnly=true}if(info.computed&&!proto._hasReadOnlyEffect(name)){proto._createComputedProperty(name,info.computed,allProps)}if(info.readOnly&&!proto._hasReadOnlyEffect(name)){proto._createReadOnlyProperty(name,!info.computed)}if(info.reflectToAttribute&&!proto._hasReflectEffect(name)){proto._createReflectedProperty(name)}if(info.notify&&!proto._hasNotifyEffect(name)){proto._createNotifyingProperty(name)}if(info.observer){proto._createPropertyObserver(name,info.observer,allProps[info.observer])}proto._addPropertyToAttributeMap(name)}function processElementStyles(klass,template,is,baseURI){const templateStyles=template.content.querySelectorAll("style");const stylesWithImports=Polymer.StyleGather.stylesFromTemplate(template);const linkedStyles=Polymer.StyleGather.stylesFromModuleImports(is);const firstTemplateChild=template.content.firstElementChild;for(let idx=0;idx<linkedStyles.length;idx++){let s=linkedStyles[idx];s.textContent=klass._processStyleText(s.textContent,baseURI);template.content.insertBefore(s,firstTemplateChild)}let templateStyleIndex=0;for(let i=0;i<stylesWithImports.length;i++){let s=stylesWithImports[i];let templateStyle=templateStyles[templateStyleIndex];if(templateStyle!==s){s=s.cloneNode(true);templateStyle.parentNode.insertBefore(s,templateStyle)}else{templateStyleIndex++}s.textContent=klass._processStyleText(s.textContent,baseURI)}if(window.ShadyCSS){window.ShadyCSS.prepareTemplate(template,is)}}class PolymerElement extends polymerElementBase{static _finalizeClass(){super._finalizeClass();if(this.hasOwnProperty(JSCompiler_renameProperty("is",this))&&this.is){Polymer.telemetry.register(this.prototype)}const observers=ownObservers(this);if(observers){this.createObservers(observers,this._properties)}let template=this.template;if(template){if(typeof template==="string"){let t=document.createElement("template");t.innerHTML=template;template=t}else{template=template.cloneNode(true)}}this.prototype._template=template}static createProperties(props){for(let p in props){createPropertyFromConfig(this.prototype,p,props[p],props)}}static createObservers(observers,dynamicFns){const proto=this.prototype;for(let i=0;i<observers.length;i++){proto._createMethodObserver(observers[i],dynamicFns)}}static get template(){if(!this.hasOwnProperty(JSCompiler_renameProperty("_template",this))){this._template=Polymer.DomModule&&Polymer.DomModule.import(this.is,"template")||Object.getPrototypeOf(this.prototype).constructor.template}return this._template}static get importPath(){if(!this.hasOwnProperty(JSCompiler_renameProperty("_importPath",this))){const module=Polymer.DomModule&&Polymer.DomModule.import(this.is);this._importPath=module?module.assetpath:""||Object.getPrototypeOf(this.prototype).constructor.importPath}return this._importPath}constructor(){super();this._template;this._importPath;this.rootPath;this.importPath;this.root;this.$}_initializeProperties(){Polymer.telemetry.instanceCount++;this.constructor.finalize();const importPath=this.constructor.importPath;this.constructor._finalizeTemplate(this.localName);super._initializeProperties();this.rootPath=Polymer.rootPath;this.importPath=importPath;let p$=propertyDefaults(this.constructor);if(!p$){return}for(let p in p$){let info=p$[p];if(!this.hasOwnProperty(p)){let value=typeof info.value=="function"?info.value.call(this):info.value;if(this._hasAccessor(p)){this._setPendingProperty(p,value,true)}else{this[p]=value}}}}static _processStyleText(cssText,baseURI){return Polymer.ResolveUrl.resolveCss(cssText,baseURI)}static _finalizeTemplate(is){const template=this.prototype._template;if(template&&!template.__polymerFinalized){template.__polymerFinalized=true;const importPath=this.importPath;const baseURI=importPath?Polymer.ResolveUrl.resolveUrl(importPath):"";processElementStyles(this,template,is,baseURI);this.prototype._bindTemplate(template)}}connectedCallback(){if(window.ShadyCSS&&this._template){window.ShadyCSS.styleElement(this)}super.connectedCallback()}ready(){if(this._template){this.root=this._stampTemplate(this._template);this.$=this.root.$}super.ready()}_readyClients(){if(this._template){this.root=this._attachDom(this.root)}super._readyClients()}_attachDom(dom){if(this.attachShadow){if(dom){if(!this.shadowRoot){this.attachShadow({mode:"open"})}this.shadowRoot.appendChild(dom);return this.shadowRoot}return null}else{throw new Error("ShadowDOM not available. "+"Polymer.Element can create dom as children instead of in "+"ShadowDOM by setting `this.root = this;` before `ready`.")}}updateStyles(properties){if(window.ShadyCSS){window.ShadyCSS.styleSubtree(this,properties)}}resolveUrl(url,base){if(!base&&this.importPath){base=Polymer.ResolveUrl.resolveUrl(this.importPath)}return Polymer.ResolveUrl.resolveUrl(url,base)}static _parseTemplateContent(template,templateInfo,nodeInfo){templateInfo.dynamicFns=templateInfo.dynamicFns||this._properties;return super._parseTemplateContent(template,templateInfo,nodeInfo)}}return PolymerElement});Polymer.telemetry={instanceCount:0,registrations:[],_regLog:function(prototype){console.log("["+prototype.is+"]: registered")},register:function(prototype){this.registrations.push(prototype);Polymer.log&&this._regLog(prototype)},dumpRegistrations:function(){this.registrations.forEach(this._regLog)}};Polymer.updateStyles=function(props){if(window.ShadyCSS){window.ShadyCSS.styleDocument(props)}}})();(function(){"use strict";class Debouncer{constructor(){this._asyncModule=null;this._callback=null;this._timer=null}setConfig(asyncModule,callback){this._asyncModule=asyncModule;this._callback=callback;this._timer=this._asyncModule.run(()=>{this._timer=null;this._callback()})}cancel(){if(this.isActive()){this._asyncModule.cancel(this._timer);this._timer=null}}flush(){if(this.isActive()){this.cancel();this._callback()}}isActive(){return this._timer!=null}static debounce(debouncer,asyncModule,callback){if(debouncer instanceof Debouncer){debouncer.cancel()}else{debouncer=new Debouncer}debouncer.setConfig(asyncModule,callback);return debouncer}}Polymer.Debouncer=Debouncer})();(function(){"use strict";let HAS_NATIVE_TA=typeof document.head.style.touchAction==="string";let GESTURE_KEY="__polymerGestures";let HANDLED_OBJ="__polymerGesturesHandled";let TOUCH_ACTION="__polymerGesturesTouchAction";let TAP_DISTANCE=25;let TRACK_DISTANCE=5;let TRACK_LENGTH=2;let MOUSE_TIMEOUT=2500;let MOUSE_EVENTS=["mousedown","mousemove","mouseup","click"];let MOUSE_WHICH_TO_BUTTONS=[0,1,4,2];let MOUSE_HAS_BUTTONS=function(){try{return new MouseEvent("test",{buttons:1}).buttons===1}catch(e){return false}}();function isMouseEvent(name){return MOUSE_EVENTS.indexOf(name)>-1}let SUPPORTS_PASSIVE=false;(function(){try{let opts=Object.defineProperty({},"passive",{get(){SUPPORTS_PASSIVE=true}});window.addEventListener("test",null,opts);window.removeEventListener("test",null,opts)}catch(e){}})();function PASSIVE_TOUCH(eventName){if(isMouseEvent(eventName)||eventName==="touchend"){return}if(HAS_NATIVE_TA&&SUPPORTS_PASSIVE&&Polymer.passiveTouchGestures){return{passive:true}}else{return}}let IS_TOUCH_ONLY=navigator.userAgent.match(/iP(?:[oa]d|hone)|Android/);let GestureRecognizer=function(){};GestureRecognizer.prototype.reset;GestureRecognizer.prototype.mousedown;GestureRecognizer.prototype.mousemove;GestureRecognizer.prototype.mouseup;GestureRecognizer.prototype.touchstart;GestureRecognizer.prototype.touchmove;GestureRecognizer.prototype.touchend;GestureRecognizer.prototype.click;const clickedLabels=[];const labellable={button:true,input:true,keygen:true,meter:true,output:true,textarea:true,progress:true,select:true};function canBeLabelled(el){return labellable[el.localName]||false}function matchingLabels(el){let labels=[...el.labels||[]];if(!labels.length){labels=[];let root=el.getRootNode();if(el.id){let matching=root.querySelectorAll(`label[for = ${el.id}]`);for(let i=0;i<matching.length;i++){labels.push(matching[i])}}}return labels}let mouseCanceller=function(mouseEvent){let sc=mouseEvent.sourceCapabilities;if(sc&&!sc.firesTouchEvents){return}mouseEvent[HANDLED_OBJ]={skip:true};if(mouseEvent.type==="click"){let clickFromLabel=false;let path=mouseEvent.composedPath&&mouseEvent.composedPath();if(path){for(let i=0;i<path.length;i++){if(path[i].nodeType===Node.ELEMENT_NODE){if(path[i].localName==="label"){clickedLabels.push(path[i])}else if(canBeLabelled(path[i])){let ownerLabels=matchingLabels(path[i]);for(let j=0;j<ownerLabels.length;j++){clickFromLabel=clickFromLabel||clickedLabels.indexOf(ownerLabels[j])>-1}}}if(path[i]===POINTERSTATE.mouse.target){return}}}if(clickFromLabel){return}mouseEvent.preventDefault();mouseEvent.stopPropagation()}};function setupTeardownMouseCanceller(setup){let events=IS_TOUCH_ONLY?["click"]:MOUSE_EVENTS;for(let i=0,en;i<events.length;i++){en=events[i];if(setup){clickedLabels.length=0;document.addEventListener(en,mouseCanceller,true)}else{document.removeEventListener(en,mouseCanceller,true)}}}function ignoreMouse(e){if(!POINTERSTATE.mouse.mouseIgnoreJob){setupTeardownMouseCanceller(true)}let unset=function(){setupTeardownMouseCanceller();POINTERSTATE.mouse.target=null;POINTERSTATE.mouse.mouseIgnoreJob=null};POINTERSTATE.mouse.target=e.composedPath()[0];POINTERSTATE.mouse.mouseIgnoreJob=Polymer.Debouncer.debounce(POINTERSTATE.mouse.mouseIgnoreJob,Polymer.Async.timeOut.after(MOUSE_TIMEOUT),unset)}function hasLeftMouseButton(ev){let type=ev.type;if(!isMouseEvent(type)){return false}if(type==="mousemove"){let buttons=ev.buttons===undefined?1:ev.buttons;if(ev instanceof window.MouseEvent&&!MOUSE_HAS_BUTTONS){buttons=MOUSE_WHICH_TO_BUTTONS[ev.which]||0}return Boolean(buttons&1)}else{let button=ev.button===undefined?0:ev.button;return button===0}}function isSyntheticClick(ev){if(ev.type==="click"){if(ev.detail===0){return true}let t=Gestures._findOriginalTarget(ev);if(!t.nodeType||t.nodeType!==Node.ELEMENT_NODE){return true}let bcr=t.getBoundingClientRect();let x=ev.pageX,y=ev.pageY;return!(x>=bcr.left&&x<=bcr.right&&(y>=bcr.top&&y<=bcr.bottom))}return false}let POINTERSTATE={mouse:{target:null,mouseIgnoreJob:null},touch:{x:0,y:0,id:-1,scrollDecided:false}};function firstTouchAction(ev){let ta="auto";let path=ev.composedPath&&ev.composedPath();if(path){for(let i=0,n;i<path.length;i++){n=path[i];if(n[TOUCH_ACTION]){ta=n[TOUCH_ACTION];break}}}return ta}function trackDocument(stateObj,movefn,upfn){stateObj.movefn=movefn;stateObj.upfn=upfn;document.addEventListener("mousemove",movefn);document.addEventListener("mouseup",upfn)}function untrackDocument(stateObj){document.removeEventListener("mousemove",stateObj.movefn);document.removeEventListener("mouseup",stateObj.upfn);stateObj.movefn=null;stateObj.upfn=null}document.addEventListener("touchend",ignoreMouse,SUPPORTS_PASSIVE?{passive:true}:false);const Gestures={gestures:{},recognizers:[],deepTargetFind:function(x,y){let node=document.elementFromPoint(x,y);let next=node;while(next&&next.shadowRoot&&!window.ShadyDOM){let oldNext=next;next=next.shadowRoot.elementFromPoint(x,y);if(oldNext===next){break}if(next){node=next}}return node},_findOriginalTarget:function(ev){if(ev.composedPath){const targets=ev.composedPath();return targets.length>0?targets[0]:ev.target}return ev.target},_handleNative:function(ev){let handled;let type=ev.type;let node=ev.currentTarget;let gobj=node[GESTURE_KEY];if(!gobj){return}let gs=gobj[type];if(!gs){return}if(!ev[HANDLED_OBJ]){ev[HANDLED_OBJ]={};if(type.slice(0,5)==="touch"){ev=ev;let t=ev.changedTouches[0];if(type==="touchstart"){if(ev.touches.length===1){POINTERSTATE.touch.id=t.identifier}}if(POINTERSTATE.touch.id!==t.identifier){return}if(!HAS_NATIVE_TA){if(type==="touchstart"||type==="touchmove"){Gestures._handleTouchAction(ev)}}}}handled=ev[HANDLED_OBJ];if(handled.skip){return}for(let i=0,r;i<Gestures.recognizers.length;i++){r=Gestures.recognizers[i];if(gs[r.name]&&!handled[r.name]){if(r.flow&&r.flow.start.indexOf(ev.type)>-1&&r.reset){r.reset()}}}for(let i=0,r;i<Gestures.recognizers.length;i++){r=Gestures.recognizers[i];if(gs[r.name]&&!handled[r.name]){handled[r.name]=true;r[type](ev)}}},_handleTouchAction:function(ev){let t=ev.changedTouches[0];let type=ev.type;if(type==="touchstart"){POINTERSTATE.touch.x=t.clientX;POINTERSTATE.touch.y=t.clientY;POINTERSTATE.touch.scrollDecided=false}else if(type==="touchmove"){if(POINTERSTATE.touch.scrollDecided){return}POINTERSTATE.touch.scrollDecided=true;let ta=firstTouchAction(ev);let prevent=false;let dx=Math.abs(POINTERSTATE.touch.x-t.clientX);let dy=Math.abs(POINTERSTATE.touch.y-t.clientY);if(!ev.cancelable){}else if(ta==="none"){prevent=true}else if(ta==="pan-x"){prevent=dy>dx}else if(ta==="pan-y"){prevent=dx>dy}if(prevent){ev.preventDefault()}else{Gestures.prevent("track")}}},addListener:function(node,evType,handler){if(this.gestures[evType]){this._add(node,evType,handler);return true}return false},removeListener:function(node,evType,handler){if(this.gestures[evType]){this._remove(node,evType,handler);return true}return false},_add:function(node,evType,handler){let recognizer=this.gestures[evType];let deps=recognizer.deps;let name=recognizer.name;let gobj=node[GESTURE_KEY];if(!gobj){node[GESTURE_KEY]=gobj={}}for(let i=0,dep,gd;i<deps.length;i++){dep=deps[i];if(IS_TOUCH_ONLY&&isMouseEvent(dep)&&dep!=="click"){continue}gd=gobj[dep];if(!gd){gobj[dep]=gd={_count:0}}if(gd._count===0){node.addEventListener(dep,this._handleNative,PASSIVE_TOUCH(dep))}gd[name]=(gd[name]||0)+1;gd._count=(gd._count||0)+1}node.addEventListener(evType,handler);if(recognizer.touchAction){this.setTouchAction(node,recognizer.touchAction)}},_remove:function(node,evType,handler){let recognizer=this.gestures[evType];let deps=recognizer.deps;let name=recognizer.name;let gobj=node[GESTURE_KEY];if(gobj){for(let i=0,dep,gd;i<deps.length;i++){dep=deps[i];gd=gobj[dep];if(gd&&gd[name]){gd[name]=(gd[name]||1)-1;gd._count=(gd._count||1)-1;if(gd._count===0){node.removeEventListener(dep,this._handleNative,PASSIVE_TOUCH(dep))}}}}node.removeEventListener(evType,handler)},register:function(recog){this.recognizers.push(recog);for(let i=0;i<recog.emits.length;i++){this.gestures[recog.emits[i]]=recog}},_findRecognizerByEvent:function(evName){for(let i=0,r;i<this.recognizers.length;i++){r=this.recognizers[i];for(let j=0,n;j<r.emits.length;j++){n=r.emits[j];if(n===evName){return r}}}return null},setTouchAction:function(node,value){if(HAS_NATIVE_TA){Polymer.Async.microTask.run(()=>{node.style.touchAction=value})}node[TOUCH_ACTION]=value},_fire:function(target,type,detail){let ev=new Event(type,{bubbles:true,cancelable:true,composed:true});ev.detail=detail;target.dispatchEvent(ev);if(ev.defaultPrevented){let preventer=detail.preventer||detail.sourceEvent;if(preventer&&preventer.preventDefault){preventer.preventDefault()}}},prevent:function(evName){let recognizer=this._findRecognizerByEvent(evName);if(recognizer.info){recognizer.info.prevent=true}},resetMouseCanceller:function(){if(POINTERSTATE.mouse.mouseIgnoreJob){POINTERSTATE.mouse.mouseIgnoreJob.flush()}}};Gestures.register({name:"downup",deps:["mousedown","touchstart","touchend"],flow:{start:["mousedown","touchstart"],end:["mouseup","touchend"]},emits:["down","up"],info:{movefn:null,upfn:null},reset:function(){untrackDocument(this.info)},mousedown:function(e){if(!hasLeftMouseButton(e)){return}let t=Gestures._findOriginalTarget(e);let self=this;let movefn=function movefn(e){if(!hasLeftMouseButton(e)){self._fire("up",t,e);untrackDocument(self.info)}};let upfn=function upfn(e){if(hasLeftMouseButton(e)){self._fire("up",t,e)}untrackDocument(self.info)};trackDocument(this.info,movefn,upfn);this._fire("down",t,e)},touchstart:function(e){this._fire("down",Gestures._findOriginalTarget(e),e.changedTouches[0],e)},touchend:function(e){this._fire("up",Gestures._findOriginalTarget(e),e.changedTouches[0],e)},_fire:function(type,target,event,preventer){Gestures._fire(target,type,{x:event.clientX,y:event.clientY,sourceEvent:event,preventer:preventer,prevent:function(e){return Gestures.prevent(e)}})}});Gestures.register({name:"track",touchAction:"none",deps:["mousedown","touchstart","touchmove","touchend"],flow:{start:["mousedown","touchstart"],end:["mouseup","touchend"]},emits:["track"],info:{x:0,y:0,state:"start",started:false,moves:[],addMove:function(move){if(this.moves.length>TRACK_LENGTH){this.moves.shift()}this.moves.push(move)},movefn:null,upfn:null,prevent:false},reset:function(){this.info.state="start";this.info.started=false;this.info.moves=[];this.info.x=0;this.info.y=0;this.info.prevent=false;untrackDocument(this.info)},hasMovedEnough:function(x,y){if(this.info.prevent){return false}if(this.info.started){return true}let dx=Math.abs(this.info.x-x);let dy=Math.abs(this.info.y-y);return dx>=TRACK_DISTANCE||dy>=TRACK_DISTANCE},mousedown:function(e){if(!hasLeftMouseButton(e)){return}let t=Gestures._findOriginalTarget(e);let self=this;let movefn=function movefn(e){let x=e.clientX,y=e.clientY;if(self.hasMovedEnough(x,y)){self.info.state=self.info.started?e.type==="mouseup"?"end":"track":"start";if(self.info.state==="start"){Gestures.prevent("tap")}self.info.addMove({x:x,y:y});if(!hasLeftMouseButton(e)){self.info.state="end";untrackDocument(self.info)}self._fire(t,e);self.info.started=true}};let upfn=function upfn(e){if(self.info.started){movefn(e)}untrackDocument(self.info)};trackDocument(this.info,movefn,upfn);this.info.x=e.clientX;this.info.y=e.clientY},touchstart:function(e){let ct=e.changedTouches[0];this.info.x=ct.clientX;this.info.y=ct.clientY},touchmove:function(e){let t=Gestures._findOriginalTarget(e);let ct=e.changedTouches[0];let x=ct.clientX,y=ct.clientY;if(this.hasMovedEnough(x,y)){if(this.info.state==="start"){Gestures.prevent("tap")}this.info.addMove({x:x,y:y});this._fire(t,ct);this.info.state="track";this.info.started=true}},touchend:function(e){let t=Gestures._findOriginalTarget(e);let ct=e.changedTouches[0];if(this.info.started){this.info.state="end";this.info.addMove({x:ct.clientX,y:ct.clientY});this._fire(t,ct,e)}},_fire:function(target,touch){let secondlast=this.info.moves[this.info.moves.length-2];let lastmove=this.info.moves[this.info.moves.length-1];let dx=lastmove.x-this.info.x;let dy=lastmove.y-this.info.y;let ddx,ddy=0;if(secondlast){ddx=lastmove.x-secondlast.x;ddy=lastmove.y-secondlast.y}Gestures._fire(target,"track",{state:this.info.state,x:touch.clientX,y:touch.clientY,dx:dx,dy:dy,ddx:ddx,ddy:ddy,sourceEvent:touch,hover:function(){return Gestures.deepTargetFind(touch.clientX,touch.clientY)}})}});Gestures.register({name:"tap",deps:["mousedown","click","touchstart","touchend"],flow:{start:["mousedown","touchstart"],end:["click","touchend"]},emits:["tap"],info:{x:NaN,y:NaN,prevent:false},reset:function(){this.info.x=NaN;this.info.y=NaN;this.info.prevent=false},save:function(e){this.info.x=e.clientX;this.info.y=e.clientY},mousedown:function(e){if(hasLeftMouseButton(e)){this.save(e)}},click:function(e){if(hasLeftMouseButton(e)){this.forward(e)}},touchstart:function(e){this.save(e.changedTouches[0],e)},touchend:function(e){this.forward(e.changedTouches[0],e)},forward:function(e,preventer){let dx=Math.abs(e.clientX-this.info.x);let dy=Math.abs(e.clientY-this.info.y);let t=Gestures._findOriginalTarget(preventer||e);if(!t||t.disabled){return}if(isNaN(dx)||isNaN(dy)||dx<=TAP_DISTANCE&&dy<=TAP_DISTANCE||isSyntheticClick(e)){if(!this.info.prevent){Gestures._fire(t,"tap",{x:e.clientX,y:e.clientY,sourceEvent:e,preventer:preventer})}}}});Gestures.findOriginalTarget=Gestures._findOriginalTarget;Gestures.add=Gestures.addListener;Gestures.remove=Gestures.removeListener;Polymer.Gestures=Gestures})();(function(){"use strict";const gestures=Polymer.Gestures;Polymer.GestureEventListeners=Polymer.dedupingMixin(superClass=>{class GestureEventListeners extends superClass{_addEventListenerToNode(node,eventName,handler){if(!gestures.addListener(node,eventName,handler)){super._addEventListenerToNode(node,eventName,handler)}}_removeEventListenerFromNode(node,eventName,handler){if(!gestures.removeListener(node,eventName,handler)){super._removeEventListenerFromNode(node,eventName,handler)}}}return GestureEventListeners})})();(function(){"use strict";const HOST_DIR=/:host\(:dir\((ltr|rtl)\)\)/g;const HOST_DIR_REPLACMENT=':host([dir="$1"])';const EL_DIR=/([\s\w-#\.\[\]\*]*):dir\((ltr|rtl)\)/g;const EL_DIR_REPLACMENT=':host([dir="$2"]) $1';const DIR_INSTANCES=[];let observer=null;let DOCUMENT_DIR="";function getRTL(){DOCUMENT_DIR=document.documentElement.getAttribute("dir")}function setRTL(instance){if(!instance.__autoDirOptOut){const el=instance;el.setAttribute("dir",DOCUMENT_DIR)}}function updateDirection(){getRTL();DOCUMENT_DIR=document.documentElement.getAttribute("dir");for(let i=0;i<DIR_INSTANCES.length;i++){setRTL(DIR_INSTANCES[i])}}function takeRecords(){if(observer&&observer.takeRecords().length){updateDirection()}}Polymer.DirMixin=Polymer.dedupingMixin(base=>{if(!observer){getRTL();observer=new MutationObserver(updateDirection);observer.observe(document.documentElement,{attributes:true,attributeFilter:["dir"]})}const elementBase=Polymer.PropertyAccessors(base);class Dir extends elementBase{static _processStyleText(cssText,baseURI){cssText=super._processStyleText(cssText,baseURI);cssText=this._replaceDirInCssText(cssText);return cssText}static _replaceDirInCssText(text){let replacedText=text;replacedText=replacedText.replace(HOST_DIR,HOST_DIR_REPLACMENT);replacedText=replacedText.replace(EL_DIR,EL_DIR_REPLACMENT);if(text!==replacedText){this.__activateDir=true}return replacedText}constructor(){super();this.__autoDirOptOut=false}ready(){super.ready();this.__autoDirOptOut=this.hasAttribute("dir")}connectedCallback(){if(elementBase.prototype.connectedCallback){super.connectedCallback()}if(this.constructor.__activateDir){takeRecords();DIR_INSTANCES.push(this);setRTL(this)}}disconnectedCallback(){if(elementBase.prototype.disconnectedCallback){super.disconnectedCallback()}if(this.constructor.__activateDir){const idx=DIR_INSTANCES.indexOf(this);if(idx>-1){DIR_INSTANCES.splice(idx,1)}}}}Dir.__activateDir=false;return Dir})})();(function(){"use strict";function whenImportsReady(cb){if(window.HTMLImports){HTMLImports.whenReady(cb)}else{cb()}}Polymer.importHref=function(href,onload,onerror,optAsync){let link=document.head.querySelector('link[href="'+href+'"][import-href]');if(!link){link=document.createElement("link");link.rel="import";link.href=href;link.setAttribute("import-href","")}if(optAsync){link.setAttribute("async","")}let cleanup=function(){link.removeEventListener("load",loadListener);link.removeEventListener("error",errorListener)};let loadListener=function(event){cleanup();link.__dynamicImportLoaded=true;if(onload){whenImportsReady(()=>{onload(event)})}};let errorListener=function(event){cleanup();if(link.parentNode){link.parentNode.removeChild(link)}if(onerror){whenImportsReady(()=>{onerror(event)})}};link.addEventListener("load",loadListener);link.addEventListener("error",errorListener);if(link.parentNode==null){document.head.appendChild(link)}else if(link.__dynamicImportLoaded){link.dispatchEvent(new Event("load"))}return link}})();(function(){"use strict";let scheduled=false;let beforeRenderQueue=[];let afterRenderQueue=[];function schedule(){scheduled=true;requestAnimationFrame(function(){scheduled=false;flushQueue(beforeRenderQueue);setTimeout(function(){runQueue(afterRenderQueue)})})}function flushQueue(queue){while(queue.length){callMethod(queue.shift())}}function runQueue(queue){for(let i=0,l=queue.length;i<l;i++){callMethod(queue.shift())}}function callMethod(info){const context=info[0];const callback=info[1];const args=info[2];try{callback.apply(context,args)}catch(e){setTimeout(()=>{throw e})}}function flush(){while(beforeRenderQueue.length||afterRenderQueue.length){flushQueue(beforeRenderQueue);flushQueue(afterRenderQueue)}scheduled=false}Polymer.RenderStatus={beforeNextRender:function(context,callback,args){if(!scheduled){schedule()}beforeRenderQueue.push([context,callback,args])},afterNextRender:function(context,callback,args){if(!scheduled){schedule()}afterRenderQueue.push([context,callback,args])},flush:flush}})();(function(){"use strict";function resolve(){document.body.removeAttribute("unresolved")}if(window.WebComponents){window.addEventListener("WebComponentsReady",resolve)}else{if(document.readyState==="interactive"||document.readyState==="complete"){resolve()}else{window.addEventListener("DOMContentLoaded",resolve)}}})();(function(){"use strict";function newSplice(index,removed,addedCount){return{index:index,removed:removed,addedCount:addedCount}}const EDIT_LEAVE=0;const EDIT_UPDATE=1;const EDIT_ADD=2;const EDIT_DELETE=3;function calcEditDistances(current,currentStart,currentEnd,old,oldStart,oldEnd){let rowCount=oldEnd-oldStart+1;let columnCount=currentEnd-currentStart+1;let distances=new Array(rowCount);for(let i=0;i<rowCount;i++){distances[i]=new Array(columnCount);distances[i][0]=i}for(let j=0;j<columnCount;j++)distances[0][j]=j;for(let i=1;i<rowCount;i++){for(let j=1;j<columnCount;j++){if(equals(current[currentStart+j-1],old[oldStart+i-1]))distances[i][j]=distances[i-1][j-1];else{let north=distances[i-1][j]+1;let west=distances[i][j-1]+1;distances[i][j]=north<west?north:west}}}return distances}function spliceOperationsFromEditDistances(distances){let i=distances.length-1;let j=distances[0].length-1;let current=distances[i][j];let edits=[];while(i>0||j>0){if(i==0){edits.push(EDIT_ADD);j--;continue}if(j==0){edits.push(EDIT_DELETE);i--;continue}let northWest=distances[i-1][j-1];let west=distances[i-1][j];let north=distances[i][j-1];let min;if(west<north)min=west<northWest?west:northWest;else min=north<northWest?north:northWest;if(min==northWest){if(northWest==current){edits.push(EDIT_LEAVE)}else{edits.push(EDIT_UPDATE);current=northWest}i--;j--}else if(min==west){edits.push(EDIT_DELETE);i--;current=west}else{edits.push(EDIT_ADD);j--;current=north}}edits.reverse();return edits}function calcSplices(current,currentStart,currentEnd,old,oldStart,oldEnd){let prefixCount=0;let suffixCount=0;let splice;let minLength=Math.min(currentEnd-currentStart,oldEnd-oldStart);if(currentStart==0&&oldStart==0)prefixCount=sharedPrefix(current,old,minLength);if(currentEnd==current.length&&oldEnd==old.length)suffixCount=sharedSuffix(current,old,minLength-prefixCount);currentStart+=prefixCount;oldStart+=prefixCount;currentEnd-=suffixCount;oldEnd-=suffixCount;if(currentEnd-currentStart==0&&oldEnd-oldStart==0)return[];if(currentStart==currentEnd){splice=newSplice(currentStart,[],0);while(oldStart<oldEnd)splice.removed.push(old[oldStart++]);return[splice]}else if(oldStart==oldEnd)return[newSplice(currentStart,[],currentEnd-currentStart)];let ops=spliceOperationsFromEditDistances(calcEditDistances(current,currentStart,currentEnd,old,oldStart,oldEnd));splice=undefined;let splices=[];let index=currentStart;let oldIndex=oldStart;for(let i=0;i<ops.length;i++){switch(ops[i]){case EDIT_LEAVE:if(splice){splices.push(splice);splice=undefined}index++;oldIndex++;break;case EDIT_UPDATE:if(!splice)splice=newSplice(index,[],0);splice.addedCount++;index++;splice.removed.push(old[oldIndex]);oldIndex++;break;case EDIT_ADD:if(!splice)splice=newSplice(index,[],0);splice.addedCount++;index++;break;case EDIT_DELETE:if(!splice)splice=newSplice(index,[],0);splice.removed.push(old[oldIndex]);oldIndex++;break}}if(splice){splices.push(splice)}return splices}function sharedPrefix(current,old,searchLength){for(let i=0;i<searchLength;i++)if(!equals(current[i],old[i]))return i;return searchLength}function sharedSuffix(current,old,searchLength){let index1=current.length;let index2=old.length;let count=0;while(count<searchLength&&equals(current[--index1],old[--index2]))count++;return count}function calculateSplices(current,previous){return calcSplices(current,0,current.length,previous,0,previous.length)}function equals(currentValue,previousValue){return currentValue===previousValue}Polymer.ArraySplice={calculateSplices:calculateSplices}})();(function(){"use strict";function isSlot(node){return node.localName==="slot"}class FlattenedNodesObserver{static getFlattenedNodes(node){if(isSlot(node)){node=node;return node.assignedNodes({flatten:true})}else{return Array.from(node.childNodes).map(node=>{if(isSlot(node)){node=node;return node.assignedNodes({flatten:true})}else{return[node]}}).reduce((a,b)=>a.concat(b),[])}}constructor(target,callback){this._shadyChildrenObserver=null;this._nativeChildrenObserver=null;this._connected=false;this._target=target;this.callback=callback;this._effectiveNodes=[];this._observer=null;this._scheduled=false;this._boundSchedule=(()=>{this._schedule()});this.connect();this._schedule()}connect(){if(isSlot(this._target)){this._listenSlots([this._target])}else if(this._target.children){this._listenSlots(this._target.children);if(window.ShadyDOM){this._shadyChildrenObserver=ShadyDOM.observeChildren(this._target,mutations=>{this._processMutations(mutations)})}else{this._nativeChildrenObserver=new MutationObserver(mutations=>{this._processMutations(mutations)});this._nativeChildrenObserver.observe(this._target,{childList:true})}}this._connected=true}disconnect(){if(isSlot(this._target)){this._unlistenSlots([this._target])}else if(this._target.children){this._unlistenSlots(this._target.children);if(window.ShadyDOM&&this._shadyChildrenObserver){ShadyDOM.unobserveChildren(this._shadyChildrenObserver);this._shadyChildrenObserver=null}else if(this._nativeChildrenObserver){this._nativeChildrenObserver.disconnect();this._nativeChildrenObserver=null}}this._connected=false}_schedule(){if(!this._scheduled){this._scheduled=true;Polymer.Async.microTask.run(()=>this.flush())}}_processMutations(mutations){this._processSlotMutations(mutations);this.flush()}_processSlotMutations(mutations){if(mutations){for(let i=0;i<mutations.length;i++){let mutation=mutations[i];if(mutation.addedNodes){this._listenSlots(mutation.addedNodes)}if(mutation.removedNodes){this._unlistenSlots(mutation.removedNodes)}}}}flush(){if(!this._connected){return false}if(window.ShadyDOM){ShadyDOM.flush()}if(this._nativeChildrenObserver){this._processSlotMutations(this._nativeChildrenObserver.takeRecords())}else if(this._shadyChildrenObserver){this._processSlotMutations(this._shadyChildrenObserver.takeRecords())}this._scheduled=false;let info={target:this._target,addedNodes:[],removedNodes:[]};let newNodes=this.constructor.getFlattenedNodes(this._target);let splices=Polymer.ArraySplice.calculateSplices(newNodes,this._effectiveNodes);for(let i=0,s;i<splices.length&&(s=splices[i]);i++){for(let j=0,n;j<s.removed.length&&(n=s.removed[j]);j++){info.removedNodes.push(n)}}for(let i=0,s;i<splices.length&&(s=splices[i]);i++){for(let j=s.index;j<s.index+s.addedCount;j++){info.addedNodes.push(newNodes[j])}}this._effectiveNodes=newNodes;let didFlush=false;if(info.addedNodes.length||info.removedNodes.length){didFlush=true;this.callback.call(this._target,info)}return didFlush}_listenSlots(nodeList){for(let i=0;i<nodeList.length;i++){let n=nodeList[i];if(isSlot(n)){n.addEventListener("slotchange",this._boundSchedule)}}}_unlistenSlots(nodeList){for(let i=0;i<nodeList.length;i++){let n=nodeList[i];if(isSlot(n)){n.removeEventListener("slotchange",this._boundSchedule)}}}}Polymer.FlattenedNodesObserver=FlattenedNodesObserver})();(function(){"use strict";let debouncerQueue=[];Polymer.enqueueDebouncer=function(debouncer){debouncerQueue.push(debouncer)};function flushDebouncers(){const didFlush=Boolean(debouncerQueue.length);while(debouncerQueue.length){try{debouncerQueue.shift().flush()}catch(e){setTimeout(()=>{throw e})}}return didFlush}Polymer.flush=function(){let shadyDOM,debouncers;do{shadyDOM=window.ShadyDOM&&ShadyDOM.flush();if(window.ShadyCSS&&window.ShadyCSS.ScopingShim){window.ShadyCSS.ScopingShim.flush()}debouncers=flushDebouncers()}while(shadyDOM||debouncers)}})();(function(){"use strict";const p=Element.prototype;const normalizedMatchesSelector=p.matches||p.matchesSelector||p.mozMatchesSelector||p.msMatchesSelector||p.oMatchesSelector||p.webkitMatchesSelector;const matchesSelector=function(node,selector){return normalizedMatchesSelector.call(node,selector)};class DomApi{constructor(node){this.node=node}observeNodes(callback){return new Polymer.FlattenedNodesObserver(this.node,callback)}unobserveNodes(observerHandle){observerHandle.disconnect()}notifyObserver(){}deepContains(node){if(this.node.contains(node)){return true}let n=node;let doc=node.ownerDocument;while(n&&n!==doc&&n!==this.node){n=n.parentNode||n.host}return n===this.node}getOwnerRoot(){return this.node.getRootNode()}getDistributedNodes(){return this.node.localName==="slot"?this.node.assignedNodes({flatten:true}):[]}getDestinationInsertionPoints(){let ip$=[];let n=this.node.assignedSlot;while(n){ip$.push(n);n=n.assignedSlot}return ip$}importNode(node,deep){let doc=this.node instanceof Document?this.node:this.node.ownerDocument;return doc.importNode(node,deep)}getEffectiveChildNodes(){return Polymer.FlattenedNodesObserver.getFlattenedNodes(this.node)}queryDistributedElements(selector){let c$=this.getEffectiveChildNodes();let list=[];for(let i=0,l=c$.length,c;i<l&&(c=c$[i]);i++){if(c.nodeType===Node.ELEMENT_NODE&&matchesSelector(c,selector)){list.push(c)}}return list}get activeElement(){let node=this.node;return node._activeElement!==undefined?node._activeElement:node.activeElement}}function forwardMethods(proto,methods){for(let i=0;i<methods.length;i++){let method=methods[i];proto[method]=function(){return this.node[method].apply(this.node,arguments)}}}function forwardReadOnlyProperties(proto,properties){for(let i=0;i<properties.length;i++){let name=properties[i];Object.defineProperty(proto,name,{get:function(){const domApi=this;return domApi.node[name]},configurable:true})}}function forwardProperties(proto,properties){for(let i=0;i<properties.length;i++){let name=properties[i];Object.defineProperty(proto,name,{get:function(){const domApi=this;return domApi.node[name]},set:function(value){this.node[name]=value},configurable:true})}}forwardMethods(DomApi.prototype,["cloneNode","appendChild","insertBefore","removeChild","replaceChild","setAttribute","removeAttribute","querySelector","querySelectorAll"]);forwardReadOnlyProperties(DomApi.prototype,["parentNode","firstChild","lastChild","nextSibling","previousSibling","firstElementChild","lastElementChild","nextElementSibling","previousElementSibling","childNodes","children","classList"]);forwardProperties(DomApi.prototype,["textContent","innerHTML"]);class EventApi{constructor(event){this.event=event}get rootTarget(){return this.event.composedPath()[0]}get localTarget(){return this.event.target}get path(){return this.event.composedPath()}}Polymer.DomApi=DomApi;Polymer.DomApi.prototype.cloneNode;Polymer.DomApi.prototype.appendChild;Polymer.DomApi.prototype.insertBefore;Polymer.DomApi.prototype.removeChild;Polymer.DomApi.prototype.replaceChild;Polymer.DomApi.prototype.setAttribute;Polymer.DomApi.prototype.removeAttribute;Polymer.DomApi.prototype.querySelector;Polymer.DomApi.prototype.querySelectorAll;Polymer.dom=function(obj){obj=obj||document;if(!obj.__domApi){let helper;if(obj instanceof Event){helper=new EventApi(obj)}else{helper=new DomApi(obj)}obj.__domApi=helper}return obj.__domApi};Polymer.dom.matchesSelector=matchesSelector;Polymer.dom.flush=Polymer.flush;Polymer.dom.addDebouncer=Polymer.enqueueDebouncer})();(function(){"use strict";let styleInterface=window.ShadyCSS;Polymer.LegacyElementMixin=Polymer.dedupingMixin(base=>{const legacyElementBase=Polymer.DirMixin(Polymer.GestureEventListeners(Polymer.ElementMixin(base)));const DIRECTION_MAP={x:"pan-x",y:"pan-y",none:"none",all:"auto"};class LegacyElement extends legacyElementBase{constructor(){super();this.isAttached;this.__boundListeners;this._debouncers;this._applyListeners()}created(){}connectedCallback(){super.connectedCallback();this.isAttached=true;this.attached()}attached(){}disconnectedCallback(){super.disconnectedCallback();this.isAttached=false;this.detached()}detached(){}attributeChangedCallback(name,old,value){if(old!==value){super.attributeChangedCallback(name,old,value);this.attributeChanged(name,old,value)}}attributeChanged(name,old,value){}_initializeProperties(){let proto=Object.getPrototypeOf(this);if(!proto.hasOwnProperty("__hasRegisterFinished")){proto.__hasRegisterFinished=true;this._registered()}super._initializeProperties();this.root=this;this.created()}_registered(){}ready(){this._ensureAttributes();super.ready()}_ensureAttributes(){}_applyListeners(){}serialize(value){return this._serializeValue(value)}deserialize(value,type){return this._deserializeValue(value,type)}reflectPropertyToAttribute(property,attribute,value){this._propertyToAttribute(property,attribute,value)}serializeValueToAttribute(value,attribute,node){this._valueToNodeAttribute(node||this,value,attribute)}extend(prototype,api){if(!(prototype&&api)){return prototype||api}let n$=Object.getOwnPropertyNames(api);for(let i=0,n;i<n$.length&&(n=n$[i]);i++){let pd=Object.getOwnPropertyDescriptor(api,n);if(pd){Object.defineProperty(prototype,n,pd)}}return prototype}mixin(target,source){for(let i in source){target[i]=source[i]}return target}chainObject(object,prototype){if(object&&prototype&&object!==prototype){object.__proto__=prototype}return object}instanceTemplate(template){let content=this.constructor._contentForTemplate(template);let dom=document.importNode(content,true);return dom}fire(type,detail,options){options=options||{};detail=detail===null||detail===undefined?{}:detail;let event=new Event(type,{bubbles:options.bubbles===undefined?true:options.bubbles,cancelable:Boolean(options.cancelable),composed:options.composed===undefined?true:options.composed});event.detail=detail;let node=options.node||this;node.dispatchEvent(event);return event}listen(node,eventName,methodName){node=node||this;let hbl=this.__boundListeners||(this.__boundListeners=new WeakMap);let bl=hbl.get(node);if(!bl){bl={};hbl.set(node,bl)}let key=eventName+methodName;if(!bl[key]){bl[key]=this._addMethodEventListenerToNode(node,eventName,methodName,this)}}unlisten(node,eventName,methodName){node=node||this;let bl=this.__boundListeners&&this.__boundListeners.get(node);let key=eventName+methodName;let handler=bl&&bl[key];if(handler){this._removeEventListenerFromNode(node,eventName,handler);bl[key]=null}}setScrollDirection(direction,node){Polymer.Gestures.setTouchAction(node||this,DIRECTION_MAP[direction]||"auto")}$$(slctr){return this.root.querySelector(slctr)}get domHost(){let root=this.getRootNode();return root instanceof DocumentFragment?root.host:root}distributeContent(){if(window.ShadyDOM&&this.shadowRoot){ShadyDOM.flush()}}getEffectiveChildNodes(){const thisEl=this;const domApi=Polymer.dom(thisEl);return domApi.getEffectiveChildNodes()}queryDistributedElements(selector){const thisEl=this;const domApi=Polymer.dom(thisEl);return domApi.queryDistributedElements(selector)}getEffectiveChildren(){let list=this.getEffectiveChildNodes();return list.filter(function(n){return n.nodeType===Node.ELEMENT_NODE})}getEffectiveTextContent(){let cn=this.getEffectiveChildNodes();let tc=[];for(let i=0,c;c=cn[i];i++){if(c.nodeType!==Node.COMMENT_NODE){tc.push(c.textContent)}}return tc.join("")}queryEffectiveChildren(selector){let e$=this.queryDistributedElements(selector);return e$&&e$[0]}queryAllEffectiveChildren(selector){return this.queryDistributedElements(selector)}getContentChildNodes(slctr){let content=this.root.querySelector(slctr||"slot");return content?Polymer.dom(content).getDistributedNodes():[]}getContentChildren(slctr){let children=this.getContentChildNodes(slctr).filter(function(n){return n.nodeType===Node.ELEMENT_NODE});return children}isLightDescendant(node){const thisNode=this;return thisNode!==node&&thisNode.contains(node)&&thisNode.getRootNode()===node.getRootNode()}isLocalDescendant(node){return this.root===node.getRootNode()}scopeSubtree(container,shouldObserve){}getComputedStyleValue(property){return styleInterface.getComputedStyleValue(this,property)}debounce(jobName,callback,wait){this._debouncers=this._debouncers||{};return this._debouncers[jobName]=Polymer.Debouncer.debounce(this._debouncers[jobName],wait>0?Polymer.Async.timeOut.after(wait):Polymer.Async.microTask,callback.bind(this))}isDebouncerActive(jobName){this._debouncers=this._debouncers||{};let debouncer=this._debouncers[jobName];return!!(debouncer&&debouncer.isActive())}flushDebouncer(jobName){this._debouncers=this._debouncers||{};let debouncer=this._debouncers[jobName];if(debouncer){debouncer.flush()}}cancelDebouncer(jobName){this._debouncers=this._debouncers||{};let debouncer=this._debouncers[jobName];if(debouncer){debouncer.cancel()}}async(callback,waitTime){return waitTime>0?Polymer.Async.timeOut.run(callback.bind(this),waitTime):~Polymer.Async.microTask.run(callback.bind(this))}cancelAsync(handle){handle<0?Polymer.Async.microTask.cancel(~handle):Polymer.Async.timeOut.cancel(handle)}create(tag,props){let elt=document.createElement(tag);if(props){if(elt.setProperties){elt.setProperties(props)}else{for(let n in props){elt[n]=props[n]}}}return elt}importHref(href,onload,onerror,optAsync){let loadFn=onload?onload.bind(this):null;let errorFn=onerror?onerror.bind(this):null;return Polymer.importHref(href,loadFn,errorFn,optAsync)}elementMatches(selector,node){return Polymer.dom.matchesSelector(node||this,selector)}toggleAttribute(name,bool,node){node=node||this;if(arguments.length==1){bool=!node.hasAttribute(name)}if(bool){node.setAttribute(name,"")}else{node.removeAttribute(name)}}toggleClass(name,bool,node){node=node||this;if(arguments.length==1){bool=!node.classList.contains(name)}if(bool){node.classList.add(name)}else{node.classList.remove(name)}}transform(transformText,node){node=node||this;node.style.webkitTransform=transformText;node.style.transform=transformText}translate3d(x,y,z,node){node=node||this;this.transform("translate3d("+x+","+y+","+z+")",node)}arrayDelete(arrayOrPath,item){let index;if(Array.isArray(arrayOrPath)){index=arrayOrPath.indexOf(item);if(index>=0){return arrayOrPath.splice(index,1)}}else{let arr=Polymer.Path.get(this,arrayOrPath);index=arr.indexOf(item);if(index>=0){return this.splice(arrayOrPath,index,1)}}return null}_logger(level,args){if(Array.isArray(args)&&args.length===1&&Array.isArray(args[0])){args=args[0]}switch(level){case"log":case"warn":case"error":console[level](...args)}}_log(...args){this._logger("log",args)}_warn(...args){this._logger("warn",args)}_error(...args){this._logger("error",args)}_logf(methodName,...args){return["[%s::%s]",this.is,methodName,...args]}}LegacyElement.prototype.is="";return LegacyElement})})();(function(){"use strict";let metaProps={attached:true,detached:true,ready:true,created:true,beforeRegister:true,registered:true,attributeChanged:true,behaviors:true};function mixinBehaviors(behaviors,klass){if(!behaviors){klass=klass;return klass}klass=Polymer.LegacyElementMixin(klass);if(!Array.isArray(behaviors)){behaviors=[behaviors]}let superBehaviors=klass.prototype.behaviors;behaviors=flattenBehaviors(behaviors,null,superBehaviors);klass=_mixinBehaviors(behaviors,klass);if(superBehaviors){behaviors=superBehaviors.concat(behaviors)}klass.prototype.behaviors=behaviors;return klass}function _mixinBehaviors(behaviors,klass){for(let i=0;i<behaviors.length;i++){let b=behaviors[i];if(b){klass=Array.isArray(b)?_mixinBehaviors(b,klass):GenerateClassFromInfo(b,klass)}}return klass}function flattenBehaviors(behaviors,list,exclude){list=list||[];for(let i=behaviors.length-1;i>=0;i--){let b=behaviors[i];if(b){if(Array.isArray(b)){flattenBehaviors(b,list)}else{if(list.indexOf(b)<0&&(!exclude||exclude.indexOf(b)<0)){list.unshift(b)}}}else{console.warn("behavior is null, check for missing or 404 import")}}return list}function GenerateClassFromInfo(info,Base){class PolymerGenerated extends Base{static get properties(){return info.properties}static get observers(){return info.observers}static get template(){return info._template||Polymer.DomModule&&Polymer.DomModule.import(this.is,"template")||Base.template||this.prototype._template||null}created(){super.created();if(info.created){info.created.call(this)}}_registered(){super._registered();if(info.beforeRegister){info.beforeRegister.call(Object.getPrototypeOf(this))}if(info.registered){info.registered.call(Object.getPrototypeOf(this))}}_applyListeners(){super._applyListeners();if(info.listeners){for(let l in info.listeners){this._addMethodEventListenerToNode(this,l,info.listeners[l])}}}_ensureAttributes(){if(info.hostAttributes){for(let a in info.hostAttributes){this._ensureAttribute(a,info.hostAttributes[a])}}super._ensureAttributes()}ready(){super.ready();if(info.ready){info.ready.call(this)}}attached(){super.attached();if(info.attached){info.attached.call(this)}}detached(){super.detached();if(info.detached){info.detached.call(this)}}attributeChanged(name,old,value){super.attributeChanged(name,old,value);if(info.attributeChanged){info.attributeChanged.call(this,name,old,value)}}}PolymerGenerated.generatedFrom=info;for(let p in info){if(!(p in metaProps)){let pd=Object.getOwnPropertyDescriptor(info,p);if(pd){Object.defineProperty(PolymerGenerated.prototype,p,pd)}}}return PolymerGenerated}Polymer.Class=function(info){if(!info){console.warn("Polymer.Class requires `info` argument")}let klass=GenerateClassFromInfo(info,info.behaviors?mixinBehaviors(info.behaviors,HTMLElement):Polymer.LegacyElementMixin(HTMLElement));klass.is=info.is;return klass};Polymer.mixinBehaviors=mixinBehaviors})();(function(){"use strict";window.Polymer._polymerFn=function(info){let klass;if(typeof info==="function"){klass=info}else{klass=Polymer.Class(info)}customElements.define(klass.is,klass);return klass}})();(function(){"use strict";function mutablePropertyChange(inst,property,value,old,mutableData){let isObject;if(mutableData){isObject=typeof value==="object"&&value!==null;if(isObject){old=inst.__dataTemp[property]}}let shouldChange=old!==value&&(old===old||value===value);if(isObject&&shouldChange){inst.__dataTemp[property]=value}return shouldChange}Polymer.MutableData=Polymer.dedupingMixin(superClass=>{class MutableData extends superClass{_shouldPropertyChange(property,value,old){return mutablePropertyChange(this,property,value,old,true)}}return MutableData});Polymer.OptionalMutableData=Polymer.dedupingMixin(superClass=>{class OptionalMutableData extends superClass{static get properties(){return{mutableData:Boolean}}_shouldPropertyChange(property,value,old){return mutablePropertyChange(this,property,value,old,this.mutableData)}}return OptionalMutableData});Polymer.MutableData._mutablePropertyChange=mutablePropertyChange})();(function(){"use strict";let newInstance=null;function HTMLTemplateElementExtension(){return newInstance}HTMLTemplateElementExtension.prototype=Object.create(HTMLTemplateElement.prototype,{constructor:{value:HTMLTemplateElementExtension,writable:true}});const DataTemplate=Polymer.PropertyEffects(HTMLTemplateElementExtension);const MutableDataTemplate=Polymer.MutableData(DataTemplate);function upgradeTemplate(template,constructor){newInstance=template;Object.setPrototypeOf(template,constructor.prototype);new constructor;newInstance=null}const base=Polymer.PropertyEffects(class{});class TemplateInstanceBase extends base{constructor(props){super();this._configureProperties(props);this.root=this._stampTemplate(this.__dataHost);let children=this.children=[];for(let n=this.root.firstChild;n;n=n.nextSibling){children.push(n);n.__templatizeInstance=this}if(this.__templatizeOwner&&this.__templatizeOwner.__hideTemplateChildren__){this._showHideChildren(true)}let options=this.__templatizeOptions;if(props&&options.instanceProps||!options.instanceProps){this._enableProperties()}}_configureProperties(props){let options=this.__templatizeOptions;if(options.forwardHostProp){for(let hprop in this.__hostProps){this._setPendingProperty(hprop,this.__dataHost["_host_"+hprop])}}for(let iprop in props){this._setPendingProperty(iprop,props[iprop])}}forwardHostProp(prop,value){if(this._setPendingPropertyOrPath(prop,value,false,true)){this.__dataHost._enqueueClient(this)}}_addEventListenerToNode(node,eventName,handler){if(this._methodHost&&this.__templatizeOptions.parentModel){this._methodHost._addEventListenerToNode(node,eventName,e=>{e.model=this;handler(e)})}else{let templateHost=this.__dataHost.__dataHost;if(templateHost){templateHost._addEventListenerToNode(node,eventName,handler)}}}_showHideChildren(hide){let c=this.children;for(let i=0;i<c.length;i++){let n=c[i];if(Boolean(hide)!=Boolean(n.__hideTemplateChildren__)){if(n.nodeType===Node.TEXT_NODE){if(hide){n.__polymerTextContent__=n.textContent;n.textContent=""}else{n.textContent=n.__polymerTextContent__}}else if(n.localName==="slot"){if(hide){n.__polymerReplaced__=document.createComment("hidden-slot");n.parentNode.replaceChild(n.__polymerReplaced__,n)}else{const replace=n.__polymerReplaced__;if(replace){replace.parentNode.replaceChild(n,replace)}}}else if(n.style){if(hide){n.__polymerDisplay__=n.style.display;n.style.display="none"}else{n.style.display=n.__polymerDisplay__}}}n.__hideTemplateChildren__=hide;if(n._showHideChildren){n._showHideChildren(hide)}}}_setUnmanagedPropertyToNode(node,prop,value){if(node.__hideTemplateChildren__&&node.nodeType==Node.TEXT_NODE&&prop=="textContent"){node.__polymerTextContent__=value}else{super._setUnmanagedPropertyToNode(node,prop,value)}}get parentModel(){let model=this.__parentModel;if(!model){let options;model=this;do{model=model.__dataHost.__dataHost}while((options=model.__templatizeOptions)&&!options.parentModel);this.__parentModel=model}return model}dispatchEvent(event){return true}}TemplateInstanceBase.prototype.__dataHost;TemplateInstanceBase.prototype.__templatizeOptions;TemplateInstanceBase.prototype._methodHost;TemplateInstanceBase.prototype.__templatizeOwner;TemplateInstanceBase.prototype.__hostProps;const MutableTemplateInstanceBase=Polymer.MutableData(TemplateInstanceBase);function findMethodHost(template){let templateHost=template.__dataHost;return templateHost&&templateHost._methodHost||templateHost}function createTemplatizerClass(template,templateInfo,options){let base=options.mutableData?MutableTemplateInstanceBase:TemplateInstanceBase;let klass=class extends base{};klass.prototype.__templatizeOptions=options;klass.prototype._bindTemplate(template);addNotifyEffects(klass,template,templateInfo,options);return klass}function addPropagateEffects(template,templateInfo,options){let userForwardHostProp=options.forwardHostProp;if(userForwardHostProp){let klass=templateInfo.templatizeTemplateClass;if(!klass){let base=options.mutableData?MutableDataTemplate:DataTemplate;klass=templateInfo.templatizeTemplateClass=class TemplatizedTemplate extends base{};let hostProps=templateInfo.hostProps;for(let prop in hostProps){klass.prototype._addPropertyEffect("_host_"+prop,klass.prototype.PROPERTY_EFFECT_TYPES.PROPAGATE,{fn:createForwardHostPropEffect(prop,userForwardHostProp)});klass.prototype._createNotifyingProperty("_host_"+prop)}}upgradeTemplate(template,klass);if(template.__dataProto){Object.assign(template.__data,template.__dataProto)}template.__dataTemp={};template.__dataPending=null;template.__dataOld=null;template._enableProperties()}}function createForwardHostPropEffect(hostProp,userForwardHostProp){return function forwardHostProp(template,prop,props){userForwardHostProp.call(template.__templatizeOwner,prop.substring("_host_".length),props[prop])}}function addNotifyEffects(klass,template,templateInfo,options){let hostProps=templateInfo.hostProps||{};for(let iprop in options.instanceProps){delete hostProps[iprop];let userNotifyInstanceProp=options.notifyInstanceProp;if(userNotifyInstanceProp){klass.prototype._addPropertyEffect(iprop,klass.prototype.PROPERTY_EFFECT_TYPES.NOTIFY,{fn:createNotifyInstancePropEffect(iprop,userNotifyInstanceProp)})}}if(options.forwardHostProp&&template.__dataHost){for(let hprop in hostProps){klass.prototype._addPropertyEffect(hprop,klass.prototype.PROPERTY_EFFECT_TYPES.NOTIFY,{fn:createNotifyHostPropEffect()})}}}function createNotifyInstancePropEffect(instProp,userNotifyInstanceProp){return function notifyInstanceProp(inst,prop,props){userNotifyInstanceProp.call(inst.__templatizeOwner,inst,prop,props[prop])}}function createNotifyHostPropEffect(){return function notifyHostProp(inst,prop,props){inst.__dataHost._setPendingPropertyOrPath("_host_"+prop,props[prop],true,true)}}Polymer.Templatize={templatize(template,owner,options){options=options||{};if(template.__templatizeOwner){throw new Error("A <template> can only be templatized once")}template.__templatizeOwner=owner;const ctor=owner?owner.constructor:TemplateInstanceBase;let templateInfo=ctor._parseTemplate(template);let baseClass=templateInfo.templatizeInstanceClass;if(!baseClass){baseClass=createTemplatizerClass(template,templateInfo,options);templateInfo.templatizeInstanceClass=baseClass}addPropagateEffects(template,templateInfo,options);let klass=class TemplateInstance extends baseClass{};klass.prototype._methodHost=findMethodHost(template);klass.prototype.__dataHost=template;klass.prototype.__templatizeOwner=owner;klass.prototype.__hostProps=templateInfo.hostProps;klass=klass;return klass},modelForElement(template,node){let model;while(node){if(model=node.__templatizeInstance){if(model.__dataHost!=template){node=model.__dataHost}else{return model}}else{node=node.parentNode}}return null}};Polymer.TemplateInstanceBase=TemplateInstanceBase})();(function(){"use strict";let TemplateInstanceBase=Polymer.TemplateInstanceBase;let TemplatizerUser;Polymer.Templatizer={templatize(template,mutableData){this._templatizerTemplate=template;this.ctor=Polymer.Templatize.templatize(template,this,{mutableData:Boolean(mutableData),parentModel:this._parentModel,instanceProps:this._instanceProps,forwardHostProp:this._forwardHostPropV2,notifyInstanceProp:this._notifyInstancePropV2})},stamp(model){return new this.ctor(model)},modelForElement(el){return Polymer.Templatize.modelForElement(this._templatizerTemplate,el)}}})();(function(){"use strict";const domBindBase=Polymer.GestureEventListeners(Polymer.OptionalMutableData(Polymer.PropertyEffects(HTMLElement)));class DomBind extends domBindBase{static get observedAttributes(){return["mutable-data"]}constructor(){super();this.root=null;this.$=null;this.__children=null}attributeChangedCallback(){this.mutableData=true}connectedCallback(){this.style.display="none";this.render()}disconnectedCallback(){this.__removeChildren()}__insertChildren(){this.parentNode.insertBefore(this.root,this)}__removeChildren(){if(this.__children){for(let i=0;i<this.__children.length;i++){this.root.appendChild(this.__children[i])}}}render(){let template;if(!this.__children){template=template||this.querySelector("template");if(!template){let observer=new MutationObserver(()=>{template=this.querySelector("template");if(template){observer.disconnect();this.render()}else{throw new Error("dom-bind requires a <template> child")}});observer.observe(this,{childList:true});return}this.root=this._stampTemplate(template);this.$=this.root.$;this.__children=[];for(let n=this.root.firstChild;n;n=n.nextSibling){this.__children[this.__children.length]=n}this._enableProperties()}this.__insertChildren();this.dispatchEvent(new CustomEvent("dom-change",{bubbles:true,composed:true}))}}customElements.define("dom-bind",DomBind);Polymer.DomBind=DomBind})();(function(){"use strict";class LiteralString{constructor(string){this.value=string.toString()}toString(){return this.value}}function literalValue(value){if(value instanceof LiteralString){return value.value}else{throw new Error(`non-literal value passed to Polymer.htmlLiteral: ${value}`)}}function htmlValue(value){if(value instanceof HTMLTemplateElement){return value.innerHTML}else if(value instanceof LiteralString){return literalValue(value)}else{throw new Error(`non-template value passed to Polymer.html: ${value}`)}}Polymer.html=function html(strings,...values){const template=document.createElement("template");template.innerHTML=values.reduce((acc,v,idx)=>acc+htmlValue(v)+strings[idx+1],strings[0]);return template};Polymer.htmlLiteral=function(strings,...values){return new LiteralString(values.reduce((acc,v,idx)=>acc+literalValue(v)+strings[idx+1],strings[0]))}})();(function(){"use strict";const Element=Polymer.ElementMixin(HTMLElement);Polymer.Element=Element;Polymer.html=Polymer.html})();(function(){"use strict";let TemplateInstanceBase=Polymer.TemplateInstanceBase;const domRepeatBase=Polymer.OptionalMutableData(Polymer.Element);class DomRepeat extends domRepeatBase{static get is(){return"dom-repeat"}static get template(){return null}static get properties(){return{items:{type:Array},as:{type:String,value:"item"},indexAs:{type:String,value:"index"},itemsIndexAs:{type:String,value:"itemsIndex"},sort:{type:Function,observer:"__sortChanged"},filter:{type:Function,observer:"__filterChanged"},observe:{type:String,observer:"__observeChanged"},delay:Number,renderedItemCount:{type:Number,notify:true,readOnly:true},initialCount:{type:Number,observer:"__initializeChunking"},targetFramerate:{type:Number,value:20},_targetFrameTime:{type:Number,computed:"__computeFrameTime(targetFramerate)"}}}static get observers(){return["__itemsChanged(items.*)"]}constructor(){super();this.__instances=[];this.__limit=Infinity;this.__pool=[];this.__renderDebouncer=null;this.__itemsIdxToInstIdx={};this.__chunkCount=null;this.__lastChunkTime=null;this.__sortFn=null;this.__filterFn=null;this.__observePaths=null;this.__ctor=null;this.__isDetached=true;this.template=null}disconnectedCallback(){super.disconnectedCallback();this.__isDetached=true;for(let i=0;i<this.__instances.length;i++){this.__detachInstance(i)}}connectedCallback(){super.connectedCallback();this.style.display="none";if(this.__isDetached){this.__isDetached=false;let parent=this.parentNode;for(let i=0;i<this.__instances.length;i++){this.__attachInstance(i,parent)}}}__ensureTemplatized(){if(!this.__ctor){let template=this.template=this.querySelector("template");if(!template){let observer=new MutationObserver(()=>{if(this.querySelector("template")){observer.disconnect();this.__render()}else{throw new Error("dom-repeat requires a <template> child")}});observer.observe(this,{childList:true});return false}let instanceProps={};instanceProps[this.as]=true;instanceProps[this.indexAs]=true;instanceProps[this.itemsIndexAs]=true;this.__ctor=Polymer.Templatize.templatize(template,this,{mutableData:this.mutableData,parentModel:true,instanceProps:instanceProps,forwardHostProp:function(prop,value){let i$=this.__instances;for(let i=0,inst;i<i$.length&&(inst=i$[i]);i++){inst.forwardHostProp(prop,value)}},notifyInstanceProp:function(inst,prop,value){if(Polymer.Path.matches(this.as,prop)){let idx=inst[this.itemsIndexAs];if(prop==this.as){this.items[idx]=value}let path=Polymer.Path.translate(this.as,"items."+idx,prop);this.notifyPath(path,value)}}})}return true}__getMethodHost(){return this.__dataHost._methodHost||this.__dataHost}__functionFromPropertyValue(functionOrMethodName){if(typeof functionOrMethodName==="string"){let methodName=functionOrMethodName;let obj=this.__getMethodHost();return function(){return obj[methodName].apply(obj,arguments)}}return functionOrMethodName}__sortChanged(sort){this.__sortFn=this.__functionFromPropertyValue(sort);if(this.items){this.__debounceRender(this.__render)}}__filterChanged(filter){this.__filterFn=this.__functionFromPropertyValue(filter);if(this.items){this.__debounceRender(this.__render)}}__computeFrameTime(rate){return Math.ceil(1e3/rate)}__initializeChunking(){if(this.initialCount){this.__limit=this.initialCount;this.__chunkCount=this.initialCount;this.__lastChunkTime=performance.now()}}__tryRenderChunk(){if(this.items&&this.__limit<this.items.length){this.__debounceRender(this.__requestRenderChunk)}}__requestRenderChunk(){requestAnimationFrame(()=>this.__renderChunk())}__renderChunk(){let currChunkTime=performance.now();let ratio=this._targetFrameTime/(currChunkTime-this.__lastChunkTime);this.__chunkCount=Math.round(this.__chunkCount*ratio)||1;this.__limit+=this.__chunkCount;this.__lastChunkTime=currChunkTime;this.__debounceRender(this.__render)}__observeChanged(){this.__observePaths=this.observe&&this.observe.replace(".*",".").split(" ")}__itemsChanged(change){if(this.items&&!Array.isArray(this.items)){console.warn("dom-repeat expected array for `items`, found",this.items)}if(!this.__handleItemPath(change.path,change.value)){this.__initializeChunking();this.__debounceRender(this.__render)}}__handleObservedPaths(path){if(this.__sortFn||this.__filterFn){if(!path){this.__debounceRender(this.__render,this.delay)}else if(this.__observePaths){let paths=this.__observePaths;for(let i=0;i<paths.length;i++){if(path.indexOf(paths[i])===0){this.__debounceRender(this.__render,this.delay)}}}}}__debounceRender(fn,delay=0){this.__renderDebouncer=Polymer.Debouncer.debounce(this.__renderDebouncer,delay>0?Polymer.Async.timeOut.after(delay):Polymer.Async.microTask,fn.bind(this));Polymer.enqueueDebouncer(this.__renderDebouncer)}render(){this.__debounceRender(this.__render);Polymer.flush()}__render(){if(!this.__ensureTemplatized()){return}this.__applyFullRefresh();this.__pool.length=0;this._setRenderedItemCount(this.__instances.length);this.dispatchEvent(new CustomEvent("dom-change",{bubbles:true,composed:true}));this.__tryRenderChunk()}__applyFullRefresh(){let items=this.items||[];let isntIdxToItemsIdx=new Array(items.length);for(let i=0;i<items.length;i++){isntIdxToItemsIdx[i]=i}if(this.__filterFn){isntIdxToItemsIdx=isntIdxToItemsIdx.filter((i,idx,array)=>this.__filterFn(items[i],idx,array))}if(this.__sortFn){isntIdxToItemsIdx.sort((a,b)=>this.__sortFn(items[a],items[b]))}const itemsIdxToInstIdx=this.__itemsIdxToInstIdx={};let instIdx=0;const limit=Math.min(isntIdxToItemsIdx.length,this.__limit);for(;instIdx<limit;instIdx++){let inst=this.__instances[instIdx];let itemIdx=isntIdxToItemsIdx[instIdx];let item=items[itemIdx];itemsIdxToInstIdx[itemIdx]=instIdx;if(inst){inst._setPendingProperty(this.as,item);inst._setPendingProperty(this.indexAs,instIdx);inst._setPendingProperty(this.itemsIndexAs,itemIdx);inst._flushProperties()}else{this.__insertInstance(item,instIdx,itemIdx)}}for(let i=this.__instances.length-1;i>=instIdx;i--){this.__detachAndRemoveInstance(i)}}__detachInstance(idx){let inst=this.__instances[idx];for(let i=0;i<inst.children.length;i++){let el=inst.children[i];inst.root.appendChild(el)}return inst}__attachInstance(idx,parent){let inst=this.__instances[idx];parent.insertBefore(inst.root,this)}__detachAndRemoveInstance(idx){let inst=this.__detachInstance(idx);if(inst){this.__pool.push(inst)}this.__instances.splice(idx,1)}__stampInstance(item,instIdx,itemIdx){let model={};model[this.as]=item;model[this.indexAs]=instIdx;model[this.itemsIndexAs]=itemIdx;return new this.__ctor(model)}__insertInstance(item,instIdx,itemIdx){let inst=this.__pool.pop();if(inst){inst._setPendingProperty(this.as,item);inst._setPendingProperty(this.indexAs,instIdx);inst._setPendingProperty(this.itemsIndexAs,itemIdx);inst._flushProperties()}else{inst=this.__stampInstance(item,instIdx,itemIdx)}let beforeRow=this.__instances[instIdx+1];let beforeNode=beforeRow?beforeRow.children[0]:this;this.parentNode.insertBefore(inst.root,beforeNode);this.__instances[instIdx]=inst;return inst}_showHideChildren(hidden){for(let i=0;i<this.__instances.length;i++){this.__instances[i]._showHideChildren(hidden)}}__handleItemPath(path,value){let itemsPath=path.slice(6);let dot=itemsPath.indexOf(".");let itemsIdx=dot<0?itemsPath:itemsPath.substring(0,dot);if(itemsIdx==parseInt(itemsIdx,10)){let itemSubPath=dot<0?"":itemsPath.substring(dot+1);this.__handleObservedPaths(itemSubPath);let instIdx=this.__itemsIdxToInstIdx[itemsIdx];let inst=this.__instances[instIdx];if(inst){let itemPath=this.as+(itemSubPath?"."+itemSubPath:"");inst._setPendingPropertyOrPath(itemPath,value,false,true);inst._flushProperties()}return true}}itemForElement(el){let instance=this.modelForElement(el);return instance&&instance[this.as]}indexForElement(el){let instance=this.modelForElement(el);return instance&&instance[this.indexAs]}modelForElement(el){return Polymer.Templatize.modelForElement(this.template,el)}}customElements.define(DomRepeat.is,DomRepeat);Polymer.DomRepeat=DomRepeat})();(function(){"use strict";class DomIf extends Polymer.Element{static get is(){return"dom-if"}static get template(){return null}static get properties(){return{if:{type:Boolean,observer:"__debounceRender"},restamp:{type:Boolean,observer:"__debounceRender"}}}constructor(){super();this.__renderDebouncer=null;this.__invalidProps=null;this.__instance=null;this._lastIf=false;this.__ctor=null}__debounceRender(){this.__renderDebouncer=Polymer.Debouncer.debounce(this.__renderDebouncer,Polymer.Async.microTask,()=>this.__render());Polymer.enqueueDebouncer(this.__renderDebouncer)}disconnectedCallback(){super.disconnectedCallback();if(!this.parentNode||this.parentNode.nodeType==Node.DOCUMENT_FRAGMENT_NODE&&!this.parentNode.host){this.__teardownInstance()}}connectedCallback(){super.connectedCallback();this.style.display="none";if(this.if){this.__debounceRender()}}render(){Polymer.flush()}__render(){if(this.if){if(!this.__ensureInstance()){return}this._showHideChildren()}else if(this.restamp){this.__teardownInstance()}if(!this.restamp&&this.__instance){this._showHideChildren()}if(this.if!=this._lastIf){this.dispatchEvent(new CustomEvent("dom-change",{bubbles:true,composed:true}));this._lastIf=this.if}}__ensureInstance(){let parentNode=this.parentNode;if(parentNode){if(!this.__ctor){let template=this.querySelector("template");if(!template){let observer=new MutationObserver(()=>{if(this.querySelector("template")){observer.disconnect();this.__render()}else{throw new Error("dom-if requires a <template> child")}});observer.observe(this,{childList:true});return false}this.__ctor=Polymer.Templatize.templatize(template,this,{mutableData:true,forwardHostProp:function(prop,value){if(this.__instance){if(this.if){this.__instance.forwardHostProp(prop,value)}else{this.__invalidProps=this.__invalidProps||Object.create(null);this.__invalidProps[Polymer.Path.root(prop)]=true}}}})}if(!this.__instance){this.__instance=new this.__ctor;parentNode.insertBefore(this.__instance.root,this)}else{this.__syncHostProperties();let c$=this.__instance.children;if(c$&&c$.length){let lastChild=this.previousSibling;if(lastChild!==c$[c$.length-1]){for(let i=0,n;i<c$.length&&(n=c$[i]);i++){parentNode.insertBefore(n,this)}}}}}return true}__syncHostProperties(){let props=this.__invalidProps;if(props){for(let prop in props){this.__instance._setPendingProperty(prop,this.__dataHost[prop])}this.__invalidProps=null;this.__instance._flushProperties()}}__teardownInstance(){if(this.__instance){let c$=this.__instance.children;if(c$&&c$.length){let parent=c$[0].parentNode;for(let i=0,n;i<c$.length&&(n=c$[i]);i++){parent.removeChild(n)}}this.__instance=null;this.__invalidProps=null}}_showHideChildren(){let hidden=this.__hideTemplateChildren__||!this.if;if(this.__instance){this.__instance._showHideChildren(hidden)}}}customElements.define(DomIf.is,DomIf);Polymer.DomIf=DomIf})();(function(){"use strict";let ArraySelectorMixin=Polymer.dedupingMixin(superClass=>{let elementBase=Polymer.ElementMixin(superClass);class ArraySelectorMixin extends elementBase{static get properties(){return{items:{type:Array},multi:{type:Boolean,value:false},selected:{type:Object,notify:true},selectedItem:{type:Object,notify:true},toggle:{type:Boolean,value:false}}}static get observers(){return["__updateSelection(multi, items.*)"]}constructor(){super();this.__lastItems=null;this.__lastMulti=null;this.__selectedMap=null}__updateSelection(multi,itemsInfo){let path=itemsInfo.path;if(path=="items"){let newItems=itemsInfo.base||[];let lastItems=this.__lastItems;let lastMulti=this.__lastMulti;if(multi!==lastMulti){this.clearSelection()}if(lastItems){let splices=Polymer.ArraySplice.calculateSplices(newItems,lastItems);this.__applySplices(splices)}this.__lastItems=newItems;this.__lastMulti=multi}else if(itemsInfo.path=="items.splices"){this.__applySplices(itemsInfo.value.indexSplices)}else{let part=path.slice("items.".length);let idx=parseInt(part,10);if(part.indexOf(".")<0&&part==idx){this.__deselectChangedIdx(idx)}}}__applySplices(splices){let selected=this.__selectedMap;for(let i=0;i<splices.length;i++){let s=splices[i];selected.forEach((idx,item)=>{if(idx<s.index){}else if(idx>=s.index+s.removed.length){selected.set(item,idx+s.addedCount-s.removed.length)}else{selected.set(item,-1)}});for(let j=0;j<s.addedCount;j++){let idx=s.index+j;if(selected.has(this.items[idx])){selected.set(this.items[idx],idx)}}}this.__updateLinks();let sidx=0;selected.forEach((idx,item)=>{if(idx<0){if(this.multi){this.splice("selected",sidx,1)}else{this.selected=this.selectedItem=null}selected.delete(item)}else{sidx++}})}__updateLinks(){this.__dataLinkedPaths={};if(this.multi){let sidx=0;this.__selectedMap.forEach(idx=>{if(idx>=0){this.linkPaths("items."+idx,"selected."+sidx++)}})}else{this.__selectedMap.forEach(idx=>{this.linkPaths("selected","items."+idx);this.linkPaths("selectedItem","items."+idx)})}}clearSelection(){this.__dataLinkedPaths={};this.__selectedMap=new Map;this.selected=this.multi?[]:null;this.selectedItem=null}isSelected(item){return this.__selectedMap.has(item)}isIndexSelected(idx){return this.isSelected(this.items[idx])}__deselectChangedIdx(idx){let sidx=this.__selectedIndexForItemIndex(idx);if(sidx>=0){let i=0;this.__selectedMap.forEach((idx,item)=>{if(sidx==i++){this.deselect(item)}})}}__selectedIndexForItemIndex(idx){let selected=this.__dataLinkedPaths["items."+idx];if(selected){return parseInt(selected.slice("selected.".length),10)}}deselect(item){let idx=this.__selectedMap.get(item);if(idx>=0){this.__selectedMap.delete(item);let sidx;if(this.multi){sidx=this.__selectedIndexForItemIndex(idx)}this.__updateLinks();if(this.multi){this.splice("selected",sidx,1)}else{this.selected=this.selectedItem=null}}}deselectIndex(idx){this.deselect(this.items[idx])}select(item){this.selectIndex(this.items.indexOf(item))}selectIndex(idx){let item=this.items[idx];if(!this.isSelected(item)){if(!this.multi){this.__selectedMap.clear()}this.__selectedMap.set(item,idx);this.__updateLinks();if(this.multi){this.push("selected",item)}else{this.selected=this.selectedItem=item}}else if(this.toggle){this.deselectIndex(idx)}}}return ArraySelectorMixin});Polymer.ArraySelectorMixin=ArraySelectorMixin;let baseArraySelector=ArraySelectorMixin(Polymer.Element);class ArraySelector extends baseArraySelector{static get is(){return"array-selector"}}customElements.define(ArraySelector.is,ArraySelector);Polymer.ArraySelector=ArraySelector})();(function(){/*
+"use strict";var l=!(window.ShadyDOM&&window.ShadyDOM.inUse),p;function r(a){p=a&&a.shimcssproperties?!1:l||!(navigator.userAgent.match(/AppleWebKit\/601|Edge\/15/)||!window.CSS||!CSS.supports||!CSS.supports("box-shadow","0 0 0 var(--foo)"))}var t;window.ShadyCSS&&void 0!==window.ShadyCSS.cssBuild&&(t=window.ShadyCSS.cssBuild);window.ShadyCSS&&void 0!==window.ShadyCSS.nativeCss?p=window.ShadyCSS.nativeCss:window.ShadyCSS?(r(window.ShadyCSS),window.ShadyCSS=void 0):r(window.WebComponents&&window.WebComponents.flags);var u=p,v=t;function w(){this.end=this.start=0;this.rules=this.parent=this.previous=null;this.cssText=this.parsedCssText="";this.atRule=!1;this.type=0;this.parsedSelector=this.selector=this.keyframesName=""}function x(a){a=a.replace(aa,"").replace(ba,"");var b=y,c=a,e=new w;e.start=0;e.end=c.length;for(var d=e,f=0,g=c.length;f<g;f++)if("{"===c[f]){d.rules||(d.rules=[]);var h=d,k=h.rules[h.rules.length-1]||null;d=new w;d.start=f+1;d.parent=h;d.previous=k;h.rules.push(d)}else"}"===c[f]&&(d.end=f+1,d=d.parent||e);return b(e,a)}function y(a,b){var c=b.substring(a.start,a.end-1);a.parsedCssText=a.cssText=c.trim();a.parent&&(c=b.substring(a.previous?a.previous.end:a.parent.start,a.start-1),c=ca(c),c=c.replace(z," "),c=c.substring(c.lastIndexOf(";")+1),c=a.parsedSelector=a.selector=c.trim(),a.atRule=0===c.indexOf("@"),a.atRule?0===c.indexOf("@media")?a.type=A:c.match(da)&&(a.type=B,a.keyframesName=a.selector.split(z).pop()):a.type=0===c.indexOf("--")?C:D);if(c=a.rules)for(var e=0,d=c.length,f=void 0;e<d&&(f=c[e]);e++)y(f,b);return a}function ca(a){return a.replace(/\\([0-9a-f]{1,6})\s/gi,function(a,c){a=c;for(c=6-a.length;c--;)a="0"+a;return"\\"+a})}function E(a,b,c){c=void 0===c?"":c;var e="";if(a.cssText||a.rules){var d=a.rules,f;if(f=d)f=d[0],f=!(f&&f.selector&&0===f.selector.indexOf("--"));if(f){f=0;for(var g=d.length,h=void 0;f<g&&(h=d[f]);f++)e=E(h,b,e)}else b?b=a.cssText:(b=a.cssText,b=b.replace(ea,"").replace(fa,""),b=b.replace(ha,"").replace(ia,"")),(e=b.trim())&&(e=" "+e+"\n")}e&&(a.selector&&(c+=a.selector+" {\n"),c+=e,a.selector&&(c+="}\n\n"));return c}var D=1,B=7,A=4,C=1e3,aa=/\/\*[^*]*\*+([^/*][^*]*\*+)*\//gim,ba=/@import[^;]*;/gim,ea=/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?(?:[;\n]|$)/gim,fa=/(?:^[^;\-\s}]+)?--[^;{}]*?:[^{};]*?{[^}]*?}(?:[;\n]|$)?/gim,ha=/@apply\s*\(?[^);]*\)?\s*(?:[;\n]|$)?/gim,ia=/[^;:]*?:[^;]*?var\([^;]*\)(?:[;\n]|$)?/gim,da=/^@[^\s]*keyframes/,z=/\s+/g;var G=/(?:^|[;\s{]\s*)(--[\w-]*?)\s*:\s*(?:((?:'(?:\\'|.)*?'|"(?:\\"|.)*?"|\([^)]*?\)|[^};{])+)|\{([^}]*)\}(?:(?=[;\s}])|$))/gi,H=/(?:^|\W+)@apply\s*\(?([^);\n]*)\)?/gi,ja=/@media\s(.*)/;var I=new Set;function J(a){if(!a)return"";"string"===typeof a&&(a=x(a));return E(a,u)}function K(a){!a.__cssRules&&a.textContent&&(a.__cssRules=x(a.textContent));return a.__cssRules||null}function L(a,b,c,e){if(a){var d=!1,f=a.type;if(e&&f===A){var g=a.selector.match(ja);g&&(window.matchMedia(g[1]).matches||(d=!0))}f===D?b(a):c&&f===B?c(a):f===C&&(d=!0);if((a=a.rules)&&!d)for(d=0,f=a.length,g=void 0;d<f&&(g=a[d]);d++)L(g,b,c,e)}}function M(a,b){var c=a.indexOf("var(");if(-1===c)return b(a,"","","");a:{var e=0;var d=c+3;for(var f=a.length;d<f;d++)if("("===a[d])e++;else if(")"===a[d]&&0===--e)break a;d=-1}e=a.substring(c+4,d);c=a.substring(0,c);a=M(a.substring(d+1),b);d=e.indexOf(",");return-1===d?b(c,e.trim(),"",a):b(c,e.substring(0,d).trim(),e.substring(d+1).trim(),a)}function N(a){if(void 0!==v)return v;if(void 0===a.__cssBuild){var b=a.getAttribute("css-build");if(b)a.__cssBuild=b;else{a:{b="template"===a.localName?a.content.firstChild:a.firstChild;if(b instanceof Comment&&(b=b.textContent.trim().split(":"),"css-build"===b[0])){b=b[1];break a}b=""}if(""!==b){var c="template"===a.localName?a.content.firstChild:a.firstChild;c.parentNode.removeChild(c)}a.__cssBuild=b}}return a.__cssBuild||""}var ka=/;\s*/m,la=/^\s*(initial)|(inherit)\s*$/,O=/\s*!important/;function P(){this.a={}}P.prototype.set=function(a,b){a=a.trim();this.a[a]={h:b,i:{}}};P.prototype.get=function(a){a=a.trim();return this.a[a]||null};var Q=null;function R(){this.b=this.c=null;this.a=new P}R.prototype.o=function(a){a=H.test(a)||G.test(a);H.lastIndex=0;G.lastIndex=0;return a};R.prototype.m=function(a,b){if(void 0===a._gatheredStyle){var c=[];for(var e=a.content.querySelectorAll("style"),d=0;d<e.length;d++){var f=e[d];if(f.hasAttribute("shady-unscoped")){if(!l){var g=f.textContent;I.has(g)||(I.add(g),g=f.cloneNode(!0),document.head.appendChild(g));f.parentNode.removeChild(f)}}else c.push(f.textContent),f.parentNode.removeChild(f)}(c=c.join("").trim())?(e=document.createElement("style"),e.textContent=c,a.content.insertBefore(e,a.content.firstChild),c=e):c=null;a._gatheredStyle=c}return(a=a._gatheredStyle)?this.j(a,b):null};R.prototype.j=function(a,b){b=void 0===b?"":b;var c=K(a);this.l(c,b);a.textContent=J(c);return c};R.prototype.f=function(a){var b=this,c=K(a);L(c,function(a){":root"===a.selector&&(a.selector="html");b.g(a)});a.textContent=J(c);return c};R.prototype.l=function(a,b){var c=this;this.c=b;L(a,function(a){c.g(a)});this.c=null};R.prototype.g=function(a){a.cssText=ma(this,a.parsedCssText,a);":root"===a.selector&&(a.selector=":host > *")};function ma(a,b,c){b=b.replace(G,function(b,d,f,g){return na(a,b,d,f,g,c)});return S(a,b,c)}function oa(a,b){for(var c=b;c.parent;)c=c.parent;var e={},d=!1;L(c,function(c){(d=d||c===b)||c.selector===b.selector&&Object.assign(e,T(a,c.parsedCssText))});return e}function S(a,b,c){for(var e;e=H.exec(b);){var d=e[0],f=e[1];e=e.index;var g=b.slice(0,e+d.indexOf("@apply"));b=b.slice(e+d.length);var h=c?oa(a,c):{};Object.assign(h,T(a,g));d=void 0;var k=a;f=f.replace(ka,"");var n=[];var m=k.a.get(f);m||(k.a.set(f,{}),m=k.a.get(f));if(m){k.c&&(m.i[k.c]=!0);var q=m.h;for(d in q)k=h&&h[d],m=[d,": var(",f,"_-_",d],k&&m.push(",",k.replace(O,"")),m.push(")"),O.test(q[d])&&m.push(" !important"),n.push(m.join(""))}d=n.join("; ");b=g+d+b;H.lastIndex=e+d.length}return b}function T(a,b,c){c=void 0===c?!1:c;b=b.split(";");for(var e,d,f={},g=0,h;g<b.length;g++)if(e=b[g])if(h=e.split(":"),1<h.length){e=h[0].trim();d=h.slice(1).join(":");if(c){var k=a;h=e;var n=la.exec(d);n&&(n[1]?(k.b||(k.b=document.createElement("meta"),k.b.setAttribute("apply-shim-measure",""),k.b.style.all="initial",document.head.appendChild(k.b)),h=window.getComputedStyle(k.b).getPropertyValue(h)):h="apply-shim-inherit",d=h)}f[e]=d}return f}function pa(a,b){if(Q)for(var c in b.i)c!==a.c&&Q(c)}function na(a,b,c,e,d,f){e&&M(e,function(b,c){c&&a.a.get(c)&&(d="@apply "+c+";")});if(!d)return b;var g=S(a,""+d,f);f=b.slice(0,b.indexOf("--"));var h=g=T(a,g,!0),k=a.a.get(c),n=k&&k.h;n?h=Object.assign(Object.create(n),g):a.a.set(c,h);var m=[],q,Z=!1;for(q in h){var F=g[q];void 0===F&&(F="initial");!n||q in n||(Z=!0);m.push(c+"_-_"+q+": "+F)}Z&&pa(a,k);k&&(k.h=h);e&&(f=b+";"+f);return f+m.join("; ")+";"}R.prototype.detectMixin=R.prototype.o;R.prototype.transformStyle=R.prototype.j;R.prototype.transformCustomStyle=R.prototype.f;R.prototype.transformRules=R.prototype.l;R.prototype.transformRule=R.prototype.g;R.prototype.transformTemplate=R.prototype.m;R.prototype._separator="_-_";Object.defineProperty(R.prototype,"invalidCallback",{get:function(){return Q},set:function(a){Q=a}});var U={};var qa=Promise.resolve();function ra(a){if(a=U[a])a._applyShimCurrentVersion=a._applyShimCurrentVersion||0,a._applyShimValidatingVersion=a._applyShimValidatingVersion||0,a._applyShimNextVersion=(a._applyShimNextVersion||0)+1}function sa(a){return a._applyShimCurrentVersion===a._applyShimNextVersion}function ta(a){a._applyShimValidatingVersion=a._applyShimNextVersion;a._validating||(a._validating=!0,qa.then(function(){a._applyShimCurrentVersion=a._applyShimNextVersion;a._validating=!1}))}var V=new R;function W(){this.a=null;V.invalidCallback=ra}function X(a){!a.a&&window.ShadyCSS.CustomStyleInterface&&(a.a=window.ShadyCSS.CustomStyleInterface,a.a.transformCallback=function(a){V.f(a)},a.a.validateCallback=function(){requestAnimationFrame(function(){a.a.enqueued&&a.flushCustomStyles()})})}W.prototype.prepareTemplate=function(a,b){X(this);""===N(a)&&(U[b]=a,b=V.m(a,b),a._styleAst=b)};W.prototype.flushCustomStyles=function(){X(this);if(this.a){var a=this.a.processStyles();if(this.a.enqueued){for(var b=0;b<a.length;b++){var c=this.a.getStyleForCustomStyle(a[b]);c&&V.f(c)}this.a.enqueued=!1}}};W.prototype.styleSubtree=function(a,b){X(this);if(b)for(var c in b)null===c?a.style.removeProperty(c):a.style.setProperty(c,b[c]);if(a.shadowRoot)for(this.styleElement(a),a=a.shadowRoot.children||a.shadowRoot.childNodes,b=0;b<a.length;b++)this.styleSubtree(a[b]);else for(a=a.children||a.childNodes,b=0;b<a.length;b++)this.styleSubtree(a[b])};W.prototype.styleElement=function(a){X(this);var b=a.localName,c;b?-1<b.indexOf("-")?c=b:c=a.getAttribute&&a.getAttribute("is")||"":c=a.is;b=U[c];if(!(b&&""!==N(b)||!b||sa(b))){if(sa(b)||b._applyShimValidatingVersion!==b._applyShimNextVersion)this.prepareTemplate(b,c),ta(b);if(a=a.shadowRoot)if(a=a.querySelector("style"))a.__cssRules=b._styleAst,a.textContent=J(b._styleAst)}};W.prototype.styleDocument=function(a){X(this);this.styleSubtree(document.body,a)};if(!window.ShadyCSS||!window.ShadyCSS.ScopingShim){var Y=new W,ua=window.ShadyCSS&&window.ShadyCSS.CustomStyleInterface;window.ShadyCSS={prepareTemplate:function(a,b){Y.flushCustomStyles();Y.prepareTemplate(a,b)},prepareTemplateStyles:function(a,b,c){window.ShadyCSS.prepareTemplate(a,b,c)},prepareTemplateDom:function(){},styleSubtree:function(a,b){Y.flushCustomStyles();Y.styleSubtree(a,b)},styleElement:function(a){Y.flushCustomStyles();Y.styleElement(a)},styleDocument:function(a){Y.flushCustomStyles();Y.styleDocument(a)},getComputedStyleValue:function(a,b){return(a=window.getComputedStyle(a).getPropertyValue(b))?a.trim():""},flushCustomStyles:function(){Y.flushCustomStyles()},nativeCss:u,nativeShadow:l,cssBuild:v};ua&&(window.ShadyCSS.CustomStyleInterface=ua)}window.ShadyCSS.ApplyShim=V}).call(this);(function(){"use strict";const userPolymer=window.Polymer;window.Polymer=function(info){return window.Polymer._polymerFn(info)};if(userPolymer){Object.assign(Polymer,userPolymer)}window.Polymer._polymerFn=function(info){throw new Error("Load polymer.html to use the Polymer() function.")};window.Polymer.version="2.7.0";window.JSCompiler_renameProperty=function(prop,obj){return prop}})();(function(){"use strict";let CSS_URL_RX=/(url\()([^)]*)(\))/g;let ABS_URL=/(^\/)|(^#)|(^[\w-\d]*:)/;let workingURL;let resolveDoc;function resolveUrl(url,baseURI){if(url&&ABS_URL.test(url)){return url}if(workingURL===undefined){workingURL=false;try{const u=new URL("b","http://a");u.pathname="c%20d";workingURL=u.href==="http://a/c%20d"}catch(e){}}if(!baseURI){baseURI=document.baseURI||window.location.href}if(workingURL){return new URL(url,baseURI).href}if(!resolveDoc){resolveDoc=document.implementation.createHTMLDocument("temp");resolveDoc.base=resolveDoc.createElement("base");resolveDoc.head.appendChild(resolveDoc.base);resolveDoc.anchor=resolveDoc.createElement("a");resolveDoc.body.appendChild(resolveDoc.anchor)}resolveDoc.base.href=baseURI;resolveDoc.anchor.href=url;return resolveDoc.anchor.href||url}function resolveCss(cssText,baseURI){return cssText.replace(CSS_URL_RX,function(m,pre,url,post){return pre+"'"+resolveUrl(url.replace(/["']/g,""),baseURI)+"'"+post})}function pathFromUrl(url){return url.substring(0,url.lastIndexOf("/")+1)}Polymer.ResolveUrl={resolveCss:resolveCss,resolveUrl:resolveUrl,pathFromUrl:pathFromUrl}})();(function(){"use strict";Polymer.Settings=Polymer.Settings||{};Polymer.Settings.useShadow=!window.ShadyDOM;Polymer.Settings.useNativeCSSProperties=Boolean(!window.ShadyCSS||window.ShadyCSS.nativeCss);Polymer.Settings.useNativeCustomElements=!window.customElements.polyfillWrapFlushCallback;Polymer.rootPath=Polymer.rootPath||Polymer.ResolveUrl.pathFromUrl(document.baseURI||window.location.href);Polymer.setRootPath=function(path){Polymer.rootPath=path};Polymer.sanitizeDOMValue=Polymer.sanitizeDOMValue||null;Polymer.setSanitizeDOMValue=function(newSanitizeDOMValue){Polymer.sanitizeDOMValue=newSanitizeDOMValue};Polymer.passiveTouchGestures=Polymer.passiveTouchGestures||false;Polymer.setPassiveTouchGestures=function(usePassive){Polymer.passiveTouchGestures=usePassive};Polymer.legacyOptimizations=Polymer.legacyOptimizations||window.PolymerSettings&&window.PolymerSettings.legacyOptimizations||false;Polymer.setLegacyOptimizations=function(useLegacyOptimizations){Polymer.legacyOptimizations=useLegacyOptimizations}})();(function(){"use strict";let dedupeId=0;function MixinFunction(){}MixinFunction.prototype.__mixinApplications;MixinFunction.prototype.__mixinSet;Polymer.dedupingMixin=function(mixin){let mixinApplications=mixin.__mixinApplications;if(!mixinApplications){mixinApplications=new WeakMap;mixin.__mixinApplications=mixinApplications}let mixinDedupeId=dedupeId++;function dedupingMixin(base){let baseSet=base.__mixinSet;if(baseSet&&baseSet[mixinDedupeId]){return base}let map=mixinApplications;let extended=map.get(base);if(!extended){extended=mixin(base);map.set(base,extended)}let mixinSet=Object.create(extended.__mixinSet||baseSet||null);mixinSet[mixinDedupeId]=true;extended.__mixinSet=mixinSet;return extended}return dedupingMixin}})();(function(){"use strict";const MODULE_STYLE_LINK_SELECTOR="link[rel=import][type~=css]";const INCLUDE_ATTR="include";const SHADY_UNSCOPED_ATTR="shady-unscoped";function importModule(moduleId){const PolymerDomModule=customElements.get("dom-module");if(!PolymerDomModule){return null}return PolymerDomModule.import(moduleId)}function styleForImport(importDoc){let container=importDoc.body?importDoc.body:importDoc;const importCss=Polymer.ResolveUrl.resolveCss(container.textContent,importDoc.baseURI);const style=document.createElement("style");style.textContent=importCss;return style}let templateWithAssetPath;const StyleGather={stylesFromModules(moduleIds){const modules=moduleIds.trim().split(/\s+/);const styles=[];for(let i=0;i<modules.length;i++){styles.push(...this.stylesFromModule(modules[i]))}return styles},stylesFromModule(moduleId){const m=importModule(moduleId);if(!m){console.warn("Could not find style data in module named",moduleId);return[]}if(m._styles===undefined){const styles=[];styles.push(...this._stylesFromModuleImports(m));const template=m.querySelector("template");if(template){styles.push(...this.stylesFromTemplate(template,m.assetpath))}m._styles=styles}return m._styles},stylesFromTemplate(template,baseURI){if(!template._styles){const styles=[];const e$=template.content.querySelectorAll("style");for(let i=0;i<e$.length;i++){let e=e$[i];let include=e.getAttribute(INCLUDE_ATTR);if(include){styles.push(...this.stylesFromModules(include).filter(function(item,index,self){return self.indexOf(item)===index}))}if(baseURI){e.textContent=Polymer.ResolveUrl.resolveCss(e.textContent,baseURI)}styles.push(e)}template._styles=styles}return template._styles},stylesFromModuleImports(moduleId){let m=importModule(moduleId);return m?this._stylesFromModuleImports(m):[]},_stylesFromModuleImports(module){const styles=[];const p$=module.querySelectorAll(MODULE_STYLE_LINK_SELECTOR);for(let i=0;i<p$.length;i++){let p=p$[i];if(p.import){const importDoc=p.import;const unscoped=p.hasAttribute(SHADY_UNSCOPED_ATTR);if(unscoped&&!importDoc._unscopedStyle){const style=styleForImport(importDoc);style.setAttribute(SHADY_UNSCOPED_ATTR,"");importDoc._unscopedStyle=style}else if(!importDoc._style){importDoc._style=styleForImport(importDoc)}styles.push(unscoped?importDoc._unscopedStyle:importDoc._style)}}return styles},cssFromModules(moduleIds){let modules=moduleIds.trim().split(/\s+/);let cssText="";for(let i=0;i<modules.length;i++){cssText+=this.cssFromModule(modules[i])}return cssText},cssFromModule(moduleId){let m=importModule(moduleId);if(m&&m._cssText===undefined){let cssText=this._cssFromModuleImports(m);let t=m.querySelector("template");if(t){cssText+=this.cssFromTemplate(t,m.assetpath)}m._cssText=cssText||null}if(!m){console.warn("Could not find style data in module named",moduleId)}return m&&m._cssText||""},cssFromTemplate(template,baseURI){let cssText="";const e$=this.stylesFromTemplate(template,baseURI);for(let i=0;i<e$.length;i++){let e=e$[i];if(e.parentNode){e.parentNode.removeChild(e)}cssText+=e.textContent}return cssText},cssFromModuleImports(moduleId){let m=importModule(moduleId);return m?this._cssFromModuleImports(m):""},_cssFromModuleImports(module){let cssText="";let styles=this._stylesFromModuleImports(module);for(let i=0;i<styles.length;i++){cssText+=styles[i].textContent}return cssText}};Polymer.StyleGather=StyleGather})();(function(){"use strict";let modules={};let lcModules={};function setModule(id,module){modules[id]=lcModules[id.toLowerCase()]=module}function findModule(id){return modules[id]||lcModules[id.toLowerCase()]}function styleOutsideTemplateCheck(inst){if(inst.querySelector("style")){console.warn("dom-module %s has style outside template",inst.id)}}class DomModule extends HTMLElement{static get observedAttributes(){return["id"]}static import(id,selector){if(id){let m=findModule(id);if(m&&selector){return m.querySelector(selector)}return m}return null}attributeChangedCallback(name,old,value,namespace){if(old!==value){this.register()}}get assetpath(){if(!this.__assetpath){const owner=window.HTMLImports&&HTMLImports.importForElement?HTMLImports.importForElement(this)||document:this.ownerDocument;const url=Polymer.ResolveUrl.resolveUrl(this.getAttribute("assetpath")||"",owner.baseURI);this.__assetpath=Polymer.ResolveUrl.pathFromUrl(url)}return this.__assetpath}register(id){id=id||this.id;if(id){if(Polymer.strictTemplatePolicy&&findModule(id)!==undefined){setModule(id,null);throw new Error(`strictTemplatePolicy: dom-module ${id} re-registered`)}this.id=id;setModule(id,this);styleOutsideTemplateCheck(this)}}}DomModule.prototype["modules"]=modules;customElements.define("dom-module",DomModule);Polymer.DomModule=DomModule})();(function(){"use strict";const Path={isPath:function(path){return path.indexOf(".")>=0},root:function(path){let dotIndex=path.indexOf(".");if(dotIndex===-1){return path}return path.slice(0,dotIndex)},isAncestor:function(base,path){return base.indexOf(path+".")===0},isDescendant:function(base,path){return path.indexOf(base+".")===0},translate:function(base,newBase,path){return newBase+path.slice(base.length)},matches:function(base,path){return base===path||this.isAncestor(base,path)||this.isDescendant(base,path)},normalize:function(path){if(Array.isArray(path)){let parts=[];for(let i=0;i<path.length;i++){let args=path[i].toString().split(".");for(let j=0;j<args.length;j++){parts.push(args[j])}}return parts.join(".")}else{return path}},split:function(path){if(Array.isArray(path)){return this.normalize(path).split(".")}return path.toString().split(".")},get:function(root,path,info){let prop=root;let parts=this.split(path);for(let i=0;i<parts.length;i++){if(!prop){return}let part=parts[i];prop=prop[part]}if(info){info.path=parts.join(".")}return prop},set:function(root,path,value){let prop=root;let parts=this.split(path);let last=parts[parts.length-1];if(parts.length>1){for(let i=0;i<parts.length-1;i++){let part=parts[i];prop=prop[part];if(!prop){return}}prop[last]=value}else{prop[path]=value}return parts.join(".")}};Path.isDeep=Path.isPath;Polymer.Path=Path})();(function(){"use strict";const caseMap={};const DASH_TO_CAMEL=/-[a-z]/g;const CAMEL_TO_DASH=/([A-Z])/g;const CaseMap={dashToCamelCase(dash){return caseMap[dash]||(caseMap[dash]=dash.indexOf("-")<0?dash:dash.replace(DASH_TO_CAMEL,m=>m[1].toUpperCase()))},camelToDashCase(camel){return caseMap[camel]||(caseMap[camel]=camel.replace(CAMEL_TO_DASH,"-$1").toLowerCase())}};Polymer.CaseMap=CaseMap})();(function(){"use strict";let microtaskCurrHandle=0;let microtaskLastHandle=0;let microtaskCallbacks=[];let microtaskNodeContent=0;let microtaskNode=document.createTextNode("");new window.MutationObserver(microtaskFlush).observe(microtaskNode,{characterData:true});function microtaskFlush(){const len=microtaskCallbacks.length;for(let i=0;i<len;i++){let cb=microtaskCallbacks[i];if(cb){try{cb()}catch(e){setTimeout(()=>{throw e})}}}microtaskCallbacks.splice(0,len);microtaskLastHandle+=len}Polymer.Async={timeOut:{after(delay){return{run(fn){return window.setTimeout(fn,delay)},cancel(handle){window.clearTimeout(handle)}}},run(fn,delay){return window.setTimeout(fn,delay)},cancel(handle){window.clearTimeout(handle)}},animationFrame:{run(fn){return window.requestAnimationFrame(fn)},cancel(handle){window.cancelAnimationFrame(handle)}},idlePeriod:{run(fn){return window.requestIdleCallback?window.requestIdleCallback(fn):window.setTimeout(fn,16)},cancel(handle){window.cancelIdleCallback?window.cancelIdleCallback(handle):window.clearTimeout(handle)}},microTask:{run(callback){microtaskNode.textContent=microtaskNodeContent++;microtaskCallbacks.push(callback);return microtaskCurrHandle++},cancel(handle){const idx=handle-microtaskLastHandle;if(idx>=0){if(!microtaskCallbacks[idx]){throw new Error("invalid async handle: "+handle)}microtaskCallbacks[idx]=null}}}}})();(function(){"use strict";const microtask=Polymer.Async.microTask;Polymer.PropertiesChanged=Polymer.dedupingMixin(superClass=>{class PropertiesChanged extends superClass{static createProperties(props){const proto=this.prototype;for(let prop in props){if(!(prop in proto)){proto._createPropertyAccessor(prop)}}}static attributeNameForProperty(property){return property.toLowerCase()}static typeForProperty(name){}_createPropertyAccessor(property,readOnly){this._addPropertyToAttributeMap(property);if(!this.hasOwnProperty("__dataHasAccessor")){this.__dataHasAccessor=Object.assign({},this.__dataHasAccessor)}if(!this.__dataHasAccessor[property]){this.__dataHasAccessor[property]=true;this._definePropertyAccessor(property,readOnly)}}_addPropertyToAttributeMap(property){if(!this.hasOwnProperty("__dataAttributes")){this.__dataAttributes=Object.assign({},this.__dataAttributes)}if(!this.__dataAttributes[property]){const attr=this.constructor.attributeNameForProperty(property);this.__dataAttributes[attr]=property}}_definePropertyAccessor(property,readOnly){Object.defineProperty(this,property,{get(){return this._getProperty(property)},set:readOnly?function(){}:function(value){this._setProperty(property,value)}})}constructor(){super();this.__dataEnabled=false;this.__dataReady=false;this.__dataInvalid=false;this.__data={};this.__dataPending=null;this.__dataOld=null;this.__dataInstanceProps=null;this.__serializing=false;this._initializeProperties()}ready(){this.__dataReady=true;this._flushProperties()}_initializeProperties(){for(let p in this.__dataHasAccessor){if(this.hasOwnProperty(p)){this.__dataInstanceProps=this.__dataInstanceProps||{};this.__dataInstanceProps[p]=this[p];delete this[p]}}}_initializeInstanceProperties(props){Object.assign(this,props)}_setProperty(property,value){if(this._setPendingProperty(property,value)){this._invalidateProperties()}}_getProperty(property){return this.__data[property]}_setPendingProperty(property,value,ext){let old=this.__data[property];let changed=this._shouldPropertyChange(property,value,old);if(changed){if(!this.__dataPending){this.__dataPending={};this.__dataOld={}}if(this.__dataOld&&!(property in this.__dataOld)){this.__dataOld[property]=old}this.__data[property]=value;this.__dataPending[property]=value}return changed}_invalidateProperties(){if(!this.__dataInvalid&&this.__dataReady){this.__dataInvalid=true;microtask.run(()=>{if(this.__dataInvalid){this.__dataInvalid=false;this._flushProperties()}})}}_enableProperties(){if(!this.__dataEnabled){this.__dataEnabled=true;if(this.__dataInstanceProps){this._initializeInstanceProperties(this.__dataInstanceProps);this.__dataInstanceProps=null}this.ready()}}_flushProperties(){const props=this.__data;const changedProps=this.__dataPending;const old=this.__dataOld;if(this._shouldPropertiesChange(props,changedProps,old)){this.__dataPending=null;this.__dataOld=null;this._propertiesChanged(props,changedProps,old)}}_shouldPropertiesChange(currentProps,changedProps,oldProps){return Boolean(changedProps)}_propertiesChanged(currentProps,changedProps,oldProps){}_shouldPropertyChange(property,value,old){return old!==value&&(old===old||value===value)}attributeChangedCallback(name,old,value,namespace){if(old!==value){this._attributeToProperty(name,value)}if(super.attributeChangedCallback){super.attributeChangedCallback(name,old,value,namespace)}}_attributeToProperty(attribute,value,type){if(!this.__serializing){const map=this.__dataAttributes;const property=map&&map[attribute]||attribute;this[property]=this._deserializeValue(value,type||this.constructor.typeForProperty(property))}}_propertyToAttribute(property,attribute,value){this.__serializing=true;value=arguments.length<3?this[property]:value;this._valueToNodeAttribute(this,value,attribute||this.constructor.attributeNameForProperty(property));this.__serializing=false}_valueToNodeAttribute(node,value,attribute){const str=this._serializeValue(value);if(str===undefined){node.removeAttribute(attribute)}else{node.setAttribute(attribute,str)}}_serializeValue(value){switch(typeof value){case"boolean":return value?"":undefined;default:return value!=null?value.toString():undefined}}_deserializeValue(value,type){switch(type){case Boolean:return value!==null;case Number:return Number(value);default:return value}}}return PropertiesChanged})})();(function(){"use strict";let caseMap=Polymer.CaseMap;const nativeProperties={};let proto=HTMLElement.prototype;while(proto){let props=Object.getOwnPropertyNames(proto);for(let i=0;i<props.length;i++){nativeProperties[props[i]]=true}proto=Object.getPrototypeOf(proto)}function saveAccessorValue(model,property){if(!nativeProperties[property]){let value=model[property];if(value!==undefined){if(model.__data){model._setPendingProperty(property,value)}else{if(!model.__dataProto){model.__dataProto={}}else if(!model.hasOwnProperty(JSCompiler_renameProperty("__dataProto",model))){model.__dataProto=Object.create(model.__dataProto)}model.__dataProto[property]=value}}}}Polymer.PropertyAccessors=Polymer.dedupingMixin(superClass=>{const base=Polymer.PropertiesChanged(superClass);class PropertyAccessors extends base{static createPropertiesForAttributes(){let a$=this.observedAttributes;for(let i=0;i<a$.length;i++){this.prototype._createPropertyAccessor(caseMap.dashToCamelCase(a$[i]))}}static attributeNameForProperty(property){return caseMap.camelToDashCase(property)}_initializeProperties(){if(this.__dataProto){this._initializeProtoProperties(this.__dataProto);this.__dataProto=null}super._initializeProperties()}_initializeProtoProperties(props){for(let p in props){this._setProperty(p,props[p])}}_ensureAttribute(attribute,value){const el=this;if(!el.hasAttribute(attribute)){this._valueToNodeAttribute(el,value,attribute)}}_serializeValue(value){switch(typeof value){case"object":if(value instanceof Date){return value.toString()}else if(value){try{return JSON.stringify(value)}catch(x){return""}}default:return super._serializeValue(value)}}_deserializeValue(value,type){let outValue;switch(type){case Object:try{outValue=JSON.parse(value)}catch(x){outValue=value}break;case Array:try{outValue=JSON.parse(value)}catch(x){outValue=null;console.warn(`Polymer::Attributes: couldn't decode Array as JSON: ${value}`)}break;case Date:outValue=isNaN(value)?String(value):Number(value);outValue=new Date(outValue);break;default:outValue=super._deserializeValue(value,type);break}return outValue}_definePropertyAccessor(property,readOnly){saveAccessorValue(this,property);super._definePropertyAccessor(property,readOnly)}_hasAccessor(property){return this.__dataHasAccessor&&this.__dataHasAccessor[property]}_isPropertyPending(prop){return Boolean(this.__dataPending&&prop in this.__dataPending)}}return PropertyAccessors})})();(function(){"use strict";const walker=document.createTreeWalker(document,NodeFilter.SHOW_ALL,null,false);const templateExtensions={"dom-if":true,"dom-repeat":true};function wrapTemplateExtension(node){let is=node.getAttribute("is");if(is&&templateExtensions[is]){let t=node;t.removeAttribute("is");node=t.ownerDocument.createElement(is);t.parentNode.replaceChild(node,t);node.appendChild(t);while(t.attributes.length){node.setAttribute(t.attributes[0].name,t.attributes[0].value);t.removeAttribute(t.attributes[0].name)}}return node}function findTemplateNode(root,nodeInfo){let parent=nodeInfo.parentInfo&&findTemplateNode(root,nodeInfo.parentInfo);if(parent){walker.currentNode=parent;for(let n=walker.firstChild(),i=0;n;n=walker.nextSibling()){if(nodeInfo.parentIndex===i++){return n}}}else{return root}}function applyIdToMap(inst,map,node,nodeInfo){if(nodeInfo.id){map[nodeInfo.id]=node}}function applyEventListener(inst,node,nodeInfo){if(nodeInfo.events&&nodeInfo.events.length){for(let j=0,e$=nodeInfo.events,e;j<e$.length&&(e=e$[j]);j++){inst._addMethodEventListenerToNode(node,e.name,e.value,inst)}}}function applyTemplateContent(inst,node,nodeInfo){if(nodeInfo.templateInfo){node._templateInfo=nodeInfo.templateInfo}}function createNodeEventHandler(context,eventName,methodName){context=context._methodHost||context;let handler=function(e){if(context[methodName]){context[methodName](e,e.detail)}else{console.warn("listener method `"+methodName+"` not defined")}};return handler}Polymer.TemplateStamp=Polymer.dedupingMixin(superClass=>{class TemplateStamp extends superClass{static _parseTemplate(template,outerTemplateInfo){if(!template._templateInfo){let templateInfo=template._templateInfo={};templateInfo.nodeInfoList=[];templateInfo.stripWhiteSpace=Polymer.legacyOptimizations||outerTemplateInfo&&outerTemplateInfo.stripWhiteSpace||template.hasAttribute("strip-whitespace");this._parseTemplateContent(template,templateInfo,{parent:null})}return template._templateInfo}static _parseTemplateContent(template,templateInfo,nodeInfo){return this._parseTemplateNode(template.content,templateInfo,nodeInfo)}static _parseTemplateNode(node,templateInfo,nodeInfo){let noted;let element=node;if(element.localName=="template"&&!element.hasAttribute("preserve-content")){noted=this._parseTemplateNestedTemplate(element,templateInfo,nodeInfo)||noted}else if(element.localName==="slot"){templateInfo.hasInsertionPoint=true}walker.currentNode=element;if(walker.firstChild()){noted=this._parseTemplateChildNodes(element,templateInfo,nodeInfo)||noted}if(element.hasAttributes&&element.hasAttributes()){noted=this._parseTemplateNodeAttributes(element,templateInfo,nodeInfo)||noted}return noted}static _parseTemplateChildNodes(root,templateInfo,nodeInfo){if(root.localName==="script"||root.localName==="style"){return}walker.currentNode=root;for(let node=walker.firstChild(),parentIndex=0,next;node;node=next){if(node.localName=="template"){node=wrapTemplateExtension(node)}walker.currentNode=node;next=walker.nextSibling();if(node.nodeType===Node.TEXT_NODE){let n=next;while(n&&n.nodeType===Node.TEXT_NODE){node.textContent+=n.textContent;next=walker.nextSibling();root.removeChild(n);n=next}if(templateInfo.stripWhiteSpace&&!node.textContent.trim()){root.removeChild(node);continue}}let childInfo={parentIndex:parentIndex,parentInfo:nodeInfo};if(this._parseTemplateNode(node,templateInfo,childInfo)){childInfo.infoIndex=templateInfo.nodeInfoList.push(childInfo)-1}walker.currentNode=node;if(walker.parentNode()){parentIndex++}}}static _parseTemplateNestedTemplate(node,outerTemplateInfo,nodeInfo){let templateInfo=this._parseTemplate(node,outerTemplateInfo);let content=templateInfo.content=node.content.ownerDocument.createDocumentFragment();content.appendChild(node.content);nodeInfo.templateInfo=templateInfo;return true}static _parseTemplateNodeAttributes(node,templateInfo,nodeInfo){let noted=false;let attrs=Array.from(node.attributes);for(let i=attrs.length-1,a;a=attrs[i];i--){noted=this._parseTemplateNodeAttribute(node,templateInfo,nodeInfo,a.name,a.value)||noted}return noted}static _parseTemplateNodeAttribute(node,templateInfo,nodeInfo,name,value){if(name.slice(0,3)==="on-"){node.removeAttribute(name);nodeInfo.events=nodeInfo.events||[];nodeInfo.events.push({name:name.slice(3),value:value});return true}else if(name==="id"){nodeInfo.id=value;return true}return false}static _contentForTemplate(template){let templateInfo=template._templateInfo;return templateInfo&&templateInfo.content||template.content}_stampTemplate(template){if(template&&!template.content&&window.HTMLTemplateElement&&HTMLTemplateElement.decorate){HTMLTemplateElement.decorate(template)}let templateInfo=this.constructor._parseTemplate(template);let nodeInfo=templateInfo.nodeInfoList;let content=templateInfo.content||template.content;let dom=document.importNode(content,true);dom.__noInsertionPoint=!templateInfo.hasInsertionPoint;let nodes=dom.nodeList=new Array(nodeInfo.length);dom.$={};for(let i=0,l=nodeInfo.length,info;i<l&&(info=nodeInfo[i]);i++){let node=nodes[i]=findTemplateNode(dom,info);applyIdToMap(this,dom.$,node,info);applyTemplateContent(this,node,info);applyEventListener(this,node,info)}dom=dom;return dom}_addMethodEventListenerToNode(node,eventName,methodName,context){context=context||node;let handler=createNodeEventHandler(context,eventName,methodName);this._addEventListenerToNode(node,eventName,handler);return handler}_addEventListenerToNode(node,eventName,handler){node.addEventListener(eventName,handler)}_removeEventListenerFromNode(node,eventName,handler){node.removeEventListener(eventName,handler)}}return TemplateStamp})})();(function(){"use strict";const CaseMap=Polymer.CaseMap;let dedupeId=0;const TYPES={COMPUTE:"__computeEffects",REFLECT:"__reflectEffects",NOTIFY:"__notifyEffects",PROPAGATE:"__propagateEffects",OBSERVE:"__observeEffects",READ_ONLY:"__readOnly"};const capitalAttributeRegex=/[A-Z]/;let DataTrigger;let DataEffect;let PropertyEffectsType;function ensureOwnEffectMap(model,type){let effects=model[type];if(!effects){effects=model[type]={}}else if(!model.hasOwnProperty(type)){effects=model[type]=Object.create(model[type]);for(let p in effects){let protoFx=effects[p];let instFx=effects[p]=Array(protoFx.length);for(let i=0;i<protoFx.length;i++){instFx[i]=protoFx[i]}}}return effects}function runEffects(inst,effects,props,oldProps,hasPaths,extraArgs){if(effects){let ran=false;let id=dedupeId++;for(let prop in props){if(runEffectsForProperty(inst,effects,id,prop,props,oldProps,hasPaths,extraArgs)){ran=true}}return ran}return false}function runEffectsForProperty(inst,effects,dedupeId,prop,props,oldProps,hasPaths,extraArgs){let ran=false;let rootProperty=hasPaths?Polymer.Path.root(prop):prop;let fxs=effects[rootProperty];if(fxs){for(let i=0,l=fxs.length,fx;i<l&&(fx=fxs[i]);i++){if((!fx.info||fx.info.lastRun!==dedupeId)&&(!hasPaths||pathMatchesTrigger(prop,fx.trigger))){if(fx.info){fx.info.lastRun=dedupeId}fx.fn(inst,prop,props,oldProps,fx.info,hasPaths,extraArgs);ran=true}}}return ran}function pathMatchesTrigger(path,trigger){if(trigger){let triggerPath=trigger.name;return triggerPath==path||trigger.structured&&Polymer.Path.isAncestor(triggerPath,path)||trigger.wildcard&&Polymer.Path.isDescendant(triggerPath,path)}else{return true}}function runObserverEffect(inst,property,props,oldProps,info){let fn=typeof info.method==="string"?inst[info.method]:info.method;let changedProp=info.property;if(fn){fn.call(inst,inst.__data[changedProp],oldProps[changedProp])}else if(!info.dynamicFn){console.warn("observer method `"+info.method+"` not defined")}}function runNotifyEffects(inst,notifyProps,props,oldProps,hasPaths){let fxs=inst[TYPES.NOTIFY];let notified;let id=dedupeId++;for(let prop in notifyProps){if(notifyProps[prop]){if(fxs&&runEffectsForProperty(inst,fxs,id,prop,props,oldProps,hasPaths)){notified=true}else if(hasPaths&&notifyPath(inst,prop,props)){notified=true}}}let host;if(notified&&(host=inst.__dataHost)&&host._invalidateProperties){host._invalidateProperties()}}function notifyPath(inst,path,props){let rootProperty=Polymer.Path.root(path);if(rootProperty!==path){let eventName=Polymer.CaseMap.camelToDashCase(rootProperty)+"-changed";dispatchNotifyEvent(inst,eventName,props[path],path);return true}return false}function dispatchNotifyEvent(inst,eventName,value,path){let detail={value:value,queueProperty:true};if(path){detail.path=path}inst.dispatchEvent(new CustomEvent(eventName,{detail:detail}))}function runNotifyEffect(inst,property,props,oldProps,info,hasPaths){let rootProperty=hasPaths?Polymer.Path.root(property):property;let path=rootProperty!=property?property:null;let value=path?Polymer.Path.get(inst,path):inst.__data[property];if(path&&value===undefined){value=props[property]}dispatchNotifyEvent(inst,info.eventName,value,path)}function handleNotification(event,inst,fromProp,toPath,negate){let value;let detail=event.detail;let fromPath=detail&&detail.path;if(fromPath){toPath=Polymer.Path.translate(fromProp,toPath,fromPath);value=detail&&detail.value}else{value=event.currentTarget[fromProp]}value=negate?!value:value;if(!inst[TYPES.READ_ONLY]||!inst[TYPES.READ_ONLY][toPath]){if(inst._setPendingPropertyOrPath(toPath,value,true,Boolean(fromPath))&&(!detail||!detail.queueProperty)){inst._invalidateProperties()}}}function runReflectEffect(inst,property,props,oldProps,info){let value=inst.__data[property];if(Polymer.sanitizeDOMValue){value=Polymer.sanitizeDOMValue(value,info.attrName,"attribute",inst)}inst._propertyToAttribute(property,info.attrName,value)}function runComputedEffects(inst,changedProps,oldProps,hasPaths){let computeEffects=inst[TYPES.COMPUTE];if(computeEffects){let inputProps=changedProps;while(runEffects(inst,computeEffects,inputProps,oldProps,hasPaths)){Object.assign(oldProps,inst.__dataOld);Object.assign(changedProps,inst.__dataPending);inputProps=inst.__dataPending;inst.__dataPending=null}}}function runComputedEffect(inst,property,props,oldProps,info){let result=runMethodEffect(inst,property,props,oldProps,info);let computedProp=info.methodInfo;if(inst.__dataHasAccessor&&inst.__dataHasAccessor[computedProp]){inst._setPendingProperty(computedProp,result,true)}else{inst[computedProp]=result}}function computeLinkedPaths(inst,path,value){let links=inst.__dataLinkedPaths;if(links){let link;for(let a in links){let b=links[a];if(Polymer.Path.isDescendant(a,path)){link=Polymer.Path.translate(a,b,path);inst._setPendingPropertyOrPath(link,value,true,true)}else if(Polymer.Path.isDescendant(b,path)){link=Polymer.Path.translate(b,a,path);inst._setPendingPropertyOrPath(link,value,true,true)}}}}function addBinding(constructor,templateInfo,nodeInfo,kind,target,parts,literal){nodeInfo.bindings=nodeInfo.bindings||[];let binding={kind:kind,target:target,parts:parts,literal:literal,isCompound:parts.length!==1};nodeInfo.bindings.push(binding);if(shouldAddListener(binding)){let{event:event,negate:negate}=binding.parts[0];binding.listenerEvent=event||CaseMap.camelToDashCase(target)+"-changed";binding.listenerNegate=negate}let index=templateInfo.nodeInfoList.length;for(let i=0;i<binding.parts.length;i++){let part=binding.parts[i];part.compoundIndex=i;addEffectForBindingPart(constructor,templateInfo,binding,part,index)}}function addEffectForBindingPart(constructor,templateInfo,binding,part,index){if(!part.literal){if(binding.kind==="attribute"&&binding.target[0]==="-"){console.warn("Cannot set attribute "+binding.target+' because "-" is not a valid attribute starting character')}else{let dependencies=part.dependencies;let info={index:index,binding:binding,part:part,evaluator:constructor};for(let j=0;j<dependencies.length;j++){let trigger=dependencies[j];if(typeof trigger=="string"){trigger=parseArg(trigger);trigger.wildcard=true}constructor._addTemplatePropertyEffect(templateInfo,trigger.rootProperty,{fn:runBindingEffect,info:info,trigger:trigger})}}}}function runBindingEffect(inst,path,props,oldProps,info,hasPaths,nodeList){let node=nodeList[info.index];let binding=info.binding;let part=info.part;if(hasPaths&&part.source&&path.length>part.source.length&&binding.kind=="property"&&!binding.isCompound&&node.__isPropertyEffectsClient&&node.__dataHasAccessor&&node.__dataHasAccessor[binding.target]){let value=props[path];path=Polymer.Path.translate(part.source,binding.target,path);if(node._setPendingPropertyOrPath(path,value,false,true)){inst._enqueueClient(node)}}else{let value=info.evaluator._evaluateBinding(inst,part,path,props,oldProps,hasPaths);applyBindingValue(inst,node,binding,part,value)}}function applyBindingValue(inst,node,binding,part,value){value=computeBindingValue(node,value,binding,part);if(Polymer.sanitizeDOMValue){value=Polymer.sanitizeDOMValue(value,binding.target,binding.kind,node)}if(binding.kind=="attribute"){inst._valueToNodeAttribute(node,value,binding.target)}else{let prop=binding.target;if(node.__isPropertyEffectsClient&&node.__dataHasAccessor&&node.__dataHasAccessor[prop]){if(!node[TYPES.READ_ONLY]||!node[TYPES.READ_ONLY][prop]){if(node._setPendingProperty(prop,value)){inst._enqueueClient(node)}}}else{inst._setUnmanagedPropertyToNode(node,prop,value)}}}function computeBindingValue(node,value,binding,part){if(binding.isCompound){let storage=node.__dataCompoundStorage[binding.target];storage[part.compoundIndex]=value;value=storage.join("")}if(binding.kind!=="attribute"){if(binding.target==="textContent"||binding.target==="value"&&(node.localName==="input"||node.localName==="textarea")){value=value==undefined?"":value}}return value}function shouldAddListener(binding){return Boolean(binding.target)&&binding.kind!="attribute"&&binding.kind!="text"&&!binding.isCompound&&binding.parts[0].mode==="{"}function setupBindings(inst,templateInfo){let{nodeList:nodeList,nodeInfoList:nodeInfoList}=templateInfo;if(nodeInfoList.length){for(let i=0;i<nodeInfoList.length;i++){let info=nodeInfoList[i];let node=nodeList[i];let bindings=info.bindings;if(bindings){for(let i=0;i<bindings.length;i++){let binding=bindings[i];setupCompoundStorage(node,binding);addNotifyListener(node,inst,binding)}}node.__dataHost=inst}}}function setupCompoundStorage(node,binding){if(binding.isCompound){let storage=node.__dataCompoundStorage||(node.__dataCompoundStorage={});let parts=binding.parts;let literals=new Array(parts.length);for(let j=0;j<parts.length;j++){literals[j]=parts[j].literal}let target=binding.target;storage[target]=literals;if(binding.literal&&binding.kind=="property"){node[target]=binding.literal}}}function addNotifyListener(node,inst,binding){if(binding.listenerEvent){let part=binding.parts[0];node.addEventListener(binding.listenerEvent,function(e){handleNotification(e,inst,binding.target,part.source,part.negate)})}}function createMethodEffect(model,sig,type,effectFn,methodInfo,dynamicFn){dynamicFn=sig.static||dynamicFn&&(typeof dynamicFn!=="object"||dynamicFn[sig.methodName]);let info={methodName:sig.methodName,args:sig.args,methodInfo:methodInfo,dynamicFn:dynamicFn};for(let i=0,arg;i<sig.args.length&&(arg=sig.args[i]);i++){if(!arg.literal){model._addPropertyEffect(arg.rootProperty,type,{fn:effectFn,info:info,trigger:arg})}}if(dynamicFn){model._addPropertyEffect(sig.methodName,type,{fn:effectFn,info:info})}}function runMethodEffect(inst,property,props,oldProps,info){let context=inst._methodHost||inst;let fn=context[info.methodName];if(fn){let args=inst._marshalArgs(info.args,property,props);return fn.apply(context,args)}else if(!info.dynamicFn){console.warn("method `"+info.methodName+"` not defined")}}const emptyArray=[];const IDENT="(?:"+"[a-zA-Z_$][\\w.:$\\-*]*"+")";const NUMBER="(?:"+"[-+]?[0-9]*\\.?[0-9]+(?:[eE][-+]?[0-9]+)?"+")";const SQUOTE_STRING="(?:"+"'(?:[^'\\\\]|\\\\.)*'"+")";const DQUOTE_STRING="(?:"+'"(?:[^"\\\\]|\\\\.)*"'+")";const STRING="(?:"+SQUOTE_STRING+"|"+DQUOTE_STRING+")";const ARGUMENT="(?:("+IDENT+"|"+NUMBER+"|"+STRING+")\\s*"+")";const ARGUMENTS="(?:"+ARGUMENT+"(?:,\\s*"+ARGUMENT+")*"+")";const ARGUMENT_LIST="(?:"+"\\(\\s*"+"(?:"+ARGUMENTS+"?"+")"+"\\)\\s*"+")";const BINDING="("+IDENT+"\\s*"+ARGUMENT_LIST+"?"+")";const OPEN_BRACKET="(\\[\\[|{{)"+"\\s*";const CLOSE_BRACKET="(?:]]|}})";const NEGATE="(?:(!)\\s*)?";const EXPRESSION=OPEN_BRACKET+NEGATE+BINDING+CLOSE_BRACKET;const bindingRegex=new RegExp(EXPRESSION,"g");function literalFromParts(parts){let s="";for(let i=0;i<parts.length;i++){let literal=parts[i].literal;s+=literal||""}return s}function parseMethod(expression){let m=expression.match(/([^\s]+?)\(([\s\S]*)\)/);if(m){let methodName=m[1];let sig={methodName:methodName,static:true,args:emptyArray};if(m[2].trim()){let args=m[2].replace(/\\,/g,"&comma;").split(",");return parseArgs(args,sig)}else{return sig}}return null}function parseArgs(argList,sig){sig.args=argList.map(function(rawArg){let arg=parseArg(rawArg);if(!arg.literal){sig.static=false}return arg},this);return sig}function parseArg(rawArg){let arg=rawArg.trim().replace(/&comma;/g,",").replace(/\\(.)/g,"$1");let a={name:arg,value:"",literal:false};let fc=arg[0];if(fc==="-"){fc=arg[1]}if(fc>="0"&&fc<="9"){fc="#"}switch(fc){case"'":case'"':a.value=arg.slice(1,-1);a.literal=true;break;case"#":a.value=Number(arg);a.literal=true;break}if(!a.literal){a.rootProperty=Polymer.Path.root(arg);a.structured=Polymer.Path.isPath(arg);if(a.structured){a.wildcard=arg.slice(-2)==".*";if(a.wildcard){a.name=arg.slice(0,-2)}}}return a}function notifySplices(inst,array,path,splices){let splicesPath=path+".splices";inst.notifyPath(splicesPath,{indexSplices:splices});inst.notifyPath(path+".length",array.length);inst.__data[splicesPath]={indexSplices:null}}function notifySplice(inst,array,path,index,addedCount,removed){notifySplices(inst,array,path,[{index:index,addedCount:addedCount,removed:removed,object:array,type:"splice"}])}function upper(name){return name[0].toUpperCase()+name.substring(1)}Polymer.PropertyEffects=Polymer.dedupingMixin(superClass=>{const propertyEffectsBase=Polymer.TemplateStamp(Polymer.PropertyAccessors(superClass));class PropertyEffects extends propertyEffectsBase{constructor(){super();this.__isPropertyEffectsClient=true;this.__dataCounter=0;this.__dataClientsReady;this.__dataPendingClients;this.__dataToNotify;this.__dataLinkedPaths;this.__dataHasPaths;this.__dataCompoundStorage;this.__dataHost;this.__dataTemp;this.__dataClientsInitialized;this.__data;this.__dataPending;this.__dataOld;this.__computeEffects;this.__reflectEffects;this.__notifyEffects;this.__propagateEffects;this.__observeEffects;this.__readOnly;this.__templateInfo}get PROPERTY_EFFECT_TYPES(){return TYPES}_initializeProperties(){super._initializeProperties();hostStack.registerHost(this);this.__dataClientsReady=false;this.__dataPendingClients=null;this.__dataToNotify=null;this.__dataLinkedPaths=null;this.__dataHasPaths=false;this.__dataCompoundStorage=this.__dataCompoundStorage||null;this.__dataHost=this.__dataHost||null;this.__dataTemp={};this.__dataClientsInitialized=false}_initializeProtoProperties(props){this.__data=Object.create(props);this.__dataPending=Object.create(props);this.__dataOld={}}_initializeInstanceProperties(props){let readOnly=this[TYPES.READ_ONLY];for(let prop in props){if(!readOnly||!readOnly[prop]){this.__dataPending=this.__dataPending||{};this.__dataOld=this.__dataOld||{};this.__data[prop]=this.__dataPending[prop]=props[prop]}}}_addPropertyEffect(property,type,effect){this._createPropertyAccessor(property,type==TYPES.READ_ONLY);let effects=ensureOwnEffectMap(this,type)[property];if(!effects){effects=this[type][property]=[]}effects.push(effect)}_removePropertyEffect(property,type,effect){let effects=ensureOwnEffectMap(this,type)[property];let idx=effects.indexOf(effect);if(idx>=0){effects.splice(idx,1)}}_hasPropertyEffect(property,type){let effects=this[type];return Boolean(effects&&effects[property])}_hasReadOnlyEffect(property){return this._hasPropertyEffect(property,TYPES.READ_ONLY)}_hasNotifyEffect(property){return this._hasPropertyEffect(property,TYPES.NOTIFY)}_hasReflectEffect(property){return this._hasPropertyEffect(property,TYPES.REFLECT)}_hasComputedEffect(property){return this._hasPropertyEffect(property,TYPES.COMPUTE)}_setPendingPropertyOrPath(path,value,shouldNotify,isPathNotification){if(isPathNotification||Polymer.Path.root(Array.isArray(path)?path[0]:path)!==path){if(!isPathNotification){let old=Polymer.Path.get(this,path);path=Polymer.Path.set(this,path,value);if(!path||!super._shouldPropertyChange(path,value,old)){return false}}this.__dataHasPaths=true;if(this._setPendingProperty(path,value,shouldNotify)){computeLinkedPaths(this,path,value);return true}}else{if(this.__dataHasAccessor&&this.__dataHasAccessor[path]){return this._setPendingProperty(path,value,shouldNotify)}else{this[path]=value}}return false}_setUnmanagedPropertyToNode(node,prop,value){if(value!==node[prop]||typeof value=="object"){node[prop]=value}}_setPendingProperty(property,value,shouldNotify){let isPath=this.__dataHasPaths&&Polymer.Path.isPath(property);let prevProps=isPath?this.__dataTemp:this.__data;if(this._shouldPropertyChange(property,value,prevProps[property])){if(!this.__dataPending){this.__dataPending={};this.__dataOld={}}if(!(property in this.__dataOld)){this.__dataOld[property]=this.__data[property]}if(isPath){this.__dataTemp[property]=value}else{this.__data[property]=value}this.__dataPending[property]=value;if(isPath||this[TYPES.NOTIFY]&&this[TYPES.NOTIFY][property]){this.__dataToNotify=this.__dataToNotify||{};this.__dataToNotify[property]=shouldNotify}return true}return false}_setProperty(property,value){if(this._setPendingProperty(property,value,true)){this._invalidateProperties()}}_invalidateProperties(){if(this.__dataReady){this._flushProperties()}}_enqueueClient(client){this.__dataPendingClients=this.__dataPendingClients||[];if(client!==this){this.__dataPendingClients.push(client)}}_flushProperties(){this.__dataCounter++;super._flushProperties();this.__dataCounter--}_flushClients(){if(!this.__dataClientsReady){this.__dataClientsReady=true;this._readyClients();this.__dataReady=true}else{this.__enableOrFlushClients()}}__enableOrFlushClients(){let clients=this.__dataPendingClients;if(clients){this.__dataPendingClients=null;for(let i=0;i<clients.length;i++){let client=clients[i];if(!client.__dataEnabled){client._enableProperties()}else if(client.__dataPending){client._flushProperties()}}}}_readyClients(){this.__enableOrFlushClients()}setProperties(props,setReadOnly){for(let path in props){if(setReadOnly||!this[TYPES.READ_ONLY]||!this[TYPES.READ_ONLY][path]){this._setPendingPropertyOrPath(path,props[path],true)}}this._invalidateProperties()}ready(){this._flushProperties();if(!this.__dataClientsReady){this._flushClients()}if(this.__dataPending){this._flushProperties()}}_propertiesChanged(currentProps,changedProps,oldProps){let hasPaths=this.__dataHasPaths;this.__dataHasPaths=false;runComputedEffects(this,changedProps,oldProps,hasPaths);let notifyProps=this.__dataToNotify;this.__dataToNotify=null;this._propagatePropertyChanges(changedProps,oldProps,hasPaths);this._flushClients();runEffects(this,this[TYPES.REFLECT],changedProps,oldProps,hasPaths);runEffects(this,this[TYPES.OBSERVE],changedProps,oldProps,hasPaths);if(notifyProps){runNotifyEffects(this,notifyProps,changedProps,oldProps,hasPaths)}if(this.__dataCounter==1){this.__dataTemp={}}}_propagatePropertyChanges(changedProps,oldProps,hasPaths){if(this[TYPES.PROPAGATE]){runEffects(this,this[TYPES.PROPAGATE],changedProps,oldProps,hasPaths)}let templateInfo=this.__templateInfo;while(templateInfo){runEffects(this,templateInfo.propertyEffects,changedProps,oldProps,hasPaths,templateInfo.nodeList);templateInfo=templateInfo.nextTemplateInfo}}linkPaths(to,from){to=Polymer.Path.normalize(to);from=Polymer.Path.normalize(from);this.__dataLinkedPaths=this.__dataLinkedPaths||{};this.__dataLinkedPaths[to]=from}unlinkPaths(path){path=Polymer.Path.normalize(path);if(this.__dataLinkedPaths){delete this.__dataLinkedPaths[path]}}notifySplices(path,splices){let info={path:""};let array=Polymer.Path.get(this,path,info);notifySplices(this,array,info.path,splices)}get(path,root){return Polymer.Path.get(root||this,path)}set(path,value,root){if(root){Polymer.Path.set(root,path,value)}else{if(!this[TYPES.READ_ONLY]||!this[TYPES.READ_ONLY][path]){if(this._setPendingPropertyOrPath(path,value,true)){this._invalidateProperties()}}}}push(path,...items){let info={path:""};let array=Polymer.Path.get(this,path,info);let len=array.length;let ret=array.push(...items);if(items.length){notifySplice(this,array,info.path,len,items.length,[])}return ret}pop(path){let info={path:""};let array=Polymer.Path.get(this,path,info);let hadLength=Boolean(array.length);let ret=array.pop();if(hadLength){notifySplice(this,array,info.path,array.length,0,[ret])}return ret}splice(path,start,deleteCount,...items){let info={path:""};let array=Polymer.Path.get(this,path,info);if(start<0){start=array.length-Math.floor(-start)}else if(start){start=Math.floor(start)}let ret;if(arguments.length===2){ret=array.splice(start)}else{ret=array.splice(start,deleteCount,...items)}if(items.length||ret.length){notifySplice(this,array,info.path,start,items.length,ret)}return ret}shift(path){let info={path:""};let array=Polymer.Path.get(this,path,info);let hadLength=Boolean(array.length);let ret=array.shift();if(hadLength){notifySplice(this,array,info.path,0,0,[ret])}return ret}unshift(path,...items){let info={path:""};let array=Polymer.Path.get(this,path,info);let ret=array.unshift(...items);if(items.length){notifySplice(this,array,info.path,0,items.length,[])}return ret}notifyPath(path,value){let propPath;if(arguments.length==1){let info={path:""};value=Polymer.Path.get(this,path,info);propPath=info.path}else if(Array.isArray(path)){propPath=Polymer.Path.normalize(path)}else{propPath=path}if(this._setPendingPropertyOrPath(propPath,value,true,true)){this._invalidateProperties()}}_createReadOnlyProperty(property,protectedSetter){this._addPropertyEffect(property,TYPES.READ_ONLY);if(protectedSetter){this["_set"+upper(property)]=function(value){this._setProperty(property,value)}}}_createPropertyObserver(property,method,dynamicFn){let info={property:property,method:method,dynamicFn:Boolean(dynamicFn)};this._addPropertyEffect(property,TYPES.OBSERVE,{fn:runObserverEffect,info:info,trigger:{name:property}});if(dynamicFn){this._addPropertyEffect(method,TYPES.OBSERVE,{fn:runObserverEffect,info:info,trigger:{name:method}})}}_createMethodObserver(expression,dynamicFn){let sig=parseMethod(expression);if(!sig){throw new Error("Malformed observer expression '"+expression+"'")}createMethodEffect(this,sig,TYPES.OBSERVE,runMethodEffect,null,dynamicFn)}_createNotifyingProperty(property){this._addPropertyEffect(property,TYPES.NOTIFY,{fn:runNotifyEffect,info:{eventName:CaseMap.camelToDashCase(property)+"-changed",property:property}})}_createReflectedProperty(property){let attr=this.constructor.attributeNameForProperty(property);if(attr[0]==="-"){console.warn("Property "+property+" cannot be reflected to attribute "+attr+' because "-" is not a valid starting attribute name. Use a lowercase first letter for the property instead.')}else{this._addPropertyEffect(property,TYPES.REFLECT,{fn:runReflectEffect,info:{attrName:attr}})}}_createComputedProperty(property,expression,dynamicFn){let sig=parseMethod(expression);if(!sig){throw new Error("Malformed computed expression '"+expression+"'")}createMethodEffect(this,sig,TYPES.COMPUTE,runComputedEffect,property,dynamicFn)}_marshalArgs(args,path,props){const data=this.__data;let values=[];for(let i=0,l=args.length;i<l;i++){let arg=args[i];let name=arg.name;let v;if(arg.literal){v=arg.value}else{if(arg.structured){v=Polymer.Path.get(data,name);if(v===undefined){v=props[name]}}else{v=data[name]}}if(arg.wildcard){let baseChanged=name.indexOf(path+".")===0;let matches=path.indexOf(name)===0&&!baseChanged;values[i]={path:matches?path:name,value:matches?props[path]:v,base:v}}else{values[i]=v}}return values}static addPropertyEffect(property,type,effect){this.prototype._addPropertyEffect(property,type,effect)}static createPropertyObserver(property,method,dynamicFn){this.prototype._createPropertyObserver(property,method,dynamicFn)}static createMethodObserver(expression,dynamicFn){this.prototype._createMethodObserver(expression,dynamicFn)}static createNotifyingProperty(property){this.prototype._createNotifyingProperty(property)}static createReadOnlyProperty(property,protectedSetter){this.prototype._createReadOnlyProperty(property,protectedSetter)}static createReflectedProperty(property){this.prototype._createReflectedProperty(property)}static createComputedProperty(property,expression,dynamicFn){this.prototype._createComputedProperty(property,expression,dynamicFn)}static bindTemplate(template){return this.prototype._bindTemplate(template)}_bindTemplate(template,instanceBinding){let templateInfo=this.constructor._parseTemplate(template);let wasPreBound=this.__templateInfo==templateInfo;if(!wasPreBound){for(let prop in templateInfo.propertyEffects){this._createPropertyAccessor(prop)}}if(instanceBinding){templateInfo=Object.create(templateInfo);templateInfo.wasPreBound=wasPreBound;if(!wasPreBound&&this.__templateInfo){let last=this.__templateInfoLast||this.__templateInfo;this.__templateInfoLast=last.nextTemplateInfo=templateInfo;templateInfo.previousTemplateInfo=last;return templateInfo}}return this.__templateInfo=templateInfo}static _addTemplatePropertyEffect(templateInfo,prop,effect){let hostProps=templateInfo.hostProps=templateInfo.hostProps||{};hostProps[prop]=true;let effects=templateInfo.propertyEffects=templateInfo.propertyEffects||{};let propEffects=effects[prop]=effects[prop]||[];propEffects.push(effect)}_stampTemplate(template){hostStack.beginHosting(this);let dom=super._stampTemplate(template);hostStack.endHosting(this);let templateInfo=this._bindTemplate(template,true);templateInfo.nodeList=dom.nodeList;if(!templateInfo.wasPreBound){let nodes=templateInfo.childNodes=[];for(let n=dom.firstChild;n;n=n.nextSibling){nodes.push(n)}}dom.templateInfo=templateInfo;setupBindings(this,templateInfo);if(this.__dataReady){runEffects(this,templateInfo.propertyEffects,this.__data,null,false,templateInfo.nodeList)}return dom}_removeBoundDom(dom){let templateInfo=dom.templateInfo;if(templateInfo.previousTemplateInfo){templateInfo.previousTemplateInfo.nextTemplateInfo=templateInfo.nextTemplateInfo}if(templateInfo.nextTemplateInfo){templateInfo.nextTemplateInfo.previousTemplateInfo=templateInfo.previousTemplateInfo}if(this.__templateInfoLast==templateInfo){this.__templateInfoLast=templateInfo.previousTemplateInfo}templateInfo.previousTemplateInfo=templateInfo.nextTemplateInfo=null;let nodes=templateInfo.childNodes;for(let i=0;i<nodes.length;i++){let node=nodes[i];node.parentNode.removeChild(node)}}static _parseTemplateNode(node,templateInfo,nodeInfo){let noted=super._parseTemplateNode(node,templateInfo,nodeInfo);if(node.nodeType===Node.TEXT_NODE){let parts=this._parseBindings(node.textContent,templateInfo);if(parts){node.textContent=literalFromParts(parts)||" ";addBinding(this,templateInfo,nodeInfo,"text","textContent",parts);noted=true}}return noted}static _parseTemplateNodeAttribute(node,templateInfo,nodeInfo,name,value){let parts=this._parseBindings(value,templateInfo);if(parts){let origName=name;let kind="property";if(capitalAttributeRegex.test(name)){kind="attribute"}else if(name[name.length-1]=="$"){name=name.slice(0,-1);kind="attribute"}let literal=literalFromParts(parts);if(literal&&kind=="attribute"){if(name=="class"&&node.hasAttribute("class")){literal+=" "+node.getAttribute(name)}node.setAttribute(name,literal)}if(node.localName==="input"&&origName==="value"){node.setAttribute(origName,"")}node.removeAttribute(origName);if(kind==="property"){name=Polymer.CaseMap.dashToCamelCase(name)}addBinding(this,templateInfo,nodeInfo,kind,name,parts,literal);return true}else{return super._parseTemplateNodeAttribute(node,templateInfo,nodeInfo,name,value)}}static _parseTemplateNestedTemplate(node,templateInfo,nodeInfo){let noted=super._parseTemplateNestedTemplate(node,templateInfo,nodeInfo);let hostProps=nodeInfo.templateInfo.hostProps;let mode="{";for(let source in hostProps){let parts=[{mode:mode,source:source,dependencies:[source]}];addBinding(this,templateInfo,nodeInfo,"property","_host_"+source,parts)}return noted}static _parseBindings(text,templateInfo){let parts=[];let lastIndex=0;let m;while((m=bindingRegex.exec(text))!==null){if(m.index>lastIndex){parts.push({literal:text.slice(lastIndex,m.index)})}let mode=m[1][0];let negate=Boolean(m[2]);let source=m[3].trim();let customEvent=false,notifyEvent="",colon=-1;if(mode=="{"&&(colon=source.indexOf("::"))>0){notifyEvent=source.substring(colon+2);source=source.substring(0,colon);customEvent=true}let signature=parseMethod(source);let dependencies=[];if(signature){let{args:args,methodName:methodName}=signature;for(let i=0;i<args.length;i++){let arg=args[i];if(!arg.literal){dependencies.push(arg)}}let dynamicFns=templateInfo.dynamicFns;if(dynamicFns&&dynamicFns[methodName]||signature.static){dependencies.push(methodName);signature.dynamicFn=true}}else{dependencies.push(source)}parts.push({source:source,mode:mode,negate:negate,customEvent:customEvent,signature:signature,dependencies:dependencies,event:notifyEvent});lastIndex=bindingRegex.lastIndex}if(lastIndex&&lastIndex<text.length){let literal=text.substring(lastIndex);if(literal){parts.push({literal:literal})}}if(parts.length){return parts}else{return null}}static _evaluateBinding(inst,part,path,props,oldProps,hasPaths){let value;if(part.signature){value=runMethodEffect(inst,path,props,oldProps,part.signature)}else if(path!=part.source){value=Polymer.Path.get(inst,part.source)}else{if(hasPaths&&Polymer.Path.isPath(path)){value=Polymer.Path.get(inst,path)}else{value=inst.__data[path]}}if(part.negate){value=!value}return value}}PropertyEffectsType=PropertyEffects;return PropertyEffects});let hostStack={stack:[],registerHost(inst){if(this.stack.length){let host=this.stack[this.stack.length-1];host._enqueueClient(inst)}},beginHosting(inst){this.stack.push(inst)},endHosting(inst){let stackLen=this.stack.length;if(stackLen&&this.stack[stackLen-1]==inst){this.stack.pop()}}}})();(function(){"use strict";Polymer.telemetry={instanceCount:0,registrations:[],_regLog:function(prototype){console.log("["+prototype.is+"]: registered")},register:function(prototype){this.registrations.push(prototype);Polymer.log&&this._regLog(prototype)},dumpRegistrations:function(){this.registrations.forEach(this._regLog)}}})();(function(){"use strict";function normalizeProperties(props){const output={};for(let p in props){const o=props[p];output[p]=typeof o==="function"?{type:o}:o}return output}Polymer.PropertiesMixin=Polymer.dedupingMixin(superClass=>{const base=Polymer.PropertiesChanged(superClass);function superPropertiesClass(constructor){const superCtor=Object.getPrototypeOf(constructor);return superCtor.prototype instanceof PropertiesMixin?superCtor:null}function ownProperties(constructor){if(!constructor.hasOwnProperty(JSCompiler_renameProperty("__ownProperties",constructor))){let props=null;if(constructor.hasOwnProperty(JSCompiler_renameProperty("properties",constructor))){const properties=constructor.properties;if(properties){props=normalizeProperties(properties)}}constructor.__ownProperties=props}return constructor.__ownProperties}class PropertiesMixin extends base{static get observedAttributes(){if(!this.hasOwnProperty("__observedAttributes")){Polymer.telemetry.register(this.prototype);const props=this._properties;this.__observedAttributes=props?Object.keys(props).map(p=>this.attributeNameForProperty(p)):[]}return this.__observedAttributes}static finalize(){if(!this.hasOwnProperty(JSCompiler_renameProperty("__finalized",this))){const superCtor=superPropertiesClass(this);if(superCtor){superCtor.finalize()}this.__finalized=true;this._finalizeClass()}}static _finalizeClass(){const props=ownProperties(this);if(props){this.createProperties(props)}}static get _properties(){if(!this.hasOwnProperty(JSCompiler_renameProperty("__properties",this))){const superCtor=superPropertiesClass(this);this.__properties=Object.assign({},superCtor&&superCtor._properties,ownProperties(this))}return this.__properties}static typeForProperty(name){const info=this._properties[name];return info&&info.type}_initializeProperties(){Polymer.telemetry.instanceCount++;this.constructor.finalize();super._initializeProperties()}connectedCallback(){if(super.connectedCallback){super.connectedCallback()}this._enableProperties()}disconnectedCallback(){if(super.disconnectedCallback){super.disconnectedCallback()}}}return PropertiesMixin})})();(function(){"use strict";const builtCSS=window.ShadyCSS&&window.ShadyCSS["cssBuild"];Polymer.ElementMixin=Polymer.dedupingMixin(base=>{const polymerElementBase=Polymer.PropertiesMixin(Polymer.PropertyEffects(base));function propertyDefaults(constructor){if(!constructor.hasOwnProperty(JSCompiler_renameProperty("__propertyDefaults",constructor))){constructor.__propertyDefaults=null;let props=constructor._properties;for(let p in props){let info=props[p];if("value"in info){constructor.__propertyDefaults=constructor.__propertyDefaults||{};constructor.__propertyDefaults[p]=info}}}return constructor.__propertyDefaults}function ownObservers(constructor){if(!constructor.hasOwnProperty(JSCompiler_renameProperty("__ownObservers",constructor))){constructor.__ownObservers=constructor.hasOwnProperty(JSCompiler_renameProperty("observers",constructor))?constructor.observers:null}return constructor.__ownObservers}function createPropertyFromConfig(proto,name,info,allProps){if(info.computed){info.readOnly=true}if(info.computed&&!proto._hasReadOnlyEffect(name)){proto._createComputedProperty(name,info.computed,allProps)}if(info.readOnly&&!proto._hasReadOnlyEffect(name)){proto._createReadOnlyProperty(name,!info.computed)}if(info.reflectToAttribute&&!proto._hasReflectEffect(name)){proto._createReflectedProperty(name)}if(info.notify&&!proto._hasNotifyEffect(name)){proto._createNotifyingProperty(name)}if(info.observer){proto._createPropertyObserver(name,info.observer,allProps[info.observer])}proto._addPropertyToAttributeMap(name)}function processElementStyles(klass,template,is,baseURI){if(!builtCSS){const templateStyles=template.content.querySelectorAll("style");const stylesWithImports=Polymer.StyleGather.stylesFromTemplate(template);const linkedStyles=Polymer.StyleGather.stylesFromModuleImports(is);const firstTemplateChild=template.content.firstElementChild;for(let idx=0;idx<linkedStyles.length;idx++){let s=linkedStyles[idx];s.textContent=klass._processStyleText(s.textContent,baseURI);template.content.insertBefore(s,firstTemplateChild)}let templateStyleIndex=0;for(let i=0;i<stylesWithImports.length;i++){let s=stylesWithImports[i];let templateStyle=templateStyles[templateStyleIndex];if(templateStyle!==s){s=s.cloneNode(true);templateStyle.parentNode.insertBefore(s,templateStyle)}else{templateStyleIndex++}s.textContent=klass._processStyleText(s.textContent,baseURI)}}if(window.ShadyCSS){window.ShadyCSS.prepareTemplate(template,is)}}function getTemplateFromDomModule(is){let template=null;if(is&&Polymer.DomModule){template=Polymer.DomModule.import(is,"template");if(Polymer.strictTemplatePolicy&&!template){throw new Error(`strictTemplatePolicy: expecting dom-module or null template for ${is}`)}}return template}class PolymerElement extends polymerElementBase{static _finalizeClass(){super._finalizeClass();const observers=ownObservers(this);if(observers){this.createObservers(observers,this._properties)}this._prepareTemplate()}static _prepareTemplate(){let template=this.template;if(template){if(typeof template==="string"){let t=document.createElement("template");t.innerHTML=template;template=t}else if(!Polymer.legacyOptimizations){template=template.cloneNode(true)}}this.prototype._template=template}static createProperties(props){for(let p in props){createPropertyFromConfig(this.prototype,p,props[p],props)}}static createObservers(observers,dynamicFns){const proto=this.prototype;for(let i=0;i<observers.length;i++){proto._createMethodObserver(observers[i],dynamicFns)}}static get template(){if(!this.hasOwnProperty(JSCompiler_renameProperty("_template",this))){this._template=this.prototype.hasOwnProperty(JSCompiler_renameProperty("_template",this.prototype))?this.prototype._template:getTemplateFromDomModule(this.is)||Object.getPrototypeOf(this.prototype).constructor.template}return this._template}static set template(value){this._template=value}static get importPath(){if(!this.hasOwnProperty(JSCompiler_renameProperty("_importPath",this))){const meta=this.importMeta;if(meta){this._importPath=Polymer.ResolveUrl.pathFromUrl(meta.url)}else{const module=Polymer.DomModule&&Polymer.DomModule.import(this.is);this._importPath=module&&module.assetpath||Object.getPrototypeOf(this.prototype).constructor.importPath}}return this._importPath}constructor(){super();this._template;this._importPath;this.rootPath;this.importPath;this.root;this.$}_initializeProperties(){this.constructor.finalize();this.constructor._finalizeTemplate(this.localName);super._initializeProperties();this.rootPath=Polymer.rootPath;this.importPath=this.constructor.importPath;let p$=propertyDefaults(this.constructor);if(!p$){return}for(let p in p$){let info=p$[p];if(!this.hasOwnProperty(p)){let value=typeof info.value=="function"?info.value.call(this):info.value;if(this._hasAccessor(p)){this._setPendingProperty(p,value,true)}else{this[p]=value}}}}static _processStyleText(cssText,baseURI){return Polymer.ResolveUrl.resolveCss(cssText,baseURI)}static _finalizeTemplate(is){const template=this.prototype._template;if(template&&!template.__polymerFinalized){template.__polymerFinalized=true;const importPath=this.importPath;const baseURI=importPath?Polymer.ResolveUrl.resolveUrl(importPath):"";processElementStyles(this,template,is,baseURI);this.prototype._bindTemplate(template)}}connectedCallback(){if(window.ShadyCSS&&this._template){window.ShadyCSS.styleElement(this)}super.connectedCallback()}ready(){if(this._template){this.root=this._stampTemplate(this._template);this.$=this.root.$}super.ready()}_readyClients(){if(this._template){this.root=this._attachDom(this.root)}super._readyClients()}_attachDom(dom){if(this.attachShadow){if(dom){if(!this.shadowRoot){this.attachShadow({mode:"open"})}this.shadowRoot.appendChild(dom);return this.shadowRoot}return null}else{throw new Error("ShadowDOM not available. "+"Polymer.Element can create dom as children instead of in "+"ShadowDOM by setting `this.root = this;` before `ready`.")}}updateStyles(properties){if(window.ShadyCSS){window.ShadyCSS.styleSubtree(this,properties)}}resolveUrl(url,base){if(!base&&this.importPath){base=Polymer.ResolveUrl.resolveUrl(this.importPath)}return Polymer.ResolveUrl.resolveUrl(url,base)}static _parseTemplateContent(template,templateInfo,nodeInfo){templateInfo.dynamicFns=templateInfo.dynamicFns||this._properties;return super._parseTemplateContent(template,templateInfo,nodeInfo)}}return PolymerElement});Polymer.updateStyles=function(props){if(window.ShadyCSS){window.ShadyCSS.styleDocument(props)}}})();(function(){"use strict";class Debouncer{constructor(){this._asyncModule=null;this._callback=null;this._timer=null}setConfig(asyncModule,callback){this._asyncModule=asyncModule;this._callback=callback;this._timer=this._asyncModule.run(()=>{this._timer=null;this._callback()})}cancel(){if(this.isActive()){this._asyncModule.cancel(this._timer);this._timer=null}}flush(){if(this.isActive()){this.cancel();this._callback()}}isActive(){return this._timer!=null}static debounce(debouncer,asyncModule,callback){if(debouncer instanceof Debouncer){debouncer.cancel()}else{debouncer=new Debouncer}debouncer.setConfig(asyncModule,callback);return debouncer}}Polymer.Debouncer=Debouncer})();(function(){"use strict";let HAS_NATIVE_TA=typeof document.head.style.touchAction==="string";let GESTURE_KEY="__polymerGestures";let HANDLED_OBJ="__polymerGesturesHandled";let TOUCH_ACTION="__polymerGesturesTouchAction";let TAP_DISTANCE=25;let TRACK_DISTANCE=5;let TRACK_LENGTH=2;let MOUSE_TIMEOUT=2500;let MOUSE_EVENTS=["mousedown","mousemove","mouseup","click"];let MOUSE_WHICH_TO_BUTTONS=[0,1,4,2];let MOUSE_HAS_BUTTONS=function(){try{return new MouseEvent("test",{buttons:1}).buttons===1}catch(e){return false}}();function isMouseEvent(name){return MOUSE_EVENTS.indexOf(name)>-1}let SUPPORTS_PASSIVE=false;(function(){try{let opts=Object.defineProperty({},"passive",{get(){SUPPORTS_PASSIVE=true}});window.addEventListener("test",null,opts);window.removeEventListener("test",null,opts)}catch(e){}})();function PASSIVE_TOUCH(eventName){if(isMouseEvent(eventName)||eventName==="touchend"){return}if(HAS_NATIVE_TA&&SUPPORTS_PASSIVE&&Polymer.passiveTouchGestures){return{passive:true}}else{return}}let IS_TOUCH_ONLY=navigator.userAgent.match(/iP(?:[oa]d|hone)|Android/);let GestureRecognizer=function(){};GestureRecognizer.prototype.reset;GestureRecognizer.prototype.mousedown;GestureRecognizer.prototype.mousemove;GestureRecognizer.prototype.mouseup;GestureRecognizer.prototype.touchstart;GestureRecognizer.prototype.touchmove;GestureRecognizer.prototype.touchend;GestureRecognizer.prototype.click;const clickedLabels=[];const labellable={button:true,input:true,keygen:true,meter:true,output:true,textarea:true,progress:true,select:true};const canBeDisabled={button:true,command:true,fieldset:true,input:true,keygen:true,optgroup:true,option:true,select:true,textarea:true};function canBeLabelled(el){return labellable[el.localName]||false}function matchingLabels(el){let labels=Array.from(el.labels||[]);if(!labels.length){labels=[];let root=el.getRootNode();if(el.id){let matching=root.querySelectorAll(`label[for = ${el.id}]`);for(let i=0;i<matching.length;i++){labels.push(matching[i])}}}return labels}let mouseCanceller=function(mouseEvent){let sc=mouseEvent.sourceCapabilities;if(sc&&!sc.firesTouchEvents){return}mouseEvent[HANDLED_OBJ]={skip:true};if(mouseEvent.type==="click"){let clickFromLabel=false;let path=mouseEvent.composedPath&&mouseEvent.composedPath();if(path){for(let i=0;i<path.length;i++){if(path[i].nodeType===Node.ELEMENT_NODE){if(path[i].localName==="label"){clickedLabels.push(path[i])}else if(canBeLabelled(path[i])){let ownerLabels=matchingLabels(path[i]);for(let j=0;j<ownerLabels.length;j++){clickFromLabel=clickFromLabel||clickedLabels.indexOf(ownerLabels[j])>-1}}}if(path[i]===POINTERSTATE.mouse.target){return}}}if(clickFromLabel){return}mouseEvent.preventDefault();mouseEvent.stopPropagation()}};function setupTeardownMouseCanceller(setup){let events=IS_TOUCH_ONLY?["click"]:MOUSE_EVENTS;for(let i=0,en;i<events.length;i++){en=events[i];if(setup){clickedLabels.length=0;document.addEventListener(en,mouseCanceller,true)}else{document.removeEventListener(en,mouseCanceller,true)}}}function ignoreMouse(e){if(!POINTERSTATE.mouse.mouseIgnoreJob){setupTeardownMouseCanceller(true)}let unset=function(){setupTeardownMouseCanceller();POINTERSTATE.mouse.target=null;POINTERSTATE.mouse.mouseIgnoreJob=null};POINTERSTATE.mouse.target=e.composedPath()[0];POINTERSTATE.mouse.mouseIgnoreJob=Polymer.Debouncer.debounce(POINTERSTATE.mouse.mouseIgnoreJob,Polymer.Async.timeOut.after(MOUSE_TIMEOUT),unset)}function hasLeftMouseButton(ev){let type=ev.type;if(!isMouseEvent(type)){return false}if(type==="mousemove"){let buttons=ev.buttons===undefined?1:ev.buttons;if(ev instanceof window.MouseEvent&&!MOUSE_HAS_BUTTONS){buttons=MOUSE_WHICH_TO_BUTTONS[ev.which]||0}return Boolean(buttons&1)}else{let button=ev.button===undefined?0:ev.button;return button===0}}function isSyntheticClick(ev){if(ev.type==="click"){if(ev.detail===0){return true}let t=Gestures._findOriginalTarget(ev);if(!t.nodeType||t.nodeType!==Node.ELEMENT_NODE){return true}let bcr=t.getBoundingClientRect();let x=ev.pageX,y=ev.pageY;return!(x>=bcr.left&&x<=bcr.right&&(y>=bcr.top&&y<=bcr.bottom))}return false}let POINTERSTATE={mouse:{target:null,mouseIgnoreJob:null},touch:{x:0,y:0,id:-1,scrollDecided:false}};function firstTouchAction(ev){let ta="auto";let path=ev.composedPath&&ev.composedPath();if(path){for(let i=0,n;i<path.length;i++){n=path[i];if(n[TOUCH_ACTION]){ta=n[TOUCH_ACTION];break}}}return ta}function trackDocument(stateObj,movefn,upfn){stateObj.movefn=movefn;stateObj.upfn=upfn;document.addEventListener("mousemove",movefn);document.addEventListener("mouseup",upfn)}function untrackDocument(stateObj){document.removeEventListener("mousemove",stateObj.movefn);document.removeEventListener("mouseup",stateObj.upfn);stateObj.movefn=null;stateObj.upfn=null}document.addEventListener("touchend",ignoreMouse,SUPPORTS_PASSIVE?{passive:true}:false);const Gestures={gestures:{},recognizers:[],deepTargetFind:function(x,y){let node=document.elementFromPoint(x,y);let next=node;while(next&&next.shadowRoot&&!window.ShadyDOM){let oldNext=next;next=next.shadowRoot.elementFromPoint(x,y);if(oldNext===next){break}if(next){node=next}}return node},_findOriginalTarget:function(ev){if(ev.composedPath){const targets=ev.composedPath();return targets.length>0?targets[0]:ev.target}return ev.target},_handleNative:function(ev){let handled;let type=ev.type;let node=ev.currentTarget;let gobj=node[GESTURE_KEY];if(!gobj){return}let gs=gobj[type];if(!gs){return}if(!ev[HANDLED_OBJ]){ev[HANDLED_OBJ]={};if(type.slice(0,5)==="touch"){ev=ev;let t=ev.changedTouches[0];if(type==="touchstart"){if(ev.touches.length===1){POINTERSTATE.touch.id=t.identifier}}if(POINTERSTATE.touch.id!==t.identifier){return}if(!HAS_NATIVE_TA){if(type==="touchstart"||type==="touchmove"){Gestures._handleTouchAction(ev)}}}}handled=ev[HANDLED_OBJ];if(handled.skip){return}for(let i=0,r;i<Gestures.recognizers.length;i++){r=Gestures.recognizers[i];if(gs[r.name]&&!handled[r.name]){if(r.flow&&r.flow.start.indexOf(ev.type)>-1&&r.reset){r.reset()}}}for(let i=0,r;i<Gestures.recognizers.length;i++){r=Gestures.recognizers[i];if(gs[r.name]&&!handled[r.name]){handled[r.name]=true;r[type](ev)}}},_handleTouchAction:function(ev){let t=ev.changedTouches[0];let type=ev.type;if(type==="touchstart"){POINTERSTATE.touch.x=t.clientX;POINTERSTATE.touch.y=t.clientY;POINTERSTATE.touch.scrollDecided=false}else if(type==="touchmove"){if(POINTERSTATE.touch.scrollDecided){return}POINTERSTATE.touch.scrollDecided=true;let ta=firstTouchAction(ev);let prevent=false;let dx=Math.abs(POINTERSTATE.touch.x-t.clientX);let dy=Math.abs(POINTERSTATE.touch.y-t.clientY);if(!ev.cancelable){}else if(ta==="none"){prevent=true}else if(ta==="pan-x"){prevent=dy>dx}else if(ta==="pan-y"){prevent=dx>dy}if(prevent){ev.preventDefault()}else{Gestures.prevent("track")}}},addListener:function(node,evType,handler){if(this.gestures[evType]){this._add(node,evType,handler);return true}return false},removeListener:function(node,evType,handler){if(this.gestures[evType]){this._remove(node,evType,handler);return true}return false},_add:function(node,evType,handler){let recognizer=this.gestures[evType];let deps=recognizer.deps;let name=recognizer.name;let gobj=node[GESTURE_KEY];if(!gobj){node[GESTURE_KEY]=gobj={}}for(let i=0,dep,gd;i<deps.length;i++){dep=deps[i];if(IS_TOUCH_ONLY&&isMouseEvent(dep)&&dep!=="click"){continue}gd=gobj[dep];if(!gd){gobj[dep]=gd={_count:0}}if(gd._count===0){node.addEventListener(dep,this._handleNative,PASSIVE_TOUCH(dep))}gd[name]=(gd[name]||0)+1;gd._count=(gd._count||0)+1}node.addEventListener(evType,handler);if(recognizer.touchAction){this.setTouchAction(node,recognizer.touchAction)}},_remove:function(node,evType,handler){let recognizer=this.gestures[evType];let deps=recognizer.deps;let name=recognizer.name;let gobj=node[GESTURE_KEY];if(gobj){for(let i=0,dep,gd;i<deps.length;i++){dep=deps[i];gd=gobj[dep];if(gd&&gd[name]){gd[name]=(gd[name]||1)-1;gd._count=(gd._count||1)-1;if(gd._count===0){node.removeEventListener(dep,this._handleNative,PASSIVE_TOUCH(dep))}}}}node.removeEventListener(evType,handler)},register:function(recog){this.recognizers.push(recog);for(let i=0;i<recog.emits.length;i++){this.gestures[recog.emits[i]]=recog}},_findRecognizerByEvent:function(evName){for(let i=0,r;i<this.recognizers.length;i++){r=this.recognizers[i];for(let j=0,n;j<r.emits.length;j++){n=r.emits[j];if(n===evName){return r}}}return null},setTouchAction:function(node,value){if(HAS_NATIVE_TA){Polymer.Async.microTask.run(()=>{node.style.touchAction=value})}node[TOUCH_ACTION]=value},_fire:function(target,type,detail){let ev=new Event(type,{bubbles:true,cancelable:true,composed:true});ev.detail=detail;target.dispatchEvent(ev);if(ev.defaultPrevented){let preventer=detail.preventer||detail.sourceEvent;if(preventer&&preventer.preventDefault){preventer.preventDefault()}}},prevent:function(evName){let recognizer=this._findRecognizerByEvent(evName);if(recognizer.info){recognizer.info.prevent=true}},resetMouseCanceller:function(){if(POINTERSTATE.mouse.mouseIgnoreJob){POINTERSTATE.mouse.mouseIgnoreJob.flush()}}};Gestures.register({name:"downup",deps:["mousedown","touchstart","touchend"],flow:{start:["mousedown","touchstart"],end:["mouseup","touchend"]},emits:["down","up"],info:{movefn:null,upfn:null},reset:function(){untrackDocument(this.info)},mousedown:function(e){if(!hasLeftMouseButton(e)){return}let t=Gestures._findOriginalTarget(e);let self=this;let movefn=function movefn(e){if(!hasLeftMouseButton(e)){self._fire("up",t,e);untrackDocument(self.info)}};let upfn=function upfn(e){if(hasLeftMouseButton(e)){self._fire("up",t,e)}untrackDocument(self.info)};trackDocument(this.info,movefn,upfn);this._fire("down",t,e)},touchstart:function(e){this._fire("down",Gestures._findOriginalTarget(e),e.changedTouches[0],e)},touchend:function(e){this._fire("up",Gestures._findOriginalTarget(e),e.changedTouches[0],e)},_fire:function(type,target,event,preventer){Gestures._fire(target,type,{x:event.clientX,y:event.clientY,sourceEvent:event,preventer:preventer,prevent:function(e){return Gestures.prevent(e)}})}});Gestures.register({name:"track",touchAction:"none",deps:["mousedown","touchstart","touchmove","touchend"],flow:{start:["mousedown","touchstart"],end:["mouseup","touchend"]},emits:["track"],info:{x:0,y:0,state:"start",started:false,moves:[],addMove:function(move){if(this.moves.length>TRACK_LENGTH){this.moves.shift()}this.moves.push(move)},movefn:null,upfn:null,prevent:false},reset:function(){this.info.state="start";this.info.started=false;this.info.moves=[];this.info.x=0;this.info.y=0;this.info.prevent=false;untrackDocument(this.info)},hasMovedEnough:function(x,y){if(this.info.prevent){return false}if(this.info.started){return true}let dx=Math.abs(this.info.x-x);let dy=Math.abs(this.info.y-y);return dx>=TRACK_DISTANCE||dy>=TRACK_DISTANCE},mousedown:function(e){if(!hasLeftMouseButton(e)){return}let t=Gestures._findOriginalTarget(e);let self=this;let movefn=function movefn(e){let x=e.clientX,y=e.clientY;if(self.hasMovedEnough(x,y)){self.info.state=self.info.started?e.type==="mouseup"?"end":"track":"start";if(self.info.state==="start"){Gestures.prevent("tap")}self.info.addMove({x:x,y:y});if(!hasLeftMouseButton(e)){self.info.state="end";untrackDocument(self.info)}self._fire(t,e);self.info.started=true}};let upfn=function upfn(e){if(self.info.started){movefn(e)}untrackDocument(self.info)};trackDocument(this.info,movefn,upfn);this.info.x=e.clientX;this.info.y=e.clientY},touchstart:function(e){let ct=e.changedTouches[0];this.info.x=ct.clientX;this.info.y=ct.clientY},touchmove:function(e){let t=Gestures._findOriginalTarget(e);let ct=e.changedTouches[0];let x=ct.clientX,y=ct.clientY;if(this.hasMovedEnough(x,y)){if(this.info.state==="start"){Gestures.prevent("tap")}this.info.addMove({x:x,y:y});this._fire(t,ct);this.info.state="track";this.info.started=true}},touchend:function(e){let t=Gestures._findOriginalTarget(e);let ct=e.changedTouches[0];if(this.info.started){this.info.state="end";this.info.addMove({x:ct.clientX,y:ct.clientY});this._fire(t,ct,e)}},_fire:function(target,touch){let secondlast=this.info.moves[this.info.moves.length-2];let lastmove=this.info.moves[this.info.moves.length-1];let dx=lastmove.x-this.info.x;let dy=lastmove.y-this.info.y;let ddx,ddy=0;if(secondlast){ddx=lastmove.x-secondlast.x;ddy=lastmove.y-secondlast.y}Gestures._fire(target,"track",{state:this.info.state,x:touch.clientX,y:touch.clientY,dx:dx,dy:dy,ddx:ddx,ddy:ddy,sourceEvent:touch,hover:function(){return Gestures.deepTargetFind(touch.clientX,touch.clientY)}})}});Gestures.register({name:"tap",deps:["mousedown","click","touchstart","touchend"],flow:{start:["mousedown","touchstart"],end:["click","touchend"]},emits:["tap"],info:{x:NaN,y:NaN,prevent:false},reset:function(){this.info.x=NaN;this.info.y=NaN;this.info.prevent=false},save:function(e){this.info.x=e.clientX;this.info.y=e.clientY},mousedown:function(e){if(hasLeftMouseButton(e)){this.save(e)}},click:function(e){if(hasLeftMouseButton(e)){this.forward(e)}},touchstart:function(e){this.save(e.changedTouches[0],e)},touchend:function(e){this.forward(e.changedTouches[0],e)},forward:function(e,preventer){let dx=Math.abs(e.clientX-this.info.x);let dy=Math.abs(e.clientY-this.info.y);let t=Gestures._findOriginalTarget(preventer||e);if(!t||canBeDisabled[t.localName]&&t.hasAttribute("disabled")){return}if(isNaN(dx)||isNaN(dy)||dx<=TAP_DISTANCE&&dy<=TAP_DISTANCE||isSyntheticClick(e)){if(!this.info.prevent){Gestures._fire(t,"tap",{x:e.clientX,y:e.clientY,sourceEvent:e,preventer:preventer})}}}});Gestures.findOriginalTarget=Gestures._findOriginalTarget;Gestures.add=Gestures.addListener;Gestures.remove=Gestures.removeListener;Polymer.Gestures=Gestures})();(function(){"use strict";const gestures=Polymer.Gestures;Polymer.GestureEventListeners=Polymer.dedupingMixin(superClass=>{class GestureEventListeners extends superClass{_addEventListenerToNode(node,eventName,handler){if(!gestures.addListener(node,eventName,handler)){super._addEventListenerToNode(node,eventName,handler)}}_removeEventListenerFromNode(node,eventName,handler){if(!gestures.removeListener(node,eventName,handler)){super._removeEventListenerFromNode(node,eventName,handler)}}}return GestureEventListeners})})();(function(){"use strict";function whenImportsReady(cb){if(window.HTMLImports){HTMLImports.whenReady(cb)}else{cb()}}Polymer.importHref=function(href,onload,onerror,optAsync){let link=document.head.querySelector('link[href="'+href+'"][import-href]');if(!link){link=document.createElement("link");link.rel="import";link.href=href;link.setAttribute("import-href","")}if(optAsync){link.setAttribute("async","")}let cleanup=function(){link.removeEventListener("load",loadListener);link.removeEventListener("error",errorListener)};let loadListener=function(event){cleanup();link.__dynamicImportLoaded=true;if(onload){whenImportsReady(()=>{onload(event)})}};let errorListener=function(event){cleanup();if(link.parentNode){link.parentNode.removeChild(link)}if(onerror){whenImportsReady(()=>{onerror(event)})}};link.addEventListener("load",loadListener);link.addEventListener("error",errorListener);if(link.parentNode==null){document.head.appendChild(link)}else if(link.__dynamicImportLoaded){link.dispatchEvent(new Event("load"))}return link}})();(function(){"use strict";let scheduled=false;let beforeRenderQueue=[];let afterRenderQueue=[];function schedule(){scheduled=true;requestAnimationFrame(function(){scheduled=false;flushQueue(beforeRenderQueue);setTimeout(function(){runQueue(afterRenderQueue)})})}function flushQueue(queue){while(queue.length){callMethod(queue.shift())}}function runQueue(queue){for(let i=0,l=queue.length;i<l;i++){callMethod(queue.shift())}}function callMethod(info){const context=info[0];const callback=info[1];const args=info[2];try{callback.apply(context,args)}catch(e){setTimeout(()=>{throw e})}}function flush(){while(beforeRenderQueue.length||afterRenderQueue.length){flushQueue(beforeRenderQueue);flushQueue(afterRenderQueue)}scheduled=false}Polymer.RenderStatus={beforeNextRender:function(context,callback,args){if(!scheduled){schedule()}beforeRenderQueue.push([context,callback,args])},afterNextRender:function(context,callback,args){if(!scheduled){schedule()}afterRenderQueue.push([context,callback,args])},flush:flush}})();(function(){"use strict";function resolve(){document.body.removeAttribute("unresolved")}if(window.WebComponents){window.addEventListener("WebComponentsReady",resolve)}else{if(document.readyState==="interactive"||document.readyState==="complete"){resolve()}else{window.addEventListener("DOMContentLoaded",resolve)}}})();(function(){"use strict";function newSplice(index,removed,addedCount){return{index:index,removed:removed,addedCount:addedCount}}const EDIT_LEAVE=0;const EDIT_UPDATE=1;const EDIT_ADD=2;const EDIT_DELETE=3;function calcEditDistances(current,currentStart,currentEnd,old,oldStart,oldEnd){let rowCount=oldEnd-oldStart+1;let columnCount=currentEnd-currentStart+1;let distances=new Array(rowCount);for(let i=0;i<rowCount;i++){distances[i]=new Array(columnCount);distances[i][0]=i}for(let j=0;j<columnCount;j++)distances[0][j]=j;for(let i=1;i<rowCount;i++){for(let j=1;j<columnCount;j++){if(equals(current[currentStart+j-1],old[oldStart+i-1]))distances[i][j]=distances[i-1][j-1];else{let north=distances[i-1][j]+1;let west=distances[i][j-1]+1;distances[i][j]=north<west?north:west}}}return distances}function spliceOperationsFromEditDistances(distances){let i=distances.length-1;let j=distances[0].length-1;let current=distances[i][j];let edits=[];while(i>0||j>0){if(i==0){edits.push(EDIT_ADD);j--;continue}if(j==0){edits.push(EDIT_DELETE);i--;continue}let northWest=distances[i-1][j-1];let west=distances[i-1][j];let north=distances[i][j-1];let min;if(west<north)min=west<northWest?west:northWest;else min=north<northWest?north:northWest;if(min==northWest){if(northWest==current){edits.push(EDIT_LEAVE)}else{edits.push(EDIT_UPDATE);current=northWest}i--;j--}else if(min==west){edits.push(EDIT_DELETE);i--;current=west}else{edits.push(EDIT_ADD);j--;current=north}}edits.reverse();return edits}function calcSplices(current,currentStart,currentEnd,old,oldStart,oldEnd){let prefixCount=0;let suffixCount=0;let splice;let minLength=Math.min(currentEnd-currentStart,oldEnd-oldStart);if(currentStart==0&&oldStart==0)prefixCount=sharedPrefix(current,old,minLength);if(currentEnd==current.length&&oldEnd==old.length)suffixCount=sharedSuffix(current,old,minLength-prefixCount);currentStart+=prefixCount;oldStart+=prefixCount;currentEnd-=suffixCount;oldEnd-=suffixCount;if(currentEnd-currentStart==0&&oldEnd-oldStart==0)return[];if(currentStart==currentEnd){splice=newSplice(currentStart,[],0);while(oldStart<oldEnd)splice.removed.push(old[oldStart++]);return[splice]}else if(oldStart==oldEnd)return[newSplice(currentStart,[],currentEnd-currentStart)];let ops=spliceOperationsFromEditDistances(calcEditDistances(current,currentStart,currentEnd,old,oldStart,oldEnd));splice=undefined;let splices=[];let index=currentStart;let oldIndex=oldStart;for(let i=0;i<ops.length;i++){switch(ops[i]){case EDIT_LEAVE:if(splice){splices.push(splice);splice=undefined}index++;oldIndex++;break;case EDIT_UPDATE:if(!splice)splice=newSplice(index,[],0);splice.addedCount++;index++;splice.removed.push(old[oldIndex]);oldIndex++;break;case EDIT_ADD:if(!splice)splice=newSplice(index,[],0);splice.addedCount++;index++;break;case EDIT_DELETE:if(!splice)splice=newSplice(index,[],0);splice.removed.push(old[oldIndex]);oldIndex++;break}}if(splice){splices.push(splice)}return splices}function sharedPrefix(current,old,searchLength){for(let i=0;i<searchLength;i++)if(!equals(current[i],old[i]))return i;return searchLength}function sharedSuffix(current,old,searchLength){let index1=current.length;let index2=old.length;let count=0;while(count<searchLength&&equals(current[--index1],old[--index2]))count++;return count}function calculateSplices(current,previous){return calcSplices(current,0,current.length,previous,0,previous.length)}function equals(currentValue,previousValue){return currentValue===previousValue}Polymer.ArraySplice={calculateSplices:calculateSplices}})();(function(){"use strict";function isSlot(node){return node.localName==="slot"}class FlattenedNodesObserver{static getFlattenedNodes(node){if(isSlot(node)){node=node;return node.assignedNodes({flatten:true})}else{return Array.from(node.childNodes).map(node=>{if(isSlot(node)){node=node;return node.assignedNodes({flatten:true})}else{return[node]}}).reduce((a,b)=>a.concat(b),[])}}constructor(target,callback){this._shadyChildrenObserver=null;this._nativeChildrenObserver=null;this._connected=false;this._target=target;this.callback=callback;this._effectiveNodes=[];this._observer=null;this._scheduled=false;this._boundSchedule=(()=>{this._schedule()});this.connect();this._schedule()}connect(){if(isSlot(this._target)){this._listenSlots([this._target])}else if(this._target.children){this._listenSlots(this._target.children);if(window.ShadyDOM){this._shadyChildrenObserver=ShadyDOM.observeChildren(this._target,mutations=>{this._processMutations(mutations)})}else{this._nativeChildrenObserver=new MutationObserver(mutations=>{this._processMutations(mutations)});this._nativeChildrenObserver.observe(this._target,{childList:true})}}this._connected=true}disconnect(){if(isSlot(this._target)){this._unlistenSlots([this._target])}else if(this._target.children){this._unlistenSlots(this._target.children);if(window.ShadyDOM&&this._shadyChildrenObserver){ShadyDOM.unobserveChildren(this._shadyChildrenObserver);this._shadyChildrenObserver=null}else if(this._nativeChildrenObserver){this._nativeChildrenObserver.disconnect();this._nativeChildrenObserver=null}}this._connected=false}_schedule(){if(!this._scheduled){this._scheduled=true;Polymer.Async.microTask.run(()=>this.flush())}}_processMutations(mutations){this._processSlotMutations(mutations);this.flush()}_processSlotMutations(mutations){if(mutations){for(let i=0;i<mutations.length;i++){let mutation=mutations[i];if(mutation.addedNodes){this._listenSlots(mutation.addedNodes)}if(mutation.removedNodes){this._unlistenSlots(mutation.removedNodes)}}}}flush(){if(!this._connected){return false}if(window.ShadyDOM){ShadyDOM.flush()}if(this._nativeChildrenObserver){this._processSlotMutations(this._nativeChildrenObserver.takeRecords())}else if(this._shadyChildrenObserver){this._processSlotMutations(this._shadyChildrenObserver.takeRecords())}this._scheduled=false;let info={target:this._target,addedNodes:[],removedNodes:[]};let newNodes=this.constructor.getFlattenedNodes(this._target);let splices=Polymer.ArraySplice.calculateSplices(newNodes,this._effectiveNodes);for(let i=0,s;i<splices.length&&(s=splices[i]);i++){for(let j=0,n;j<s.removed.length&&(n=s.removed[j]);j++){info.removedNodes.push(n)}}for(let i=0,s;i<splices.length&&(s=splices[i]);i++){for(let j=s.index;j<s.index+s.addedCount;j++){info.addedNodes.push(newNodes[j])}}this._effectiveNodes=newNodes;let didFlush=false;if(info.addedNodes.length||info.removedNodes.length){didFlush=true;this.callback.call(this._target,info)}return didFlush}_listenSlots(nodeList){for(let i=0;i<nodeList.length;i++){let n=nodeList[i];if(isSlot(n)){n.addEventListener("slotchange",this._boundSchedule)}}}_unlistenSlots(nodeList){for(let i=0;i<nodeList.length;i++){let n=nodeList[i];if(isSlot(n)){n.removeEventListener("slotchange",this._boundSchedule)}}}}Polymer.FlattenedNodesObserver=FlattenedNodesObserver})();(function(){"use strict";let debouncerQueue=[];Polymer.enqueueDebouncer=function(debouncer){debouncerQueue.push(debouncer)};function flushDebouncers(){const didFlush=Boolean(debouncerQueue.length);while(debouncerQueue.length){try{debouncerQueue.shift().flush()}catch(e){setTimeout(()=>{throw e})}}return didFlush}Polymer.flush=function(){let shadyDOM,debouncers;do{shadyDOM=window.ShadyDOM&&ShadyDOM.flush();if(window.ShadyCSS&&window.ShadyCSS.ScopingShim){window.ShadyCSS.ScopingShim.flush()}debouncers=flushDebouncers()}while(shadyDOM||debouncers)}})();(function(){"use strict";const p=Element.prototype;const normalizedMatchesSelector=p.matches||p.matchesSelector||p.mozMatchesSelector||p.msMatchesSelector||p.oMatchesSelector||p.webkitMatchesSelector;const matchesSelector=function(node,selector){return normalizedMatchesSelector.call(node,selector)};class DomApi{constructor(node){this.node=node}observeNodes(callback){return new Polymer.FlattenedNodesObserver(this.node,callback)}unobserveNodes(observerHandle){observerHandle.disconnect()}notifyObserver(){}deepContains(node){if(this.node.contains(node)){return true}let n=node;let doc=node.ownerDocument;while(n&&n!==doc&&n!==this.node){n=n.parentNode||n.host}return n===this.node}getOwnerRoot(){return this.node.getRootNode()}getDistributedNodes(){return this.node.localName==="slot"?this.node.assignedNodes({flatten:true}):[]}getDestinationInsertionPoints(){let ip$=[];let n=this.node.assignedSlot;while(n){ip$.push(n);n=n.assignedSlot}return ip$}importNode(node,deep){let doc=this.node instanceof Document?this.node:this.node.ownerDocument;return doc.importNode(node,deep)}getEffectiveChildNodes(){return Polymer.FlattenedNodesObserver.getFlattenedNodes(this.node)}queryDistributedElements(selector){let c$=this.getEffectiveChildNodes();let list=[];for(let i=0,l=c$.length,c;i<l&&(c=c$[i]);i++){if(c.nodeType===Node.ELEMENT_NODE&&matchesSelector(c,selector)){list.push(c)}}return list}get activeElement(){let node=this.node;return node._activeElement!==undefined?node._activeElement:node.activeElement}}function forwardMethods(proto,methods){for(let i=0;i<methods.length;i++){let method=methods[i];proto[method]=function(){return this.node[method].apply(this.node,arguments)}}}function forwardReadOnlyProperties(proto,properties){for(let i=0;i<properties.length;i++){let name=properties[i];Object.defineProperty(proto,name,{get:function(){const domApi=this;return domApi.node[name]},configurable:true})}}function forwardProperties(proto,properties){for(let i=0;i<properties.length;i++){let name=properties[i];Object.defineProperty(proto,name,{get:function(){const domApi=this;return domApi.node[name]},set:function(value){this.node[name]=value},configurable:true})}}forwardMethods(DomApi.prototype,["cloneNode","appendChild","insertBefore","removeChild","replaceChild","setAttribute","removeAttribute","querySelector","querySelectorAll"]);forwardReadOnlyProperties(DomApi.prototype,["parentNode","firstChild","lastChild","nextSibling","previousSibling","firstElementChild","lastElementChild","nextElementSibling","previousElementSibling","childNodes","children","classList"]);forwardProperties(DomApi.prototype,["textContent","innerHTML"]);class EventApi{constructor(event){this.event=event}get rootTarget(){return this.event.composedPath()[0]}get localTarget(){return this.event.target}get path(){return this.event.composedPath()}}Polymer.DomApi=DomApi;Polymer.DomApi.prototype.cloneNode;Polymer.DomApi.prototype.appendChild;Polymer.DomApi.prototype.insertBefore;Polymer.DomApi.prototype.removeChild;Polymer.DomApi.prototype.replaceChild;Polymer.DomApi.prototype.setAttribute;Polymer.DomApi.prototype.removeAttribute;Polymer.DomApi.prototype.querySelector;Polymer.DomApi.prototype.querySelectorAll;Polymer.dom=function(obj){obj=obj||document;if(!obj.__domApi){let helper;if(obj instanceof Event){helper=new EventApi(obj)}else{helper=new DomApi(obj)}obj.__domApi=helper}return obj.__domApi};Polymer.dom.matchesSelector=matchesSelector;Polymer.dom.flush=Polymer.flush;Polymer.dom.addDebouncer=Polymer.enqueueDebouncer})();(function(){"use strict";let styleInterface=window.ShadyCSS;Polymer.LegacyElementMixin=Polymer.dedupingMixin(base=>{const legacyElementBase=Polymer.GestureEventListeners(Polymer.ElementMixin(base));const DIRECTION_MAP={x:"pan-x",y:"pan-y",none:"none",all:"auto"};class LegacyElement extends legacyElementBase{constructor(){super();this.isAttached;this.__boundListeners;this._debouncers}static get importMeta(){return this.prototype.importMeta}created(){}connectedCallback(){super.connectedCallback();this.isAttached=true;this.attached()}attached(){}disconnectedCallback(){super.disconnectedCallback();this.isAttached=false;this.detached()}detached(){}attributeChangedCallback(name,old,value,namespace){if(old!==value){super.attributeChangedCallback(name,old,value,namespace);this.attributeChanged(name,old,value)}}attributeChanged(name,old,value){}_initializeProperties(){let proto=Object.getPrototypeOf(this);if(!proto.hasOwnProperty("__hasRegisterFinished")){this._registered();proto.__hasRegisterFinished=true}super._initializeProperties();this.root=this;this.created();this._applyListeners()}_registered(){}ready(){this._ensureAttributes();super.ready()}_ensureAttributes(){}_applyListeners(){}serialize(value){return this._serializeValue(value)}deserialize(value,type){return this._deserializeValue(value,type)}reflectPropertyToAttribute(property,attribute,value){this._propertyToAttribute(property,attribute,value)}serializeValueToAttribute(value,attribute,node){this._valueToNodeAttribute(node||this,value,attribute)}extend(prototype,api){if(!(prototype&&api)){return prototype||api}let n$=Object.getOwnPropertyNames(api);for(let i=0,n;i<n$.length&&(n=n$[i]);i++){let pd=Object.getOwnPropertyDescriptor(api,n);if(pd){Object.defineProperty(prototype,n,pd)}}return prototype}mixin(target,source){for(let i in source){target[i]=source[i]}return target}chainObject(object,prototype){if(object&&prototype&&object!==prototype){object.__proto__=prototype}return object}instanceTemplate(template){let content=this.constructor._contentForTemplate(template);let dom=document.importNode(content,true);return dom}fire(type,detail,options){options=options||{};detail=detail===null||detail===undefined?{}:detail;let event=new Event(type,{bubbles:options.bubbles===undefined?true:options.bubbles,cancelable:Boolean(options.cancelable),composed:options.composed===undefined?true:options.composed});event.detail=detail;let node=options.node||this;node.dispatchEvent(event);return event}listen(node,eventName,methodName){node=node||this;let hbl=this.__boundListeners||(this.__boundListeners=new WeakMap);let bl=hbl.get(node);if(!bl){bl={};hbl.set(node,bl)}let key=eventName+methodName;if(!bl[key]){bl[key]=this._addMethodEventListenerToNode(node,eventName,methodName,this)}}unlisten(node,eventName,methodName){node=node||this;let bl=this.__boundListeners&&this.__boundListeners.get(node);let key=eventName+methodName;let handler=bl&&bl[key];if(handler){this._removeEventListenerFromNode(node,eventName,handler);bl[key]=null}}setScrollDirection(direction,node){Polymer.Gestures.setTouchAction(node||this,DIRECTION_MAP[direction]||"auto")}$$(slctr){return this.root.querySelector(slctr)}get domHost(){let root=this.getRootNode();return root instanceof DocumentFragment?root.host:root}distributeContent(){if(window.ShadyDOM&&this.shadowRoot){ShadyDOM.flush()}}getEffectiveChildNodes(){const thisEl=this;const domApi=Polymer.dom(thisEl);return domApi.getEffectiveChildNodes()}queryDistributedElements(selector){const thisEl=this;const domApi=Polymer.dom(thisEl);return domApi.queryDistributedElements(selector)}getEffectiveChildren(){let list=this.getEffectiveChildNodes();return list.filter(function(n){return n.nodeType===Node.ELEMENT_NODE})}getEffectiveTextContent(){let cn=this.getEffectiveChildNodes();let tc=[];for(let i=0,c;c=cn[i];i++){if(c.nodeType!==Node.COMMENT_NODE){tc.push(c.textContent)}}return tc.join("")}queryEffectiveChildren(selector){let e$=this.queryDistributedElements(selector);return e$&&e$[0]}queryAllEffectiveChildren(selector){return this.queryDistributedElements(selector)}getContentChildNodes(slctr){let content=this.root.querySelector(slctr||"slot");return content?Polymer.dom(content).getDistributedNodes():[]}getContentChildren(slctr){let children=this.getContentChildNodes(slctr).filter(function(n){return n.nodeType===Node.ELEMENT_NODE});return children}isLightDescendant(node){const thisNode=this;return thisNode!==node&&thisNode.contains(node)&&thisNode.getRootNode()===node.getRootNode()}isLocalDescendant(node){return this.root===node.getRootNode()}scopeSubtree(container,shouldObserve){}getComputedStyleValue(property){return styleInterface.getComputedStyleValue(this,property)}debounce(jobName,callback,wait){this._debouncers=this._debouncers||{};return this._debouncers[jobName]=Polymer.Debouncer.debounce(this._debouncers[jobName],wait>0?Polymer.Async.timeOut.after(wait):Polymer.Async.microTask,callback.bind(this))}isDebouncerActive(jobName){this._debouncers=this._debouncers||{};let debouncer=this._debouncers[jobName];return!!(debouncer&&debouncer.isActive())}flushDebouncer(jobName){this._debouncers=this._debouncers||{};let debouncer=this._debouncers[jobName];if(debouncer){debouncer.flush()}}cancelDebouncer(jobName){this._debouncers=this._debouncers||{};let debouncer=this._debouncers[jobName];if(debouncer){debouncer.cancel()}}async(callback,waitTime){return waitTime>0?Polymer.Async.timeOut.run(callback.bind(this),waitTime):~Polymer.Async.microTask.run(callback.bind(this))}cancelAsync(handle){handle<0?Polymer.Async.microTask.cancel(~handle):Polymer.Async.timeOut.cancel(handle)}create(tag,props){let elt=document.createElement(tag);if(props){if(elt.setProperties){elt.setProperties(props)}else{for(let n in props){elt[n]=props[n]}}}return elt}importHref(href,onload,onerror,optAsync){let loadFn=onload?onload.bind(this):null;let errorFn=onerror?onerror.bind(this):null;return Polymer.importHref(href,loadFn,errorFn,optAsync)}elementMatches(selector,node){return Polymer.dom.matchesSelector(node||this,selector)}toggleAttribute(name,bool,node){node=node||this;if(arguments.length==1){bool=!node.hasAttribute(name)}if(bool){node.setAttribute(name,"")}else{node.removeAttribute(name)}}toggleClass(name,bool,node){node=node||this;if(arguments.length==1){bool=!node.classList.contains(name)}if(bool){node.classList.add(name)}else{node.classList.remove(name)}}transform(transformText,node){node=node||this;node.style.webkitTransform=transformText;node.style.transform=transformText}translate3d(x,y,z,node){node=node||this;this.transform("translate3d("+x+","+y+","+z+")",node)}arrayDelete(arrayOrPath,item){let index;if(Array.isArray(arrayOrPath)){index=arrayOrPath.indexOf(item);if(index>=0){return arrayOrPath.splice(index,1)}}else{let arr=Polymer.Path.get(this,arrayOrPath);index=arr.indexOf(item);if(index>=0){return this.splice(arrayOrPath,index,1)}}return null}_logger(level,args){if(Array.isArray(args)&&args.length===1&&Array.isArray(args[0])){args=args[0]}switch(level){case"log":case"warn":case"error":console[level](...args)}}_log(...args){this._logger("log",args)}_warn(...args){this._logger("warn",args)}_error(...args){this._logger("error",args)}_logf(methodName,...args){return["[%s::%s]",this.is,methodName,...args]}}LegacyElement.prototype.is="";return LegacyElement})})();(function(){"use strict";const lifecycleProps={attached:true,detached:true,ready:true,created:true,beforeRegister:true,registered:true,attributeChanged:true,listeners:true,hostAttributes:true};const excludeOnInfo={attached:true,detached:true,ready:true,created:true,beforeRegister:true,registered:true,attributeChanged:true,behaviors:true,_noAccessors:true};const excludeOnBehaviors=Object.assign({listeners:true,hostAttributes:true,properties:true,observers:true},excludeOnInfo);function copyProperties(source,target,excludeProps){const noAccessors=source._noAccessors;for(let p in source){if(!(p in excludeProps)){if(noAccessors){target[p]=source[p]}else{let pd=Object.getOwnPropertyDescriptor(source,p);if(pd){pd.configurable=true;Object.defineProperty(target,p,pd)}}}}}function mixinBehaviors(behaviors,klass){return GenerateClassFromInfo({},Polymer.LegacyElementMixin(klass),behaviors)}function applyBehaviors(proto,behaviors,lifecycle){for(let i=0;i<behaviors.length;i++){applyInfo(proto,behaviors[i],lifecycle,excludeOnBehaviors)}}function applyInfo(proto,info,lifecycle,excludeProps){copyProperties(info,proto,excludeProps);for(let p in lifecycleProps){if(info[p]){lifecycle[p]=lifecycle[p]||[];lifecycle[p].push(info[p])}}}function flattenBehaviors(behaviors,list,exclude){list=list||[];for(let i=behaviors.length-1;i>=0;i--){let b=behaviors[i];if(b){if(Array.isArray(b)){flattenBehaviors(b,list)}else{if(list.indexOf(b)<0&&(!exclude||exclude.indexOf(b)<0)){list.unshift(b)}}}else{console.warn("behavior is null, check for missing or 404 import")}}return list}function GenerateClassFromInfo(info,Base,behaviors){let behaviorList;const lifecycle={};class PolymerGenerated extends Base{static _finalizeClass(){if(!this.hasOwnProperty(window.JSCompiler_renameProperty("generatedFrom",this))){super._finalizeClass()}else{if(behaviorList){for(let i=0,b;i<behaviorList.length;i++){b=behaviorList[i];if(b.properties){this.createProperties(b.properties)}if(b.observers){this.createObservers(b.observers,b.properties)}}}if(info.properties){this.createProperties(info.properties)}if(info.observers){this.createObservers(info.observers,info.properties)}this._prepareTemplate()}}static get properties(){const properties={};if(behaviorList){for(let i=0;i<behaviorList.length;i++){Object.assign(properties,behaviorList[i].properties)}}Object.assign(properties,info.properties);return properties}static get observers(){let observers=[];if(behaviorList){for(let i=0,b;i<behaviorList.length;i++){b=behaviorList[i];if(b.observers){observers=observers.concat(b.observers)}}}if(info.observers){observers=observers.concat(info.observers)}return observers}created(){super.created();const list=lifecycle.created;if(list){for(let i=0;i<list.length;i++){list[i].call(this)}}}_registered(){const generatedProto=PolymerGenerated.prototype;if(!generatedProto.hasOwnProperty("__hasRegisterFinished")){generatedProto.__hasRegisterFinished=true;super._registered();if(Polymer.legacyOptimizations){copyPropertiesToProto(generatedProto)}const proto=Object.getPrototypeOf(this);let list=lifecycle.beforeRegister;if(list){for(let i=0;i<list.length;i++){list[i].call(proto)}}list=lifecycle.registered;if(list){for(let i=0;i<list.length;i++){list[i].call(proto)}}}}_applyListeners(){super._applyListeners();const list=lifecycle.listeners;if(list){for(let i=0;i<list.length;i++){const listeners=list[i];if(listeners){for(let l in listeners){this._addMethodEventListenerToNode(this,l,listeners[l])}}}}}_ensureAttributes(){const list=lifecycle.hostAttributes;if(list){for(let i=list.length-1;i>=0;i--){const hostAttributes=list[i];for(let a in hostAttributes){this._ensureAttribute(a,hostAttributes[a])}}}super._ensureAttributes()}ready(){super.ready();let list=lifecycle.ready;if(list){for(let i=0;i<list.length;i++){list[i].call(this)}}}attached(){super.attached();let list=lifecycle.attached;if(list){for(let i=0;i<list.length;i++){list[i].call(this)}}}detached(){super.detached();let list=lifecycle.detached;if(list){for(let i=0;i<list.length;i++){list[i].call(this)}}}attributeChanged(name,old,value){super.attributeChanged();let list=lifecycle.attributeChanged;if(list){for(let i=0;i<list.length;i++){list[i].call(this,name,old,value)}}}}if(behaviors){if(!Array.isArray(behaviors)){behaviors=[behaviors]}let superBehaviors=Base.prototype.behaviors;behaviorList=flattenBehaviors(behaviors,null,superBehaviors);PolymerGenerated.prototype.behaviors=superBehaviors?superBehaviors.concat(behaviors):behaviorList}const copyPropertiesToProto=proto=>{if(behaviorList){applyBehaviors(proto,behaviorList,lifecycle)}applyInfo(proto,info,lifecycle,excludeOnInfo)};if(!Polymer.legacyOptimizations){copyPropertiesToProto(PolymerGenerated.prototype)}PolymerGenerated.generatedFrom=info;return PolymerGenerated}Polymer.Class=function(info,mixin){if(!info){console.warn("Polymer.Class requires `info` argument")}let klass=mixin?mixin(Polymer.LegacyElementMixin(HTMLElement)):Polymer.LegacyElementMixin(HTMLElement);klass=GenerateClassFromInfo(info,klass,info.behaviors);if(info._enableDisableUpgrade){klass=Polymer.DisableUpgradeMixin(klass)}klass.is=klass.prototype.is=info.is;return klass};Polymer.mixinBehaviors=mixinBehaviors})();(function(){"use strict";window.Polymer._polymerFn=function(info){let klass;if(typeof info==="function"){klass=info}else{klass=Polymer.Class(info)}customElements.define(klass.is,klass);return klass}})();(function(){"use strict";function mutablePropertyChange(inst,property,value,old,mutableData){let isObject;if(mutableData){isObject=typeof value==="object"&&value!==null;if(isObject){old=inst.__dataTemp[property]}}let shouldChange=old!==value&&(old===old||value===value);if(isObject&&shouldChange){inst.__dataTemp[property]=value}return shouldChange}Polymer.MutableData=Polymer.dedupingMixin(superClass=>{class MutableData extends superClass{_shouldPropertyChange(property,value,old){return mutablePropertyChange(this,property,value,old,true)}}return MutableData});Polymer.OptionalMutableData=Polymer.dedupingMixin(superClass=>{class OptionalMutableData extends superClass{static get properties(){return{mutableData:Boolean}}_shouldPropertyChange(property,value,old){return mutablePropertyChange(this,property,value,old,this.mutableData)}}return OptionalMutableData});Polymer.MutableData._mutablePropertyChange=mutablePropertyChange})();(function(){"use strict";let newInstance=null;function HTMLTemplateElementExtension(){return newInstance}HTMLTemplateElementExtension.prototype=Object.create(HTMLTemplateElement.prototype,{constructor:{value:HTMLTemplateElementExtension,writable:true}});const DataTemplate=Polymer.PropertyEffects(HTMLTemplateElementExtension);const MutableDataTemplate=Polymer.MutableData(DataTemplate);function upgradeTemplate(template,constructor){newInstance=template;Object.setPrototypeOf(template,constructor.prototype);new constructor;newInstance=null}const base=Polymer.PropertyEffects(class{});class TemplateInstanceBase extends base{constructor(props){super();this._configureProperties(props);this.root=this._stampTemplate(this.__dataHost);let children=this.children=[];for(let n=this.root.firstChild;n;n=n.nextSibling){children.push(n);n.__templatizeInstance=this}if(this.__templatizeOwner&&this.__templatizeOwner.__hideTemplateChildren__){this._showHideChildren(true)}let options=this.__templatizeOptions;if(props&&options.instanceProps||!options.instanceProps){this._enableProperties()}}_configureProperties(props){let options=this.__templatizeOptions;if(options.forwardHostProp){for(let hprop in this.__hostProps){this._setPendingProperty(hprop,this.__dataHost["_host_"+hprop])}}for(let iprop in props){this._setPendingProperty(iprop,props[iprop])}}forwardHostProp(prop,value){if(this._setPendingPropertyOrPath(prop,value,false,true)){this.__dataHost._enqueueClient(this)}}_addEventListenerToNode(node,eventName,handler){if(this._methodHost&&this.__templatizeOptions.parentModel){this._methodHost._addEventListenerToNode(node,eventName,e=>{e.model=this;handler(e)})}else{let templateHost=this.__dataHost.__dataHost;if(templateHost){templateHost._addEventListenerToNode(node,eventName,handler)}}}_showHideChildren(hide){let c=this.children;for(let i=0;i<c.length;i++){let n=c[i];if(Boolean(hide)!=Boolean(n.__hideTemplateChildren__)){if(n.nodeType===Node.TEXT_NODE){if(hide){n.__polymerTextContent__=n.textContent;n.textContent=""}else{n.textContent=n.__polymerTextContent__}}else if(n.localName==="slot"){if(hide){n.__polymerReplaced__=document.createComment("hidden-slot");n.parentNode.replaceChild(n.__polymerReplaced__,n)}else{const replace=n.__polymerReplaced__;if(replace){replace.parentNode.replaceChild(n,replace)}}}else if(n.style){if(hide){n.__polymerDisplay__=n.style.display;n.style.display="none"}else{n.style.display=n.__polymerDisplay__}}}n.__hideTemplateChildren__=hide;if(n._showHideChildren){n._showHideChildren(hide)}}}_setUnmanagedPropertyToNode(node,prop,value){if(node.__hideTemplateChildren__&&node.nodeType==Node.TEXT_NODE&&prop=="textContent"){node.__polymerTextContent__=value}else{super._setUnmanagedPropertyToNode(node,prop,value)}}get parentModel(){let model=this.__parentModel;if(!model){let options;model=this;do{model=model.__dataHost.__dataHost}while((options=model.__templatizeOptions)&&!options.parentModel);this.__parentModel=model}return model}dispatchEvent(event){return true}}TemplateInstanceBase.prototype.__dataHost;TemplateInstanceBase.prototype.__templatizeOptions;TemplateInstanceBase.prototype._methodHost;TemplateInstanceBase.prototype.__templatizeOwner;TemplateInstanceBase.prototype.__hostProps;const MutableTemplateInstanceBase=Polymer.MutableData(TemplateInstanceBase);function findMethodHost(template){let templateHost=template.__dataHost;return templateHost&&templateHost._methodHost||templateHost}function createTemplatizerClass(template,templateInfo,options){let base=options.mutableData?MutableTemplateInstanceBase:TemplateInstanceBase;if(Polymer.Templatize.mixin){base=Polymer.Templatize.mixin(base)}let klass=class extends base{};klass.prototype.__templatizeOptions=options;klass.prototype._bindTemplate(template);addNotifyEffects(klass,template,templateInfo,options);return klass}function addPropagateEffects(template,templateInfo,options){let userForwardHostProp=options.forwardHostProp;if(userForwardHostProp){let klass=templateInfo.templatizeTemplateClass;if(!klass){let base=options.mutableData?MutableDataTemplate:DataTemplate;klass=templateInfo.templatizeTemplateClass=class TemplatizedTemplate extends base{};let hostProps=templateInfo.hostProps;for(let prop in hostProps){klass.prototype._addPropertyEffect("_host_"+prop,klass.prototype.PROPERTY_EFFECT_TYPES.PROPAGATE,{fn:createForwardHostPropEffect(prop,userForwardHostProp)});klass.prototype._createNotifyingProperty("_host_"+prop)}}upgradeTemplate(template,klass);if(template.__dataProto){Object.assign(template.__data,template.__dataProto)}template.__dataTemp={};template.__dataPending=null;template.__dataOld=null;template._enableProperties()}}function createForwardHostPropEffect(hostProp,userForwardHostProp){return function forwardHostProp(template,prop,props){userForwardHostProp.call(template.__templatizeOwner,prop.substring("_host_".length),props[prop])}}function addNotifyEffects(klass,template,templateInfo,options){let hostProps=templateInfo.hostProps||{};for(let iprop in options.instanceProps){delete hostProps[iprop];let userNotifyInstanceProp=options.notifyInstanceProp;if(userNotifyInstanceProp){klass.prototype._addPropertyEffect(iprop,klass.prototype.PROPERTY_EFFECT_TYPES.NOTIFY,{fn:createNotifyInstancePropEffect(iprop,userNotifyInstanceProp)})}}if(options.forwardHostProp&&template.__dataHost){for(let hprop in hostProps){klass.prototype._addPropertyEffect(hprop,klass.prototype.PROPERTY_EFFECT_TYPES.NOTIFY,{fn:createNotifyHostPropEffect()})}}}function createNotifyInstancePropEffect(instProp,userNotifyInstanceProp){return function notifyInstanceProp(inst,prop,props){userNotifyInstanceProp.call(inst.__templatizeOwner,inst,prop,props[prop])}}function createNotifyHostPropEffect(){return function notifyHostProp(inst,prop,props){inst.__dataHost._setPendingPropertyOrPath("_host_"+prop,props[prop],true,true)}}Polymer.Templatize={templatize(template,owner,options){if(Polymer.strictTemplatePolicy&&!findMethodHost(template)){throw new Error("strictTemplatePolicy: template owner not trusted")}options=options||{};if(template.__templatizeOwner){throw new Error("A <template> can only be templatized once")}template.__templatizeOwner=owner;const ctor=owner?owner.constructor:TemplateInstanceBase;let templateInfo=ctor._parseTemplate(template);let baseClass=templateInfo.templatizeInstanceClass;if(!baseClass){baseClass=createTemplatizerClass(template,templateInfo,options);templateInfo.templatizeInstanceClass=baseClass}addPropagateEffects(template,templateInfo,options);let klass=class TemplateInstance extends baseClass{};klass.prototype._methodHost=findMethodHost(template);klass.prototype.__dataHost=template;klass.prototype.__templatizeOwner=owner;klass.prototype.__hostProps=templateInfo.hostProps;klass=klass;return klass},modelForElement(template,node){let model;while(node){if(model=node.__templatizeInstance){if(model.__dataHost!=template){node=model.__dataHost}else{return model}}else{node=node.parentNode}}return null}};Polymer.TemplateInstanceBase=TemplateInstanceBase})();(function(){"use strict";let TemplateInstanceBase=Polymer.TemplateInstanceBase;let TemplatizerUser;Polymer.Templatizer={templatize(template,mutableData){this._templatizerTemplate=template;this.ctor=Polymer.Templatize.templatize(template,this,{mutableData:Boolean(mutableData),parentModel:this._parentModel,instanceProps:this._instanceProps,forwardHostProp:this._forwardHostPropV2,notifyInstanceProp:this._notifyInstancePropV2})},stamp(model){return new this.ctor(model)},modelForElement(el){return Polymer.Templatize.modelForElement(this._templatizerTemplate,el)}}})();(function(){"use strict";const domBindBase=Polymer.GestureEventListeners(Polymer.OptionalMutableData(Polymer.PropertyEffects(HTMLElement)));class DomBind extends domBindBase{static get observedAttributes(){return["mutable-data"]}constructor(){super();if(Polymer.strictTemplatePolicy){throw new Error(`strictTemplatePolicy: dom-bind not allowed`)}this.root=null;this.$=null;this.__children=null}attributeChangedCallback(){this.mutableData=true}connectedCallback(){this.style.display="none";this.render()}disconnectedCallback(){this.__removeChildren()}__insertChildren(){this.parentNode.insertBefore(this.root,this)}__removeChildren(){if(this.__children){for(let i=0;i<this.__children.length;i++){this.root.appendChild(this.__children[i])}}}render(){let template;if(!this.__children){template=template||this.querySelector("template");if(!template){let observer=new MutationObserver(()=>{template=this.querySelector("template");if(template){observer.disconnect();this.render()}else{throw new Error("dom-bind requires a <template> child")}});observer.observe(this,{childList:true});return}this.root=this._stampTemplate(template);this.$=this.root.$;this.__children=[];for(let n=this.root.firstChild;n;n=n.nextSibling){this.__children[this.__children.length]=n}this._enableProperties()}this.__insertChildren();this.dispatchEvent(new CustomEvent("dom-change",{bubbles:true,composed:true}))}}customElements.define("dom-bind",DomBind);Polymer.DomBind=DomBind})();(function(){"use strict";class LiteralString{constructor(string){this.value=string.toString()}toString(){return this.value}}function literalValue(value){if(value instanceof LiteralString){return value.value}else{throw new Error(`non-literal value passed to Polymer.htmlLiteral: ${value}`)}}function htmlValue(value){if(value instanceof HTMLTemplateElement){return value.innerHTML}else if(value instanceof LiteralString){return literalValue(value)}else{throw new Error(`non-template value passed to Polymer.html: ${value}`)}}Polymer.html=function html(strings,...values){const template=document.createElement("template");template.innerHTML=values.reduce((acc,v,idx)=>acc+htmlValue(v)+strings[idx+1],strings[0]);return template};Polymer.htmlLiteral=function(strings,...values){return new LiteralString(values.reduce((acc,v,idx)=>acc+literalValue(v)+strings[idx+1],strings[0]))}})();(function(){"use strict";Polymer.Element=Polymer.ElementMixin(HTMLElement);Polymer.html=Polymer.html})();(function(){"use strict";let TemplateInstanceBase=Polymer.TemplateInstanceBase;const domRepeatBase=Polymer.OptionalMutableData(Polymer.Element);class DomRepeat extends domRepeatBase{static get is(){return"dom-repeat"}static get template(){return null}static get properties(){return{items:{type:Array},as:{type:String,value:"item"},indexAs:{type:String,value:"index"},itemsIndexAs:{type:String,value:"itemsIndex"},sort:{type:Function,observer:"__sortChanged"},filter:{type:Function,observer:"__filterChanged"},observe:{type:String,observer:"__observeChanged"},delay:Number,renderedItemCount:{type:Number,notify:true,readOnly:true},initialCount:{type:Number,observer:"__initializeChunking"},targetFramerate:{type:Number,value:20},_targetFrameTime:{type:Number,computed:"__computeFrameTime(targetFramerate)"}}}static get observers(){return["__itemsChanged(items.*)"]}constructor(){super();this.__instances=[];this.__limit=Infinity;this.__pool=[];this.__renderDebouncer=null;this.__itemsIdxToInstIdx={};this.__chunkCount=null;this.__lastChunkTime=null;this.__sortFn=null;this.__filterFn=null;this.__observePaths=null;this.__ctor=null;this.__isDetached=true;this.template=null}disconnectedCallback(){super.disconnectedCallback();this.__isDetached=true;for(let i=0;i<this.__instances.length;i++){this.__detachInstance(i)}}connectedCallback(){super.connectedCallback();this.style.display="none";if(this.__isDetached){this.__isDetached=false;let parent=this.parentNode;for(let i=0;i<this.__instances.length;i++){this.__attachInstance(i,parent)}}}__ensureTemplatized(){if(!this.__ctor){let template=this.template=this.querySelector("template");if(!template){let observer=new MutationObserver(()=>{if(this.querySelector("template")){observer.disconnect();this.__render()}else{throw new Error("dom-repeat requires a <template> child")}});observer.observe(this,{childList:true});return false}let instanceProps={};instanceProps[this.as]=true;instanceProps[this.indexAs]=true;instanceProps[this.itemsIndexAs]=true;this.__ctor=Polymer.Templatize.templatize(template,this,{mutableData:this.mutableData,parentModel:true,instanceProps:instanceProps,forwardHostProp:function(prop,value){let i$=this.__instances;for(let i=0,inst;i<i$.length&&(inst=i$[i]);i++){inst.forwardHostProp(prop,value)}},notifyInstanceProp:function(inst,prop,value){if(Polymer.Path.matches(this.as,prop)){let idx=inst[this.itemsIndexAs];if(prop==this.as){this.items[idx]=value}let path=Polymer.Path.translate(this.as,"items."+idx,prop);this.notifyPath(path,value)}}})}return true}__getMethodHost(){return this.__dataHost._methodHost||this.__dataHost}__functionFromPropertyValue(functionOrMethodName){if(typeof functionOrMethodName==="string"){let methodName=functionOrMethodName;let obj=this.__getMethodHost();return function(){return obj[methodName].apply(obj,arguments)}}return functionOrMethodName}__sortChanged(sort){this.__sortFn=this.__functionFromPropertyValue(sort);if(this.items){this.__debounceRender(this.__render)}}__filterChanged(filter){this.__filterFn=this.__functionFromPropertyValue(filter);if(this.items){this.__debounceRender(this.__render)}}__computeFrameTime(rate){return Math.ceil(1e3/rate)}__initializeChunking(){if(this.initialCount){this.__limit=this.initialCount;this.__chunkCount=this.initialCount;this.__lastChunkTime=performance.now()}}__tryRenderChunk(){if(this.items&&this.__limit<this.items.length){this.__debounceRender(this.__requestRenderChunk)}}__requestRenderChunk(){requestAnimationFrame(()=>this.__renderChunk())}__renderChunk(){let currChunkTime=performance.now();let ratio=this._targetFrameTime/(currChunkTime-this.__lastChunkTime);this.__chunkCount=Math.round(this.__chunkCount*ratio)||1;this.__limit+=this.__chunkCount;this.__lastChunkTime=currChunkTime;this.__debounceRender(this.__render)}__observeChanged(){this.__observePaths=this.observe&&this.observe.replace(".*",".").split(" ")}__itemsChanged(change){if(this.items&&!Array.isArray(this.items)){console.warn("dom-repeat expected array for `items`, found",this.items)}if(!this.__handleItemPath(change.path,change.value)){this.__initializeChunking();this.__debounceRender(this.__render)}}__handleObservedPaths(path){if(this.__sortFn||this.__filterFn){if(!path){this.__debounceRender(this.__render,this.delay)}else if(this.__observePaths){let paths=this.__observePaths;for(let i=0;i<paths.length;i++){if(path.indexOf(paths[i])===0){this.__debounceRender(this.__render,this.delay)}}}}}__debounceRender(fn,delay=0){this.__renderDebouncer=Polymer.Debouncer.debounce(this.__renderDebouncer,delay>0?Polymer.Async.timeOut.after(delay):Polymer.Async.microTask,fn.bind(this));Polymer.enqueueDebouncer(this.__renderDebouncer)}render(){this.__debounceRender(this.__render);Polymer.flush()}__render(){if(!this.__ensureTemplatized()){return}this.__applyFullRefresh();this.__pool.length=0;this._setRenderedItemCount(this.__instances.length);this.dispatchEvent(new CustomEvent("dom-change",{bubbles:true,composed:true}));this.__tryRenderChunk()}__applyFullRefresh(){let items=this.items||[];let isntIdxToItemsIdx=new Array(items.length);for(let i=0;i<items.length;i++){isntIdxToItemsIdx[i]=i}if(this.__filterFn){isntIdxToItemsIdx=isntIdxToItemsIdx.filter((i,idx,array)=>this.__filterFn(items[i],idx,array))}if(this.__sortFn){isntIdxToItemsIdx.sort((a,b)=>this.__sortFn(items[a],items[b]))}const itemsIdxToInstIdx=this.__itemsIdxToInstIdx={};let instIdx=0;const limit=Math.min(isntIdxToItemsIdx.length,this.__limit);for(;instIdx<limit;instIdx++){let inst=this.__instances[instIdx];let itemIdx=isntIdxToItemsIdx[instIdx];let item=items[itemIdx];itemsIdxToInstIdx[itemIdx]=instIdx;if(inst){inst._setPendingProperty(this.as,item);inst._setPendingProperty(this.indexAs,instIdx);inst._setPendingProperty(this.itemsIndexAs,itemIdx);inst._flushProperties()}else{this.__insertInstance(item,instIdx,itemIdx)}}for(let i=this.__instances.length-1;i>=instIdx;i--){this.__detachAndRemoveInstance(i)}}__detachInstance(idx){let inst=this.__instances[idx];for(let i=0;i<inst.children.length;i++){let el=inst.children[i];inst.root.appendChild(el)}return inst}__attachInstance(idx,parent){let inst=this.__instances[idx];parent.insertBefore(inst.root,this)}__detachAndRemoveInstance(idx){let inst=this.__detachInstance(idx);if(inst){this.__pool.push(inst)}this.__instances.splice(idx,1)}__stampInstance(item,instIdx,itemIdx){let model={};model[this.as]=item;model[this.indexAs]=instIdx;model[this.itemsIndexAs]=itemIdx;return new this.__ctor(model)}__insertInstance(item,instIdx,itemIdx){let inst=this.__pool.pop();if(inst){inst._setPendingProperty(this.as,item);inst._setPendingProperty(this.indexAs,instIdx);inst._setPendingProperty(this.itemsIndexAs,itemIdx);inst._flushProperties()}else{inst=this.__stampInstance(item,instIdx,itemIdx)}let beforeRow=this.__instances[instIdx+1];let beforeNode=beforeRow?beforeRow.children[0]:this;this.parentNode.insertBefore(inst.root,beforeNode);this.__instances[instIdx]=inst;return inst}_showHideChildren(hidden){for(let i=0;i<this.__instances.length;i++){this.__instances[i]._showHideChildren(hidden)}}__handleItemPath(path,value){let itemsPath=path.slice(6);let dot=itemsPath.indexOf(".");let itemsIdx=dot<0?itemsPath:itemsPath.substring(0,dot);if(itemsIdx==parseInt(itemsIdx,10)){let itemSubPath=dot<0?"":itemsPath.substring(dot+1);this.__handleObservedPaths(itemSubPath);let instIdx=this.__itemsIdxToInstIdx[itemsIdx];let inst=this.__instances[instIdx];if(inst){let itemPath=this.as+(itemSubPath?"."+itemSubPath:"");inst._setPendingPropertyOrPath(itemPath,value,false,true);inst._flushProperties()}return true}}itemForElement(el){let instance=this.modelForElement(el);return instance&&instance[this.as]}indexForElement(el){let instance=this.modelForElement(el);return instance&&instance[this.indexAs]}modelForElement(el){return Polymer.Templatize.modelForElement(this.template,el)}}customElements.define(DomRepeat.is,DomRepeat);Polymer.DomRepeat=DomRepeat})();(function(){"use strict";class DomIf extends Polymer.Element{static get is(){return"dom-if"}static get template(){return null}static get properties(){return{if:{type:Boolean,observer:"__debounceRender"},restamp:{type:Boolean,observer:"__debounceRender"}}}constructor(){super();this.__renderDebouncer=null;this.__invalidProps=null;this.__instance=null;this._lastIf=false;this.__ctor=null}__debounceRender(){this.__renderDebouncer=Polymer.Debouncer.debounce(this.__renderDebouncer,Polymer.Async.microTask,()=>this.__render());Polymer.enqueueDebouncer(this.__renderDebouncer)}disconnectedCallback(){super.disconnectedCallback();if(!this.parentNode||this.parentNode.nodeType==Node.DOCUMENT_FRAGMENT_NODE&&!this.parentNode.host){this.__teardownInstance()}}connectedCallback(){super.connectedCallback();this.style.display="none";if(this.if){this.__debounceRender()}}render(){Polymer.flush()}__render(){if(this.if){if(!this.__ensureInstance()){return}this._showHideChildren()}else if(this.restamp){this.__teardownInstance()}if(!this.restamp&&this.__instance){this._showHideChildren()}if(this.if!=this._lastIf){this.dispatchEvent(new CustomEvent("dom-change",{bubbles:true,composed:true}));this._lastIf=this.if}}__ensureInstance(){let parentNode=this.parentNode;if(parentNode){if(!this.__ctor){let template=this.querySelector("template");if(!template){let observer=new MutationObserver(()=>{if(this.querySelector("template")){observer.disconnect();this.__render()}else{throw new Error("dom-if requires a <template> child")}});observer.observe(this,{childList:true});return false}this.__ctor=Polymer.Templatize.templatize(template,this,{mutableData:true,forwardHostProp:function(prop,value){if(this.__instance){if(this.if){this.__instance.forwardHostProp(prop,value)}else{this.__invalidProps=this.__invalidProps||Object.create(null);this.__invalidProps[Polymer.Path.root(prop)]=true}}}})}if(!this.__instance){this.__instance=new this.__ctor;parentNode.insertBefore(this.__instance.root,this)}else{this.__syncHostProperties();let c$=this.__instance.children;if(c$&&c$.length){let lastChild=this.previousSibling;if(lastChild!==c$[c$.length-1]){for(let i=0,n;i<c$.length&&(n=c$[i]);i++){parentNode.insertBefore(n,this)}}}}}return true}__syncHostProperties(){let props=this.__invalidProps;if(props){for(let prop in props){this.__instance._setPendingProperty(prop,this.__dataHost[prop])}this.__invalidProps=null;this.__instance._flushProperties()}}__teardownInstance(){if(this.__instance){let c$=this.__instance.children;if(c$&&c$.length){let parent=c$[0].parentNode;if(parent){for(let i=0,n;i<c$.length&&(n=c$[i]);i++){parent.removeChild(n)}}}this.__instance=null;this.__invalidProps=null}}_showHideChildren(){let hidden=this.__hideTemplateChildren__||!this.if;if(this.__instance){this.__instance._showHideChildren(hidden)}}}customElements.define(DomIf.is,DomIf);Polymer.DomIf=DomIf})();(function(){"use strict";let ArraySelectorMixin=Polymer.dedupingMixin(superClass=>{let elementBase=Polymer.ElementMixin(superClass);class ArraySelectorMixin extends elementBase{static get properties(){return{items:{type:Array},multi:{type:Boolean,value:false},selected:{type:Object,notify:true},selectedItem:{type:Object,notify:true},toggle:{type:Boolean,value:false}}}static get observers(){return["__updateSelection(multi, items.*)"]}constructor(){super();this.__lastItems=null;this.__lastMulti=null;this.__selectedMap=null}__updateSelection(multi,itemsInfo){let path=itemsInfo.path;if(path=="items"){let newItems=itemsInfo.base||[];let lastItems=this.__lastItems;let lastMulti=this.__lastMulti;if(multi!==lastMulti){this.clearSelection()}if(lastItems){let splices=Polymer.ArraySplice.calculateSplices(newItems,lastItems);this.__applySplices(splices)}this.__lastItems=newItems;this.__lastMulti=multi}else if(itemsInfo.path=="items.splices"){this.__applySplices(itemsInfo.value.indexSplices)}else{let part=path.slice("items.".length);let idx=parseInt(part,10);if(part.indexOf(".")<0&&part==idx){this.__deselectChangedIdx(idx)}}}__applySplices(splices){let selected=this.__selectedMap;for(let i=0;i<splices.length;i++){let s=splices[i];selected.forEach((idx,item)=>{if(idx<s.index){}else if(idx>=s.index+s.removed.length){selected.set(item,idx+s.addedCount-s.removed.length)}else{selected.set(item,-1)}});for(let j=0;j<s.addedCount;j++){let idx=s.index+j;if(selected.has(this.items[idx])){selected.set(this.items[idx],idx)}}}this.__updateLinks();let sidx=0;selected.forEach((idx,item)=>{if(idx<0){if(this.multi){this.splice("selected",sidx,1)}else{this.selected=this.selectedItem=null}selected.delete(item)}else{sidx++}})}__updateLinks(){this.__dataLinkedPaths={};if(this.multi){let sidx=0;this.__selectedMap.forEach(idx=>{if(idx>=0){this.linkPaths("items."+idx,"selected."+sidx++)}})}else{this.__selectedMap.forEach(idx=>{this.linkPaths("selected","items."+idx);this.linkPaths("selectedItem","items."+idx)})}}clearSelection(){this.__dataLinkedPaths={};this.__selectedMap=new Map;this.selected=this.multi?[]:null;this.selectedItem=null}isSelected(item){return this.__selectedMap.has(item)}isIndexSelected(idx){return this.isSelected(this.items[idx])}__deselectChangedIdx(idx){let sidx=this.__selectedIndexForItemIndex(idx);if(sidx>=0){let i=0;this.__selectedMap.forEach((idx,item)=>{if(sidx==i++){this.deselect(item)}})}}__selectedIndexForItemIndex(idx){let selected=this.__dataLinkedPaths["items."+idx];if(selected){return parseInt(selected.slice("selected.".length),10)}}deselect(item){let idx=this.__selectedMap.get(item);if(idx>=0){this.__selectedMap.delete(item);let sidx;if(this.multi){sidx=this.__selectedIndexForItemIndex(idx)}this.__updateLinks();if(this.multi){this.splice("selected",sidx,1)}else{this.selected=this.selectedItem=null}}}deselectIndex(idx){this.deselect(this.items[idx])}select(item){this.selectIndex(this.items.indexOf(item))}selectIndex(idx){let item=this.items[idx];if(!this.isSelected(item)){if(!this.multi){this.__selectedMap.clear()}this.__selectedMap.set(item,idx);this.__updateLinks();if(this.multi){this.push("selected",item)}else{this.selected=this.selectedItem=item}}else if(this.toggle){this.deselectIndex(idx)}}}return ArraySelectorMixin});Polymer.ArraySelectorMixin=ArraySelectorMixin;let baseArraySelector=ArraySelectorMixin(Polymer.Element);class ArraySelector extends baseArraySelector{static get is(){return"array-selector"}}customElements.define(ArraySelector.is,ArraySelector);Polymer.ArraySelector=ArraySelector})();(function(){
+/*
Copyright (c) 2017 The Polymer Project Authors. All rights reserved.
This code may only be used under the BSD style license found at http://polymer.github.io/LICENSE.txt
@@ -16,4 +18,4 @@ The complete set of contributors may be found at http://polymer.github.io/CONTRI
Code distributed by Google as part of the polymer project is also
subject to an additional IP rights grant found at http://polymer.github.io/PATENTS.txt
*/
-"use strict";var c=!(window.ShadyDOM&&window.ShadyDOM.inUse),f;function g(a){f=a&&a.shimcssproperties?!1:c||!(navigator.userAgent.match(/AppleWebKit\/601|Edge\/15/)||!window.CSS||!CSS.supports||!CSS.supports("box-shadow","0 0 0 var(--foo)"))}window.ShadyCSS&&void 0!==window.ShadyCSS.nativeCss?f=window.ShadyCSS.nativeCss:window.ShadyCSS?(g(window.ShadyCSS),window.ShadyCSS=void 0):g(window.WebComponents&&window.WebComponents.flags);var h=f;function k(a,b){for(var d in b)null===d?a.style.removeProperty(d):a.style.setProperty(d,b[d])}var l=null,m=window.HTMLImports&&window.HTMLImports.whenReady||null,n;function p(a){requestAnimationFrame(function(){m?m(a):(l||(l=new Promise(function(a){n=a}),"complete"===document.readyState?n():document.addEventListener("readystatechange",function(){"complete"===document.readyState&&n()})),l.then(function(){a&&a()}))})}var q=null,r=null;function t(){this.customStyles=[];this.enqueued=!1;p(function(){window.ShadyCSS.flushCustomStyles&&window.ShadyCSS.flushCustomStyles()})}function u(a){!a.enqueued&&r&&(a.enqueued=!0,p(r))}t.prototype.c=function(a){a.__seenByShadyCSS||(a.__seenByShadyCSS=!0,this.customStyles.push(a),u(this))};t.prototype.b=function(a){if(a.__shadyCSSCachedStyle)return a.__shadyCSSCachedStyle;var b;a.getStyle?b=a.getStyle():b=a;return b};t.prototype.a=function(){for(var a=this.customStyles,b=0;b<a.length;b++){var d=a[b];if(!d.__shadyCSSCachedStyle){var e=this.b(d);e&&(e=e.__appliedElement||e,q&&q(e),d.__shadyCSSCachedStyle=e)}}return a};t.prototype.addCustomStyle=t.prototype.c;t.prototype.getStyleForCustomStyle=t.prototype.b;t.prototype.processStyles=t.prototype.a;Object.defineProperties(t.prototype,{transformCallback:{get:function(){return q},set:function(a){q=a}},validateCallback:{get:function(){return r},set:function(a){var b=!1;r||(b=!0);r=a;b&&u(this)}}});var v=new t;window.ShadyCSS||(window.ShadyCSS={prepareTemplate:function(){},styleSubtree:function(a,b){v.a();k(a,b)},styleElement:function(){v.a()},styleDocument:function(a){v.a();k(document.body,a)},getComputedStyleValue:function(a,b){return(a=window.getComputedStyle(a).getPropertyValue(b))?a.trim():""},flushCustomStyles:function(){},nativeCss:h,nativeShadow:c});window.ShadyCSS.CustomStyleInterface=v}).call(this);(function(){"use strict";const attr="include";const CustomStyleInterface=window.ShadyCSS.CustomStyleInterface;class CustomStyle extends HTMLElement{constructor(){super();this._style=null;CustomStyleInterface.addCustomStyle(this)}getStyle(){if(this._style){return this._style}const style=this.querySelector("style");if(!style){return null}this._style=style;const include=style.getAttribute(attr);if(include){style.removeAttribute(attr);style.textContent=Polymer.StyleGather.cssFromModules(include)+style.textContent}if(this.ownerDocument!==window.document){window.document.head.appendChild(this)}return this._style}}window.customElements.define("custom-style",CustomStyle);Polymer.CustomStyle=CustomStyle})();(function(){"use strict";let mutablePropertyChange;(()=>{mutablePropertyChange=Polymer.MutableData._mutablePropertyChange})();Polymer.MutableDataBehavior={_shouldPropertyChange(property,value,old){return mutablePropertyChange(this,property,value,old,true)}};Polymer.OptionalMutableDataBehavior={properties:{mutableData:Boolean},_shouldPropertyChange(property,value,old){return mutablePropertyChange(this,property,value,old,this.mutableData)}}})();Polymer.Base=Polymer.LegacyElementMixin(HTMLElement).prototype;Polymer.html=Polymer.html; \ No newline at end of file
+"use strict";var c=null,f=window.HTMLImports&&window.HTMLImports.whenReady||null,g;function h(a){requestAnimationFrame(function(){f?f(a):(c||(c=new Promise(function(a){g=a}),"complete"===document.readyState?g():document.addEventListener("readystatechange",function(){"complete"===document.readyState&&g()})),c.then(function(){a&&a()}))})}var k=null,l=null;function m(){this.customStyles=[];this.enqueued=!1;h(function(){window.ShadyCSS.flushCustomStyles&&window.ShadyCSS.flushCustomStyles()})}function n(a){!a.enqueued&&l&&(a.enqueued=!0,h(l))}m.prototype.c=function(a){a.__seenByShadyCSS||(a.__seenByShadyCSS=!0,this.customStyles.push(a),n(this))};m.prototype.b=function(a){if(a.__shadyCSSCachedStyle)return a.__shadyCSSCachedStyle;var b;a.getStyle?b=a.getStyle():b=a;return b};m.prototype.a=function(){for(var a=this.customStyles,b=0;b<a.length;b++){var d=a[b];if(!d.__shadyCSSCachedStyle){var e=this.b(d);e&&(e=e.__appliedElement||e,k&&k(e),d.__shadyCSSCachedStyle=e)}}return a};m.prototype.addCustomStyle=m.prototype.c;m.prototype.getStyleForCustomStyle=m.prototype.b;m.prototype.processStyles=m.prototype.a;Object.defineProperties(m.prototype,{transformCallback:{get:function(){return k},set:function(a){k=a}},validateCallback:{get:function(){return l},set:function(a){var b=!1;l||(b=!0);l=a;b&&n(this)}}});function p(a,b){for(var d in b)null===d?a.style.removeProperty(d):a.style.setProperty(d,b[d])}var q=!(window.ShadyDOM&&window.ShadyDOM.inUse),r;function t(a){r=a&&a.shimcssproperties?!1:q||!(navigator.userAgent.match(/AppleWebKit\/601|Edge\/15/)||!window.CSS||!CSS.supports||!CSS.supports("box-shadow","0 0 0 var(--foo)"))}var u;window.ShadyCSS&&void 0!==window.ShadyCSS.cssBuild&&(u=window.ShadyCSS.cssBuild);window.ShadyCSS&&void 0!==window.ShadyCSS.nativeCss?r=window.ShadyCSS.nativeCss:window.ShadyCSS?(t(window.ShadyCSS),window.ShadyCSS=void 0):t(window.WebComponents&&window.WebComponents.flags);var v=r,w=u;var x=new m;window.ShadyCSS||(window.ShadyCSS={prepareTemplate:function(){},prepareTemplateDom:function(){},prepareTemplateStyles:function(){},styleSubtree:function(a,b){x.a();p(a,b)},styleElement:function(){x.a()},styleDocument:function(a){x.a();p(document.body,a)},getComputedStyleValue:function(a,b){return(a=window.getComputedStyle(a).getPropertyValue(b))?a.trim():""},flushCustomStyles:function(){},nativeCss:v,nativeShadow:q,cssBuild:w});window.ShadyCSS.CustomStyleInterface=x}).call(this);(function(){"use strict";const attr="include";const CustomStyleInterface=window.ShadyCSS.CustomStyleInterface;class CustomStyle extends HTMLElement{constructor(){super();this._style=null;CustomStyleInterface.addCustomStyle(this)}getStyle(){if(this._style){return this._style}const style=this.querySelector("style");if(!style){return null}this._style=style;const include=style.getAttribute(attr);if(include){style.removeAttribute(attr);style.textContent=Polymer.StyleGather.cssFromModules(include)+style.textContent}if(this.ownerDocument!==window.document){window.document.head.appendChild(this)}return this._style}}window.customElements.define("custom-style",CustomStyle);Polymer.CustomStyle=CustomStyle})();(function(){"use strict";let mutablePropertyChange;(()=>{mutablePropertyChange=Polymer.MutableData._mutablePropertyChange})();Polymer.MutableDataBehavior={_shouldPropertyChange(property,value,old){return mutablePropertyChange(this,property,value,old,true)}};Polymer.OptionalMutableDataBehavior={properties:{mutableData:Boolean},_shouldPropertyChange(property,value,old){return mutablePropertyChange(this,property,value,old,this.mutableData)}}})();Polymer.Base=Polymer.LegacyElementMixin(HTMLElement).prototype;Polymer.html=Polymer.html; \ No newline at end of file