UNPKG

iobroker.lovelace

Version:

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

1 lines 14.5 kB
export const __rspack_esm_id=92523;export const __rspack_esm_ids=[92523];export const __webpack_modules__={28732(t,e,i){var s=i(62826),a=i(27686),r=i(7731),n=i(5124),o=i(22441);class l extends a.J{renderRipple(){return this.noninteractive?"":super.renderRipple()}static get styles(){return[r.R,n.AH`:host{padding-left:var(--mdc-list-side-padding-left,var(--mdc-list-side-padding,20px));padding-inline-start:var(--mdc-list-side-padding-left,var(--mdc-list-side-padding,20px));padding-right:var(--mdc-list-side-padding-right,var(--mdc-list-side-padding,20px));padding-inline-end:var(--mdc-list-side-padding-right,var(--mdc-list-side-padding,20px))}:host([graphic=avatar]:not([twoLine])),:host([graphic=icon]:not([twoLine])){height:48px}span.material-icons:first-of-type{margin-inline-start:0px!important;margin-inline-end:var(--mdc-list-item-graphic-margin,16px)!important;direction:var(--direction)!important}span.material-icons:last-of-type{margin-inline-start:auto!important;margin-inline-end:0px!important;direction:var(--direction)!important}.mdc-deprecated-list-item__meta{display:var(--mdc-list-item-meta-display);align-items:center;flex-shrink:0}:host([graphic=icon]:not([twoline])) .mdc-deprecated-list-item__graphic{margin-inline-end:var(--mdc-list-item-graphic-margin,20px)!important}:host([multiline-secondary]){height:auto}:host([multiline-secondary]) .mdc-deprecated-list-item__text{padding:8px 0}:host([multiline-secondary]) .mdc-deprecated-list-item__secondary-text{text-overflow:initial;white-space:normal;overflow:auto;display:inline-block;margin-top:10px}:host([multiline-secondary]) .mdc-deprecated-list-item__primary-text{margin-top:10px}:host([multiline-secondary]) .mdc-deprecated-list-item__secondary-text::before{display:none}:host([multiline-secondary]) .mdc-deprecated-list-item__primary-text::before{display:none}:host([disabled]){color:var(--disabled-text-color)}:host([noninteractive]){pointer-events:unset}`,"rtl"===document.dir?n.AH`span.material-icons:first-of-type,span.material-icons:last-of-type{direction:rtl!important;--direction:rtl}`:n.AH``]}}l=(0,s.Cg)([(0,o.EM)("ha-list-item")],l)},3688(t,e,i){var s=i(62826),a=i(5124),r=i(22441),n=i(6412);class o extends a.WF{render(){const t=`items-${this.childElementCount}`;return a.qy` <div class="controls"> <div class="controls-scroll ${(0,n.H)({[t]:!0,multiline:this.childElementCount>=4})}"> <slot></slot> </div> </div> `}}o.styles=a.AH`.controls{display:flex;flex-direction:row;justify-content:center}.controls-scroll{display:flex;flex-direction:row;justify-content:flex-start;gap:var(--ha-space-3);margin:auto;overflow:auto;-ms-overflow-style:none;scrollbar-width:none;margin:-2px calc(var(--ha-space-6) * -1);padding:2px var(--ha-space-6)}.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}}`,o=(0,s.Cg)([(0,r.EM)("ha-more-info-control-select-container")],o)},37863(t,e,i){i.d(e,{K:()=>s});const s=i(5124).AH`:host{display:flex;flex-direction:column;flex:1;justify-content:space-between}.controls{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1}.controls:not(:last-child){margin-bottom:var(--ha-space-6)}.controls>:not(:last-child){margin-bottom:var(--ha-space-6)}.buttons{display:flex;align-items:center;justify-content:center;margin-bottom:var(--ha-space-3)}.buttons>*{margin:var(--ha-space-2)}ha-attributes{display:block;width:100%}ha-more-info-control-select-container+ha-attributes:not([empty]){margin-top:var(--ha-space-4)}`},75417(t,e,i){i.a(t,async function(t,s){try{i.r(e);i(18111),i(61701);var a=i(62826),r=i(5124),n=i(22441),o=i(82286),l=i(36248),h=i(56048),c=(i(28732),i(22675)),d=i(84610),u=i(2276),m=(i(3688),i(37863)),p=t([l,h,u]);[l,h,u]=p.then?(await p)():p;const y="M16.56,5.44L15.11,6.89C16.84,7.94 18,9.83 18,12A6,6 0 0,1 12,18A6,6 0 0,1 6,12C6,9.83 7.16,7.94 8.88,6.88L7.44,5.44C5.36,6.88 4,9.28 4,12A8,8 0 0,0 12,20A8,8 0 0,0 20,12C20,9.28 18.64,6.88 16.56,5.44M13,3H11V13H13",b="M8 13C6.14 13 4.59 14.28 4.14 16H2V18H4.14C4.59 19.72 6.14 21 8 21S11.41 19.72 11.86 18H22V16H11.86C11.41 14.28 9.86 13 8 13M8 19C6.9 19 6 18.1 6 17C6 15.9 6.9 15 8 15S10 15.9 10 17C10 18.1 9.1 19 8 19M19.86 6C19.41 4.28 17.86 3 16 3S12.59 4.28 12.14 6H2V8H12.14C12.59 9.72 14.14 11 16 11S19.41 9.72 19.86 8H22V6H19.86M16 9C14.9 9 14 8.1 14 7C14 5.9 14.9 5 16 5S18 5.9 18 7C18 8.1 17.1 9 16 9Z";class g extends r.WF{willUpdate(t){super.willUpdate(t),t.has("stateObj")&&(this._mode=this.stateObj?.attributes.mode)}render(){if(!this.stateObj)return r.s6;const t=this.hass,e=this.stateObj,i=(0,o.$)(e,d.ye.MODES);return r.qy` <div class="current"> ${null!=this.stateObj.attributes.current_humidity?r.qy` <div> <p class="label"> ${this.hass.formatEntityAttributeName(this.stateObj,"current_humidity")} </p> <p class="value"> ${this.hass.formatEntityAttributeValue(this.stateObj,"current_humidity")} </p> </div> `:r.s6} </div> <div class="controls"> <ha-state-control-humidifier-humidity .hass="${this.hass}" .stateObj="${this.stateObj}"></ha-state-control-humidifier-humidity> </div> <ha-more-info-control-select-container> <ha-control-select-menu .hass="${t}" .label="${this.hass.localize("ui.card.humidifier.state")}" .value="${this.stateObj.state}" .disabled="${this.stateObj.state===c.Hh}" @wa-select="${this._handleStateChanged}" .options="${["off","on"].map(t=>({value:t,label:this.stateObj?this.hass.formatEntityState(this.stateObj,t):t}))}"> <ha-svg-icon slot="icon" .path="${y}"></ha-svg-icon> </ha-control-select-menu> ${i?r.qy` <ha-control-select-menu .hass="${t}" .label="${t.localize("ui.card.humidifier.mode")}" .value="${e.attributes.mode}" .disabled="${this.stateObj.state===c.Hh}" @wa-select="${this._handleModeChanged}" .options="${e.attributes.available_modes?.map(t=>({value:t,label:e?this.hass.formatEntityAttributeValue(e,"mode",t):t}))||[]}" .renderIcon="${this._renderModeIcon}"> <ha-svg-icon slot="icon" .path="${b}"></ha-svg-icon> </ha-control-select-menu> `:r.s6} </ha-more-info-control-select-container> `}_handleStateChanged(t){const e=t.detail.item.value||null;this._callServiceHelper(this.stateObj.state,e,"on"===e?"turn_on":"turn_off",{})}_handleModeChanged(t){const e=t.detail.item.value;this._mode=e,this._callServiceHelper(this.stateObj.attributes.mode,e,"set_mode",{mode:e})}async _callServiceHelper(t,e,i,s){if(t===e)return;s.entity_id=this.stateObj.entity_id;const a=this.stateObj;await this.hass.callService("humidifier",i,s),await new Promise(t=>{setTimeout(t,2e3)}),this.stateObj===a&&(this.stateObj=void 0,await this.updateComplete,void 0===this.stateObj&&(this.stateObj=a))}static get styles(){return[m.K,r.AH`:host{color:var(--primary-text-color)}.current{display:flex;flex-direction:row;align-items:center;justify-content:center;text-align:center;margin-bottom:var(--ha-space-10)}.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:var(--ha-font-size-m);line-height:var(--ha-line-height-condensed);letter-spacing:.4px;margin-bottom:var(--ha-space-1)}.current .value{font-size:var(--ha-font-size-xl);font-weight:var(--ha-font-weight-medium);line-height:var(--ha-line-height-condensed);direction:ltr}`]}constructor(...t){super(...t),this._renderModeIcon=t=>r.qy`<ha-attribute-icon .hass="${this.hass}" .stateObj="${this.stateObj}" attribute="mode" .attributeValue="${t}"></ha-attribute-icon>`}}(0,a.Cg)([(0,n.MZ)({attribute:!1})],g.prototype,"hass",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],g.prototype,"stateObj",void 0),(0,a.Cg)([(0,n.wk)()],g.prototype,"_mode",void 0),g=(0,a.Cg)([(0,n.EM)("more-info-humidifier")],g),s()}catch(t){s(t)}})},2276(t,e,i){i.a(t,async function(t,e){try{var s=i(62826),a=i(5124),r=i(22441),n=i(89784),o=i(47129),l=i(52658),h=i(63004),c=i(9899),d=i(32074),u=(i(97955),i(8889),i(67094),i(22675)),m=i(88827),p=i(84610),y=i(17392),b=t([d,m]);[d,m]=b.then?(await b)():b;const g="M19,13H5V11H19V13Z",v="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z",_="M16.95,16.95L14.83,14.83C15.55,14.1 16,13.1 16,12C16,11.26 15.79,10.57 15.43,10L17.6,7.81C18.5,9 19,10.43 19,12C19,13.93 18.22,15.68 16.95,16.95M12,5C13.57,5 15,5.5 16.19,6.4L14,8.56C13.43,8.21 12.74,8 12,8A4,4 0 0,0 8,12C8,13.1 8.45,14.1 9.17,14.83L7.05,16.95C5.78,15.68 5,13.93 5,12A7,7 0 0,1 12,5M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12C22,6.47 17.5,2 12,2Z",f="M12,3.25C12,3.25 6,10 6,14C6,17.32 8.69,20 12,20A6,6 0 0,0 18,14C18,10 12,3.25 12,3.25M14.47,9.97L15.53,11.03L9.53,17.03L8.47,15.97M9.75,10A1.25,1.25 0 0,1 11,11.25A1.25,1.25 0 0,1 9.75,12.5A1.25,1.25 0 0,1 8.5,11.25A1.25,1.25 0 0,1 9.75,10M14.25,14.5A1.25,1.25 0 0,1 15.5,15.75A1.25,1.25 0 0,1 14.25,17A1.25,1.25 0 0,1 13,15.75A1.25,1.25 0 0,1 14.25,14.5Z";class x extends a.WF{willUpdate(t){super.willUpdate(t),t.has("stateObj")&&(this._targetHumidity=this.stateObj.attributes.humidity)}get _step(){return this.stateObj.attributes.target_humidity_step??1}get _min(){return this.stateObj.attributes.min_humidity??0}get _max(){return this.stateObj.attributes.max_humidity??100}_valueChanged(t){const{value:e}=t.detail;"number"!=typeof e||isNaN(e)||(this._targetHumidity=e,this._callService())}_valueChanging(t){const{value:e}=t.detail;"number"!=typeof e||isNaN(e)||(this._targetHumidity=e)}_callService(){this.hass.callService("humidifier","set_humidity",{entity_id:this.stateObj.entity_id,humidity:this._targetHumidity})}_handleButton(t){const e=t.currentTarget.step;let i=this._targetHumidity??this._min;i+=e,i=(0,h.q)(i,this._min,this._max),this._targetHumidity=i,this._debouncedCallService()}_renderLabel(){if(this.stateObj.state===u.Hh)return a.qy` <p class="label disabled"> ${this.hass.formatEntityState(this.stateObj,u.Hh)} </p> `;const t=this.stateObj.attributes.action,e=null!=this.stateObj.attributes.current_humidity&&this.showCurrentAsPrimary||null!=this._targetHumidity&&!this.showCurrentAsPrimary;return a.qy` <p class="label"> ${t&&"off"!==t?this.hass.formatEntityAttributeValue(this.stateObj,"action"):e?this.hass.formatEntityState(this.stateObj):a.s6} </p> `}_renderButtons(){return a.qy` <div class="buttons"> <ha-outlined-icon-button .step="${-this._step}" @click="${this._handleButton}"> <ha-svg-icon .path="${g}"></ha-svg-icon> </ha-outlined-icon-button> <ha-outlined-icon-button .step="${this._step}" @click="${this._handleButton}"> <ha-svg-icon .path="${v}"></ha-svg-icon> </ha-outlined-icon-button> </div> `}_renderPrimary(){const t=this.stateObj.attributes.current_humidity;return null!=t&&this.showCurrentAsPrimary?this._renderCurrent(t,"big"):null==this._targetHumidity||this.showCurrentAsPrimary?this.stateObj.state!==u.Hh?a.qy` <p class="primary-state"> ${this.hass.formatEntityState(this.stateObj)} </p> `:a.s6:this._renderTarget(this._targetHumidity,"big")}_renderSecondary(){if(!this.showSecondary)return a.qy`<p class="label"></p>`;const t=this.stateObj.attributes.current_humidity;return null==t||this.showCurrentAsPrimary?null!=this._targetHumidity&&this.showCurrentAsPrimary?a.qy` <p class="label"> <ha-svg-icon .path="${_}"></ha-svg-icon> ${this._renderCurrent(this._targetHumidity,"normal")} </p> `:a.qy`<p class="label"></p>`:a.qy` <p class="label"> <ha-svg-icon .path="${f}"></ha-svg-icon> ${this._renderCurrent(t,"normal")} </p> `}_renderTarget(t,e){const i={maximumFractionDigits:0};return"big"===e?a.qy` <ha-big-number .value="${t}" .unit="${m.rM.humidifier.current_humidity}" .hass="${this.hass}" .formatOptions="${i}" unit-position="bottom"></ha-big-number> `:a.qy` ${this.hass.formatEntityAttributeValue(this.stateObj,"humidity",t)} `}_renderCurrent(t,e){const i={maximumFractionDigits:1};return"big"===e?a.qy` <ha-big-number .value="${t}" .unit="${m.rM.humidifier.current_humidity}" .hass="${this.hass}" .formatOptions="${i}" unit-position="bottom"></ha-big-number> `:a.qy` ${this.hass.formatEntityAttributeValue(this.stateObj,"current_humidity",t)} `}_renderInfo(){return a.qy` <div class="info"> ${this._renderLabel()}${this._renderPrimary()}${this._renderSecondary()} </div> `}render(){const t=(0,l.Se)(this.stateObj),e=(0,o.a)(this.stateObj),i=this.stateObj.attributes.action;let s;i&&"idle"!==i&&"off"!==i&&e&&(s=(0,l.Se)(this.stateObj,p.i5[i]));const r=this._targetHumidity,h=this.stateObj.attributes.current_humidity,c=this._sizeController.value?` ${this._sizeController.value}`:"";if(null!=r&&this.stateObj.state!==u.Hh){const i=this.stateObj.attributes.device_class===p.C6.DEHUMIDIFIER;return a.qy` <div class="container${c}" style="${(0,n.W)({"--state-color":t,"--action-color":s})}"> <ha-control-circular-slider .preventInteractionOnScroll="${this.preventInteractionOnScroll}" .inactive="${!e}" .mode="${i?"end":"start"}" .value="${r}" .min="${this._min}" .max="${this._max}" .step="${this._step}" .current="${h}" @value-changed="${this._valueChanged}" @value-changing="${this._valueChanging}"> </ha-control-circular-slider> ${this._renderInfo()} ${this._renderButtons()} </div> `}return a.qy` <div class="container${c}" style="${(0,n.W)({"--state-color":t,"--action-color":s})}"> <ha-control-circular-slider .preventInteractionOnScroll="${this.preventInteractionOnScroll}" .current="${h}" .min="${this._min}" .max="${this._max}" .step="${this._step}" disabled="disabled"> </ha-control-circular-slider> ${this._renderInfo()} </div> `}static get styles(){return y.Y}constructor(...t){super(...t),this.showSecondary=!1,this.showCurrentAsPrimary=!1,this.preventInteractionOnScroll=!1,this._sizeController=(0,y.H)(this),this._debouncedCallService=(0,c.s)(()=>this._callService(),1e3)}}(0,s.Cg)([(0,r.MZ)({attribute:!1})],x.prototype,"hass",void 0),(0,s.Cg)([(0,r.MZ)({attribute:!1})],x.prototype,"stateObj",void 0),(0,s.Cg)([(0,r.MZ)({attribute:"show-secondary",type:Boolean})],x.prototype,"showSecondary",void 0),(0,s.Cg)([(0,r.MZ)({attribute:"use-current-as-primary",type:Boolean})],x.prototype,"showCurrentAsPrimary",void 0),(0,s.Cg)([(0,r.MZ)({type:Boolean,attribute:"prevent-interaction-on-scroll"})],x.prototype,"preventInteractionOnScroll",void 0),(0,s.Cg)([(0,r.wk)()],x.prototype,"_targetHumidity",void 0),x=(0,s.Cg)([(0,r.EM)("ha-state-control-humidifier-humidity")],x),e()}catch(t){e(t)}})}};