iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
1 lines • 17.3 kB
JavaScript
export const __rspack_esm_id=22164;export const __rspack_esm_ids=[22164];export const __webpack_modules__={63130(t,e,a){a.d(e,{l:()=>o});var i=a(50248);const o=async(t,e)=>{if(navigator.clipboard)try{return void await navigator.clipboard.writeText(t)}catch{}const a=e||(0,i.n)()?.getRootNode()||document.body,o=document.createElement("textarea");o.value=t,o.setAttribute("readonly",""),o.style.position="fixed",o.style.top="0",o.style.left="0",o.style.opacity="0",a.appendChild(o),o.select(),document.execCommand("copy"),a.removeChild(o)}},64219(t,e,a){a.d(e,{B:()=>i});a(16573),a(78100),a(77936),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(t,e,a){a.a(t,async function(t,i){try{a.r(e);var o=a(62826),r=a(5124),s=a(22441),n=a(6412),l=a(93421),d=a(1087),c=a(26300),h=(a(67094),t([c]));c=(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",g={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 u extends r.WF{render(){return r.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="${g[this.alertType]}"></ha-svg-icon> </slot> </div> <div class="${(0,n.H)({content:!0,narrow:this.narrow})}"> <div class="main-content"> ${this.title?r.qy`<div class="title">${this.title}</div>`:r.s6} <slot></slot> </div> <div class="action"> <slot name="action"> ${this.dismissable?r.qy`<ha-icon-button ="${this._dismissClicked}" .label="${this._localize?.("ui.common.dismiss_alert")}" .path="${p}"></ha-icon-button>`:r.s6} </slot> </div> </div> </div> `}_dismissClicked(){(0,d.r)(this,"alert-dismissed-clicked")}constructor(...t){super(...t),this.title="",this.alertType="info",this.dismissable=!1,this.narrow=!1}}u.styles=r.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,o.Cg)([(0,s.MZ)()],u.prototype,"title",void 0),(0,o.Cg)([(0,s.MZ)({attribute:"alert-type"})],u.prototype,"alertType",void 0),(0,o.Cg)([(0,s.MZ)({type:Boolean})],u.prototype,"dismissable",void 0),(0,o.Cg)([(0,s.wk)(),(0,l.IW)()],u.prototype,"_localize",void 0),(0,o.Cg)([(0,s.MZ)({type:Boolean})],u.prototype,"narrow",void 0),u=(0,o.Cg)([(0,s.EM)("ha-alert")],u),i()}catch(t){i(t)}})},11382(t,e,a){var i=a(62826),o=a(5124),r=a(22441),s=a(6412),n=a(1087),l=a(12587);a(67094);class d extends o.WF{render(){const t=this.noCollapse?o.s6:o.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 o.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?t:o.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?o.s6:t} <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?o.qy`<slot></slot>`:""} </div> `}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}}d.styles=o.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,r.MZ)({type:Boolean,reflect:!0})],d.prototype,"expanded",void 0),(0,i.Cg)([(0,r.MZ)({type:Boolean,reflect:!0})],d.prototype,"outlined",void 0),(0,i.Cg)([(0,r.MZ)({attribute:"left-chevron",type:Boolean,reflect:!0})],d.prototype,"leftChevron",void 0),(0,i.Cg)([(0,r.MZ)({attribute:"no-collapse",type:Boolean,reflect:!0})],d.prototype,"noCollapse",void 0),(0,i.Cg)([(0,r.MZ)()],d.prototype,"header",void 0),(0,i.Cg)([(0,r.MZ)()],d.prototype,"secondary",void 0),(0,i.Cg)([(0,r.wk)()],d.prototype,"_showContent",void 0),(0,i.Cg)([(0,r.P)(".container")],d.prototype,"_container",void 0),d=(0,i.Cg)([(0,r.EM)("ha-expansion-panel")],d)},60543(t,e,a){a.a(t,async function(t,i){try{a.r(e),a.d(e,{HaQrCode:()=>h});a(18111),a(61701);var o=a(62826),r=a(5124),s=a(22441),n=a(81298),l=a(38962),d=a(79468),c=t([l]);l=(c.then?(await c)():c)[0];class h 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=()=>{t?.drawImage(a,.375*e.width,.375*e.height,e.width/4,e.height/4)}}}}render(){return this.data?this._error?r.qy`<ha-alert alert-type="error">${this._error}</ha-alert>`:r.qy`<canvas></canvas>`:r.s6}constructor(...t){super(...t),this.errorCorrectionLevel="medium",this.width=4,this.scale=4,this.margin=4}}h.styles=r.AH`:host{display:block}`,(0,o.Cg)([(0,s.MZ)()],h.prototype,"data",void 0),(0,o.Cg)([(0,s.MZ)({attribute:"error-correction-level"})],h.prototype,"errorCorrectionLevel",void 0),(0,o.Cg)([(0,s.MZ)({type:Number})],h.prototype,"width",void 0),(0,o.Cg)([(0,s.MZ)({type:Number})],h.prototype,"scale",void 0),(0,o.Cg)([(0,s.MZ)({type:Number})],h.prototype,"margin",void 0),(0,o.Cg)([(0,s.MZ)({attribute:!1})],h.prototype,"maskPattern",void 0),(0,o.Cg)([(0,s.MZ)({attribute:"center-image"})],h.prototype,"centerImage",void 0),(0,o.Cg)([(0,s.wk)()],h.prototype,"_error",void 0),(0,o.Cg)([(0,s.P)("canvas")],h.prototype,"_canvas",void 0),h=(0,o.Cg)([(0,s.EM)("ha-qr-code")],h),i()}catch(t){i(t)}})},54655(t,e,a){a.a(t,async function(t,i){try{a.r(e);var o=a(62826),r=a(5124),s=a(22441),n=a(1087),l=a(63130),d=a(64219),c=a(38962),h=a(18350),p=a(72554),g=(a(93444),a(11382),a(26300)),u=a(60543),m=a(91485),y=a(14503),v=a(36918),_=a(81619),f=t([c,h,p,g,u,m]);[c,h,p,g,u,m]=f.then?(await f)():f;const b="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 C 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?r.qy` <ha-dialog .open="${this._open}" header-title="${this._params.entry?this.hass.localize("ui.panel.config.tag.detail.tag_details"):this.hass.localize("ui.panel.config.tag.detail.new_tag")}" prevent-scrim-close ="${this._dialogClosed}"> <div> ${this._error?r.qy`<ha-alert alert-type="error">${this._error}</ha-alert>`:""} <div class="form"> <ha-input autofocus .value="${this._name}" .configValue="${"name"}" ="${this._valueChanged}" .label="${this.hass.localize("ui.panel.config.tag.detail.name")}" .validationMessage="${this.hass.localize("ui.panel.config.tag.detail.required_error_msg")}" required></ha-input> ${this._params.entry?r.s6:r.qy` <ha-expansion-panel outlined .header="${this.hass.localize("ui.panel.config.tag.detail.use_custom_id")}" .expanded="${this._useCustomId}" -changed="${this._useCustomIdChanged}"> <ha-input .value="${this._id||""}" .configValue="${"id"}" ="${this._valueChanged}" .label="${this.hass.localize("ui.panel.config.tag.detail.tag_id")}" .placeholder="${this.hass.localize("ui.panel.config.tag.detail.tag_id_placeholder")}"></ha-input> <ha-alert alert-type="info"> ${this.hass.localize("ui.panel.config.tag.detail.custom_id_warning")} </ha-alert> </ha-expansion-panel> `} </div> ${this._params.entry?r.qy` <div> <p> ${this.hass.localize("ui.panel.config.tag.detail.usage",{companion_link:r.qy`<a href="https://companion.home-assistant.io/" target="_blank" rel="noreferrer">${this.hass.localize("ui.panel.config.tag.detail.companion_apps")}</a>`})} </p> </div> <div id="qr"> ${this._qrReady?r.qy` <ha-qr-code .data="${`${(0,v.o)(this.hass,"/tag/")}${this._params.entry.id}`}" center-image="/static/icons/favicon-192x192.png" error-correction-level="quartile" scale="5"> </ha-qr-code> `:r.s6} </div> <div class="tag-id"> <span class="tag-id-label"> ${this.hass.localize("ui.panel.config.tag.detail.tag_id")}: </span> <span class="tag-id-value">${this._params.entry.id}</span> <ha-icon-button .path="${b}" .label="${this.hass.localize("ui.common.copy")}" ="${this._copyId}"></ha-icon-button> </div> `:""} </div> <ha-dialog-footer slot="footer"> ${this._params.entry?r.qy` <ha-button slot="secondaryAction" variant="danger" appearance="plain" ="${this._deleteEntry}" .disabled="${this._submitting}"> ${this.hass.localize("ui.panel.config.tag.detail.delete")} </ha-button> `:r.s6} <ha-button slot="primaryAction" ="${this._updateEntry}" .disabled="${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")} </ha-button> ${this._params.openWrite&&!this._params.entry?r.qy`<ha-button slot="primaryAction" ="${this._updateWriteEntry}" .disabled="${this._submitting||!this._name}"> ${this.hass.localize("ui.panel.config.tag.detail.create_and_write")} </ha-button>`:""} </ha-dialog-footer> </ha-dialog> `: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(){this._params?.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(t){this._error=t?t.message:"Unknown error"}finally{this._submitting=!1}return t}async _updateWriteEntry(){const t=this._params?.openWrite,e=await this._updateEntry();e&&t&&t(e)}async _deleteEntry(){this._submitting=!0;try{await this._params.removeEntry()&&(this._params=void 0)}finally{this._submitting=!1}}static get styles(){return[y.nA,r.AH`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})],C.prototype,"hass",void 0),(0,o.Cg)([(0,s.wk)()],C.prototype,"_id",void 0),(0,o.Cg)([(0,s.wk)()],C.prototype,"_name",void 0),(0,o.Cg)([(0,s.wk)()],C.prototype,"_useCustomId",void 0),(0,o.Cg)([(0,s.wk)()],C.prototype,"_error",void 0),(0,o.Cg)([(0,s.wk)()],C.prototype,"_params",void 0),(0,o.Cg)([(0,s.wk)()],C.prototype,"_submitting",void 0),(0,o.Cg)([(0,s.wk)()],C.prototype,"_open",void 0),(0,o.Cg)([(0,s.wk)()],C.prototype,"_qrReady",void 0),C=(0,o.Cg)([(0,s.EM)("dialog-tag-detail")],C),i()}catch(t){i(t)}})}};