UNPKG

iobroker.lovelace

Version:

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

1 lines 7.3 kB
export const __rspack_esm_id=83995;export const __rspack_esm_ids=[83995];export const __webpack_modules__={36534(s,i,a){a.a(s,async function(s,t){try{a.r(i);a(74423),a(44114),a(18111),a(7588),a(61701),a(45367),a(92731);var e=a(62826),o=a(5124),c=a(22441),h=a(1087),r=a(65829),l=(a(67094),a(34127)),n=a(18350),d=(a(93444),a(72554)),u=a(84621),g=a(14503),_=s([r,l,n,d]);[r,l,n,d]=_.then?(await _)():_;const p="M12 2C6.5 2 2 6.5 2 12S6.5 22 12 22 22 17.5 22 12 17.5 2 12 2M10 17L5 12L6.41 10.59L10 14.17L17.59 6.58L19 8L10 17Z",v="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 f extends o.WF{showDialog(s){this._params=s,this._clusterConfigurationStatuses=new Map,this._stages=void 0,this._open=!0}closeDialog(){this._open=!1}_dialogClosed(){this._unsubscribe(),this._params=void 0,this._status=void 0,this._stages=void 0,this._clusterConfigurationStatuses=void 0,this._showDetails=!1,this._allSuccessful=!0,(0,h.r)(this,"dialog-closed",{dialog:this.localName})}render(){return this._params?o.qy` <ha-dialog .open="${this._open}" width="large" header-title="${this.hass.localize("ui.dialogs.zha_reconfigure_device.heading")+": "+(this._params.device.user_given_name||this._params.device.name)}" @closed="${this._dialogClosed}"> ${this._status?"":o.qy` <p> ${this.hass.localize("ui.dialogs.zha_reconfigure_device.introduction")} </p> <p> <em> ${this.hass.localize("ui.dialogs.zha_reconfigure_device.battery_device_warning")} </em> </p> `} ${"started"===this._status?o.qy` <div class="flex-container"> <ha-spinner></ha-spinner> <div class="status"> <p> <b> ${this.hass.localize("ui.dialogs.zha_reconfigure_device.in_progress")} </b> </p> <p> ${this.hass.localize("ui.dialogs.zha_reconfigure_device.run_in_background")} </p> </div> </div> `:""} ${"failed"===this._status?o.qy` <div class="flex-container"> <ha-svg-icon .path="${v}" class="failed"></ha-svg-icon> <div class="status"> <p> ${this.hass.localize("ui.dialogs.zha_reconfigure_device.configuration_failed")} </p> </div> </div> `:""} ${"finished"===this._status?o.qy` <div class="flex-container"> <ha-svg-icon .path="${p}" class="success"></ha-svg-icon> <div class="status"> <p> ${this.hass.localize("ui.dialogs.zha_reconfigure_device.configuration_complete")} </p> </div> </div> `:""} ${this._stages?o.qy` <div class="stages"> ${this._stages.map(s=>o.qy` <span class="stage"> <ha-svg-icon .path="${p}" class="success"></ha-svg-icon> ${s} </span> `)} </div> `:""} ${this._showDetails?o.qy` <div class="wrapper"> <h2 class="grid-item"> ${this.hass.localize("ui.dialogs.zha_reconfigure_device.cluster_header")} </h2> <h2 class="grid-item"> ${this.hass.localize("ui.dialogs.zha_reconfigure_device.bind_header")} </h2> <h2 class="grid-item"> ${this.hass.localize("ui.dialogs.zha_reconfigure_device.reporting_header")} </h2> ${this._clusterConfigurationStatuses?.size?o.qy` ${Array.from(this._clusterConfigurationStatuses.values()).map(s=>o.qy` <div class="grid-item"> ${s.cluster.name} </div> <div class="grid-item"> ${void 0!==s.bindSuccess?s.bindSuccess?o.qy` <span class="stage"> <ha-svg-icon .path="${p}" class="success"></ha-svg-icon> </span> `:o.qy` <span class="stage"> <ha-svg-icon .path="${v}" class="failed"></ha-svg-icon> </span> `:""} </div> <div class="grid-item"> ${s.attributes.size>0?o.qy` <div class="attributes"> <div class="grid-item"> ${this.hass.localize("ui.dialogs.zha_reconfigure_device.attribute")} </div> <div class="grid-item"> <div> ${this.hass.localize("ui.dialogs.zha_reconfigure_device.min_max_change")} </div> </div> ${Array.from(s.attributes.values()).map(i=>o.qy` <span class="grid-item"> ${i.name}: ${"SUCCESS"===i.status?o.qy` <span class="stage"> <ha-svg-icon .path="${p}" class="success"></ha-svg-icon> </span> `:o.qy` <span class="stage"> <ha-svg-icon .id="svg-icon-${s.cluster.name}" .path="${v}" class="failed"></ha-svg-icon> <ha-tooltip .for="svg-icon-${s.cluster.name}" placement="top"> ${i.status} </ha-tooltip> </span> `} </span> <div class="grid-item"> ${i.min}/${i.max}/${i.change} </div> `)} </div> `:""} </div> `)} `:""} </div> `:""} <ha-dialog-footer slot="footer"> ${this._status?o.qy` <ha-button slot="secondaryAction" appearance="plain" @click="${this._toggleDetails}"> ${this._showDetails?this.hass.localize("ui.dialogs.zha_reconfigure_device.button_hide"):this.hass.localize("ui.dialogs.zha_reconfigure_device.button_show")} </ha-button> <ha-button slot="primaryAction" @click="${this.closeDialog}"> ${this.hass.localize("ui.common.close")} </ha-button> `:o.qy` <ha-button slot="primaryAction" @click="${this._startReconfiguration}"> ${this.hass.localize("ui.dialogs.zha_reconfigure_device.start_reconfiguration")} </ha-button> `} </ha-dialog-footer> </ha-dialog> `:o.s6}async _startReconfiguration(){this.hass&&this._params&&(this._clusterConfigurationStatuses=new Map((await(0,u.cm)(this.hass,this._params.device.ieee)).map(s=>[s.id,{cluster:s,bindSuccess:void 0,attributes:new Map}])),this._subscribe(this._params),this._status="started")}_handleMessage(s){if(s.type===u.Yf)this._unsubscribe(),this._status=this._allSuccessful?"finished":"failed";else{const i=this._clusterConfigurationStatuses.get(s.zha_channel_msg_data.cluster_id);if(s.type===u.A2){this._stages||(this._stages=["binding"]);const a=s.zha_channel_msg_data.success;i.bindSuccess=a,this._allSuccessful=this._allSuccessful&&a}if(s.type===u.sb){this._stages&&!this._stages.includes("reporting")&&this._stages.push("reporting");const a=s.zha_channel_msg_data.attributes;Object.keys(a).forEach(s=>{const t=a[s];i.attributes.set(t.id,t),this._allSuccessful=this._allSuccessful&&!(t.status in["FAILURE","UNSUPPORTED_ATTRIBUTE","UNREPORTABLE_ATTRIBUTE"])})}this.requestUpdate()}}_unsubscribe(){this._subscribed&&(this._subscribed.then(s=>s()),this._subscribed=void 0)}_subscribe(s){this.hass&&(this._subscribed=(0,u.C2)(this.hass,s.device.ieee,this._handleMessage.bind(this)))}_toggleDetails(){this._showDetails=!this._showDetails}static get styles(){return[g.nA,o.AH`.wrapper{display:grid;grid-template-columns:3fr 1fr 2fr}.attributes{display:grid;grid-template-columns:1fr 1fr}.grid-item{border:1px solid;padding:7px}.success{color:var(--success-color)}.failed{color:var(--warning-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}.flex-container ha-spinner,.flex-container ha-svg-icon{margin-right:20px;margin-inline-end:20px;margin-inline-start:initial}`]}constructor(...s){super(...s),this._clusterConfigurationStatuses=new Map,this._params=void 0,this._allSuccessful=!0,this._showDetails=!1,this._open=!1}}(0,e.Cg)([(0,c.MZ)({attribute:!1})],f.prototype,"hass",void 0),(0,e.Cg)([(0,c.wk)()],f.prototype,"_status",void 0),(0,e.Cg)([(0,c.wk)()],f.prototype,"_stages",void 0),(0,e.Cg)([(0,c.wk)()],f.prototype,"_clusterConfigurationStatuses",void 0),(0,e.Cg)([(0,c.wk)()],f.prototype,"_params",void 0),(0,e.Cg)([(0,c.wk)()],f.prototype,"_allSuccessful",void 0),(0,e.Cg)([(0,c.wk)()],f.prototype,"_showDetails",void 0),(0,e.Cg)([(0,c.wk)()],f.prototype,"_open",void 0),f=(0,e.Cg)([(0,c.EM)("dialog-zha-reconfigure-device")],f),t()}catch(s){t(s)}})}};