iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
3 lines • 36.2 kB
JavaScript
/*! For license information please see 92212.912d7f3f60d2b066.js.LICENSE.txt */
export const __webpack_ids__=["92212"];export const __webpack_modules__={81282:function(e,i,a){var t=a(44249),o=(a(9359),a(68107),a(56475),a(70104),a(52924),a(57243)),s=a(15093),n=a(35359),r=a(27486),l=a(36522),d=a(73850),c=a(24360),h=a(82100),u=a(46329),p=a(76131),v=a(61107);a(94279),a(23334),a(7285),a(37583);const m=e=>o.dy`<ha-list-item graphic="icon" class="${(0,n.$)({"add-new":e.area_id===_})}"> ${e.icon?o.dy`<ha-icon slot="graphic" .icon="${e.icon}"></ha-icon>`:o.dy`<ha-svg-icon slot="graphic" .path="${"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"}"></ha-svg-icon>`} ${e.name} </ha-list-item>`,_="___ADD_NEW___",y="___NO_ITEMS___",g="___ADD_NEW_SUGGESTION___";(0,t.Z)([(0,s.Mo)("ha-area-picker")],(function(e,i){return{F:class extends i{constructor(...i){super(...i),e(this)}},d:[{kind:"field",decorators:[(0,s.Cb)({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[(0,s.Cb)()],key:"label",value:void 0},{kind:"field",decorators:[(0,s.Cb)()],key:"value",value:void 0},{kind:"field",decorators:[(0,s.Cb)()],key:"helper",value:void 0},{kind:"field",decorators:[(0,s.Cb)()],key:"placeholder",value:void 0},{kind:"field",decorators:[(0,s.Cb)({type:Boolean,attribute:"no-add"})],key:"noAdd",value:()=>!1},{kind:"field",decorators:[(0,s.Cb)({type:Array,attribute:"include-domains"})],key:"includeDomains",value:void 0},{kind:"field",decorators:[(0,s.Cb)({type:Array,attribute:"exclude-domains"})],key:"excludeDomains",value:void 0},{kind:"field",decorators:[(0,s.Cb)({type:Array,attribute:"include-device-classes"})],key:"includeDeviceClasses",value:void 0},{kind:"field",decorators:[(0,s.Cb)({type:Array,attribute:"exclude-areas"})],key:"excludeAreas",value:void 0},{kind:"field",decorators:[(0,s.Cb)({attribute:!1})],key:"deviceFilter",value:void 0},{kind:"field",decorators:[(0,s.Cb)({attribute:!1})],key:"entityFilter",value:void 0},{kind:"field",decorators:[(0,s.Cb)({type:Boolean})],key:"disabled",value:()=>!1},{kind:"field",decorators:[(0,s.Cb)({type:Boolean})],key:"required",value:()=>!1},{kind:"field",decorators:[(0,s.SB)()],key:"_opened",value:void 0},{kind:"field",decorators:[(0,s.IO)("ha-combo-box",!0)],key:"comboBox",value:void 0},{kind:"field",key:"_suggestion",value:void 0},{kind:"field",key:"_init",value:()=>!1},{kind:"method",key:"open",value:async function(){await this.updateComplete,await(this.comboBox?.open())}},{kind:"method",key:"focus",value:async function(){await this.updateComplete,await(this.comboBox?.focus())}},{kind:"field",key:"_getAreas",value(){return(0,r.Z)(((e,i,a,t,o,s,n,r,l,c)=>{let h,p,v={};(t||o||s||n||r)&&(v=(0,u.R6)(a),h=i,p=a.filter((e=>e.area_id)),t&&(h=h.filter((e=>{const i=v[e.id];return!(!i||!i.length)&&v[e.id].some((e=>t.includes((0,d.M)(e.entity_id))))})),p=p.filter((e=>t.includes((0,d.M)(e.entity_id))))),o&&(h=h.filter((e=>{const i=v[e.id];return!i||!i.length||a.every((e=>!o.includes((0,d.M)(e.entity_id))))})),p=p.filter((e=>!o.includes((0,d.M)(e.entity_id))))),s&&(h=h.filter((e=>{const i=v[e.id];return!(!i||!i.length)&&v[e.id].some((e=>{const i=this.hass.states[e.entity_id];return!!i&&(i.attributes.device_class&&s.includes(i.attributes.device_class))}))})),p=p.filter((e=>{const i=this.hass.states[e.entity_id];return i.attributes.device_class&&s.includes(i.attributes.device_class)}))),n&&(h=h.filter((e=>n(e)))),r&&(h=h.filter((e=>{const i=v[e.id];return!(!i||!i.length)&&v[e.id].some((e=>{const i=this.hass.states[e.entity_id];return!!i&&r(i)}))})),p=p.filter((e=>{const i=this.hass.states[e.entity_id];return!!i&&r(i)}))));let m,g=e;return h&&(m=h.filter((e=>e.area_id)).map((e=>e.area_id))),p&&(m=(m??[]).concat(p.filter((e=>e.area_id)).map((e=>e.area_id)))),m&&(g=g.filter((e=>m.includes(e.area_id)))),c&&(g=g.filter((e=>!c.includes(e.area_id)))),g.length||(g=[{area_id:y,floor_id:null,name:this.hass.localize("ui.components.area-picker.no_areas"),picture:null,icon:null,aliases:[],labels:[],temperature_entity_id:null,humidity_entity_id:null,created_at:0,modified_at:0}]),l?g:[...g,{area_id:_,floor_id:null,name:this.hass.localize("ui.components.area-picker.add_new"),picture:null,icon:"mdi:plus",aliases:[],labels:[],temperature_entity_id:null,humidity_entity_id:null,created_at:0,modified_at:0}]}))}},{kind:"method",key:"updated",value:function(e){if(!this._init&&this.hass||this._init&&e.has("_opened")&&this._opened){this._init=!0;const e=this._getAreas(Object.values(this.hass.areas),Object.values(this.hass.devices),Object.values(this.hass.entities),this.includeDomains,this.excludeDomains,this.includeDeviceClasses,this.deviceFilter,this.entityFilter,this.noAdd,this.excludeAreas).map((e=>({...e,strings:[e.area_id,...e.aliases,e.name]})));this.comboBox.items=e,this.comboBox.filteredItems=e}}},{kind:"method",key:"render",value:function(){return o.dy` <ha-combo-box .hass="${this.hass}" .helper="${this.helper}" item-value-path="area_id" item-id-path="area_id" item-label-path="name" .value="${this._value}" .disabled="${this.disabled}" .required="${this.required}" .label="${void 0===this.label&&this.hass?this.hass.localize("ui.components.area-picker.area"):this.label}" .placeholder="${this.placeholder?this.hass.areas[this.placeholder]?.name:void 0}" .renderer="${m}" -changed="${this._filterChanged}" -changed="${this._openedChanged}" -changed="${this._areaChanged}"> </ha-combo-box> `}},{kind:"method",key:"_filterChanged",value:function(e){const i=e.target,a=e.detail.value;if(!a)return void(this.comboBox.filteredItems=this.comboBox.items);const t=(0,c.q)(a,i.items?.filter((e=>![y,_].includes(e.label_id)))||[]);0===t.length?this.noAdd?(this._suggestion=a,this.comboBox.filteredItems=[{area_id:g,floor_id:null,name:this.hass.localize("ui.components.area-picker.add_new_sugestion",{name:this._suggestion}),icon:"mdi:plus",picture:null,labels:[],aliases:[],temperature_entity_id:null,humidity_entity_id:null,created_at:0,modified_at:0}]):this.comboBox.filteredItems=[{area_id:y,floor_id:null,name:this.hass.localize("ui.components.area-picker.no_match"),icon:null,picture:null,labels:[],aliases:[],temperature_entity_id:null,humidity_entity_id:null,created_at:0,modified_at:0}]:this.comboBox.filteredItems=t}},{kind:"get",key:"_value",value:function(){return this.value||""}},{kind:"method",key:"_openedChanged",value:function(e){this._opened=e.detail.value}},{kind:"method",key:"_areaChanged",value:function(e){e.stopPropagation();let i=e.detail.value;if(i===y)return i="",void this.comboBox.setInputValue("");[g,_].includes(i)?(e.target.value=this._value,this.hass.loadFragmentTranslation("config"),(0,v.E)(this,{suggestedName:i===g?this._suggestion:"",createEntry:async e=>{try{const i=await(0,h.Lo)(this.hass,e),a=[...Object.values(this.hass.areas),i];this.comboBox.filteredItems=this._getAreas(a,Object.values(this.hass.devices),Object.values(this.hass.entities),this.includeDomains,this.excludeDomains,this.includeDeviceClasses,this.deviceFilter,this.entityFilter,this.noAdd,this.excludeAreas),await this.updateComplete,await this.comboBox.updateComplete,this._setValue(i.area_id)}catch(e){(0,p.showAlertDialog)(this,{title:this.hass.localize("ui.components.area-picker.failed_create_area"),text:e.message})}}}),this._suggestion=void 0,this.comboBox.setInputValue("")):i!==this._value&&this._setValue(i)}},{kind:"method",key:"_setValue",value:function(e){this.value=e,setTimeout((()=>{(0,l.B)(this,"value-changed",{value:e}),(0,l.B)(this,"change")}),0)}}]}}),o.oi)},33067:function(e,i,a){a.a(e,(async function(e,i){try{var t=a(44249),o=a(57243),s=a(15093),n=a(94571),r=a(45729),l=a(88238),d=(a(65981),e([r]));r=(d.then?(await d)():d)[0];(0,t.Z)([(0,s.Mo)("ha-domain-icon")],(function(e,i){return{F:class extends i{constructor(...i){super(...i),e(this)}},d:[{kind:"field",decorators:[(0,s.Cb)({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[(0,s.Cb)()],key:"domain",value:void 0},{kind:"field",decorators:[(0,s.Cb)({attribute:!1})],key:"deviceClass",value:void 0},{kind:"field",decorators:[(0,s.Cb)()],key:"icon",value:void 0},{kind:"field",decorators:[(0,s.Cb)({attribute:"brand-fallback",type:Boolean})],key:"brandFallback",value:void 0},{kind:"method",key:"render",value:function(){if(this.icon)return o.dy`<ha-icon .icon="${this.icon}"></ha-icon>`;if(!this.domain)return o.Ld;if(!this.hass)return this._renderFallback();const e=(0,r.KS)(this.hass,this.domain,this.deviceClass).then((e=>e?o.dy`<ha-icon .icon="${e}"></ha-icon>`:this._renderFallback()));return o.dy`${(0,n.C)(e)}`}},{kind:"method",key:"_renderFallback",value:function(){if(this.domain&&this.domain in r.Ls)return o.dy` <ha-svg-icon .path="${r.Ls[this.domain]}"></ha-svg-icon> `;if(this.brandFallback){const e=(0,l.X1)({domain:this.domain,type:"icon",darkOptimized:this.hass.themes?.darkMode});return o.dy` <img alt="" src="${e}" crossorigin="anonymous" referrerpolicy="no-referrer"> `}return o.dy`<ha-svg-icon .path="${r.Rb}"></ha-svg-icon>`}},{kind:"field",static:!0,key:"styles",value:()=>o.iv`img{width:var(--mdc-icon-size,24px)}`}]}}),o.oi);i()}catch(e){i(e)}}))},21393:function(e,i,a){a.r(i),a.d(i,{HaIconPicker:()=>p});var t=a(44249),o=(a(92745),a(9359),a(56475),a(31526),a(70104),a(52924),a(92519),a(42179),a(89256),a(24931),a(88463),a(57449),a(19814),a(57243)),s=a(15093),n=a(27486),r=a(36522),l=a(80654);a(94279),a(7285),a(65981);let d=[],c=!1;const h=async e=>{try{const i=l.g[e].getIconList;if("function"!=typeof i)return[];const a=await i();return a.map((i=>({icon:`${e}:${i.name}`,parts:new Set(i.name.split("-")),keywords:i.keywords??[]})))}catch(i){return console.warn(`Unable to load icon list for ${e} iconset`),[]}},u=e=>o.dy`<ha-list-item graphic="avatar"> <ha-icon .icon="${e.icon}" slot="graphic"></ha-icon> ${e.icon} </ha-list-item>`;let p=(0,t.Z)([(0,s.Mo)("ha-icon-picker")],(function(e,i){return{F:class extends i{constructor(...i){super(...i),e(this)}},d:[{kind:"field",decorators:[(0,s.Cb)({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[(0,s.Cb)()],key:"value",value:void 0},{kind:"field",decorators:[(0,s.Cb)()],key:"label",value:void 0},{kind:"field",decorators:[(0,s.Cb)()],key:"helper",value:void 0},{kind:"field",decorators:[(0,s.Cb)()],key:"placeholder",value:void 0},{kind:"field",decorators:[(0,s.Cb)({attribute:"error-message"})],key:"errorMessage",value:void 0},{kind:"field",decorators:[(0,s.Cb)({type:Boolean})],key:"disabled",value:()=>!1},{kind:"field",decorators:[(0,s.Cb)({type:Boolean})],key:"required",value:()=>!1},{kind:"field",decorators:[(0,s.Cb)({type:Boolean})],key:"invalid",value:()=>!1},{kind:"method",key:"render",value:function(){return o.dy` <ha-combo-box .hass="${this.hass}" item-value-path="icon" item-label-path="icon" .value="${this._value}" allow-custom-value .dataProvider="${c?this._iconProvider:void 0}" .label="${this.label}" .helper="${this.helper}" .disabled="${this.disabled}" .required="${this.required}" .placeholder="${this.placeholder}" .errorMessage="${this.errorMessage}" .invalid="${this.invalid}" .renderer="${u}" icon -changed="${this._openedChanged}" -changed="${this._valueChanged}"> ${this._value||this.placeholder?o.dy` <ha-icon .icon="${this._value||this.placeholder}" slot="icon"> </ha-icon> `:o.dy`<slot slot="icon" name="fallback"></slot>`} </ha-combo-box> `}},{kind:"field",key:"_filterIcons",value:()=>(0,n.Z)(((e,i=d)=>{if(!e)return i;const a=[],t=(e,i)=>a.push({icon:e,rank:i});for(const a of i)a.parts.has(e)?t(a.icon,1):a.keywords.includes(e)?t(a.icon,2):a.icon.includes(e)?t(a.icon,3):a.keywords.some((i=>i.includes(e)))&&t(a.icon,4);return 0===a.length&&t(e,0),a.sort(((e,i)=>e.rank-i.rank))}))},{kind:"field",key:"_iconProvider",value(){return(e,i)=>{const a=this._filterIcons(e.filter.toLowerCase(),d),t=e.page*e.pageSize,o=t+e.pageSize;i(a.slice(t,o),a.length)}}},{kind:"method",key:"_openedChanged",value:async function(e){e.detail.value&&!c&&(await(async()=>{c=!0;const e=await a.e("25016").then(a.t.bind(a,58134,19));d=e.default.map((e=>({icon:`mdi:${e.name}`,parts:new Set(e.name.split("-")),keywords:e.keywords})));const i=[];Object.keys(l.g).forEach((e=>{i.push(h(e))})),(await Promise.all(i)).forEach((e=>{d.push(...e)}))})(),this.requestUpdate())}},{kind:"method",key:"_valueChanged",value:function(e){e.stopPropagation(),this._setValue(e.detail.value)}},{kind:"method",key:"_setValue",value:function(e){this.value=e,(0,r.B)(this,"value-changed",{value:this._value},{bubbles:!1,composed:!1})}},{kind:"get",key:"_value",value:function(){return this.value||""}},{kind:"field",static:!0,key:"styles",value:()=>o.iv`[slot=icon]{color:var(--primary-text-color);position:relative;bottom:2px}[slot=prefix]{margin-right:8px;margin-inline-end:8px;margin-inline-start:initial}`}]}}),o.oi)},61179:function(e,i,a){a.a(e,(async function(e,t){try{a.r(i);var o=a(44249),s=(a(31622),a(57243)),n=a(15093),r=a(36522),l=(a(99426),a(33067)),d=(a(21393),a(40917),a(83166),a(47314),a(49658),a(41307),a(74666),a(60370),a(81282),a(28008)),c=e([l]);l=(c.then?(await c)():c)[0];const h="M19,6.41L17.59,5L12,10.59L6.41,5L5,6.41L10.59,12L5,17.59L6.41,19L12,13.41L17.59,19L19,17.59L13.41,12L19,6.41Z",u="M19,13H13V19H11V13H5V11H11V5H13V11H19V13Z";(0,o.Z)([(0,n.Mo)("ha-dialog-automation-save")],(function(e,i){return{F:class extends i{constructor(...i){super(...i),e(this)}},d:[{kind:"field",decorators:[(0,n.Cb)({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[(0,n.SB)()],key:"_opened",value:()=>!1},{kind:"field",decorators:[(0,n.SB)()],key:"_error",value:void 0},{kind:"field",decorators:[(0,n.SB)()],key:"_visibleOptionals",value:()=>[]},{kind:"field",decorators:[(0,n.SB)()],key:"_entryUpdates",value:void 0},{kind:"field",key:"_params",value:void 0},{kind:"field",key:"_newName",value:void 0},{kind:"field",key:"_newIcon",value:void 0},{kind:"field",key:"_newDescription",value:void 0},{kind:"method",key:"showDialog",value:function(e){this._opened=!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":""]}},{kind:"method",key:"closeDialog",value:function(){return this._params.onClose(),this._opened&&(0,r.B)(this,"dialog-closed",{dialog:this.localName}),this._opened=!1,this._visibleOptionals=[],!0}},{kind:"method",key:"_renderOptionalChip",value:function(e,i){return this._visibleOptionals.includes(e)?s.Ld:s.dy` <ha-assist-chip id="${e}" ="${this._addOptional}" label="${i}"> <ha-svg-icon slot="icon" .path="${u}"></ha-svg-icon> </ha-assist-chip> `}},{kind:"method",key:"_renderDiscard",value:function(){return this._params.onDiscard?s.dy` <ha-button ="${this._handleDiscard}" slot="secondaryAction" class="destructive"> ${this.hass.localize("ui.common.dont_save")} </ha-button> `:s.Ld}},{kind:"method",key:"_renderInputs",value:function(){return this._params.hideInputs?s.Ld:s.dy` <ha-textfield dialogInitialFocus .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="string" ="${this._valueChanged}"></ha-textfield> ${"script"===this._params.domain&&this._visibleOptionals.includes("icon")?s.dy` <ha-icon-picker .hass="${this.hass}" .label="${this.hass.localize("ui.panel.config.automation.editor.icon")}" .value="${this._newIcon}" -changed="${this._iconChanged}"> <ha-domain-icon slot="fallback" domain="${this._params.domain}" .hass="${this.hass}"> </ha-domain-icon> </ha-icon-picker> `:s.Ld} ${this._visibleOptionals.includes("description")?s.dy` <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" autogrow .value="${this._newDescription}" ="${this._valueChanged}"></ha-textarea>`:s.Ld} ${this._visibleOptionals.includes("category")?s.dy` <ha-category-picker id="category" .hass="${this.hass}" .scope="${this._params.domain}" .value="${this._entryUpdates.category}" -changed="${this._registryEntryChanged}"></ha-category-picker>`:s.Ld} ${this._visibleOptionals.includes("labels")?s.dy` <ha-labels-picker id="labels" .hass="${this.hass}" .value="${this._entryUpdates.labels}" -changed="${this._registryEntryChanged}"></ha-labels-picker>`:s.Ld} ${this._visibleOptionals.includes("area")?s.dy` <ha-area-picker id="area" .hass="${this.hass}" .value="${this._entryUpdates.area}" -changed="${this._registryEntryChanged}"></ha-area-picker>`:s.Ld} <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")):s.Ld} ${this._renderOptionalChip("area",this.hass.localize("ui.panel.config.automation.editor.dialog.add_area"))} ${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"))} </ha-chip-set> `}},{kind:"method",key:"render",value:function(){if(!this._opened)return s.Ld;const e=this.hass.localize(this._params.config.alias?"ui.panel.config.automation.editor.rename":"ui.panel.config.automation.editor.save");return s.dy` <ha-dialog open scrimClickAction ="${this.closeDialog}" .heading="${e}"> <ha-dialog-header slot="heading"> <ha-icon-button slot="navigationIcon" dialogAction="cancel" .label="${this.hass.localize("ui.common.close")}" .path="${h}"></ha-icon-button> <span slot="title">${this._params.title||e}</span> </ha-dialog-header> ${this._error?s.dy`<ha-alert alert-type="error">${this.hass.localize("ui.panel.config.automation.editor.missing_name")}</ha-alert>`:""} ${this._params.description?s.dy`<p>${this._params.description}</p>`:s.Ld} ${this._renderInputs()} ${this._renderDiscard()} <div slot="primaryAction"> <mwc-button ="${this.closeDialog}"> ${this.hass.localize("ui.common.cancel")} </mwc-button> <mwc-button ="${this._save}"> ${this.hass.localize(this._params.config.alias&&!this._params.onDiscard?"ui.panel.config.automation.editor.rename":"ui.panel.config.automation.editor.save")} </mwc-button> </div> </ha-dialog> `}},{kind:"method",key:"_addOptional",value:function(e){e.stopPropagation();const i=e.target.id;this._visibleOptionals=[...this._visibleOptionals,i]}},{kind:"method",key:"_registryEntryChanged",value:function(e){e.stopPropagation();const i=e.target.id,a=e.detail.value;this._entryUpdates={...this._entryUpdates,[i]:a}}},{kind:"method",key:"_iconChanged",value:function(e){e.stopPropagation(),this._newIcon=e.detail.value||void 0}},{kind:"method",key:"_valueChanged",value:function(e){e.stopPropagation();const i=e.target;"description"===i.name?this._newDescription=i.value:this._newName=i.value}},{kind:"method",key:"_handleDiscard",value:function(){this._params.onDiscard?.(),this.closeDialog()}},{kind:"method",key:"_save",value:async function(){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"}},{kind:"get",static:!0,key:"styles",value:function(){return[d.Qx,d.yu,s.iv`ha-dialog{--dialog-content-padding:0 24px 24px 24px} all and (min-width:500px){ha-dialog{--mdc-dialog-min-width:min(500px, 95vw);--mdc-dialog-max-width:min(500px, 95vw)}}ha-area-picker,ha-category-picker,ha-icon-picker,ha-labels-picker,ha-textarea,ha-textfield{display:block}ha-area-picker,ha-category-picker,ha-chip-set,ha-icon-picker,ha-labels-picker{margin-top:16px}ha-alert{display:block;margin-bottom:16px}.destructive{--mdc-theme-primary:var(--error-color)}`]}}]}}),s.oi);t()}catch(e){t(e)}}))},49658:function(e,i,a){var t=a(44249),o=(a(92745),a(9359),a(56475),a(70104),a(57243)),s=a(15093),n=a(35359),r=a(27486),l=a(36522),d=a(24360),c=(a(94279),a(23334),a(7285),a(37583),a(36540)),h=a(6736),u=a(11917);const p="___ADD_NEW___",v="___NO_CATEGORIES___",m="___ADD_NEW_SUGGESTION___",_=e=>o.dy`<ha-list-item graphic="icon" class="${(0,n.$)({"add-new":e.category_id===p})}"> ${e.icon?o.dy`<ha-icon slot="graphic" .icon="${e.icon}"></ha-icon>`:o.dy`<ha-svg-icon .path="${"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"}" slot="graphic"></ha-svg-icon>`} ${e.name} </ha-list-item>`;(0,t.Z)([(0,s.Mo)("ha-category-picker")],(function(e,i){return{F:class extends i{constructor(...i){super(...i),e(this)}},d:[{kind:"field",decorators:[(0,s.Cb)({attribute:!1})],key:"hass",value:void 0},{kind:"field",decorators:[(0,s.Cb)()],key:"scope",value:void 0},{kind:"field",decorators:[(0,s.Cb)()],key:"label",value:void 0},{kind:"field",decorators:[(0,s.Cb)()],key:"value",value:void 0},{kind:"field",decorators:[(0,s.Cb)()],key:"helper",value:void 0},{kind:"field",decorators:[(0,s.Cb)()],key:"placeholder",value:void 0},{kind:"field",decorators:[(0,s.Cb)({type:Boolean,attribute:"no-add"})],key:"noAdd",value:()=>!1},{kind:"field",decorators:[(0,s.Cb)({type:Boolean})],key:"disabled",value:()=>!1},{kind:"field",decorators:[(0,s.Cb)({type:Boolean})],key:"required",value:()=>!1},{kind:"field",decorators:[(0,s.SB)()],key:"_opened",value:void 0},{kind:"field",decorators:[(0,s.SB)()],key:"_categories",value:void 0},{kind:"field",decorators:[(0,s.IO)("ha-combo-box",!0)],key:"comboBox",value:void 0},{kind:"field",key:"hassSubscribeRequiredHostProps",value:()=>["scope"]},{kind:"method",key:"hassSubscribe",value:function(){return[(0,c.U)(this.hass.connection,this.scope,(e=>{this._categories=e}))]}},{kind:"field",key:"_suggestion",value:void 0},{kind:"field",key:"_init",value:()=>!1},{kind:"method",key:"open",value:async function(){await this.updateComplete,await(this.comboBox?.open())}},{kind:"method",key:"focus",value:async function(){await this.updateComplete,await(this.comboBox?.focus())}},{kind:"field",key:"_getCategories",value(){return(0,r.Z)(((e,i)=>{const a=e?[...e]:[];return a?.length||a.push({category_id:v,name:this.hass.localize("ui.components.category-picker.no_categories"),icon:null}),i?a:[...a,{category_id:p,name:this.hass.localize("ui.components.category-picker.add_new"),icon:"mdi:plus"}]}))}},{kind:"method",key:"updated",value:function(e){if(!this._init&&this.hass&&this._categories||this._init&&e.has("_opened")&&this._opened){this._init=!0;const e=this._getCategories(this._categories,this.noAdd).map((e=>({...e,strings:[e.name]})));this.comboBox.items=e,this.comboBox.filteredItems=e}}},{kind:"method",key:"render",value:function(){return this._categories?o.dy` <ha-combo-box .hass="${this.hass}" .helper="${this.helper}" item-value-path="category_id" item-id-path="category_id" item-label-path="name" .value="${this._value}" .disabled="${this.disabled}" .required="${this.required}" .label="${void 0===this.label&&this.hass?this.hass.localize("ui.components.category-picker.category"):this.label}" .placeholder="${this.placeholder}" .renderer="${_}" -changed="${this._filterChanged}" -changed="${this._openedChanged}" -changed="${this._categoryChanged}"> </ha-combo-box> `:o.Ld}},{kind:"method",key:"_filterChanged",value:function(e){const i=e.target,a=e.detail.value;if(!a)return void(this.comboBox.filteredItems=this.comboBox.items);const t=(0,d.q)(a,i.items?.filter((e=>![v,p].includes(e.category_id)))||[]);0===t?.length?this.noAdd?this.comboBox.filteredItems=[{category_id:v,name:this.hass.localize("ui.components.category-picker.no_match"),icon:null}]:(this._suggestion=a,this.comboBox.filteredItems=[{category_id:m,name:this.hass.localize("ui.components.category-picker.add_new_sugestion",{name:this._suggestion}),icon:"mdi:plus"}]):this.comboBox.filteredItems=t}},{kind:"get",key:"_value",value:function(){return this.value||""}},{kind:"method",key:"_openedChanged",value:function(e){this._opened=e.detail.value}},{kind:"method",key:"_categoryChanged",value:function(e){e.stopPropagation();let i=e.detail.value;if(i===v)return i="",void this.comboBox.setInputValue("");[m,p].includes(i)?(e.target.value=this._value,this.hass.loadFragmentTranslation("config"),(0,u.n)(this,{scope:this.scope,suggestedName:i===m?this._suggestion:"",createEntry:async e=>{const i=await(0,c.DM)(this.hass,this.scope,e);return this._categories=[...this._categories,i],this.comboBox.filteredItems=this._getCategories(this._categories,this.noAdd),await this.updateComplete,await this.comboBox.updateComplete,this._setValue(i.category_id),i}}),this._suggestion=void 0,this.comboBox.setInputValue("")):i!==this._value&&this._setValue(i)}},{kind:"method",key:"_setValue",value:function(e){this.value=e,setTimeout((()=>{(0,l.B)(this,"value-changed",{value:e}),(0,l.B)(this,"change")}),0)}}]}}),(0,h.f)(o.oi))},74514:function(e,i,a){a.d(i,{W:()=>p});var t=a(9065),o=a(15093),s=a(57243),n=a(49144),r=a(17077);class l extends n.w{constructor(){super(...arguments),this.avatar=!1,this.href="",this.target="",this.removeOnly=!1,this.selected=!1}get primaryId(){return this.href?"link":this.removeOnly?"":"button"}get rippleDisabled(){return!this.href&&(this.disabled||this.softDisabled)}get primaryAction(){return this.removeOnly?null:this.renderRoot.querySelector(".primary.action")}getContainerClasses(){return{...super.getContainerClasses(),avatar:this.avatar,disabled:!this.href&&(this.disabled||this.softDisabled),link:!!this.href,selected:this.selected,"has-trailing":!0}}renderPrimaryAction(e){const{ariaLabel:i}=this;return this.href?s.dy` <a class="primary action" id="link" aria-label="${i||s.Ld}" href="${this.href}" target="${this.target||s.Ld}">${e}</a> `:this.removeOnly?s.dy` <span class="primary action" aria-label="${i||s.Ld}"> ${e} </span> `:s.dy` <button class="primary action" id="button" aria-label="${i||s.Ld}" aria-disabled="${this.softDisabled||s.Ld}" ?disabled="${this.disabled&&!this.alwaysFocusable}" type="button">${e}</button> `}renderTrailingAction(e){return(0,r.N)({focusListener:e,ariaLabel:this.ariaLabelRemove,disabled:!this.href&&(this.disabled||this.softDisabled),tabbable:this.removeOnly})}}(0,t.__decorate)([(0,o.Cb)({type:Boolean})],l.prototype,"avatar",void 0),(0,t.__decorate)([(0,o.Cb)()],l.prototype,"href",void 0),(0,t.__decorate)([(0,o.Cb)()],l.prototype,"target",void 0),(0,t.__decorate)([(0,o.Cb)({type:Boolean,attribute:"remove-only"})],l.prototype,"removeOnly",void 0),(0,t.__decorate)([(0,o.Cb)({type:Boolean,reflect:!0})],l.prototype,"selected",void 0),(0,t.__decorate)([(0,o.IO)(".trailing.action")],l.prototype,"trailingAction",void 0);const d=s.iv`:host{--_container-height:var(--md-input-chip-container-height, 32px);--_disabled-label-text-color:var(--md-input-chip-disabled-label-text-color, var(--md-sys-color-on-surface, #1d1b20));--_disabled-label-text-opacity:var(--md-input-chip-disabled-label-text-opacity, 0.38);--_disabled-selected-container-color:var(--md-input-chip-disabled-selected-container-color, var(--md-sys-color-on-surface, #1d1b20));--_disabled-selected-container-opacity:var(--md-input-chip-disabled-selected-container-opacity, 0.12);--_label-text-font:var(--md-input-chip-label-text-font, var(--md-sys-typescale-label-large-font, var(--md-ref-typeface-plain, Roboto)));--_label-text-line-height:var(--md-input-chip-label-text-line-height, var(--md-sys-typescale-label-large-line-height, 1.25rem));--_label-text-size:var(--md-input-chip-label-text-size, var(--md-sys-typescale-label-large-size, 0.875rem));--_label-text-weight:var(--md-input-chip-label-text-weight, var(--md-sys-typescale-label-large-weight, var(--md-ref-typeface-weight-medium, 500)));--_selected-container-color:var(--md-input-chip-selected-container-color, var(--md-sys-color-secondary-container, #e8def8));--_selected-focus-label-text-color:var(--md-input-chip-selected-focus-label-text-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-hover-label-text-color:var(--md-input-chip-selected-hover-label-text-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-hover-state-layer-color:var(--md-input-chip-selected-hover-state-layer-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-hover-state-layer-opacity:var(--md-input-chip-selected-hover-state-layer-opacity, 0.08);--_selected-label-text-color:var(--md-input-chip-selected-label-text-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-outline-width:var(--md-input-chip-selected-outline-width, 0px);--_selected-pressed-label-text-color:var(--md-input-chip-selected-pressed-label-text-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-pressed-state-layer-color:var(--md-input-chip-selected-pressed-state-layer-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-pressed-state-layer-opacity:var(--md-input-chip-selected-pressed-state-layer-opacity, 0.12);--_disabled-outline-color:var(--md-input-chip-disabled-outline-color, var(--md-sys-color-on-surface, #1d1b20));--_disabled-outline-opacity:var(--md-input-chip-disabled-outline-opacity, 0.12);--_focus-label-text-color:var(--md-input-chip-focus-label-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_focus-outline-color:var(--md-input-chip-focus-outline-color, var(--md-sys-color-on-surface-variant, #49454f));--_hover-label-text-color:var(--md-input-chip-hover-label-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_hover-state-layer-color:var(--md-input-chip-hover-state-layer-color, var(--md-sys-color-on-surface-variant, #49454f));--_hover-state-layer-opacity:var(--md-input-chip-hover-state-layer-opacity, 0.08);--_label-text-color:var(--md-input-chip-label-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_outline-color:var(--md-input-chip-outline-color, var(--md-sys-color-outline, #79747e));--_outline-width:var(--md-input-chip-outline-width, 1px);--_pressed-label-text-color:var(--md-input-chip-pressed-label-text-color, var(--md-sys-color-on-surface-variant, #49454f));--_pressed-state-layer-color:var(--md-input-chip-pressed-state-layer-color, var(--md-sys-color-on-surface-variant, #49454f));--_pressed-state-layer-opacity:var(--md-input-chip-pressed-state-layer-opacity, 0.12);--_avatar-shape:var(--md-input-chip-avatar-shape, var(--md-sys-shape-corner-full, 9999px));--_avatar-size:var(--md-input-chip-avatar-size, 24px);--_disabled-avatar-opacity:var(--md-input-chip-disabled-avatar-opacity, 0.38);--_disabled-leading-icon-color:var(--md-input-chip-disabled-leading-icon-color, var(--md-sys-color-on-surface, #1d1b20));--_disabled-leading-icon-opacity:var(--md-input-chip-disabled-leading-icon-opacity, 0.38);--_icon-size:var(--md-input-chip-icon-size, 18px);--_selected-focus-leading-icon-color:var(--md-input-chip-selected-focus-leading-icon-color, var(--md-sys-color-primary, #6750a4));--_selected-hover-leading-icon-color:var(--md-input-chip-selected-hover-leading-icon-color, var(--md-sys-color-primary, #6750a4));--_selected-leading-icon-color:var(--md-input-chip-selected-leading-icon-color, var(--md-sys-color-primary, #6750a4));--_selected-pressed-leading-icon-color:var(--md-input-chip-selected-pressed-leading-icon-color, var(--md-sys-color-primary, #6750a4));--_focus-leading-icon-color:var(--md-input-chip-focus-leading-icon-color, var(--md-sys-color-primary, #6750a4));--_hover-leading-icon-color:var(--md-input-chip-hover-leading-icon-color, var(--md-sys-color-primary, #6750a4));--_leading-icon-color:var(--md-input-chip-leading-icon-color, var(--md-sys-color-primary, #6750a4));--_pressed-leading-icon-color:var(--md-input-chip-pressed-leading-icon-color, var(--md-sys-color-primary, #6750a4));--_disabled-trailing-icon-color:var(--md-input-chip-disabled-trailing-icon-color, var(--md-sys-color-on-surface, #1d1b20));--_disabled-trailing-icon-opacity:var(--md-input-chip-disabled-trailing-icon-opacity, 0.38);--_selected-focus-trailing-icon-color:var(--md-input-chip-selected-focus-trailing-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-hover-trailing-icon-color:var(--md-input-chip-selected-hover-trailing-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-pressed-trailing-icon-color:var(--md-input-chip-selected-pressed-trailing-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_selected-trailing-icon-color:var(--md-input-chip-selected-trailing-icon-color, var(--md-sys-color-on-secondary-container, #1d192b));--_focus-trailing-icon-color:var(--md-input-chip-focus-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_hover-trailing-icon-color:var(--md-input-chip-hover-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_pressed-trailing-icon-color:var(--md-input-chip-pressed-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_trailing-icon-color:var(--md-input-chip-trailing-icon-color, var(--md-sys-color-on-surface-variant, #49454f));--_container-shape-start-start:var(--md-input-chip-container-shape-start-start, var(--md-input-chip-container-shape, var(--md-sys-shape-corner-small, 8px)));--_container-shape-start-end:var(--md-input-chip-container-shape-start-end, var(--md-input-chip-container-shape, var(--md-sys-shape-corner-small, 8px)));--_container-shape-end-end:var(--md-input-chip-container-shape-end-end, var(--md-input-chip-container-shape, var(--md-sys-shape-corner-small, 8px)));--_container-shape-end-start:var(--md-input-chip-container-shape-end-start, var(--md-input-chip-container-shape, var(--md-sys-shape-corner-small, 8px)));--_leading-space:var(--md-input-chip-leading-space, 16px);--_trailing-space:var(--md-input-chip-trailing-space, 16px);--_icon-label-space:var(--md-input-chip-icon-label-space, 8px);--_with-leading-icon-leading-space:var(--md-input-chip-with-leading-icon-leading-space, 8px);--_with-trailing-icon-trailing-space:var(--md-input-chip-with-trailing-icon-trailing-space, 8px)}:host([avatar]){--_container-shape-start-start:var( --md-input-chip-container-shape-start-start, var(--md-input-chip-container-shape, calc(var(--_container-height) / 2)) );--_container-shape-start-end:var( --md-input-chip-container-shape-start-end, var(--md-input-chip-container-shape, calc(var(--_container-height) / 2)) );--_container-shape-end-end:var( --md-input-chip-container-shape-end-end, var(--md-input-chip-container-shape, calc(var(--_container-height) / 2)) );--_container-shape-end-start:var( --md-input-chip-container-shape-end-start, var(--md-input-chip-container-shape, calc(var(--_container-height) / 2)) )}.avatar .primary.action{padding-inline-start:4px}.avatar .leading.icon ::slotted(:first-child){border-radius:var(--_avatar-shape);height:var(--_avatar-size);width:var(--_avatar-size)}.disabled.avatar .leading.icon{opacity:var(--_disabled-avatar-opacity)} {.link .outline{border-color:ActiveText}.disabled.avatar .leading.icon{opacity:1}}`;var c=a(98128),h=a(21016),u=a(86529);let p=class extends l{};p.styles=[h.W,u.W,c.W,d],p=(0,t.__decorate)([(0,o.Mo)("md-input-chip")],p)}};
//# sourceMappingURL=92212.912d7f3f60d2b066.js.map