UNPKG

iobroker.lovelace

Version:

With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI

60 lines 39 kB
"use strict";(self.rspackChunkhome_assistant_frontend=self.rspackChunkhome_assistant_frontend||[]).push([[960],{64481:function(a,t,e){e.d(t,{D:function(){return o},J:function(){return l}});e(16280),e(3362),e(55815),e(64979),e(79739);let i=!1;try{i="true"===window.localStorage.getItem("disableViewTransition")}catch(s){}const o=a=>{i=a},r=a=>{if(!(a=>(a instanceof DOMException||a instanceof Error)&&"AbortError"===a.name)(a))throw a},l=a=>{if(!document.startViewTransition||i)return a(!1),Promise.resolve();let t=!1;try{const e=document.startViewTransition(()=>{t=!0,a(!0)});return e.ready.catch(r),e.finished.catch(r)}catch(e){return console.warn("View transition failed, falling back to direct execution.",e),t?Promise.reject(e):(a(!1),Promise.resolve())}}},93444:function(a,t,e){var i=e(40445),o=e(5124),r=e(67576);let l,s,n=a=>a;class d extends o.WF{render(){return(0,o.qy)(l||(l=n` <footer> <slot name="secondaryAction"></slot> <slot name="primaryAction"></slot> </footer> `))}static get styles(){return[(0,o.AH)(s||(s=n`footer{display:flex;gap:var(--ha-space-3);justify-content:flex-end;align-items:center;width:100%}`))]}}d=(0,i.Cg)([(0,r.EM)("ha-dialog-footer")],d)},76538:function(a,t,e){e(62953);var i=e(40445),o=e(5124),r=e(67576);let l,s,n,d,h,c,p=a=>a;class v extends o.WF{render(){const a=(0,o.qy)(l||(l=p`<div class="header-title"> <slot name="title"></slot> </div>`)),t=(0,o.qy)(s||(s=p`<div class="header-subtitle"> <slot name="subtitle"></slot> </div>`));return(0,o.qy)(n||(n=p` <header class="header"> <div class="header-bar"> <section class="header-navigation-icon"> <slot name="navigationIcon"></slot> </section> <section class="header-content"> ${0} </section> <section class="header-action-items"> <slot name="actionItems"></slot> </section> </div> <slot></slot> </header> `),"above"===this.subtitlePosition?(0,o.qy)(d||(d=p`${0}${0}`),t,a):(0,o.qy)(h||(h=p`${0}${0}`),a,t))}static get styles(){return[(0,o.AH)(c||(c=p`:host{display:block}:host([show-border]){border-bottom:1px solid var(--mdc-dialog-scroll-divider-color,rgba(0,0,0,.12))}.header-bar{display:flex;flex-direction:row;align-items:center;padding:0 var(--ha-space-1);box-sizing:border-box}.header-content{flex:1;padding:10px var(--ha-space-1);display:flex;flex-direction:column;justify-content:center;min-height:var(--ha-space-12);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.header-title{height:var(--ha-dialog-header-title-height,calc(var(--ha-font-size-xl) + var(--ha-space-1)));font-size:var(--ha-font-size-xl);line-height:var(--ha-line-height-condensed);font-weight:var(--ha-font-weight-medium);color:var(--ha-dialog-header-title-color,var(--primary-text-color))}.header-subtitle{font-size:var(--ha-font-size-m);line-height:var(--ha-line-height-normal);color:var(--ha-dialog-header-subtitle-color,var(--secondary-text-color))}@media all and (min-width:450px) and (min-height:500px){.header-bar{padding:0 var(--ha-space-2)}}.header-navigation-icon{flex:none;min-width:var(--ha-space-2);height:100%;display:flex;flex-direction:row}.header-action-items{flex:none;min-width:var(--ha-space-2);height:100%;display:flex;flex-direction:row}`))]}constructor(...a){super(...a),this.subtitlePosition="below",this.showBorder=!1}}(0,i.Cg)([(0,r.MZ)({type:String,attribute:"subtitle-position"})],v.prototype,"subtitlePosition",void 0),(0,i.Cg)([(0,r.MZ)({type:Boolean,reflect:!0,attribute:"show-border"})],v.prototype,"showBorder",void 0),v=(0,i.Cg)([(0,r.EM)("ha-dialog-header")],v)},72554:function(a,t,e){e.a(a,async function(a,t){try{e(3362),e(62953),e(49255);var i=e(40445),o=e(93900),r=e(35211),l=e(5124),s=e(67576),n=e(63672),d=e(1087),h=e(64481),c=e(22792),p=e(59992),v=e(14503),u=e(22348),g=(e(76538),e(26300)),m=a([o,g,p]);[o,g,p]=m.then?(await m)():m;let f,b,w,y,x,_,$,C=a=>a;const k="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z";class S extends((0,p.V)(l.WF)){connectedCallback(){super.connectedCallback(),this.addEventListener("dialog-set-fullscreen",this._handleFullscreenChanged)}get scrollableElement(){return this.bodyContainer}updated(a){super.updated(a),a.has("open")&&(this._open=this.open)}render(){var a,t,e;return(0,l.qy)(f||(f=C` <wa-dialog .open="${0}" .lightDismiss="${0}" without-header aria-labelledby="${0}" aria-describedby="${0}" @keydown="${0}" @wa-hide="${0}" @wa-show="${0}" @wa-after-show="${0}" @wa-after-hide="${0}"> ${0} <div class="content-wrapper"> <div class="body ha-scrollbar" @scroll="${0}"> <slot></slot> </div> ${0} </div> <slot name="footer" slot="footer"></slot> </wa-dialog> `),this._open,!this.preventScrimClose,(0,n.J)(this.ariaLabelledBy||(void 0!==this.headerTitle?"ha-dialog-title":void 0)),(0,n.J)(this.ariaDescribedBy),this._handleKeyDown,this._handleHide,this._handleShow,this._handleAfterShow,this._handleAfterHide,this.withoutHeader?l.s6:(0,l.qy)(b||(b=C`<slot name="header"> <ha-dialog-header .subtitlePosition="${0}" .showBorder="${0}"> <slot name="headerNavigationIcon" slot="navigationIcon"> <ha-icon-button data-dialog="close" .label="${0}" .path="${0}"></ha-icon-button> </slot> ${0} ${0} <slot name="headerActionItems" slot="actionItems"></slot> </ha-dialog-header> </slot>`),this.headerSubtitlePosition,this._bodyScrolled,null!==(a=null===(t=this._i18n)||void 0===t||null===(e=t.localize)||void 0===e?void 0:e.call(t,"ui.common.close"))&&void 0!==a?a:"Close",k,void 0!==this.headerTitle?(0,l.qy)(w||(w=C`<span slot="title" class="title" id="ha-dialog-title"> ${0} </span>`),this.headerTitle):(0,l.qy)(y||(y=C`<slot name="headerTitle" slot="title"></slot>`)),void 0!==this.headerSubtitle?(0,l.qy)(x||(x=C`<span slot="subtitle">${0}</span>`),this.headerSubtitle):(0,l.qy)(_||(_=C`<slot name="headerSubtitle" slot="subtitle"></slot>`))),this._handleBodyScroll,this.renderScrollableFades())}disconnectedCallback(){this.removeEventListener("dialog-set-fullscreen",this._handleFullscreenChanged),this._setFullscreen(!1),super.disconnectedCallback(),this._open=!1}_handleFullscreenChanged(a){this._open?(0,h.J)(()=>{this._setFullscreen(a.detail)}):this._setFullscreen(a.detail)}_setFullscreen(a){this.toggleAttribute("fullscreen",a)}_handleBodyScroll(a){this._bodyScrolled=a.target.scrollTop>0}_handleKeyDown(a){"Escape"===a.key&&(this._escapePressed=!0,this.preventScrimClose&&a.preventDefault(),a.stopPropagation(),a.currentTarget.open=!1)}_handleHide(a){var t;const e=(null===(t=a.detail)||void 0===t?void 0:t.source)===a.target.dialog;this.preventScrimClose&&this._escapePressed&&e&&a.preventDefault(),this._escapePressed=!1}static get styles(){return[...super.styles,v.dp,(0,l.AH)($||($=C`wa-dialog{--full-width:var( --ha-dialog-width-full, min(95vw, var(--safe-width)) );--width:min(var(--ha-dialog-width-md, 580px), var(--full-width));--spacing:var(--dialog-content-padding, var(--ha-space-6));--show-duration:var(--ha-dialog-show-duration, 200ms);--hide-duration:var(--ha-dialog-hide-duration, 200ms);--wa-color-surface-raised:var( --ha-dialog-surface-background, var(--card-background-color, var(--ha-color-surface-default)) );--wa-panel-border-radius:var( --ha-dialog-border-radius, var(--ha-border-radius-3xl) );max-width:var(--ha-dialog-max-width,var(--safe-width))}@media (prefers-reduced-motion:reduce){wa-dialog{--show-duration:0ms;--hide-duration:0ms}}:host([width=small]) wa-dialog{--width:min(var(--ha-dialog-width-sm, 320px), var(--full-width))}:host([width=large]) wa-dialog{--width:min(var(--ha-dialog-width-lg, 1024px), var(--full-width))}:host([fullscreen]) wa-dialog,:host([width=full]) wa-dialog{--width:var(--full-width)}:host([fullscreen]) wa-dialog::part(dialog){min-height:var(--safe-height);max-height:var(--safe-height);margin-top:0;transform:none}:host([fullscreen]) .content-wrapper{overflow:hidden}:host([fullscreen]) .body{overflow:hidden;padding:0}wa-dialog::part(dialog){-webkit-backdrop-filter:var(--ha-dialog-surface-backdrop-filter,none);backdrop-filter:var(--ha-dialog-surface-backdrop-filter,none);box-shadow:var(--dialog-box-shadow,var(--wa-shadow-l));color:var(--primary-text-color);min-width:var(--width,var(--full-width));max-width:var(--width,var(--full-width));max-height:var(--ha-dialog-max-height,calc(var(--safe-height) - var(--ha-space-20)));min-height:var(--ha-dialog-min-height);margin-top:var(--dialog-surface-margin-top,auto);transform:translate(calc(var(--safe-area-offset-left,0px) - var(--safe-area-offset-right,0px)),calc(var(--safe-area-offset-top,0px) - var(--safe-area-offset-bottom,0px)));display:flex;flex-direction:column;overflow:hidden}wa-dialog::part(dialog)::backdrop{-webkit-backdrop-filter:var(--ha-dialog-scrim-backdrop-filter,var(--dialog-backdrop-filter,none));backdrop-filter:var(--ha-dialog-scrim-backdrop-filter,var(--dialog-backdrop-filter,none));background-color:var(--mdc-dialog-scrim-color,none)}@media all and (max-width:450px),all and (max-height:500px){:host([type=standard]){--ha-dialog-border-radius:0}:host([type=standard]) wa-dialog{--full-width:var(--ha-dialog-width-full, 100vw);--width:var(--full-width)}:host([type=standard]) wa-dialog::part(dialog){min-height:var(--ha-dialog-min-height,100vh);min-height:var(--ha-dialog-min-height,100dvh);max-height:var(--ha-dialog-max-height,100vh);max-height:var(--ha-dialog-max-height,100dvh);margin-top:0;margin-bottom:0;padding-top:var(--safe-area-inset-top);padding-bottom:var(--safe-area-inset-bottom);padding-left:var(--safe-area-inset-left);padding-right:var(--safe-area-inset-right);transform:none}}.header-title-container{display:flex;align-items:center}.header-title{margin:0;margin-bottom:0;color:var(--ha-dialog-header-title-color,var(--primary-text-color));font-size:var( --ha-dialog-header-title-font-size, var(--ha-font-size-2xl) );line-height:var( --ha-dialog-header-title-line-height, var(--ha-line-height-condensed) );font-weight:var(--ha-dialog-header-title-font-weight,var(--ha-font-weight-normal));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin-right:var(--ha-space-3)}wa-dialog::part(body){padding:0;display:flex;flex-direction:column;max-width:100%;overflow:hidden}.content-wrapper{position:relative;flex:1;display:flex;flex-direction:column;min-height:0}.body{position:var(--dialog-content-position,relative);padding:var(--dialog-content-padding,0 var(--ha-space-6) var(--ha-space-6) var(--ha-space-6));overflow:auto;flex-grow:1}:host([flexcontent]) .body{max-width:100%;flex:1;display:flex;flex-direction:column}wa-dialog::part(footer){padding:0}::slotted([slot=footer]){display:flex;padding:var(--ha-space-3) var(--ha-space-4) var(--ha-space-4) var(--ha-space-4);gap:var(--ha-space-3);justify-content:flex-end;align-items:center;width:100%}`))]}constructor(...a){super(...a),this.open=!1,this.type="standard",this.width="medium",this.preventScrimClose=!1,this.headerSubtitlePosition="below",this.flexContent=!1,this.withoutHeader=!1,this._open=!1,this._bodyScrolled=!1,this._escapePressed=!1,this._handleShow=async a=>{a.eventPhase===Event.AT_TARGET&&(this._open=!0,(0,d.r)(this,"opened"),await this.updateComplete,requestAnimationFrame(()=>{var a,t;if(null!==(a=this._hassConfig)&&void 0!==a&&a.auth.external&&(0,u.V)(this._hassConfig.auth.external)){const a=this.querySelector("[autofocus]");return void(null!==a&&(a.id||(a.id="ha-dialog-autofocus"),this._hassConfig.auth.external.fireMessage({type:"focus_element",payload:{element_id:a.id}})))}null===(t=this.querySelector("[autofocus]"))||void 0===t||t.focus()}))},this._handleAfterShow=a=>{a.eventPhase===Event.AT_TARGET&&(0,d.r)(this,"after-show")},this._handleAfterHide=a=>{a.eventPhase===Event.AT_TARGET&&(this._open=!1,this._setFullscreen(!1),(0,d.r)(this,"closed"))}}}(0,i.Cg)([(0,s.MZ)({attribute:"aria-labelledby"})],S.prototype,"ariaLabelledBy",void 0),(0,i.Cg)([(0,s.MZ)({attribute:"aria-describedby"})],S.prototype,"ariaDescribedBy",void 0),(0,i.Cg)([(0,s.MZ)({type:Boolean,reflect:!0})],S.prototype,"open",void 0),(0,i.Cg)([(0,s.MZ)({reflect:!0})],S.prototype,"type",void 0),(0,i.Cg)([(0,s.MZ)({type:String,reflect:!0,attribute:"width"})],S.prototype,"width",void 0),(0,i.Cg)([(0,s.MZ)({type:Boolean,reflect:!0,attribute:"prevent-scrim-close"})],S.prototype,"preventScrimClose",void 0),(0,i.Cg)([(0,s.MZ)({attribute:"header-title"})],S.prototype,"headerTitle",void 0),(0,i.Cg)([(0,s.MZ)({attribute:"header-subtitle"})],S.prototype,"headerSubtitle",void 0),(0,i.Cg)([(0,s.MZ)({type:String,attribute:"header-subtitle-position"})],S.prototype,"headerSubtitlePosition",void 0),(0,i.Cg)([(0,s.MZ)({type:Boolean,reflect:!0,attribute:"flexcontent"})],S.prototype,"flexContent",void 0),(0,i.Cg)([(0,s.MZ)({type:Boolean,attribute:"without-header"})],S.prototype,"withoutHeader",void 0),(0,i.Cg)([(0,s.wk)()],S.prototype,"_open",void 0),(0,i.Cg)([(0,s.P)(".body")],S.prototype,"bodyContainer",void 0),(0,i.Cg)([(0,s.wk)(),(0,r.Fg)({context:c.D5,subscribe:!0})],S.prototype,"_i18n",void 0),(0,i.Cg)([(0,s.wk)(),(0,r.Fg)({context:c.WF,subscribe:!0})],S.prototype,"_hassConfig",void 0),(0,i.Cg)([(0,s.wk)()],S.prototype,"_bodyScrolled",void 0),(0,i.Cg)([(0,s.Ls)({passive:!0})],S.prototype,"_handleBodyScroll",null),S=(0,i.Cg)([(0,s.EM)("ha-dialog")],S),t()}catch(f){t(f)}})},26300:function(a,t,e){e.a(a,async function(a,i){try{e.r(t),e.d(t,{HaIconButton:function(){return g}});e(62953);var o=e(40445),r=e(5124),l=e(67576),s=e(63672),n=e(18350),d=(e(67094),a([n]));n=(d.then?(await d)():d)[0];let h,c,p,v,u=a=>a;class g extends r.WF{render(){return(0,r.qy)(h||(h=u` <ha-button appearance="plain" variant="neutral" aria-label="${0}" title="${0}" aria-haspopup="${0}" .disabled="${0}" .iconTag="${0}" .href="${0}" .target="${0}" .rel="${0}" .download="${0}"> ${0} </ha-button> `),(0,s.J)(this.label),(0,s.J)(this.hideTitle?void 0:this.label),(0,s.J)(this.ariaHasPopup),this.disabled,this.path?"ha-svg-icon":"span",this.href,this.target,this.rel,this.download,this.path?(0,r.qy)(c||(c=u`<ha-svg-icon aria-hidden="true" .path="${0}"></ha-svg-icon>`),this.path):(0,r.qy)(p||(p=u`<span><slot></slot></span>`)))}constructor(...a){super(...a),this.disabled=!1,this.hideTitle=!1,this.selected=!1}}g.shadowRootOptions={mode:"open",delegatesFocus:!0},g.styles=(0,r.AH)(v||(v=u`:host{display:inline-block;outline:0;--ha-button-height:var(--ha-icon-button-size, 48px)}ha-button{position:relative;isolation:isolate;--wa-form-control-padding-inline:var( --ha-icon-button-padding-inline, --ha-space-2 );--wa-color-on-normal:currentColor;--wa-color-fill-quiet:transparent;--ha-button-label-overflow:visible}ha-button::after{content:"";position:absolute;inset:0;z-index:-1;border-radius:50%;background-color:currentColor;opacity:0;pointer-events:none}ha-button::part(base){width:var(--wa-form-control-height);aspect-ratio:1;outline-offset:-4px}ha-button::part(label){display:flex}:host([selected]) ha-button::after{opacity:.1}@media (hover:hover){:host(:hover:not([disabled])) ha-button::after{opacity:.1}}`)),(0,o.Cg)([(0,l.MZ)({type:Boolean,reflect:!0})],g.prototype,"disabled",void 0),(0,o.Cg)([(0,l.MZ)({type:String})],g.prototype,"path",void 0),(0,o.Cg)([(0,l.MZ)({type:String})],g.prototype,"label",void 0),(0,o.Cg)([(0,l.MZ)({type:String,attribute:"aria-haspopup"})],g.prototype,"ariaHasPopup",void 0),(0,o.Cg)([(0,l.MZ)({attribute:"hide-title",type:Boolean})],g.prototype,"hideTitle",void 0),(0,o.Cg)([(0,l.MZ)({type:Boolean,reflect:!0})],g.prototype,"selected",void 0),(0,o.Cg)([(0,l.MZ)()],g.prototype,"href",void 0),(0,o.Cg)([(0,l.MZ)()],g.prototype,"target",void 0),(0,o.Cg)([(0,l.MZ)()],g.prototype,"rel",void 0),(0,o.Cg)([(0,l.MZ)()],g.prototype,"download",void 0),g=(0,o.Cg)([(0,l.EM)("ha-icon-button")],g),i()}catch(h){i(h)}})},67094:function(a,t,e){e.r(t),e.d(t,{HaSvgIcon:function(){return c}});var i=e(40445),o=e(5124),r=e(67576);let l,s,n,d,h=a=>a;class c extends o.WF{render(){return(0,o.JW)(l||(l=h` <svg viewBox="${0}" preserveAspectRatio="xMidYMid meet" focusable="false" role="img" aria-hidden="true"> <g> ${0} ${0} </g> </svg>`),this.viewBox||"0 0 24 24",this.path?(0,o.JW)(s||(s=h`<path class="primary-path" d="${0}"></path>`),this.path):o.s6,this.secondaryPath?(0,o.JW)(n||(n=h`<path class="secondary-path" d="${0}"></path>`),this.secondaryPath):o.s6)}}c.styles=(0,o.AH)(d||(d=h`:host{display:var(--ha-icon-display,inline-flex);align-items:center;justify-content:center;position:relative;vertical-align:middle;fill:var(--icon-primary-color,currentcolor);width:var(--mdc-icon-size,24px);height:var(--mdc-icon-size,24px)}svg{width:100%;height:100%;pointer-events:none;display:block}path.primary-path{opacity:var(--icon-primary-opactity, 1)}path.secondary-path{fill:var(--icon-secondary-color,currentcolor);opacity:var(--icon-secondary-opactity, .5)}`)),(0,i.Cg)([(0,r.MZ)()],c.prototype,"path",void 0),(0,i.Cg)([(0,r.MZ)({attribute:!1})],c.prototype,"secondaryPath",void 0),(0,i.Cg)([(0,r.MZ)({attribute:!1})],c.prototype,"viewBox",void 0),c=(0,i.Cg)([(0,r.EM)("ha-svg-icon")],c)},56304:function(a,t,e){e.a(a,async function(a,t){try{e(3362),e(27495),e(62953),e(49255);var i=e(40445),o=e(99324),r=e(92070),l=e(5124),s=e(67576),n=e(6412),d=e(63672),h=e(57237),c=e(53305),p=a([o]);o=(p.then?(await p)():p)[0];let v,u,g,m,f=a=>a;class b extends((0,c.w)(l.WF)){get _formControl(){return this._textarea}setFocused(a){a?this.toggleAttribute("focused",!0):this.removeAttribute("focused")}connectedCallback(){super.connectedCallback(),this.addEventListener("keydown",h.d)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("keydown",h.d)}async firstUpdated(a){var t,e;(super.firstUpdated(a),this.autofocus)&&(await(null===(t=this._textarea)||void 0===t?void 0:t.updateComplete),null===(e=this._textarea)||void 0===e||e.focus())}focus(a){var t;null===(t=this._textarea)||void 0===t||t.focus(a)}render(){var a,t,e;const i=!this.label&&this._hasSlotController.test("label"),o=!this.hint&&this._hasSlotController.test("hint");return(0,l.qy)(v||(v=f` <wa-textarea .value="${0}" .placeholder="${0}" .readonly="${0}" .required="${0}" .rows="${0}" .resize="${0}" .disabled="${0}" name="${0}" autocapitalize="${0}" autocomplete="${0}" .autofocus="${0}" .spellcheck="${0}" inputmode="${0}" enterkeyhint="${0}" minlength="${0}" maxlength="${0}" class="${0}" @input="${0}" @change="${0}" @blur="${0}" @wa-invalid="${0}" exportparts="base:wa-base, hint:wa-hint, textarea:wa-textarea"> ${0} <div slot="hint" class="${0}" role="${0}" aria-live="polite"> ${0} </div> </wa-textarea> `),null!==(a=this.value)&&void 0!==a?a:null,this.placeholder,this.readonly,this.required,null!==(t=this.rows)&&void 0!==t?t:4,this.resize,this.disabled,(0,d.J)(this.name),(0,d.J)(this.autocapitalize||void 0),(0,d.J)(this.autocomplete),this.autofocus,this.spellcheck,(0,d.J)(this.inputmode||void 0),(0,d.J)(this.enterkeyhint||void 0),(0,d.J)(this.minlength),(0,d.J)(this.maxlength),(0,n.H)({input:!0,invalid:this.invalid||this._invalid,"label-raised":void 0!==this.value&&""!==this.value||this.label&&this.placeholder,"no-label":!this.label,"hint-hidden":!(this.hint||o||this.required||this._invalid||this.invalid)}),this._handleInput,this._handleChange,this._handleBlur,this._handleInvalid,this.label||i?(0,l.qy)(u||(u=f`<slot name="label" slot="label">${0}</slot>`),this.label?this._renderLabel(this.label,this.required):l.s6):l.s6,(0,n.H)({error:this.invalid||this._invalid}),(0,d.J)(this.invalid||this._invalid?"alert":void 0),this._invalid||this.invalid?this.validationMessage||(null===(e=this._textarea)||void 0===e?void 0:e.validationMessage):this.hint||(o?(0,l.qy)(g||(g=f`<slot name="hint"></slot>`)):l.s6))}constructor(...a){super(...a),this.resize="none",this._hasSlotController=new r.X(this,"label","hint"),this._requiredMarkerCSSVar="--ha-textarea-required-marker"}}b.styles=[c.N,(0,l.AH)(m||(m=f`:host{display:flex;align-items:flex-start;padding-bottom:var(--ha-textarea-padding-bottom)}wa-textarea::part(label){width:calc(100% - var(--ha-space-2));background-color:var(--ha-color-form-background);transition:all var(--wa-transition-normal) ease-in-out,background-color var(--wa-transition-normal) ease-in-out;padding-inline-start:var(--ha-space-3);padding-inline-end:var(--ha-space-3);margin:var(--ha-space-1) var(--ha-space-1) 0;padding-top:var(--ha-space-4);white-space:nowrap;overflow:hidden}:host(:focus-within) wa-textarea::part(label),:host([focused]) wa-textarea::part(label){color:var(--primary-color)}:host(:focus-within) wa-textarea::part(label),:host([focused]) wa-textarea::part(label),wa-textarea.label-raised::part(label){padding-top:var(--ha-space-2);font-size:var(--ha-font-size-xs)}wa-textarea.no-label::part(label){height:0;padding:0}wa-textarea::part(base){min-height:56px;padding-top:var(--ha-space-6);padding-bottom:var(--ha-space-2)}wa-textarea.no-label::part(base){padding-top:var(--ha-space-3)}wa-textarea::part(base)::after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background-color:var(--ha-color-border-neutral-loud);transition:height var(--wa-transition-normal) ease-in-out,background-color var(--wa-transition-normal) ease-in-out}:host(:focus-within) wa-textarea::part(base)::after,:host([focused]) wa-textarea::part(base)::after{height:2px;background-color:var(--primary-color)}:host(:focus-within) wa-textarea.invalid::part(base)::after,wa-textarea.invalid:not([disabled])::part(base)::after{background-color:var(--ha-color-border-danger-normal)}wa-textarea::part(textarea){padding:0 var(--ha-space-4);font-family:var(--ha-font-family-body);font-size:var(--ha-font-size-m)}:host([resize=auto]) wa-textarea::part(textarea){max-height:var(--ha-textarea-max-height,200px);overflow-y:auto}wa-textarea:hover::part(base),wa-textarea:hover::part(label){background-color:var(--ha-color-form-background-hover)}wa-textarea[disabled]::part(textarea){cursor:not-allowed}wa-textarea[disabled]::part(base),wa-textarea[disabled]::part(label){background-color:var(--ha-color-form-background-disabled)}`))],(0,i.Cg)([(0,s.MZ)({type:Number})],b.prototype,"rows",void 0),(0,i.Cg)([(0,s.MZ)()],b.prototype,"resize",void 0),(0,i.Cg)([(0,s.P)("wa-textarea")],b.prototype,"_textarea",void 0),b=(0,i.Cg)([(0,s.EM)("ha-textarea")],b),t()}catch(v){t(v)}})},34127:function(a,t,e){e.a(a,async function(a,t){try{e(62953);var i=e(40445),o=e(52630),r=e(5124),l=e(67576),s=a([o]);o=(s.then?(await s)():s)[0];let n,d=a=>a;class h extends o.A{static get styles(){return[o.A.styles,(0,r.AH)(n||(n=d`:host{--wa-tooltip-background-color:var( --ha-tooltip-background-color, var(--ha-color-surface-default) );--wa-tooltip-content-color:var( --ha-tooltip-text-color, var(--primary-text-color) );--wa-tooltip-font-family:var( --ha-tooltip-font-family, var(--ha-font-family-body) );--wa-tooltip-font-size:var( --ha-tooltip-font-size, var(--ha-font-size-m) );--wa-tooltip-font-weight:var( --ha-tooltip-font-weight, var(--ha-font-weight-medium) );--wa-tooltip-line-height:var( --ha-tooltip-line-height, var(--ha-line-height-condensed) );--wa-tooltip-padding:var(--ha-tooltip-padding, var(--ha-space-2));--wa-tooltip-border-radius:var( --ha-tooltip-border-radius, var(--ha-border-radius-md) );--wa-tooltip-arrow-size:var(--ha-tooltip-arrow-size, 0px);--wa-tooltip-border-width:0px;--wa-z-index-tooltip:1000}.tooltip::part(popup){animation-duration:var(--ha-tooltip-animation-duration, 0)}.body{box-shadow:var(--ha-tooltip-box-shadow,var(--ha-box-shadow-m))}`))]}constructor(...a){super(...a),this.showDelay=350,this.hideDelay=150}}(0,i.Cg)([(0,l.MZ)({attribute:"show-delay",type:Number})],h.prototype,"showDelay",void 0),(0,i.Cg)([(0,l.MZ)({attribute:"hide-delay",type:Number})],h.prototype,"hideDelay",void 0),h=(0,i.Cg)([(0,l.EM)("ha-tooltip")],h),t()}catch(n){t(n)}})},26683:function(a,t,e){e.a(a,async function(a,i){try{e.r(t);e(3362),e(62953);var o=e(40445),r=e(5124),l=e(67576),s=e(6412),n=e(63672),d=e(1087),h=e(18350),c=e(72554),p=(e(93444),e(76538),e(67094),e(56304)),v=e(91485),u=a([h,c,p,v]);[h,c,p,v]=u.then?(await u)():u;let g,m,f,b,w,y,x,_,$,C,k=a=>a;const S="M12,2L1,21H23M12,6L19.53,19H4.47M11,10V14H13V10M11,16V18H13V16",z="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z";class M extends r.WF{async showDialog(a){this._closePromise&&await this._closePromise,this._params=a,this._validInput=!0,this._open=!0,await this.updateComplete,this._validateInput()}closeDialog(){var a,t;return!this._open||!(null!==(a=this._params)&&void 0!==a&&a.confirmation||null!==(t=this._params)&&void 0!==t&&t.prompt)&&(!this._params||(this._dismiss(),!0))}render(){var a,t;if(!this._params)return r.s6;const e=this._params.confirmation||!!this._params.prompt,i=this._params.title||this._params.confirmation&&this.hass.localize("ui.dialogs.generic.default_confirmation_title");return(0,r.qy)(g||(g=k` <ha-dialog .open="${0}" type="${0}" ?prevent-scrim-close="${0}" @closed="${0}" aria-labelledby="dialog-box-title" aria-describedby="dialog-box-description"> <ha-dialog-header slot="header"> ${0} <h1 class="${0}" slot="title" id="dialog-box-title"> ${0} ${0} </h1> ${0} </ha-dialog-header> <div id="dialog-box-description"> ${0} ${0} </div> <ha-dialog-footer slot="footer"> ${0} <ha-button slot="primaryAction" @click="${0}" ?autofocus="${0}" ?disabled="${0}" .loading="${0}" variant="${0}"> ${0} </ha-button> </ha-dialog-footer> </ha-dialog> `),this._open,e?"alert":"standard",e,this._dialogClosed,e?r.s6:(0,r.qy)(m||(m=k`<slot name="headerNavigationIcon" slot="navigationIcon"> <ha-icon-button data-dialog="close" .label="${0}" .path="${0}"></ha-icon-button></slot>`),null!==(a=null===(t=this.hass)||void 0===t?void 0:t.localize("ui.common.close"))&&void 0!==a?a:"Close",z),(0,s.H)({title:!0,alert:e}),this._params.warning?(0,r.qy)(f||(f=k`<ha-svg-icon .path="${0}" style="color:var(--warning-color)"></ha-svg-icon> `),S):r.s6,i,this._params.subtitle?(0,r.qy)(b||(b=k`<span slot="subtitle">${0}</span>`),this._params.subtitle):r.s6,this._params.text?(0,r.qy)(w||(w=k` <p>${0}</p> `),this._params.text):"",this._params.prompt&&!this._params.multiline?(0,r.qy)(y||(y=k` <ha-input autofocus value="${0}" .placeholder="${0}" .label="${0}" .type="${0}" .min="${0}" .max="${0}" .disabled="${0}" @input="${0}"> ${0} </ha-input> `),(0,n.J)(this._params.defaultValue),this._params.placeholder,this._params.inputLabel?this._params.inputLabel:"",this._params.inputType?this._params.inputType:"text",this._params.inputMin,this._params.inputMax,this._loading,this._validateInput,this._params.inputSuffix?(0,r.qy)(x||(x=k`<span slot="end">${0}</span>`),this._params.inputSuffix):r.s6):this._params.prompt&&this._params.multiline?(0,r.qy)(_||(_=k` <ha-textarea resize="auto" autofocus .value="${0}" .placeholder="${0}" .label="${0}" .disabled="${0}" @input="${0}"></ha-textarea> `),this._params.defaultValue,this._params.placeholder,this._params.inputLabel,this._loading,this._validateInput):r.s6,e?(0,r.qy)($||($=k` <ha-button slot="secondaryAction" @click="${0}" ?autofocus="${0}" ?disabled="${0}" appearance="plain"> ${0} </ha-button> `),this._dismiss,!this._params.prompt&&this._params.destructive,this._loading,this._params.dismissText?this._params.dismissText:this.hass.localize("ui.common.cancel")):r.s6,this._confirm,!this._params.prompt&&!this._params.destructive,this._loading||!!this._params.prompt&&!this._validInput,this._loading,this._params.destructive?"danger":"brand",this._params.confirmText?this._params.confirmText:this.hass.localize("ui.common.ok"))}_cancel(){var a;null!==(a=this._params)&&void 0!==a&&a.cancel&&this._params.cancel()}_dismiss(){this._closeState="canceled",this._cancel(),this._closeDialog()}async _confirm(){var a,t;if(null===(a=this._params)||void 0===a||!a.prompt||null!==(t=this._textField)&&void 0!==t&&t.reportValidity()){if(this._params.action){this._loading=!0;try{var e;await this._params.action(null===(e=this._textField)||void 0===e?void 0:e.value)}catch(o){return void(this._loading=!1)}this._loading=!1}var i;if(this._closeState="confirmed",this._params.confirm)this._params.confirm(null===(i=this._textField)||void 0===i?void 0:i.value);this._closeDialog()}}_validateInput(){var a,t,e;this._validInput=null===(a=this._params)||void 0===a||!a.prompt||(null===(t=null===(e=this._textField)||void 0===e?void 0:e.checkValidity())||void 0===t||t)}_closeDialog(){this._open=!1,this._closePromise=new Promise(a=>{this._closeResolve=a})}_dialogClosed(){var a;(0,d.r)(this,"dialog-closed",{dialog:this.localName}),this._closeState||this._cancel(),this._closeState=void 0,this._params=void 0,this._open=!1,this._loading=!1,null===(a=this._closeResolve)||void 0===a||a.call(this),this._closeResolve=void 0}constructor(...a){super(...a),this._open=!1,this._loading=!1,this._validInput=!0}}M.styles=(0,r.AH)(C||(C=k`:host([inert]){pointer-events:initial!important;cursor:initial!important}a{color:var(--primary-color)}p{margin:0;color:var(--primary-text-color)}.no-bottom-padding{padding-bottom:0}.secondary{color:var(--secondary-text-color)}ha-input{width:100%}.title{font-weight:inherit;font-size:inherit;margin:inherit}.title.alert{padding:0 var(--ha-space-2)}@media all and (min-width:450px) and (min-height:500px){.title.alert{padding:0 var(--ha-space-1)}}`)),(0,o.Cg)([(0,l.MZ)({attribute:!1})],M.prototype,"hass",void 0),(0,o.Cg)([(0,l.wk)()],M.prototype,"_params",void 0),(0,o.Cg)([(0,l.wk)()],M.prototype,"_open",void 0),(0,o.Cg)([(0,l.wk)()],M.prototype,"_closeState",void 0),(0,o.Cg)([(0,l.wk)()],M.prototype,"_loading",void 0),(0,o.Cg)([(0,l.wk)()],M.prototype,"_validInput",void 0),(0,o.Cg)([(0,l.P)("ha-input, ha-textarea")],M.prototype,"_textField",void 0),M=(0,o.Cg)([(0,l.EM)("dialog-box")],M),i()}catch(g){i(g)}})},59992:function(a,t,e){e.a(a,async function(a,i){try{e.d(t,{V:function(){return u}});e(62953);var o=e(40445),r=e(88696),l=e(5124),s=e(6412),n=e(67576),d=a([r]);r=(d.then?(await d)():d)[0];let h,c,p=a=>a;const v=a=>void 0===a?[]:Array.isArray(a)?a:[a],u=a=>{class t extends a{get scrollableElement(){return t.DEFAULT_SCROLLABLE_ELEMENT}firstUpdated(a){var t;null===(t=super.firstUpdated)||void 0===t||t.call(this,a),this.scrollableElement&&this._updateScrollableState(this.scrollableElement),this._attachScrollableElement()}updated(a){var t;null===(t=super.updated)||void 0===t||t.call(this,a),this._attachScrollableElement()}disconnectedCallback(){this._detachScrollableElement(),this._contentScrolled=!1,this._contentScrollable=!1,super.disconnectedCallback()}renderScrollableFades(a=!1){return(0,l.qy)(h||(h=p` <div class="${0}"></div> <div class="${0}"></div> `),(0,s.H)({"fade-top":!0,rounded:a,visible:this._contentScrolled}),(0,s.H)({"fade-bottom":!0,rounded:a,visible:this._contentScrollable}))}static get styles(){var a;const t=Object.getPrototypeOf(this);return[...v(null!==(a=null==t?void 0:t.styles)&&void 0!==a?a:[]),(0,l.AH)(c||(c=p`.fade-bottom,.fade-top{position:absolute;left:0;right:0;height:var(--ha-space-2);pointer-events:none;transition:opacity 180ms ease-in-out;border-radius:var(--ha-border-radius-square);opacity:0;background:linear-gradient(to bottom,var(--ha-color-shadow-scrollable-fade),transparent)}.fade-top{top:0}.fade-bottom{bottom:0;transform:rotate(180deg)}.fade-bottom.visible,.fade-top.visible{opacity:1}.fade-bottom.rounded,.fade-top.rounded{border-radius:var(--ha-card-border-radius,var(--ha-border-radius-lg));border-bottom-left-radius:var(--ha-border-radius-square);border-bottom-right-radius:var(--ha-border-radius-square)}.fade-top.rounded{border-top-left-radius:var(--ha-border-radius-square);border-top-right-radius:var(--ha-border-radius-square)}.fade-bottom.rounded{border-bottom-left-radius:var(--ha-border-radius-square);border-bottom-right-radius:var(--ha-border-radius-square)}`))]}_attachScrollableElement(){const a=this.scrollableElement;a!==this._scrollTarget&&(this._detachScrollableElement(),a&&(this._scrollTarget=a,a.addEventListener("scroll",this._onScroll,{passive:!0}),this._resize.observe(a),this._updateScrollableState(a)))}_detachScrollableElement(){var a,t;this._scrollTarget&&(this._scrollTarget.removeEventListener("scroll",this._onScroll),null===(a=(t=this._resize).unobserve)||void 0===a||a.call(t,this._scrollTarget),this._scrollTarget=void 0)}_updateScrollableState(a){const t=parseFloat(getComputedStyle(a).getPropertyValue("--safe-area-inset-bottom"))||0,{scrollHeight:e=0,clientHeight:i=0,scrollTop:o=0}=a;this._contentScrollable=e-i>o+t+this.scrollFadeSafeAreaPadding}constructor(...a){super(...a),this._contentScrolled=!1,this._contentScrollable=!1,this._onScroll=a=>{var t;const e=a.currentTarget;this._contentScrolled=(null!==(t=e.scrollTop)&&void 0!==t?t:0)>this.scrollFadeThreshold,this._updateScrollableState(e)},this._resize=new r.P(this,{target:null,callback:a=>{var t;const e=null===(t=a[0])||void 0===t?void 0:t.target;e&&this._updateScrollableState(e)}}),this.scrollFadeSafeAreaPadding=4,this.scrollFadeThreshold=4}}return t.DEFAULT_SCROLLABLE_ELEMENT=null,(0,o.Cg)([(0,n.wk)()],t.prototype,"_contentScrolled",void 0),(0,o.Cg)([(0,n.wk)()],t.prototype,"_contentScrollable",void 0),t};i()}catch(h){i(h)}})},69235:function(a,t,e){e.a(a,async function(a,t){try{e(3362),e(62953);"function"!=typeof window.ResizeObserver&&(window.ResizeObserver=(await e.e(71055).then(e.bind(e,52370))).default),t()}catch(i){t(i)}},1)},14503:function(a,t,e){e.d(t,{RF:function(){return p},dp:function(){return g},kO:function(){return u},nA:function(){return v},og:function(){return c}});var i=e(5124);let o,r,l,s,n,d,h=a=>a;const c=(0,i.AH)(o||(o=h`button.link{background:0 0;color:inherit;border:none;padding:0;font:inherit;text-align:left;text-decoration:underline;cursor:pointer;outline:0}`)),p=(0,i.AH)(r||(r=h`:host{font-family:var(--ha-font-family-body);-webkit-font-smoothing:var(--ha-font-smoothing);-moz-osx-font-smoothing:var(--ha-moz-osx-font-smoothing);font-size:var(--ha-font-size-m);font-weight:var(--ha-font-weight-normal);line-height:var(--ha-line-height-normal)}app-header div[sticky]{height:48px}app-toolbar [main-title]{margin-left:20px;margin-inline-start:20px;margin-inline-end:initial}.header{transition:box-shadow .2s linear,width var(--ha-animation-duration-normal) ease,padding-left var(--ha-animation-duration-normal) ease,padding-right var(--ha-animation-duration-normal) ease}@media (prefers-reduced-motion:reduce){.header{transition:box-shadow .2s linear}}h1{font-family:var(--ha-font-family-heading);-webkit-font-smoothing:var(--ha-font-smoothing);-moz-osx-font-smoothing:var(--ha-moz-osx-font-smoothing);font-size:var(--ha-font-size-2xl);font-weight:var(--ha-font-weight-normal);line-height:var(--ha-line-height-condensed)}h2{font-family:var(--ha-font-family-body);-webkit-font-smoothing:var(--ha-font-smoothing);-moz-osx-font-smoothing:var(--ha-moz-osx-font-smoothing);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:var(--ha-font-size-xl);font-weight:var(--ha-font-weight-medium);line-height:var(--ha-line-height-normal)}h3{font-family:var(--ha-font-family-body);-webkit-font-smoothing:var(--ha-font-smoothing);-moz-osx-font-smoothing:var(--ha-moz-osx-font-smoothing);font-size:var(--ha-font-size-l);font-weight:var(--ha-font-weight-normal);line-height:var(--ha-line-height-normal)}a{color:var(--primary-color)}.secondary{color:var(--secondary-text-color)}.error{color:var(--error-color)}.warning{color:var(--error-color)}${0} .card-actions a{text-decoration:none}.card-actions .warning{--mdc-theme-primary:var(--error-color)}.layout.horizontal,.layout.vertical{display:flex}.layout.inline{display:inline-flex}.layout.horizontal{flex-direction:row}.layout.vertical{flex-direction:column}.layout.wrap{flex-wrap:wrap}.layout.no-wrap{flex-wrap:nowrap}.layout.center,.layout.center-center{align-items:center}.layout.bottom{align-items:flex-end}.layout.center-center,.layout.center-justified{justify-content:center}.flex{flex:1;flex-basis:0.000000001px}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.layout.justified{justify-content:space-between}`),c),v=(0,i.AH)(l||(l=h`ha-adaptive-dialog,ha-dialog{--mdc-dialog-min-width:400px;--mdc-dialog-max-width:600px;--mdc-dialog-max-width:min(600px, 95vw);--justify-action-buttons:space-between;--dialog-container-padding:var(--safe-area-inset-top, 0) var(--safe-area-inset-right, 0) var(--safe-area-inset-bottom, 0) var(--safe-area-inset-left, 0);--dialog-surface-padding:0px}ha-adaptive-dialog .form,ha-dialog .form{color:var(--primary-text-color)}a{color:var(--primary-color)}@media all and (max-width:450px),all and (max-height:500px){ha-adaptive-dialog,ha-dialog{--mdc-dialog-min-width:100vw;--mdc-dialog-max-width:100vw;--mdc-dialog-min-height:100vh;--mdc-dialog-min-height:100svh;--mdc-dialog-max-height:100vh;--mdc-dialog-max-height:100svh;--dialog-container-padding:0px;--dialog-surface-padding:var(--safe-area-inset-top, 0) var(--safe-area-inset-right, 0) var(--safe-area-inset-bottom, 0) var(--safe-area-inset-left, 0);--vertical-align-dialog:flex-end}ha-dialog{--ha-dialog-border-radius:var(--ha-border-radius-square)}}.error{color:var(--error-color)}`)),u=(0,i.AH)(s||(s=h`ha-adaptive-dialog,ha-dialog{--vertical-align-dialog:flex-start;--dialog-surface-margin-top:var(--ha-space-10);--mdc-dialog-max-height:calc( 100vh - var(--dialog-surface-margin-top) - var(--ha-space-2) - var( --safe-area-inset-y, 0px ) );--mdc-dialog-max-height:calc( 100svh - var(--dialog-surface-margin-top) - var(--ha-space-2) - var( --safe-area-inset-y, 0px ) );--ha-dialog-max-height:calc( 100vh - var(--dialog-surface-margin-top) - var(--ha-space-2) - var( --safe-area-inset-y, 0px ) );--ha-dialog-max-height:calc( 100svh - var(--dialog-surface-margin-top) - var(--ha-space-2) - var( --safe-area-inset-y, 0px ) )}@media all and (max-width:450px),all and (max-height:500px){ha-adaptive-dialog,ha-dialog{--dialog-surface-margin-top:0px;--mdc-dialog-min-height:100vh;--mdc-dialog-min-height:100svh;--mdc-dialog-max-height:100vh;--mdc-dialog-max-height:100svh;--ha-dialog-max-height:100vh;--ha-dialog-max-height:100svh}}`)),g=(0,i.AH)(n||(n=h`.ha-scrollbar::-webkit-scrollbar{width:.4rem;height:.4rem}.ha-scrollbar::-webkit-scrollbar-thumb{border-radius:var(--ha-border-radius-sm);background:var(--scrollbar-thumb-color)}.ha-scrollbar{overflow-y:auto;scrollbar-color:var(--scrollbar-thumb-color) transparent;scrollbar-width:thin}`));(0,i.AH)(d||(d=h`body{background-color:var(--primary-background-color);color:var(--primary-text-color);height:calc(100vh - 32px);width:100vw}`))},22348:function(a,t,e){e.d(t,{V:function(){return o}});var i=e(37177);const o=a=>!!a&&i.n},37177:function(a,t,e){e.d(t,{n:function(){return i}});e(27495);const i=/^((?!chrome|android).)*safari/i.test(navigator.userAgent)}}]);