UNPKG

iobroker.lovelace

Version:

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

1 lines 27 kB
"use strict";(self.rspackChunkhome_assistant_frontend=self.rspackChunkhome_assistant_frontend||[]).push([[31990],{66033:function(a,e,t){t.d(e,{L:function(){return i}});const i=(a,e)=>{const t=a.floor_id;return{area:a,floor:(t?e[t]:void 0)||null}}},44241:function(a,e,t){t.d(e,{G:function(){return r}});var i=t(5124);let s,o=a=>a;const r=a=>a("ui.common.supports_markdown",{markdown_help_link:(0,i.qy)(s||(s=o`<a href="${0}" target="_blank" rel="noreferrer">${0}</a>`),"https://commonmark.org/help/",a("ui.common.markdown"))})},66086:function(a,e,t){t.a(a,async function(a,e){try{t(74423),t(18111),t(22489),t(61701),t(3362),t(62953);var i=t(40445),s=t(5124),o=t(67576),r=t(22786),n=t(1087),l=t(65522),h=t(55931),d=t(66033),c=t(49852),p=t(53641),u=t(65063),g=t(34023),_=(t(75064),t(38508)),v=t(26300),m=(t(67094),a([_,v]));[_,v]=m.then?(await m)():m;let y,b,f,$,w,C,k,x=a=>a;const A="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z",M="M20 2H4C2.9 2 2 2.9 2 4V20C2 21.11 2.9 22 4 22H20C21.11 22 22 21.11 22 20V4C22 2.9 21.11 2 20 2M4 6L6 4H10.9L4 10.9V6M4 13.7L13.7 4H18.6L4 18.6V13.7M20 18L18 20H13.1L20 13.1V18M20 10.3L10.3 20H5.4L20 5.4V10.3Z",V="___ADD_NEW___";class q extends s.WF{willUpdate(a){var e;this._pendingAreaId&&a.has("hass")&&this.hass.areas!==(null===(e=a.get("hass"))||void 0===e?void 0:e.areas)&&this.hass.areas[this._pendingAreaId]&&(this._setValue(this._pendingAreaId),this._pendingAreaId=void 0)}async open(){var a;await this.updateComplete,await(null===(a=this._picker)||void 0===a?void 0:a.open())}render(){var a;const e=null!==(a=this.label)&&void 0!==a?a:this.hass.localize("ui.components.area-picker.area"),t=this._computeValueRenderer(this.hass.areas);let i=e;if(this.value&&e){const a=this.hass.areas[this.value];if(a){const{floor:e}=(0,d.L)(a,this.hass.floors);e&&(i=void 0)}}return(0,s.qy)(y||(y=x` <ha-generic-picker .hass="${0}" .autofocus="${0}" .label="${0}" .helper="${0}" .notFoundLabel="${0}" .emptyLabel="${0}" .disabled="${0}" .required="${0}" .value="${0}" .getItems="${0}" .getAdditionalItems="${0}" .valueRenderer="${0}" .addButtonLabel="${0}" .searchKeys="${0}" .unknownItemText="${0}" @value-changed="${0}"> </ha-generic-picker> `),this.hass,this.autofocus,i,this.helper,this._notFoundLabel,this.hass.localize("ui.components.area-picker.no_areas"),this.disabled,this.required,this.value,this._getItems,this._getAdditionalItems,t,this.addButtonLabel,c.P,this.hass.localize("ui.components.area-picker.unknown"),this._valueChanged)}_valueChanged(a){a.stopPropagation();const e=a.detail.value;if(e){if(e.startsWith(V)){this.hass.loadFragmentTranslation("config");const a=e.substring(V.length);return void(0,g.J)(this,{suggestedName:a,createEntry:async a=>{try{const e=await(0,p.L3)(this.hass,a);this.hass.areas[e.area_id]?this._setValue(e.area_id):this._pendingAreaId=e.area_id}catch(e){(0,u.showAlertDialog)(this,{title:this.hass.localize("ui.components.area-picker.failed_create_area"),text:e.message})}}})}this._setValue(e)}else this._setValue(void 0)}_setValue(a){this.value=a,(0,n.r)(this,"value-changed",{value:a}),(0,n.r)(this,"change")}constructor(...a){super(...a),this.noAdd=!1,this.disabled=!1,this.required=!1,this._getAreasMemoized=(0,r.A)(c.j),this._computeValueRenderer=(0,r.A)(a=>a=>{const e=this.hass.areas[a];if(!e)return(0,s.qy)(b||(b=x` <ha-svg-icon slot="start" .path="${0}"></ha-svg-icon> <span slot="headline">${0}</span> `),M,e);const{floor:t}=(0,d.L)(e,this.hass.floors),i=e?(0,l.A)(e):void 0,o=t?(0,h.X)(t):void 0,r=e.icon;return(0,s.qy)(f||(f=x` ${0} <span slot="headline">${0}</span> ${0} `),r?(0,s.qy)($||($=x`<ha-icon slot="start" .icon="${0}"></ha-icon>`),r):(0,s.qy)(w||(w=x`<ha-svg-icon slot="start" .path="${0}"></ha-svg-icon>`),M),i,o?(0,s.qy)(C||(C=x`<span slot="supporting-text">${0}</span>`),o):s.s6)}),this._getItems=()=>this._getAreasMemoized(this.hass.areas,this.hass.floors,this.hass.devices,this.hass.entities,this.hass.states,this.includeDomains,this.excludeDomains,this.includeDeviceClasses,this.deviceFilter,this.entityFilter,this.excludeAreas),this._allAreaNames=(0,r.A)(a=>Object.values(a).map(a=>{var e;return null===(e=(0,l.A)(a))||void 0===e?void 0:e.toLowerCase()}).filter(Boolean)),this._getAdditionalItems=a=>{if(this.noAdd)return[];const e=this._allAreaNames(this.hass.areas);return a&&!e.includes(a.toLowerCase())?[{id:V+a,primary:this.hass.localize("ui.components.area-picker.add_new_suggestion",{name:a}),icon_path:A}]:[{id:V,primary:this.hass.localize("ui.components.area-picker.add_new"),icon_path:A}]},this._notFoundLabel=a=>this.hass.localize("ui.components.area-picker.no_match",{term:(0,s.qy)(k||(k=x`<b>‘${0}’</b>`),a)})}}(0,i.Cg)([(0,o.MZ)({attribute:!1})],q.prototype,"hass",void 0),(0,i.Cg)([(0,o.MZ)()],q.prototype,"label",void 0),(0,i.Cg)([(0,o.MZ)()],q.prototype,"value",void 0),(0,i.Cg)([(0,o.MZ)()],q.prototype,"helper",void 0),(0,i.Cg)([(0,o.MZ)()],q.prototype,"placeholder",void 0),(0,i.Cg)([(0,o.MZ)({type:Boolean,attribute:"no-add"})],q.prototype,"noAdd",void 0),(0,i.Cg)([(0,o.MZ)({type:Array,attribute:"include-domains"})],q.prototype,"includeDomains",void 0),(0,i.Cg)([(0,o.MZ)({type:Array,attribute:"exclude-domains"})],q.prototype,"excludeDomains",void 0),(0,i.Cg)([(0,o.MZ)({type:Array,attribute:"include-device-classes"})],q.prototype,"includeDeviceClasses",void 0),(0,i.Cg)([(0,o.MZ)({type:Array,attribute:"exclude-areas"})],q.prototype,"excludeAreas",void 0),(0,i.Cg)([(0,o.MZ)({attribute:!1})],q.prototype,"deviceFilter",void 0),(0,i.Cg)([(0,o.MZ)({attribute:!1})],q.prototype,"entityFilter",void 0),(0,i.Cg)([(0,o.MZ)({type:Boolean})],q.prototype,"disabled",void 0),(0,i.Cg)([(0,o.MZ)({type:Boolean})],q.prototype,"required",void 0),(0,i.Cg)([(0,o.MZ)({attribute:"add-button-label"})],q.prototype,"addButtonLabel",void 0),(0,i.Cg)([(0,o.P)("ha-generic-picker")],q.prototype,"_picker",void 0),(0,i.Cg)([(0,o.wk)()],q.prototype,"_pendingAreaId",void 0),q=(0,i.Cg)([(0,o.EM)("ha-area-picker")],q),e()}catch(y){e(y)}})},56304:function(a,e,t){t.a(a,async function(a,e){try{t(3362),t(27495),t(62953),t(49255);var i=t(40445),s=t(99324),o=t(92070),r=t(5124),n=t(67576),l=t(6412),h=t(63672),d=t(57237),c=t(53305),p=a([s]);s=(p.then?(await p)():p)[0];let u,g,_,v,m=a=>a;class y extends((0,c.w)(r.WF)){get _formControl(){return this._textarea}setFocused(a){a?this.toggleAttribute("focused",!0):this.removeAttribute("focused")}connectedCallback(){super.connectedCallback(),this.addEventListener("keydown",d.d)}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("keydown",d.d)}async firstUpdated(a){var e,t;(super.firstUpdated(a),this.autofocus)&&(await(null===(e=this._textarea)||void 0===e?void 0:e.updateComplete),null===(t=this._textarea)||void 0===t||t.focus())}focus(a){var e;null===(e=this._textarea)||void 0===e||e.focus(a)}render(){var a,e,t;const i=!this.label&&this._hasSlotController.test("label"),s=!this.hint&&this._hasSlotController.test("hint");return(0,r.qy)(u||(u=m` <wa-textarea .value="${0}" .placeholder="${0}" .readonly="${0}" .required="${0}" .rows="${0}" .resize="${0}" .disabled="${0}" name="${0}" autocapitalize="${0}" autocomplete="${0}" .autofocus="${0}" .spellcheck="${0}" inputmode="${0}" enterkeyhint="${0}" minlength="${0}" maxlength="${0}" class="${0}" @input="${0}" @change="${0}" @blur="${0}" @wa-invalid="${0}" exportparts="base:wa-base, hint:wa-hint, textarea:wa-textarea"> ${0} <div slot="hint" class="${0}" role="${0}" aria-live="polite"> ${0} </div> </wa-textarea> `),null!==(a=this.value)&&void 0!==a?a:null,this.placeholder,this.readonly,this.required,null!==(e=this.rows)&&void 0!==e?e:4,this.resize,this.disabled,(0,h.J)(this.name),(0,h.J)(this.autocapitalize||void 0),(0,h.J)(this.autocomplete),this.autofocus,this.spellcheck,(0,h.J)(this.inputmode||void 0),(0,h.J)(this.enterkeyhint||void 0),(0,h.J)(this.minlength),(0,h.J)(this.maxlength),(0,l.H)({input:!0,invalid:this.invalid||this._invalid,"label-raised":void 0!==this.value&&""!==this.value||this.label&&this.placeholder,"no-label":!this.label,"hint-hidden":!(this.hint||s||this.required||this._invalid||this.invalid)}),this._handleInput,this._handleChange,this._handleBlur,this._handleInvalid,this.label||i?(0,r.qy)(g||(g=m`<slot name="label" slot="label">${0}</slot>`),this.label?this._renderLabel(this.label,this.required):r.s6):r.s6,(0,l.H)({error:this.invalid||this._invalid}),(0,h.J)(this.invalid||this._invalid?"alert":void 0),this._invalid||this.invalid?this.validationMessage||(null===(t=this._textarea)||void 0===t?void 0:t.validationMessage):this.hint||(s?(0,r.qy)(_||(_=m`<slot name="hint"></slot>`)):r.s6))}constructor(...a){super(...a),this.resize="none",this._hasSlotController=new o.X(this,"label","hint"),this._requiredMarkerCSSVar="--ha-textarea-required-marker"}}y.styles=[c.N,(0,r.AH)(v||(v=m`:host{display:flex;align-items:flex-start;padding-bottom:var(--ha-textarea-padding-bottom)}wa-textarea::part(label){width:calc(100% - var(--ha-space-2));background-color:var(--ha-color-form-background);transition:all var(--wa-transition-normal) ease-in-out,background-color var(--wa-transition-normal) ease-in-out;padding-inline-start:var(--ha-space-3);padding-inline-end:var(--ha-space-3);margin:var(--ha-space-1) var(--ha-space-1) 0;padding-top:var(--ha-space-4);white-space:nowrap;overflow:hidden}:host(:focus-within) wa-textarea::part(label),:host([focused]) wa-textarea::part(label){color:var(--primary-color)}:host(:focus-within) wa-textarea::part(label),:host([focused]) wa-textarea::part(label),wa-textarea.label-raised::part(label){padding-top:var(--ha-space-2);font-size:var(--ha-font-size-xs)}wa-textarea.no-label::part(label){height:0;padding:0}wa-textarea::part(base){min-height:56px;padding-top:var(--ha-space-6);padding-bottom:var(--ha-space-2)}wa-textarea.no-label::part(base){padding-top:var(--ha-space-3)}wa-textarea::part(base)::after{content:"";position:absolute;bottom:0;left:0;right:0;height:1px;background-color:var(--ha-color-border-neutral-loud);transition:height var(--wa-transition-normal) ease-in-out,background-color var(--wa-transition-normal) ease-in-out}:host(:focus-within) wa-textarea::part(base)::after,:host([focused]) wa-textarea::part(base)::after{height:2px;background-color:var(--primary-color)}:host(:focus-within) wa-textarea.invalid::part(base)::after,wa-textarea.invalid:not([disabled])::part(base)::after{background-color:var(--ha-color-border-danger-normal)}wa-textarea::part(textarea){padding:0 var(--ha-space-4);font-family:var(--ha-font-family-body);font-size:var(--ha-font-size-m)}:host([resize=auto]) wa-textarea::part(textarea){max-height:var(--ha-textarea-max-height,200px);overflow-y:auto}wa-textarea:hover::part(base),wa-textarea:hover::part(label){background-color:var(--ha-color-form-background-hover)}wa-textarea[disabled]::part(textarea){cursor:not-allowed}wa-textarea[disabled]::part(base),wa-textarea[disabled]::part(label){background-color:var(--ha-color-form-background-disabled)}`))],(0,i.Cg)([(0,n.MZ)({type:Number})],y.prototype,"rows",void 0),(0,i.Cg)([(0,n.MZ)()],y.prototype,"resize",void 0),(0,i.Cg)([(0,n.P)("wa-textarea")],y.prototype,"_textarea",void 0),y=(0,i.Cg)([(0,n.EM)("ha-textarea")],y),e()}catch(u){e(u)}})},49852:function(a,e,t){t.d(e,{P:function(){return h},j:function(){return l}});t(74423),t(18111),t(81148),t(22489),t(61701),t(13579);var i=t(65522),s=t(71727),o=t(55931),r=t(66033),n=t(58594);const l=(a,e,t,l,h,d,c,p,u,g,_,v="")=>{let m,y,b={};const f=Object.values(a),$=Object.values(t),w=Object.values(l);(d||c||p||u||g)&&(b=(0,n.g2)(w),m=$,y=w.filter(a=>a.area_id),d&&(m=m.filter(a=>{const e=b[a.id];return!(!e||!e.length)&&b[a.id].some(a=>d.includes((0,s.m)(a.entity_id)))}),y=y.filter(a=>d.includes((0,s.m)(a.entity_id)))),c&&(m=m.filter(a=>{const e=b[a.id];return!e||!e.length||w.every(a=>!c.includes((0,s.m)(a.entity_id)))}),y=y.filter(a=>!c.includes((0,s.m)(a.entity_id)))),p&&(m=m.filter(a=>{const e=b[a.id];return!(!e||!e.length)&&b[a.id].some(a=>{const e=h[a.entity_id];return!!e&&(e.attributes.device_class&&p.includes(e.attributes.device_class))})}),y=y.filter(a=>{const e=h[a.entity_id];return e.attributes.device_class&&p.includes(e.attributes.device_class)})),u&&(m=m.filter(a=>u(a))),g&&(m=m.filter(a=>{const e=b[a.id];return!(!e||!e.length)&&b[a.id].some(a=>{const e=h[a.entity_id];return!!e&&g(e)})}),y=y.filter(a=>{const e=h[a.entity_id];return!!e&&g(e)})));let C,k=f;m&&(C=m.filter(a=>a.area_id).map(a=>a.area_id)),y&&(C=(null!=C?C:[]).concat(y.filter(a=>a.area_id).map(a=>a.area_id))),C&&(k=k.filter(a=>C.includes(a.area_id))),_&&(k=k.filter(a=>!_.includes(a.area_id)));return k.map(a=>{const{floor:t}=(0,r.L)(a,e),s=t?(0,o.X)(t):void 0,n=(0,i.A)(a);return{id:`${v}${a.area_id}`,primary:n||a.area_id,secondary:s,icon:a.icon||void 0,icon_path:a.icon?void 0:"M20 2H4C2.9 2 2 2.9 2 4V20C2 21.11 2.9 22 4 22H20C21.11 22 22 21.11 22 20V4C22 2.9 21.11 2 20 2M4 6L6 4H10.9L4 10.9V6M4 13.7L13.7 4H18.6L4 18.6V13.7M20 18L18 20H13.1L20 13.1V18M20 10.3L10.3 20H5.4L20 5.4V10.3Z",search_labels:{areaId:a.area_id,aliases:a.aliases.join(" ")}}})},h=[{name:"primary",weight:10},{name:"search_labels.aliases",weight:8},{name:"secondary",weight:6},{name:"search_labels.domain",weight:4},{name:"search_labels.areaId",weight:2}]},45986:function(a,e,t){t.a(a,async function(a,i){try{t.r(e);t(89463),t(16280),t(74423),t(3362),t(62953);var s=t(40445),o=t(5124),r=t(67576),n=t(1087),l=(t(34296),t(5745),t(38962)),h=t(66086),d=t(72554),c=(t(93444),t(59174)),p=(t(11382),t(64138)),u=t(50176),g=(t(63891),t(67094),t(56304)),_=t(91485),v=t(16536),m=t(44241),y=t(14503),b=t(36215),f=t(97268),$=a([l,h,d,c,p,u,g,_,v,b]);[l,h,d,c,p,u,g,_,v,b]=$.then?(await $)():$;let w,C,k,x,A,M,V,q,z,O,L,I,H,Z=a=>a;const D="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z";class U extends o.WF{showDialog(a){var e,t,i;this._open=!0,this._params=a,this._newIcon="icon"in a.config?a.config.icon:void 0,this._newName=a.config.alias||this.hass.localize(`ui.panel.config.${this._params.domain}.editor.default_name`),this._newDescription=a.config.description||"",this._entryUpdates=a.entityRegistryUpdate||{area:(null===(e=a.entityRegistryEntry)||void 0===e?void 0:e.area_id)||"",labels:(null===(t=a.entityRegistryEntry)||void 0===t?void 0:t.labels)||[],category:(null===(i=a.entityRegistryEntry)||void 0===i?void 0:i.categories[a.domain])||""},this._visibleOptionals=[this._newDescription?"description":"",this._newIcon?"icon":"",this._entryUpdates.category?"category":"",this._entryUpdates.labels.length>0?"labels":"",this._entryUpdates.area?"area":""].filter(Boolean)}closeDialog(){return this._open=!1,!0}_dialogClosed(){var a;null===(a=this._params)||void 0===a||a.onClose(),this._visibleOptionals=[],this._params=void 0,(0,n.r)(this,"dialog-closed",{dialog:this.localName})}_renderOptionalChip(a,e){return this._visibleOptionals.includes(a)?o.s6:(0,o.qy)(w||(w=Z` <ha-assist-chip id="${0}" @click="${0}" label="${0}"> <ha-svg-icon slot="icon" .path="${0}"></ha-svg-icon> </ha-assist-chip> `),a,this._addOptional,e,D)}_renderDiscard(){var a;return null!==(a=this._params)&&void 0!==a&&a.onDiscard?(0,o.qy)(C||(C=Z` <ha-button slot="secondaryAction" appearance="plain" variant="danger" @click="${0}"> ${0} </ha-button> `),this._handleDiscard,this.hass.localize("ui.common.dont_save")):o.s6}_renderInputs(){return!this._params||this._params.hideInputs?o.s6:(0,o.qy)(k||(k=Z` <ha-input autofocus .value="${0}" .placeholder="${0}" .label="${0}" required type="text" @input="${0}"></ha-input> ${0} ${0} ${0} ${0} ${0} <ha-chip-set> ${0} ${0} ${0} ${0} ${0} </ha-chip-set> `),this._newName,this.hass.localize(`ui.panel.config.${this._params.domain}.editor.default_name`),this.hass.localize("ui.panel.config.automation.editor.alias"),this._valueChanged,"script"===this._params.domain&&this._visibleOptionals.includes("icon")?(0,o.qy)(x||(x=Z` <ha-icon-picker .label="${0}" .value="${0}" @value-changed="${0}"> <ha-domain-icon slot="start" domain="${0}"> </ha-domain-icon> </ha-icon-picker> `),this.hass.localize("ui.panel.config.automation.editor.icon"),this._newIcon,this._iconChanged,this._params.domain):o.s6,this._visibleOptionals.includes("description")?(0,o.qy)(A||(A=Z`<ha-textarea .label="${0}" .placeholder="${0}" name="description" resize="auto" .value="${0}" .hint="${0}" @input="${0}"></ha-textarea>`),this.hass.localize("ui.panel.config.automation.editor.description.label"),this.hass.localize("ui.panel.config.automation.editor.description.placeholder"),this._newDescription,(0,m.G)(this.hass.localize),this._valueChanged):o.s6,this._visibleOptionals.includes("category")?(0,o.qy)(M||(M=Z` <ha-category-picker id="category" .hass="${0}" .scope="${0}" .label="${0}" .value="${0}" @value-changed="${0}"></ha-category-picker>`),this.hass,this._params.domain,this.hass.localize("ui.components.category-picker.category"),this._entryUpdates.category,this._registryEntryChanged):o.s6,this._visibleOptionals.includes("labels")?(0,o.qy)(V||(V=Z` <ha-labels-picker id="labels" .hass="${0}" .value="${0}" @value-changed="${0}"></ha-labels-picker>`),this.hass,this._entryUpdates.labels,this._registryEntryChanged):o.s6,this._visibleOptionals.includes("area")?(0,o.qy)(q||(q=Z` <ha-area-picker id="area" .hass="${0}" .value="${0}" @value-changed="${0}"></ha-area-picker>`),this.hass,this._entryUpdates.area,this._registryEntryChanged):o.s6,this._renderOptionalChip("description",this.hass.localize("ui.panel.config.automation.editor.dialog.add_description")),"script"===this._params.domain?this._renderOptionalChip("icon",this.hass.localize("ui.panel.config.automation.editor.dialog.add_icon")):o.s6,this._renderOptionalChip("category",this.hass.localize("ui.panel.config.automation.editor.dialog.add_category")),this._renderOptionalChip("labels",this.hass.localize("ui.panel.config.automation.editor.dialog.add_labels")),this._renderOptionalChip("area",this.hass.localize("ui.panel.config.automation.editor.dialog.add_area")))}render(){if(!this._params)return o.s6;const a=this.hass.localize(this._params.config.alias?"ui.panel.config.automation.editor.rename":"ui.common.save");return(0,o.qy)(z||(z=Z` <ha-dialog .open="${0}" @closed="${0}" header-title="${0}"> ${0} ${0} ${0} ${0} <ha-dialog-footer slot="footer"> ${0} <ha-button slot="secondaryAction" appearance="plain" @click="${0}"> ${0} </ha-button> <ha-button slot="primaryAction" @click="${0}"> ${0} </ha-button> </ha-dialog-footer> </ha-dialog> `),this._open,this._dialogClosed,this._params.title||a,this._params.hideInputs?o.s6:(0,o.qy)(O||(O=Z`<ha-suggest-with-ai-button slot="headerActionItems" .hass="${0}" .generateTask="${0}" @suggestion="${0}"></ha-suggest-with-ai-button>`),this.hass,this._generateTask,this._handleSuggestion),this._error?(0,o.qy)(L||(L=Z`<ha-alert alert-type="error">${0}</ha-alert>`),this.hass.localize("ui.panel.config.automation.editor.missing_name")):"",this._params.description?(0,o.qy)(I||(I=Z`<p>${0}</p>`),this._params.description):o.s6,this._renderInputs(),this._renderDiscard(),this.closeDialog,this.hass.localize("ui.common.cancel"),this._save,this.hass.localize(this._params.config.alias&&!this._params.onDiscard?"ui.panel.config.automation.editor.rename":"ui.common.save"))}_addOptional(a){a.stopPropagation();const e=a.target.id;this._visibleOptionals=[...this._visibleOptionals,e]}_registryEntryChanged(a){a.stopPropagation();const e=a.target.id,t=a.detail.value;this._entryUpdates=Object.assign(Object.assign({},this._entryUpdates),{},{[e]:t})}_iconChanged(a){a.stopPropagation(),this._newIcon=a.detail.value||void 0}_valueChanged(a){a.stopPropagation();const e=a.target;"description"===e.name?this._newDescription=e.value:this._newName=e.value}_handleDiscard(){var a,e;null===(a=this._params)||void 0===a||null===(e=a.onDiscard)||void 0===e||e.call(a),this.closeDialog()}async _handleSuggestion(a){var e;if(!this._params)throw new Error("Dialog params not set");const t=a.detail,i=await(0,b.Fn)(this.hass.connection,this._params.domain,t);i.name&&(this._newName=i.name),i.description&&(this._newDescription=i.description,this._visibleOptionals.includes("description")||(this._visibleOptionals=[...this._visibleOptionals,"description"])),i.category&&(this._entryUpdates=Object.assign(Object.assign({},this._entryUpdates),{},{category:i.category}),this._visibleOptionals.includes("category")||(this._visibleOptionals=[...this._visibleOptionals,"category"])),null!==(e=i.labels)&&void 0!==e&&e.length&&(this._entryUpdates=Object.assign(Object.assign({},this._entryUpdates),{},{labels:i.labels}),this._visibleOptionals.includes("labels")||(this._visibleOptionals=[...this._visibleOptionals,"labels"]))}async _save(){this._params&&(this._newName?("script"===this._params.domain?await this._params.updateConfig(Object.assign(Object.assign({},this._params.config),{},{alias:this._newName,description:this._newDescription,icon:this._newIcon}),this._entryUpdates):await this._params.updateConfig(Object.assign(Object.assign({},this._params.config),{},{alias:this._newName,description:this._newDescription}),this._entryUpdates),this.closeDialog()):this._error="Name is required")}static get styles(){return[y.RF,y.nA,(0,o.AH)(H||(H=Z`ha-dialog{--dialog-content-padding:0 var(--ha-space-6) var(--ha-space-6) var(--ha-space-6)}ha-area-picker,ha-category-picker,ha-icon-picker,ha-labels-picker,ha-textarea{display:block}ha-area-picker,ha-category-picker,ha-chip-set:has(> ha-assist-chip),ha-icon-picker,ha-labels-picker{margin-top:var(--ha-space-4)}ha-alert{display:block;margin-bottom:var(--ha-space-4)}ha-suggest-with-ai-button{margin:var(--ha-space-2) var(--ha-space-4)}`))]}constructor(...a){super(...a),this._open=!1,this._visibleOptionals=[],this._generateTask=async()=>{if(!this._params)throw new Error("Dialog params not set");return(0,b.q3)(this.hass.connection,this.hass.language,this._params.domain,this._params.config,await(0,f.m)(this.hass.connection,this.hass.states,this._params.domain))}}}(0,s.Cg)([(0,r.MZ)({attribute:!1})],U.prototype,"hass",void 0),(0,s.Cg)([(0,r.wk)()],U.prototype,"_open",void 0),(0,s.Cg)([(0,r.wk)()],U.prototype,"_error",void 0),(0,s.Cg)([(0,r.wk)()],U.prototype,"_visibleOptionals",void 0),(0,s.Cg)([(0,r.wk)()],U.prototype,"_entryUpdates",void 0),(0,s.Cg)([(0,r.wk)()],U.prototype,"_params",void 0),(0,s.Cg)([(0,r.wk)()],U.prototype,"_newName",void 0),U=(0,s.Cg)([(0,r.EM)("ha-dialog-automation-save")],U),i()}catch(w){i(w)}})},16536:function(a,e,t){t.a(a,async function(a,e){try{t(74423),t(18111),t(22489),t(61701),t(13579),t(45367),t(92731),t(3362),t(17642),t(58004),t(33853),t(45876),t(32475),t(15024),t(31698),t(62953);var i=t(40445),s=t(5124),o=t(67576),r=t(22786),n=t(1087),l=t(38508),h=(t(67094),t(76570)),d=t(54706),c=t(90986),p=a([l]);l=(p.then?(await p)():p)[0];let u,g,_,v,m,y,b=a=>a;const f="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z",$="M5.5,7A1.5,1.5 0 0,1 4,5.5A1.5,1.5 0 0,1 5.5,4A1.5,1.5 0 0,1 7,5.5A1.5,1.5 0 0,1 5.5,7M21.41,11.58L12.41,2.58C12.05,2.22 11.55,2 11,2H4C2.89,2 2,2.89 2,4V11C2,11.55 2.22,12.05 2.59,12.41L11.58,21.41C11.95,21.77 12.45,22 13,22C13.55,22 14.05,21.77 14.41,21.41L21.41,14.41C21.78,14.05 22,13.55 22,13C22,12.44 21.77,11.94 21.41,11.58Z",w="___ADD_NEW___";class C extends((0,d.E)(s.WF)){willUpdate(a){var e;this._pendingCategoryId&&a.has("_categories")&&null!==(e=this._categories)&&void 0!==e&&e.some(a=>a.category_id===this._pendingCategoryId)&&(this._setValue(this._pendingCategoryId),this._pendingCategoryId=void 0)}async open(){var a;await this.updateComplete,await(null===(a=this._picker)||void 0===a?void 0:a.open())}hassSubscribe(){return[(0,h.Ar)(this.hass.connection,this.scope,a=>{this._categories=a})]}render(){const a=this._computeValueRenderer(this._categories);return(0,s.qy)(u||(u=b` <ha-generic-picker .hass="${0}" .autofocus="${0}" .label="${0}" .placeholder="${0}" .value="${0}" .notFoundLabel="${0}" .emptyLabel="${0}" .getItems="${0}" .getAdditionalItems="${0}" .valueRenderer="${0}" .unknownItemText="${0}" @value-changed="${0}"> </ha-generic-picker> `),this.hass,this.autofocus,this.label,this.placeholder,this.value,this._notFoundLabel,this.hass.localize("ui.components.category-picker.no_categories"),this._getItems,this._getAdditionalItems,a,this.hass.localize("ui.components.category-picker.unknown"),this._valueChanged)}_valueChanged(a){a.stopPropagation();const e=a.detail.value;if(e){if(e.startsWith(w)){this.hass.loadFragmentTranslation("config");const a=e.substring(w.length);return void(0,c.S)(this,{scope:this.scope,suggestedName:a,createEntry:async a=>{var e;const t=await(0,h.s_)(this.hass,this.scope,a);return null!==(e=this._categories)&&void 0!==e&&e.some(a=>a.category_id===t.category_id)?this._setValue(t.category_id):this._pendingCategoryId=t.category_id,t}})}this._setValue(e)}else this._setValue(void 0)}_setValue(a){this.value=a,setTimeout(()=>{(0,n.r)(this,"value-changed",{value:a}),(0,n.r)(this,"change")},0)}constructor(...a){super(...a),this.noAdd=!1,this.disabled=!1,this.required=!1,this.hassSubscribeRequiredHostProps=["scope"],this._categoryMap=(0,r.A)(a=>a?new Map(a.map(a=>[a.category_id,a])):new Map),this._computeValueRenderer=(0,r.A)(a=>e=>{const t=this._categoryMap(a).get(e);return t?(0,s.qy)(_||(_=b` ${0} <span slot="headline">${0}</span> `),t.icon?(0,s.qy)(v||(v=b`<ha-icon slot="start" .icon="${0}"></ha-icon>`),t.icon):(0,s.qy)(m||(m=b`<ha-svg-icon slot="start" .path="${0}"></ha-svg-icon>`),$),t.name):(0,s.qy)(g||(g=b` <ha-svg-icon slot="start" .path="${0}"></ha-svg-icon> <span slot="headline">${0}</span> `),$,e)}),this._getCategories=(0,r.A)(a=>{if(!a)return;return a.map(a=>({id:a.category_id,primary:a.name,icon:a.icon||void 0,icon_path:a.icon?void 0:$,sorting_label:a.name}))}),this._getItems=()=>this._getCategories(this._categories),this._allCategoryNames=(0,r.A)(a=>a?[...new Set(a.map(a=>a.name.toLowerCase()).filter(Boolean))]:[]),this._getAdditionalItems=a=>{if(this.noAdd)return[];const e=this._allCategoryNames(this._categories);return a&&!e.includes(a.toLowerCase())?[{id:w+a,primary:this.hass.localize("ui.components.category-picker.add_new_suggestion",{name:a}),icon_path:f}]:[{id:w,primary:this.hass.localize("ui.components.category-picker.add_new"),icon_path:f}]},this._notFoundLabel=a=>this.hass.localize("ui.components.category-picker.no_match",{term:(0,s.qy)(y||(y=b`<b>‘${0}’</b>`),a)})}}(0,i.Cg)([(0,o.MZ)({attribute:!1})],C.prototype,"hass",void 0),(0,i.Cg)([(0,o.MZ)()],C.prototype,"scope",void 0),(0,i.Cg)([(0,o.MZ)()],C.prototype,"label",void 0),(0,i.Cg)([(0,o.MZ)()],C.prototype,"value",void 0),(0,i.Cg)([(0,o.MZ)()],C.prototype,"helper",void 0),(0,i.Cg)([(0,o.MZ)()],C.prototype,"placeholder",void 0),(0,i.Cg)([(0,o.MZ)({type:Boolean,attribute:"no-add"})],C.prototype,"noAdd",void 0),(0,i.Cg)([(0,o.MZ)({type:Boolean})],C.prototype,"disabled",void 0),(0,i.Cg)([(0,o.MZ)({type:Boolean})],C.prototype,"required",void 0),(0,i.Cg)([(0,o.wk)()],C.prototype,"_categories",void 0),(0,i.Cg)([(0,o.P)("ha-generic-picker")],C.prototype,"_picker",void 0),(0,i.Cg)([(0,o.wk)()],C.prototype,"_pendingCategoryId",void 0),C=(0,i.Cg)([(0,o.EM)("ha-category-picker")],C),e()}catch(u){e(u)}})}}]);