UNPKG

iobroker.lovelace

Version:

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

39 lines 53.6 kB
(self.rspackChunkhome_assistant_frontend=self.rspackChunkhome_assistant_frontend||[]).push([[54073],{93421:function(t,e,a){"use strict";a.d(e,{IW:function(){return h},dH:function(){return c},fI:function(){return l}});a(44114),a(62953);var o=a(35211),r=a(22792),i=a(32172);const n=(t,e)=>{let a=t;for(const o of e){if(null==a)return;a=a[o]}return a},s=(t,e,a)=>{const r=(0,i.p)({transformer:function(t){return a.call(this,t)},watch:e?[e]:[]}),n=(0,o.Fg)({context:t,subscribe:!0});return(t,e)=>{r(t,e),n(t,e)}},l=t=>s(r.iN,t.entityIdPath[0],function(e){const a=n(this,t.entityIdPath);return"string"==typeof a?null==e?void 0:e[a]:void 0}),c=t=>s(r.X1,t.entityIdPath[0],function(e){const a=n(this,t.entityIdPath);return"string"==typeof a?null==e?void 0:e[a]:void 0}),h=()=>s(r.D5,void 0,({localize:t})=>t)},26218:function(t,e,a){"use strict";a.d(e,{a:function(){return r}});a(16280);const o=(0,a(77796).n)(t=>{history.replaceState({scrollPosition:t},"")},300);function r(t){return(e,a)=>{if("object"==typeof a)throw new Error("This decorator does not support this compilation type.");const r=e.connectedCallback;e.connectedCallback=function(){r.call(this);const e=this[a];e&&this.updateComplete.then(()=>{const a=this.renderRoot.querySelector(t);a&&setTimeout(()=>{a.scrollTop=e},0)})};const i=Object.getOwnPropertyDescriptor(e,a);let n;if(void 0===i)n={get(){var t;return this[`__${String(a)}`]||(null===(t=history.state)||void 0===t?void 0:t.scrollPosition)},set(t){o(t),this[`__${String(a)}`]=t},configurable:!0,enumerable:!0};else{const t=i.set;n=Object.assign(Object.assign({},i),{},{set(e){o(e),this[`__${String(a)}`]=e,null==t||t.call(this,e)}})}Object.defineProperty(e,a,n)}}},32172:function(t,e,a){"use strict";a.d(e,{p:function(){return o}});a(16280),a(18111),a(7588),a(45367),a(92731),a(17642),a(58004),a(33853),a(45876),a(32475),a(15024),a(31698),a(62953);function o(t){return(e,a)=>{if("object"==typeof a)throw new Error("This decorator does not support this compilation type.");const o=String(a),r=e;if(r._transformers){if(!r.hasOwnProperty("_transformers")){const t=r._transformers;r._transformers=new Map,t.forEach((t,e)=>r._transformers.set(e,t))}}else{r._transformers=new Map,r._watching=new Map;const t=r.willUpdate;r.willUpdate=function(e){t.call(this,e);const a=new Set;e.forEach((t,e)=>{const o=this._watching.get(e);void 0!==o&&o.forEach(t=>a.add(t))}),a.forEach(t=>{this[t]=this[`__original_${String(t)}`]})}}r._transformers.set(a,t.transformer),t.watch&&t.watch.forEach(t=>{let e=r._watching.get(t);e||(e=new Set,r._watching.set(t,e)),e.add(a)});const i=Object.getOwnPropertyDescriptor(e,a);let n;if(void 0===i)n={get(){return this[`__transform_${o}`]},set(t){const e=this[`__transform_${o}`],a=this._transformers.get(o);this[`__transform_${o}`]=a?a.call(this,t):t,this[`__original_${o}`]=t,this.requestUpdate(o,e)},configurable:!0,enumerable:!0};else{const t=i.set;n=Object.assign(Object.assign({},i),{},{set(e){const a=this[`__transform_${o}`],r=this._transformers.get(o);this[`__transform_${o}`]=r?r.call(this,e):e,this[`__original_${o}`]=e,this.requestUpdate(o,a),null==t||t.call(this,e)}})}Object.defineProperty(e,a,n)}}},77796:function(t,e,a){"use strict";a.d(e,{n:function(){return o}});a(62953);const o=(t,e,a=!0,o=!0)=>{let r,i=0;const n=(...n)=>{const s=()=>{i=!1===a?0:Date.now(),r=void 0,t(...n)},l=Date.now();i||!1!==a||(i=l);const c=e-(l-i);c<=0||c>e?(r&&(clearTimeout(r),r=void 0),i=l,t(...n)):r||!1===o||(r=window.setTimeout(s,c))};return n.cancel=()=>{clearTimeout(r),r=void 0,i=0},n}},38962:function(t,e,a){"use strict";a.a(t,async function(t,o){try{a.r(e);a(62953);var r=a(40445),i=a(5124),n=a(67576),s=a(6412),l=a(93421),c=a(1087),h=a(26300),d=(a(67094),t([h]));h=(d.then?(await d)():d)[0];let p,u,b,v,g=t=>t;const f="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",m={info:"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z",warning:"M12,2L1,21H23M12,6L19.53,19H4.47M11,10V14H13V10M11,16V18H13V16",error:"M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z",success:"M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.76,4 13.5,4.11 14.2,4.31L15.77,2.74C14.61,2.26 13.34,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z"};class w extends i.WF{render(){var t;return(0,i.qy)(p||(p=g` <div class="issue-type ${0}" role="alert"> <div class="icon ${0}"> <slot name="icon"> <ha-svg-icon .path="${0}"></ha-svg-icon> </slot> </div> <div class="${0}"> <div class="main-content"> ${0} <slot></slot> </div> <div class="action"> <slot name="action"> ${0} </slot> </div> </div> </div> `),(0,s.H)({[this.alertType]:!0}),this.title?"":"no-title",m[this.alertType],(0,s.H)({content:!0,narrow:this.narrow}),this.title?(0,i.qy)(u||(u=g`<div class="title">${0}</div>`),this.title):i.s6,this.dismissable?(0,i.qy)(b||(b=g`<ha-icon-button @click="${0}" .label="${0}" .path="${0}"></ha-icon-button>`),this._dismissClicked,null===(t=this._localize)||void 0===t?void 0:t.call(this,"ui.common.dismiss_alert"),f):i.s6)}_dismissClicked(){(0,c.r)(this,"alert-dismissed-clicked")}constructor(...t){super(...t),this.title="",this.alertType="info",this.dismissable=!1,this.narrow=!1}}w.styles=(0,i.AH)(v||(v=g`.issue-type{position:relative;padding:8px;display:flex}.icon{height:var(--ha-alert-icon-size,24px);width:var(--ha-alert-icon-size,24px)}.issue-type::after{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.12;pointer-events:none;content:"";border-radius:var(--ha-border-radius-sm)}.icon.no-title{align-self:center}.content{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:var(--float-start)}.content.narrow{flex-direction:column;align-items:flex-end}.action{z-index:1;width:min-content;--mdc-theme-primary:var(--primary-text-color)}.main-content{overflow-wrap:anywhere;word-break:break-word;line-height:normal;margin-left:8px;margin-right:0;margin-inline-start:8px;margin-inline-end:8px}.title{margin-top:2px;font-weight:var(--ha-font-weight-bold)}.action ha-icon-button{--mdc-theme-primary:var(--primary-text-color);--ha-icon-button-size:36px}.issue-type.info>.icon{color:var(--info-color)}.issue-type.info::after{background-color:var(--info-color)}.issue-type.warning>.icon{color:var(--warning-color)}.issue-type.warning::after{background-color:var(--warning-color)}.issue-type.error>.icon{color:var(--error-color)}.issue-type.error::after{background-color:var(--error-color)}.issue-type.success>.icon{color:var(--success-color)}.issue-type.success::after{background-color:var(--success-color)}:host ::slotted(ul){margin:0;padding-inline-start:20px}`)),(0,r.Cg)([(0,n.MZ)()],w.prototype,"title",void 0),(0,r.Cg)([(0,n.MZ)({attribute:"alert-type"})],w.prototype,"alertType",void 0),(0,r.Cg)([(0,n.MZ)({type:Boolean})],w.prototype,"dismissable",void 0),(0,r.Cg)([(0,n.wk)(),(0,l.IW)()],w.prototype,"_localize",void 0),(0,r.Cg)([(0,n.MZ)({type:Boolean})],w.prototype,"narrow",void 0),w=(0,r.Cg)([(0,n.EM)("ha-alert")],w),o()}catch(p){o(p)}})},76776:function(t,e,a){"use strict";a(62953);var o=a(40445),r=a(5124),i=a(67576);let n,s,l,c=t=>t;class h extends r.WF{render(){return(0,r.qy)(n||(n=c` ${0} <slot></slot> `),this.header?(0,r.qy)(s||(s=c`<h1 class="card-header">${0}</h1>`),this.header):r.s6)}constructor(...t){super(...t),this.raised=!1}}h.styles=(0,r.AH)(l||(l=c`:host{background:var(--ha-card-background,var(--card-background-color,#fff));-webkit-backdrop-filter:var(--ha-card-backdrop-filter,none);backdrop-filter:var(--ha-card-backdrop-filter,none);box-shadow:var(--ha-card-box-shadow,none);box-sizing:border-box;border-radius:var(--ha-card-border-radius,var(--ha-border-radius-lg));border-width:var(--ha-card-border-width,1px);border-style:solid;border-color:var(--ha-card-border-color,var(--divider-color,#e0e0e0));color:var(--primary-text-color);display:block;transition:all .3s ease-out;position:relative}:host([raised]){border:none;box-shadow:var(--ha-card-box-shadow,0px 2px 1px -1px rgba(0,0,0,.2),0px 1px 1px 0px rgba(0,0,0,.14),0px 1px 3px 0px rgba(0,0,0,.12))}.card-header,:host ::slotted(.card-header){color:var(--ha-card-header-color,var(--primary-text-color));font-family:var(--ha-card-header-font-family, inherit);font-size:var(--ha-card-header-font-size, var(--ha-font-size-2xl));letter-spacing:-.012em;line-height:var(--ha-line-height-expanded);padding:var(--ha-space-3) var(--ha-space-4) var(--ha-space-4);display:block;margin-block-start:0;margin-block-end:0;font-weight:var(--ha-font-weight-normal)}
    :host
      ::slotted(
        .card-content:not(:nth-child(1 of .card-content, .card-header))
      ),
    slot:not(:first-child)::slotted(.card-content) {
      padding-top: 0;
      margin-top: calc(var(--ha-space-2) * -1);
    }
    :host ::slotted(.card-content){padding:var(--ha-space-4)}:host ::slotted(.card-actions){border-top:1px solid var(--divider-color,#e8e8e8);padding:var(--ha-space-2)}`)),(0,o.Cg)([(0,i.MZ)()],h.prototype,"header",void 0),(0,o.Cg)([(0,i.MZ)({type:Boolean,reflect:!0})],h.prototype,"raised",void 0),h=(0,o.Cg)([(0,i.EM)("ha-card")],h)},90248:function(t,e,a){"use strict";a.a(t,async function(t,o){try{a.r(e),a.d(e,{HaIconButtonArrowPrev:function(){return b}});a(62953);var r=a(40445),i=a(5124),n=a(67576),s=a(63091),l=a(26300),c=t([l]);l=(c.then?(await c)():c)[0];let h,d=t=>t;const p="M20,11V13H8L13.5,18.5L12.08,19.92L4.16,12L12.08,4.08L13.5,5.5L8,11H20Z",u="M4,11V13H16L10.5,18.5L11.92,19.92L19.84,12L11.92,4.08L10.5,5.5L16,11H4Z";class b extends i.WF{render(){var t;return(0,i.qy)(h||(h=d` <ha-icon-button .disabled="${0}" .label="${0}" .path="${0}" .href="${0}" .target="${0}" .rel="${0}" .download="${0}"></ha-icon-button> `),this.disabled,this.label||(null===(t=this.hass)||void 0===t?void 0:t.localize("ui.common.back"))||"Back",this._icon,this.href,this.target,this.rel,this.download)}constructor(...t){super(...t),this.disabled=!1,this._icon="rtl"===s.G.document.dir?u:p}}(0,r.Cg)([(0,n.MZ)({attribute:!1})],b.prototype,"hass",void 0),(0,r.Cg)([(0,n.MZ)({type:Boolean})],b.prototype,"disabled",void 0),(0,r.Cg)([(0,n.MZ)()],b.prototype,"label",void 0),(0,r.Cg)([(0,n.MZ)()],b.prototype,"href",void 0),(0,r.Cg)([(0,n.MZ)()],b.prototype,"target",void 0),(0,r.Cg)([(0,n.MZ)()],b.prototype,"rel",void 0),(0,r.Cg)([(0,n.MZ)()],b.prototype,"download",void 0),(0,r.Cg)([(0,n.wk)()],b.prototype,"_icon",void 0),b=(0,r.Cg)([(0,n.EM)("ha-icon-button-arrow-prev")],b),o()}catch(h){o(h)}})},26300:function(t,e,a){"use strict";a.a(t,async function(t,o){try{a.r(e),a.d(e,{HaIconButton:function(){return v}});a(62953);var r=a(40445),i=a(5124),n=a(67576),s=a(63672),l=a(18350),c=(a(67094),t([l]));l=(c.then?(await c)():c)[0];let h,d,p,u,b=t=>t;class v extends i.WF{render(){return(0,i.qy)(h||(h=b` <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,i.qy)(d||(d=b`<ha-svg-icon aria-hidden="true" .path="${0}"></ha-svg-icon>`),this.path):(0,i.qy)(p||(p=b`<span><slot></slot></span>`)))}constructor(...t){super(...t),this.disabled=!1,this.hideTitle=!1,this.selected=!1}}v.shadowRootOptions={mode:"open",delegatesFocus:!0},v.styles=(0,i.AH)(u||(u=b`: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,r.Cg)([(0,n.MZ)({type:Boolean,reflect:!0})],v.prototype,"disabled",void 0),(0,r.Cg)([(0,n.MZ)({type:String})],v.prototype,"path",void 0),(0,r.Cg)([(0,n.MZ)({type:String})],v.prototype,"label",void 0),(0,r.Cg)([(0,n.MZ)({type:String,attribute:"aria-haspopup"})],v.prototype,"ariaHasPopup",void 0),(0,r.Cg)([(0,n.MZ)({attribute:"hide-title",type:Boolean})],v.prototype,"hideTitle",void 0),(0,r.Cg)([(0,n.MZ)({type:Boolean,reflect:!0})],v.prototype,"selected",void 0),(0,r.Cg)([(0,n.MZ)()],v.prototype,"href",void 0),(0,r.Cg)([(0,n.MZ)()],v.prototype,"target",void 0),(0,r.Cg)([(0,n.MZ)()],v.prototype,"rel",void 0),(0,r.Cg)([(0,n.MZ)()],v.prototype,"download",void 0),v=(0,r.Cg)([(0,n.EM)("ha-icon-button")],v),o()}catch(h){o(h)}})},38377:function(t,e,a){"use strict";var o=a(59787),r=(a(74423),a(72712),a(18111),a(22489),a(61701),a(18237),a(3362),a(27495),a(62953),a(40445)),i=a(5124),n=a(67576),s=a(20889),l=a(30015),c=a.n(l),h=a(1087),d=(a(3296),a(27208),a(48408),a(14603),a(47566),a(98721),a(2209));let p;var u=a(996);let b,v=t=>t;const g=t=>(0,i.qy)(b||(b=v`${0}`),t),f=new u.G(1e3),m={reType:(0,o.A)(/((\[!(caution|important|note|tip|warning)\])(?:\s|\\n)?)/i,{input:1,type:3}),typeToHaAlert:{caution:"error",important:"info",note:"info",tip:"success",warning:"warning"}};class w extends i.mN{disconnectedCallback(){if(super.disconnectedCallback(),this.cache){const t=this._computeCacheKey();f.set(t,this.innerHTML)}}createRenderRoot(){return this}update(t){super.update(t),void 0!==this.content&&(this._renderPromise=this._render())}async getUpdateComplete(){return await super.getUpdateComplete(),await this._renderPromise,!0}willUpdate(t){if(!this.innerHTML&&this.cache){const t=this._computeCacheKey();f.has(t)&&((0,i.XX)(g((0,s._)(f.get(t))),this.renderRoot),this._resize())}}_computeCacheKey(){return c()({content:this.content,allowSvg:this.allowSvg,allowDataUrl:this.allowDataUrl,breaks:this.breaks})}async _render(){const t=await(async(t,e,o)=>(p||(p=(0,d.LV)(new Worker(new URL(a.p+a.u(55640),a.b)))),p.renderMarkdown(t,e,o)))(String(this.content),{breaks:this.breaks,gfm:!0},{allowSvg:this.allowSvg,allowDataUrl:this.allowDataUrl});(0,i.XX)(g((0,s._)(t.join(""))),this.renderRoot),this._resize();const e=document.createTreeWalker(this,NodeFilter.SHOW_ELEMENT,null);for(;e.nextNode();){const t=e.currentNode;if(t instanceof HTMLAnchorElement&&t.host!==document.location.host)t.target="_blank",t.rel="noreferrer noopener";else if(t instanceof HTMLImageElement)this.lazyImages&&(t.loading="lazy"),t.addEventListener("load",this._resize);else if(t instanceof HTMLQuoteElement){var o;const a=(null===(o=t.firstElementChild)||void 0===o||null===(o=o.firstChild)||void 0===o?void 0:o.textContent)&&m.reType.exec(t.firstElementChild.firstChild.textContent);if(a){const{type:o}=a.groups,r=document.createElement("ha-alert");r.alertType=m.typeToHaAlert[o.toLowerCase()],r.append(...Array.from(t.childNodes).map(t=>{const e=Array.from(t.childNodes);if(!this.breaks&&e.length){var o;const t=e[0];t.nodeType===Node.TEXT_NODE&&t.textContent===a.input&&null!==(o=t.textContent)&&void 0!==o&&o.includes("\n")&&(t.textContent=t.textContent.split("\n").slice(1).join("\n"))}return e}).reduce((t,e)=>t.concat(e),[]).filter(t=>t.textContent&&t.textContent!==a.input)),e.parentNode().replaceChild(r,t)}}else t instanceof HTMLElement&&["ha-alert","ha-qr-code","ha-icon","ha-svg-icon"].includes(t.localName)&&a(62003)(`./${t.localName}`)}}constructor(...t){super(...t),this.allowSvg=!1,this.allowDataUrl=!1,this.breaks=!1,this.lazyImages=!1,this.cache=!1,this._renderPromise=Promise.resolve(),this._resize=()=>(0,h.r)(this,"content-resize")}}(0,r.Cg)([(0,n.MZ)()],w.prototype,"content",void 0),(0,r.Cg)([(0,n.MZ)({attribute:"allow-svg",type:Boolean})],w.prototype,"allowSvg",void 0),(0,r.Cg)([(0,n.MZ)({attribute:"allow-data-url",type:Boolean})],w.prototype,"allowDataUrl",void 0),(0,r.Cg)([(0,n.MZ)({type:Boolean})],w.prototype,"breaks",void 0),(0,r.Cg)([(0,n.MZ)({type:Boolean,attribute:"lazy-images"})],w.prototype,"lazyImages",void 0),(0,r.Cg)([(0,n.MZ)({type:Boolean})],w.prototype,"cache",void 0),w=(0,r.Cg)([(0,n.EM)("ha-markdown-element")],w)},3587:function(t,e,a){"use strict";a(3362),a(62953);var o=a(40445),r=a(5124),i=a(67576);a(38377);let n,s,l=t=>t;class c extends r.WF{async getUpdateComplete(){var t;const e=await super.getUpdateComplete();return await(null===(t=this._markdownElement)||void 0===t?void 0:t.updateComplete),e}render(){return this.content?(0,r.qy)(n||(n=l`<ha-markdown-element .content="${0}" .allowSvg="${0}" .allowDataUrl="${0}" .breaks="${0}" .lazyImages="${0}" .cache="${0}"></ha-markdown-element>`),this.content,this.allowSvg,this.allowDataUrl,this.breaks,this.lazyImages,this.cache):r.s6}constructor(...t){super(...t),this.allowSvg=!1,this.allowDataUrl=!1,this.breaks=!1,this.lazyImages=!1,this.cache=!1}}c.styles=(0,r.AH)(s||(s=l`:host{display:block}ha-markdown-element{-ms-user-select:text;-webkit-user-select:text;-moz-user-select:text}ha-markdown-element>:first-child{margin-top:0}ha-markdown-element>:last-child{margin-bottom:0}ha-alert{display:block;margin:var(--ha-space-1) 0}a{color:var(--markdown-link-color,var(--primary-color))}img{background-color:var(--markdown-image-background-color);border-radius:var(--markdown-image-border-radius);max-width:100%}p:first-child>img:first-child{vertical-align:top}p:first-child>img:last-child{vertical-align:top}ha-markdown-element>:is(ol,ul){padding-inline-start:var(--markdown-list-indent,revert)}li:has(input[type=checkbox]){list-style:none}li:has(input[type=checkbox])>input[type=checkbox]{margin-left:0}svg{background-color:var(--markdown-svg-background-color,none);color:var(--markdown-svg-color,none)}code,pre{background-color:var(--markdown-code-background-color,none);border-radius:var(--ha-border-radius-sm);color:var(--markdown-code-text-color,inherit)}code{font-size:var(--ha-font-size-s);padding:.2em .4em}pre code{padding:0}pre{padding:var(--ha-space-4);overflow:auto;line-height:var(--ha-line-height-condensed);font-family:var(--ha-font-family-code)}h1,h2,h3,h4,h5,h6{line-height:initial}h2{font-size:var(--ha-font-size-xl);font-weight:var(--ha-font-weight-bold)}hr{border-color:var(--divider-color);border-bottom:none;margin:var(--ha-space-4) 0}table[role=presentation]{--markdown-table-border-collapse:separate;--markdown-table-border-width:0;--markdown-table-padding-inline:0;--markdown-table-padding-block:0}table[role=presentation] td,table[role=presentation] th{vertical-align:middle}table[role=presentation] td[valign=top],table[role=presentation] th[valign=top]{vertical-align:top}table[role=presentation] td[valign=middle],table[role=presentation] th[valign=middle]{vertical-align:middle}table[role=presentation] td[valign=bottom],table[role=presentation] th[valign=bottom]{vertical-align:bottom}table[role=presentation] td[valign=baseline],table[role=presentation] th[valign=baseline]{vertical-align:baseline}@supports (border-width:attr(border px,0)){table[role=presentation]{--markdown-table-border-width:attr(border px, 0)}table[role=presentation] td,table[role=presentation] th{vertical-align:attr(valign,middle)}}table[role=presentation][border="0"]{--markdown-table-border-width:0}table[role=presentation][border="1"]{--markdown-table-border-width:1px}table[role=presentation][border="2"]{--markdown-table-border-width:2px}table[role=presentation][border="3"]{--markdown-table-border-width:3px}table{border-collapse:var(--markdown-table-border-collapse,collapse)}div:has(> table){overflow:auto}th{text-align:var(--markdown-table-text-align,start)}td,th{border-width:var(--markdown-table-border-width,1px);border-style:var(--markdown-table-border-style,solid);border-color:var(--markdown-table-border-color,var(--divider-color));padding-inline:var(--markdown-table-padding-inline,0.5em);padding-block:var(--markdown-table-padding-block,0.25em)}blockquote{border-left:4px solid var(--divider-color);margin-inline:0;padding-inline:1em}`)),(0,o.Cg)([(0,i.MZ)()],c.prototype,"content",void 0),(0,o.Cg)([(0,i.MZ)({attribute:"allow-svg",type:Boolean})],c.prototype,"allowSvg",void 0),(0,o.Cg)([(0,i.MZ)({attribute:"allow-data-url",type:Boolean})],c.prototype,"allowDataUrl",void 0),(0,o.Cg)([(0,i.MZ)({type:Boolean})],c.prototype,"breaks",void 0),(0,o.Cg)([(0,i.MZ)({type:Boolean,attribute:"lazy-images"})],c.prototype,"lazyImages",void 0),(0,o.Cg)([(0,i.MZ)({type:Boolean})],c.prototype,"cache",void 0),(0,o.Cg)([(0,i.P)("ha-markdown-element")],c.prototype,"_markdownElement",void 0),c=(0,o.Cg)([(0,i.EM)("ha-markdown")],c)},2054:function(t,e,a){"use strict";a.a(t,async function(t,e){try{a(16280),a(62953);var o=a(40445),r=a(5124),i=a(67576),n=a(1087),s=a(44249),l=a(26300),c=t([l]);l=(c.then?(await c)():c)[0];let h,d,p,u=t=>t;const b="M3,6H21V8H3V6M3,11H21V13H3V11M3,16H21V18H3V16Z";class v extends r.WF{connectedCallback(){super.connectedCallback(),this._attachNotifOnConnect&&(this._attachNotifOnConnect=!1,this._subscribeNotifications())}disconnectedCallback(){super.disconnectedCallback(),this._unsubNotifications&&(this._attachNotifOnConnect=!0,this._unsubNotifications(),this._unsubNotifications=void 0)}render(){if(!this._show)return r.s6;const t=this._hasNotifications&&(this.narrow||"always_hidden"===this.hass.dockedSidebar);return(0,r.qy)(h||(h=u` <ha-icon-button .label="${0}" .path="${0}" @click="${0}"></ha-icon-button> ${0} `),this.hass.localize("ui.sidebar.sidebar_toggle"),b,this._toggleMenu,t?(0,r.qy)(d||(d=u`<div class="dot"></div>`)):"")}willUpdate(t){if(super.willUpdate(t),!t.has("narrow")&&!t.has("hass"))return;const e=t.has("hass")?t.get("hass"):this.hass,a=t.has("narrow")?t.get("narrow"):this.narrow,o=!1===(null==e?void 0:e.kioskMode)&&(a||"always_hidden"===(null==e?void 0:e.dockedSidebar)),r=!1===this.hass.kioskMode&&(this.narrow||"always_hidden"===this.hass.dockedSidebar);this.hasUpdated&&o===r||(this._show=r||this._alwaysVisible,r?this._subscribeNotifications():this._unsubNotifications&&(this._unsubNotifications(),this._unsubNotifications=void 0))}_subscribeNotifications(){if(this._unsubNotifications)throw new Error("Already subscribed");this._unsubNotifications=(0,s.V)(this.hass.connection,t=>{this._hasNotifications=t.length>0})}_toggleMenu(){(0,n.r)(this,"hass-toggle-menu")}constructor(...t){super(...t),this.narrow=!1,this._hasNotifications=!1,this._show=!1,this._alwaysVisible=!1,this._attachNotifOnConnect=!1}}v.styles=(0,r.AH)(p||(p=u`:host{position:relative}.dot{pointer-events:none;position:absolute;background-color:var(--accent-color);width:12px;height:12px;top:9px;right:7px;inset-inline-end:7px;inset-inline-start:initial;border-radius:var(--ha-border-radius-circle);border:2px solid var(--app-header-background-color)}`)),(0,o.Cg)([(0,i.MZ)({type:Boolean})],v.prototype,"narrow",void 0),(0,o.Cg)([(0,i.MZ)({attribute:!1})],v.prototype,"hass",void 0),(0,o.Cg)([(0,i.wk)()],v.prototype,"_hasNotifications",void 0),(0,o.Cg)([(0,i.wk)()],v.prototype,"_show",void 0),v=(0,o.Cg)([(0,i.EM)("ha-menu-button")],v),e()}catch(h){e(h)}})},67094:function(t,e,a){"use strict";a.r(e),a.d(e,{HaSvgIcon:function(){return d}});var o=a(40445),r=a(5124),i=a(67576);let n,s,l,c,h=t=>t;class d extends r.WF{render(){return(0,r.JW)(n||(n=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,r.JW)(s||(s=h`<path class="primary-path" d="${0}"></path>`),this.path):r.s6,this.secondaryPath?(0,r.JW)(l||(l=h`<path class="secondary-path" d="${0}"></path>`),this.secondaryPath):r.s6)}}d.styles=(0,r.AH)(c||(c=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,o.Cg)([(0,i.MZ)()],d.prototype,"path",void 0),(0,o.Cg)([(0,i.MZ)({attribute:!1})],d.prototype,"secondaryPath",void 0),(0,o.Cg)([(0,i.MZ)({attribute:!1})],d.prototype,"viewBox",void 0),d=(0,o.Cg)([(0,i.EM)("ha-svg-icon")],d)},59646:function(t,e,a){"use strict";a.a(t,async function(t,e){try{a(62953);var o=a(40445),r=a(29344),i=a(5124),n=a(67576),s=a(88360),l=t([r]);r=(l.then?(await l)():l)[0];let c,h=t=>t;class d extends r.A{updated(t){super.updated(t),t.has("haptic")&&(this.haptic?this.addEventListener("change",this._forwardHaptic):this.removeEventListener("change",this._forwardHaptic))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("change",this._forwardHaptic)}static get styles(){return[r.A.styles,(0,i.AH)(c||(c=h`:host{--wa-form-control-toggle-size:var(--ha-switch-size, 24px);--wa-form-control-required-content:var(
            --ha-switch-required-marker,
            var(--ha-input-required-marker, "*")
          );--wa-form-control-required-content-offset:var(
            --ha-switch-required-marker-offset,
            0.1rem
          );--thumb-size:var(--ha-switch-thumb-size, 18px);--width:var(--ha-switch-width, 48px)}label{position:relative;height:max(var(--thumb-size),var(--wa-form-control-toggle-size))}label::before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%;min-width:var(--ha-switch-min-touch-size,40px);min-height:var(--ha-switch-min-touch-size,40px)}label.disabled::before{pointer-events:none}.switch{background-color:var(--ha-switch-background-color,var(--ha-color-fill-disabled-quiet-resting));border-color:var(--ha-switch-border-color,var(--ha-color-border-neutral-normal))}label:not(.disabled) .input:focus-visible~.switch,label:not(.disabled):hover .switch{background-color:var(--ha-switch-background-color-hover,var(--ha-switch-background-color,var(--ha-color-fill-disabled-quiet-hover)))}.checked .switch{background-color:var(--ha-switch-checked-background-color,var(--ha-color-fill-primary-normal-resting));border-color:var(--ha-switch-checked-border-color,var(--ha-color-border-primary-loud))}label:not(.disabled).checked .input:focus-visible~.switch,label:not(.disabled).checked:hover .switch{background-color:var(--ha-switch-checked-background-color-hover,var(--ha-switch-checked-background-color,var(--ha-color-fill-primary-normal-hover)));border-color:var(--ha-switch-checked-border-color-hover,var(--ha-switch-checked-border-color,var(--ha-color-border-primary-loud)))}.switch .thumb{background-color:var(--ha-switch-thumb-background-color,var(--ha-color-on-neutral-normal));border-color:var(--ha-switch-thumb-border-color,var(--ha-color-on-neutral-normal));border-style:var(--wa-form-control-border-style);border-width:var(--wa-form-control-border-width);box-shadow:var(--ha-switch-thumb-box-shadow,var(--ha-box-shadow-s))}label:not(.disabled) .input:focus-visible~.switch .thumb,label:not(.disabled):hover .switch .thumb{background-color:var(--ha-switch-thumb-background-color-hover,var(--ha-switch-thumb-background-color,var(--ha-color-on-neutral-normal)));border-color:var(--ha-switch-thumb-border-color-hover,var(--ha-switch-thumb-border-color,var(--ha-color-on-neutral-normal)))}.checked .switch .thumb{background-color:var(--ha-switch-checked-thumb-background-color,var(--ha-color-on-primary-normal));border-color:var(--ha-switch-checked-thumb-border-color,var(--ha-color-on-primary-normal))}label:not(.disabled).checked .input:focus-visible~.switch .thumb,label:not(.disabled).checked:hover .switch .thumb{background-color:var(--ha-switch-checked-thumb-background-color-hover,var(--ha-switch-checked-thumb-background-color,var(--ha-color-on-primary-normal)));border-color:var(--ha-switch-checked-thumb-border-color-hover,var(--ha-switch-checked-thumb-border-color,var(--ha-color-on-primary-normal)))}label.disabled{opacity:var(--ha-switch-disabled-opacity, .3);cursor:not-allowed}label:not(.disabled) .input:focus-visible~.switch .thumb{outline:0;outline-offset:none}label:not(.disabled) .input:focus-visible~.switch{outline:var(--wa-focus-ring);outline-offset:var(--wa-focus-ring-offset)}:host(:empty) slot.label{display:none}`))]}constructor(...t){super(...t),this.haptic=!1,this._forwardHaptic=()=>{(0,s.j)(this,"light")}}}(0,o.Cg)([(0,n.MZ)({type:Boolean})],d.prototype,"haptic",void 0),d=(0,o.Cg)([(0,n.EM)("ha-switch")],d),e()}catch(c){e(c)}})},93758:function(t,e,a){"use strict";a.d(e,{CO:function(){return h},NS:function(){return c},f$:function(){return i},ok:function(){return n}});a(3362);var o=a(90889),r=a(9899);const i=async t=>(await t.callWS({type:"labs/list"})).features,n=(t,e,a,o,r)=>t.callWS(Object.assign({type:"labs/update",domain:e,preview_feature:a,enabled:o},void 0!==r&&{create_backup:r})),s=t=>t.sendMessagePromise({type:"labs/list"}).then(t=>t.features),l=(t,e)=>t.subscribeEvents((0,r.s)(()=>s(t).then(t=>e.setState(t,!0)),500,!0),"labs_updated"),c=(t,e)=>(0,o.N)("_labFeatures",s,l,t,e),h=(t,e,a,o)=>t.subscribeMessage(o,{type:"labs/subscribe",domain:e,preview_feature:a})},44249:function(t,e,a){"use strict";a.d(e,{V:function(){return o}});a(62953);const o=(t,e)=>{const a=new r,o=t.subscribeMessage(t=>e(a.processMessage(t)),{type:"persistent_notification/subscribe"});return()=>{o.then(t=>null==t?void 0:t())}};class r{processMessage(t){if("removed"===t.type)for(const e of Object.keys(t.notifications))delete this.notifications[e];else this.notifications=Object.assign(Object.assign({},this.notifications),t.notifications);return Object.values(this.notifications)}constructor(){this.notifications={}}}},81310:function(t,e,a){"use strict";a.a(t,async function(t,e){try{a(62953);var o=a(40445),r=a(5124),i=a(67576),n=a(6412),s=a(26218),l=a(91926),c=a(90248),h=a(2054),d=a(14503),p=t([c,h]);[c,h]=p.then?(await p)():p;let u,b,v,g,f,m=t=>t;class w extends r.WF{render(){var t;return(0,r.qy)(u||(u=m` <div class="toolbar ${0}"> <div class="toolbar-content"> ${0} <div class="main-title"> <slot name="header">${0}</slot> </div> <slot name="toolbar-icon"></slot> </div> </div> <div class="${0}" @scroll="${0}"> <slot></slot> </div> <div id="fab"> <slot name="fab"></slot> </div> `),(0,n.H)({narrow:this.narrow}),this.mainPage||null!==(t=history.state)&&void 0!==t&&t.root?(0,r.qy)(b||(b=m` <ha-menu-button .hass="${0}" .narrow="${0}"></ha-menu-button> `),this.hass,this.narrow):this.backPath?(0,r.qy)(v||(v=m` <ha-icon-button-arrow-prev href="${0}" .hass="${0}"></ha-icon-button-arrow-prev> `),this.backPath,this.hass):(0,r.qy)(g||(g=m` <ha-icon-button-arrow-prev .hass="${0}" @click="${0}"></ha-icon-button-arrow-prev> `),this.hass,this._backTapped),this.header,(0,n.H)({content:!0,"ha-scrollbar":this.scrollable,"not-scrollable":!this.scrollable}),this._saveScrollPos)}_saveScrollPos(t){this._savedScrollPos=t.target.scrollTop}_backTapped(){this.backCallback?this.backCallback():(0,l.OE)()}static get styles(){return[d.dp,(0,r.AH)(f||(f=m`:host{display:block;height:100%;background-color:var(--primary-background-color);overflow:hidden;position:relative}:host([narrow]){width:100%;position:fixed}.toolbar{background-color:var(--app-header-background-color);padding-top:var(--safe-area-inset-top);padding-right:var(--safe-area-inset-right)}:host([narrow]) .toolbar{padding-left:var(--safe-area-inset-left)}.toolbar-content{display:flex;align-items:center;font-size:var(--ha-font-size-xl);height:var(--header-height);font-weight:var(--ha-font-weight-normal);color:var(--app-header-text-color,#fff);border-bottom:var(--app-header-border-bottom,none);box-sizing:border-box;padding:8px 12px}.toolbar a{color:var(--sidebar-text-color);text-decoration:none}::slotted([slot=toolbar-icon]),ha-icon-button-arrow-prev,ha-menu-button{display:flex;align-items:center;pointer-events:auto;color:var(--sidebar-icon-color)}.main-title{margin-inline-start:var(--ha-space-6);line-height:var(--ha-line-height-normal);min-width:0;flex-grow:1;overflow-wrap:break-word;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.narrow .main-title{margin-inline-start:var(--ha-space-2)}.content{position:relative;width:calc(100% - var(--safe-area-inset-right,0px));height:calc(100% - 1px - var(--header-height,0px) - var(--safe-area-inset-top,0px) - var(--safe-area-inset-bottom,0px));padding-bottom:var(--safe-area-inset-bottom,0px);margin-right:var(--safe-area-inset-right);overflow-y:auto;overflow:auto;-webkit-overflow-scrolling:touch}.content.not-scrollable{overflow:hidden;display:flex;flex-direction:column}:host([narrow]) .content{width:calc(100% - var(--safe-area-inset-left,0px) - var(--safe-area-inset-right,0px));margin-left:var(--safe-area-inset-left)}#fab{position:absolute;right:calc(16px + var(--safe-area-inset-right,0px));inset-inline-end:calc(16px + var(--safe-area-inset-right,0px));inset-inline-start:initial;bottom:calc(16px + var(--safe-area-inset-bottom,0px));z-index:1;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--ha-space-2);--ha-button-box-shadow:var(--ha-box-shadow-l)}:host([narrow]) #fab.tabs{bottom:calc(84px + var(--safe-area-inset-bottom,0px))}#fab[is-wide]{bottom:calc(24px + var(--safe-area-inset-bottom,0px));right:calc(24px + var(--safe-area-inset-right,0px));inset-inline-end:calc(24px + var(--safe-area-inset-right,0px));inset-inline-start:initial}`))]}constructor(...t){super(...t),this.mainPage=!1,this.narrow=!1,this.scrollable=!0}}(0,o.Cg)([(0,i.MZ)({attribute:!1})],w.prototype,"hass",void 0),(0,o.Cg)([(0,i.MZ)()],w.prototype,"header",void 0),(0,o.Cg)([(0,i.MZ)({type:Boolean,attribute:"main-page"})],w.prototype,"mainPage",void 0),(0,o.Cg)([(0,i.MZ)({type:String,attribute:"back-path"})],w.prototype,"backPath",void 0),(0,o.Cg)([(0,i.MZ)({attribute:!1})],w.prototype,"backCallback",void 0),(0,o.Cg)([(0,i.MZ)({type:Boolean,reflect:!0})],w.prototype,"narrow",void 0),(0,o.Cg)([(0,i.MZ)({type:Boolean})],w.prototype,"scrollable",void 0),(0,o.Cg)([(0,s.a)(".content")],w.prototype,"_savedScrollPos",void 0),(0,o.Cg)([(0,i.Ls)({passive:!0})],w.prototype,"_saveScrollPos",null),w=(0,o.Cg)([(0,i.EM)("hass-subpage")],w),e()}catch(u){e(u)}})},54706:function(t,e,a){"use strict";a.d(e,{E:function(){return i}});a(74423),a(18111),a(13579),a(3362),a(62953);var o=a(40445),r=a(67576);const i=t=>{class e extends t{connectedCallback(){super.connectedCallback(),this._checkSubscribed()}disconnectedCallback(){if(super.disconnectedCallback(),this.__unsubs){for(;this.__unsubs.length;){const t=this.__unsubs.pop();t instanceof Promise?t.then(t=>t()):t()}this.__unsubs=void 0}}updated(t){if(super.updated(t),t.has("hass"))this._checkSubscribed();else if(this.hassSubscribeRequiredHostProps)for(const e of t.keys())if(this.hassSubscribeRequiredHostProps.includes(e))return void this._checkSubscribed()}hassSubscribe(){return[]}_checkSubscribed(){var t;void 0!==this.__unsubs||!this.isConnected||void 0===this.hass||null!==(t=this.hassSubscribeRequiredHostProps)&&void 0!==t&&t.some(t=>void 0===this[t])||(this.__unsubs=this.hassSubscribe())}}return(0,o.Cg)([(0,r.MZ)({attribute:!1})],e.prototype,"hass",void 0),e}},78040:function(t,e,a){"use strict";a.a(t,async function(t,o){try{a.r(e);a(26910),a(18111),a(61701),a(3362),a(17642),a(58004),a(33853),a(45876),a(32475),a(15024),a(31698),a(62953);var r=a(40445),i=a(5124),n=a(67576),s=a(22786),l=a(6030),c=a(38962),h=a(18350),d=(a(76776),a(26300)),p=(a(3587),a(59646)),u=a(95350),b=a(93758),v=a(65063),g=a(81310),f=a(54706),m=a(14503),w=a(44144),y=a(36918),x=a(81619),k=a(56072),_=a(32854),C=t([c,h,d,p,g]);[c,h,d,p,g]=C.then?(await C)():C;let $,M,z,H,A,Z,L,P,T=t=>t;const S="M6,22A3,3 0 0,1 3,19C3,18.4 3.18,17.84 3.5,17.37L9,7.81V6A1,1 0 0,1 8,5V4A2,2 0 0,1 10,2H14A2,2 0 0,1 16,4V5A1,1 0 0,1 15,6V7.81L20.5,17.37C20.82,17.84 21,18.4 21,19A3,3 0 0,1 18,22H6M5,19A1,1 0 0,0 6,20H18A1,1 0 0,0 19,19C19,18.79 18.93,18.59 18.82,18.43L16.53,14.47L14,17L8.93,11.93L5.18,18.43C5.07,18.59 5,18.79 5,19M13,10A1,1 0 0,0 12,11A1,1 0 0,0 13,12A1,1 0 0,0 14,11A1,1 0 0,0 13,10Z",E="M11,18H13V16H11V18M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,6A4,4 0 0,0 8,10H10A2,2 0 0,1 12,8A2,2 0 0,1 14,10C14,12 11,11.75 11,15H13C13,12.75 16,12.5 16,10A4,4 0 0,0 12,6Z",q="M14,3V5H17.59L7.76,14.83L9.17,16.24L19,6.41V10H21V3M19,19H5V5H12V3H5C3.89,3 3,3.9 3,5V19A2,2 0 0,0 5,21H19A2,2 0 0,0 21,19V12H19V19Z";class N extends((0,f.E)(i.WF)){hassSubscribe(){return[(0,b.NS)(this.hass.connection,t=>{const e=[...new Set(t.map(t=>t.domain))];this.hass.loadBackendTranslation("title",e),this.hass.loadBackendTranslation("preview_features",e),this._preview_features=t})]}firstUpdated(t){super.firstUpdated(t),this.hass.loadBackendTranslation("preview_features"),this._handleUrlParams()}_handleUrlParams(){const t=(0,l.p9)("domain"),e=(0,l.p9)("preview_feature");if(t&&e){const a=`${t}.${e}`;this._highlightedPreviewFeature=a,this.updateComplete.then(()=>{this._scrollToPreviewFeature(a)})}}render(){const t=this._sortedPreviewFeatures(this.hass.localize,this._preview_features);return(0,i.qy)($||($=T` <hass-subpage .hass="${0}" .narrow="${0}" back-path="/config/system" .header="${0}"> ${0} <div class="content"> ${0} </div> </hass-subpage> `),this.hass,this.narrow,this.hass.localize("ui.panel.config.labs.caption"),t.length?(0,i.qy)(M||(M=T` <ha-icon-button slot="toolbar-icon" .href="${0}" target="_blank" rel="noopener noreferrer" .title="${0}" .label="${0}" .path="${0}"></ha-icon-button> `),(0,y.o)(this.hass,"/integrations/labs/"),this.hass.localize("ui.common.help"),this.hass.localize("ui.common.help"),E):i.s6,t.length?(0,i.qy)(H||(H=T` <ha-card outlined> <div class="card-content intro-card"> <h1> ${0} </h1> <p class="intro-text"> ${0} </p> <ha-alert alert-type="warning"> ${0} </ha-alert> </div> </ha-card> ${0} `),this.hass.localize("ui.panel.config.labs.intro_title"),this.hass.localize("ui.panel.config.labs.intro_description"),this.hass.localize("ui.panel.config.labs.intro_warning"),t.map(t=>this._renderPreviewFeature(t))):(0,i.qy)(z||(z=T` <div class="empty"> <ha-svg-icon .path="${0}"></ha-svg-icon> <h1> ${0} </h1> ${0} <a href="${0}" target="_blank" rel="noopener noreferrer"> ${0} <ha-svg-icon .path="${0}"></ha-svg-icon> </a> </div> `),S,this.hass.localize("ui.panel.config.labs.empty.title"),this.hass.localize("ui.panel.config.labs.empty.description"),(0,y.o)(this.hass,"/integrations/labs/"),this.hass.localize("ui.panel.config.labs.learn_more"),q))}_renderPreviewFeature(t){var e;const a=`${t.domain}.${t.preview_feature}`,o=this.hass.localize(`component.${t.domain}.preview_features.${t.preview_feature}.name`),r=this.hass.localize(`component.${t.domain}.preview_features.${t.preview_feature}.description`),n=(0,u.p$)(this.hass.localize,t.domain),s=t.is_built_in?n:`${n} • ${this.hass.localize("ui.panel.config.labs.custom_integration")}`,l=this._highlightedPreviewFeature===a,c=t.learn_more_url?`${r}\n\n[${this.hass.localize("ui.panel.config.labs.learn_more")}](${t.learn_more_url})`:r;return(0,i.qy)(A||(A=T` <ha-card outlined data-feature-id="${0}" class="${0}"> <div class="card-content"> <div class="card-header"> <img alt="" src="${0}" crossorigin="anonymous" referrerpolicy="no-referrer"> <div class="feature-title"> <span class="integration-name">${0}</span> <h2>${0}</h2> </div> </div> <ha-markdown .content="${0}" breaks></ha-markdown> </div> <div class="card-actions"> <div> ${0} ${0} </div> <ha-button appearance="filled" .variant="${0}" @click="${0}" .preview_feature="${0}"> ${0} </ha-button> </div> </ha-card> `),a,l?"highlighted":"",(0,w.MR)({domain:t.domain,type:"icon",darkOptimized:null===(e=this.hass.themes)||void 0===e?void 0:e.darkMode},this.hass.auth.data.hassUrl),s,o,c,t.feedback_url?(0,i.qy)(Z||(Z=T` <ha-button appearance="plain" href="${0}" target="_blank" rel="noopener noreferrer"> ${0} </ha-button> `),t.feedback_url,this.hass.localize("ui.panel.config.labs.provide_feedback")):i.s6,t.report_issue_url?(0,i.qy)(L||(L=T` <ha-button appearance="plain" href="${0}" target="_blank" rel="noopener noreferrer"> ${0} </ha-button> `),t.report_issue_url,this.hass.localize("ui.panel.config.labs.report_issue")):i.s6,t.enabled?"danger":"brand",this._handleToggle,t,this.hass.localize(t.enabled?"ui.panel.config.labs.disable":"ui.panel.config.labs.enable"))}_scrollToPreviewFeature(t){var e;const a=null===(e=this.shadowRoot)||void 0===e?void 0:e.querySelector(`[data-feature-id="${t}"]`);a&&(a.scrollIntoView({behavior:"smooth",block:"center"}),setTimeout(()=>{this._highlightedPreviewFeature=void 0},3e3))}async _handleToggle(t){const e=t.currentTarget.preview_feature,a=!e.enabled,o=`${e.domain}.${e.preview_feature}`;if(a)return void(0,k.R)(this,{preview_feature:e,previewFeatureId:o,onConfirm:async t=>{await this._performToggle(o,a,t)}});await(0,v.dk)(this,{title:this.hass.localize("ui.panel.config.labs.disable_title"),text:this.hass.localize(`component.${e.domain}.preview_features.${e.preview_feature}.disable_confirmation`)||this.hass.localize("ui.panel.config.labs.disable_confirmation"),confirmText:this.hass.localize("ui.panel.config.labs.disable"),dismissText:this.hass.localize("ui.common.cancel"),destructive:!0})&&await this._performToggle(o,a,!1)}async _performToggle(t,e,a){a&&(0,_.xX)(this,{enabled:e});const o=t.split(".",2);if(2!==o.length)return void(0,x.P)(this,{message:this.hass.localize("ui.common.unknown_error")});const[r,i]=o;try{await(0,b.ok)(this.hass,r,i,e,a)}catch(n){a&&(0,_.MD)();const t=(null==n?void 0:n.message)||this.hass.localize("ui.common.unknown_error");return void(0,x.P)(this,{message:this.hass.localize(e?"ui.panel.config.labs.enable_failed":"ui.panel.config.labs.disable_failed",{error:t})})}a&&(0,_.MD)(),(0,x.P)(this,{message:this.hass.localize(e?"ui.panel.config.labs.enabled_success":"ui.panel.config.labs.disabled_success")})}constructor(...t){super(...t),this.narrow=!1,this._preview_features=[],this._sortedPreviewFeatures=(0,s.A)((t,e)=>[...e].sort((e,a)=>"frontend"===e.domain&&"winter_mode"===e.preview_feature?1:"frontend"===a.domain&&"winter_mode"===a.preview_feature?-1:(0,u.p$)(t,e.domain).localeCompare((0,u.p$)(t,a.domain))))}}N.styles=[m.RF,(0,i.AH)(P||(P=T`:host{display:block;height:100%}ha-icon-button[slot=toolbar-icon]{color:var(--sidebar-icon-color)}.content{max-width:800px;margin:0 auto;padding:var(--ha-space-4);display:flex;flex-direction:column}.content:has(.empty){justify-content:center}ha-card{margin-bottom:var(--ha-space-4);position:relative;transition:box-shadow .3s ease}ha-card.highlighted{animation:highlight-fade 2.5s ease-out forwards}@keyframes highlight-fade{0%{box-shadow:0 0 0 var(--ha-border-width-md) var(--primary-color),0 0 12px rgba(var(--rgb-primary-color),.4)}100%{box-shadow:0 0 0 var(--ha-border-width-md) transparent,0 0 0 transparent}}.intro-card{display:flex;flex-direction:column;gap:var(--ha-space-4)}.intro-card h1{margin:0}.intro-text{margin:0 0 var(--ha-space-3)}.card-content{padding:var(--ha-space-4)}.card-header{display:flex;gap:var(--ha-space-3);margin-bottom:var(--ha-space-4);align-items:flex-start}.card-header img{width:38px;height:38px;flex-shrink:0;margin-top:2px}.feature-title{flex:1;min-width:0}.feature-title h2{margin:0;line-height:1.3}.integration-name{display:block;margin-bottom:2px;font-size:14px;color:var(--secondary-text-color)}.empty{max-width:500px;margin:0 auto;padding:var(--ha-space-12) var(--ha-space-4);text-align:center}.empty ha-svg-icon{width:120px;height:120px;color:var(--secondary-text-color);opacity:.3}.empty h1{margin:var(--ha-space-6) 0 var(--ha-space-4)}.empty p{margin:0 0 var(--ha-space-6);font-size:16px;line-height:24px;color:var(--secondary-text-color)}.empty a{display:inline-flex;align-items:center;gap:var(--ha-space-1);color:var(--primary-color);text-decoration:none;font-weight:500}.empty a:hover{text-decoration:underline}.empty a:focus-visible{outline:var(--ha-border-width-md) solid var(--primary-color);outline-offset:2px;border-radius:var(--ha-border-radius-sm)}.empty a ha-svg-icon{width:16px;height:16px;opacity:1}.card-actions{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:var(--ha-space-2);padding:var(--ha-space-2);border-top:var(--ha-border-width-sm) solid var(--divider-color)}.card-actions>div{display:flex;flex-wrap:wrap;gap:var(--ha-space-2)}`))],(0,r.Cg)([(0,n.MZ)({attribute:!1})],N.prototype,"hass",void 0),(0,r.Cg)([(0,n.MZ)({type:Boolean})],N.prototype,"narrow",void 0),(0,r.Cg)([(0,n.wk)()],N.prototype,"_preview_features",void 0),(0,r.Cg)([(0,n.wk)()],N.prototype,"_highlightedPreviewFeature",void 0),N=(0,r.Cg)([(0,n.EM)("ha-config-labs")],N),o()}catch($){o($)}})},56072:function(t,e,a){"use strict";a.d(e,{R:function(){return i}});a(3362),a(62953);var o=a(1087);const r=()=>Promise.all([a.e(46095),a.e(79996),a.e(74789),a.e(11037)]).then(a.bind(a,56588)),i=(t,e)=>{(0,o.r)(t,"show-dialog",{dialogTag:"dialog-labs-preview-feature-enable",dialogImport:r,dialogParams:e})}},32854:function(t,e,a){"use strict";a.d(e,{MD:function(){return s},xX:function(){return n}});a(3362),a(62953);var o=a(1087),r=a(96126);const i=()=>Promise.all([a.e(11921),a.e(31823)]).then(a.bind(a,95338)),n=(t,e)=>{(0,o.r)(t,"show-dialog",{dialogTag:"dialog-labs-progress",dialogImport:i,dialogParams:e})},s=()=>(0,r.zU)("dialog-labs-progress")},14503:function(t,e,a){"use strict";a.d(e,{RF:function(){return p},dp:function(){return v},kO:function(){return b},nA:function(){return u},og:function(){return d}});var o=a(5124);let r,i,n,s,l,c,h=t=>t;const d=(0,o.AH)(r||(r=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,o.AH)(i||(i=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}`),d),u=(0,o.AH)(n||(n=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)}`)),b=(0,o.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}}`)),v=(0,o.AH)(l||(l=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,o.AH)(c||(c=h`body{background-color:var(--primary-background-color);color:var(--primary-text-color);height:calc(100vh - 32px);width:100vw}`))},996:function(t,e,a){"use strict";a.d(e,{G:function(){return o}});a(45367),a(92731),a(62953);class o{get(t){return this._cache.get(t)}set(t,e){this._cache.set(t,e),this._expiration&&window.setTimeout(()=>this._cache.delete(t),this._expiration)}has(t){return this._cache.has(t)}constructor(t){this._cache=new Map,this._expiration=t}}},36918:function(t,e,a){"use strict";a.d(e,{o:function(){return o}});const o=(t,e)=>`https://www.iobroker.net/#${t.language&&t.language.split("-")[0]||"en"}/adapters/adapterref/iobroker.lovelace/README.md#`},46571:function(t){function e(t){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e}e.keys=function(){return[]},e.resolve=e,e.id=46571,t.exports=e},62003:function(t,e,a){var o={"./ha-icon-prev":["89133",[61982]],"./ha-icon-button-toolbar":["9882",[39763,41983]],"./ha-alert":["38962",[19695]],"./ha-icon-button-toggle":["62501",[77254]],"./ha-svg-icon.ts":["67094",[]],"./ha-alert.ts":["38962",[19695]],"./ha-icon":["47680",[44889]],"./ha-icon-next.ts":["43661",[63902]],"./ha-qr-code.ts":["60543",[51343,62740]],"./ha-icon-overflow-menu.ts":["75248",[39763,34995,78097]],"./ha-icon-button-toggle.ts":["62501",[77254]],"./ha-icon-button-group":["39826",[13647]],"./ha-svg-icon":["67094",[]],"./ha-icon-button-prev":["45100",[99197]],"./ha-icon-button.ts":["26300",[]],"./ha-icon-overflow-menu":["75248",[39763,34995,78097]],"./ha-icon-button-arrow-next":["99028",[54101]],"./ha-icon-button-prev.ts":["45100",[99197]],"./ha-icon-picker":["64138",[39763,32450,46095,7305,92769,3283,62574,26092,39005,32301]],"./ha-icon-button-toolbar.ts":["9882",[39763,41983]],"./ha-icon-button-arrow-prev.ts":["90248",[17041]],"./ha-icon-button-next":["3059",[81049]],"./ha-icon-next":["43661",[63902]],"./ha-icon-picker.ts":["64138",[39763,32450,46095,7305,92769,3283,62574,26092,39005,32301]],"./ha-icon-prev.ts":["89133",[61982]],"./ha-icon-button-arrow-prev":["90248",[17041]],"./ha-icon-button-next.ts":["3059",[81049]],"./ha-icon.ts":["47680",[44889]],"./ha-qr-code":["60543",[51343,62740]],"./ha-icon-button":["26300",[]],"./ha-icon-button-group.ts":["39826",[13647]],"./ha-icon-button-arrow-next.ts":["99028",[54101]]};function r(t){if(!a.o(o,t))return Promise.resolve().then(function(){var e=new Error("Cannot find module '"+t+"'");throw e.code="MODULE_NOT_FOUND",e});var e=o[t],r=e[0];return Promise.all(e[1].map(a.e)).then(function(){return a(r)})}r.keys=function(){return Object.keys(o)},r.id=62003,t.exports=r}}]);