UNPKG

iobroker.lovelace

Version:

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

1 lines 3.29 kB
export const __rspack_esm_id=71523;export const __rspack_esm_ids=[71523];export const __webpack_modules__={12284(t,e,s){s.d(e,{BJ:()=>r,KY:()=>i,MG:()=>a,d_:()=>d,m4:()=>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({type:"input_text/create",...e}),r=(t,e,s)=>t.callWS({type:"input_text/update",input_text_id:e,...s}),d=(t,e)=>t.callWS({type:"input_text/delete",input_text_id:e})},57198(t,e,s){s.a(t,async function(t,i){try{s.r(e);var a=s(62826),n=s(5124),r=s(22441),d=s(9899),h=s(70759),l=s(91485),u=s(22675),c=s(12284),o=s(784),_=s(79757),p=s(85979),b=t([h,l,_,p]);[h,l,_,p]=b.then?(await b)():b;class m extends n.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(){super.disconnectedCallback(),this._resizeObserver?.disconnect()}firstUpdated(){this._updated=!0,this.isConnected&&!this._loaded&&this._initialLoad(),this._attachObserver()}shouldUpdate(t){return(0,o.LX)(this,t)}render(){if(!this._config||!this.hass)return n.s6;const t=this.hass.states[this._config.entity];return t?n.qy` <hui-generic-entity-row .hass="${this.hass}" .config="${this._config}"> ${"slider"===t.attributes.mode||"auto"===t.attributes.mode&&(Number(t.attributes.max)-Number(t.attributes.min))/Number(t.attributes.step)<=256?n.qy` <div class="flex"> <ha-slider labeled .disabled="${t.state===u.Hh}" .step="${Number(t.attributes.step)}" .min="${Number(t.attributes.min)}" .max="${Number(t.attributes.max)}" .value="${Number(t.state)}" @change="${this._selectedValueChanged}"></ha-slider> <span class="state"> ${this.hass.formatEntityState(t)} </span> </div> `:n.qy` <div class="flex state"> <ha-input auto-validate .disabled="${t.state===u.Hh}" pattern="[0-9]+([\\.][0-9]+)?" .step="${Number(t.attributes.step)}" .min="${Number(t.attributes.min)}" .max="${Number(t.attributes.max)}" .value="${t.state}" type="number" @change="${this._selectedValueChanged}"> <span slot="end">${t.attributes.unit_of_measurement}</span> </ha-input> </div> `} </hui-generic-entity-row> `:n.qy` <hui-warning .hass="${this.hass}"> ${(0,p.j)(this.hass,this._config.entity)} </hui-warning> `}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,c.KY)(this.hass,e.entity_id,t.target.value)}}m.styles=n.AH`: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::part(wa-input){text-align:end;direction:ltr!important}ha-slider{width:100%;max-width:200px}`,(0,a.Cg)([(0,r.MZ)({attribute:!1})],m.prototype,"hass",void 0),(0,a.Cg)([(0,r.wk)()],m.prototype,"_config",void 0),m=(0,a.Cg)([(0,r.EM)("hui-number-entity-row")],m),i()}catch(t){i(t)}})}};