iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
1 lines • 3.5 kB
JavaScript
"use strict";(self.rspackChunkhome_assistant_frontend=self.rspackChunkhome_assistant_frontend||[]).push([[17600],{12284:function(t,e,s){s.d(e,{BJ:function(){return r},KY:function(){return i},MG:function(){return a},d_:function(){return h},m4:function(){return n}});const i=(t,e,s)=>t.callService(e.split(".",1)[0],"set_value",{value:s,entity_id:e}),a=t=>t.callWS({type:"input_text/list"}),n=(t,e)=>t.callWS(Object.assign({type:"input_text/create"},e)),r=(t,e,s)=>t.callWS(Object.assign({type:"input_text/update",input_text_id:e},s)),h=(t,e)=>t.callWS({type:"input_text/delete",input_text_id:e})},58723:function(t,e,s){s.a(t,async function(t,i){try{s.r(e);var a=s(69235),n=(s(16280),s(3362),s(40445)),r=s(5124),h=s(67576),d=s(9899),u=s(70759),l=s(91485),c=s(22675),o=s(12284),p=s(784),_=s(79757),b=s(85979),f=t([a,u,l,_,b]);[a,u,l,_,b]=f.then?(await f)():f;let g,m,y,v,x,C=t=>t;class $ extends r.WF{setConfig(t){if(!t)throw new Error("Invalid configuration");this._config=t}connectedCallback(){super.connectedCallback(),this._updated&&!this._loaded&&this._initialLoad(),this._attachObserver()}disconnectedCallback(){var t;super.disconnectedCallback(),null===(t=this._resizeObserver)||void 0===t||t.disconnect()}firstUpdated(){this._updated=!0,this.isConnected&&!this._loaded&&this._initialLoad(),this._attachObserver()}shouldUpdate(t){return(0,p.LX)(this,t)}render(){if(!this._config||!this.hass)return r.s6;const t=this.hass.states[this._config.entity];return t?(0,r.qy)(m||(m=C` <hui-generic-entity-row .hass="${0}" .config="${0}"> ${0} </hui-generic-entity-row> `),this.hass,this._config,"slider"===t.attributes.mode?(0,r.qy)(y||(y=C` <div class="flex"> <ha-slider labeled .disabled="${0}" .step="${0}" .min="${0}" .max="${0}" .value="${0}" ="${0}"></ha-slider> <span class="state"> ${0} </span> </div> `),t.state===c.Hh,Number(t.attributes.step),Number(t.attributes.min),Number(t.attributes.max),t.state,this._selectedValueChanged,this.hass.formatEntityState(t)):(0,r.qy)(v||(v=C` <div class="flex state"> <ha-input .disabled="${0}" pattern="[0-9]+([\\.][0-9]+)?" .step="${0}" .min="${0}" .max="${0}" .value="${0}" type="number" ="${0}"> <span slot="end">${0}</span> </ha-input> </div> `),t.state===c.Hh,Number(t.attributes.step),Number(t.attributes.min),Number(t.attributes.max),Number(t.state).toString(),this._selectedValueChanged,t.attributes.unit_of_measurement||"")):(0,r.qy)(g||(g=C` <hui-warning .hass="${0}"> ${0} </hui-warning> `),this.hass,(0,b.j)(this.hass,this._config.entity))}async _initialLoad(){this._loaded=!0,await this.updateComplete,this._measureCard()}_measureCard(){if(!this.isConnected)return;const t=this.shadowRoot.querySelector(".state");t&&(t.hidden=this.clientWidth<=300)}async _attachObserver(){this._resizeObserver||(this._resizeObserver=new ResizeObserver((0,d.s)(()=>this._measureCard(),250,!1))),this.isConnected&&this._resizeObserver.observe(this)}_selectedValueChanged(t){const e=this.hass.states[this._config.entity];t.target.value!==e.state&&(0,o.KY)(this.hass,e.entity_id,t.target.value)}}$.styles=(0,r.AH)(x||(x=C`:host{display:block}.flex{display:flex;align-items:center;justify-content:flex-end;flex-grow:2}.state{min-width:45px;text-align:end}ha-input{width:100%}ha-input::part(wa-input){text-align:end}ha-slider{width:100%;max-width:200px}`)),(0,n.Cg)([(0,h.MZ)({attribute:!1})],$.prototype,"hass",void 0),(0,n.Cg)([(0,h.wk)()],$.prototype,"_config",void 0),$=(0,n.Cg)([(0,h.EM)("hui-input-number-entity-row")],$),i()}catch(g){i(g)}})}}]);