UNPKG

iobroker.lovelace

Version:

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

1 lines 11.4 kB
"use strict";(self.rspackChunkhome_assistant_frontend=self.rspackChunkhome_assistant_frontend||[]).push([[38861],{86145:function(t,i,e){e.a(t,async function(t,s){try{e.r(i),e.d(i,{HuiHumidifierCard:function(){return x}});e(16280),e(3362),e(62953);var r=e(40445),n=e(88696),a=e(5124),o=e(67576),h=e(89784),l=e(42372),u=e(1087),c=e(52658),d=(e(76776),e(26300)),m=e(2276),y=e(32359),p=e(13632),_=e(85979),g=t([d,m,y,_,n]);[d,m,y,_,n]=g.then?(await g)():g;let f,b,v,$,C=t=>t;const w="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 x 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,u.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,l.Q)(this,this.hass.themes,this._config.theme)}render(){var t;if(!this.hass||!this._config)return a.s6;const i=this.hass.states[this._config.entity];if(!i)return(0,a.qy)(f||(f=C` <hui-warning .hass="${0}"> ${0} </hui-warning> `),this.hass,(0,_.j)(this.hass,this._config.entity));const e=this.hass.formatEntityName(i,this._config.name),s=(0,c.Se)(i),r=this._resizeController.value?`${this._resizeController.value}px`:void 0;return(0,a.qy)(b||(b=C` <ha-card> <p class="title">${0}</p> <div class="container"> <ha-state-control-humidifier-humidity style="${0}" prevent-interaction-on-scroll .showCurrentAsPrimary="${0}" show-secondary .hass="${0}" .stateObj="${0}"></ha-state-control-humidifier-humidity> </div> <ha-icon-button class="more-info" .label="${0}" .path="${0}" @click="${0}" tabindex="0"></ha-icon-button> ${0} </ha-card> `),e,(0,h.W)({maxWidth:r}),this._config.show_current_as_primary,this.hass,i,this.hass.localize("ui.panel.lovelace.cards.show_more_info"),w,this._handleMoreInfo,null!==(t=this._config.features)&&void 0!==t&&t.length?(0,a.qy)(v||(v=C`<hui-card-features style="${0}" .hass="${0}" .context="${0}" .features="${0}"></hui-card-features>`),(0,h.W)({"--feature-color":s}),this.hass,this._featureContext,this._config.features):a.s6)}getGridOptions(){var t;let i=5,e=2;if(null!==(t=this._config)&&void 0!==t&&null!==(t=t.features)&&void 0!==t&&t.length){const t=Math.ceil(2*this._config.features.length/3);i+=t,e+=t}return{columns:12,rows:i,min_columns:6,min_rows:e}}constructor(...t){super(...t),this._resizeController=new n.P(this,{callback:t=>{var i;const e=null===(i=t[0])||void 0===i||null===(i=i.target.shadowRoot)||void 0===i?void 0:i.querySelector(".container");return null==e?void 0:e.clientHeight}}),this._featureContext={}}}x.styles=(0,a.AH)($||($=C`: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})],x.prototype,"hass",void 0),(0,r.Cg)([(0,o.wk)()],x.prototype,"_config",void 0),(0,r.Cg)([(0,o.wk)()],x.prototype,"_featureContext",void 0),x=(0,r.Cg)([(0,o.EM)("hui-humidifier-card")],x),s()}catch(f){s(f)}})},2276:function(t,i,e){e.a(t,async function(t,i){try{e(62953);var s=e(40445),r=e(5124),n=e(67576),a=e(89784),o=e(47129),h=e(52658),l=e(63004),u=e(9899),c=e(32074),d=(e(97955),e(8889),e(67094),e(22675)),m=e(88827),y=e(84610),p=e(17392),_=t([c,m,p]);[c,m,p]=_.then?(await _)():_;let g,f,b,v,$,C,w,x,A,O,H,j,S,M,q,I=t=>t;const E="M19,13H5V11H19V13Z",k="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z",P="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",z="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 V extends r.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: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){var i;const e=t.currentTarget.step;let s=null!==(i=this._targetHumidity)&&void 0!==i?i:this._min;s+=e,s=(0,l.q)(s,this._min,this._max),this._targetHumidity=s,this._debouncedCallService()}_renderLabel(){if(this.stateObj.state===d.Hh)return(0,r.qy)(g||(g=I` <p class="label disabled"> ${0} </p> `),this.hass.formatEntityState(this.stateObj,d.Hh));const t=this.stateObj.attributes.action,i=null!=this.stateObj.attributes.current_humidity&&this.showCurrentAsPrimary||null!=this._targetHumidity&&!this.showCurrentAsPrimary;return(0,r.qy)(f||(f=I` <p class="label"> ${0} </p> `),t&&"off"!==t?this.hass.formatEntityAttributeValue(this.stateObj,"action"):i?this.hass.formatEntityState(this.stateObj):r.s6)}_renderButtons(){return(0,r.qy)(b||(b=I` <div class="buttons"> <ha-outlined-icon-button .step="${0}" @click="${0}"> <ha-svg-icon .path="${0}"></ha-svg-icon> </ha-outlined-icon-button> <ha-outlined-icon-button .step="${0}" @click="${0}"> <ha-svg-icon .path="${0}"></ha-svg-icon> </ha-outlined-icon-button> </div> `),-this._step,this._handleButton,E,this._step,this._handleButton,k)}_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?(0,r.qy)(v||(v=I` <p class="primary-state"> ${0} </p> `),this.hass.formatEntityState(this.stateObj)):r.s6:this._renderTarget(this._targetHumidity,"big")}_renderSecondary(){if(!this.showSecondary)return(0,r.qy)($||($=I`<p class="label"></p>`));const t=this.stateObj.attributes.current_humidity;return null==t||this.showCurrentAsPrimary?null!=this._targetHumidity&&this.showCurrentAsPrimary?(0,r.qy)(w||(w=I` <p class="label"> <ha-svg-icon .path="${0}"></ha-svg-icon> ${0} </p> `),P,this._renderCurrent(this._targetHumidity,"normal")):(0,r.qy)(x||(x=I`<p class="label"></p>`)):(0,r.qy)(C||(C=I` <p class="label"> <ha-svg-icon .path="${0}"></ha-svg-icon> ${0} </p> `),z,this._renderCurrent(t,"normal"))}_renderTarget(t,i){const e={maximumFractionDigits:0};return"big"===i?(0,r.qy)(A||(A=I` <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,e):(0,r.qy)(O||(O=I` ${0} `),this.hass.formatEntityAttributeValue(this.stateObj,"humidity",t))}_renderCurrent(t,i){const e={maximumFractionDigits:1};return"big"===i?(0,r.qy)(H||(H=I` <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,e):(0,r.qy)(j||(j=I` ${0} `),this.hass.formatEntityAttributeValue(this.stateObj,"current_humidity",t))}_renderInfo(){return(0,r.qy)(S||(S=I` <div class="info"> ${0}${0}${0} </div> `),this._renderLabel(),this._renderPrimary(),this._renderSecondary())}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,l=this.stateObj.attributes.current_humidity,u=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(0,r.qy)(M||(M=I` <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}" @value-changed="${0}" @value-changing="${0}"> </ha-control-circular-slider> ${0} ${0} </div> `),u,(0,a.W)({"--state-color":t,"--action-color":s}),this.preventInteractionOnScroll,!i,e?"end":"start",n,this._min,this._max,this._step,l,this._valueChanged,this._valueChanging,this._renderInfo(),this._renderButtons())}return(0,r.qy)(q||(q=I` <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> `),u,(0,a.W)({"--state-color":t,"--action-color":s}),this.preventInteractionOnScroll,l,this._min,this._max,this._step,this._renderInfo())}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,u.s)(()=>this._callService(),1e3)}}(0,s.Cg)([(0,n.MZ)({attribute:!1})],V.prototype,"hass",void 0),(0,s.Cg)([(0,n.MZ)({attribute:!1})],V.prototype,"stateObj",void 0),(0,s.Cg)([(0,n.MZ)({attribute:"show-secondary",type:Boolean})],V.prototype,"showSecondary",void 0),(0,s.Cg)([(0,n.MZ)({attribute:"use-current-as-primary",type:Boolean})],V.prototype,"showCurrentAsPrimary",void 0),(0,s.Cg)([(0,n.MZ)({type:Boolean,attribute:"prevent-interaction-on-scroll"})],V.prototype,"preventInteractionOnScroll",void 0),(0,s.Cg)([(0,n.wk)()],V.prototype,"_targetHumidity",void 0),V=(0,s.Cg)([(0,n.EM)("ha-state-control-humidifier-humidity")],V),i()}catch(g){i(g)}})}}]);