UNPKG

iobroker.lovelace

Version:

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

1 lines 2.6 kB
"use strict";(self.rspackChunkhome_assistant_frontend=self.rspackChunkhome_assistant_frontend||[]).push([[87764],{5023:function(t,i,o){o.r(i),o.d(i,{HuiToggleGroupCard:function(){return d}});o(16280),o(18111),o(22489),o(61701);var e=o(40445),n=o(5124),s=o(67576),r=o(89784),a=o(78870),c=o(71727),l=o(47129),h=o(52658),g=(o(76776),o(22573),o(80933),o(32248),o(88360));let _,u,f=t=>t;class d extends n.WF{setConfig(t){var i;if(null===(i=t.entities)||void 0===i||!i.length)throw new Error("Entities are required");this._config=t}getCardSize(){var t;return null!==(t=this._config)&&void 0!==t&&t.vertical?2:1}getGridOptions(){var t;let i=1,o=6;return null!==(t=this._config)&&void 0!==t&&t.vertical&&(i++,o=3),{columns:6,rows:i,min_columns:o,min_rows:i}}_getOnEntities(){return this.hass&&this._config?this._config.entities.map(t=>this.hass.states[t]).filter(t=>void 0!==t&&(0,l.a)(t)):[]}_computeColor(){if(!this._config||!this.hass)return;const t=this._getOnEntities();return 0!==t.length?this._config.color?(0,a.MP)(this._config.color):(0,h.Se)(t[0]):void 0}_computeLabel(){if(!this.hass||!this._config)return"";const t=this._getOnEntities().length,i=this._config.entities.length;return 0===t?this.hass.localize("ui.card.toggle-group.all_off"):t===i?this.hass.localize("ui.card.toggle-group.all_on"):this.hass.localize("ui.card.toggle-group.some_on",{on_count:t,total_count:i})}_handleTap(){if(!this.hass||!this._config)return;const t=this._getOnEntities(),i=(0,c.m)(this._config.entities[0]);let o;o="cover"===i?t.length>0?"close_cover":"open_cover":t.length>0?"turn_off":"turn_on",this.hass.callService(i,o,{entity_id:this._config.entities}),(0,g.j)(this,"light")}render(){if(!this._config||!this.hass)return n.s6;const t={"--tile-color":this._computeColor()},i=this._computeLabel(),o=this._config.title||i,e=this._config.title?i:void 0;return(0,n.qy)(_||(_=f` <ha-card style="${0}"> <ha-tile-container .vertical="${0}"> <ha-tile-icon slot="icon" icon="mdi:power" .interactive="${0}" @action="${0}"></ha-tile-icon> <ha-tile-info slot="info" .primary="${0}" .secondary="${0}"></ha-tile-info> </ha-tile-container> </ha-card> `),(0,r.W)(t),Boolean(this._config.vertical),!0,this._handleTap,o,e)}}d.styles=(0,n.AH)(u||(u=f`:host{--tile-color:var(--state-inactive-color)}ha-card{background:0 0;backdrop-filter:none;-webkit-backdrop-filter:none;border:none;box-shadow:none;height:100%}ha-tile-icon{--tile-icon-color:var(--tile-color)}`)),(0,e.Cg)([(0,s.MZ)({attribute:!1})],d.prototype,"hass",void 0),(0,e.Cg)([(0,s.wk)()],d.prototype,"_config",void 0),d=(0,e.Cg)([(0,s.EM)("hui-toggle-group-card")],d)}}]);