iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
1 lines • 8.18 kB
JavaScript
"use strict";(self.rspackChunkhome_assistant_frontend=self.rspackChunkhome_assistant_frontend||[]).push([[46621],{45010:function(t,e,a){a.d(e,{U:function(){return i}});a(74423),a(18111),a(22489),a(61701),a(53921),a(62953);function i(t,e){const a=e.filter(e=>e in t).map(e=>[e,t[e]]),i=Object.entries(t).filter(([t])=>!e.includes(t));return Object.fromEntries([...a,...i])}},17100:function(t,e,a){a.a(t,async function(t,i){try{a.r(e),a.d(e,{HuiTileCardEditor:function(){return M},fieldOrder:function(){return z}});a(62953);var n=a(40445),o=a(5124),s=a(67576),c=a(22786),l=a(63533),r=a(1087),_=a(45010),u=(a(11382),a(52763)),h=(a(67094),a(999)),d=a(89969),f=a(91408),p=a(84698),m=a(44155),g=a(7382),b=a(16161),v=t([u,d,h,b]);[u,d,h,b]=v.then?(await v)():v;let y,C,$,H=t=>t;const k="M10,9A1,1 0 0,1 11,8A1,1 0 0,1 12,9V13.47L13.21,13.6L18.15,15.79C18.68,16.03 19,16.56 19,17.14V21.5C18.97,22.32 18.32,22.97 17.5,23H11C10.62,23 10.26,22.85 10,22.57L5.1,18.37L5.84,17.6C6.03,17.39 6.3,17.28 6.58,17.28H6.8L10,19V9M11,5A4,4 0 0,1 15,9C15,10.5 14.2,11.77 13,12.46V11.24C13.61,10.69 14,9.89 14,9A3,3 0 0,0 11,6A3,3 0 0,0 8,9C8,9.89 8.39,10.69 9,11.24V12.46C7.8,11.77 7,10.5 7,9A4,4 0 0,1 11,5Z",q="M19 3H5C3.9 3 3 3.9 3 5V19C3 20.1 3.9 21 5 21H19C20.1 21 21 20.1 21 19V5C21 3.9 20.1 3 19 3M7 7H9V9H7V7M7 11H9V13H7V11M7 15H9V17H7V15M17 17H11V15H17V17M17 13H11V11H17V13M17 9H11V7H17V9Z",x="M4,9H20V11H4V9M4,13H14V15H4V13Z",V=(0,l.kp)(p.H,(0,l.Ik)({entity:(0,l.lq)((0,l.Yj)()),name:(0,l.lq)(m.q),icon:(0,l.lq)((0,l.Yj)()),color:(0,l.lq)((0,l.Yj)()),show_entity_picture:(0,l.lq)((0,l.zM)()),hide_state:(0,l.lq)((0,l.zM)()),state_content:(0,l.lq)((0,l.KC)([(0,l.Yj)(),(0,l.YO)((0,l.Yj)())])),vertical:(0,l.lq)((0,l.zM)()),tap_action:(0,l.lq)(f.kn),hold_action:(0,l.lq)(f.kn),double_tap_action:(0,l.lq)(f.kn),icon_tap_action:(0,l.lq)(f.kn),icon_hold_action:(0,l.lq)(f.kn),icon_double_tap_action:(0,l.lq)(f.kn),features:(0,l.lq)((0,l.YO)((0,l.bz)())),features_position:(0,l.lq)((0,l.vP)(["bottom","inline"]))})),z=Object.keys(V.schema);class M extends o.WF{setConfig(t){(0,l.vA)(t,V),this._config=t}render(){var t,e,a,i,n;if(!this.hass||!this._config)return o.s6;const s=this._config.entity,c=this._schema(this.hass.localize,s,null!==(t=this._config.hide_state)&&void 0!==t&&t),l=null!==(e=this._config.vertical)&&void 0!==e&&e,r=this._featuresSchema(this.hass.localize,l),_=Object.assign(Object.assign({},this._config),{},{content_layout:l?"vertical":"horizontal"});_.features_position&&!l||(_.features_position="bottom");const u=this._featureContext(s),h=this._hasCompatibleFeatures(u),d=(null!==(a=null===(i=this._config.features)||void 0===i?void 0:i.length)&&void 0!==a?a:0)>0;return(0,o.qy)(y||(y=H` <ha-form .hass="${0}" .data="${0}" .schema="${0}" .computeLabel="${0}" .computeHelper="${0}" -changed="${0}"></ha-form> <ha-expansion-panel outlined> <ha-svg-icon slot="leading-icon" .path="${0}"></ha-svg-icon> <h3 slot="header"> ${0} </h3> <div class="content"> <hui-card-features-editor .hass="${0}" .context="${0}" .features="${0}" -changed="${0}" -detail-element="${0}"></hui-card-features-editor> ${0} </div> </ha-expansion-panel> `),this.hass,_,c,this._computeLabelCallback,this._computeHelperCallback,this._valueChanged,q,this.hass.localize("ui.panel.lovelace.editor.card.generic.features"),this.hass,u,null!==(n=this._config.features)&&void 0!==n?n:[],this._featuresChanged,this._editDetailElement,h&&d?(0,o.qy)(C||(C=H` <ha-form class="features-form" .hass="${0}" .data="${0}" .schema="${0}" .computeLabel="${0}" .computeHelper="${0}" -changed="${0}"></ha-form> `),this.hass,_,r,this._computeLabelCallback,this._computeHelperCallback,this._valueChanged):o.s6)}_valueChanged(t){if(t.stopPropagation(),!this._config||!this.hass)return;const e=t.detail.value;let a=Object.assign({features:this._config.features},e);a.hide_state&&delete a.state_content,a.state_content||delete a.state_content,a.content_layout&&(a.vertical="vertical"===a.content_layout,delete a.content_layout),a=(0,_.U)(a,z),(0,r.r)(this,"config-changed",{config:a})}_featuresChanged(t){if(t.stopPropagation(),!this._config||!this.hass)return;const e=t.detail.features,a=Object.assign(Object.assign({},this._config),{},{features:e});0===e.length&&delete a.features,(0,r.r)(this,"config-changed",{config:a})}_editDetailElement(t){const e=t.detail.subElementConfig.index,a=this._config.features[e],i=this._featureContext(this._config.entity);(0,r.r)(this,"edit-sub-element",{config:a,saveConfig:t=>this._updateFeature(e,t),context:i,type:"feature"})}_updateFeature(t,e){const a=this._config.features.concat();a[t]=e;let i=Object.assign(Object.assign({},this._config),{},{features:a});i=(0,_.U)(i,z),(0,r.r)(this,"config-changed",{config:i})}static get styles(){return[g.U,(0,o.AH)($||($=H`.container{display:flex;flex-direction:column}ha-form{display:block;margin-bottom:24px}.info{color:var(--secondary-text-color);margin-top:0;margin-bottom:8px}.features-form{margin-top:var(--ha-space-6);margin-bottom:0}`))]}constructor(...t){super(...t),this._featureContext=(0,c.A)(t=>({entity_id:t})),this._schema=(0,c.A)((t,e,a)=>[{name:"entity",selector:{entity:{}}},{name:"content",flatten:!0,type:"expandable",iconPath:x,schema:[{name:"name",selector:{entity_name:{}},context:{entity:"entity"}},{name:"",type:"grid",schema:[{name:"icon",selector:{icon:{}},context:{icon_entity:"entity"}},{name:"color",selector:{ui_color:{default_color:"state",include_state:!0}}},{name:"show_entity_picture",selector:{boolean:{}}},{name:"hide_state",selector:{boolean:{}}}]},...a?[]:[{name:"state_content",selector:{ui_state_content:{allow_context:!0}},context:{filter_entity:"entity"}}],{name:"content_layout",required:!0,selector:{select:{mode:"box",options:["horizontal","vertical"].map(e=>({label:t(`ui.panel.lovelace.editor.card.tile.content_layout_options.${e}`),value:e,image:{src:`/static/images/form/tile_content_layout_${e}.svg`,src_dark:`/static/images/form/tile_content_layout_${e}_dark.svg`,flip_rtl:!0}}))}}}]},{name:"interactions",type:"expandable",flatten:!0,iconPath:k,schema:[{name:"tap_action",selector:{ui_action:{default_action:"more-info"}},context:h.Tq},{name:"icon_tap_action",selector:{ui_action:{default_action:e?(0,d.a)(e):"more-info"}},context:h.Tq},{name:"",type:"optional_actions",flatten:!0,schema:["hold_action","icon_hold_action","double_tap_action","icon_double_tap_action"].map(t=>({name:t,selector:{ui_action:{default_action:"none"}},context:h.Tq}))}]}]),this._featuresSchema=(0,c.A)((t,e)=>[{name:"features_position",required:!0,selector:{select:{mode:"box",options:["bottom","inline"].map(a=>({label:t(`ui.panel.lovelace.editor.card.tile.features_position_options.${a}`),description:t(`ui.panel.lovelace.editor.card.tile.features_position_options.${a}_description`),value:a,image:{src:`/static/images/form/tile_features_position_${a}.svg`,src_dark:`/static/images/form/tile_features_position_${a}_dark.svg`,flip_rtl:!0},disabled:e&&"inline"===a}))}}}]),this._hasCompatibleFeatures=(0,c.A)(t=>(0,b.uu)(this.hass,t).length>0),this._computeLabelCallback=t=>{switch(t.name){case"color":case"icon_tap_action":case"icon_hold_action":case"icon_double_tap_action":case"show_entity_picture":case"hide_state":case"state_content":case"content_layout":case"features_position":return this.hass.localize(`ui.panel.lovelace.editor.card.tile.${t.name}`);default:return this.hass.localize(`ui.panel.lovelace.editor.card.generic.${t.name}`)}},this._computeHelperCallback=t=>{var e;switch(t.name){case"color":return this.hass.localize(`ui.panel.lovelace.editor.card.tile.${t.name}_helper`);case"features_position":return null!==(e=this._config)&&void 0!==e&&e.vertical?this.hass.localize(`ui.panel.lovelace.editor.card.tile.${t.name}_helper_vertical`):void 0;default:return}}}}(0,n.Cg)([(0,s.MZ)({attribute:!1})],M.prototype,"hass",void 0),(0,n.Cg)([(0,s.wk)()],M.prototype,"_config",void 0),M=(0,n.Cg)([(0,s.EM)("hui-tile-card-editor")],M),i()}catch(y){i(y)}})},84698:function(t,e,a){a.d(e,{H:function(){return n}});var i=a(63533);const n=(0,i.Ik)({type:(0,i.Yj)(),view_layout:(0,i.bz)(),layout_options:(0,i.bz)(),grid_options:(0,i.bz)(),visibility:(0,i.bz)(),disabled:(0,i.lq)((0,i.zM)())})}}]);