iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
5 lines • 19.8 kB
JavaScript
"use strict";(self.webpackChunkhome_assistant_frontend=self.webpackChunkhome_assistant_frontend||[]).push([["72931"],{29095:function(e,t,i){i.a(e,(async function(e,t){try{var n=i(61701),o=(i(71695),i(47021),i(57243)),s=i(50778),a=(i(59826),i(17170)),r=(i(37583),e([a]));a=(r.then?(await r)():r)[0];let l,d,c,h,u,m,f=e=>e;const _="M2.2,16.06L3.88,12L2.2,7.94L6.26,6.26L7.94,2.2L12,3.88L16.06,2.2L17.74,6.26L21.8,7.94L20.12,12L21.8,16.06L17.74,17.74L16.06,21.8L12,20.12L7.94,21.8L6.26,17.74L2.2,16.06M13,17V15H11V17H13M13,13V7H11V13H13Z",g="M9,20.42L2.79,14.21L5.62,11.38L9,14.77L18.88,4.88L21.71,7.71L9,20.42Z";(0,n.Z)([(0,s.Mo)("ha-progress-button")],(function(e,t){return{F:class extends t{constructor(...t){super(...t),e(this)}},d:[{kind:"field",decorators:[(0,s.Cb)()],key:"label",value:void 0},{kind:"field",decorators:[(0,s.Cb)({type:Boolean})],key:"disabled",value(){return!1}},{kind:"field",decorators:[(0,s.Cb)({type:Boolean})],key:"progress",value(){return!1}},{kind:"field",decorators:[(0,s.Cb)({type:Boolean})],key:"raised",value(){return!1}},{kind:"field",decorators:[(0,s.Cb)({type:Boolean})],key:"unelevated",value(){return!1}},{kind:"field",decorators:[(0,s.SB)()],key:"_result",value:void 0},{kind:"method",key:"render",value:function(){const e=this._result||this.progress;return(0,o.dy)(l||(l=f` <ha-button .raised="${0}" .label="${0}" .unelevated="${0}" .disabled="${0}" class="${0}"> <slot name="icon" slot="icon"></slot> <slot></slot> </ha-button> ${0} `),this.raised,this.label,this.unelevated,this.disabled||this.progress,this._result||"",e?(0,o.dy)(d||(d=f` <div class="progress"> ${0} </div> `),"success"===this._result?(0,o.dy)(c||(c=f`<ha-svg-icon .path="${0}"></ha-svg-icon>`),g):"error"===this._result?(0,o.dy)(h||(h=f`<ha-svg-icon .path="${0}"></ha-svg-icon>`),_):this.progress?(0,o.dy)(u||(u=f`<ha-spinner size="small"></ha-spinner>`)):o.Ld):o.Ld)}},{kind:"method",key:"actionSuccess",value:function(){this._setResult("success")}},{kind:"method",key:"actionError",value:function(){this._setResult("error")}},{kind:"method",key:"_setResult",value:function(e){this._result=e,setTimeout((()=>{this._result=void 0}),2e3)}},{kind:"field",static:!0,key:"styles",value(){return(0,o.iv)(m||(m=f`:host{outline:0;display:inline-block;position:relative;pointer-events:none}ha-button{transition:all 1s;pointer-events:initial}ha-button.success{--mdc-theme-primary:white;background-color:var(--success-color);transition:none;border-radius:4px;pointer-events:none}ha-button[raised].success,ha-button[unelevated].success{--mdc-theme-primary:var(--success-color);--mdc-theme-on-primary:white}ha-button.error{--mdc-theme-primary:white;background-color:var(--error-color);transition:none;border-radius:4px;pointer-events:none}ha-button[raised].error,ha-button[unelevated].error{--mdc-theme-primary:var(--error-color);--mdc-theme-on-primary:white}.progress{bottom:4px;position:absolute;text-align:center;top:4px;width:100%}ha-svg-icon{color:#fff}ha-button.error slot,ha-button.success slot{visibility:hidden}:host([destructive]){--mdc-theme-primary:var(--error-color)}`))}}]}}),o.oi);t()}catch(l){t(l)}}))},17170:function(e,t,i){i.a(e,(async function(e,n){try{i.r(t),i.d(t,{HaSpinner:()=>m});var o=i(61701),s=i(72621),a=(i(71695),i(47021),i(97677)),r=i(43580),l=i(57243),d=i(50778),c=e([a]);a=(c.then?(await c)():c)[0];let h,u=e=>e,m=(0,o.Z)([(0,d.Mo)("ha-spinner")],(function(e,t){class i extends t{constructor(...t){super(...t),e(this)}}return{F:i,d:[{kind:"field",decorators:[(0,d.Cb)()],key:"size",value:void 0},{kind:"method",key:"updated",value:function(e){if((0,s.Z)(i,"updated",this,3)([e]),e.has("size"))switch(this.size){case"tiny":this.style.setProperty("--ha-spinner-size","16px");break;case"small":this.style.setProperty("--ha-spinner-size","28px");break;case"medium":this.style.setProperty("--ha-spinner-size","48px");break;case"large":this.style.setProperty("--ha-spinner-size","68px");break;case void 0:this.style.removeProperty("--ha-progress-ring-size")}}},{kind:"field",static:!0,key:"styles",value(){return[r.Z,(0,l.iv)(h||(h=u`:host{--indicator-color:var(
--ha-spinner-indicator-color,
var(--primary-color)
);--track-color:var(--ha-spinner-divider-color, var(--divider-color));--track-width:4px;--speed:3.5s;font-size:var(--ha-spinner-size, 48px)}`))]}}]}}),a.Z);n()}catch(h){n(h)}}))},52032:function(e,t,i){i.a(e,(async function(e,n){try{i.d(t,{w:()=>u});i(71695),i(19423),i(92519),i(42179),i(89256),i(24931),i(88463),i(57449),i(19814),i(47021);var o=i(35729),s=(i(83442),i(92263)),a=i(15367),r=i(56332),l=i(13888),d=(i(9427),i(40249)),c=e([o,s,a,r,l]);[o,s,a,r,l]=c.then?(await c)():c;const h=new Set(["conditional","icon","image","service-button","state-badge","state-icon","state-label"]),u=e=>("action-button"===e.type&&(e=Object.assign(Object.assign({},e),{},{type:"service-button"})),(0,d.Tw)("element",e,h));n()}catch(h){n(h)}}))},38717:function(e,t,i){i.a(e,(async function(e,n){try{i.r(t),i.d(t,{HuiEntityBadgeEditor:()=>C});var o=i(61701),s=(i(19083),i(71695),i(92745),i(9359),i(70104),i(19423),i(61006),i(47021),i(57243)),a=i(50778),r=i(27486),l=i(62900),d=i(36522),c=(i(29073),i(88693)),h=i(50357),u=i(30571),m=i(61584),f=i(10991),_=i(71295),g=e([h,_,c]);[h,_,c]=g.then?(await g)():g;let p,y,v=e=>e;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",b="M4,9H20V11H4V9M4,13H14V15H4V13Z",E=(0,l.f0)(m.n,(0,l.Ry)({entity:(0,l.jt)((0,l.Z_)()),display_type:(0,l.jt)((0,l.kE)(c.ak)),name:(0,l.jt)((0,l.Z_)()),icon:(0,l.jt)((0,l.Z_)()),state_content:(0,l.jt)((0,l.G0)([(0,l.Z_)(),(0,l.IX)((0,l.Z_)())])),color:(0,l.jt)((0,l.Z_)()),show_name:(0,l.jt)((0,l.O7)()),show_state:(0,l.jt)((0,l.O7)()),show_icon:(0,l.jt)((0,l.O7)()),show_entity_picture:(0,l.jt)((0,l.O7)()),tap_action:(0,l.jt)(u.fJ),hold_action:(0,l.jt)(u.fJ),double_tap_action:(0,l.jt)(u.fJ),image:(0,l.jt)((0,l.Z_)())}));let C=(0,o.Z)([(0,a.Mo)("hui-entity-badge-editor")],(function(e,t){return{F:class extends t{constructor(...t){super(...t),e(this)}},d:[{kind:"field",decorators:[(0,a.Cb)({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[(0,a.SB)()],key:"_config",value:void 0},{kind:"method",key:"setConfig",value:function(e){(0,l.hu)(e,E),this._config=Object.assign(Object.assign({},c.g5),(0,c.fp)(e))}},{kind:"field",key:"_schema",value(){return(0,r.Z)((e=>[{name:"entity",selector:{entity:{}}},{name:"content",type:"expandable",flatten:!0,iconPath:b,schema:[{name:"",type:"grid",schema:[{name:"name",selector:{text:{}}},{name:"color",selector:{ui_color:{default_color:"state",include_state:!0}}},{name:"icon",selector:{icon:{}},context:{icon_entity:"entity"}},{name:"show_entity_picture",selector:{boolean:{}}}]},{name:"displayed_elements",selector:{select:{mode:"list",multiple:!0,options:[{value:"name",label:e("ui.panel.lovelace.editor.badge.entity.displayed_elements_options.name")},{value:"state",label:e("ui.panel.lovelace.editor.badge.entity.displayed_elements_options.state")},{value:"icon",label:e("ui.panel.lovelace.editor.badge.entity.displayed_elements_options.icon")}]}}},{name:"state_content",selector:{ui_state_content:{allow_name:!0}},context:{filter_entity:"entity"}}]},{name:"interactions",type:"expandable",flatten:!0,iconPath:k,schema:[{name:"tap_action",selector:{ui_action:{default_action:"more-info"}}},{name:"",type:"optional_actions",flatten:!0,schema:["hold_action","double_tap_action"].map((e=>({name:e,selector:{ui_action:{default_action:"none"}}})))}]}]))}},{kind:"field",key:"_displayedElements",value(){return(0,r.Z)((e=>{const t=[];return e.show_name&&t.push("name"),e.show_state&&t.push("state"),e.show_icon&&t.push("icon"),t}))}},{kind:"method",key:"render",value:function(){if(!this.hass||!this._config)return s.Ld;const e=this._schema(this.hass.localize),t=Object.assign(Object.assign({},this._config),{},{displayed_elements:this._displayedElements(this._config)});return(0,s.dy)(p||(p=v` <ha-form .hass="${0}" .data="${0}" .schema="${0}" .computeLabel="${0}" .computeHelper="${0}" -changed="${0}"></ha-form> `),this.hass,t,e,this._computeLabelCallback,this._computeHelperCallback,this._valueChanged)}},{kind:"method",key:"_valueChanged",value:function(e){if(e.stopPropagation(),!this._config||!this.hass)return;const t=Object.assign({},e.detail.value);t.state_content||delete t.state_content,t.displayed_elements&&(t.show_name=t.displayed_elements.includes("name"),t.show_state=t.displayed_elements.includes("state"),t.show_icon=t.displayed_elements.includes("icon"),delete t.displayed_elements),(0,d.B)(this,"config-changed",{config:t})}},{kind:"field",key:"_computeLabelCallback",value(){return e=>{switch(e.name){case"color":case"state_content":case"show_entity_picture":case"displayed_elements":return this.hass.localize(`ui.panel.lovelace.editor.badge.entity.${e.name}`);default:return this.hass.localize(`ui.panel.lovelace.editor.card.generic.${e.name}`)}}}},{kind:"field",key:"_computeHelperCallback",value(){return e=>{if("color"===e.name)return this.hass.localize(`ui.panel.lovelace.editor.badge.entity.${e.name}_helper`)}}},{kind:"get",static:!0,key:"styles",value:function(){return[f.A,(0,s.iv)(y||(y=v`.container{display:flex;flex-direction:column}ha-form{display:block;margin-bottom:24px}`))]}}]}}),s.oi);n()}catch(p){n(p)}}))},32012:function(e,t,i){i.d(t,{e:()=>n});i(52247);class n extends Error{constructor(e,t,i){super(e),this.warnings=void 0,this.errors=void 0,this.name="GUISupportError",this.warnings=t,this.errors=i}}},43299:function(e,t,i){i.a(e,(async function(e,n){try{i.d(t,{O:()=>j});var o=i(61701),s=i(72621),a=(i(71695),i(9359),i(31526),i(70104),i(19423),i(40251),i(47021),i(57243)),r=i(50778),l=i(67064),d=i(36522),c=i(22381),h=i(41680),u=i(48045),m=(i(99426),i(17170)),f=(i(64889),i(32012)),_=e([m]);m=(_.then?(await _)():_)[0];let g,p,y,v,k,b,E,C,w,$,L,x,S=e=>e,j=(0,o.Z)(null,(function(e,t){class n extends t{constructor(...t){super(...t),e(this)}}return{F:n,d:[{kind:"field",decorators:[(0,r.Cb)({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[(0,r.Cb)({attribute:!1})],key:"lovelace",value:void 0},{kind:"field",decorators:[(0,r.Cb)({attribute:!1})],key:"context",value:void 0},{kind:"field",decorators:[(0,r.SB)()],key:"_config",value:void 0},{kind:"field",decorators:[(0,r.SB)()],key:"_configElement",value:void 0},{kind:"field",decorators:[(0,r.SB)()],key:"_subElementEditorConfig",value:void 0},{kind:"field",decorators:[(0,r.SB)()],key:"_guiMode",value(){return!0}},{kind:"field",decorators:[(0,r.SB)()],key:"_errors",value:void 0},{kind:"field",decorators:[(0,r.SB)()],key:"_pendingYamlError",value:void 0},{kind:"field",decorators:[(0,r.SB)()],key:"_yamlError",value(){return!1}},{kind:"field",decorators:[(0,r.SB)()],key:"_warnings",value:void 0},{kind:"field",decorators:[(0,r.SB)()],key:"_guiSupported",value:void 0},{kind:"field",decorators:[(0,r.SB)()],key:"_loading",value(){return!1}},{kind:"field",decorators:[(0,r.IO)("ha-yaml-editor")],key:"_yamlEditor",value:void 0},{kind:"get",key:"value",value:function(){return this._config}},{kind:"set",key:"value",value:function(e){this._config&&(0,u.v)(e,this._config)||(this._config=e,this._errors=void 0,this._setConfig())}},{kind:"method",key:"_setConfig",value:function(){if(!this._errors)try{this._updateConfigElement()}catch(e){this._errors=[e.message]}this.updateComplete.then((()=>{var e;(0,d.B)(this,"config-changed",{config:this.value,error:null===(e=this._errors)||void 0===e?void 0:e.join(", "),guiModeAvailable:!(this.hasWarning||this.hasError||!1===this._guiSupported)})}))}},{kind:"get",key:"hasWarning",value:function(){return void 0!==this._warnings&&this._warnings.length>0}},{kind:"get",key:"hasError",value:function(){return void 0!==this._errors&&this._errors.length>0}},{kind:"get",key:"GUImode",value:function(){return this._guiMode}},{kind:"set",key:"GUImode",value:function(e){this._guiMode=e,this.updateComplete.then((()=>{(0,d.B)(this,"GUImode-changed",{guiMode:e,guiModeAvailable:!(this.hasWarning||this.hasError||!1===this._guiSupported)})}))}},{kind:"method",key:"toggleMode",value:function(){this.GUImode=!this.GUImode}},{kind:"method",key:"focusYamlEditor",value:function(){var e;null!==(e=this._configElement)&&void 0!==e&&e.focusYamlEditor&&this._configElement.focusYamlEditor(),this._yamlEditor&&this._yamlEditor.focus()}},{kind:"method",key:"getConfigElement",value:async function(){}},{kind:"method",key:"getConfigForm",value:async function(){}},{kind:"method",key:"renderConfigElement",value:function(){return(0,a.dy)(g||(g=S`${0}`),this._configElement)}},{kind:"method",key:"_renderSubElement",value:function(){return(0,a.dy)(p||(p=S` <hui-sub-element-editor .hass="${0}" .config="${0}" -back="${0}" -changed="${0}"> </hui-sub-element-editor> `),this.hass,this._subElementEditorConfig,this._goBack,this._subElementChanged)}},{kind:"method",key:"_subElementChanged",value:function(e){var t,i;e.stopPropagation();const n=e.detail.config;this._subElementEditorConfig=Object.assign(Object.assign({},this._subElementEditorConfig),{},{elementConfig:n}),null===(t=(i=this._subElementEditorConfig).saveElementConfig)||void 0===t||t.call(i,n)}},{kind:"method",key:"_goBack",value:function(e){e.stopPropagation(),this._subElementEditorConfig=void 0}},{kind:"method",key:"_editSubElement",value:async function(e){e.stopPropagation(),await Promise.all([i.e("91552"),i.e("78456"),i.e("56898"),i.e("35671"),i.e("92139"),i.e("32146"),i.e("47399"),i.e("51717"),i.e("18865"),i.e("44959"),i.e("79931"),i.e("44251"),i.e("65005"),i.e("60487"),i.e("3371"),i.e("38326"),i.e("10745"),i.e("80809"),i.e("92368"),i.e("37457"),i.e("95444"),i.e("29477"),i.e("8136")]).then(i.bind(i,50357)),this._subElementEditorConfig={type:e.detail.type,elementConfig:e.detail.config,context:e.detail.context,saveElementConfig:e.detail.saveConfig}}},{kind:"method",key:"render",value:function(){return(0,a.dy)(y||(y=S` <div class="wrapper"> ${0} ${0} ${0} ${0} </div> `),this.GUImode?(0,a.dy)(v||(v=S` <div class="gui-editor" -sub-element="${0}"> ${0} </div> `),this._editSubElement,this._loading?(0,a.dy)(k||(k=S` <ha-spinner class="center margin-bot"></ha-spinner> `)):(0,l.F)(this._subElementEditorConfig?this._renderSubElement():this.renderConfigElement())):(0,a.dy)(b||(b=S` <div class="yaml-editor"> <ha-yaml-editor .defaultValue="${0}" autofocus .hass="${0}" -changed="${0}" ="${0}" ="${0}" dir="ltr"></ha-yaml-editor> </div> `),this._config,this.hass,this._handleYAMLChanged,this._onBlurYaml,this._ignoreKeydown),!1===this._guiSupported&&!1===this._loading?(0,a.dy)(E||(E=S` <ha-alert alert-type="info" .title="${0}"> ${0} <br> ${0} </ha-alert> `),this.hass.localize("ui.errors.config.visual_editor_not_supported"),this.hass.localize("ui.errors.config.visual_editor_not_supported_reason_type"),this.hass.localize("ui.errors.config.edit_in_yaml_supported")):a.Ld,this.hasError?(0,a.dy)(C||(C=S` <ha-alert alert-type="error" .title="${0}"> <ul> ${0} </ul> </ha-alert> `),this.hass.localize("ui.errors.config.configuration_error"),this._errors.map((e=>(0,a.dy)(w||(w=S`<li>${0}</li>`),e)))):a.Ld,this.hasWarning?(0,a.dy)($||($=S` <ha-alert alert-type="warning" .title="${0}"> <ul> ${0} </ul> ${0} </ha-alert> `),this.hass.localize("ui.errors.config.visual_editor_not_supported"),this._warnings.map((e=>(0,a.dy)(L||(L=S`<li>${0}</li>`),e))),this.hass.localize("ui.errors.config.edit_in_yaml_supported")):a.Ld)}},{kind:"method",key:"updated",value:function(e){(0,s.Z)(n,"updated",this,3)([e]),this._configElement&&e.has("hass")&&(this._configElement.hass=this.hass),this._configElement&&"lovelace"in this._configElement&&e.has("lovelace")&&(this._configElement.lovelace=this.lovelace),this._configElement&&e.has("context")&&(this._configElement.context=this.context)}},{kind:"method",key:"_handleUIConfigChanged",value:function(e){if(e.stopPropagation(),!this.GUImode)return;const t=e.detail.config;Object.keys(t).forEach((e=>{void 0===t[e]&&delete t[e]})),this.value=t}},{kind:"method",key:"_handleYAMLChanged",value:function(e){e.stopPropagation();const t=e.detail.value;e.detail.isValid?(this._config=t,this._errors=void 0,this._pendingYamlError=void 0,this._yamlError=!1,this._debounceYamlError.cancel(),this._setConfig()):this._yamlError?this._errors=[e.detail.errorMsg]:(this._pendingYamlError=e.detail.errorMsg,this._debounceYamlError())}},{kind:"field",key:"_debounceYamlError",value(){return(0,c.D)((()=>{this._pendingYamlError&&(this._yamlError=!0,this._errors=[this._pendingYamlError],this._pendingYamlError=void 0,this._setConfig())}),2e3)}},{kind:"method",key:"_onBlurYaml",value:function(){this._debounceYamlError.cancel(),this._pendingYamlError&&(this._yamlError=!0,this._errors=[this._pendingYamlError],this._pendingYamlError=void 0,this._setConfig())}},{kind:"method",key:"unloadConfigElement",value:async function(){this._configElement=void 0,this._guiSupported=void 0}},{kind:"method",key:"loadConfigElement",value:async function(){if(this._configElement)return;let e=await this.getConfigElement();if(!e){const t=await this.getConfigForm();if(t){await i.e("10106").then(i.bind(i,66374)),e=document.createElement("hui-form-editor");const{schema:n,assertConfig:o,computeLabel:s,computeHelper:a}=t;e.schema=n,s&&(e.computeLabel=s),a&&(e.computeHelper=a),o&&(e.assertConfig=o)}}e?(e.hass=this.hass,"lovelace"in e&&(e.lovelace=this.lovelace),e.context=this.context,e.addEventListener("config-changed",(e=>this._handleUIConfigChanged(e))),this._guiSupported=!0):this._guiSupported=!1,this._configElement=e}},{kind:"method",key:"_updateConfigElement",value:async function(){if(this.value)try{if(this._errors=void 0,this._warnings=void 0,await this.loadConfigElement(),this._configElement)try{this._configElement.setConfig(this.value)}catch(t){const e=(0,h.p)(this.hass,t);throw new f.e("Config is not supported",e.warnings,e.errors)}else this._guiSupported=!1,this.GUImode=!1}catch(t){var e;if(t instanceof f.e)this._warnings=null!==(e=t.warnings)&&void 0!==e?e:[t.message],this._errors=t.errors||void 0;else this._errors=[t.message];this.GUImode=!1}finally{this._loading=!1}}},{kind:"method",key:"_ignoreKeydown",value:function(e){e.stopPropagation()}},{kind:"field",static:!0,key:"styles",value(){return(0,a.iv)(x||(x=S`:host{display:flex}.wrapper{width:100%}.gui-editor,.yaml-editor{padding:8px 0px}ha-code-editor{--code-mirror-max-height:calc(100vh - 245px)}ha-spinner{display:block;margin:auto}`))}}]}}),a.oi);n()}catch(g){n(g)}}))},6973:function(e,t,i){i.a(e,(async function(e,n){try{i.d(t,{k:()=>d});var o=i(61701),s=i(72621),a=(i(52247),i(71695),i(40251),i(47021),i(50778)),r=i(43299),l=e([r]);r=(l.then?(await l)():l)[0];let d=(0,o.Z)(null,(function(e,t){class i extends t{constructor(...t){super(...t),e(this)}}return{F:i,d:[{kind:"field",decorators:[(0,a.SB)()],key:"_configElementType",value:void 0},{kind:"get",key:"configElementType",value:function(){return this.value?this.value.type:void 0}},{kind:"method",key:"loadConfigElement",value:async function(){if(this._configElementType!==this.configElementType){if(this.unloadConfigElement(),!this.configElementType)throw new Error(this.hass.localize("ui.errors.config.no_type_provided"));this._configElementType=this.configElementType}return(0,s.Z)(i,"loadConfigElement",this,3)([])}}]}}),r.O);n()}catch(d){n(d)}}))},61584:function(e,t,i){i.d(t,{n:()=>o});var n=i(62900);const o=(0,n.Ry)({type:(0,n.Z_)(),visibility:(0,n.Yj)()})}}]);
//# sourceMappingURL=72931.34470db14d22fee1.js.map