iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
1 lines • 7.83 kB
JavaScript
"use strict";(self.rspackChunkhome_assistant_frontend=self.rspackChunkhome_assistant_frontend||[]).push([[7524],{63130:function(t,i,s){s.d(i,{l:function(){return o}});s(3362);var e=s(50248);const o=async(t,i)=>{var s;if(navigator.clipboard)try{return void(await navigator.clipboard.writeText(t))}catch(r){}const o=i||(null===(s=(0,e.n)())||void 0===s?void 0:s.getRootNode())||document.body,a=document.createElement("textarea");a.value=t,a.setAttribute("readonly",""),a.style.position="fixed",a.style.top="0",a.style.left="0",a.style.opacity="0",o.appendChild(a),a.select(),document.execCommand("copy"),o.removeChild(a)}},60543:function(t,i,s){s.a(t,async function(t,e){try{s.r(i),s.d(i,{HaQrCode:function(){return u}});s(18111),s(61701),s(62953);var o=s(40445),a=s(5124),r=s(67576),n=s(81298),c=s(38962),d=s(79468),l=t([c]);c=(l.then?(await l)():l)[0];let h,m,p,g=t=>t;class u 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=()=>{null==t||t.drawImage(s,.375*i.width,.375*i.height,i.width/4,i.height/4)}}}}render(){return this.data?this._error?(0,a.qy)(h||(h=g`<ha-alert alert-type="error">${0}</ha-alert>`),this._error):(0,a.qy)(m||(m=g`<canvas></canvas>`)):a.s6}constructor(...t){super(...t),this.errorCorrectionLevel="medium",this.width=4,this.scale=4,this.margin=4}}u.styles=(0,a.AH)(p||(p=g`:host{display:block}`)),(0,o.Cg)([(0,r.MZ)()],u.prototype,"data",void 0),(0,o.Cg)([(0,r.MZ)({attribute:"error-correction-level"})],u.prototype,"errorCorrectionLevel",void 0),(0,o.Cg)([(0,r.MZ)({type:Number})],u.prototype,"width",void 0),(0,o.Cg)([(0,r.MZ)({type:Number})],u.prototype,"scale",void 0),(0,o.Cg)([(0,r.MZ)({type:Number})],u.prototype,"margin",void 0),(0,o.Cg)([(0,r.MZ)({attribute:!1})],u.prototype,"maskPattern",void 0),(0,o.Cg)([(0,r.MZ)({attribute:"center-image"})],u.prototype,"centerImage",void 0),(0,o.Cg)([(0,r.wk)()],u.prototype,"_error",void 0),(0,o.Cg)([(0,r.P)("canvas")],u.prototype,"_canvas",void 0),u=(0,o.Cg)([(0,r.EM)("ha-qr-code")],u),e()}catch(h){e(h)}})},50543:function(t,i,s){s.a(t,async function(t,e){try{s.r(i);s(3362),s(62953);var o=s(40445),a=s(5124),r=s(67576),n=s(1087),c=s(63130),d=s(18350),l=(s(93444),s(72554)),h=s(60543),m=s(65829),p=s(95350),g=s(20559),u=s(14503),_=s(44144),v=t([d,l,h,m]);[d,l,h,m]=v.then?(await v)():v;let y,f,w,C,b,x,$,k,P,L,q=t=>t;const M="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 z extends a.WF{async showDialog(t){this.device_id=t.device_id,this._open=!0}render(){var t;return this.device_id?(0,a.qy)(y||(y=q` <ha-dialog .open="${0}" header-title="${0}" ="${0}"> ${0} <ha-dialog-footer slot="footer"> ${0} </ha-dialog-footer> </ha-dialog> `),this._open,this.hass.localize("ui.panel.config.matter.open_commissioning_window.title"),this._dialogClosed,this._commissionParams?(0,a.qy)(f||(f=q` <p> ${0} <br> ${0} </p> <div class="sharing-code-container"> <div class="sharing-code"> <img crossorigin="anonymous" referrerpolicy="no-referrer" alt="${0}" src="${0}"> <ha-qr-code .data="${0}" errorCorrectionLevel="quartile" scale="6" margin="1"></ha-qr-code> <span class="code">${0}-${0}-${0}</span> </div> </div> `),this.hass.localize("ui.panel.config.matter.open_commissioning_window.success"),this.hass.localize("ui.panel.config.matter.open_commissioning_window.scan_code"),(0,p.p$)(this.hass.localize,"matter"),(0,_.MR)({domain:"matter",type:"logo",darkOptimized:null===(t=this.hass.themes)||void 0===t?void 0:t.darkMode},this.hass.auth.data.hassUrl),this._commissionParams.setup_qr_code,this._commissionParams.setup_manual_code.substring(0,4),this._commissionParams.setup_manual_code.substring(4,7),this._commissionParams.setup_manual_code.substring(7)):"started"===this._status?(0,a.qy)(w||(w=q` <div class="flex-container"> <ha-spinner></ha-spinner> <div class="status"> <p> <b> ${0} </b> </p> </div> </div> `),this.hass.localize("ui.panel.config.matter.open_commissioning_window.in_progress")):"failed"===this._status?(0,a.qy)(C||(C=q` <div class="flex-container"> <ha-svg-icon .path="${0}" class="failed"></ha-svg-icon> <div class="status"> <p> ${0} </p> </div> </div> `),M,this.hass.localize("ui.panel.config.matter.open_commissioning_window.failed")):(0,a.qy)(b||(b=q` <p> ${0} </p> <p class="note"> ${0} </p> `),this.hass.localize("ui.panel.config.matter.open_commissioning_window.description",{startCommissioning:(0,a.qy)(x||(x=q`<b>${0}</b>`),this.hass.localize("ui.panel.config.matter.open_commissioning_window.start_commissioning"))}),this.hass.localize("ui.panel.config.matter.open_commissioning_window.prevent_misuse_description")),this._commissionParams?(0,a.qy)($||($=q` <ha-button slot="primaryAction" ="${0}"> ${0} </ha-button> `),this._copyCode,this.hass.localize("ui.panel.config.matter.open_commissioning_window.copy_code")):"started"===this._status||"failed"===this._status?(0,a.qy)(k||(k=q` <ha-button slot="primaryAction" ="${0}"> ${0} </ha-button> `),this.closeDialog,this.hass.localize("ui.common.close")):(0,a.qy)(P||(P=q` <ha-button slot="primaryAction" ="${0}"> ${0} </ha-button> `),this._start,this.hass.localize("ui.panel.config.matter.open_commissioning_window.start_commissioning"))):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[u.nA,(0,a.AH)(L||(L=q`.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})],z.prototype,"hass",void 0),(0,o.Cg)([(0,r.wk)()],z.prototype,"device_id",void 0),(0,o.Cg)([(0,r.wk)()],z.prototype,"_status",void 0),(0,o.Cg)([(0,r.wk)()],z.prototype,"_commissionParams",void 0),(0,o.Cg)([(0,r.wk)()],z.prototype,"_open",void 0),z=(0,o.Cg)([(0,r.EM)("dialog-matter-open-commissioning-window")],z),e()}catch(y){e(y)}})}}]);