iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
63 lines • 35.2 kB
JavaScript
export const __rspack_esm_id=58726;export const __rspack_esm_ids=[58726];export const __webpack_modules__={93421(e,t,a){a.d(t,{IW:()=>d,dH:()=>c,fI:()=>l});a(44114);var i=a(35211),r=a(22792),o=a(32172);const s=(e,t)=>{let a=e;for(const e of t){if(null==a)return;a=a[e]}return a},n=(e,t,a)=>{const r=(0,o.p)({transformer:function(e){return a.call(this,e)},watch:t?[t]:[]}),s=(0,i.Fg)({context:e,subscribe:!0});return(e,t)=>{r(e,t),s(e,t)}},l=e=>n(r.iN,e.entityIdPath[0],function(t){const a=s(this,e.entityIdPath);return"string"==typeof a?t?.[a]:void 0}),c=e=>n(r.X1,e.entityIdPath[0],function(t){const a=s(this,e.entityIdPath);return"string"==typeof a?t?.[a]:void 0}),d=()=>n(r.D5,void 0,({localize:e})=>e)},32172(e,t,a){a.d(t,{p:()=>i});a(18111),a(7588),a(45367),a(92731),a(17642),a(58004),a(33853),a(45876),a(32475),a(15024),a(31698);function i(e){return(t,a)=>{if("object"==typeof a)throw new Error("This decorator does not support this compilation type.");const i=String(a),r=t;if(r._transformers){if(!r.hasOwnProperty("_transformers")){const e=r._transformers;r._transformers=new Map,e.forEach((e,t)=>r._transformers.set(t,e))}}else{r._transformers=new Map,r._watching=new Map;const e=r.willUpdate;r.willUpdate=function(t){e.call(this,t);const a=new Set;t.forEach((e,t)=>{const i=this._watching.get(t);void 0!==i&&i.forEach(e=>a.add(e))}),a.forEach(e=>{this[e]=this[`__original_${String(e)}`]})}}r._transformers.set(a,e.transformer),e.watch&&e.watch.forEach(e=>{let t=r._watching.get(e);t||(t=new Set,r._watching.set(e,t)),t.add(a)});const o=Object.getOwnPropertyDescriptor(t,a);let s;if(void 0===o)s={get(){return this[`__transform_${i}`]},set(e){const t=this[`__transform_${i}`],a=this._transformers.get(i);this[`__transform_${i}`]=a?a.call(this,e):e,this[`__original_${i}`]=e,this.requestUpdate(i,t)},configurable:!0,enumerable:!0};else{const e=o.set;s={...o,set(t){const a=this[`__transform_${i}`],r=this._transformers.get(i);this[`__transform_${i}`]=r?r.call(this,t):t,this[`__original_${i}`]=t,this.requestUpdate(i,a),e?.call(this,t)}}}Object.defineProperty(t,a,s)}}},57237(e,t,a){a.d(t,{d:()=>i});const i=e=>e.stopPropagation()},63130(e,t,a){a.d(t,{l:()=>r});var i=a(50248);const r=async(e,t)=>{if(navigator.clipboard)try{return void await navigator.clipboard.writeText(e)}catch{}const a=t||(0,i.n)()?.getRootNode()||document.body,r=document.createElement("textarea");r.value=e,r.setAttribute("readonly",""),r.style.position="fixed",r.style.top="0",r.style.left="0",r.style.opacity="0",a.appendChild(r),r.select(),document.execCommand("copy"),a.removeChild(r)}},38962(e,t,a){a.a(e,async function(e,i){try{a.r(t);var r=a(62826),o=a(5124),s=a(22441),n=a(6412),l=a(93421),c=a(1087),d=a(26300),h=(a(67094),e([d]));d=(h.then?(await h)():h)[0];const p="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",f={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 b extends o.WF{render(){return o.qy` <div class="issue-type ${(0,n.H)({[this.alertType]:!0})}" role="alert"> <div class="icon ${this.title?"":"no-title"}"> <slot name="icon"> <ha-svg-icon .path="${f[this.alertType]}"></ha-svg-icon> </slot> </div> <div class="${(0,n.H)({content:!0,narrow:this.narrow})}"> <div class="main-content"> ${this.title?o.qy`<div class="title">${this.title}</div>`:o.s6} <slot></slot> </div> <div class="action"> <slot name="action"> ${this.dismissable?o.qy`<ha-icon-button ="${this._dismissClicked}" .label="${this._localize?.("ui.common.dismiss_alert")}" .path="${p}"></ha-icon-button>`:o.s6} </slot> </div> </div> </div> `}_dismissClicked(){(0,c.r)(this,"alert-dismissed-clicked")}constructor(...e){super(...e),this.title="",this.alertType="info",this.dismissable=!1,this.narrow=!1}}b.styles=o.AH`.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,s.MZ)()],b.prototype,"title",void 0),(0,r.Cg)([(0,s.MZ)({attribute:"alert-type"})],b.prototype,"alertType",void 0),(0,r.Cg)([(0,s.MZ)({type:Boolean})],b.prototype,"dismissable",void 0),(0,r.Cg)([(0,s.wk)(),(0,l.IW)()],b.prototype,"_localize",void 0),(0,r.Cg)([(0,s.MZ)({type:Boolean})],b.prototype,"narrow",void 0),b=(0,r.Cg)([(0,s.EM)("ha-alert")],b),i()}catch(e){i(e)}})},76776(e,t,a){var i=a(62826),r=a(5124),o=a(22441);class s extends r.WF{render(){return r.qy` ${this.header?r.qy`<h1 class="card-header">${this.header}</h1>`:r.s6} <slot></slot> `}constructor(...e){super(...e),this.raised=!1}}s.styles=r.AH`: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,i.Cg)([(0,o.MZ)()],s.prototype,"header",void 0),(0,i.Cg)([(0,o.MZ)({type:Boolean,reflect:!0})],s.prototype,"raised",void 0),s=(0,i.Cg)([(0,o.EM)("ha-card")],s)},11382(e,t,a){var i=a(62826),r=a(5124),o=a(22441),s=a(6412),n=a(1087),l=a(12587);a(67094);class c extends r.WF{render(){const e=this.noCollapse?r.s6:r.qy` <ha-svg-icon .path="${"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z"}" class="summary-icon ${(0,s.H)({expanded:this.expanded})}"></ha-svg-icon> `;return r.qy` <div class="top ${(0,s.H)({expanded:this.expanded})}"> <div id="summary" class="${(0,s.H)({noCollapse:this.noCollapse})}" ="${this._toggleContainer}" ="${this._toggleContainer}" ="${this._focusChanged}" ="${this._focusChanged}" role="button" tabindex="${this.noCollapse?-1:0}" aria-expanded="${this.expanded}" aria-controls="sect1" part="summary"> ${this.leftChevron?e:r.s6} <slot name="leading-icon"></slot> <slot name="header"> <div class="header"> ${this.header} <slot class="secondary" name="secondary">${this.secondary}</slot> </div> </slot> <slot name="event"></slot> ${this.leftChevron?r.s6:e} <slot name="icons"></slot> </div> </div> <div class="container ${(0,s.H)({expanded:this.expanded})}" ="${this._handleTransitionEnd}" role="region" aria-labelledby="summary" aria-hidden="${!this.expanded}" tabindex="-1"> ${this._showContent?r.qy`<slot></slot>`:""} </div> `}willUpdate(e){super.willUpdate(e),e.has("expanded")&&(this._showContent=this.expanded,setTimeout(()=>{this._container.style.overflow=this.expanded?"initial":"hidden"},300))}_handleTransitionEnd(){this._container.style.removeProperty("height"),this._container.style.overflow=this.expanded?"initial":"hidden",this._showContent=this.expanded}async _toggleContainer(e){if(e.defaultPrevented)return;if("keydown"===e.type&&"Enter"!==e.key&&" "!==e.key)return;if(e.preventDefault(),this.noCollapse)return;const t=!this.expanded;(0,n.r)(this,"expanded-will-change",{expanded:t}),this._container.style.overflow="hidden",t&&(this._showContent=!0,await(0,l.E)());const a=this._container.scrollHeight;this._container.style.height=`${a}px`,t||setTimeout(()=>{this._container.style.height="0px"},0),this.expanded=t,(0,n.r)(this,"expanded-changed",{expanded:this.expanded})}_focusChanged(e){this.noCollapse||this.shadowRoot.querySelector(".top").classList.toggle("focused","focus"===e.type)}constructor(...e){super(...e),this.expanded=!1,this.outlined=!1,this.leftChevron=!1,this.noCollapse=!1,this._showContent=this.expanded}}c.styles=r.AH`:host{display:block}.top{display:flex;align-items:center;border-radius:var(--ha-card-border-radius,var(--ha-border-radius-lg))}.top.expanded{border-bottom-left-radius:0px;border-bottom-right-radius:0px}.top.focused{background:var(--input-fill-color)}:host([outlined]){box-shadow:none;border-width:1px;border-style:solid;border-color:var(--outline-color);border-radius:var(--ha-card-border-radius,var(--ha-border-radius-lg))}.summary-icon{transition:transform 150ms cubic-bezier(.4, 0, .2, 1);direction:var(--direction);margin-left:8px;margin-inline-start:8px;margin-inline-end:initial;border-radius:var(--ha-border-radius-circle)}#summary:focus-visible ha-svg-icon.summary-icon{background-color:var(--ha-color-fill-neutral-normal-active)}::slotted([slot=leading-icon]),:host([left-chevron]) .summary-icon{margin-left:0;margin-right:8px;margin-inline-start:0;margin-inline-end:8px}#summary{flex:1;display:flex;padding:var(--expansion-panel-summary-padding,0 8px);min-height:48px;align-items:center;cursor:pointer;overflow:hidden;font-weight:var(--ha-font-weight-medium);outline:0}#summary.noCollapse{cursor:default}.summary-icon.expanded{transform:rotate(180deg)}.header,::slotted([slot=header]){flex:1;overflow-wrap:anywhere;color:var(--primary-text-color)}.container{padding:var(--expansion-panel-content-padding,0 8px);overflow:hidden;transition:height .3s cubic-bezier(.4, 0, .2, 1);height:0px}.container.expanded{height:auto}.secondary{display:block;color:var(--secondary-text-color);font-size:var(--ha-font-size-s)}`,(0,i.Cg)([(0,o.MZ)({type:Boolean,reflect:!0})],c.prototype,"expanded",void 0),(0,i.Cg)([(0,o.MZ)({type:Boolean,reflect:!0})],c.prototype,"outlined",void 0),(0,i.Cg)([(0,o.MZ)({attribute:"left-chevron",type:Boolean,reflect:!0})],c.prototype,"leftChevron",void 0),(0,i.Cg)([(0,o.MZ)({attribute:"no-collapse",type:Boolean,reflect:!0})],c.prototype,"noCollapse",void 0),(0,i.Cg)([(0,o.MZ)()],c.prototype,"header",void 0),(0,i.Cg)([(0,o.MZ)()],c.prototype,"secondary",void 0),(0,i.Cg)([(0,o.wk)()],c.prototype,"_showContent",void 0),(0,i.Cg)([(0,o.P)(".container")],c.prototype,"_container",void 0),c=(0,i.Cg)([(0,o.EM)("ha-expansion-panel")],c)},47680(e,t,a){a.r(t),a.d(t,{HaIcon:()=>x});a(74423);var i=a(62826),r=a(5124),o=a(22441),s=a(1087),n=a(9899),l=a(700),c=(a(44114),a(18111),a(7588),a(95192)),d=a(7553);const h=JSON.parse('{"version":"7.4.47","parts":[{"file":"7a7139d465f1f41cb26ab851a17caa21a9331234"},{"start":"account-supervisor-circle-","file":"9561286c4c1021d46b9006596812178190a7cc1c"},{"start":"alpha-r-c","file":"eb466b7087fb2b4d23376ea9bc86693c45c500fa"},{"start":"arrow-decision-o","file":"4b3c01b7e0723b702940c5ac46fb9e555646972b"},{"start":"baby-f","file":"2611401d85450b95ab448ad1d02c1a432b409ed2"},{"start":"battery-hi","file":"89bcd31855b34cd9d31ac693fb073277e74f1f6a"},{"start":"blur-r","file":"373709cd5d7e688c2addc9a6c5d26c2d57c02c48"},{"start":"briefcase-account-","file":"a75956cf812ee90ee4f656274426aafac81e1053"},{"start":"calendar-question-","file":"3253f2529b5ebdd110b411917bacfacb5b7063e6"},{"start":"car-lig","file":"74566af3501ad6ae58ad13a8b6921b3cc2ef879d"},{"start":"cellphone-co","file":"7677f1cfb2dd4f5562a2aa6d3ae43a2e6997b21a"},{"start":"circle-slice-2","file":"70d08c50ec4522dd75d11338db57846588263ee2"},{"start":"cloud-co","file":"141d2bfa55ca4c83f4bae2812a5da59a84fec4ff"},{"start":"cog-s","file":"5a640365f8e47c609005d5e098e0e8104286d120"},{"start":"cookie-l","file":"dd85b8eb8581b176d3acf75d1bd82e61ca1ba2fc"},{"start":"currency-eur-","file":"15362279f4ebfc3620ae55f79d2830ad86d5213e"},{"start":"delete-o","file":"239434ab8df61237277d7599ebe066c55806c274"},{"start":"draw-","file":"5605918a592070803ba2ad05a5aba06263da0d70"},{"start":"emoticon-po","file":"a838cfcec34323946237a9f18e66945f55260f78"},{"start":"fan","file":"effd56103b37a8c7f332e22de8e4d67a69b70db7"},{"start":"file-question-","file":"b2424b50bd465ae192593f1c3d086c5eec893af8"},{"start":"flask-off-","file":"3b76295cde006a18f0301dd98eed8c57e1d5a425"},{"start":"food-s","file":"1c6941474cbeb1755faaaf5771440577f4f1f9c6"},{"start":"gamepad-u","file":"c6efe18db6bc9654ae3540c7dee83218a5450263"},{"start":"google-f","file":"df341afe6ad4437457cf188499cb8d2df8ac7b9e"},{"start":"head-c","file":"282121c9e45ed67f033edcc1eafd279334c00f46"},{"start":"home-pl","file":"27e8e38fc7adcacf2a210802f27d841b49c8c508"},{"start":"inbox-","file":"0f0316ec7b1b7f7ce3eaabce26c9ef619b5a1694"},{"start":"key-v","file":"ea33462be7b953ff1eafc5dac2d166b210685a60"},{"start":"leaf-circle-","file":"33db9bbd66ce48a2db3e987fdbd37fb0482145a4"},{"start":"lock-p","file":"b89e27ed39e9d10c44259362a4b57f3c579d3ec8"},{"start":"message-s","file":"7b5ab5a5cadbe06e3113ec148f044aa701eac53a"},{"start":"moti","file":"01024d78c248d36805b565e343dd98033cc3bcaf"},{"start":"newspaper-variant-o","file":"22a6ec4a4fdd0a7c0acaf805f6127b38723c9189"},{"start":"on","file":"c73d55b412f394e64632e2011a59aa05e5a1f50d"},{"start":"paw-ou","file":"3f669bf26d16752dc4a9ea349492df93a13dcfbf"},{"start":"pigg","file":"0c24edb27eb1c90b6e33fc05f34ef3118fa94256"},{"start":"printer-pos-sy","file":"41a55cda866f90b99a64395c3bb18c14983dcf0a"},{"start":"read","file":"c7ed91552a3a64c9be88c85e807404cf705b7edf"},{"start":"robot-vacuum-variant-o","file":"917d2a35d7268c0ea9ad9ecab2778060e19d90e0"},{"start":"sees","file":"6e82d9861d8fac30102bafa212021b819f303bdb"},{"start":"shoe-f","file":"e2fe7ce02b5472301418cc90a0e631f187b9f238"},{"start":"snowflake-m","file":"a28ba9f5309090c8b49a27ca20ff582a944f6e71"},{"start":"st","file":"7e92d03f095ec27e137b708b879dfd273bd735ab"},{"start":"su","file":"61c74913720f9de59a379bdca37f1d2f0dc1f9db"},{"start":"tag-plus-","file":"8f3184156a4f38549cf4c4fffba73a6a941166ae"},{"start":"timer-a","file":"baab470d11cfb3a3cd3b063ee6503a77d12a80d0"},{"start":"transit-d","file":"8561c0d9b1ac03fab360fd8fe9729c96e8693239"},{"start":"vector-arrange-b","file":"c9a3439257d4bab33d3355f1f2e11842e8171141"},{"start":"water-ou","file":"02dbccfb8ca35f39b99f5a085b095fc1275005a0"},{"start":"webc","file":"57bafd4b97341f4f2ac20a609d023719f23a619c"},{"start":"zip","file":"65ae094e8263236fa50486584a08c03497a38d93"}]}');let p;const f=()=>(p||(p=b().catch(e=>{throw p=void 0,e})),p),b=async()=>{const e=(0,c.y$)("hass-icon-db","mdi-icon-store"),t=await(0,c.Jt)("_version",e);return t?t!==h.version&&(await(0,c.IU)(e),(0,c.hZ)("_version",h.version,e)):(0,c.hZ)("_version",h.version,e),e},v=["mdi","hass","hassio","hademo"];let u=[];a(67094);const m={},g={},y=(0,n.s)(()=>(async e=>{const t=Object.keys(e),a=await Promise.allSettled(Object.values(e));(await f())("readwrite",i=>{a.forEach((a,r)=>{"fulfilled"===a.status&&Object.entries(a.value).forEach(([e,t])=>{i.put(t,e)}),delete e[t[r]]})})})(g),2e3),_={},w={"home-assistant":()=>a.e(58781).then(a.bind(a,53580)).then(e=>e.mdiHomeAssistant),"music-assistant":()=>a.e(56009).then(a.bind(a,10576)).then(e=>e.mdiMusicAssistant),esphome:()=>a.e(88800).then(a.bind(a,45091)).then(e=>e.mdiEsphomeLogo)};class x extends r.WF{willUpdate(e){super.willUpdate(e),e.has("icon")&&(this._path=void 0,this._secondaryPath=void 0,this._viewBox=void 0,this._loadIcon())}render(){return this.icon?this._legacy?r.qy` <iron-icon .icon="${this.icon}"></iron-icon>`:r.qy`<ha-svg-icon .path="${this._path}" .secondaryPath="${this._secondaryPath}" .viewBox="${this._viewBox}"></ha-svg-icon>`:r.s6}async _loadIcon(){if(!this.icon)return;const e=this.icon,[t,a]=this.icon.split(":",2);let i,r=a;if(!t||!r)return;if(!v.includes(t)){const a=l.y[t];return a?void(a&&"function"==typeof a.getIcon&&this._setCustomPath(a.getIcon(r),e)):void(this._legacy=!0)}if(this._legacy=!1,r in m){const e=m[r];let a;e.newName?(a=`Icon ${t}:${r} was renamed to ${t}:${e.newName}, please change your config, it will be removed in version ${e.removeIn}.`,r=e.newName):a=`Icon ${t}:${r} was removed from MDI, please replace this icon with an other icon in your config, it will be removed in version ${e.removeIn}.`,console.warn(a),(0,s.r)(this,"write_log",{level:"warning",message:a})}if(r in _)return void(this._path=_[r]);if(r in w){const t=await w[r]();return this.icon===e&&(this._path=t),void(_[r]=t)}try{i=await(e=>new Promise((t,a)=>{if(u.push([e,t,a]),u.length>1)return;const i=f();(0,d.h)(1e3,(async()=>{(await i)("readonly",e=>{for(const[t,a,i]of u)(0,c.Yd)(e.get(t)).then(e=>a(e)).catch(e=>i(e));u=[]})})()).catch(e=>{for(const[,,t]of u)t(e);u=[]})}))(r)}catch(e){i=void 0}if(i)return this.icon===e&&(this._path=i),void(_[r]=i);const o=(e=>{let t;for(const a of h.parts){if(void 0!==a.start&&e<a.start)break;t=a}return t.file})(r);if(o in g)return void this._setPath(g[o],r,e);const n=fetch(`/static/mdi/${o}.json`).then(e=>e.json());g[o]=n,this._setPath(n,r,e),n.catch(()=>{delete g[o]}),y()}async _setCustomPath(e,t){const a=await e;this.icon===t&&(this._path=a.path,this._secondaryPath=a.secondaryPath,this._viewBox=a.viewBox)}async _setPath(e,t,a){try{const i=await e;this.icon===a&&(this._path=i[t]),_[t]=i[t]}catch(e){}}constructor(...e){super(...e),this._legacy=!1}}x.styles=r.AH`:host{fill:currentcolor}`,(0,i.Cg)([(0,o.MZ)()],x.prototype,"icon",void 0),(0,i.Cg)([(0,o.wk)()],x.prototype,"_path",void 0),(0,i.Cg)([(0,o.wk)()],x.prototype,"_secondaryPath",void 0),(0,i.Cg)([(0,o.wk)()],x.prototype,"_viewBox",void 0),(0,i.Cg)([(0,o.wk)()],x.prototype,"_legacy",void 0),x=(0,i.Cg)([(0,o.EM)("ha-icon")],x)},65829(e,t,a){a.a(e,async function(e,i){try{a.r(t),a.d(t,{HaSpinner:()=>c});var r=a(62826),o=a(55262),s=a(5124),n=a(22441),l=e([o]);o=(l.then?(await l)():l)[0];class c extends o.A{updated(e){if(super.updated(e),e.has("size"))switch(this.size){case"tiny":this.style.setProperty("--ha-spinner-size","16px");break;case"small":this.style.setProperty("--ha-spinner-size","28px");break;case"medium":this.style.setProperty("--ha-spinner-size","48px");break;case"large":this.style.setProperty("--ha-spinner-size","68px");break;case void 0:this.style.removeProperty("--ha-progress-ring-size")}}static get styles(){return[o.A.styles,s.AH`:host{--indicator-color:var(
--ha-spinner-indicator-color,
var(--primary-color)
);--track-color:var(--ha-spinner-divider-color, var(--divider-color));--track-width:4px;--speed:3.5s;font-size:var(--ha-spinner-size, 48px)}`]}}(0,r.Cg)([(0,n.MZ)()],c.prototype,"size",void 0),c=(0,r.Cg)([(0,n.EM)("ha-spinner")],c),i()}catch(e){i(e)}})},67505(e,t,a){var i=a(62826),r=a(5124),o=a(22441),s=a(93421);a(67094);class n extends r.WF{render(){return this._localize?r.qy` <ha-svg-icon .path="${"M12,2A7,7 0 0,1 19,9C19,11.38 17.81,13.47 16,14.74V17A1,1 0 0,1 15,18H9A1,1 0 0,1 8,17V14.74C6.19,13.47 5,11.38 5,9A7,7 0 0,1 12,2M9,21V20H15V21A1,1 0 0,1 14,22H10A1,1 0 0,1 9,21M12,4A5,5 0 0,0 7,9C7,11.05 8.23,12.81 10,13.58V16H14V13.58C15.77,12.81 17,11.05 17,9A5,5 0 0,0 12,4Z"}"></ha-svg-icon> <span class="prefix">${this._localize("ui.panel.config.tips.tip")}</span> <span class="text"><slot></slot></span> `:r.s6}}n.styles=r.AH`:host{display:block;text-align:center}.text{direction:var(--direction);margin-left:2px;margin-inline-start:2px;margin-inline-end:initial;color:var(--secondary-text-color)}.prefix{font-weight:var(--ha-font-weight-medium)}`,(0,i.Cg)([(0,o.wk)(),(0,s.IW)()],n.prototype,"_localize",void 0),n=(0,i.Cg)([(0,o.EM)("ha-tip")],n)},34127(e,t,a){a.a(e,async function(e,t){try{var i=a(62826),r=a(52630),o=a(5124),s=a(22441),n=e([r]);r=(n.then?(await n)():n)[0];class l extends r.A{static get styles(){return[r.A.styles,o.AH`: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(...e){super(...e),this.showDelay=350,this.hideDelay=150}}(0,i.Cg)([(0,s.MZ)({attribute:"show-delay",type:Number})],l.prototype,"showDelay",void 0),(0,i.Cg)([(0,s.MZ)({attribute:"hide-delay",type:Number})],l.prototype,"hideDelay",void 0),l=(0,i.Cg)([(0,s.EM)("ha-tooltip")],l),t()}catch(e){t(e)}})},700(e,t,a){a.d(t,{y:()=>s});const i=window;"customIconsets"in i||(i.customIconsets={});const r=i.customIconsets,o=window;"customIcons"in o||(o.customIcons={});const s=new Proxy(o.customIcons,{get:(e,t)=>e[t]??(r[t]?{getIcon:r[t]}:void 0)})},84334(e,t,a){a.d(t,{H:()=>r,R:()=>i});const i=(e,t,a)=>e.subscribeMessage(e=>t(e),{type:"render_template",...a}),r=(e,t,a,i,r)=>e.connection.subscribeMessage(r,{type:"template/start_preview",flow_id:t,flow_type:a,user_input:i})},30447(e,t,a){a.a(e,async function(e,i){try{a.r(t);a(18111),a(61701),a(33110);var r=a(62826),o=a(5124),s=a(22441),n=a(6412),l=a(9899),c=a(38962),d=a(18350),h=(a(76776),a(15717)),p=(a(11382),a(65829)),f=(a(67505),a(84334)),b=a(65063),v=a(14503),u=a(36918),m=e([c,d,h,p]);[c,d,h,p]=m.then?(await m)():m;const g='{## Imitate available variables: ##}\n{% set my_test_json = {\n "temperature": 25,\n "unit": "°C"\n} %}\n\nThe temperature is {{ my_test_json.temperature }} {{ my_test_json.unit }}.\n\n{% if is_state("sun.sun", "above_horizon") -%}\n The sun rose {{ relative_time(states.sun.sun.last_changed) }} ago.\n{%- else -%}\n The sun will rise at {{ as_timestamp(state_attr("sun.sun", "next_rising")) | timestamp_local }}.\n{%- endif %}\n\nFor loop example getting entity values in the weather domain:\n\n{% for state in states.weather -%}\n {%- if loop.first %}The {% elif loop.last %} and the {% else %}, the {% endif -%}\n {{ state.name | lower }} is {{state.state_with_unit}}\n{%- endfor %}.';class y extends o.WF{connectedCallback(){super.connectedCallback(),this._template&&!this._unsubRenderTemplate&&this._subscribeTemplate()}disconnectedCallback(){super.disconnectedCallback(),this._unsubscribeTemplate(),this._tipResizeObserver?.disconnect(),this._tipResizeObserver=void 0}firstUpdated(){localStorage&&localStorage["panel-dev-template-template"]?this._template=localStorage["panel-dev-template-template"]:this._template=g,this._subscribeTemplate(),this._observeTipHeight(),this._inited=!0}render(){const e=typeof this._templateResult?.result,t="object"===e?Array.isArray(this._templateResult?.result)?"list":"dict":e;return o.qy` <div class="content"> <ha-expansion-panel .header="${this.hass.localize("ui.panel.config.developer-tools.tabs.templates.about")}" outlined .expanded="${this._descriptionExpanded}" -changed="${this._expandedChanged}"> <div class="description"> <p> ${this.hass.localize("ui.panel.config.developer-tools.tabs.templates.description")} </p> <ul> <li> <a href="https://jinja.palletsprojects.com/en/latest/templates/" target="_blank" rel="noreferrer">${this.hass.localize("ui.panel.config.developer-tools.tabs.templates.jinja_documentation")} </a> </li> <li> <a href="${(0,u.o)(this.hass,"/docs/configuration/templating/")}" target="_blank" rel="noreferrer"> ${this.hass.localize("ui.panel.config.developer-tools.tabs.templates.template_extensions")}</a> </li> </ul> </div> </ha-expansion-panel> </div> <div class="content ${(0,n.H)({layout:!this.narrow,horizontal:!this.narrow})}" style="--description-expanded:${this._descriptionExpanded?1:0}"> <ha-card class="edit-pane" header="${this.hass.localize("ui.panel.config.developer-tools.tabs.templates.editor")}"> <div class="card-content"> <ha-code-editor mode="jinja2" .value="${this._template}" .error="${this._error}" autofocus autocomplete-entities autocomplete-icons -changed="${this._templateChanged}" dir="ltr"></ha-code-editor> </div> <div class="card-actions"> <ha-button appearance="plain" ="${this._restoreDemo}"> ${this.hass.localize("ui.panel.config.developer-tools.tabs.templates.reset")} </ha-button> <ha-button appearance="plain" ="${this._clear}"> ${this.hass.localize("ui.common.clear")} </ha-button> </div> <ha-tip> ${this.hass.localize("ui.panel.config.developer-tools.tabs.templates.keyboard_tip",{autocomplete:o.qy`<kbd>Ctrl</kbd>+<kbd>Space</kbd>`})} </ha-tip> </ha-card> <ha-card class="render-pane" header="${this.hass.localize("ui.panel.config.developer-tools.tabs.templates.result")}"> <div class="card-content ha-scrollbar"> ${this._rendering?o.qy`<ha-spinner class="render-spinner" size="small"></ha-spinner>`:""} ${this._error?o.qy`<ha-alert alert-type="${this._errorLevel?.toLowerCase()||"error"}">${this._error}</ha-alert>`:o.s6} ${this._templateResult?o.qy`<pre class="rendered ${(0,n.H)({[t]:t})}">
${"object"===e?JSON.stringify(this._templateResult.result,null,2):this._templateResult.result}</pre> <p> ${this.hass.localize("ui.panel.config.developer-tools.tabs.templates.result_type")}: ${t} </p> ${this._templateResult.listeners.time?o.qy` <p> ${this.hass.localize("ui.panel.config.developer-tools.tabs.templates.time")} </p> `:""} ${this._templateResult.listeners?this._templateResult.listeners.all?o.qy` <p class="all_listeners"> ${this.hass.localize("ui.panel.config.developer-tools.tabs.templates.all_listeners")} </p> `:this._templateResult.listeners.domains.length||this._templateResult.listeners.entities.length?o.qy` <p> ${this.hass.localize("ui.panel.config.developer-tools.tabs.templates.listeners")} </p> <ul> ${this._templateResult.listeners.domains.sort().map(e=>o.qy` <li> <b>${this.hass.localize("ui.panel.config.developer-tools.tabs.templates.domain")}</b>: ${e} </li> `)} ${this._templateResult.listeners.entities.sort().map(e=>o.qy` <li> <b>${this.hass.localize("ui.panel.config.developer-tools.tabs.templates.entity")}</b>: ${e} </li> `)} </ul> `:this._templateResult.listeners.time?o.s6:o.qy`<span class="all_listeners"> ${this.hass.localize("ui.panel.config.developer-tools.tabs.templates.no_listeners")} </span>`:o.s6}`:o.s6} </div> </ha-card> </div> `}_observeTipHeight(){this._editorTip&&!this._tipResizeObserver&&(this._tipResizeObserver=new ResizeObserver(e=>{const t=e[0]?.borderBoxSize?.[0]?.blockSize??e[0]?.contentRect.height;t&&this.style.setProperty("--tip-height",`${t}px`)}),this._tipResizeObserver.observe(this._editorTip))}_expandedChanged(e){this._descriptionExpanded=e.detail.expanded}static get styles(){return[v.RF,v.dp,o.AH`:host{user-select:none}.content{gap:var(--ha-space-4);padding:var(--ha-space-4)}.content:has(ha-expansion-panel){padding-bottom:0}.content.horizontal{--panel-header-height:calc(
var(--header-height) + 1em * 2 + var(--ha-line-height-normal) *
var(--ha-font-size-m) + 1px + 2px
);--description-pane-height:calc(
var(--ha-space-4) + 48px +
(
var(--ha-line-height-normal) * var(--ha-font-size-m) * 3 +
var(--ha-space-1) * 2
) *
var(--description-expanded) + var(--ha-card-border-width, 1px) * 2
);--card-header-height:calc(
var(--ha-space-3) + var(--ha-space-4) +
var(--ha-line-height-expanded) *
var(--ha-card-header-font-size, var(--ha-font-size-2xl))
);--card-actions-height:calc(1px + var(--ha-space-2) * 2 + 40px);--tip-height-minimal:calc(
var(--mdc-icon-size, 24px) + var(--ha-space-4)
);--edit-pane-height:calc(
100vh - var(--panel-header-height) - var(
--description-pane-height
) - var(--ha-space-4) *
2
);--code-mirror-max-height:calc(
var(--edit-pane-height) - var(--card-header-height) +
var(--ha-space-2) - var(--card-actions-height) - var(
--tip-height,
var(--tip-height-minimal)
) - var(--ha-space-4) - var(--ha-card-border-width, 1px) *
2
)}ha-card{margin-bottom:var(--ha-space-4)}.edit-pane{direction:var(--direction)}.edit-pane a{color:var(--primary-color)}.content.horizontal>*{width:50%;margin-bottom:0px}.render-spinner{position:absolute;top:var(--ha-space-2);right:var(--ha-space-2);inset-inline-end:var(--ha-space-2);inset-inline-start:initial}ha-alert{margin-bottom:var(--ha-space-2);display:block}.rendered{font-family:var(--ha-font-family-code);-webkit-font-smoothing:var(--ha-font-smoothing);-moz-osx-font-smoothing:var(--ha-moz-osx-font-smoothing);clear:both;white-space:pre-wrap;background-color:var(--secondary-background-color);padding:var(--ha-space-2);margin-top:0;margin-bottom:0;direction:ltr}p,ul{margin-block-end:0}.description>p{margin-block-start:0}.description>ul{margin-block-start:var(--ha-space-1);margin-block-end:var(--ha-space-1)}.render-pane .card-content{user-select:text}.content.horizontal .render-pane .card-content{overflow:auto;max-height:calc(var(--code-mirror-max-height) + 47px - var(--ha-card-border-radius,var(--ha-border-radius-lg)))}.content.horizontal .render-pane{overflow:hidden;padding-bottom:var(--ha-card-border-radius,var(--ha-border-radius-lg))}.all_listeners{color:var(--warning-color)}ha-tip{padding:0 var(--ha-space-4) var(--ha-space-4);display:block}kbd{display:inline-block;font-family:var(--ha-font-family-code);font-size:.85em;padding:1px 5px;border:1px solid var(--divider-color);border-radius:var(--ha-border-radius-xs);background-color:var(--secondary-background-color);white-space:nowrap} all and (max-width:870px){.content ha-card{max-width:100%}}.card-actions{display:flex}.card-actions>ha-button:last-child{margin-inline-start:auto}`]}_templateChanged(e){this._template=e.detail.value,this._error&&(this._error=void 0,this._errorLevel=void 0),this._debounceRender()}async _subscribeTemplate(){this._rendering=!0,await this._unsubscribeTemplate(),this._error=void 0,this._errorLevel=void 0,this._templateResult=void 0;try{this._unsubRenderTemplate=(0,f.R)(this.hass.connection,e=>{"error"in e?"ERROR"!==e.level&&"ERROR"===this._errorLevel||(this._error=e.error,this._errorLevel=e.level):this._templateResult=e},{template:this._template,timeout:3,report_errors:!0}),await this._unsubRenderTemplate}catch(e){this._error="Unknown error",this._errorLevel=void 0,e.message&&(this._error=e.message,this._errorLevel=void 0,this._templateResult=void 0),this._unsubRenderTemplate=void 0}finally{this._rendering=!1}}async _unsubscribeTemplate(){if(this._unsubRenderTemplate)try{(await this._unsubRenderTemplate)(),this._unsubRenderTemplate=void 0}catch(e){if("not_found"!==e.code)throw e}}_storeTemplate(){this._inited&&(localStorage["panel-dev-template-template"]=this._template)}async _restoreDemo(){await(0,b.dk)(this,{text:this.hass.localize("ui.panel.config.developer-tools.tabs.templates.confirm_reset"),warning:!0})&&(this._template=g,this._subscribeTemplate(),delete localStorage["panel-dev-template-template"])}async _clear(){await(0,b.dk)(this,{text:this.hass.localize("ui.panel.config.developer-tools.tabs.templates.confirm_clear"),warning:!0})&&(this._unsubscribeTemplate(),this._template="",this._templateResult={result:"",listeners:{all:!1,entities:[],domains:[],time:!1}})}constructor(...e){super(...e),this.narrow=!1,this._rendering=!1,this._descriptionExpanded=!1,this._template="",this._inited=!1,this._debounceRender=(0,l.s)(()=>{this._subscribeTemplate(),this._storeTemplate()},500,!1)}}(0,r.Cg)([(0,s.MZ)({attribute:!1})],y.prototype,"hass",void 0),(0,r.Cg)([(0,s.MZ)({type:Boolean})],y.prototype,"narrow",void 0),(0,r.Cg)([(0,s.wk)()],y.prototype,"_error",void 0),(0,r.Cg)([(0,s.wk)()],y.prototype,"_errorLevel",void 0),(0,r.Cg)([(0,s.wk)()],y.prototype,"_rendering",void 0),(0,r.Cg)([(0,s.wk)()],y.prototype,"_templateResult",void 0),(0,r.Cg)([(0,s.wk)()],y.prototype,"_unsubRenderTemplate",void 0),(0,r.Cg)([(0,s.wk)()],y.prototype,"_descriptionExpanded",void 0),(0,r.Cg)([(0,s.P)("ha-tip")],y.prototype,"_editorTip",void 0),y=(0,r.Cg)([(0,s.EM)("developer-tools-template")],y),i()}catch(e){i(e)}})},36918(e,t,a){a.d(t,{o:()=>i});const i=(e,t)=>`https://www.iobroker.net/#${e.language&&e.language.split("-")[0]||"en"}/adapters/adapterref/iobroker.lovelace/README.md#`}};