iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
1 lines • 7.36 kB
JavaScript
export const __rspack_esm_id=7524;export const __rspack_esm_ids=[7524];export const __webpack_modules__={63130(t,i,s){s.d(i,{l:()=>o});var e=s(50248);const o=async(t,i)=>{if(navigator.clipboard)try{return void await navigator.clipboard.writeText(t)}catch{}const s=i||(0,e.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",s.appendChild(o),o.select(),document.execCommand("copy"),s.removeChild(o)}},60543(t,i,s){s.a(t,async function(t,e){try{s.r(i),s.d(i,{HaQrCode:()=>h});s(18111),s(61701);var o=s(62826),a=s(5124),r=s(22441),n=s(81298),c=s(38962),d=s(79468),l=t([c]);c=(l.then?(await l)():l)[0];class h extends a.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 i=this._canvas;if(i&&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),s=t.getPropertyValue("--rgb-primary-text-color"),e=t.getPropertyValue("--rgb-card-background-color"),o=(0,d.v2)(s.split(",").map(t=>parseInt(t,10))),a=(0,d.v2)(e.split(",").map(t=>parseInt(t,10)));if(n.toCanvas(i,this.data,{errorCorrectionLevel:this.errorCorrectionLevel||(this.centerImage?"Q":"M"),width:this.width,scale:this.scale,margin:this.margin,maskPattern:this.maskPattern,color:{light:a,dark:o}}).catch(t=>{this._error=t.message}),this.centerImage){const t=this._canvas.getContext("2d"),s=new Image;s.src=this.centerImage,s.onload=()=>{t?.drawImage(s,.375*i.width,.375*i.height,i.width/4,i.height/4)}}}}render(){return this.data?this._error?a.qy`<ha-alert alert-type="error">${this._error}</ha-alert>`:a.qy`<canvas></canvas>`:a.s6}constructor(...t){super(...t),this.errorCorrectionLevel="medium",this.width=4,this.scale=4,this.margin=4}}h.styles=a.AH`:host{display:block}`,(0,o.Cg)([(0,r.MZ)()],h.prototype,"data",void 0),(0,o.Cg)([(0,r.MZ)({attribute:"error-correction-level"})],h.prototype,"errorCorrectionLevel",void 0),(0,o.Cg)([(0,r.MZ)({type:Number})],h.prototype,"width",void 0),(0,o.Cg)([(0,r.MZ)({type:Number})],h.prototype,"scale",void 0),(0,o.Cg)([(0,r.MZ)({type:Number})],h.prototype,"margin",void 0),(0,o.Cg)([(0,r.MZ)({attribute:!1})],h.prototype,"maskPattern",void 0),(0,o.Cg)([(0,r.MZ)({attribute:"center-image"})],h.prototype,"centerImage",void 0),(0,o.Cg)([(0,r.wk)()],h.prototype,"_error",void 0),(0,o.Cg)([(0,r.P)("canvas")],h.prototype,"_canvas",void 0),h=(0,o.Cg)([(0,r.EM)("ha-qr-code")],h),e()}catch(t){e(t)}})},50543(t,i,s){s.a(t,async function(t,e){try{s.r(i);var o=s(62826),a=s(5124),r=s(22441),n=s(1087),c=s(63130),d=s(18350),l=(s(93444),s(72554)),h=s(60543),p=s(65829),m=s(95350),g=s(20559),_=s(14503),u=s(44144),v=t([d,l,h,p]);[d,l,h,p]=v.then?(await v)():v;const y="M12,2C17.53,2 22,6.47 22,12C22,17.53 17.53,22 12,22C6.47,22 2,17.53 2,12C2,6.47 6.47,2 12,2M15.59,7L12,10.59L8.41,7L7,8.41L10.59,12L7,15.59L8.41,17L12,13.41L15.59,17L17,15.59L13.41,12L17,8.41L15.59,7Z";class w extends a.WF{async showDialog(t){this.device_id=t.device_id,this._open=!0}render(){return this.device_id?a.qy` <ha-dialog .open="${this._open}" header-title="${this.hass.localize("ui.panel.config.matter.open_commissioning_window.title")}" ="${this._dialogClosed}"> ${this._commissionParams?a.qy` <p> ${this.hass.localize("ui.panel.config.matter.open_commissioning_window.success")} <br> ${this.hass.localize("ui.panel.config.matter.open_commissioning_window.scan_code")} </p> <div class="sharing-code-container"> <div class="sharing-code"> <img crossorigin="anonymous" referrerpolicy="no-referrer" alt="${(0,m.p$)(this.hass.localize,"matter")}" src="${(0,u.MR)({domain:"matter",type:"logo",darkOptimized:this.hass.themes?.darkMode},this.hass.auth.data.hassUrl)}"> <ha-qr-code .data="${this._commissionParams.setup_qr_code}" errorCorrectionLevel="quartile" scale="6" margin="1"></ha-qr-code> <span class="code">${this._commissionParams.setup_manual_code.substring(0,4)}-${this._commissionParams.setup_manual_code.substring(4,7)}-${this._commissionParams.setup_manual_code.substring(7)}</span> </div> </div> `:"started"===this._status?a.qy` <div class="flex-container"> <ha-spinner></ha-spinner> <div class="status"> <p> <b> ${this.hass.localize("ui.panel.config.matter.open_commissioning_window.in_progress")} </b> </p> </div> </div> `:"failed"===this._status?a.qy` <div class="flex-container"> <ha-svg-icon .path="${y}" class="failed"></ha-svg-icon> <div class="status"> <p> ${this.hass.localize("ui.panel.config.matter.open_commissioning_window.failed")} </p> </div> </div> `:a.qy` <p> ${this.hass.localize("ui.panel.config.matter.open_commissioning_window.description",{startCommissioning:a.qy`<b>${this.hass.localize("ui.panel.config.matter.open_commissioning_window.start_commissioning")}</b>`})} </p> <p class="note"> ${this.hass.localize("ui.panel.config.matter.open_commissioning_window.prevent_misuse_description")} </p> `} <ha-dialog-footer slot="footer"> ${this._commissionParams?a.qy` <ha-button slot="primaryAction" ="${this._copyCode}"> ${this.hass.localize("ui.panel.config.matter.open_commissioning_window.copy_code")} </ha-button> `:"started"===this._status||"failed"===this._status?a.qy` <ha-button slot="primaryAction" ="${this.closeDialog}"> ${this.hass.localize("ui.common.close")} </ha-button> `:a.qy` <ha-button slot="primaryAction" ="${this._start}"> ${this.hass.localize("ui.panel.config.matter.open_commissioning_window.start_commissioning")} </ha-button> `} </ha-dialog-footer> </ha-dialog> `:a.s6}async _start(){if(this.hass){this._status="started",this._commissionParams=void 0;try{this._commissionParams=await(0,g.nc)(this.hass,this.device_id)}catch(t){this._status="failed"}}}async _copyCode(){this._commissionParams&&(await(0,c.l)(this._commissionParams.setup_manual_code),this.closeDialog())}closeDialog(){this._open=!1}_dialogClosed(){this.device_id=void 0,this._status=void 0,this._commissionParams=void 0,(0,n.r)(this,"dialog-closed",{dialog:this.localName})}static get styles(){return[_.nA,a.AH`.success{color:var(--success-color)}.failed{color:var(--error-color)}.flex-container{display:flex;align-items:center}.stages{margin-top:16px}.stage ha-svg-icon{width:16px;height:16px}.stage{padding:8px}ha-svg-icon{width:68px;height:48px}ha-qr-code{text-align:center}.flex-container ha-spinner,.flex-container ha-svg-icon{margin-right:20px}.sharing-code-container{display:flex;justify-content:center;padding-top:16px}.sharing-code{display:flex;flex-direction:column;align-items:center;border:2px solid;border-radius:var(--ha-border-radius-xl);padding:16px}.sharing-code img{width:160px;margin-bottom:8px}.code{font-family:var(--ha-font-family-code)}.note{color:var(--secondary-text-color);font-size:.9em}`]}constructor(...t){super(...t),this._open=!1}}(0,o.Cg)([(0,r.MZ)({attribute:!1})],w.prototype,"hass",void 0),(0,o.Cg)([(0,r.wk)()],w.prototype,"device_id",void 0),(0,o.Cg)([(0,r.wk)()],w.prototype,"_status",void 0),(0,o.Cg)([(0,r.wk)()],w.prototype,"_commissionParams",void 0),(0,o.Cg)([(0,r.wk)()],w.prototype,"_open",void 0),w=(0,o.Cg)([(0,r.EM)("dialog-matter-open-commissioning-window")],w),e()}catch(t){e(t)}})}};