UNPKG

iobroker.lovelace

Version:

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

1 lines 25 kB
export const __rspack_esm_id=31990;export const __rspack_esm_ids=[31990];export const __webpack_modules__={66033(e,a,t){t.d(a,{L:()=>i});const i=(e,a)=>{const t=e.floor_id;return{area:e,floor:(t?a[t]:void 0)||null}}},44241(e,a,t){t.d(a,{G:()=>s});var i=t(5124);const s=e=>e("ui.common.supports_markdown",{markdown_help_link:i.qy`<a href="${"https://commonmark.org/help/"}" target="_blank" rel="noreferrer">${e("ui.common.markdown")}</a>`})},66086(e,a,t){t.a(e,async function(e,a){try{t(74423),t(18111),t(22489),t(61701);var i=t(62826),s=t(5124),o=t(22441),r=t(22786),n=t(1087),l=t(65522),h=t(55931),d=t(66033),c=t(49852),p=t(2514),u=t(65063),g=t(34023),_=(t(75064),t(38508)),m=t(26300),v=(t(67094),e([_,m]));[_,m]=v.then?(await v)():v;const y="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z",b="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",$="___ADD_NEW___";class w extends s.WF{willUpdate(e){this._pendingAreaId&&e.has("hass")&&this.hass.areas!==e.get("hass")?.areas&&this.hass.areas[this._pendingAreaId]&&(this._setValue(this._pendingAreaId),this._pendingAreaId=void 0)}async open(){await this.updateComplete,await(this._picker?.open())}render(){const e=this.label??this.hass.localize("ui.components.area-picker.area"),a=this._computeValueRenderer(this.hass.areas);let t=e;if(this.value&&e){const e=this.hass.areas[this.value];if(e){const{floor:a}=(0,d.L)(e,this.hass.floors);a&&(t=void 0)}}return s.qy` <ha-generic-picker .hass="${this.hass}" .autofocus="${this.autofocus}" .label="${t}" .helper="${this.helper}" .notFoundLabel="${this._notFoundLabel}" .emptyLabel="${this.hass.localize("ui.components.area-picker.no_areas")}" .disabled="${this.disabled}" .required="${this.required}" .value="${this.value}" .getItems="${this._getItems}" .getAdditionalItems="${this._getAdditionalItems}" .valueRenderer="${a}" .addButtonLabel="${this.addButtonLabel}" .searchKeys="${c.P}" .unknownItemText="${this.hass.localize("ui.components.area-picker.unknown")}" @value-changed="${this._valueChanged}"> </ha-generic-picker> `}_valueChanged(e){e.stopPropagation();const a=e.detail.value;if(a){if(a.startsWith($)){this.hass.loadFragmentTranslation("config");const e=a.substring($.length);return void(0,g.J)(this,{suggestedName:e,createEntry:async e=>{try{const a=await(0,p.L3)(this.hass,e);this.hass.areas[a.area_id]?this._setValue(a.area_id):this._pendingAreaId=a.area_id}catch(e){(0,u.showAlertDialog)(this,{title:this.hass.localize("ui.components.area-picker.failed_create_area"),text:e.message})}}})}this._setValue(a)}else this._setValue(void 0)}_setValue(e){this.value=e,(0,n.r)(this,"value-changed",{value:e}),(0,n.r)(this,"change")}constructor(...e){super(...e),this.noAdd=!1,this.disabled=!1,this.required=!1,this._getAreasMemoized=(0,r.A)(c.j),this._computeValueRenderer=(0,r.A)(e=>e=>{const a=this.hass.areas[e];if(!a)return s.qy` <ha-svg-icon slot="start" .path="${b}"></ha-svg-icon> <span slot="headline">${a}</span> `;const{floor:t}=(0,d.L)(a,this.hass.floors),i=a?(0,l.A)(a):void 0,o=t?(0,h.X)(t):void 0,r=a.icon;return s.qy` ${r?s.qy`<ha-icon slot="start" .icon="${r}"></ha-icon>`:s.qy`<ha-svg-icon slot="start" .path="${b}"></ha-svg-icon>`} <span slot="headline">${i}</span> ${o?s.qy`<span slot="supporting-text">${o}</span>`: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)(e=>Object.values(e).map(e=>(0,l.A)(e)?.toLowerCase()).filter(Boolean)),this._getAdditionalItems=e=>{if(this.noAdd)return[];const a=this._allAreaNames(this.hass.areas);return e&&!a.includes(e.toLowerCase())?[{id:$+e,primary:this.hass.localize("ui.components.area-picker.add_new_suggestion",{name:e}),icon_path:y}]:[{id:$,primary:this.hass.localize("ui.components.area-picker.add_new"),icon_path:y}]},this._notFoundLabel=e=>this.hass.localize("ui.components.area-picker.no_match",{term:s.qy`<b>‘${e}’</b>`})}}(0,i.Cg)([(0,o.MZ)({attribute:!1})],w.prototype,"hass",void 0),(0,i.Cg)([(0,o.MZ)()],w.prototype,"label",void 0),(0,i.Cg)([(0,o.MZ)()],w.prototype,"value",void 0),(0,i.Cg)([(0,o.MZ)()],w.prototype,"helper",void 0),(0,i.Cg)([(0,o.MZ)()],w.prototype,"placeholder",void 0),(0,i.Cg)([(0,o.MZ)({type:Boolean,attribute:"no-add"})],w.prototype,"noAdd",void 0),(0,i.Cg)([(0,o.MZ)({type:Array,attribute:"include-domains"})],w.prototype,"includeDomains",void 0),(0,i.Cg)([(0,o.MZ)({type:Array,attribute:"exclude-domains"})],w.prototype,"excludeDomains",void 0),(0,i.Cg)([(0,o.MZ)({type:Array,attribute:"include-device-classes"})],w.prototype,"includeDeviceClasses",void 0),(0,i.Cg)([(0,o.MZ)({type:Array,attribute:"exclude-areas"})],w.prototype,"excludeAreas",void 0),(0,i.Cg)([(0,o.MZ)({attribute:!1})],w.prototype,"deviceFilter",void 0),(0,i.Cg)([(0,o.MZ)({attribute:!1})],w.prototype,"entityFilter",void 0),(0,i.Cg)([(0,o.MZ)({type:Boolean})],w.prototype,"disabled",void 0),(0,i.Cg)([(0,o.MZ)({type:Boolean})],w.prototype,"required",void 0),(0,i.Cg)([(0,o.MZ)({attribute:"add-button-label"})],w.prototype,"addButtonLabel",void 0),(0,i.Cg)([(0,o.P)("ha-generic-picker")],w.prototype,"_picker",void 0),(0,i.Cg)([(0,o.wk)()],w.prototype,"_pendingAreaId",void 0),w=(0,i.Cg)([(0,o.EM)("ha-area-picker")],w),a()}catch(e){a(e)}})},56304(e,a,t){t.a(e,async function(e,a){try{var i=t(62826),s=t(99324),o=t(92070),r=t(5124),n=t(22441),l=t(6412),h=t(63672),d=t(57237),c=t(53305),p=e([s]);s=(p.then?(await p)():p)[0];class u extends((0,c.w)(r.WF)){get _formControl(){return this._textarea}setFocused(e){e?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(e){super.firstUpdated(e),this.autofocus&&(await(this._textarea?.updateComplete),this._textarea?.focus())}focus(e){this._textarea?.focus(e)}render(){const e=!this.label&&this._hasSlotController.test("label"),a=!this.hint&&this._hasSlotController.test("hint");return r.qy` <wa-textarea .value="${this.value??null}" .placeholder="${this.placeholder}" .readonly="${this.readonly}" .required="${this.required}" .rows="${this.rows??4}" .resize="${this.resize}" .disabled="${this.disabled}" name="${(0,h.J)(this.name)}" autocapitalize="${(0,h.J)(this.autocapitalize||void 0)}" autocomplete="${(0,h.J)(this.autocomplete)}" .autofocus="${this.autofocus}" .spellcheck="${this.spellcheck}" inputmode="${(0,h.J)(this.inputmode||void 0)}" enterkeyhint="${(0,h.J)(this.enterkeyhint||void 0)}" minlength="${(0,h.J)(this.minlength)}" maxlength="${(0,h.J)(this.maxlength)}" class="${(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||a||this.required||this._invalid||this.invalid)})}" @input="${this._handleInput}" @change="${this._handleChange}" @blur="${this._handleBlur}" @wa-invalid="${this._handleInvalid}" exportparts="base:wa-base, hint:wa-hint, textarea:wa-textarea"> ${this.label||e?r.qy`<slot name="label" slot="label">${this.label?this._renderLabel(this.label,this.required):r.s6}</slot>`:r.s6} <div slot="hint" class="${(0,l.H)({error:this.invalid||this._invalid})}" role="${(0,h.J)(this.invalid||this._invalid?"alert":void 0)}" aria-live="polite"> ${this._invalid||this.invalid?this.validationMessage||this._textarea?.validationMessage:this.hint||(a?r.qy`<slot name="hint"></slot>`:r.s6)} </div> </wa-textarea> `}constructor(...e){super(...e),this.resize="none",this._hasSlotController=new o.X(this,"label","hint"),this._requiredMarkerCSSVar="--ha-textarea-required-marker"}}u.styles=[c.N,r.AH`: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})],u.prototype,"rows",void 0),(0,i.Cg)([(0,n.MZ)()],u.prototype,"resize",void 0),(0,i.Cg)([(0,n.P)("wa-textarea")],u.prototype,"_textarea",void 0),u=(0,i.Cg)([(0,n.EM)("ha-textarea")],u),a()}catch(e){a(e)}})},49852(e,a,t){t.d(a,{P:()=>h,j:()=>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=(e,a,t,l,h,d,c,p,u,g,_,m="")=>{let v,y,b={};const $=Object.values(e),w=Object.values(t),f=Object.values(l);(d||c||p||u||g)&&(b=(0,n.g2)(f),v=w,y=f.filter(e=>e.area_id),d&&(v=v.filter(e=>{const a=b[e.id];return!(!a||!a.length)&&b[e.id].some(e=>d.includes((0,s.m)(e.entity_id)))}),y=y.filter(e=>d.includes((0,s.m)(e.entity_id)))),c&&(v=v.filter(e=>{const a=b[e.id];return!a||!a.length||f.every(e=>!c.includes((0,s.m)(e.entity_id)))}),y=y.filter(e=>!c.includes((0,s.m)(e.entity_id)))),p&&(v=v.filter(e=>{const a=b[e.id];return!(!a||!a.length)&&b[e.id].some(e=>{const a=h[e.entity_id];return!!a&&(a.attributes.device_class&&p.includes(a.attributes.device_class))})}),y=y.filter(e=>{const a=h[e.entity_id];return a.attributes.device_class&&p.includes(a.attributes.device_class)})),u&&(v=v.filter(e=>u(e))),g&&(v=v.filter(e=>{const a=b[e.id];return!(!a||!a.length)&&b[e.id].some(e=>{const a=h[e.entity_id];return!!a&&g(a)})}),y=y.filter(e=>{const a=h[e.entity_id];return!!a&&g(a)})));let C,k=$;v&&(C=v.filter(e=>e.area_id).map(e=>e.area_id)),y&&(C=(C??[]).concat(y.filter(e=>e.area_id).map(e=>e.area_id))),C&&(k=k.filter(e=>C.includes(e.area_id))),_&&(k=k.filter(e=>!_.includes(e.area_id)));return k.map(e=>{const{floor:t}=(0,r.L)(e,a),s=t?(0,o.X)(t):void 0,n=(0,i.A)(e);return{id:`${m}${e.area_id}`,primary:n||e.area_id,secondary:s,icon:e.icon||void 0,icon_path:e.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:e.area_id,aliases:e.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}]},23605(e,a,t){t.a(e,async function(e,i){try{t.r(a);t(74423);var s=t(62826),o=t(5124),r=t(22441),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),m=t(16536),v=t(44241),y=t(14503),b=t(36215),$=t(97268),w=e([l,h,d,c,p,u,g,_,m,b]);[l,h,d,c,p,u,g,_,m,b]=w.then?(await w)():w;const f="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z";class C extends o.WF{showDialog(e){this._open=!0,this._params=e,this._newIcon="icon"in e.config?e.config.icon:void 0,this._newName=e.config.alias||this.hass.localize(`ui.panel.config.${this._params.domain}.editor.default_name`),this._newDescription=e.config.description||"",this._entryUpdates=e.entityRegistryUpdate||{area:e.entityRegistryEntry?.area_id||"",labels:e.entityRegistryEntry?.labels||[],category:e.entityRegistryEntry?.categories[e.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(){this._params?.onClose(),this._visibleOptionals=[],this._params=void 0,(0,n.r)(this,"dialog-closed",{dialog:this.localName})}_renderOptionalChip(e,a){return this._visibleOptionals.includes(e)?o.s6:o.qy` <ha-assist-chip id="${e}" @click="${this._addOptional}" label="${a}"> <ha-svg-icon slot="icon" .path="${f}"></ha-svg-icon> </ha-assist-chip> `}_renderDiscard(){return this._params?.onDiscard?o.qy` <ha-button slot="secondaryAction" appearance="plain" variant="danger" @click="${this._handleDiscard}"> ${this.hass.localize("ui.common.dont_save")} </ha-button> `:o.s6}_renderInputs(){return!this._params||this._params.hideInputs?o.s6:o.qy` <ha-input autofocus .value="${this._newName}" .placeholder="${this.hass.localize(`ui.panel.config.${this._params.domain}.editor.default_name`)}" .label="${this.hass.localize("ui.panel.config.automation.editor.alias")}" required type="text" @input="${this._valueChanged}"></ha-input> ${"script"===this._params.domain&&this._visibleOptionals.includes("icon")?o.qy` <ha-icon-picker .label="${this.hass.localize("ui.panel.config.automation.editor.icon")}" .value="${this._newIcon}" @value-changed="${this._iconChanged}"> <ha-domain-icon slot="start" domain="${this._params.domain}"> </ha-domain-icon> </ha-icon-picker> `:o.s6} ${this._visibleOptionals.includes("description")?o.qy`<ha-textarea .label="${this.hass.localize("ui.panel.config.automation.editor.description.label")}" .placeholder="${this.hass.localize("ui.panel.config.automation.editor.description.placeholder")}" name="description" resize="auto" .value="${this._newDescription}" .hint="${(0,v.G)(this.hass.localize)}" @input="${this._valueChanged}"></ha-textarea>`:o.s6} ${this._visibleOptionals.includes("category")?o.qy` <ha-category-picker id="category" .hass="${this.hass}" .scope="${this._params.domain}" .label="${this.hass.localize("ui.components.category-picker.category")}" .value="${this._entryUpdates.category}" @value-changed="${this._registryEntryChanged}"></ha-category-picker>`:o.s6} ${this._visibleOptionals.includes("labels")?o.qy` <ha-labels-picker id="labels" .hass="${this.hass}" .value="${this._entryUpdates.labels}" @value-changed="${this._registryEntryChanged}"></ha-labels-picker>`:o.s6} ${this._visibleOptionals.includes("area")?o.qy` <ha-area-picker id="area" .hass="${this.hass}" .value="${this._entryUpdates.area}" @value-changed="${this._registryEntryChanged}"></ha-area-picker>`:o.s6} <ha-chip-set> ${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"))} </ha-chip-set> `}render(){if(!this._params)return o.s6;const e=this.hass.localize(this._params.config.alias?"ui.panel.config.automation.editor.rename":"ui.common.save");return o.qy` <ha-dialog .open="${this._open}" @closed="${this._dialogClosed}" header-title="${this._params.title||e}"> ${this._params.hideInputs?o.s6:o.qy`<ha-suggest-with-ai-button slot="headerActionItems" .hass="${this.hass}" .generateTask="${this._generateTask}" @suggestion="${this._handleSuggestion}"></ha-suggest-with-ai-button>`} ${this._error?o.qy`<ha-alert alert-type="error">${this.hass.localize("ui.panel.config.automation.editor.missing_name")}</ha-alert>`:""} ${this._params.description?o.qy`<p>${this._params.description}</p>`:o.s6} ${this._renderInputs()} <ha-dialog-footer slot="footer"> ${this._renderDiscard()} <ha-button slot="secondaryAction" appearance="plain" @click="${this.closeDialog}"> ${this.hass.localize("ui.common.cancel")} </ha-button> <ha-button slot="primaryAction" @click="${this._save}"> ${this.hass.localize(this._params.config.alias&&!this._params.onDiscard?"ui.panel.config.automation.editor.rename":"ui.common.save")} </ha-button> </ha-dialog-footer> </ha-dialog> `}_addOptional(e){e.stopPropagation();const a=e.target.id;this._visibleOptionals=[...this._visibleOptionals,a]}_registryEntryChanged(e){e.stopPropagation();const a=e.target.id,t=e.detail.value;this._entryUpdates={...this._entryUpdates,[a]:t}}_iconChanged(e){e.stopPropagation(),this._newIcon=e.detail.value||void 0}_valueChanged(e){e.stopPropagation();const a=e.target;"description"===a.name?this._newDescription=a.value:this._newName=a.value}_handleDiscard(){this._params?.onDiscard?.(),this.closeDialog()}async _handleSuggestion(e){if(!this._params)throw new Error("Dialog params not set");const a=e.detail,t=await(0,b.Fn)(this.hass.connection,this._params.domain,a);t.name&&(this._newName=t.name),t.description&&(this._newDescription=t.description,this._visibleOptionals.includes("description")||(this._visibleOptionals=[...this._visibleOptionals,"description"])),t.category&&(this._entryUpdates={...this._entryUpdates,category:t.category},this._visibleOptionals.includes("category")||(this._visibleOptionals=[...this._visibleOptionals,"category"])),t.labels?.length&&(this._entryUpdates={...this._entryUpdates,labels:t.labels},this._visibleOptionals.includes("labels")||(this._visibleOptionals=[...this._visibleOptionals,"labels"]))}async _save(){this._params&&(this._newName?("script"===this._params.domain?await this._params.updateConfig({...this._params.config,alias:this._newName,description:this._newDescription,icon:this._newIcon},this._entryUpdates):await this._params.updateConfig({...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,o.AH`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(...e){super(...e),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,$.m)(this.hass.connection,this.hass.states,this._params.domain))}}}(0,s.Cg)([(0,r.MZ)({attribute:!1})],C.prototype,"hass",void 0),(0,s.Cg)([(0,r.wk)()],C.prototype,"_open",void 0),(0,s.Cg)([(0,r.wk)()],C.prototype,"_error",void 0),(0,s.Cg)([(0,r.wk)()],C.prototype,"_visibleOptionals",void 0),(0,s.Cg)([(0,r.wk)()],C.prototype,"_entryUpdates",void 0),(0,s.Cg)([(0,r.wk)()],C.prototype,"_params",void 0),(0,s.Cg)([(0,r.wk)()],C.prototype,"_newName",void 0),C=(0,s.Cg)([(0,r.EM)("ha-dialog-automation-save")],C),i()}catch(e){i(e)}})},16536(e,a,t){t.a(e,async function(e,a){try{t(74423),t(18111),t(22489),t(61701),t(13579),t(45367),t(92731),t(17642),t(58004),t(33853),t(45876),t(32475),t(15024),t(31698);var i=t(62826),s=t(5124),o=t(22441),r=t(22786),n=t(1087),l=t(38508),h=(t(67094),t(76570)),d=t(54706),c=t(90986),p=e([l]);l=(p.then?(await p)():p)[0];const u="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z",g="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",_="___ADD_NEW___";class m extends((0,d.E)(s.WF)){willUpdate(e){this._pendingCategoryId&&e.has("_categories")&&this._categories?.some(e=>e.category_id===this._pendingCategoryId)&&(this._setValue(this._pendingCategoryId),this._pendingCategoryId=void 0)}async open(){await this.updateComplete,await(this._picker?.open())}hassSubscribe(){return[(0,h.Ar)(this.hass.connection,this.scope,e=>{this._categories=e})]}render(){const e=this._computeValueRenderer(this._categories);return s.qy` <ha-generic-picker .hass="${this.hass}" .autofocus="${this.autofocus}" .label="${this.label}" .placeholder="${this.placeholder}" .value="${this.value}" .notFoundLabel="${this._notFoundLabel}" .emptyLabel="${this.hass.localize("ui.components.category-picker.no_categories")}" .getItems="${this._getItems}" .getAdditionalItems="${this._getAdditionalItems}" .valueRenderer="${e}" .unknownItemText="${this.hass.localize("ui.components.category-picker.unknown")}" @value-changed="${this._valueChanged}"> </ha-generic-picker> `}_valueChanged(e){e.stopPropagation();const a=e.detail.value;if(a){if(a.startsWith(_)){this.hass.loadFragmentTranslation("config");const e=a.substring(_.length);return void(0,c.S)(this,{scope:this.scope,suggestedName:e,createEntry:async e=>{const a=await(0,h.s_)(this.hass,this.scope,e);return this._categories?.some(e=>e.category_id===a.category_id)?this._setValue(a.category_id):this._pendingCategoryId=a.category_id,a}})}this._setValue(a)}else this._setValue(void 0)}_setValue(e){this.value=e,setTimeout(()=>{(0,n.r)(this,"value-changed",{value:e}),(0,n.r)(this,"change")},0)}constructor(...e){super(...e),this.noAdd=!1,this.disabled=!1,this.required=!1,this.hassSubscribeRequiredHostProps=["scope"],this._categoryMap=(0,r.A)(e=>e?new Map(e.map(e=>[e.category_id,e])):new Map),this._computeValueRenderer=(0,r.A)(e=>a=>{const t=this._categoryMap(e).get(a);return t?s.qy` ${t.icon?s.qy`<ha-icon slot="start" .icon="${t.icon}"></ha-icon>`:s.qy`<ha-svg-icon slot="start" .path="${g}"></ha-svg-icon>`} <span slot="headline">${t.name}</span> `:s.qy` <ha-svg-icon slot="start" .path="${g}"></ha-svg-icon> <span slot="headline">${a}</span> `}),this._getCategories=(0,r.A)(e=>{if(!e)return;return e.map(e=>({id:e.category_id,primary:e.name,icon:e.icon||void 0,icon_path:e.icon?void 0:g,sorting_label:e.name}))}),this._getItems=()=>this._getCategories(this._categories),this._allCategoryNames=(0,r.A)(e=>e?[...new Set(e.map(e=>e.name.toLowerCase()).filter(Boolean))]:[]),this._getAdditionalItems=e=>{if(this.noAdd)return[];const a=this._allCategoryNames(this._categories);return e&&!a.includes(e.toLowerCase())?[{id:_+e,primary:this.hass.localize("ui.components.category-picker.add_new_suggestion",{name:e}),icon_path:u}]:[{id:_,primary:this.hass.localize("ui.components.category-picker.add_new"),icon_path:u}]},this._notFoundLabel=e=>this.hass.localize("ui.components.category-picker.no_match",{term:s.qy`<b>‘${e}’</b>`})}}(0,i.Cg)([(0,o.MZ)({attribute:!1})],m.prototype,"hass",void 0),(0,i.Cg)([(0,o.MZ)()],m.prototype,"scope",void 0),(0,i.Cg)([(0,o.MZ)()],m.prototype,"label",void 0),(0,i.Cg)([(0,o.MZ)()],m.prototype,"value",void 0),(0,i.Cg)([(0,o.MZ)()],m.prototype,"helper",void 0),(0,i.Cg)([(0,o.MZ)()],m.prototype,"placeholder",void 0),(0,i.Cg)([(0,o.MZ)({type:Boolean,attribute:"no-add"})],m.prototype,"noAdd",void 0),(0,i.Cg)([(0,o.MZ)({type:Boolean})],m.prototype,"disabled",void 0),(0,i.Cg)([(0,o.MZ)({type:Boolean})],m.prototype,"required",void 0),(0,i.Cg)([(0,o.wk)()],m.prototype,"_categories",void 0),(0,i.Cg)([(0,o.P)("ha-generic-picker")],m.prototype,"_picker",void 0),(0,i.Cg)([(0,o.wk)()],m.prototype,"_pendingCategoryId",void 0),m=(0,i.Cg)([(0,o.EM)("ha-category-picker")],m),a()}catch(e){a(e)}})}};