UNPKG

iobroker.lovelace

Version:

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

2 lines 11.7 kB
export const __webpack_ids__=["80518"];export const __webpack_modules__={44732:function(t,e,a){var i=a(44249),n=a(57243),r=a(15093),s=a(35359);(0,i.Z)([(0,r.Mo)("ha-more-info-control-select-container")],(function(t,e){return{F:class extends e{constructor(...e){super(...e),t(this)}},d:[{kind:"method",key:"render",value:function(){const t=`items-${this.childElementCount}`;return n.dy` <div class="controls"> <div class="controls-scroll ${(0,s.$)({[t]:!0,multiline:this.childElementCount>=4})}"> <slot></slot> </div> </div> `}},{kind:"field",static:!0,key:"styles",value:()=>n.iv`.controls{display:flex;flex-direction:row;justify-content:center}.controls-scroll{display:flex;flex-direction:row;justify-content:flex-start;gap:12px;margin:auto;overflow:auto;-ms-overflow-style:none;scrollbar-width:none;margin:-2px -24px;padding:2px 24px}.controls-scroll::-webkit-scrollbar{display:none}::slotted(*){min-width:120px;max-width:160px;flex:none}@media all and (hover:hover),all and (min-width:600px) and (min-height:501px){.controls-scroll{justify-content:center;flex-wrap:wrap;width:100%;max-width:450px}.controls-scroll.items-4{max-width:300px}.controls-scroll.items-3 ::slotted(*){max-width:140px}.multiline ::slotted(*){width:140px}}`}]}}),n.oi)},12173:function(t,e,a){a.d(e,{b:()=>i});const i=a(57243).iv`:host{display:flex;flex-direction:column;flex:1;justify-content:space-between}.controls{display:flex;flex-direction:column;align-items:center}.controls:not(:last-child){margin-bottom:24px}.controls>:not(:last-child){margin-bottom:24px}.buttons{display:flex;align-items:center;justify-content:center;margin-bottom:12px}.buttons>*{margin:8px}ha-attributes{display:block;width:100%}ha-more-info-control-select-container+ha-attributes:not([empty]){margin-top:16px}`},60054:function(t,e,a){a.a(t,(async function(t,i){try{a.r(e);var n=a(44249),r=(a(9359),a(70104),a(57243)),s=a(15093),o=a(49976),l=a(75278),c=(a(34058),a(7285),a(96194)),h=a(6703),u=a(89555),d=(a(44732),a(12173)),m=t([u]);u=(m.then?(await m)():m)[0];const p="M12,4A4,4 0 0,1 16,8A4,4 0 0,1 12,12A4,4 0 0,1 8,8A4,4 0 0,1 12,4M12,14C16.42,14 20,15.79 20,18V20H4V18C4,15.79 7.58,14 12,14Z",v="M18 16H14V18H18V20L21 17L18 14V16M11 4C8.8 4 7 5.8 7 8S8.8 12 11 12 15 10.2 15 8 13.2 4 11 4M11 14C6.6 14 3 15.8 3 18V20H12.5C12.2 19.2 12 18.4 12 17.5C12 16.3 12.3 15.2 12.9 14.1C12.3 14.1 11.7 14 11 14",_="M8 2C6.89 2 6 2.89 6 4V16C6 17.11 6.89 18 8 18H9V20H6V22H9C10.11 22 11 21.11 11 20V18H13V20C13 21.11 13.89 22 15 22H18V20H15V18H16C17.11 18 18 17.11 18 16V4C18 2.89 17.11 2 16 2H8M12 4.97A2 2 0 0 1 14 6.97A2 2 0 0 1 12 8.97A2 2 0 0 1 10 6.97A2 2 0 0 1 12 4.97M10 14.5H14V16H10V14.5Z";(0,n.Z)([(0,s.Mo)("more-info-water_heater")],(function(t,e){return{F:class extends e{constructor(...e){super(...e),t(this)}},d:[{kind:"field",decorators:[(0,s.Cb)({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[(0,s.Cb)({attribute:!1})],key:"stateObj",value:void 0},{kind:"method",key:"render",value:function(){if(!this.stateObj)return r.Ld;const t=this.stateObj,e=(0,l.e)(t,h.SN.OPERATION_MODE),a=(0,l.e)(t,h.SN.AWAY_MODE),i=this.stateObj.attributes.current_temperature;return r.dy` <div class="current"> ${null!=i?r.dy` <div> <p class="label"> ${this.hass.formatEntityAttributeName(this.stateObj,"current_temperature")} </p> <p class="value"> ${this.hass.formatEntityAttributeValue(this.stateObj,"current_temperature")} </p> </div> `:r.Ld} </div> <div class="controls"> <ha-state-control-water_heater-temperature .hass="${this.hass}" .stateObj="${this.stateObj}"></ha-state-control-water_heater-temperature> </div> <ha-more-info-control-select-container> ${e&&t.attributes.operation_list?r.dy` <ha-control-select-menu .label="${this.hass.localize("ui.card.water_heater.mode")}" .value="${t.state}" .disabled="${t.state===c.nZ}" fixedMenuPosition naturalMenuWidth @selected="${this._handleOperationModeChanged}" @closed="${o.U}"> <ha-svg-icon slot="icon" .path="${_}"></ha-svg-icon> ${t.attributes.operation_list.concat().sort(h.P_).map((e=>r.dy` <ha-list-item .value="${e}" graphic="icon"> <ha-svg-icon slot="graphic" .path="${(0,h.J6)(e)}"></ha-svg-icon> ${this.hass.formatEntityState(t,e)} </ha-list-item> `))} </ha-control-select-menu> `:r.Ld} ${a?r.dy` <ha-control-select-menu .label="${this.hass.formatEntityAttributeName(t,"away_mode")}" .value="${t.attributes.away_mode}" .disabled="${t.state===c.nZ}" fixedMenuPosition naturalMenuWidth @selected="${this._handleAwayModeChanged}" @closed="${o.U}"> <ha-svg-icon slot="icon" .path="${p}"></ha-svg-icon> <ha-list-item value="on" graphic="icon"> <ha-svg-icon slot="graphic" .path="${v}"></ha-svg-icon> ${this.hass.formatEntityAttributeValue(t,"away_mode","on")} </ha-list-item> <ha-list-item value="off" graphic="icon"> <ha-svg-icon slot="graphic" .path="${p}"></ha-svg-icon> ${this.hass.formatEntityAttributeValue(t,"away_mode","off")} </ha-list-item> </ha-control-select-menu> `:r.Ld} </ha-more-info-control-select-container> `}},{kind:"method",key:"_handleOperationModeChanged",value:function(t){const e=t.target.value;this._callServiceHelper(this.stateObj.state,e,"set_operation_mode",{operation_mode:e})}},{kind:"method",key:"_handleAwayModeChanged",value:function(t){const e="on"===t.target.value,a="on"===this.stateObj.attributes.away_mode;this._callServiceHelper(a,e,"set_away_mode",{away_mode:e})}},{kind:"method",key:"_callServiceHelper",value:async function(t,e,a,i){if(t===e)return;i.entity_id=this.stateObj.entity_id;const n=this.stateObj;await this.hass.callService("water_heater",a,i),await new Promise((t=>{setTimeout(t,2e3)})),this.stateObj===n&&(this.stateObj=void 0,await this.updateComplete,void 0===this.stateObj&&(this.stateObj=n))}},{kind:"get",static:!0,key:"styles",value:function(){return[d.b,r.iv`:host{color:var(--primary-text-color)}.current{display:flex;flex-direction:row;align-items:center;justify-content:center;text-align:center;margin-bottom:40px}.current div{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;flex:1}.current p{margin:0;text-align:center;color:var(--primary-text-color)}.current .label{opacity:.8;font-size:14px;line-height:16px;letter-spacing:.4px;margin-bottom:4px}.current .value{font-size:22px;font-weight:500;line-height:28px;direction:ltr}`]}}]}}),r.oi);i()}catch(t){i(t)}}))},89555:function(t,e,a){a.a(t,(async function(t,e){try{var i=a(44249),n=a(72621),r=a(57243),s=a(15093),o=a(69634),l=a(73358),c=a(5839),h=a(42818),u=a(75278),d=a(34593),m=a(22381),p=a(1703),v=(a(5906),a(75138),a(37583),a(96194)),_=a(6703),b=a(3015),y=t([p]);p=(y.then?(await y)():y)[0];const f="M19,13H5V11H19V13Z",g="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z";(0,i.Z)([(0,s.Mo)("ha-state-control-water_heater-temperature")],(function(t,e){class a extends e{constructor(...e){super(...e),t(this)}}return{F:a,d:[{kind:"field",decorators:[(0,s.Cb)({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[(0,s.Cb)({attribute:!1})],key:"stateObj",value:void 0},{kind:"field",decorators:[(0,s.Cb)({attribute:"show-current",type:Boolean})],key:"showCurrent",value:()=>!1},{kind:"field",decorators:[(0,s.Cb)({type:Boolean,attribute:"prevent-interaction-on-scroll"})],key:"preventInteractionOnScroll",value:()=>!1},{kind:"field",decorators:[(0,s.SB)()],key:"_targetTemperature",value:void 0},{kind:"field",key:"_sizeController",value(){return(0,b.$)(this)}},{kind:"method",key:"willUpdate",value:function(t){(0,n.Z)(a,"willUpdate",this,3)([t]),t.has("stateObj")&&(this._targetTemperature=this.stateObj.attributes.temperature)}},{kind:"get",key:"_step",value:function(){return this.stateObj.attributes.target_temp_step||(this.hass.config.unit_system.temperature===l.gD?1:.5)}},{kind:"get",key:"_min",value:function(){return this.stateObj.attributes.min_temp}},{kind:"get",key:"_max",value:function(){return this.stateObj.attributes.max_temp}},{kind:"method",key:"_valueChanged",value:function(t){const e=t.detail.value;isNaN(e)||(this._targetTemperature=e,this._callService())}},{kind:"method",key:"_valueChanging",value:function(t){const e=t.detail.value;isNaN(e)||(this._targetTemperature=e)}},{kind:"field",key:"_debouncedCallService",value(){return(0,m.D)((()=>this._callService()),1e3)}},{kind:"method",key:"_callService",value:function(){this.hass.callService("water_heater","set_temperature",{entity_id:this.stateObj.entity_id,temperature:this._targetTemperature})}},{kind:"method",key:"_handleButton",value:function(t){const e=t.currentTarget.step;let a=this._targetTemperature??this._min;a+=e,a=(0,d.u)(a,this._min,this._max),this._targetTemperature=a,this._debouncedCallService()}},{kind:"method",key:"_renderLabel",value:function(){return this.stateObj.state===v.nZ?r.dy` <p class="label disabled"> ${this.hass.formatEntityState(this.stateObj,v.nZ)} </p> `:(0,u.e)(this.stateObj,_.SN.TARGET_TEMPERATURE)&&this._targetTemperature?r.dy` <p class="label">${this.hass.localize("ui.card.water_heater.target")}</p> `:r.dy` <p class="label">${this.hass.formatEntityState(this.stateObj)}</p> `}},{kind:"method",key:"_renderButtons",value:function(){return r.dy` <div class="buttons"> <ha-outlined-icon-button .step="${-this._step}" @click="${this._handleButton}"> <ha-svg-icon .path="${f}"></ha-svg-icon> </ha-outlined-icon-button> <ha-outlined-icon-button .step="${this._step}" @click="${this._handleButton}"> <ha-svg-icon .path="${g}"></ha-svg-icon> </ha-outlined-icon-button> </div> `}},{kind:"method",key:"_renderTargetTemperature",value:function(t){const e=this._step.toString().split(".")?.[1]?.length??0,a={maximumFractionDigits:e,minimumFractionDigits:e};return r.dy` <ha-big-number .value="${t}" .unit="${this.hass.config.unit_system.temperature}" .hass="${this.hass}" .formatOptions="${a}"></ha-big-number> `}},{kind:"method",key:"_renderCurrentTemperature",value:function(t){return this.showCurrent&&null!=t?r.dy` <p class="label"> ${this.hass.localize("ui.card.water_heater.currently")} <span> ${this.hass.formatEntityAttributeValue(this.stateObj,"current_temperature",t)} </span> </p> `:r.dy`<p class="label"> </p>`}},{kind:"method",key:"render",value:function(){const t=(0,u.e)(this.stateObj,_.SN.TARGET_TEMPERATURE),e=(0,h.Hh)(this.stateObj),a=(0,c.v)(this.stateObj),i=this._sizeController.value?` ${this._sizeController.value}`:"";return t&&null!=this._targetTemperature&&this.stateObj.state!==v.nZ?r.dy` <div class="container${i}" style="${(0,o.V)({"--state-color":e})}"> <ha-control-circular-slider .preventInteractionOnScroll="${this.preventInteractionOnScroll}" .inactive="${!a}" .value="${this._targetTemperature}" .min="${this._min}" .max="${this._max}" .step="${this._step}" .current="${this.stateObj.attributes.current_temperature}" @value-changed="${this._valueChanged}" @value-changing="${this._valueChanging}"> </ha-control-circular-slider> <div class="info"> ${this._renderLabel()} ${this._renderTargetTemperature(this._targetTemperature)} ${this._renderCurrentTemperature(this.stateObj.attributes.current_temperature)} </div> ${this._renderButtons()} </div> `:r.dy` <div class="container${i}" style="${(0,o.V)({"--state-color":e})}"> <ha-control-circular-slider .preventInteractionOnScroll="${this.preventInteractionOnScroll}" mode="full" .current="${this.stateObj.attributes.current_temperature}" .min="${this._min}" .max="${this._max}" .step="${this._step}" readonly="readonly" .disabled="${!a}"> </ha-control-circular-slider> <div class="info"> ${this._renderLabel()} ${this._renderCurrentTemperature(this.stateObj.attributes.current_temperature)} </div> </div> `}},{kind:"get",static:!0,key:"styles",value:function(){return b.r}}]}}),r.oi);e()}catch(t){e(t)}}))}}; //# sourceMappingURL=80518.0d778ab53cf08a5e.js.map