UNPKG

iobroker.lovelace

Version:

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

1 lines 18.2 kB
"use strict";(self.rspackChunkhome_assistant_frontend=self.rspackChunkhome_assistant_frontend||[]).push([[22164],{63130:function(t,e,a){a.d(e,{l:function(){return o}});a(3362);var i=a(50248);const o=async(t,e)=>{var a;if(navigator.clipboard)try{return void(await navigator.clipboard.writeText(t))}catch(s){}const o=e||(null===(a=(0,i.n)())||void 0===a?void 0:a.getRootNode())||document.body,r=document.createElement("textarea");r.value=t,r.setAttribute("readonly",""),r.style.position="fixed",r.style.top="0",r.style.left="0",r.style.opacity="0",o.appendChild(r),r.select(),document.execCommand("copy"),o.removeChild(r)}},64219:function(t,e,a){a.d(e,{B:function(){return i}});a(54743),a(11745),a(16573),a(78100),a(77936),a(21489),a(48140),a(75044),a(21903),a(91134),a(28845),a(373),a(37467),a(44732),a(79577),a(16632),a(34226),a(9486),a(20456);const i=()=>{if("function"==typeof crypto.randomUUID)return crypto.randomUUID();const t=new Uint8Array(16);crypto.getRandomValues(t),t[6]=15&t[6]|64,t[8]=63&t[8]|128;const e=Array.from(t,t=>t.toString(16).padStart(2,"0")).join("");return`${e.slice(0,8)}-${e.slice(8,12)}-${e.slice(12,16)}-${e.slice(16,20)}-${e.slice(20,32)}`}},38962:function(t,e,a){a.a(t,async function(t,i){try{a.r(e);a(62953);var o=a(40445),r=a(5124),s=a(67576),n=a(6412),l=a(93421),d=a(1087),c=a(26300),h=(a(67094),t([c]));c=(h.then?(await h)():h)[0];let p,u,g,m,y=t=>t;const v="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",_={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 f extends r.WF{render(){var t;return(0,r.qy)(p||(p=y` <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,n.H)({[this.alertType]:!0}),this.title?"":"no-title",_[this.alertType],(0,n.H)({content:!0,narrow:this.narrow}),this.title?(0,r.qy)(u||(u=y`<div class="title">${0}</div>`),this.title):r.s6,this.dismissable?(0,r.qy)(g||(g=y`<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"),v):r.s6)}_dismissClicked(){(0,d.r)(this,"alert-dismissed-clicked")}constructor(...t){super(...t),this.title="",this.alertType="info",this.dismissable=!1,this.narrow=!1}}f.styles=(0,r.AH)(m||(m=y`.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,o.Cg)([(0,s.MZ)()],f.prototype,"title",void 0),(0,o.Cg)([(0,s.MZ)({attribute:"alert-type"})],f.prototype,"alertType",void 0),(0,o.Cg)([(0,s.MZ)({type:Boolean})],f.prototype,"dismissable",void 0),(0,o.Cg)([(0,s.wk)(),(0,l.IW)()],f.prototype,"_localize",void 0),(0,o.Cg)([(0,s.MZ)({type:Boolean})],f.prototype,"narrow",void 0),f=(0,o.Cg)([(0,s.EM)("ha-alert")],f),i()}catch(p){i(p)}})},11382:function(t,e,a){a(3362),a(62953);var i=a(40445),o=a(5124),r=a(67576),s=a(6412),n=a(1087),l=a(12587);a(67094);let d,c,h,p,u=t=>t;class g extends o.WF{render(){const t=this.noCollapse?o.s6:(0,o.qy)(d||(d=u` <ha-svg-icon .path="${0}" class="summary-icon ${0}"></ha-svg-icon> `),"M7.41,8.58L12,13.17L16.59,8.58L18,10L12,16L6,10L7.41,8.58Z",(0,s.H)({expanded:this.expanded}));return(0,o.qy)(c||(c=u` <div class="top ${0}"> <div id="summary" class="${0}" @click="${0}" @keydown="${0}" @focus="${0}" @blur="${0}" role="button" tabindex="${0}" aria-expanded="${0}" aria-controls="sect1" part="summary"> ${0} <slot name="leading-icon"></slot> <slot name="header"> <div class="header"> ${0} <slot class="secondary" name="secondary">${0}</slot> </div> </slot> <slot name="event"></slot> ${0} <slot name="icons"></slot> </div> </div> <div class="container ${0}" @transitionend="${0}" role="region" aria-labelledby="summary" aria-hidden="${0}" tabindex="-1"> ${0} </div> `),(0,s.H)({expanded:this.expanded}),(0,s.H)({noCollapse:this.noCollapse}),this._toggleContainer,this._toggleContainer,this._focusChanged,this._focusChanged,this.noCollapse?-1:0,this.expanded,this.leftChevron?t:o.s6,this.header,this.secondary,this.leftChevron?o.s6:t,(0,s.H)({expanded:this.expanded}),this._handleTransitionEnd,!this.expanded,this._showContent?(0,o.qy)(h||(h=u`<slot></slot>`)):"")}willUpdate(t){super.willUpdate(t),t.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(t){if(t.defaultPrevented)return;if("keydown"===t.type&&"Enter"!==t.key&&" "!==t.key)return;if(t.preventDefault(),this.noCollapse)return;const e=!this.expanded;(0,n.r)(this,"expanded-will-change",{expanded:e}),this._container.style.overflow="hidden",e&&(this._showContent=!0,await(0,l.E)());const a=this._container.scrollHeight;this._container.style.height=`${a}px`,e||setTimeout(()=>{this._container.style.height="0px"},0),this.expanded=e,(0,n.r)(this,"expanded-changed",{expanded:this.expanded})}_focusChanged(t){this.noCollapse||this.shadowRoot.querySelector(".top").classList.toggle("focused","focus"===t.type)}constructor(...t){super(...t),this.expanded=!1,this.outlined=!1,this.leftChevron=!1,this.noCollapse=!1,this._showContent=this.expanded}}g.styles=(0,o.AH)(p||(p=u`: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,r.MZ)({type:Boolean,reflect:!0})],g.prototype,"expanded",void 0),(0,i.Cg)([(0,r.MZ)({type:Boolean,reflect:!0})],g.prototype,"outlined",void 0),(0,i.Cg)([(0,r.MZ)({attribute:"left-chevron",type:Boolean,reflect:!0})],g.prototype,"leftChevron",void 0),(0,i.Cg)([(0,r.MZ)({attribute:"no-collapse",type:Boolean,reflect:!0})],g.prototype,"noCollapse",void 0),(0,i.Cg)([(0,r.MZ)()],g.prototype,"header",void 0),(0,i.Cg)([(0,r.MZ)()],g.prototype,"secondary",void 0),(0,i.Cg)([(0,r.wk)()],g.prototype,"_showContent",void 0),(0,i.Cg)([(0,r.P)(".container")],g.prototype,"_container",void 0),g=(0,i.Cg)([(0,r.EM)("ha-expansion-panel")],g)},60543:function(t,e,a){a.a(t,async function(t,i){try{a.r(e),a.d(e,{HaQrCode:function(){return m}});a(18111),a(61701),a(62953);var o=a(40445),r=a(5124),s=a(67576),n=a(81298),l=a(38962),d=a(79468),c=t([l]);l=(c.then?(await c)():c)[0];let h,p,u,g=t=>t;class m extends r.WF{willUpdate(t){super.willUpdate(t),(t.has("data")||t.has("scale")||t.has("width")||t.has("margin")||t.has("maskPattern")||t.has("errorCorrectionLevel"))&&this._error&&(this._error=void 0)}updated(t){const e=this._canvas;if(e&&this.data&&(t.has("data")||t.has("scale")||t.has("width")||t.has("margin")||t.has("maskPattern")||t.has("errorCorrectionLevel")||t.has("centerImage"))){const t=getComputedStyle(this),a=t.getPropertyValue("--rgb-primary-text-color"),i=t.getPropertyValue("--rgb-card-background-color"),o=(0,d.v2)(a.split(",").map(t=>parseInt(t,10))),r=(0,d.v2)(i.split(",").map(t=>parseInt(t,10)));if(n.toCanvas(e,this.data,{errorCorrectionLevel:this.errorCorrectionLevel||(this.centerImage?"Q":"M"),width:this.width,scale:this.scale,margin:this.margin,maskPattern:this.maskPattern,color:{light:r,dark:o}}).catch(t=>{this._error=t.message}),this.centerImage){const t=this._canvas.getContext("2d"),a=new Image;a.src=this.centerImage,a.onload=()=>{null==t||t.drawImage(a,.375*e.width,.375*e.height,e.width/4,e.height/4)}}}}render(){return this.data?this._error?(0,r.qy)(h||(h=g`<ha-alert alert-type="error">${0}</ha-alert>`),this._error):(0,r.qy)(p||(p=g`<canvas></canvas>`)):r.s6}constructor(...t){super(...t),this.errorCorrectionLevel="medium",this.width=4,this.scale=4,this.margin=4}}m.styles=(0,r.AH)(u||(u=g`:host{display:block}`)),(0,o.Cg)([(0,s.MZ)()],m.prototype,"data",void 0),(0,o.Cg)([(0,s.MZ)({attribute:"error-correction-level"})],m.prototype,"errorCorrectionLevel",void 0),(0,o.Cg)([(0,s.MZ)({type:Number})],m.prototype,"width",void 0),(0,o.Cg)([(0,s.MZ)({type:Number})],m.prototype,"scale",void 0),(0,o.Cg)([(0,s.MZ)({type:Number})],m.prototype,"margin",void 0),(0,o.Cg)([(0,s.MZ)({attribute:!1})],m.prototype,"maskPattern",void 0),(0,o.Cg)([(0,s.MZ)({attribute:"center-image"})],m.prototype,"centerImage",void 0),(0,o.Cg)([(0,s.wk)()],m.prototype,"_error",void 0),(0,o.Cg)([(0,s.P)("canvas")],m.prototype,"_canvas",void 0),m=(0,o.Cg)([(0,s.EM)("ha-qr-code")],m),i()}catch(h){i(h)}})},54655:function(t,e,a){a.a(t,async function(t,i){try{a.r(e);a(3362),a(42762),a(62953);var o=a(40445),r=a(5124),s=a(67576),n=a(1087),l=a(63130),d=a(64219),c=a(38962),h=a(18350),p=a(72554),u=(a(93444),a(11382),a(26300)),g=a(60543),m=a(91485),y=a(14503),v=a(36918),_=a(81619),f=t([c,h,p,u,g,m]);[c,h,p,u,g,m]=f.then?(await f)():f;let b,C,x,w,$,k,M,A,L,q=t=>t;const H="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z";class z extends r.WF{showDialog(t){this._params=t,this._error=void 0,this._open=!0,this._useCustomId=!1,this._params.entry?this._name=this._params.entry.name||"":(this._id="",this._name=""),requestAnimationFrame(()=>{this._qrReady=!0})}closeDialog(){return this._open=!1,!0}_dialogClosed(){this._params=void 0,this._qrReady=!1,(0,n.r)(this,"dialog-closed",{dialog:this.localName})}render(){return this._params?(0,r.qy)(b||(b=q` <ha-dialog .open="${0}" header-title="${0}" prevent-scrim-close @closed="${0}"> <div> ${0} <div class="form"> <ha-input autofocus .value="${0}" .configValue="${0}" @input="${0}" .label="${0}" .validationMessage="${0}" required></ha-input> ${0} </div> ${0} </div> <ha-dialog-footer slot="footer"> ${0} <ha-button slot="primaryAction" @click="${0}" .disabled="${0}"> ${0} </ha-button> ${0} </ha-dialog-footer> </ha-dialog> `),this._open,this._params.entry?this.hass.localize("ui.panel.config.tag.detail.tag_details"):this.hass.localize("ui.panel.config.tag.detail.new_tag"),this._dialogClosed,this._error?(0,r.qy)(C||(C=q`<ha-alert alert-type="error">${0}</ha-alert>`),this._error):"",this._name,"name",this._valueChanged,this.hass.localize("ui.panel.config.tag.detail.name"),this.hass.localize("ui.panel.config.tag.detail.required_error_msg"),this._params.entry?r.s6:(0,r.qy)(x||(x=q` <ha-expansion-panel outlined .header="${0}" .expanded="${0}" @expanded-changed="${0}"> <ha-input .value="${0}" .configValue="${0}" @input="${0}" .label="${0}" .placeholder="${0}"></ha-input> <ha-alert alert-type="info"> ${0} </ha-alert> </ha-expansion-panel> `),this.hass.localize("ui.panel.config.tag.detail.use_custom_id"),this._useCustomId,this._useCustomIdChanged,this._id||"","id",this._valueChanged,this.hass.localize("ui.panel.config.tag.detail.tag_id"),this.hass.localize("ui.panel.config.tag.detail.tag_id_placeholder"),this.hass.localize("ui.panel.config.tag.detail.custom_id_warning")),this._params.entry?(0,r.qy)(w||(w=q` <div> <p> ${0} </p> </div> <div id="qr"> ${0} </div> <div class="tag-id"> <span class="tag-id-label"> ${0}: </span> <span class="tag-id-value">${0}</span> <ha-icon-button .path="${0}" .label="${0}" @click="${0}"></ha-icon-button> </div> `),this.hass.localize("ui.panel.config.tag.detail.usage",{companion_link:(0,r.qy)($||($=q`<a href="https://companion.home-assistant.io/" target="_blank" rel="noreferrer">${0}</a>`),this.hass.localize("ui.panel.config.tag.detail.companion_apps"))}),this._qrReady?(0,r.qy)(k||(k=q` <ha-qr-code .data="${0}" center-image="/static/icons/favicon-192x192.png" error-correction-level="quartile" scale="5"> </ha-qr-code> `),`${(0,v.o)(this.hass,"/tag/")}${this._params.entry.id}`):r.s6,this.hass.localize("ui.panel.config.tag.detail.tag_id"),this._params.entry.id,H,this.hass.localize("ui.common.copy"),this._copyId):"",this._params.entry?(0,r.qy)(M||(M=q` <ha-button slot="secondaryAction" variant="danger" appearance="plain" @click="${0}" .disabled="${0}"> ${0} </ha-button> `),this._deleteEntry,this._submitting,this.hass.localize("ui.panel.config.tag.detail.delete")):r.s6,this._updateEntry,this._submitting||!this._name,this._params.entry?this.hass.localize("ui.panel.config.tag.detail.update"):this.hass.localize("ui.panel.config.tag.detail.create"),this._params.openWrite&&!this._params.entry?(0,r.qy)(A||(A=q`<ha-button slot="primaryAction" @click="${0}" .disabled="${0}"> ${0} </ha-button>`),this._updateWriteEntry,this._submitting||!this._name,this.hass.localize("ui.panel.config.tag.detail.create_and_write")):""):r.s6}_valueChanged(t){const e=t.target,a=e.configValue;this._error=void 0,this[`_${a}`]=e.value}_useCustomIdChanged(t){this._useCustomId=t.detail.expanded,this._useCustomId?this._id||(this._id=(0,d.B)()):this._id=""}async _copyId(){var t;null!==(t=this._params)&&void 0!==t&&t.entry&&(await(0,l.l)(this._params.entry.id),(0,_.P)(this,{message:this.hass.localize("ui.common.copied_clipboard")}))}async _updateEntry(){let t;this._submitting=!0;try{const e={name:this._name.trim()};t=this._params.entry?await this._params.updateEntry(e):await this._params.createEntry(e,this._useCustomId?this._id:""),this.closeDialog()}catch(e){this._error=e?e.message:"Unknown error"}finally{this._submitting=!1}return t}async _updateWriteEntry(){var t;const e=null===(t=this._params)||void 0===t?void 0:t.openWrite,a=await this._updateEntry();a&&e&&e(a)}async _deleteEntry(){this._submitting=!0;try{await this._params.removeEntry()&&(this._params=void 0)}finally{this._submitting=!1}}static get styles(){return[y.nA,(0,r.AH)(L||(L=q`a{color:var(--primary-color)}#qr{text-align:center}ha-input{--ha-input-padding-bottom:0}ha-input:not([required]){margin-bottom:var(--ha-space-5)}ha-expansion-panel{display:block;margin-bottom:var(--ha-space-2)}ha-expansion-panel[expanded]{--expansion-panel-content-padding:var(--ha-space-3) var(--ha-space-2)}ha-alert{display:block;margin-top:var(--ha-space-2)}.tag-id{display:flex;align-items:center;justify-content:center;gap:var(--ha-space-1);margin-top:var(--ha-space-3);color:var(--secondary-text-color)}.tag-id-value{font-family:var(--ha-font-family-code);color:var(--primary-text-color)}::slotted(img){height:100%}`))]}constructor(...t){super(...t),this._useCustomId=!1,this._submitting=!1,this._open=!1,this._qrReady=!1}}(0,o.Cg)([(0,s.MZ)({attribute:!1})],z.prototype,"hass",void 0),(0,o.Cg)([(0,s.wk)()],z.prototype,"_id",void 0),(0,o.Cg)([(0,s.wk)()],z.prototype,"_name",void 0),(0,o.Cg)([(0,s.wk)()],z.prototype,"_useCustomId",void 0),(0,o.Cg)([(0,s.wk)()],z.prototype,"_error",void 0),(0,o.Cg)([(0,s.wk)()],z.prototype,"_params",void 0),(0,o.Cg)([(0,s.wk)()],z.prototype,"_submitting",void 0),(0,o.Cg)([(0,s.wk)()],z.prototype,"_open",void 0),(0,o.Cg)([(0,s.wk)()],z.prototype,"_qrReady",void 0),z=(0,o.Cg)([(0,s.EM)("dialog-tag-detail")],z),i()}catch(b){i(b)}})}}]);