UNPKG

iobroker.lovelace

Version:

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

2 lines 11.5 kB
export const __webpack_ids__=["6892"];export const __webpack_modules__={18344:function(t,e,i){i.a(t,(async function(t,n){try{i.r(e),i.d(e,{HuiHumidifierCard:()=>g});var s=i(44249),r=i(72621),a=i(18672),o=i(57243),h=i(15093),d=i(69634),u=i(82393),l=i(36522),c=i(47194),y=i(42818),m=(i(54977),i(23334),i(12243)),f=i(64349),_=i(69223),b=i(62577),v=t([m,f]);[m,f]=v.then?(await v)():v;const p="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";let g=(0,s.Z)([(0,h.Mo)("hui-humidifier-card")],(function(t,e){class n extends e{constructor(...e){super(...e),t(this)}}return{F:n,d:[{kind:"field",key:"_resizeController",value(){return new a.Z(this,{callback:t=>{const e=t[0]?.target.shadowRoot?.querySelector(".container");return e?.clientHeight}})}},{kind:"method",static:!0,key:"getConfigElement",value:async function(){return await Promise.all([i.e("40955"),i.e("41437")]).then(i.bind(i,16273)),document.createElement("hui-humidifier-card-editor")}},{kind:"method",static:!0,key:"getStubConfig",value:function(t,e,i){return{type:"humidifier",entity:(0,_.j)(t,1,e,i,["humidifier"])[0]||"",features:[{type:"humidifier-toggle"}]}}},{kind:"field",decorators:[(0,h.Cb)({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[(0,h.SB)()],key:"_config",value:void 0},{kind:"method",key:"getCardSize",value:function(){return 7}},{kind:"method",key:"setConfig",value:function(t){if(!t.entity||"humidifier"!==t.entity.split(".")[0])throw new Error("Specify an entity from within the humidifier domain");this._config=t}},{kind:"method",key:"_handleMoreInfo",value:function(){(0,l.B)(this,"hass-more-info",{entityId:this._config.entity})}},{kind:"method",key:"updated",value:function(t){if((0,r.Z)(n,"updated",this,3)([t]),!this._config||!this.hass||!t.has("hass")&&!t.has("_config"))return;const e=t.get("hass"),i=t.get("_config");e&&i&&e.themes===this.hass.themes&&i.theme===this._config.theme||(0,u.R)(this,this.hass.themes,this._config.theme)}},{kind:"method",key:"render",value:function(){if(!this.hass||!this._config)return o.Ld;const t=this.hass.states[this._config.entity];if(!t)return o.dy` <hui-warning> ${(0,b.i)(this.hass,this._config.entity)} </hui-warning> `;const e=this._config.name||(0,c.C)(t),i=(0,y.Hh)(t),n=this._resizeController.value?`${this._resizeController.value}px`:void 0;return o.dy` <ha-card> <p class="title">${e}</p> <div class="container"> <ha-state-control-humidifier-humidity style="${(0,d.V)({maxWidth:n})}" 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="${p}" @click="${this._handleMoreInfo}" tabindex="0"></ha-icon-button> ${this._config.features?.length?o.dy`<hui-card-features style="${(0,d.V)({"--feature-color":i})}" .hass="${this.hass}" .stateObj="${t}" .features="${this._config.features}"></hui-card-features>`:o.Ld} </ha-card> `}},{kind:"method",key:"getGridOptions",value:function(){let t=5,e=2;if(this._config?.features?.length){const i=Math.ceil(2*this._config.features.length/3);t+=i,e+=i}return{columns:12,rows:t,min_columns:6,min_rows:e}}},{kind:"field",static:!0,key:"styles",value:()=>o.iv`: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:18px;line-height:36px;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:100%;color:var(--secondary-text-color);direction:var(--direction)}hui-card-features{width:100%;flex:none;padding:0 12px 12px 12px}`}]}}),o.oi);n()}catch(t){n(t)}}))},12243:function(t,e,i){i.a(t,(async function(t,e){try{var n=i(44249),s=i(72621),r=i(57243),a=i(15093),o=i(69634),h=i(5839),d=i(42818),u=i(34593),l=i(22381),c=i(1703),y=(i(5906),i(75138),i(37583),i(96194)),m=i(59519),f=i(97419),_=i(3015),b=t([c,m]);[c,m]=b.then?(await b)():b;const v="M19,13H5V11H19V13Z",p="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z",g="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";(0,n.Z)([(0,a.Mo)("ha-state-control-humidifier-humidity")],(function(t,e){class i extends e{constructor(...e){super(...e),t(this)}}return{F:i,d:[{kind:"field",decorators:[(0,a.Cb)({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[(0,a.Cb)({attribute:!1})],key:"stateObj",value:void 0},{kind:"field",decorators:[(0,a.Cb)({attribute:"show-secondary",type:Boolean})],key:"showSecondary",value:()=>!1},{kind:"field",decorators:[(0,a.Cb)({attribute:"use-current-as-primary",type:Boolean})],key:"showCurrentAsPrimary",value:()=>!1},{kind:"field",decorators:[(0,a.Cb)({type:Boolean,attribute:"prevent-interaction-on-scroll"})],key:"preventInteractionOnScroll",value:()=>!1},{kind:"field",decorators:[(0,a.SB)()],key:"_targetHumidity",value:void 0},{kind:"field",key:"_sizeController",value(){return(0,_.$)(this)}},{kind:"method",key:"willUpdate",value:function(t){(0,s.Z)(i,"willUpdate",this,3)([t]),t.has("stateObj")&&(this._targetHumidity=this.stateObj.attributes.humidity)}},{kind:"field",key:"_step",value:()=>1},{kind:"get",key:"_min",value:function(){return this.stateObj.attributes.min_humidity??0}},{kind:"get",key:"_max",value:function(){return this.stateObj.attributes.max_humidity??100}},{kind:"method",key:"_valueChanged",value:function(t){const e=t.detail.value;isNaN(e)||(this._targetHumidity=e,this._callService())}},{kind:"method",key:"_valueChanging",value:function(t){const e=t.detail.value;isNaN(e)||(this._targetHumidity=e)}},{kind:"field",key:"_debouncedCallService",value(){return(0,l.D)((()=>this._callService()),1e3)}},{kind:"method",key:"_callService",value:function(){this.hass.callService("humidifier","set_humidity",{entity_id:this.stateObj.entity_id,humidity:this._targetHumidity})}},{kind:"method",key:"_handleButton",value:function(t){const e=t.currentTarget.step;let i=this._targetHumidity??this._min;i+=e,i=(0,u.u)(i,this._min,this._max),this._targetHumidity=i,this._debouncedCallService()}},{kind:"method",key:"_renderLabel",value:function(){if(this.stateObj.state===y.nZ)return r.dy` <p class="label disabled"> ${this.hass.formatEntityState(this.stateObj,y.nZ)} </p> `;const t=this.stateObj.attributes.action,e=null!=this.stateObj.attributes.current_humidity&&this.showCurrentAsPrimary||null!=this._targetHumidity&&!this.showCurrentAsPrimary;return r.dy` <p class="label"> ${t&&"off"!==t?this.hass.formatEntityAttributeValue(this.stateObj,"action"):e?this.hass.formatEntityState(this.stateObj):r.Ld} </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="${v}"></ha-svg-icon> </ha-outlined-icon-button> <ha-outlined-icon-button .step="${this._step}" @click="${this._handleButton}"> <ha-svg-icon .path="${p}"></ha-svg-icon> </ha-outlined-icon-button> </div> `}},{kind:"method",key:"_renderPrimary",value:function(){const t=this.stateObj.attributes.current_humidity;return null!=t&&this.showCurrentAsPrimary?this._renderCurrent(t,"big"):null==this._targetHumidity||this.showCurrentAsPrimary?this.stateObj.state!==y.nZ?r.dy` <p class="primary-state"> ${this.hass.formatEntityState(this.stateObj)} </p> `:r.Ld:this._renderTarget(this._targetHumidity,"big")}},{kind:"method",key:"_renderSecondary",value:function(){if(!this.showSecondary)return r.dy`<p class="label"></p>`;const t=this.stateObj.attributes.current_humidity;return null==t||this.showCurrentAsPrimary?null!=this._targetHumidity&&this.showCurrentAsPrimary?r.dy` <p class="label"> <ha-svg-icon .path="${g}"></ha-svg-icon> ${this._renderCurrent(this._targetHumidity,"normal")} </p> `:r.dy`<p class="label"></p>`:r.dy` <p class="label"> <ha-svg-icon .path="${k}"></ha-svg-icon> ${this._renderCurrent(t,"normal")} </p> `}},{kind:"method",key:"_renderTarget",value:function(t,e){const i={maximumFractionDigits:0};return"big"===e?r.dy` <ha-big-number .value="${t}" .unit="${m.F_.humidifier.current_humidity}" .hass="${this.hass}" .formatOptions="${i}" unit-position="bottom"></ha-big-number> `:r.dy` ${this.hass.formatEntityAttributeValue(this.stateObj,"humidity",t)} `}},{kind:"method",key:"_renderCurrent",value:function(t,e){const i={maximumFractionDigits:1};return"big"===e?r.dy` <ha-big-number .value="${t}" .unit="${m.F_.humidifier.current_humidity}" .hass="${this.hass}" .formatOptions="${i}" unit-position="bottom"></ha-big-number> `:r.dy` ${this.hass.formatEntityAttributeValue(this.stateObj,"current_humidity",t)} `}},{kind:"method",key:"_renderInfo",value:function(){return r.dy` <div class="info"> ${this._renderLabel()}${this._renderPrimary()}${this._renderSecondary()} </div> `}},{kind:"method",key:"render",value:function(){const t=(0,d.Hh)(this.stateObj),e=(0,h.v)(this.stateObj),i=this.stateObj.attributes.action;let n;i&&"idle"!==i&&"off"!==i&&e&&(n=(0,d.Hh)(this.stateObj,f.Sp[i]));const s=this._targetHumidity,a=this.stateObj.attributes.current_humidity,u=this._sizeController.value?` ${this._sizeController.value}`:"";if(null!=s&&this.stateObj.state!==y.nZ){const i=this.stateObj.attributes.device_class===f.Qr.DEHUMIDIFIER;return r.dy` <div class="container${u}" style="${(0,o.V)({"--state-color":t,"--action-color":n})}"> <ha-control-circular-slider .preventInteractionOnScroll="${this.preventInteractionOnScroll}" .inactive="${!e}" .mode="${i?"end":"start"}" .value="${s}" .min="${this._min}" .max="${this._max}" .step="${this._step}" .current="${a}" @value-changed="${this._valueChanged}" @value-changing="${this._valueChanging}"> </ha-control-circular-slider> ${this._renderInfo()} ${this._renderButtons()} </div> `}return r.dy` <div class="container${u}" style="${(0,o.V)({"--state-color":t,"--action-color":n})}"> <ha-control-circular-slider .preventInteractionOnScroll="${this.preventInteractionOnScroll}" .current="${a}" .min="${this._min}" .max="${this._max}" .step="${this._step}" disabled="disabled"> </ha-control-circular-slider> ${this._renderInfo()} </div> `}},{kind:"get",static:!0,key:"styles",value:function(){return _.r}}]}}),r.oi);e()}catch(t){e(t)}}))}}; //# sourceMappingURL=6892.caf1aa13dabd3778.js.map