text: /*! For license information please see b67b7590.js.LICENSE.txt */
  "use strict";(self.webpackChunkhome_assistant_frontend=self.webpackChunkhome_assistant_frontend||[]).push([[49220,49995,93098,83457,67911,17941,79277,5632,6038,11139,5713,22946,92887,31223,95810],{14166:(e,t,i)=>{i.d(t,{W:()=>o});var n=function(){return n=Object.assign||function(e){for(var t,i=1,n=arguments.length;i<n;i++)for(var o in t=arguments[i])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e},n.apply(this,arguments)};function o(e,t,i){void 0===t&&(t=Date.now()),void 0===i&&(i={});var o=n(n({},a),i||{}),r=(+e-+t)/1e3;if(Math.abs(r)<o.second)return{value:Math.round(r),unit:"second"};var l=r/60;if(Math.abs(l)<o.minute)return{value:Math.round(l),unit:"minute"};var s=r/3600;if(Math.abs(s)<o.hour)return{value:Math.round(s),unit:"hour"};var d=r/86400;if(Math.abs(d)<o.day)return{value:Math.round(d),unit:"day"};var c=new Date(e),p=new Date(t),h=c.getFullYear()-p.getFullYear();if(Math.round(Math.abs(h))>0)return{value:Math.round(h),unit:"year"};var m=12*h+c.getMonth()-p.getMonth();if(Math.round(Math.abs(m))>0)return{value:Math.round(m),unit:"month"};var u=r/604800;return{value:Math.round(u),unit:"week"}}var a={second:45,minute:45,hour:22,day:5}},95165:(e,t,i)=>{i.d(t,{U:()=>n,j:()=>o});var n={ROOT:"mdc-form-field"},o={LABEL_SELECTOR:".mdc-form-field > label"}},15892:(e,t,i)=>{i.d(t,{C:()=>r});var n=i(87480),o=i(72774),a=i(95165);const r=function(e){function t(i){var o=e.call(this,(0,n.__assign)((0,n.__assign)({},t.defaultAdapter),i))||this;return o.click=function(){o.handleClick()},o}return(0,n.__extends)(t,e),Object.defineProperty(t,"cssClasses",{get:function(){return a.U},enumerable:!1,configurable:!0}),Object.defineProperty(t,"strings",{get:function(){return a.j},enumerable:!1,configurable:!0}),Object.defineProperty(t,"defaultAdapter",{get:function(){return{activateInputRipple:function(){},deactivateInputRipple:function(){},deregisterInteractionHandler:function(){},registerInteractionHandler:function(){}}},enumerable:!1,configurable:!0}),t.prototype.init=function(){this.adapter.registerInteractionHandler("click",this.click)},t.prototype.destroy=function(){this.adapter.deregisterInteractionHandler("click",this.click)},t.prototype.handleClick=function(){var e=this;this.adapter.activateInputRipple(),requestAnimationFrame((function(){e.adapter.deactivateInputRipple()}))},t}(o.K)},18601:(e,t,i)=>{i.d(t,{qN:()=>l.q,Wg:()=>d});var n,o,a=i(87480),r=i(5701),l=i(78220);const s=null!==(o=null===(n=window.ShadyDOM)||void 0===n?void 0:n.inUse)&&void 0!==o&&o;class d extends l.H{constructor(){super(...arguments),this.disabled=!1,this.containingForm=null,this.formDataListener=e=>{this.disabled||this.setFormData(e.formData)}}findFormElement(){if(!this.shadowRoot||s)return null;const e=this.getRootNode().querySelectorAll("form");for(const t of Array.from(e))if(t.contains(this))return t;return null}connectedCallback(){var e;super.connectedCallback(),this.containingForm=this.findFormElement(),null===(e=this.containingForm)||void 0===e||e.addEventListener("formdata",this.formDataListener)}disconnectedCallback(){var e;super.disconnectedCallback(),null===(e=this.containingForm)||void 0===e||e.removeEventListener("formdata",this.formDataListener),this.containingForm=null}click(){this.formElement&&!this.disabled&&(this.formElement.focus(),this.formElement.click())}firstUpdated(){super.firstUpdated(),this.shadowRoot&&this.mdcRoot.addEventListener("change",(e=>{this.dispatchEvent(new Event("change",e))}))}}d.shadowRootOptions={mode:"open",delegatesFocus:!0},(0,a.__decorate)([(0,r.C)({type:Boolean})],d.prototype,"disabled",void 0)},14114:(e,t,i)=>{i.d(t,{P:()=>n});const n=e=>(t,i)=>{if(t.constructor._observers){if(!t.constructor.hasOwnProperty("_observers")){const e=t.constructor._observers;t.constructor._observers=new Map,e.forEach(((e,i)=>t.constructor._observers.set(i,e)))}}else{t.constructor._observers=new Map;const e=t.updated;t.updated=function(t){e.call(this,t),t.forEach(((e,t)=>{const i=this.constructor._observers.get(t);void 0!==i&&i.call(this,this[t],e)}))}}t.constructor._observers.set(i,e)}},93751:(e,t,i)=>{i.d(t,{a:()=>m});var n=i(87480),o=i(15892),a=i(78220),r=i(18601),l=i(14114),s=i(37500),d=i(5701),c=i(67352),p=i(32930),h=i(228);class m extends a.H{constructor(){super(...arguments),this.alignEnd=!1,this.spaceBetween=!1,this.nowrap=!1,this.label="",this.mdcFoundationClass=o.C}createAdapter(){return{registerInteractionHandler:(e,t)=>{this.labelEl.addEventListener(e,t)},deregisterInteractionHandler:(e,t)=>{this.labelEl.removeEventListener(e,t)},activateInputRipple:async()=>{const e=this.input;if(e instanceof r.Wg){const t=await e.ripple;t&&t.startPress()}},deactivateInputRipple:async()=>{const e=this.input;if(e instanceof r.Wg){const t=await e.ripple;t&&t.endPress()}}}}get input(){var e,t;return null!==(t=null===(e=this.slottedInputs)||void 0===e?void 0:e[0])&&void 0!==t?t:null}render(){const e={"mdc-form-field--align-end":this.alignEnd,"mdc-form-field--space-between":this.spaceBetween,"mdc-form-field--nowrap":this.nowrap};return s.dy`
        <div class="mdc-form-field ${(0,h.$)(e)}">
          <slot></slot>
          <label class="mdc-label"
                 @click="${this._labelClick}">${this.label}</label>
        </div>`}click(){this._labelClick()}_labelClick(){const e=this.input;e&&(e.focus(),e.click())}}(0,n.__decorate)([(0,d.C)({type:Boolean})],m.prototype,"alignEnd",void 0),(0,n.__decorate)([(0,d.C)({type:Boolean})],m.prototype,"spaceBetween",void 0),(0,n.__decorate)([(0,d.C)({type:Boolean})],m.prototype,"nowrap",void 0),(0,n.__decorate)([(0,d.C)({type:String}),(0,l.P)((async function(e){var t;null===(t=this.input)||void 0===t||t.setAttribute("aria-label",e)}))],m.prototype,"label",void 0),(0,n.__decorate)([(0,c.I)(".mdc-form-field")],m.prototype,"mdcRoot",void 0),(0,n.__decorate)([(0,p.v)("",!0,"*")],m.prototype,"slottedInputs",void 0),(0,n.__decorate)([(0,c.I)("label")],m.prototype,"labelEl",void 0)},92038:(e,t,i)=>{i.d(t,{W:()=>n});const n=i(37500).iv`.mdc-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto, sans-serif;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:0.875rem;font-size:var(--mdc-typography-body2-font-size, 0.875rem);line-height:1.25rem;line-height:var(--mdc-typography-body2-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-body2-font-weight, 400);letter-spacing:0.0178571429em;letter-spacing:var(--mdc-typography-body2-letter-spacing, 0.0178571429em);text-decoration:inherit;text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-transform:inherit;text-transform:var(--mdc-typography-body2-text-transform, inherit);color:rgba(0, 0, 0, 0.87);color:var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87));display:inline-flex;align-items:center;vertical-align:middle}.mdc-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{margin-left:auto;margin-right:0}[dir=rtl] .mdc-form-field>label,.mdc-form-field>label[dir=rtl]{padding-left:0;padding-right:4px}.mdc-form-field--nowrap>label{text-overflow:ellipsis;overflow:hidden;white-space:nowrap}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{margin-left:0;margin-right:auto}[dir=rtl] .mdc-form-field--align-end>label,.mdc-form-field--align-end>label[dir=rtl]{padding-left:4px;padding-right:0}.mdc-form-field--space-between{justify-content:space-between}.mdc-form-field--space-between>label{margin:0}[dir=rtl] .mdc-form-field--space-between>label,.mdc-form-field--space-between>label[dir=rtl]{margin:0}:host{display:inline-flex}.mdc-form-field{width:100%}::slotted(*){-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;font-family:Roboto, sans-serif;font-family:var(--mdc-typography-body2-font-family, var(--mdc-typography-font-family, Roboto, sans-serif));font-size:0.875rem;font-size:var(--mdc-typography-body2-font-size, 0.875rem);line-height:1.25rem;line-height:var(--mdc-typography-body2-line-height, 1.25rem);font-weight:400;font-weight:var(--mdc-typography-body2-font-weight, 400);letter-spacing:0.0178571429em;letter-spacing:var(--mdc-typography-body2-letter-spacing, 0.0178571429em);text-decoration:inherit;text-decoration:var(--mdc-typography-body2-text-decoration, inherit);text-transform:inherit;text-transform:var(--mdc-typography-body2-text-transform, inherit);color:rgba(0, 0, 0, 0.87);color:var(--mdc-theme-text-primary-on-background, rgba(0, 0, 0, 0.87))}::slotted(mwc-switch){margin-right:10px}[dir=rtl] ::slotted(mwc-switch),::slotted(mwc-switch[dir=rtl]){margin-left:10px}`},1819:(e,t,i)=>{i.d(t,{Y:()=>l});var n=i(87480),o=i(26767),a=i(93751),r=i(92038);let l=class extends a.a{};l.styles=[r.W],l=(0,n.__decorate)([(0,o.M)("mwc-formfield")],l)},32421:(e,t,i)=>{i.d(t,{r:()=>_});var n=i(87480),o=i(26767),a=(i(66702),i(38103)),r=i(78220),l=i(14114),s=i(98734),d=i(72774),c={CHECKED:"mdc-switch--checked",DISABLED:"mdc-switch--disabled"},p={ARIA_CHECKED_ATTR:"aria-checked",NATIVE_CONTROL_SELECTOR:".mdc-switch__native-control",RIPPLE_SURFACE_SELECTOR:".mdc-switch__thumb-underlay"};const h=function(e){function t(i){return e.call(this,(0,n.__assign)((0,n.__assign)({},t.defaultAdapter),i))||this}return(0,n.__extends)(t,e),Object.defineProperty(t,"strings",{get:function(){return p},enumerable:!1,configurable:!0}),Object.defineProperty(t,"cssClasses",{get:function(){return c},enumerable:!1,configurable:!0}),Object.defineProperty(t,"defaultAdapter",{get:function(){return{addClass:function(){},removeClass:function(){},setNativeControlChecked:function(){},setNativeControlDisabled:function(){},setNativeControlAttr:function(){}}},enumerable:!1,configurable:!0}),t.prototype.setChecked=function(e){this.adapter.setNativeControlChecked(e),this.updateAriaChecked(e),this.updateCheckedStyling(e)},t.prototype.setDisabled=function(e){this.adapter.setNativeControlDisabled(e),e?this.adapter.addClass(c.DISABLED):this.adapter.removeClass(c.DISABLED)},t.prototype.handleChange=function(e){var t=e.target;this.updateAriaChecked(t.checked),this.updateCheckedStyling(t.checked)},t.prototype.updateCheckedStyling=function(e){e?this.adapter.addClass(c.CHECKED):this.adapter.removeClass(c.CHECKED)},t.prototype.updateAriaChecked=function(e){this.adapter.setNativeControlAttr(p.ARIA_CHECKED_ATTR,""+!!e)},t}(d.K);var m=i(37500),u=i(5701),f=i(67352),y=i(35401),g=i(17717),b=i(84982),v=i(48399);class w extends r.H{constructor(){super(...arguments),this.checked=!1,this.disabled=!1,this.shouldRenderRipple=!1,this.mdcFoundationClass=h,this.rippleHandlers=new s.A((()=>(this.shouldRenderRipple=!0,this.ripple)))}changeHandler(e){this.mdcFoundation.handleChange(e),this.checked=this.formElement.checked}createAdapter(){return Object.assign(Object.assign({},(0,r.q)(this.mdcRoot)),{setNativeControlChecked:e=>{this.formElement.checked=e},setNativeControlDisabled:e=>{this.formElement.disabled=e},setNativeControlAttr:(e,t)=>{this.formElement.setAttribute(e,t)}})}renderRipple(){return this.shouldRenderRipple?m.dy`
          <mwc-ripple
            .accent="${this.checked}"
            .disabled="${this.disabled}"
            unbounded>
          </mwc-ripple>`:""}focus(){const e=this.formElement;e&&(this.rippleHandlers.startFocus(),e.focus())}blur(){const e=this.formElement;e&&(this.rippleHandlers.endFocus(),e.blur())}click(){this.formElement&&!this.disabled&&(this.formElement.focus(),this.formElement.click())}firstUpdated(){super.firstUpdated(),this.shadowRoot&&this.mdcRoot.addEventListener("change",(e=>{this.dispatchEvent(new Event("change",e))}))}render(){return m.dy`
        <div class="mdc-switch">
          <div class="mdc-switch__track"></div>
          <div class="mdc-switch__thumb-underlay">
            ${this.renderRipple()}
            <div class="mdc-switch__thumb">
              <input
                type="checkbox"
                id="basic-switch"
                class="mdc-switch__native-control"
                role="switch"
                aria-label="${(0,v.o)(this.ariaLabel)}"
                aria-labelledby="${(0,v.o)(this.ariaLabelledBy)}"
                @change="${this.changeHandler}"
                @focus="${this.handleRippleFocus}"
                @blur="${this.handleRippleBlur}"
                @mousedown="${this.handleRippleMouseDown}"
                @mouseenter="${this.handleRippleMouseEnter}"
                @mouseleave="${this.handleRippleMouseLeave}"
                @touchstart="${this.handleRippleTouchStart}"
                @touchend="${this.handleRippleDeactivate}"
                @touchcancel="${this.handleRippleDeactivate}">
            </div>
          </div>
        </div>`}handleRippleMouseDown(e){const t=()=>{window.removeEventListener("mouseup",t),this.handleRippleDeactivate()};window.addEventListener("mouseup",t),this.rippleHandlers.startPress(e)}handleRippleTouchStart(e){this.rippleHandlers.startPress(e)}handleRippleDeactivate(){this.rippleHandlers.endPress()}handleRippleMouseEnter(){this.rippleHandlers.startHover()}handleRippleMouseLeave(){this.rippleHandlers.endHover()}handleRippleFocus(){this.rippleHandlers.startFocus()}handleRippleBlur(){this.rippleHandlers.endFocus()}}(0,n.__decorate)([(0,u.C)({type:Boolean}),(0,l.P)((function(e){this.mdcFoundation.setChecked(e)}))],w.prototype,"checked",void 0),(0,n.__decorate)([(0,u.C)({type:Boolean}),(0,l.P)((function(e){this.mdcFoundation.setDisabled(e)}))],w.prototype,"disabled",void 0),(0,n.__decorate)([a.L,(0,u.C)({attribute:"aria-label"})],w.prototype,"ariaLabel",void 0),(0,n.__decorate)([a.L,(0,u.C)({attribute:"aria-labelledby"})],w.prototype,"ariaLabelledBy",void 0),(0,n.__decorate)([(0,f.I)(".mdc-switch")],w.prototype,"mdcRoot",void 0),(0,n.__decorate)([(0,f.I)("input")],w.prototype,"formElement",void 0),(0,n.__decorate)([(0,y.G)("mwc-ripple")],w.prototype,"ripple",void 0),(0,n.__decorate)([(0,g.S)()],w.prototype,"shouldRenderRipple",void 0),(0,n.__decorate)([(0,b.h)({passive:!0})],w.prototype,"handleRippleMouseDown",null),(0,n.__decorate)([(0,b.h)({passive:!0})],w.prototype,"handleRippleTouchStart",null);const x=m.iv`.mdc-switch__thumb-underlay{left:-14px;right:initial;top:-17px;width:48px;height:48px}[dir=rtl] .mdc-switch__thumb-underlay,.mdc-switch__thumb-underlay[dir=rtl]{left:initial;right:-14px}.mdc-switch__native-control{width:64px;height:48px}.mdc-switch{display:inline-block;position:relative;outline:none;user-select:none}.mdc-switch.mdc-switch--checked .mdc-switch__track{background-color:#018786;background-color:var(--mdc-theme-secondary, #018786)}.mdc-switch.mdc-switch--checked .mdc-switch__thumb{background-color:#018786;background-color:var(--mdc-theme-secondary, #018786);border-color:#018786;border-color:var(--mdc-theme-secondary, #018786)}.mdc-switch:not(.mdc-switch--checked) .mdc-switch__track{background-color:#000;background-color:var(--mdc-theme-on-surface, #000)}.mdc-switch:not(.mdc-switch--checked) .mdc-switch__thumb{background-color:#fff;background-color:var(--mdc-theme-surface, #fff);border-color:#fff;border-color:var(--mdc-theme-surface, #fff)}.mdc-switch__native-control{left:0;right:initial;position:absolute;top:0;margin:0;opacity:0;cursor:pointer;pointer-events:auto;transition:transform 90ms cubic-bezier(0.4, 0, 0.2, 1)}[dir=rtl] .mdc-switch__native-control,.mdc-switch__native-control[dir=rtl]{left:initial;right:0}.mdc-switch__track{box-sizing:border-box;width:36px;height:14px;border:1px solid transparent;border-radius:7px;opacity:.38;transition:opacity 90ms cubic-bezier(0.4, 0, 0.2, 1),background-color 90ms cubic-bezier(0.4, 0, 0.2, 1),border-color 90ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-switch__thumb-underlay{display:flex;position:absolute;align-items:center;justify-content:center;transform:translateX(0);transition:transform 90ms cubic-bezier(0.4, 0, 0.2, 1),background-color 90ms cubic-bezier(0.4, 0, 0.2, 1),border-color 90ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-switch__thumb{box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2),0px 2px 2px 0px rgba(0, 0, 0, 0.14),0px 1px 5px 0px rgba(0,0,0,.12);box-sizing:border-box;width:20px;height:20px;border:10px solid;border-radius:50%;pointer-events:none;z-index:1}.mdc-switch--checked .mdc-switch__track{opacity:.54}.mdc-switch--checked .mdc-switch__thumb-underlay{transform:translateX(16px)}[dir=rtl] .mdc-switch--checked .mdc-switch__thumb-underlay,.mdc-switch--checked .mdc-switch__thumb-underlay[dir=rtl]{transform:translateX(-16px)}.mdc-switch--checked .mdc-switch__native-control{transform:translateX(-16px)}[dir=rtl] .mdc-switch--checked .mdc-switch__native-control,.mdc-switch--checked .mdc-switch__native-control[dir=rtl]{transform:translateX(16px)}.mdc-switch--disabled{opacity:.38;pointer-events:none}.mdc-switch--disabled .mdc-switch__thumb{border-width:1px}.mdc-switch--disabled .mdc-switch__native-control{cursor:default;pointer-events:none}:host{display:inline-flex;outline:none;-webkit-tap-highlight-color:transparent}`;let _=class extends w{};_.styles=[x],_=(0,n.__decorate)([(0,o.M)("mwc-switch")],_)},39841:(e,t,i)=>{i(94604),i(65660);var n=i(9672),o=i(87156),a=i(50856),r=i(44181);(0,n.k)({_template:a.d`
      <style>
        :host {
          display: block;
          /**
           * Force app-header-layout to have its own stacking context so that its parent can
           * control the stacking of it relative to other elements (e.g. app-drawer-layout).
           * This could be done using \`isolation: isolate\`, but that's not well supported
           * across browsers.
           */
          position: relative;
          z-index: 0;
        }
  
        #wrapper ::slotted([slot=header]) {
          @apply --layout-fixed-top;
          z-index: 1;
        }
  
        #wrapper.initializing ::slotted([slot=header]) {
          position: relative;
        }
  
        :host([has-scrolling-region]) {
          height: 100%;
        }
  
        :host([has-scrolling-region]) #wrapper ::slotted([slot=header]) {
          position: absolute;
        }
  
        :host([has-scrolling-region]) #wrapper.initializing ::slotted([slot=header]) {
          position: relative;
        }
  
        :host([has-scrolling-region]) #wrapper #contentContainer {
          @apply --layout-fit;
          overflow-y: auto;
          -webkit-overflow-scrolling: touch;
        }
  
        :host([has-scrolling-region]) #wrapper.initializing #contentContainer {
          position: relative;
        }
  
        :host([fullbleed]) {
          @apply --layout-vertical;
          @apply --layout-fit;
        }
  
        :host([fullbleed]) #wrapper,
        :host([fullbleed]) #wrapper #contentContainer {
          @apply --layout-vertical;
          @apply --layout-flex;
        }
  
        #contentContainer {
          /* Create a stacking context here so that all children appear below the header. */
          position: relative;
          z-index: 0;
        }
  
        @media print {
          :host([has-scrolling-region]) #wrapper #contentContainer {
            overflow-y: visible;
          }
        }
  
      </style>
  
      <div id="wrapper" class="initializing">
        <slot id="headerSlot" name="header"></slot>
  
        <div id="contentContainer">
          <slot></slot>
        </div>
      </div>
  `,is:"app-header-layout",behaviors:[r.Y],properties:{hasScrollingRegion:{type:Boolean,value:!1,reflectToAttribute:!0}},observers:["resetLayout(isAttached, hasScrollingRegion)"],get header(){return(0,o.vz)(this.$.headerSlot).getDistributedNodes()[0]},_updateLayoutStates:function(){var e=this.header;if(this.isAttached&&e){this.$.wrapper.classList.remove("initializing"),e.scrollTarget=this.hasScrollingRegion?this.$.contentContainer:this.ownerDocument.documentElement;var t=e.offsetHeight;this.hasScrollingRegion?(e.style.left="",e.style.right=""):requestAnimationFrame(function(){var t=this.getBoundingClientRect(),i=document.documentElement.clientWidth-t.right;e.style.left=t.left+"px",e.style.right=i+"px"}.bind(this));var i=this.$.contentContainer.style;e.fixed&&!e.condenses&&this.hasScrollingRegion?(i.marginTop=t+"px",i.paddingTop=""):(i.paddingTop=t+"px",i.marginTop="")}}})},21157:(e,t,i)=>{i(94604);const n=i(50856).d`
  /* Most common used flex styles*/
  <dom-module id="iron-flex">
    <template>
      <style>
        .layout.horizontal,
        .layout.vertical {
          display: -ms-flexbox;
          display: -webkit-flex;
          display: flex;
        }
  
        .layout.inline {
          display: -ms-inline-flexbox;
          display: -webkit-inline-flex;
          display: inline-flex;
        }
  
        .layout.horizontal {
          -ms-flex-direction: row;
          -webkit-flex-direction: row;
          flex-direction: row;
        }
  
        .layout.vertical {
          -ms-flex-direction: column;
          -webkit-flex-direction: column;
          flex-direction: column;
        }
  
        .layout.wrap {
          -ms-flex-wrap: wrap;
          -webkit-flex-wrap: wrap;
          flex-wrap: wrap;
        }
  
        .layout.no-wrap {
          -ms-flex-wrap: nowrap;
          -webkit-flex-wrap: nowrap;
          flex-wrap: nowrap;
        }
  
        .layout.center,
        .layout.center-center {
          -ms-flex-align: center;
          -webkit-align-items: center;
          align-items: center;
        }
  
        .layout.center-justified,
        .layout.center-center {
          -ms-flex-pack: center;
          -webkit-justify-content: center;
          justify-content: center;
        }
  
        .flex {
          -ms-flex: 1 1 0.000000001px;
          -webkit-flex: 1;
          flex: 1;
          -webkit-flex-basis: 0.000000001px;
          flex-basis: 0.000000001px;
        }
  
        .flex-auto {
          -ms-flex: 1 1 auto;
          -webkit-flex: 1 1 auto;
          flex: 1 1 auto;
        }
  
        .flex-none {
          -ms-flex: none;
          -webkit-flex: none;
          flex: none;
        }
      </style>
    </template>
  </dom-module>
  /* Basic flexbox reverse styles */
  <dom-module id="iron-flex-reverse">
    <template>
      <style>
        .layout.horizontal-reverse,
        .layout.vertical-reverse {
          display: -ms-flexbox;
          display: -webkit-flex;
          display: flex;
        }
  
        .layout.horizontal-reverse {
          -ms-flex-direction: row-reverse;
          -webkit-flex-direction: row-reverse;
          flex-direction: row-reverse;
        }
  
        .layout.vertical-reverse {
          -ms-flex-direction: column-reverse;
          -webkit-flex-direction: column-reverse;
          flex-direction: column-reverse;
        }
  
        .layout.wrap-reverse {
          -ms-flex-wrap: wrap-reverse;
          -webkit-flex-wrap: wrap-reverse;
          flex-wrap: wrap-reverse;
        }
      </style>
    </template>
  </dom-module>
  /* Flexbox alignment */
  <dom-module id="iron-flex-alignment">
    <template>
      <style>
        /**
         * Alignment in cross axis.
         */
        .layout.start {
          -ms-flex-align: start;
          -webkit-align-items: flex-start;
          align-items: flex-start;
        }
  
        .layout.center,
        .layout.center-center {
          -ms-flex-align: center;
          -webkit-align-items: center;
          align-items: center;
        }
  
        .layout.end {
          -ms-flex-align: end;
          -webkit-align-items: flex-end;
          align-items: flex-end;
        }
  
        .layout.baseline {
          -ms-flex-align: baseline;
          -webkit-align-items: baseline;
          align-items: baseline;
        }
  
        /**
         * Alignment in main axis.
         */
        .layout.start-justified {
          -ms-flex-pack: start;
          -webkit-justify-content: flex-start;
          justify-content: flex-start;
        }
  
        .layout.center-justified,
        .layout.center-center {
          -ms-flex-pack: center;
          -webkit-justify-content: center;
          justify-content: center;
        }
  
        .layout.end-justified {
          -ms-flex-pack: end;
          -webkit-justify-content: flex-end;
          justify-content: flex-end;
        }
  
        .layout.around-justified {
          -ms-flex-pack: distribute;
          -webkit-justify-content: space-around;
          justify-content: space-around;
        }
  
        .layout.justified {
          -ms-flex-pack: justify;
          -webkit-justify-content: space-between;
          justify-content: space-between;
        }
  
        /**
         * Self alignment.
         */
        .self-start {
          -ms-align-self: flex-start;
          -webkit-align-self: flex-start;
          align-self: flex-start;
        }
  
        .self-center {
          -ms-align-self: center;
          -webkit-align-self: center;
          align-self: center;
        }
  
        .self-end {
          -ms-align-self: flex-end;
          -webkit-align-self: flex-end;
          align-self: flex-end;
        }
  
        .self-stretch {
          -ms-align-self: stretch;
          -webkit-align-self: stretch;
          align-self: stretch;
        }
  
        .self-baseline {
          -ms-align-self: baseline;
          -webkit-align-self: baseline;
          align-self: baseline;
        }
  
        /**
         * multi-line alignment in main axis.
         */
        .layout.start-aligned {
          -ms-flex-line-pack: start;  /* IE10 */
          -ms-align-content: flex-start;
          -webkit-align-content: flex-start;
          align-content: flex-start;
        }
  
        .layout.end-aligned {
          -ms-flex-line-pack: end;  /* IE10 */
          -ms-align-content: flex-end;
          -webkit-align-content: flex-end;
          align-content: flex-end;
        }
  
        .layout.center-aligned {
          -ms-flex-line-pack: center;  /* IE10 */
          -ms-align-content: center;
          -webkit-align-content: center;
          align-content: center;
        }
  
        .layout.between-aligned {
          -ms-flex-line-pack: justify;  /* IE10 */
          -ms-align-content: space-between;
          -webkit-align-content: space-between;
          align-content: space-between;
        }
  
        .layout.around-aligned {
          -ms-flex-line-pack: distribute;  /* IE10 */
          -ms-align-content: space-around;
          -webkit-align-content: space-around;
          align-content: space-around;
        }
      </style>
    </template>
  </dom-module>
  /* Non-flexbox positioning helper styles */
  <dom-module id="iron-flex-factors">
    <template>
      <style>
        .flex,
        .flex-1 {
          -ms-flex: 1 1 0.000000001px;
          -webkit-flex: 1;
          flex: 1;
          -webkit-flex-basis: 0.000000001px;
          flex-basis: 0.000000001px;
        }
  
        .flex-2 {
          -ms-flex: 2;
          -webkit-flex: 2;
          flex: 2;
        }
  
        .flex-3 {
          -ms-flex: 3;
          -webkit-flex: 3;
          flex: 3;
        }
  
        .flex-4 {
          -ms-flex: 4;
          -webkit-flex: 4;
          flex: 4;
        }
  
        .flex-5 {
          -ms-flex: 5;
          -webkit-flex: 5;
          flex: 5;
        }
  
        .flex-6 {
          -ms-flex: 6;
          -webkit-flex: 6;
          flex: 6;
        }
  
        .flex-7 {
          -ms-flex: 7;
          -webkit-flex: 7;
          flex: 7;
        }
  
        .flex-8 {
          -ms-flex: 8;
          -webkit-flex: 8;
          flex: 8;
        }
  
        .flex-9 {
          -ms-flex: 9;
          -webkit-flex: 9;
          flex: 9;
        }
  
        .flex-10 {
          -ms-flex: 10;
          -webkit-flex: 10;
          flex: 10;
        }
  
        .flex-11 {
          -ms-flex: 11;
          -webkit-flex: 11;
          flex: 11;
        }
  
        .flex-12 {
          -ms-flex: 12;
          -webkit-flex: 12;
          flex: 12;
        }
      </style>
    </template>
  </dom-module>
  <dom-module id="iron-positioning">
    <template>
      <style>
        .block {
          display: block;
        }
  
        [hidden] {
          display: none !important;
        }
  
        .invisible {
          visibility: hidden !important;
        }
  
        .relative {
          position: relative;
        }
  
        .fit {
          position: absolute;
          top: 0;
          right: 0;
          bottom: 0;
          left: 0;
        }
  
        body.fullbleed {
          margin: 0;
          height: 100vh;
        }
  
        .scroll {
          -webkit-overflow-scrolling: touch;
          overflow: auto;
        }
  
        /* fixed position */
        .fixed-bottom,
        .fixed-left,
        .fixed-right,
        .fixed-top {
          position: fixed;
        }
  
        .fixed-top {
          top: 0;
          left: 0;
          right: 0;
        }
  
        .fixed-right {
          top: 0;
          right: 0;
          bottom: 0;
        }
  
        .fixed-bottom {
          right: 0;
          bottom: 0;
          left: 0;
        }
  
        .fixed-left {
          top: 0;
          bottom: 0;
          left: 0;
        }
      </style>
    </template>
  </dom-module>
  `;n.setAttribute("style","display: none;"),document.head.appendChild(n.content)},99257:(e,t,i)=>{i(94604);var n=i(15112),o=i(9672),a=i(87156);(0,o.k)({is:"iron-iconset-svg",properties:{name:{type:String,observer:"_nameChanged"},size:{type:Number,value:24},rtlMirroring:{type:Boolean,value:!1},useGlobalRtlAttribute:{type:Boolean,value:!1}},created:function(){this._meta=new n.P({type:"iconset",key:null,value:null})},attached:function(){this.style.display="none"},getIconNames:function(){return this._icons=this._createIconMap(),Object.keys(this._icons).map((function(e){return this.name+":"+e}),this)},applyIcon:function(e,t){this.removeIcon(e);var i=this._cloneIcon(t,this.rtlMirroring&&this._targetIsRTL(e));if(i){var n=(0,a.vz)(e.root||e);return n.insertBefore(i,n.childNodes[0]),e._svgIcon=i}return null},removeIcon:function(e){e._svgIcon&&((0,a.vz)(e.root||e).removeChild(e._svgIcon),e._svgIcon=null)},_targetIsRTL:function(e){if(null==this.__targetIsRTL)if(this.useGlobalRtlAttribute){var t=document.body&&document.body.hasAttribute("dir")?document.body:document.documentElement;this.__targetIsRTL="rtl"===t.getAttribute("dir")}else e&&e.nodeType!==Node.ELEMENT_NODE&&(e=e.host),this.__targetIsRTL=e&&"rtl"===window.getComputedStyle(e).direction;return this.__targetIsRTL},_nameChanged:function(){this._meta.value=null,this._meta.key=this.name,this._meta.value=this,this.async((function(){this.fire("iron-iconset-added",this,{node:window})}))},_createIconMap:function(){var e=Object.create(null);return(0,a.vz)(this).querySelectorAll("[id]").forEach((function(t){e[t.id]=t})),e},_cloneIcon:function(e,t){return this._icons=this._icons||this._createIconMap(),this._prepareSvgClone(this._icons[e],this.size,t)},_prepareSvgClone:function(e,t,i){if(e){var n=e.cloneNode(!0),o=document.createElementNS("http://www.w3.org/2000/svg","svg"),a=n.getAttribute("viewBox")||"0 0 "+t+" "+t,r="pointer-events: none; display: block; width: 100%; height: 100%;";return i&&n.hasAttribute("mirror-in-rtl")&&(r+="-webkit-transform:scale(-1,1);transform:scale(-1,1);transform-origin:center;"),o.setAttribute("viewBox",a),o.setAttribute("preserveAspectRatio","xMidYMid meet"),o.setAttribute("focusable","false"),o.style.cssText=r,o.appendChild(n).removeAttribute("id"),o}return null}})},8878:(e,t,i)=>{i(94604),i(8621),i(63207),i(30879),i(78814),i(60748),i(1656),i(57548),i(73962);var n=i(51644),o=i(26110),a=i(21006),r=i(98235),l=i(18890),s=i(9672),d=i(87156),c=i(81668),p=i(50856),h=i(62276);const m=(0,l.x)(HTMLElement);(0,s.k)({_template:p.d`
      <style include="paper-dropdown-menu-shared-styles"></style>
  
      <paper-menu-button id="menuButton" vertical-align="[[verticalAlign]]" horizontal-align="[[horizontalAlign]]" dynamic-align="[[dynamicAlign]]" vertical-offset="[[_computeMenuVerticalOffset(noLabelFloat, verticalOffset)]]" disabled="[[disabled]]" no-animations="[[noAnimations]]" on-iron-select="_onIronSelect" on-iron-deselect="_onIronDeselect" opened="{{opened}}" close-on-activate allow-outside-scroll="[[allowOutsideScroll]]" restore-focus-on-close="[[restoreFocusOnClose]]" expand-sizing-target-for-scrollbars="[[expandSizingTargetForScrollbars]]">
        <!-- support hybrid mode: user might be using paper-menu-button 1.x which distributes via <content> -->
        <div class="dropdown-trigger" slot="dropdown-trigger">
          <paper-ripple></paper-ripple>
          <!-- paper-input has type="text" for a11y, do not remove -->
          <paper-input id="input" type="text" invalid="[[invalid]]" readonly disabled="[[disabled]]" value="[[value]]" placeholder="[[placeholder]]" error-message="[[errorMessage]]" always-float-label="[[alwaysFloatLabel]]" no-label-float="[[noLabelFloat]]" label="[[label]]" input-role="button" input-aria-haspopup="listbox" autocomplete="off">
            <!-- support hybrid mode: user might be using paper-input 1.x which distributes via <content> -->
            <iron-icon icon="paper-dropdown-menu:arrow-drop-down" suffix slot="suffix"></iron-icon>
          </paper-input>
        </div>
        <slot id="content" name="dropdown-content" slot="dropdown-content"></slot>
      </paper-menu-button>
  `,is:"paper-dropdown-menu",behaviors:[n.P,o.a,a.V,r.x],properties:{selectedItemLabel:{type:String,notify:!0,readOnly:!0},selectedItem:{type:Object,notify:!0,readOnly:!0},value:{type:String,notify:!0},label:{type:String},placeholder:{type:String},errorMessage:{type:String},opened:{type:Boolean,notify:!0,value:!1,observer:"_openedChanged"},allowOutsideScroll:{type:Boolean,value:!1},noLabelFloat:{type:Boolean,value:!1,reflectToAttribute:!0},alwaysFloatLabel:{type:Boolean,value:!1},noAnimations:{type:Boolean,value:!1},horizontalAlign:{type:String,value:"right"},verticalAlign:{type:String,value:"top"},verticalOffset:Number,dynamicAlign:{type:Boolean},restoreFocusOnClose:{type:Boolean,value:!0},expandSizingTargetForScrollbars:{type:Boolean,value:!1}},listeners:{tap:"_onTap"},keyBindings:{"up down":"open",esc:"close"},observers:["_selectedItemChanged(selectedItem)"],_attachDom(e){const t=(0,h.r)(this);return t.attachShadow({mode:"open",delegatesFocus:!0,shadyUpgradeFragment:e}),t.shadowRoot.appendChild(e),m.prototype._attachDom.call(this,e)},focus(){this.$.input._focusableElement.focus()},attached:function(){var e=this.contentElement;e&&e.selectedItem&&this._setSelectedItem(e.selectedItem)},get contentElement(){for(var e=(0,d.vz)(this.$.content).getDistributedNodes(),t=0,i=e.length;t<i;t++)if(e[t].nodeType===Node.ELEMENT_NODE)return e[t]},open:function(){this.$.menuButton.open()},close:function(){this.$.menuButton.close()},_onIronSelect:function(e){this._setSelectedItem(e.detail.item)},_onIronDeselect:function(e){this._setSelectedItem(null)},_onTap:function(e){c.nJ(e)===this&&this.open()},_selectedItemChanged:function(e){var t="";t=e?e.label||e.getAttribute("label")||e.textContent.trim():"",this.value=t,this._setSelectedItemLabel(t)},_computeMenuVerticalOffset:function(e,t){return t||(e?-4:8)},_getValidity:function(e){return this.disabled||!this.required||this.required&&!!this.value},_openedChanged:function(){var e=this.opened?"true":"false",t=this.contentElement;t&&t.setAttribute("aria-expanded",e)}})},33760:(e,t,i)=>{i.d(t,{U:()=>a});i(94604);var n=i(51644),o=i(26110);const a=[n.P,o.a,{hostAttributes:{role:"option",tabindex:"0"}}]},89194:(e,t,i)=>{i(94604),i(65660),i(1656),i(47686);var n=i(9672),o=i(50856);(0,n.k)({_template:o.d`
      <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>
  `,is:"paper-item-body"})},97968:(e,t,i)=>{i(65660),i(15495),i(1656),i(47686);const n=document.createElement("template");n.setAttribute("style","display: none;"),n.innerHTML="<dom-module id=\"paper-item-shared-styles\">\n  <template>\n    <style>\n      :host, .paper-item {\n        display: block;\n        position: relative;\n        min-height: var(--paper-item-min-height, 48px);\n        padding: 0px 16px;\n      }\n\n      .paper-item {\n        @apply --paper-font-subhead;\n        border:none;\n        outline: none;\n        background: white;\n        width: 100%;\n        text-align: left;\n      }\n\n      :host([hidden]), .paper-item[hidden] {\n        display: none !important;\n      }\n\n      :host(.iron-selected), .paper-item.iron-selected {\n        font-weight: var(--paper-item-selected-weight, bold);\n\n        @apply --paper-item-selected;\n      }\n\n      :host([disabled]), .paper-item[disabled] {\n        color: var(--paper-item-disabled-color, var(--disabled-text-color));\n\n        @apply --paper-item-disabled;\n      }\n\n      :host(:focus), .paper-item:focus {\n        position: relative;\n        outline: 0;\n\n        @apply --paper-item-focused;\n      }\n\n      :host(:focus):before, .paper-item:focus:before {\n        @apply --layout-fit;\n\n        background: currentColor;\n        content: '';\n        opacity: var(--dark-divider-opacity);\n        pointer-events: none;\n\n        @apply --paper-item-focused-before;\n      }\n    </style>\n  </template>\n</dom-module>",document.head.appendChild(n.content)},53973:(e,t,i)=>{i(94604),i(65660),i(97968);var n=i(9672),o=i(50856),a=i(33760);(0,n.k)({_template:o.d`
      <style include="paper-item-shared-styles">
        :host {
          @apply --layout-horizontal;
          @apply --layout-center;
          @apply --paper-font-subhead;
  
          @apply --paper-item;
        }
      </style>
      <slot></slot>
  `,is:"paper-item",behaviors:[a.U]})},51095:(e,t,i)=>{i(94604),i(1656);var n=i(78161),o=i(9672),a=i(50856);(0,o.k)({_template:a.d`
      <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>
  `,is:"paper-listbox",behaviors:[n.i],hostAttributes:{role:"listbox"}})},54444:(e,t,i)=>{i(94604);var n=i(9672),o=i(87156),a=i(50856);(0,n.k)({_template:a.d`
      <style>
        :host {
          display: block;
          position: absolute;
          outline: none;
          z-index: 1002;
          -moz-user-select: none;
          -ms-user-select: none;
          -webkit-user-select: none;
          user-select: none;
          cursor: default;
        }
  
        #tooltip {
          display: block;
          outline: none;
          @apply --paper-font-common-base;
          font-size: 10px;
          line-height: 1;
          background-color: var(--paper-tooltip-background, #616161);
          color: var(--paper-tooltip-text-color, white);
          padding: 8px;
          border-radius: 2px;
          @apply --paper-tooltip;
        }
  
        @keyframes keyFrameScaleUp {
          0% {
            transform: scale(0.0);
          }
          100% {
            transform: scale(1.0);
          }
        }
  
        @keyframes keyFrameScaleDown {
          0% {
            transform: scale(1.0);
          }
          100% {
            transform: scale(0.0);
          }
        }
  
        @keyframes keyFrameFadeInOpacity {
          0% {
            opacity: 0;
          }
          100% {
            opacity: var(--paper-tooltip-opacity, 0.9);
          }
        }
  
        @keyframes keyFrameFadeOutOpacity {
          0% {
            opacity: var(--paper-tooltip-opacity, 0.9);
          }
          100% {
            opacity: 0;
          }
        }
  
        @keyframes keyFrameSlideDownIn {
          0% {
            transform: translateY(-2000px);
            opacity: 0;
          }
          10% {
            opacity: 0.2;
          }
          100% {
            transform: translateY(0);
            opacity: var(--paper-tooltip-opacity, 0.9);
          }
        }
  
        @keyframes keyFrameSlideDownOut {
          0% {
            transform: translateY(0);
            opacity: var(--paper-tooltip-opacity, 0.9);
          }
          10% {
            opacity: 0.2;
          }
          100% {
            transform: translateY(-2000px);
            opacity: 0;
          }
        }
  
        .fade-in-animation {
          opacity: 0;
          animation-delay: var(--paper-tooltip-delay-in, 500ms);
          animation-name: keyFrameFadeInOpacity;
          animation-iteration-count: 1;
          animation-timing-function: ease-in;
          animation-duration: var(--paper-tooltip-duration-in, 500ms);
          animation-fill-mode: forwards;
          @apply --paper-tooltip-animation;
        }
  
        .fade-out-animation {
          opacity: var(--paper-tooltip-opacity, 0.9);
          animation-delay: var(--paper-tooltip-delay-out, 0ms);
          animation-name: keyFrameFadeOutOpacity;
          animation-iteration-count: 1;
          animation-timing-function: ease-in;
          animation-duration: var(--paper-tooltip-duration-out, 500ms);
          animation-fill-mode: forwards;
          @apply --paper-tooltip-animation;
        }
  
        .scale-up-animation {
          transform: scale(0);
          opacity: var(--paper-tooltip-opacity, 0.9);
          animation-delay: var(--paper-tooltip-delay-in, 500ms);
          animation-name: keyFrameScaleUp;
          animation-iteration-count: 1;
          animation-timing-function: ease-in;
          animation-duration: var(--paper-tooltip-duration-in, 500ms);
          animation-fill-mode: forwards;
          @apply --paper-tooltip-animation;
        }
  
        .scale-down-animation {
          transform: scale(1);
          opacity: var(--paper-tooltip-opacity, 0.9);
          animation-delay: var(--paper-tooltip-delay-out, 500ms);
          animation-name: keyFrameScaleDown;
          animation-iteration-count: 1;
          animation-timing-function: ease-in;
          animation-duration: var(--paper-tooltip-duration-out, 500ms);
          animation-fill-mode: forwards;
          @apply --paper-tooltip-animation;
        }
  
        .slide-down-animation {
          transform: translateY(-2000px);
          opacity: 0;
          animation-delay: var(--paper-tooltip-delay-out, 500ms);
          animation-name: keyFrameSlideDownIn;
          animation-iteration-count: 1;
          animation-timing-function: cubic-bezier(0.0, 0.0, 0.2, 1);
          animation-duration: var(--paper-tooltip-duration-out, 500ms);
          animation-fill-mode: forwards;
          @apply --paper-tooltip-animation;
        }
  
        .slide-down-animation-out {
          transform: translateY(0);
          opacity: var(--paper-tooltip-opacity, 0.9);
          animation-delay: var(--paper-tooltip-delay-out, 500ms);
          animation-name: keyFrameSlideDownOut;
          animation-iteration-count: 1;
          animation-timing-function: cubic-bezier(0.4, 0.0, 1, 1);
          animation-duration: var(--paper-tooltip-duration-out, 500ms);
          animation-fill-mode: forwards;
          @apply --paper-tooltip-animation;
        }
  
        .cancel-animation {
          animation-delay: -30s !important;
        }
  
        /* Thanks IE 10. */
  
        .hidden {
          display: none !important;
        }
      </style>
  
      <div id="tooltip" class="hidden">
        <slot></slot>
      </div>
  `,is:"paper-tooltip",hostAttributes:{role:"tooltip",tabindex:-1},properties:{for:{type:String,observer:"_findTarget"},manualMode:{type:Boolean,value:!1,observer:"_manualModeChanged"},position:{type:String,value:"bottom"},fitToVisibleBounds:{type:Boolean,value:!1},offset:{type:Number,value:14},marginTop:{type:Number,value:14},animationDelay:{type:Number,value:500,observer:"_delayChange"},animationEntry:{type:String,value:""},animationExit:{type:String,value:""},animationConfig:{type:Object,value:function(){return{entry:[{name:"fade-in-animation",node:this,timing:{delay:0}}],exit:[{name:"fade-out-animation",node:this}]}}},_showing:{type:Boolean,value:!1}},listeners:{webkitAnimationEnd:"_onAnimationEnd"},get target(){var e=(0,o.vz)(this).parentNode,t=(0,o.vz)(this).getOwnerRoot();return this.for?(0,o.vz)(t).querySelector("#"+this.for):e.nodeType==Node.DOCUMENT_FRAGMENT_NODE?t.host:e},attached:function(){this._findTarget()},detached:function(){this.manualMode||this._removeListeners()},playAnimation:function(e){"entry"===e?this.show():"exit"===e&&this.hide()},cancelAnimation:function(){this.$.tooltip.classList.add("cancel-animation")},show:function(){if(!this._showing){if(""===(0,o.vz)(this).textContent.trim()){for(var e=!0,t=(0,o.vz)(this).getEffectiveChildNodes(),i=0;i<t.length;i++)if(""!==t[i].textContent.trim()){e=!1;break}if(e)return}this._showing=!0,this.$.tooltip.classList.remove("hidden"),this.$.tooltip.classList.remove("cancel-animation"),this.$.tooltip.classList.remove(this._getAnimationType("exit")),this.updatePosition(),this._animationPlaying=!0,this.$.tooltip.classList.add(this._getAnimationType("entry"))}},hide:function(){if(this._showing){if(this._animationPlaying)return this._showing=!1,void this._cancelAnimation();this._onAnimationFinish(),this._showing=!1,this._animationPlaying=!0}},updatePosition:function(){if(this._target&&this.offsetParent){var e=this.offset;14!=this.marginTop&&14==this.offset&&(e=this.marginTop);var t,i,n=this.offsetParent.getBoundingClientRect(),o=this._target.getBoundingClientRect(),a=this.getBoundingClientRect(),r=(o.width-a.width)/2,l=(o.height-a.height)/2,s=o.left-n.left,d=o.top-n.top;switch(this.position){case"top":t=s+r,i=d-a.height-e;break;case"bottom":t=s+r,i=d+o.height+e;break;case"left":t=s-a.width-e,i=d+l;break;case"right":t=s+o.width+e,i=d+l}this.fitToVisibleBounds?(n.left+t+a.width>window.innerWidth?(this.style.right="0px",this.style.left="auto"):(this.style.left=Math.max(0,t)+"px",this.style.right="auto"),n.top+i+a.height>window.innerHeight?(this.style.bottom=n.height-d+e+"px",this.style.top="auto"):(this.style.top=Math.max(-n.top,i)+"px",this.style.bottom="auto")):(this.style.left=t+"px",this.style.top=i+"px")}},_addListeners:function(){this._target&&(this.listen(this._target,"mouseenter","show"),this.listen(this._target,"focus","show"),this.listen(this._target,"mouseleave","hide"),this.listen(this._target,"blur","hide"),this.listen(this._target,"tap","hide")),this.listen(this.$.tooltip,"animationend","_onAnimationEnd"),this.listen(this,"mouseenter","hide")},_findTarget:function(){this.manualMode||this._removeListeners(),this._target=this.target,this.manualMode||this._addListeners()},_delayChange:function(e){500!==e&&this.updateStyles({"--paper-tooltip-delay-in":e+"ms"})},_manualModeChanged:function(){this.manualMode?this._removeListeners():this._addListeners()},_cancelAnimation:function(){this.$.tooltip.classList.remove(this._getAnimationType("entry")),this.$.tooltip.classList.remove(this._getAnimationType("exit")),this.$.tooltip.classList.remove("cancel-animation"),this.$.tooltip.classList.add("hidden")},_onAnimationFinish:function(){this._showing&&(this.$.tooltip.classList.remove(this._getAnimationType("entry")),this.$.tooltip.classList.remove("cancel-animation"),this.$.tooltip.classList.add(this._getAnimationType("exit")))},_onAnimationEnd:function(){this._animationPlaying=!1,this._showing||(this.$.tooltip.classList.remove(this._getAnimationType("exit")),this.$.tooltip.classList.add("hidden"))},_getAnimationType:function(e){if("entry"===e&&""!==this.animationEntry)return this.animationEntry;if("exit"===e&&""!==this.animationExit)return this.animationExit;if(this.animationConfig[e]&&"string"==typeof this.animationConfig[e][0].name){if(this.animationConfig[e][0].timing&&this.animationConfig[e][0].timing.delay&&0!==this.animationConfig[e][0].timing.delay){var t=this.animationConfig[e][0].timing.delay;"entry"===e?this.updateStyles({"--paper-tooltip-delay-in":t+"ms"}):"exit"===e&&this.updateStyles({"--paper-tooltip-delay-out":t+"ms"})}return this.animationConfig[e][0].name}},_removeListeners:function(){this._target&&(this.unlisten(this._target,"mouseenter","show"),this.unlisten(this._target,"focus","show"),this.unlisten(this._target,"mouseleave","hide"),this.unlisten(this._target,"blur","hide"),this.unlisten(this._target,"tap","hide")),this.unlisten(this.$.tooltip,"animationend","_onAnimationEnd"),this.unlisten(this,"mouseenter","hide")}})},32930:(e,t,i)=>{i.d(t,{v:()=>o});var n=i(39030);function o(e="",t=!1,i=""){return(0,n.eZ)({descriptor:n=>({get(){var n,o,a;const r="slot"+(e?`[name=${e}]`:":not([name])");let l=null!==(a=null===(o=null===(n=this.renderRoot)||void 0===n?void 0:n.querySelector(r))||void 0===o?void 0:o.assignedNodes({flatten:t}))&&void 0!==a?a:[];return i&&(l=l.filter((e=>e.nodeType===Node.ELEMENT_NODE&&e.matches(i)))),l},enumerable:!0,configurable:!0})})}}}]);
  //# sourceMappingURL=b67b7590.js.map