iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
1 lines • 10.6 kB
JavaScript
export const __rspack_esm_id=38861;export const __rspack_esm_ids=[38861];export const __webpack_modules__={86145(t,i,e){e.a(t,async function(t,s){try{e.r(i),e.d(i,{HuiHumidifierCard:()=>f});var r=e(62826),n=e(88696),a=e(5124),o=e(22441),h=e(89784),c=e(42372),l=e(1087),u=e(52658),d=(e(76776),e(26300)),m=e(2276),y=e(32359),p=e(13632),_=e(85979),g=t([d,m,y,_]);[d,m,y,_]=g.then?(await g)():g;const b="M12,16A2,2 0 0,1 14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18A2,2 0 0,1 12,16M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8A2,2 0 0,1 10,6A2,2 0 0,1 12,4Z";class f extends a.WF{static async getConfigElement(){return await Promise.all([e.e(64442),e.e(35881)]).then(e.bind(e,37808)),document.createElement("hui-humidifier-card-editor")}static getStubConfig(t,i,e){return{type:"humidifier",entity:(0,p.B)(t,1,i,e,["humidifier"])[0]||"",features:[{type:"humidifier-toggle"}]}}getCardSize(){return 7}setConfig(t){if(!t.entity||"humidifier"!==t.entity.split(".")[0])throw new Error("Specify an entity from within the humidifier domain");this._config=t,this._featureContext={entity_id:t.entity}}_handleMoreInfo(){(0,l.r)(this,"hass-more-info",{entityId:this._config.entity})}updated(t){if(super.updated(t),!this._config||!this.hass||!t.has("hass")&&!t.has("_config"))return;const i=t.get("hass"),e=t.get("_config");i&&e&&i.themes===this.hass.themes&&e.theme===this._config.theme||(0,c.Q)(this,this.hass.themes,this._config.theme)}render(){if(!this.hass||!this._config)return a.s6;const t=this.hass.states[this._config.entity];if(!t)return a.qy` <hui-warning .hass="${this.hass}"> ${(0,_.j)(this.hass,this._config.entity)} </hui-warning> `;const i=this.hass.formatEntityName(t,this._config.name),e=(0,u.Se)(t),s=this._resizeController.value?`${this._resizeController.value}px`:void 0;return a.qy` <ha-card> <p class="title">${i}</p> <div class="container"> <ha-state-control-humidifier-humidity style="${(0,h.W)({maxWidth:s})}" prevent-interaction-on-scroll .showCurrentAsPrimary="${this._config.show_current_as_primary}" show-secondary .hass="${this.hass}" .stateObj="${t}"></ha-state-control-humidifier-humidity> </div> <ha-icon-button class="more-info" .label="${this.hass.localize("ui.panel.lovelace.cards.show_more_info")}" .path="${b}" ="${this._handleMoreInfo}" tabindex="0"></ha-icon-button> ${this._config.features?.length?a.qy`<hui-card-features style="${(0,h.W)({"--feature-color":e})}" .hass="${this.hass}" .context="${this._featureContext}" .features="${this._config.features}"></hui-card-features>`:a.s6} </ha-card> `}getGridOptions(){let t=5,i=2;if(this._config?.features?.length){const e=Math.ceil(2*this._config.features.length/3);t+=e,i+=e}return{columns:12,rows:t,min_columns:6,min_rows:i}}constructor(...t){super(...t),this._resizeController=new n.P(this,{callback:t=>{const i=t[0]?.target.shadowRoot?.querySelector(".container");return i?.clientHeight}}),this._featureContext={}}}f.styles=a.AH`:host{position:relative;display:block;height:100%}ha-card{position:relative;height:100%;width:100%;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:space-between}.title{width:100%;font-size:var(--ha-font-size-l);line-height:var(--ha-line-height-expanded);padding:8px 30px 8px 30px;margin:0;text-align:center;box-sizing:border-box;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:none}.container{display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;max-width:100%;box-sizing:border-box;flex:1}.container:before{content:"";display:block;padding-top:100%}.container>*{padding:8px}.more-info{position:absolute;cursor:pointer;top:0;right:0;inset-inline-end:0px;inset-inline-start:initial;border-radius:var(--ha-border-radius-pill);color:var(--secondary-text-color);direction:var(--direction)}hui-card-features{width:100%;flex:none;padding:0 12px 12px 12px}`,(0,r.Cg)([(0,o.MZ)({attribute:!1})],f.prototype,"hass",void 0),(0,r.Cg)([(0,o.wk)()],f.prototype,"_config",void 0),(0,r.Cg)([(0,o.wk)()],f.prototype,"_featureContext",void 0),f=(0,r.Cg)([(0,o.EM)("hui-humidifier-card")],f),s()}catch(t){s(t)}})},2276(t,i,e){e.a(t,async function(t,i){try{var s=e(62826),r=e(5124),n=e(22441),a=e(89784),o=e(47129),h=e(52658),c=e(63004),l=e(9899),u=e(32074),d=(e(97955),e(8889),e(67094),e(22675)),m=e(88827),y=e(84610),p=e(17392),_=t([u,m]);[u,m]=_.then?(await _)():_;const g="M19,13H5V11H19V13Z",b="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z",f="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",v="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 $ extends r.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:i}=t.detail;"number"!=typeof i||isNaN(i)||(this._targetHumidity=i,this._callService())}_valueChanging(t){const{value:i}=t.detail;"number"!=typeof i||isNaN(i)||(this._targetHumidity=i)}_callService(){this.hass.callService("humidifier","set_humidity",{entity_id:this.stateObj.entity_id,humidity:this._targetHumidity})}_handleButton(t){const i=t.currentTarget.step;let e=this._targetHumidity??this._min;e+=i,e=(0,c.q)(e,this._min,this._max),this._targetHumidity=e,this._debouncedCallService()}_renderLabel(){if(this.stateObj.state===d.Hh)return r.qy` <p class="label disabled"> ${this.hass.formatEntityState(this.stateObj,d.Hh)} </p> `;const t=this.stateObj.attributes.action,i=null!=this.stateObj.attributes.current_humidity&&this.showCurrentAsPrimary||null!=this._targetHumidity&&!this.showCurrentAsPrimary;return r.qy` <p class="label"> ${t&&"off"!==t?this.hass.formatEntityAttributeValue(this.stateObj,"action"):i?this.hass.formatEntityState(this.stateObj):r.s6} </p> `}_renderButtons(){return r.qy` <div class="buttons"> <ha-outlined-icon-button .step="${-this._step}" ="${this._handleButton}"> <ha-svg-icon .path="${g}"></ha-svg-icon> </ha-outlined-icon-button> <ha-outlined-icon-button .step="${this._step}" ="${this._handleButton}"> <ha-svg-icon .path="${b}"></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!==d.Hh?r.qy` <p class="primary-state"> ${this.hass.formatEntityState(this.stateObj)} </p> `:r.s6:this._renderTarget(this._targetHumidity,"big")}_renderSecondary(){if(!this.showSecondary)return r.qy`<p class="label"></p>`;const t=this.stateObj.attributes.current_humidity;return null==t||this.showCurrentAsPrimary?null!=this._targetHumidity&&this.showCurrentAsPrimary?r.qy` <p class="label"> <ha-svg-icon .path="${f}"></ha-svg-icon> ${this._renderCurrent(this._targetHumidity,"normal")} </p> `:r.qy`<p class="label"></p>`:r.qy` <p class="label"> <ha-svg-icon .path="${v}"></ha-svg-icon> ${this._renderCurrent(t,"normal")} </p> `}_renderTarget(t,i){const e={maximumFractionDigits:0};return"big"===i?r.qy` <ha-big-number .value="${t}" .unit="${m.rM.humidifier.current_humidity}" .hass="${this.hass}" .formatOptions="${e}" unit-position="bottom"></ha-big-number> `:r.qy` ${this.hass.formatEntityAttributeValue(this.stateObj,"humidity",t)} `}_renderCurrent(t,i){const e={maximumFractionDigits:1};return"big"===i?r.qy` <ha-big-number .value="${t}" .unit="${m.rM.humidifier.current_humidity}" .hass="${this.hass}" .formatOptions="${e}" unit-position="bottom"></ha-big-number> `:r.qy` ${this.hass.formatEntityAttributeValue(this.stateObj,"current_humidity",t)} `}_renderInfo(){return r.qy` <div class="info"> ${this._renderLabel()}${this._renderPrimary()}${this._renderSecondary()} </div> `}render(){const t=(0,h.Se)(this.stateObj),i=(0,o.a)(this.stateObj),e=this.stateObj.attributes.action;let s;e&&"idle"!==e&&"off"!==e&&i&&(s=(0,h.Se)(this.stateObj,y.i5[e]));const n=this._targetHumidity,c=this.stateObj.attributes.current_humidity,l=this._sizeController.value?` ${this._sizeController.value}`:"";if(null!=n&&this.stateObj.state!==d.Hh){const e=this.stateObj.attributes.device_class===y.C6.DEHUMIDIFIER;return r.qy` <div class="container${l}" style="${(0,a.W)({"--state-color":t,"--action-color":s})}"> <ha-control-circular-slider .preventInteractionOnScroll="${this.preventInteractionOnScroll}" .inactive="${!i}" .mode="${e?"end":"start"}" .value="${n}" .min="${this._min}" .max="${this._max}" .step="${this._step}" .current="${c}" -changed="${this._valueChanged}" -changing="${this._valueChanging}"> </ha-control-circular-slider> ${this._renderInfo()} ${this._renderButtons()} </div> `}return r.qy` <div class="container${l}" style="${(0,a.W)({"--state-color":t,"--action-color":s})}"> <ha-control-circular-slider .preventInteractionOnScroll="${this.preventInteractionOnScroll}" .current="${c}" .min="${this._min}" .max="${this._max}" .step="${this._step}" disabled="disabled"> </ha-control-circular-slider> ${this._renderInfo()} </div> `}static get styles(){return p.Y}constructor(...t){super(...t),this.showSecondary=!1,this.showCurrentAsPrimary=!1,this.preventInteractionOnScroll=!1,this._sizeController=(0,p.H)(this),this._debouncedCallService=(0,l.s)(()=>this._callService(),1e3)}}(0,s.Cg)([(0,n.MZ)({attribute:!1})],$.prototype,"hass",void 0),(0,s.Cg)([(0,n.MZ)({attribute:!1})],$.prototype,"stateObj",void 0),(0,s.Cg)([(0,n.MZ)({attribute:"show-secondary",type:Boolean})],$.prototype,"showSecondary",void 0),(0,s.Cg)([(0,n.MZ)({attribute:"use-current-as-primary",type:Boolean})],$.prototype,"showCurrentAsPrimary",void 0),(0,s.Cg)([(0,n.MZ)({type:Boolean,attribute:"prevent-interaction-on-scroll"})],$.prototype,"preventInteractionOnScroll",void 0),(0,s.Cg)([(0,n.wk)()],$.prototype,"_targetHumidity",void 0),$=(0,s.Cg)([(0,n.EM)("ha-state-control-humidifier-humidity")],$),i()}catch(t){i(t)}})}};