UNPKG

iobroker.lovelace

Version:

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

1 lines 6.9 kB
export const __rspack_esm_id=25291;export const __rspack_esm_ids=[25291];export const __webpack_modules__={64138(e,t,i){i.a(e,async function(e,o){try{i.r(t),i.d(t,{HaIconPicker:()=>y});i(74423),i(44114),i(18111),i(22489),i(7588),i(61701),i(13579);var a=i(62826),s=i(5124),r=i(22441),n=i(22786),l=i(1087),c=i(700),h=(i(75064),i(38508)),d=(i(47680),e([h]));h=(d.then?(await d)():d)[0];let p=[],u=!1;const g=(e,t)=>{const i=`${t}:${e.name}`,o=e.name,a=o.split("-"),s=e.keywords??[],r={iconName:o};return a.forEach((e,t)=>{r[`part${t}`]=e}),s.forEach((e,t)=>{r[`keyword${t}`]=e}),{id:i,primary:i,icon:i,search_labels:r,sorting_label:i}},_=async()=>{u=!0;const e=await i.e(81340).then(i.t.bind(i,25143,19));p=e.default.map(e=>g(e,"mdi"));const t=[];Object.keys(c.y).forEach(e=>{t.push(m(e))}),(await Promise.all(t)).forEach(e=>{p.push(...e)})},m=async e=>{try{const t=c.y[e].getIconList;if("function"!=typeof t)return[];return(await t()).map(t=>g(t,e))}catch(t){return console.warn(`Unable to load icon list for ${e} iconset`),[]}},v=e=>s.qy` <ha-combo-box-item type="button"> <ha-icon .icon="${e.id}" slot="start"></ha-icon> ${e.id} </ha-combo-box-item> `;class y extends s.WF{render(){return s.qy` <ha-generic-picker allow-custom-value .getItems="${this._getIconPickerItems}" .helper="${this.helper}" .disabled="${this.disabled}" .required="${this.required}" .errorMessage="${this.errorMessage}" .invalid="${this.invalid}" .rowRenderer="${v}" .icon="${this._icon}" .label="${this.label}" .value="${this._value}" .searchFn="${this._filterIcons}" @value-changed="${this._valueChanged}"> <slot name="start"></slot> </ha-generic-picker> `}firstUpdated(){u||_().then(()=>{this._getIconPickerItems=()=>p,this.requestUpdate()})}_valueChanged(e){e.stopPropagation(),this._setValue(e.detail.value)}_setValue(e){this.value=e,(0,l.r)(this,"value-changed",{value:this._value},{bubbles:!1,composed:!1})}get _icon(){return this.value?.length?this.value:this.placeholder}get _value(){return this.value||""}constructor(...e){super(...e),this.disabled=!1,this.required=!1,this.invalid=!1,this._getIconPickerItems=()=>p,this._filterIcons=(0,n.A)((e,t,i)=>{const o=e.toLowerCase().replace(/\s+/g,"-"),a=i?.length?i:t;if(!o.length)return a;const s=[];for(const e of a){const t=(e.id.split(":")[1]||e.id).toLowerCase().split("-"),i=e.search_labels?Object.values(e.search_labels).filter(e=>null!==e).map(e=>e.toLowerCase()):[],a=e.id.toLowerCase();t.includes(o)?s.push({item:e,rank:1}):i.includes(o)?s.push({item:e,rank:2}):a.includes(o)?s.push({item:e,rank:3}):i.some(e=>e.includes(o))&&s.push({item:e,rank:4})}return s.sort((e,t)=>e.rank-t.rank).map(e=>e.item)})}}y.styles=s.AH`ha-generic-picker{width:100%;display:block}`,(0,a.Cg)([(0,r.MZ)()],y.prototype,"value",void 0),(0,a.Cg)([(0,r.MZ)()],y.prototype,"label",void 0),(0,a.Cg)([(0,r.MZ)()],y.prototype,"helper",void 0),(0,a.Cg)([(0,r.MZ)()],y.prototype,"placeholder",void 0),(0,a.Cg)([(0,r.MZ)({attribute:"error-message"})],y.prototype,"errorMessage",void 0),(0,a.Cg)([(0,r.MZ)({type:Boolean})],y.prototype,"disabled",void 0),(0,a.Cg)([(0,r.MZ)({type:Boolean})],y.prototype,"required",void 0),(0,a.Cg)([(0,r.MZ)({type:Boolean})],y.prototype,"invalid",void 0),y=(0,a.Cg)([(0,r.EM)("ha-icon-picker")],y),o()}catch(e){o(e)}})},89441(e,t,i){i.d(t,{O:()=>a});var o=i(1087);const a=e=>class extends e{closeDialog(e){if(this._closePromise)return this._closePromise;const t=this.shadowRoot?.querySelector("ha-adaptive-popover, ha-adaptive-dialog, ha-dialog, ha-bottom-sheet");return t&&(this._closePromise=new Promise(e=>{this._closeResolve=e}),t.open=!1),this._closePromise||!0}connectedCallback(){super.connectedCallback(),this.addEventListener("closed",this._removeDialog,{once:!0})}disconnectedCallback(){this._dialogClosedFired||(0,o.r)(this,"dialog-closed",{dialog:this.localName}),this.removeEventListener("closed",this._removeDialog),super.disconnectedCallback()}constructor(...e){super(...e),this.dialogNext=!0,this._dialogClosedFired=!1,this._removeDialog=e=>{e.stopPropagation(),this._closeResolve?.(!0),this._closePromise=void 0,this._closeResolve=void 0,this._dialogClosedFired=!0,(0,o.r)(this,"dialog-closed",{dialog:this.localName}),this.remove()}}}},81574(e,t,i){i.a(e,async function(e,o){try{i.r(t);var a=i(62826),s=i(35211),r=i(5124),n=i(22441),l=i(38962),c=i(18350),h=i(72554),d=(i(93444),i(64138)),p=i(91485),u=i(22792),g=i(89441),_=i(14503),m=e([l,c,h,d,p]);[l,c,h,d,p]=m.then?(await m)():m;class v extends((0,g.O)(r.WF)){connectedCallback(){super.connectedCallback(),this.params?.entry?(this._name=this.params.entry.name||"",this._icon=this.params.entry.icon||null):(this._name=this.params?.suggestedName||"",this._icon=null)}render(){if(!this.params)return r.s6;const e=this.params.entry,t=!this._isNameValid();return r.qy` <ha-dialog open header-title="${e?this._i18n.localize("ui.panel.config.category.editor.edit"):this._i18n.localize("ui.panel.config.category.editor.create")}" prevent-scrim-close> ${this._error?r.qy`<ha-alert alert-type="error">${this._error}</ha-alert>`:""} <div class="form"> <ha-input .value="${this._name}" @input="${this._nameChanged}" .label="${this._i18n.localize("ui.panel.config.category.editor.name")}" .validationMessage="${this._i18n.localize("ui.panel.config.category.editor.required_error_msg")}" required autofocus></ha-input> <ha-icon-picker .value="${this._icon??void 0}" @value-changed="${this._iconChanged}" .label="${this._i18n.localize("ui.panel.config.category.editor.icon")}"></ha-icon-picker> </div> <ha-dialog-footer slot="footer"> <ha-button slot="secondaryAction" appearance="plain" @click="${this.closeDialog}"> ${this._i18n.localize("ui.common.cancel")} </ha-button> <ha-button slot="primaryAction" @click="${this._updateEntry}" .disabled="${t||!!this._submitting}"> ${e?this._i18n.localize("ui.common.save"):this._i18n.localize("ui.common.add")} </ha-button> </ha-dialog-footer> </ha-dialog> `}_isNameValid(){return""!==this._name.trim()}_nameChanged(e){this._error=void 0,this._name=e.target.value??""}_iconChanged(e){this._error=void 0,this._icon=e.detail.value}async _updateEntry(){const e=!this.params.entry;let t;this._submitting=!0;try{const i={name:this._name.trim(),icon:this._icon||(e?void 0:null)};t=e?await this.params.createEntry(i):await this.params.updateEntry(i),this.closeDialog()}catch(e){this._error=e.message||this._i18n.localize("ui.panel.config.category.editor.unknown_error")}finally{this._submitting=!1}return t}static get styles(){return[_.nA,r.AH`ha-icon-picker{margin-bottom:var(--ha-space-3)}`]}}(0,a.Cg)([(0,n.wk)(),(0,s.Fg)({context:u.D5,subscribe:!0})],v.prototype,"_i18n",void 0),(0,a.Cg)([(0,n.wk)()],v.prototype,"_name",void 0),(0,a.Cg)([(0,n.wk)()],v.prototype,"_icon",void 0),(0,a.Cg)([(0,n.wk)()],v.prototype,"_error",void 0),(0,a.Cg)([(0,n.wk)()],v.prototype,"_submitting",void 0),v=(0,a.Cg)([(0,n.EM)("dialog-category-registry-detail")],v),o()}catch(e){o(e)}})}};