UNPKG

iobroker.lovelace

Version:

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

8 lines 30.3 kB
/*! For license information please see 94296.5ac266a0449f6e61.js.LICENSE.txt */ export const __rspack_esm_id=94296;export const __rspack_esm_ids=[94296];export const __webpack_modules__={93421(t,e,a){a.d(e,{IW:()=>c,dH:()=>h,fI:()=>l});a(44114);var i=a(35211),o=a(22792),r=a(32172);const s=(t,e)=>{let a=t;for(const t of e){if(null==a)return;a=a[t]}return a},n=(t,e,a)=>{const o=(0,r.p)({transformer:function(t){return a.call(this,t)},watch:e?[e]:[]}),s=(0,i.Fg)({context:t,subscribe:!0});return(t,e)=>{o(t,e),s(t,e)}},l=t=>n(o.iN,t.entityIdPath[0],function(e){const a=s(this,t.entityIdPath);return"string"==typeof a?e?.[a]:void 0}),h=t=>n(o.X1,t.entityIdPath[0],function(e){const a=s(this,t.entityIdPath);return"string"==typeof a?e?.[a]:void 0}),c=()=>n(o.D5,void 0,({localize:t})=>t)},32172(t,e,a){a.d(e,{p:()=>i});a(18111),a(7588),a(45367),a(92731),a(17642),a(58004),a(33853),a(45876),a(32475),a(15024),a(31698);function i(t){return(e,a)=>{if("object"==typeof a)throw new Error("This decorator does not support this compilation type.");const i=String(a),o=e;if(o._transformers){if(!o.hasOwnProperty("_transformers")){const t=o._transformers;o._transformers=new Map,t.forEach((t,e)=>o._transformers.set(e,t))}}else{o._transformers=new Map,o._watching=new Map;const t=o.willUpdate;o.willUpdate=function(e){t.call(this,e);const a=new Set;e.forEach((t,e)=>{const i=this._watching.get(e);void 0!==i&&i.forEach(t=>a.add(t))}),a.forEach(t=>{this[t]=this[`__original_${String(t)}`]})}}o._transformers.set(a,t.transformer),t.watch&&t.watch.forEach(t=>{let e=o._watching.get(t);e||(e=new Set,o._watching.set(t,e)),e.add(a)});const r=Object.getOwnPropertyDescriptor(e,a);let s;if(void 0===r)s={get(){return this[`__transform_${i}`]},set(t){const e=this[`__transform_${i}`],a=this._transformers.get(i);this[`__transform_${i}`]=a?a.call(this,t):t,this[`__original_${i}`]=t,this.requestUpdate(i,e)},configurable:!0,enumerable:!0};else{const t=r.set;s={...r,set(e){const a=this[`__transform_${i}`],o=this._transformers.get(i);this[`__transform_${i}`]=o?o.call(this,e):e,this[`__original_${i}`]=e,this.requestUpdate(i,a),t?.call(this,e)}}}Object.defineProperty(e,a,s)}}},86836(t,e,a){function i(){return Math.floor(65536*(1+Math.random())).toString(16).substring(1)}function o(){return i()+i()+i()+i()+i()}a.d(e,{L:()=>o})},38962(t,e,a){a.a(t,async function(t,i){try{a.r(e);var o=a(62826),r=a(5124),s=a(22441),n=a(6412),l=a(93421),h=a(1087),c=a(26300),d=(a(67094),t([c]));c=(d.then?(await d)():d)[0];const p="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={info:"M11,9H13V7H11M12,20C7.59,20 4,16.41 4,12C4,7.59 7.59,4 12,4C16.41,4 20,7.59 20,12C20,16.41 16.41,20 12,20M12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M11,17H13V11H11V17Z",warning:"M12,2L1,21H23M12,6L19.53,19H4.47M11,10V14H13V10M11,16V18H13V16",error:"M11,15H13V17H11V15M11,7H13V13H11V7M12,2C6.47,2 2,6.5 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12A10,10 0 0,0 12,2M12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4A8,8 0 0,1 20,12A8,8 0 0,1 12,20Z",success:"M20,12A8,8 0 0,1 12,20A8,8 0 0,1 4,12A8,8 0 0,1 12,4C12.76,4 13.5,4.11 14.2,4.31L15.77,2.74C14.61,2.26 13.34,2 12,2A10,10 0 0,0 2,12A10,10 0 0,0 12,22A10,10 0 0,0 22,12M7.91,10.08L6.5,11.5L11,16L21,6L19.59,4.58L11,13.17L7.91,10.08Z"};class g extends r.WF{render(){return r.qy` <div class="issue-type ${(0,n.H)({[this.alertType]:!0})}" role="alert"> <div class="icon ${this.title?"":"no-title"}"> <slot name="icon"> <ha-svg-icon .path="${u[this.alertType]}"></ha-svg-icon> </slot> </div> <div class="${(0,n.H)({content:!0,narrow:this.narrow})}"> <div class="main-content"> ${this.title?r.qy`<div class="title">${this.title}</div>`:r.s6} <slot></slot> </div> <div class="action"> <slot name="action"> ${this.dismissable?r.qy`<ha-icon-button @click="${this._dismissClicked}" .label="${this._localize?.("ui.common.dismiss_alert")}" .path="${p}"></ha-icon-button>`:r.s6} </slot> </div> </div> </div> `}_dismissClicked(){(0,h.r)(this,"alert-dismissed-clicked")}constructor(...t){super(...t),this.title="",this.alertType="info",this.dismissable=!1,this.narrow=!1}}g.styles=r.AH`.issue-type{position:relative;padding:8px;display:flex}.icon{height:var(--ha-alert-icon-size,24px);width:var(--ha-alert-icon-size,24px)}.issue-type::after{position:absolute;top:0;right:0;bottom:0;left:0;opacity:.12;pointer-events:none;content:"";border-radius:var(--ha-border-radius-sm)}.icon.no-title{align-self:center}.content{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:var(--float-start)}.content.narrow{flex-direction:column;align-items:flex-end}.action{z-index:1;width:min-content;--mdc-theme-primary:var(--primary-text-color)}.main-content{overflow-wrap:anywhere;word-break:break-word;line-height:normal;margin-left:8px;margin-right:0;margin-inline-start:8px;margin-inline-end:8px}.title{margin-top:2px;font-weight:var(--ha-font-weight-bold)}.action ha-icon-button{--mdc-theme-primary:var(--primary-text-color);--ha-icon-button-size:36px}.issue-type.info>.icon{color:var(--info-color)}.issue-type.info::after{background-color:var(--info-color)}.issue-type.warning>.icon{color:var(--warning-color)}.issue-type.warning::after{background-color:var(--warning-color)}.issue-type.error>.icon{color:var(--error-color)}.issue-type.error::after{background-color:var(--error-color)}.issue-type.success>.icon{color:var(--success-color)}.issue-type.success::after{background-color:var(--success-color)}:host ::slotted(ul){margin:0;padding-inline-start:20px}`,(0,o.Cg)([(0,s.MZ)()],g.prototype,"title",void 0),(0,o.Cg)([(0,s.MZ)({attribute:"alert-type"})],g.prototype,"alertType",void 0),(0,o.Cg)([(0,s.MZ)({type:Boolean})],g.prototype,"dismissable",void 0),(0,o.Cg)([(0,s.wk)(),(0,l.IW)()],g.prototype,"_localize",void 0),(0,o.Cg)([(0,s.MZ)({type:Boolean})],g.prototype,"narrow",void 0),g=(0,o.Cg)([(0,s.EM)("ha-alert")],g),i()}catch(t){i(t)}})},23430(t,e,a){a.a(t,async function(t,i){try{a.d(e,{l:()=>p});var o=a(62826),r=a(5124),s=a(22441),n=a(78870),l=a(79622),h=a(86836),c=a(34127),d=t([c]);c=(d.then?(await d)():d)[0];const p=t=>{const e=t?(0,n.MP)(t):void 0;return e?`--ha-label-background-color: ${e};\n --primary-text-color: ${(0,l.gJ)(t)};`:"--ha-label-background-color: rgba(var(--rgb-primary-text-color), 0.15);"};class u extends r.WF{willUpdate(t){super.willUpdate(t),t.has("color")&&(this.style.cssText=p(this.color))}render(){return r.qy` <ha-tooltip .for="${this._elementId}" .disabled="${!this.description?.trim()}"> ${this.description} </ha-tooltip> <div class="container" .id="${this._elementId}"> <span class="content"> <slot name="icon"></slot> <slot></slot> </span> </div> `}static get styles(){return[r.AH`:host{--ha-label-text-color:var(--primary-text-color);--ha-label-icon-color:var(--primary-text-color);--ha-label-background-opacity:1;border:1px solid var(--outline-color);position:relative;box-sizing:border-box;display:inline-flex;flex-direction:row;align-items:center;font-size:var(--ha-font-size-s);font-weight:var(--ha-font-weight-medium);line-height:var(--ha-line-height-condensed);letter-spacing:.1px;height:32px;border-radius:var(--ha-border-radius-xl);color:var(--ha-label-text-color);--mdc-icon-size:12px;text-wrap:nowrap}.content>*{position:relative;display:inline-flex;flex-direction:row;align-items:center}:host:before{position:absolute;content:"";inset:0;border-radius:inherit;background-color:var(--ha-label-background-color);opacity:var(--ha-label-background-opacity)}::slotted([slot=icon]){margin-right:8px;margin-left:-8px;margin-inline-start:-8px;margin-inline-end:8px;display:flex}.container{display:flex;align-items:center;position:relative;height:100%;padding:0 16px}span{display:inline-flex}:host([dense]){height:20px;border-radius:var(--ha-border-radius-md)}:host([dense]) .container{padding:0 12px}:host([dense]) ::slotted([slot=icon]){margin-right:4px;margin-left:-4px;margin-inline-start:-4px;margin-inline-end:4px}`]}constructor(...t){super(...t),this.dense=!1,this._elementId="label-"+(0,h.L)()}}(0,o.Cg)([(0,s.MZ)({type:Boolean,reflect:!0})],u.prototype,"dense",void 0),(0,o.Cg)([(0,s.MZ)()],u.prototype,"color",void 0),(0,o.Cg)([(0,s.MZ)({attribute:"description"})],u.prototype,"description",void 0),u=(0,o.Cg)([(0,s.EM)("ha-label")],u),i()}catch(t){i(t)}})},59646(t,e,a){a.a(t,async function(t,e){try{var i=a(62826),o=a(29344),r=a(5124),s=a(22441),n=a(88360),l=t([o]);o=(l.then?(await l)():l)[0];class h extends o.A{updated(t){super.updated(t),t.has("haptic")&&(this.haptic?this.addEventListener("change",this._forwardHaptic):this.removeEventListener("change",this._forwardHaptic))}disconnectedCallback(){super.disconnectedCallback(),this.removeEventListener("change",this._forwardHaptic)}static get styles(){return[o.A.styles,r.AH`:host{--wa-form-control-toggle-size:var(--ha-switch-size, 24px);--wa-form-control-required-content:var( --ha-switch-required-marker, var(--ha-input-required-marker, "*") );--wa-form-control-required-content-offset:var( --ha-switch-required-marker-offset, 0.1rem );--thumb-size:var(--ha-switch-thumb-size, 18px);--width:var(--ha-switch-width, 48px)}label{position:relative;height:max(var(--thumb-size),var(--wa-form-control-toggle-size))}label::before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:100%;height:100%;min-width:var(--ha-switch-min-touch-size,40px);min-height:var(--ha-switch-min-touch-size,40px)}label.disabled::before{pointer-events:none}.switch{background-color:var(--ha-switch-background-color,var(--ha-color-fill-disabled-quiet-resting));border-color:var(--ha-switch-border-color,var(--ha-color-border-neutral-normal))}label:not(.disabled) .input:focus-visible~.switch,label:not(.disabled):hover .switch{background-color:var(--ha-switch-background-color-hover,var(--ha-switch-background-color,var(--ha-color-fill-disabled-quiet-hover)))}.checked .switch{background-color:var(--ha-switch-checked-background-color,var(--ha-color-fill-primary-normal-resting));border-color:var(--ha-switch-checked-border-color,var(--ha-color-border-primary-loud))}label:not(.disabled).checked .input:focus-visible~.switch,label:not(.disabled).checked:hover .switch{background-color:var(--ha-switch-checked-background-color-hover,var(--ha-switch-checked-background-color,var(--ha-color-fill-primary-normal-hover)));border-color:var(--ha-switch-checked-border-color-hover,var(--ha-switch-checked-border-color,var(--ha-color-border-primary-loud)))}.switch .thumb{background-color:var(--ha-switch-thumb-background-color,var(--ha-color-on-neutral-normal));border-color:var(--ha-switch-thumb-border-color,var(--ha-color-on-neutral-normal));border-style:var(--wa-form-control-border-style);border-width:var(--wa-form-control-border-width);box-shadow:var(--ha-switch-thumb-box-shadow,var(--ha-box-shadow-s))}label:not(.disabled) .input:focus-visible~.switch .thumb,label:not(.disabled):hover .switch .thumb{background-color:var(--ha-switch-thumb-background-color-hover,var(--ha-switch-thumb-background-color,var(--ha-color-on-neutral-normal)));border-color:var(--ha-switch-thumb-border-color-hover,var(--ha-switch-thumb-border-color,var(--ha-color-on-neutral-normal)))}.checked .switch .thumb{background-color:var(--ha-switch-checked-thumb-background-color,var(--ha-color-on-primary-normal));border-color:var(--ha-switch-checked-thumb-border-color,var(--ha-color-on-primary-normal))}label:not(.disabled).checked .input:focus-visible~.switch .thumb,label:not(.disabled).checked:hover .switch .thumb{background-color:var(--ha-switch-checked-thumb-background-color-hover,var(--ha-switch-checked-thumb-background-color,var(--ha-color-on-primary-normal)));border-color:var(--ha-switch-checked-thumb-border-color-hover,var(--ha-switch-checked-thumb-border-color,var(--ha-color-on-primary-normal)))}label.disabled{opacity:var(--ha-switch-disabled-opacity, .3);cursor:not-allowed}label:not(.disabled) .input:focus-visible~.switch .thumb{outline:0;outline-offset:none}label:not(.disabled) .input:focus-visible~.switch{outline:var(--wa-focus-ring);outline-offset:var(--wa-focus-ring-offset)}:host(:empty) slot.label{display:none}`]}constructor(...t){super(...t),this.haptic=!1,this._forwardHaptic=()=>{(0,n.j)(this,"light")}}}(0,i.Cg)([(0,s.MZ)({type:Boolean})],h.prototype,"haptic",void 0),h=(0,i.Cg)([(0,s.EM)("ha-switch")],h),e()}catch(t){e(t)}})},83892(t,e,a){a.d(e,{x:()=>n});a(18111),a(13579);var i=a(62826),o=a(92070),r=a(5124),s=a(22441);class n extends r.WF{_onSlotChange(t){return e=>{const a=e.target.assignedNodes({flatten:!0}).some(t=>t.nodeType===Node.ELEMENT_NODE||t.nodeType===Node.TEXT_NODE&&""!==t.textContent?.trim());"start"===t?this._hasStart=a:this._hasEnd=a}}render(){return this._renderBase(this._renderInner())}_renderBase(t){return r.qy`<div part="base" class="base" id="item">${t}</div>`}_renderInner(){const t=this._slotController.test("content");return r.qy` <div part="start" class="start" ?hidden="${!this._hasStart}"> <slot name="start" @slotchange="${this._onSlotChange("start")}"></slot> </div> <div part="content" class="content"> ${t?r.qy`<slot name="content"></slot>`:this._renderDefaultContent()} </div> <div part="end" class="end" ?hidden="${!this._hasEnd}"> <slot name="end" @slotchange="${this._onSlotChange("end")}"></slot> </div> `}_renderDefaultContent(){const t=this._slotController.test("headline"),e=this._slotController.test("supporting-text"),a=t||void 0!==this.headline,i=e||void 0!==this.supportingText;return r.qy` ${a?r.qy`<div part="headline" class="headline"> <slot name="headline">${this.headline??r.s6}</slot> </div>`:r.s6} ${i?r.qy`<div part="supporting-text" class="supporting"> <slot name="supporting-text">${this.supportingText??r.s6}</slot> </div>`:r.s6} `}constructor(...t){super(...t),this.disabled=!1,this._slotController=new o.X(this,"headline","supporting-text","content"),this._hasStart=!1,this._hasEnd=!1}}n.styles=r.AH`:host{display:block;color:var(--primary-text-color);font-size:var(--ha-font-size-m);line-height:var(--ha-line-height-normal)}:host([disabled]){color:var(--disabled-text-color);pointer-events:none}.base{position:relative;display:flex;flex-direction:row;align-items:center;gap:var(--ha-row-item-gap,var(--ha-space-4));padding-block:var(--ha-row-item-padding-block,var(--ha-space-3));padding-inline:var(--ha-row-item-padding-inline,var(--ha-space-4));min-height:var(--ha-row-item-min-height,48px);box-sizing:border-box}.content{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;justify-content:center}.end,.start{display:flex;align-items:center;flex:0 0 auto}.end[hidden],.start[hidden]{display:none}.headline{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.supporting{color:var(--secondary-text-color);font-size:var(--ha-font-size-s);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}`,(0,i.Cg)([(0,s.MZ)({type:String})],n.prototype,"headline",void 0),(0,i.Cg)([(0,s.MZ)({type:String,attribute:"supporting-text"})],n.prototype,"supportingText",void 0),(0,i.Cg)([(0,s.MZ)({type:Boolean,reflect:!0})],n.prototype,"disabled",void 0),(0,i.Cg)([(0,s.wk)()],n.prototype,"_hasStart",void 0),(0,i.Cg)([(0,s.wk)()],n.prototype,"_hasEnd",void 0),n=(0,i.Cg)([(0,s.EM)("ha-row-item")],n)},82e3(t,e,a){a.d(e,{D5:()=>i,Fy:()=>s,Gk:()=>h,Hg:()=>o,Y_:()=>c,ds:()=>l,e0:()=>r,ec:()=>n});a(74423),a(18111),a(61701),a(33110);const i=14881==a.j?`${location.protocol}//${location.host}`:null,o=t=>t.map(t=>{if("string"!==t.type)return t;switch(t.name){case"username":return{...t,autocomplete:"username",autofocus:!0};case"password":return{...t,autocomplete:"current-password"};case"code":return{...t,autocomplete:"one-time-code",autofocus:!0};default:return t}}),r=(t,e)=>t.callWS({type:"auth/sign_path",path:e}),s=async(t,e,a,i)=>t.callWS({type:"config/auth_provider/homeassistant/create",user_id:e,username:a,password:i}),n=(t,e,a)=>t.callWS({type:"config/auth_provider/homeassistant/change_password",current_password:e,new_password:a}),l=(t,e,a)=>t.callWS({type:"config/auth_provider/homeassistant/admin_change_password",user_id:e,password:a}),h=(t,e,a)=>t.callWS({type:"config/auth_provider/homeassistant/admin_change_username",user_id:e,username:a}),c=(t,e,a)=>t.callWS({type:"auth/delete_all_refresh_tokens",token_type:e,delete_current_token:a})},7915(t,e,a){a.a(t,async function(t,i){try{a.r(e);a(74423),a(18111),a(20116),a(61701);var o=a(62826),r=a(5124),s=a(22441),n=a(1087),l=a(38962),h=a(18350),c=a(72554),d=(a(93444),a(26300)),p=a(23430),u=(a(67094),a(59646)),g=a(91485),m=(a(83892),a(82e3)),v=a(28669),b=a(65063),w=a(14503),y=a(12176),f=t([l,h,c,d,p,u,g]);[l,h,c,d,p,u,g]=f.then?(await f)():f;const _="M20.71,7.04C21.1,6.65 21.1,6 20.71,5.63L18.37,3.29C18,2.9 17.35,2.9 16.96,3.29L15.12,5.12L18.87,8.87M3,17.25V21H6.75L17.81,9.93L14.06,6.18L3,17.25Z";class k extends r.WF{async showDialog(t){this._params=t,this._error=void 0,this._name=t.entry.name||"",this._isAdmin=t.entry.group_ids.includes(v.wj),this._localOnly=t.entry.local_only,this._isActive=t.entry.is_active,this._open=!0,await this.updateComplete}render(){if(!this._params)return r.s6;const t=this._params.entry,e=(0,v.xg)(this.hass,t,!0);return r.qy` <ha-dialog .open="${this._open}" prevent-scrim-close header-title="${t.name}" @closed="${this._dialogClosed}"> <div> ${this._error?r.qy`<div class="error">${this._error}</div>`:r.s6} <div class="secondary"> ${this.hass.localize("ui.panel.config.users.editor.id")}: ${t.id}<br> </div> ${0===e.length?r.s6:r.qy` <div class="badge-container"> ${e.map(([t,e])=>r.qy` <ha-label> <ha-svg-icon slot="icon" .path="${t}"></ha-svg-icon> ${e} </ha-label> `)} </div> `} <div class="form"> ${t.system_generated?r.s6:r.qy` <ha-input autofocus .value="${this._name}" @input="${this._nameChanged}" .label="${this.hass.localize("ui.panel.config.users.editor.name")}"></ha-input> <ha-row-item> <span slot="headline">${this.hass.localize("ui.panel.config.users.editor.username")}</span> <span slot="supporting-text">${t.username}</span> ${this.hass.user?.is_owner?r.qy` <ha-icon-button slot="end" .path="${_}" @click="${this._changeUsername}" .label="${this.hass.localize("ui.panel.config.users.editor.change_username")}"> </ha-icon-button> `:r.s6} </ha-row-item> `} ${!t.system_generated&&this.hass.user?.is_owner?r.qy` <ha-row-item> <span slot="headline">${this.hass.localize("ui.panel.config.users.editor.password")}</span> <span slot="supporting-text">************</span> ${this.hass.user?.is_owner?r.qy` <ha-icon-button slot="end" .path="${_}" @click="${this._changePassword}" .label="${this.hass.localize("ui.panel.config.users.editor.change_password")}"> </ha-icon-button> `:r.s6} </ha-row-item> `:r.s6} <ha-row-item> <span slot="headline">${this.hass.localize("ui.panel.config.users.editor.active")}</span> <span slot="supporting-text">${this.hass.localize("ui.panel.config.users.editor.active_description")}</span> <ha-switch slot="end" .disabled="${t.system_generated||t.is_owner}" .checked="${this._isActive}" @change="${this._activeChanged}"></ha-switch> </ha-row-item> <ha-row-item> <span slot="headline">${this.hass.localize("ui.panel.config.users.editor.local_access_only")}</span> <span slot="supporting-text">${this.hass.localize("ui.panel.config.users.editor.local_access_only_description")}</span> <ha-switch slot="end" .disabled="${t.system_generated}" .checked="${this._localOnly}" @change="${this._localOnlyChanged}"></ha-switch> </ha-row-item> <ha-row-item> <span slot="headline">${this.hass.localize("ui.panel.config.users.editor.admin")}</span> <span slot="supporting-text">${this.hass.localize("ui.panel.config.users.editor.admin_description")}</span> <ha-switch slot="end" .disabled="${t.system_generated||t.is_owner}" .checked="${this._isAdmin}" @change="${this._adminChanged}"></ha-switch> </ha-row-item> ${this._isAdmin||t.system_generated?r.s6:r.qy` <ha-alert alert-type="info"> ${this.hass.localize("ui.panel.config.users.users_privileges_note")} </ha-alert> `} </div> ${t.system_generated?r.qy` <ha-alert alert-type="info"> ${this.hass.localize("ui.panel.config.users.editor.system_generated_read_only_users")} </ha-alert> `:r.s6} </div> <ha-dialog-footer slot="footer"> <ha-button slot="secondaryAction" variant="danger" appearance="plain" @click="${this._deleteEntry}" .disabled="${this._submitting||t.system_generated||t.is_owner}"> ${this.hass.localize("ui.panel.config.users.editor.delete_user")} </ha-button> <ha-button slot="primaryAction" @click="${this._updateEntry}" .disabled="${!this._name||this._submitting||t.system_generated}"> ${this.hass.localize("ui.common.save")} </ha-button> </ha-dialog-footer> </ha-dialog> `}_nameChanged(t){this._error=void 0,this._name=t.target.value??""}_adminChanged(t){this._isAdmin=t.target.checked}_localOnlyChanged(t){this._localOnly=t.target.checked}_activeChanged(t){this._isActive=t.target.checked}async _updateEntry(){this._submitting=!0;try{await this._params.updateEntry({name:this._name.trim(),is_active:this._isActive,group_ids:[this._isAdmin?v.wj:v.eR],local_only:this._localOnly}),this._close()}catch(t){this._error=t?.message||"Unknown error"}finally{this._submitting=!1}}async _deleteEntry(){this._submitting=!0;try{await this._params.removeEntry()&&this._close()}finally{this._submitting=!1}}async _changeUsername(){const t=this._params?.entry.credentials.find(t=>"homeassistant"===t.type);if(!t)return void(0,b.showAlertDialog)(this,{title:"No ioBroker credentials found."});const e=await(0,b.an)(this,{inputLabel:this.hass.localize("ui.panel.config.users.change_username.new_username"),confirmText:this.hass.localize("ui.panel.config.users.change_username.change"),title:this.hass.localize("ui.panel.config.users.change_username.caption"),defaultValue:this._params.entry.username});if(e)try{await(0,m.Gk)(this.hass,this._params.entry.id,e),this._params={...this._params,entry:{...this._params.entry,username:e}},this._params.replaceEntry(this._params.entry),(0,b.showAlertDialog)(this,{text:this.hass.localize("ui.panel.config.users.change_username.username_changed")})}catch(t){(0,b.showAlertDialog)(this,{title:this.hass.localize("ui.panel.config.users.change_username.failed"),text:t.message})}}async _changePassword(){const t=this._params?.entry.credentials.find(t=>"homeassistant"===t.type);t?(0,y.M)(this,{userId:this._params.entry.id}):(0,b.showAlertDialog)(this,{title:"No ioBroker credentials found."})}_close(){this._open=!1}_dialogClosed(){this._params=void 0,(0,n.r)(this,"dialog-closed",{dialog:this.localName})}static get styles(){return[w.nA,r.AH`.form{padding-top:16px}.secondary{color:var(--secondary-text-color)}ha-row-item{--ha-row-item-padding-inline:0}.badge-container{margin-top:4px}.badge-container>*{margin-top:4px;margin-bottom:4px;margin-right:4px;margin-left:0;margin-inline-end:4px;margin-inline-start:0}`]}constructor(...t){super(...t),this._open=!1,this._submitting=!1}}(0,o.Cg)([(0,s.MZ)({attribute:!1})],k.prototype,"hass",void 0),(0,o.Cg)([(0,s.wk)()],k.prototype,"_name",void 0),(0,o.Cg)([(0,s.wk)()],k.prototype,"_isAdmin",void 0),(0,o.Cg)([(0,s.wk)()],k.prototype,"_localOnly",void 0),(0,o.Cg)([(0,s.wk)()],k.prototype,"_isActive",void 0),(0,o.Cg)([(0,s.wk)()],k.prototype,"_error",void 0),(0,o.Cg)([(0,s.wk)()],k.prototype,"_params",void 0),(0,o.Cg)([(0,s.wk)()],k.prototype,"_open",void 0),(0,o.Cg)([(0,s.wk)()],k.prototype,"_submitting",void 0),k=(0,o.Cg)([(0,s.EM)("dialog-user-detail")],k),i()}catch(t){i(t)}})},12176(t,e,a){a.d(e,{M:()=>r});var i=a(1087);const o=()=>Promise.all([a.e(53480),a.e(27379)]).then(a.bind(a,56660)),r=(t,e)=>{(0,i.r)(t,"show-dialog",{dialogTag:"dialog-admin-change-password",dialogImport:o,dialogParams:e})}},29344(t,e,a){a.a(t,async function(t,i){try{a.d(e,{A:()=>k});var o=a(5124),r=a(22441),s=a(6412),n=a(63672),l=a(34514),h=a(40991),c=a(92070),d=a(41268),p=a(9395),u=a(62676),g=a(15477),m=a(31896),v=a(17060),b=a(19978),w=t([v]);v=(w.then?(await w)():w)[0];var y=Object.defineProperty,f=Object.getOwnPropertyDescriptor,_=(t,e,a,i)=>{for(var o,r=i>1?void 0:i?f(e,a):e,s=t.length-1;s>=0;s--)(o=t[s])&&(r=(i?o(e,a,r):o(r))||r);return i&&r&&y(e,a,r),r};let k=class extends u.q{static get validators(){return[...super.validators,(0,d.i)()]}get value(){return this._value??"on"}set value(t){this._value=t}handleSizeChange(){(0,h.b)(this.localName,this.size)}get checked(){return this.valueHasChanged?Boolean(this._checked):this._checked??this.defaultChecked}set checked(t){this._checked=Boolean(t),this.valueHasChanged=!0}handleClick(){this.hasInteracted=!0,this.checked=!this.checked,this.updateComplete.then(()=>{this.dispatchEvent(new Event("change",{bubbles:!0,composed:!0}))})}handleKeyDown(t){const e="rtl"===this.localize.dir();"ArrowLeft"===t.key&&(t.preventDefault(),this.checked=e,this.updateComplete.then(()=>{this.dispatchEvent(new Event("change",{bubbles:!0,composed:!0})),this.dispatchEvent(new InputEvent("input",{bubbles:!0,composed:!0}))})),"ArrowRight"===t.key&&(t.preventDefault(),this.checked=!e,this.updateComplete.then(()=>{this.dispatchEvent(new Event("change",{bubbles:!0,composed:!0})),this.dispatchEvent(new InputEvent("input",{bubbles:!0,composed:!0}))}))}willUpdate(t){super.willUpdate(t),(t.has("value")||t.has("checked")||t.has("defaultChecked"))&&this.handleValueOrCheckedChange()}handleValueOrCheckedChange(){this.setValue(this.checked?this.value:null,this._value),this.updateValidity()}handleStateChange(){this.hasUpdated&&(this.input.checked=this.checked),this.customStates.set("checked",this.checked),this.updateValidity()}handleDisabledChange(){this.updateValidity()}click(){this.input.click()}focus(t){this.input.focus(t)}blur(){this.input.blur()}setValue(t,e){this.checked?this.internals.setFormValue(t??"on",e):this.internals.setFormValue(null,null)}formResetCallback(){this._checked=null,super.formResetCallback(),this.handleValueOrCheckedChange()}render(){const t=this.hasUpdated?this.hasSlotController.test("hint"):this.withHint,e=!!this.hint||!!t;return o.qy` <label part="base" class="${(0,s.H)({checked:this.checked,disabled:this.disabled})}"> <input class="input" type="checkbox" title="${this.title}" name="${(0,n.J)(this.name)}" value="${(0,n.J)(this.value)}" .checked="${(0,l.V)(this.checked)}" .disabled="${this.disabled}" .required="${this.required}" role="switch" aria-checked="${this.checked?"true":"false"}" aria-describedby="hint" @click="${this.handleClick}" @keydown="${this.handleKeyDown}"> <span part="control" class="switch"> <span part="thumb" class="thumb"></span> </span> <slot part="label" class="label"></slot> </label> <slot id="hint" name="hint" part="hint" class="${(0,s.H)({"has-slotted":e})}" aria-hidden="${e?"false":"true"}">${this.hint}</slot> `}constructor(){super(...arguments),this.hasSlotController=new c.X(this,"hint"),this.localize=new v.c(this),this.title="",this.name=null,this._value=this.getAttribute("value")??null,this.size="m",this.disabled=!1,this._checked=null,this.defaultChecked=this.hasAttribute("checked"),this.required=!1,this.hint="",this.withHint=!1}};k.shadowRootOptions={...u.q.shadowRootOptions,delegatesFocus:!0},k.css=[g.A,m.A,b.A],_([(0,r.P)('input[type="checkbox"]')],k.prototype,"input",2),_([(0,r.MZ)()],k.prototype,"title",2),_([(0,r.MZ)({reflect:!0})],k.prototype,"name",2),_([(0,r.MZ)({reflect:!0})],k.prototype,"value",1),_([(0,r.MZ)({reflect:!0})],k.prototype,"size",2),_([(0,p.w)("size")],k.prototype,"handleSizeChange",1),_([(0,r.MZ)({type:Boolean})],k.prototype,"disabled",2),_([(0,r.MZ)({type:Boolean,attribute:!1})],k.prototype,"checked",1),_([(0,r.MZ)({type:Boolean,attribute:"checked",reflect:!0})],k.prototype,"defaultChecked",2),_([(0,r.MZ)({type:Boolean,reflect:!0})],k.prototype,"required",2),_([(0,r.MZ)({attribute:"hint"})],k.prototype,"hint",2),_([(0,r.MZ)({attribute:"with-hint",type:Boolean})],k.prototype,"withHint",2),_([(0,p.w)(["checked","defaultChecked"])],k.prototype,"handleStateChange",1),_([(0,p.w)("disabled",{waitUntilFirstUpdate:!0})],k.prototype,"handleDisabledChange",1),k=_([(0,r.EM)("wa-switch")],k),k.disableWarning?.("change-in-update"),i()}catch(t){i(t)}})},19978(t,e,a){a.d(e,{A:()=>i});var i=a(5124).AH`:host{--height:var(--wa-form-control-toggle-size);--width:calc(var(--height) * 1.75);--thumb-size:0.75em;display:inline-flex;line-height:var(--wa-form-control-value-line-height)}label{position:relative;display:flex;align-items:center;font:inherit;color:var(--wa-form-control-value-color);vertical-align:middle;cursor:pointer}.switch{flex:0 0 auto;position:relative;display:flex;align-items:center;justify-content:center;width:var(--width);height:var(--height);background-color:var(--wa-form-control-background-color);border-color:var(--wa-form-control-border-color);border-radius:var(--height);border-style:var(--wa-form-control-border-style);border-width:var(--wa-form-control-border-width);transition-property:translate,background,border-color,box-shadow;transition-duration:var(--wa-transition-normal);transition-timing-function:var(--wa-transition-easing)}.switch .thumb{aspect-ratio:1/1;width:var(--thumb-size);height:var(--thumb-size);background-color:var(--wa-form-control-border-color);border-radius:50%;translate:calc((var(--width) - var(--height))/ -2);transition:inherit}.switch .thumb:dir(rtl){translate:calc((var(--width) - var(--height))/ 2)}.input{position:absolute;opacity:0;padding:0;margin:0;pointer-events:none}label:not(.disabled) .input:focus-visible~.switch .thumb{outline:var(--wa-focus-ring);outline-offset:var(--wa-focus-ring-offset)}.checked .switch{background-color:var(--wa-form-control-activated-color);border-color:var(--wa-form-control-activated-color)}.checked .switch .thumb{background-color:var(--wa-color-surface-default);translate:calc((var(--width) - var(--height))/ 2)}.checked .switch .thumb:dir(rtl){translate:calc((var(--width) - var(--height))/ -2)}label:has(> :disabled){opacity:.5;cursor:not-allowed}[part~=label]{display:inline-block;line-height:var(--height);margin-inline-start:.5em;user-select:none;-webkit-user-select:none}:host([required]) [part~=label]::after{content:var(--wa-form-control-required-content);color:var(--wa-form-control-required-content-color);margin-inline-start:var(--wa-form-control-required-content-offset)}@media (forced-colors:active){:checked+.switch .thumb,:checked:enabled+.switch:hover .thumb{background-color:ButtonText}}`}};