iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
1 lines • 15.4 kB
JavaScript
"use strict";(self.rspackChunkhome_assistant_frontend=self.rspackChunkhome_assistant_frontend||[]).push([[92523],{28732:function(t,e,i){var s=i(40445),a=i(27686),r=i(7731),n=i(5124),o=i(67576);let l,h,c,d=t=>t;class u extends a.J{renderRipple(){return this.noninteractive?"":super.renderRipple()}static get styles(){return[r.R,(0,n.AH)(l||(l=d`: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?(0,n.AH)(h||(h=d`span.material-icons:first-of-type,span.material-icons:last-of-type{direction:rtl!important;--direction:rtl}`)):(0,n.AH)(c||(c=d``))]}}u=(0,s.Cg)([(0,o.EM)("ha-list-item")],u)},3688:function(t,e,i){var s=i(40445),a=i(5124),r=i(67576),n=i(6412);let o,l,h=t=>t;class c extends a.WF{render(){const t=`items-${this.childElementCount}`;return(0,a.qy)(o||(o=h` <div class="controls"> <div class="controls-scroll ${0}"> <slot></slot> </div> </div> `),(0,n.H)({[t]:!0,multiline:this.childElementCount>=4}))}}c.styles=(0,a.AH)(l||(l=h`.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} 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}}`)),c=(0,s.Cg)([(0,r.EM)("ha-more-info-control-select-container")],c)},37863:function(t,e,i){i.d(e,{K:function(){return a}});let s;const a=(0,i(5124).AH)(s||(s=(t=>t)`: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:function(t,e,i){i.a(t,async function(t,s){try{i.r(e);i(18111),i(61701),i(3362),i(62953);var a=i(40445),r=i(5124),n=i(67576),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;let y,b,v,g,_,f=t=>t;const $="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",x="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 C extends r.WF{willUpdate(t){var e;(super.willUpdate(t),t.has("stateObj"))&&(this._mode=null===(e=this.stateObj)||void 0===e?void 0:e.attributes.mode)}render(){var t;if(!this.stateObj)return r.s6;const e=this.hass,i=this.stateObj,s=(0,o.$)(i,d.ye.MODES);return(0,r.qy)(y||(y=f` <div class="current"> ${0} </div> <div class="controls"> <ha-state-control-humidifier-humidity .hass="${0}" .stateObj="${0}"></ha-state-control-humidifier-humidity> </div> <ha-more-info-control-select-container> <ha-control-select-menu .hass="${0}" .label="${0}" .value="${0}" .disabled="${0}" -select="${0}" .options="${0}"> <ha-svg-icon slot="icon" .path="${0}"></ha-svg-icon> </ha-control-select-menu> ${0} </ha-more-info-control-select-container> `),null!=this.stateObj.attributes.current_humidity?(0,r.qy)(b||(b=f` <div> <p class="label"> ${0} </p> <p class="value"> ${0} </p> </div> `),this.hass.formatEntityAttributeName(this.stateObj,"current_humidity"),this.hass.formatEntityAttributeValue(this.stateObj,"current_humidity")):r.s6,this.hass,this.stateObj,e,this.hass.localize("ui.card.humidifier.state"),this.stateObj.state,this.stateObj.state===c.Hh,this._handleStateChanged,["off","on"].map(t=>({value:t,label:this.stateObj?this.hass.formatEntityState(this.stateObj,t):t})),$,s?(0,r.qy)(v||(v=f` <ha-control-select-menu .hass="${0}" .label="${0}" .value="${0}" .disabled="${0}" -select="${0}" .options="${0}" .renderIcon="${0}"> <ha-svg-icon slot="icon" .path="${0}"></ha-svg-icon> </ha-control-select-menu> `),e,e.localize("ui.card.humidifier.mode"),i.attributes.mode,this.stateObj.state===c.Hh,this._handleModeChanged,(null===(t=i.attributes.available_modes)||void 0===t?void 0:t.map(t=>({value:t,label:i?this.hass.formatEntityAttributeValue(i,"mode",t):t})))||[],this._renderModeIcon,x):r.s6)}_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,(0,r.AH)(g||(g=f`: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=>(0,r.qy)(_||(_=f`<ha-attribute-icon .hass="${0}" .stateObj="${0}" attribute="mode" .attributeValue="${0}"></ha-attribute-icon>`),this.hass,this.stateObj,t)}}(0,a.Cg)([(0,n.MZ)({attribute:!1})],C.prototype,"hass",void 0),(0,a.Cg)([(0,n.MZ)({attribute:!1})],C.prototype,"stateObj",void 0),(0,a.Cg)([(0,n.wk)()],C.prototype,"_mode",void 0),C=(0,a.Cg)([(0,n.EM)("more-info-humidifier")],C),s()}catch(y){s(y)}})},2276:function(t,e,i){i.a(t,async function(t,e){try{i(62953);var s=i(40445),a=i(5124),r=i(67576),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,y]);[d,m,y]=b.then?(await b)():b;let v,g,_,f,$,x,C,O,j,w,H,A,S,M,q,E=t=>t;const V="M19,13H5V11H19V13Z",I="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z",L="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",k="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 Z extends a.WF{willUpdate(t){super.willUpdate(t),t.has("stateObj")&&(this._targetHumidity=this.stateObj.attributes.humidity)}get _step(){var t;return null!==(t=this.stateObj.attributes.target_humidity_step)&&void 0!==t?t:1}get _min(){var t;return null!==(t=this.stateObj.attributes.min_humidity)&&void 0!==t?t:0}get _max(){var t;return null!==(t=this.stateObj.attributes.max_humidity)&&void 0!==t?t: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){var e;const i=t.currentTarget.step;let s=null!==(e=this._targetHumidity)&&void 0!==e?e:this._min;s+=i,s=(0,h.q)(s,this._min,this._max),this._targetHumidity=s,this._debouncedCallService()}_renderLabel(){if(this.stateObj.state===u.Hh)return(0,a.qy)(v||(v=E` <p class="label disabled"> ${0} </p> `),this.hass.formatEntityState(this.stateObj,u.Hh));const t=this.stateObj.attributes.action,e=null!=this.stateObj.attributes.current_humidity&&this.showCurrentAsPrimary||null!=this._targetHumidity&&!this.showCurrentAsPrimary;return(0,a.qy)(g||(g=E` <p class="label"> ${0} </p> `),t&&"off"!==t?this.hass.formatEntityAttributeValue(this.stateObj,"action"):e?this.hass.formatEntityState(this.stateObj):a.s6)}_renderButtons(){return(0,a.qy)(_||(_=E` <div class="buttons"> <ha-outlined-icon-button .step="${0}" ="${0}"> <ha-svg-icon .path="${0}"></ha-svg-icon> </ha-outlined-icon-button> <ha-outlined-icon-button .step="${0}" ="${0}"> <ha-svg-icon .path="${0}"></ha-svg-icon> </ha-outlined-icon-button> </div> `),-this._step,this._handleButton,V,this._step,this._handleButton,I)}_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?(0,a.qy)(f||(f=E` <p class="primary-state"> ${0} </p> `),this.hass.formatEntityState(this.stateObj)):a.s6:this._renderTarget(this._targetHumidity,"big")}_renderSecondary(){if(!this.showSecondary)return(0,a.qy)($||($=E`<p class="label"></p>`));const t=this.stateObj.attributes.current_humidity;return null==t||this.showCurrentAsPrimary?null!=this._targetHumidity&&this.showCurrentAsPrimary?(0,a.qy)(C||(C=E` <p class="label"> <ha-svg-icon .path="${0}"></ha-svg-icon> ${0} </p> `),L,this._renderCurrent(this._targetHumidity,"normal")):(0,a.qy)(O||(O=E`<p class="label"></p>`)):(0,a.qy)(x||(x=E` <p class="label"> <ha-svg-icon .path="${0}"></ha-svg-icon> ${0} </p> `),k,this._renderCurrent(t,"normal"))}_renderTarget(t,e){const i={maximumFractionDigits:0};return"big"===e?(0,a.qy)(j||(j=E` <ha-big-number .value="${0}" .unit="${0}" .hass="${0}" .formatOptions="${0}" unit-position="bottom"></ha-big-number> `),t,m.rM.humidifier.current_humidity,this.hass,i):(0,a.qy)(w||(w=E` ${0} `),this.hass.formatEntityAttributeValue(this.stateObj,"humidity",t))}_renderCurrent(t,e){const i={maximumFractionDigits:1};return"big"===e?(0,a.qy)(H||(H=E` <ha-big-number .value="${0}" .unit="${0}" .hass="${0}" .formatOptions="${0}" unit-position="bottom"></ha-big-number> `),t,m.rM.humidifier.current_humidity,this.hass,i):(0,a.qy)(A||(A=E` ${0} `),this.hass.formatEntityAttributeValue(this.stateObj,"current_humidity",t))}_renderInfo(){return(0,a.qy)(S||(S=E` <div class="info"> ${0}${0}${0} </div> `),this._renderLabel(),this._renderPrimary(),this._renderSecondary())}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(0,a.qy)(M||(M=E` <div class="container${0}" style="${0}"> <ha-control-circular-slider .preventInteractionOnScroll="${0}" .inactive="${0}" .mode="${0}" .value="${0}" .min="${0}" .max="${0}" .step="${0}" .current="${0}" -changed="${0}" -changing="${0}"> </ha-control-circular-slider> ${0} ${0} </div> `),c,(0,n.W)({"--state-color":t,"--action-color":s}),this.preventInteractionOnScroll,!e,i?"end":"start",r,this._min,this._max,this._step,h,this._valueChanged,this._valueChanging,this._renderInfo(),this._renderButtons())}return(0,a.qy)(q||(q=E` <div class="container${0}" style="${0}"> <ha-control-circular-slider .preventInteractionOnScroll="${0}" .current="${0}" .min="${0}" .max="${0}" .step="${0}" disabled="disabled"> </ha-control-circular-slider> ${0} </div> `),c,(0,n.W)({"--state-color":t,"--action-color":s}),this.preventInteractionOnScroll,h,this._min,this._max,this._step,this._renderInfo())}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})],Z.prototype,"hass",void 0),(0,s.Cg)([(0,r.MZ)({attribute:!1})],Z.prototype,"stateObj",void 0),(0,s.Cg)([(0,r.MZ)({attribute:"show-secondary",type:Boolean})],Z.prototype,"showSecondary",void 0),(0,s.Cg)([(0,r.MZ)({attribute:"use-current-as-primary",type:Boolean})],Z.prototype,"showCurrentAsPrimary",void 0),(0,s.Cg)([(0,r.MZ)({type:Boolean,attribute:"prevent-interaction-on-scroll"})],Z.prototype,"preventInteractionOnScroll",void 0),(0,s.Cg)([(0,r.wk)()],Z.prototype,"_targetHumidity",void 0),Z=(0,s.Cg)([(0,r.EM)("ha-state-control-humidifier-humidity")],Z),e()}catch(v){e(v)}})}}]);