iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
25 lines • 18.3 kB
JavaScript
"use strict";(self.rspackChunkhome_assistant_frontend=self.rspackChunkhome_assistant_frontend||[]).push([[49575],{2226:function(e,a,t){t(89463),t(18111),t(61701),t(62953);var i=t(40445),r=t(35211),s=t(5124),o=t(67576),l=t(6412),n=t(63672),d=t(89784),c=t(1087),h=t(15638),p=t(22792);t(64013),t(92677);let u,_,v,g,y,m=e=>e;class f extends s.WF{render(){var e;const a=null!==(e=this.maxColumns)&&void 0!==e?e:3,t=Math.min(a,this.options.length);return(0,s.qy)(u||(u=m` <ha-radio-group class="list" style="${0}" .value="${0}" ="${0}"> ${0} </ha-radio-group> `),(0,d.W)({"--columns":t}),this.value,this._radioChanged,this.options.map(e=>this._renderOption(e)))}_renderOption(e){var a;const t=1===this.maxColumns&&!this.stackedImage,i=1===this.maxColumns&&this.stackedImage,r=e.disabled||this.disabled||!1,o=e.value===this.value,d=(null===(a=this._ui)||void 0===a?void 0:a.themes.darkMode)||!1,c=!!this._i18n&&(0,h.qC)(this._i18n.language,this._i18n.translationMetadata.translations),p="object"==typeof e.image?d&&e.image.src_dark||e.image.src:e.image,u="object"==typeof e.image&&(c&&e.image.flip_rtl);return(0,s.qy)(_||(_=m` <label class="option ${0}" ?disabled="${0}"> <div class="content"> <ha-radio-option aria-describedby="${0}" aria-labelledby="${0}" .value="${0}" .disabled="${0}"></ha-radio-option> <div class="text"> <span id="${0}" class="label">${0}</span> ${0} </div> </div> ${0} </label> `),(0,l.H)({horizontal:t,stacked:i,selected:o}),r,(0,n.J)(e.description?`desc-${e.value}`:void 0),`label-${e.value}`,e.value,r,`label-${e.value}`,e.label,e.description?(0,s.qy)(v||(v=m`<span class="description" id="desc-${0}">${0}</span>`),e.value,e.description):s.s6,p?(0,s.qy)(g||(g=m` <img class="${0}" alt="" src="${0}"> `),u?"flipped":"",p):s.s6)}_radioChanged(e){var a;e.stopPropagation();const t=e.currentTarget.value;this.disabled||void 0===t||t===(null!==(a=this.value)&&void 0!==a?a:"")||(0,c.r)(this,"value-changed",{value:t})}constructor(...e){super(...e),this.options=[],this.stackedImage=!1}}f.styles=(0,s.AH)(y||(y=m`.list::part(form-control-input){display:grid;grid-template-columns:repeat(var(--columns,1),minmax(0,1fr));gap:var(--ha-space-3)}.option{position:relative;display:block;border:1px solid var(--divider-color);border-radius:var(--ha-card-border-radius,var(--ha-border-radius-lg));display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:12px;gap:var(--ha-space-2);overflow:hidden;cursor:pointer}.option .content{position:relative;display:flex;flex-direction:row;gap:var(--ha-space-2);min-width:0;width:100%}.option .content ha-radio-option{--ha-radio-option-control-margin:0;margin:0;flex:none}.option .content .text{display:flex;flex-direction:column;gap:var(--ha-space-1);min-width:0;flex:1;justify-content:center}.option .content .text .label{color:var(--primary-text-color);font-size:var(--ha-font-size-m);font-weight:var(--ha-font-weight-normal);line-height:var(--ha-line-height-condensed);overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.option .content .text .description{color:var(--secondary-text-color);font-size:var(--ha-font-size-s);font-weight:var(--ha-font-weight-normal);line-height:var(--ha-line-height-condensed)}img{position:relative;max-width:var(--ha-select-box-image-size,96px);max-height:var(--ha-select-box-image-size,96px);margin:auto}.flipped{transform:scaleX(-1)}.option.horizontal{flex-direction:row;align-items:flex-start}.option.horizontal img{margin:0}.option.stacked{align-items:stretch}.option.stacked img{max-width:100%;max-height:var(--ha-select-box-image-size,96px);margin:0}.option:before{content:"";display:block;inset:0;position:absolute;background-color:transparent;pointer-events:none;opacity:.2;transition:background-color 180ms ease-in-out,opacity 180ms ease-in-out}.option:hover:before{background-color:var(--divider-color)}.option.selected:before{background-color:var(--primary-color)}.option[disabled]{cursor:not-allowed}.option[disabled] .content,.option[disabled] img{opacity:.5}.option[disabled]:before{background-color:var(--disabled-color);opacity:.05}`)),(0,i.Cg)([(0,o.MZ)({attribute:!1})],f.prototype,"options",void 0),(0,i.Cg)([(0,o.MZ)({attribute:!1})],f.prototype,"value",void 0),(0,i.Cg)([(0,o.MZ)({type:Boolean})],f.prototype,"disabled",void 0),(0,i.Cg)([(0,o.MZ)({type:Number,attribute:"max_columns"})],f.prototype,"maxColumns",void 0),(0,i.Cg)([(0,o.MZ)({type:Boolean,attribute:"stacked_image"})],f.prototype,"stackedImage",void 0),(0,i.Cg)([(0,o.wk)(),(0,r.Fg)({context:p.D5,subscribe:!0})],f.prototype,"_i18n",void 0),(0,i.Cg)([(0,o.wk)(),(0,r.Fg)({context:p.EK,subscribe:!0})],f.prototype,"_ui",void 0),f=(0,i.Cg)([(0,o.EM)("ha-select-box")],f)},64013:function(e,a,t){var i=t(40445),r=t(97086),s=t(5124),o=t(67576);let l,n=e=>e;class d extends r.A{static get styles(){return[r.A.styles,(0,s.AH)(l||(l=n`:host{--wa-form-control-required-content:var(
--ha-radio-group-required-marker,
var(--ha-input-required-marker, "*")
);--wa-form-control-required-content-offset:var(
--ha-radio-group-required-marker-offset,
0.1rem
)}`))]}constructor(){super(),this.radioTag="ha-radio-option"}}d=(0,i.Cg)([(0,o.EM)("ha-radio-group")],d)},92677:function(e,a,t){var i=t(40445),r=t(17010),s=t(5124),o=t(67576);let l,n=e=>e;class d extends r.A{static get styles(){return[r.A.styles,(0,s.AH)(l||(l=n`:host{--wa-form-control-activated-color:var(
--ha-radio-option-active-color,
var(--ha-color-fill-primary-loud-resting)
);--wa-form-control-height:var(--ha-radio-option-height, 40px);--wa-form-control-toggle-size:var(
--ha-radio-option-toggle-size,
20px
);--wa-form-control-border-width:var(
--ha-radio-option-border-width,
var(--ha-border-width-md)
);--wa-form-control-border-color:var(
--ha-radio-option-border-color,
var(--ha-color-border-neutral-normal)
);--wa-form-control-background-color:var(
--ha-radio-option-background-color,
var(--wa-form-control-background-color)
);--checked-icon-color:var(
--ha-radio-option-checked-icon-color,
var(--wa-form-control-activated-color)
);--checked-icon-scale:var(--ha-radio-option-checked-icon-scale, 0.7)}:host([appearance=default]) .control{margin:var(--ha-radio-option-control-margin,var(--ha-space-3) var(--ha-space-2) var(--ha-space-3) var(--ha-space-3))}:host(:not([aria-checked=true],[aria-disabled=true]):hover) .control{border-color:var(--ha-radio-option-border-color-hover,var(--ha-radio-option-border-color,var(--ha-color-border-neutral-loud)));background-color:var(--ha-radio-option-background-color-hover,var(--ha-color-fill-neutral-quiet-hover))}:host([aria-checked=true]) .control{background-color:var(--ha-radio-option-checked-background-color,var(--ha-color-fill-primary-normal-resting));color:var(--checked-icon-color);border-color:var(--checked-icon-color)}[part~=label]{display:inline-flex;align-items:center;cursor:pointer}:host([disabled]) [part~=label]{cursor:not-allowed}`))]}}d=(0,i.Cg)([(0,o.EM)("ha-radio-option")],d)},54618:function(e,a,t){t.a(e,async function(e,i){try{t.r(a);t(74423),t(18111),t(20116),t(61701),t(13579),t(3362),t(27495),t(25440),t(42762),t(62953);var r=t(40445),s=t(5124),o=t(67576),l=t(1087),n=t(38962),d=t(18350),c=t(72554),h=(t(93444),t(64013),t(92677),t(2226),t(65829)),p=t(91485),u=t(40910),_=t(14503),v=e([n,d,c,h,p]);[n,d,c,h,p]=v.then?(await v)():v;let g,y,m,f,b,w,$,x,C,z,T,k=e=>e;class D extends s.WF{async showDialog(e){var a,t;this._params=e,this._error="",this._credentialDataDirty=!1,this._open=!0;const i=this._existingCredential(e);var r;e.user?(this._userName=e.user.user_name||"",this._userType=e.user.user_type):(this._userName="",this._userType=null!==(r=(0,u.FU)(e.capabilities)[0])&&void 0!==r?r:"");this._credentialType=null!==(a=null!==(t=null==i?void 0:i.type)&&void 0!==t?t:(0,u.b7)(e.capabilities)[0])&&void 0!==a?a:"",this._credentialData="",this._initialUserName=this._userName,this._initialUserType=this._userType}_existingCredential(e){var a;return null===(a=e.user)||void 0===a?void 0:a.credentials.find(e=>u.zL.includes(e.type))}get _enterableTypes(){return this._params?(0,u.b7)(this._params.capabilities):[]}get _selectedTypeCapability(){var e;return null===(e=this._params)||void 0===e?void 0:e.capabilities.supported_credential_types[this._credentialType]}get _supportsUserNames(){var e,a;return(null!==(e=null===(a=this._params)||void 0===a?void 0:a.capabilities.max_user_name_length)&&void 0!==e?e:0)>0}get _userTypeOptions(){return this._params?(0,u.FU)(this._params.capabilities).map(e=>({value:e,label:this.hass.localize(`ui.panel.config.zwave_js.credentials.users.user_types.${e}.label`)||e,description:this.hass.localize(`ui.panel.config.zwave_js.credentials.users.user_types.${e}.description`)})):[]}render(){var e,a,t,i,r;if(!this._params)return s.s6;const o=!this._params.user,l=this._enterableTypes.length>0,n=this._enterableTypes.length>1,d=this._userTypeOptions,c=d.length>1,h=d.some(e=>e.value===this._userType),p=!o&&!l,u=!o&&!this._supportsUserNames,_=!(o||c||h||!this._userType),v=o?this.hass.localize("ui.panel.config.zwave_js.credentials.users.add"):this.hass.localize("ui.panel.config.zwave_js.credentials.users.edit"),T=null!==(e=this._params.capabilities.max_user_name_length)&&void 0!==e?e:20,D=null!==(a=null===(t=this._selectedTypeCapability)||void 0===t?void 0:t.min_length)&&void 0!==a?a:4,N=null!==(i=null===(r=this._selectedTypeCapability)||void 0===r?void 0:r.max_length)&&void 0!==i?i:10,j="pin_code"===this._credentialType;return(0,s.qy)(g||(g=k` <ha-dialog .hass="${0}" .open="${0}" header-title="${0}" ="${0}"> <div class="form"> ${0} ${0} ${0} ${0} ${0} ${0} </div> <ha-dialog-footer slot="footer"> <ha-button slot="secondaryAction" appearance="plain" ="${0}" ?disabled="${0}"> ${0} </ha-button> <ha-button slot="primaryAction" ="${0}" ?disabled="${0}" ?loading="${0}"> ${0} </ha-button> </ha-dialog-footer> </ha-dialog> `),this.hass,this._open,v,this._dialogClosed,this._error?(0,s.qy)(y||(y=k`<ha-alert alert-type="error">${0}</ha-alert>`),this._error):s.s6,p?(0,s.qy)(m||(m=k`<ha-alert alert-type="warning"> ${0} </ha-alert>`),this.hass.localize("ui.panel.config.zwave_js.credentials.errors.no_compatible_credential_types")):s.s6,u?(0,s.qy)(f||(f=k`<p class="user-id-info"> ${0} </p>`),this.hass.localize("ui.panel.config.zwave_js.credentials.users.unnamed_user",{index:this._params.user.user_id})):s.s6,this._supportsUserNames?(0,s.qy)(b||(b=k` <ha-input .label="${0}" .value="${0}" ="${0}" maxlength="${0}" autofocus></ha-input> `),this.hass.localize("ui.panel.config.zwave_js.credentials.users.name"),this._userName,this._handleNameChange,T):s.s6,l?(0,s.qy)(w||(w=k` ${0} <ha-input .label="${0}" .value="${0}" ="${0}" ="${0}" ="${0}" type="password" password-toggle autocomplete="off" inputmode="${0}" pattern="${0}" placeholder="${0}" minlength="${0}" maxlength="${0}" ?required="${0}" auto-validate ?invalid="${0}" validation-message="${0}"></ha-input> `),n?(0,s.qy)($||($=k` <ha-radio-group name="credential-type" .label="${0}" .value="${0}" ="${0}"> ${0} </ha-radio-group> `),this.hass.localize("ui.panel.config.zwave_js.credentials.credential_data.type"),this._credentialType,this._handleCredentialTypeChanged,this._enterableTypes.map(e=>(0,s.qy)(x||(x=k` <ha-radio-option value="${0}"> ${0} </ha-radio-option> `),e,this.hass.localize(`ui.panel.config.zwave_js.credentials.credential_types.${e}`)))):s.s6,this.hass.localize(`ui.panel.config.zwave_js.credentials.credential_data.${this._credentialType}`),this._credentialData,this._handleCredentialDataChange,this._handleCredentialBeforeInput,this._handleCredentialBlur,j?"numeric":"text",j?"[0-9]+":".+",this.hass.localize(j?"ui.panel.config.zwave_js.credentials.credential_data.placeholder_pin":"ui.panel.config.zwave_js.credentials.credential_data.placeholder",{min:D,max:N}),D,N,o,this._credentialDataDirty&&!!this._credentialError,this._credentialError||""):s.s6,c?(0,s.qy)(C||(C=k` <div class="user-type-section"> <label for="user-type-select"> ${0} </label> <ha-select-box id="user-type-select" .options="${0}" .value="${0}" .maxColumns="${0}" -changed="${0}"></ha-select-box> </div> `),this.hass.localize("ui.panel.config.zwave_js.credentials.users.type"),d,this._userType,1,this._handleUserTypeChanged):_?(0,s.qy)(z||(z=k` <div class="user-type-section"> <label> ${0} </label> <p class="user-type-readonly"> ${0} </p> </div> `),this.hass.localize("ui.panel.config.zwave_js.credentials.users.type"),this.hass.localize(`ui.panel.config.zwave_js.credentials.users.user_types.${this._userType}.label`)||this._userType):s.s6,this.closeDialog,this._saving,this.hass.localize("ui.common.cancel"),this._save,this._saving||!this._canSave,this._saving,o?this.hass.localize("ui.panel.config.zwave_js.credentials.users.add"):this.hass.localize("ui.common.save"))}_handleNameChange(e){this._userName=e.target.value}_handleCredentialDataChange(e){let a=e.target.value;if("pin_code"===this._credentialType){const t=a.replace(/\D/g,"");t!==a&&(e.target.value=t,a=t)}this._credentialData=a}_handleCredentialBeforeInput(e){if("pin_code"!==this._credentialType)return;const a=e.data;a&&/\D/.test(a)&&e.preventDefault()}_handleCredentialBlur(){this._credentialDataDirty=!0}get _canSave(){return!!this._params&&(!!this._enterableTypes.length&&(!(this._supportsUserNames&&!this._userName.trim())&&(!!this._credentialType&&(!this._credentialError&&(this._params.user?this._credentialTypeChanged?!!this._credentialData:!!this._credentialData||this._userChanged:!!this._credentialData)))))}get _userChanged(){return this._userName!==this._initialUserName||this._userType!==this._initialUserType}get _credentialTypeChanged(){var e;if(null===(e=this._params)||void 0===e||!e.user)return!1;const a=this._existingCredential(this._params);return!!a&&this._credentialType!==a.type}get _credentialError(){if(!this._params)return"";if(this._params.user&&!this._credentialData&&!this._credentialTypeChanged)return"";switch((0,u.Yr)(this._credentialData,this._credentialType,this._selectedTypeCapability)){case"required":return this.hass.localize("ui.panel.config.zwave_js.credentials.errors.credential_required");case"length":{var e,a,t,i;const r=null!==(e=null===(a=this._selectedTypeCapability)||void 0===a?void 0:a.min_length)&&void 0!==e?e:4,s=null!==(t=null===(i=this._selectedTypeCapability)||void 0===i?void 0:i.max_length)&&void 0!==t?t:10;return this.hass.localize("ui.panel.config.zwave_js.credentials.errors.credential_length",{min:r,max:s})}case"pin_digits_only":return this.hass.localize("ui.panel.config.zwave_js.credentials.errors.pin_digits_only");default:return""}}_handleCredentialTypeChanged(e){this._credentialType=e.currentTarget.value,this._credentialData="",this._credentialDataDirty=this._credentialTypeChanged}_handleUserTypeChanged(e){this._userType=e.detail.value}async _save(){if(!this._params)return;if(this._error="",this._credentialDataDirty=!0,this._supportsUserNames&&!this._userName.trim())return void(this._error=this.hass.localize("ui.panel.config.zwave_js.credentials.errors.name_required"));const e=this._credentialType;if(e&&!this._credentialError){this._saving=!0;try{this._params.user?await this._saveExistingUser(e):await this._saveNewUser(e)}catch(a){this._error=a.message||this.hass.localize("ui.panel.config.zwave_js.credentials.errors.save_failed")}finally{this._saving=!1}}}async _saveNewUser(e){const a=this._params,{user_id:t}=await(0,u.xi)(this.hass,a.entity_id,{user_name:this._supportsUserNames?this._userName.trim():void 0,user_type:this._userType,active:!0});try{await(0,u.tl)(this.hass,a.entity_id,{user_id:t,credential_type:e,credential_data:this._credentialData})}catch(i){try{await(0,u.yR)(this.hass,a.entity_id,t)}catch(r){}return void(this._error=this.hass.localize("ui.panel.config.zwave_js.credentials.errors.add_user_failed",{message:i.message||this.hass.localize("ui.panel.config.zwave_js.credentials.errors.save_failed")}))}a.onSaved(),this.closeDialog()}async _saveExistingUser(e){const a=this._params,t=a.user,i=this._existingCredential(a);if(this._userChanged&&await(0,u.xi)(this.hass,a.entity_id,{user_id:t.user_id,user_name:this._supportsUserNames?this._userName.trim():void 0,user_type:this._userType}),this._credentialData){const r=!!i&&i.type!==e;r&&await(0,u.QR)(this.hass,a.entity_id,{user_id:t.user_id,credential_type:i.type,credential_slot:i.slot}),await(0,u.tl)(this.hass,a.entity_id,{user_id:t.user_id,credential_type:e,credential_data:this._credentialData,credential_slot:r||null==i?void 0:i.slot})}a.onSaved(),this.closeDialog()}closeDialog(){this._open=!1}_dialogClosed(){this._params=void 0,this._userName="",this._userType="",this._credentialType="",this._credentialData="",this._saving=!1,this._error="",this._credentialDataDirty=!1,(0,l.r)(this,"dialog-closed",{dialog:this.localName})}static get styles(){return[_.nA,(0,s.AH)(T||(T=k`.form{display:flex;flex-direction:column;gap:var(--ha-space-4)}.user-type-section{display:flex;flex-direction:column;gap:var(--ha-space-2)}.user-type-section>label{font-weight:500;color:var(--primary-text-color)}.user-type-readonly{margin:0;color:var(--primary-text-color)}.user-id-info{margin:0;color:var(--secondary-text-color)}ha-alert{display:block}`))]}constructor(...e){super(...e),this._userName="",this._userType="",this._credentialType="",this._credentialData="",this._saving=!1,this._error="",this._credentialDataDirty=!1,this._open=!1,this._initialUserName="",this._initialUserType=""}}(0,r.Cg)([(0,o.MZ)({attribute:!1})],D.prototype,"hass",void 0),(0,r.Cg)([(0,o.wk)()],D.prototype,"_params",void 0),(0,r.Cg)([(0,o.wk)()],D.prototype,"_userName",void 0),(0,r.Cg)([(0,o.wk)()],D.prototype,"_userType",void 0),(0,r.Cg)([(0,o.wk)()],D.prototype,"_credentialType",void 0),(0,r.Cg)([(0,o.wk)()],D.prototype,"_credentialData",void 0),(0,r.Cg)([(0,o.wk)()],D.prototype,"_saving",void 0),(0,r.Cg)([(0,o.wk)()],D.prototype,"_error",void 0),(0,r.Cg)([(0,o.wk)()],D.prototype,"_credentialDataDirty",void 0),(0,r.Cg)([(0,o.wk)()],D.prototype,"_open",void 0),D=(0,r.Cg)([(0,o.EM)("dialog-zwave_js-credential-user-edit")],D),i()}catch(g){i(g)}})}}]);