iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
1 lines • 12.9 kB
JavaScript
export const __rspack_esm_id=81034;export const __rspack_esm_ids=[81034];export const __webpack_modules__={97086(t,e,a){a.d(e,{A:()=>m});a(74423),a(18111),a(22489),a(20116),a(7588),a(61701),a(13579);var o=a(5124),r=a(22441),i=a(6412),s=a(63672),l=a(95010),n=a(40991),d=a(92070),c=a(49546),h=a(9395),u=a(62676),b=a(15477),p=a(31896),f=(a(17010),o.AH`.form-control{position:relative;border:none;padding:0;margin:0}.label{padding:0}.radio-group-required .label::after{content:var(--wa-form-control-required-content);margin-inline-start:var(--wa-form-control-required-content-offset)}[part~=form-control-input]{display:flex;flex-direction:column;flex-wrap:wrap;gap:0}:host([orientation=horizontal]) [part~=form-control-input]{flex-direction:row}[part~=hint]{margin-block-start:0.5em}`),w=Object.defineProperty,g=Object.getOwnPropertyDescriptor,v=(t,e,a,o)=>{for(var r,i=o>1?void 0:o?g(e,a):e,s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o?r(e,a,i):r(i))||i);return o&&i&&w(e,a,i),i};let m=class extends u.q{static get validators(){const t=o.S$?[]:[(0,c.Y)({validationElement:Object.assign(document.createElement("input"),{required:!0,type:"radio",name:(0,l.N)("__wa-radio")})})];return[...super.validators,...t]}get value(){return this.valueHasChanged?this._value:this._value??this.defaultValue}set value(t){"number"==typeof t&&(t=String(t)),this.valueHasChanged=!0,this._value=t}handleSizeChange(){(0,n.b)(this.localName,this.size)}get validationTarget(){if(o.S$)return;const t=this.querySelector(`:is(${this.radioTag}):not([disabled])`);return t||void 0}updated(t){(t.has("disabled")||t.has("size")||t.has("value")||t.has("defaultValue"))&&this.syncRadioElements()}formResetCallback(...t){this._value=null,super.formResetCallback(...t),this.syncRadioElements()}getAllRadios(){return[...this.querySelectorAll(this.radioTag)]}handleLabelClick(){this.focus()}async syncRadioElements(){const t=this.getAllRadios();if(t.forEach((e,a)=>{this.size&&e.setAttribute("size",this.size),e.toggleAttribute("data-wa-radio-horizontal","vertical"!==this.orientation),e.toggleAttribute("data-wa-radio-vertical","vertical"===this.orientation),e.toggleAttribute("data-wa-radio-first",0===a),e.toggleAttribute("data-wa-radio-inner",0!==a&&a!==t.length-1),e.toggleAttribute("data-wa-radio-last",a===t.length-1),e.forceDisabled=this.disabled}),await Promise.all(t.map(async t=>{await t.updateComplete,t.disabled||t.value!==this.value?t.checked=!1:t.checked=!0})),this.disabled)t.forEach(t=>{t.tabIndex=-1});else{const e=t.filter(t=>!t.disabled),a=e.find(t=>t.checked);e.length>0&&(a?e.forEach(t=>{t.tabIndex=t.checked?0:-1}):e.forEach((t,e)=>{t.tabIndex=0===e?0:-1})),t.filter(t=>t.disabled).forEach(t=>{t.tabIndex=-1})}}handleKeyDown(t){if(!["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"," "].includes(t.key)||this.disabled)return;const e=this.getAllRadios().filter(t=>!t.disabled);if(e.length<=0)return;t.preventDefault();const a=this.value,o=e.find(t=>t.checked)??e[0],r=" "===t.key?0:["ArrowUp","ArrowLeft"].includes(t.key)?-1:1;let i=e.indexOf(o)+r;i||(i=0),i<0&&(i=e.length-1),i>e.length-1&&(i=0);const s=e.some(t=>"wa-radio-button"===t.tagName.toLowerCase());this.getAllRadios().forEach(t=>{t.checked=!1,s||t.setAttribute("tabindex","-1")}),this.value=e[i].value,e[i].checked=!0,s?e[i].shadowRoot.querySelector("button").focus():(e[i].setAttribute("tabindex","0"),e[i].focus()),this.value!==a&&this.updateComplete.then(()=>{this.dispatchEvent(new InputEvent("input",{bubbles:!0,composed:!0})),this.dispatchEvent(new Event("change",{bubbles:!0,composed:!0}))}),t.preventDefault()}focus(t){if(this.disabled)return;const e=this.getAllRadios(),a=e.find(t=>t.checked),o=e.find(t=>!t.disabled),r=a||o;r&&r.focus(t)}render(){const t=this.hasUpdated?this.hasSlotController.test("label"):this.withLabel,e=this.hasUpdated?this.hasSlotController.test("hint"):this.withHint,a=!!this.label||!!t,r=!!this.hint||!!e;return o.qy` <fieldset part="form-control" class="${(0,i.H)({"form-control":!0,"form-control-radio-group":!0,"form-control-has-label":a})}" role="radiogroup" aria-labelledby="label" aria-describedby="hint" aria-errormessage="error-message" aria-orientation="${this.orientation}" aria-label="${(0,s.J)(this.label||t||!this.ariaLabel?void 0:this.ariaLabel)}"> <label part="form-control-label" id="label" class="${(0,i.H)({label:!0,"has-label":a})}" aria-hidden="${a?"false":"true"}" ="${this.handleLabelClick}"> <slot name="label">${this.label}</slot> </label> <slot part="form-control-input" ="${this.syncRadioElements}"></slot> <slot id="hint" name="hint" part="hint" class="${(0,i.H)({"has-slotted":r})}" aria-hidden="${r?"false":"true"}">${this.hint}</slot> </fieldset> `}constructor(){super(),this.hasSlotController=new d.X(this,"hint","label"),this.label="",this.hint="",this.name=null,this.disabled=!1,this.orientation="vertical",this._value=null,this.defaultValue=this.getAttribute("value")||null,this.required=!1,this.withLabel=!1,this.withHint=!1,this.ariaLabel=null,this.radioTag="wa-radio",this.handleRadioClick=t=>{const e=t.target.closest(this.radioTag);if(!e||e.disabled||e.forceDisabled||this.disabled)return;const a=this.value;this.value=e.value,e.checked=!0;const o=this.getAllRadios();for(const t of o)e!==t&&(t.checked=!1,t.setAttribute("tabindex","-1"));this.value!==a&&this.updateComplete.then(()=>{this.dispatchEvent(new InputEvent("input",{bubbles:!0,composed:!0})),this.dispatchEvent(new Event("change",{bubbles:!0,composed:!0}))})},o.S$||(this.addEventListener("keydown",this.handleKeyDown),this.addEventListener("click",this.handleRadioClick))}};m.css=[p.A,b.A,f],m.shadowRootOptions={...u.q.shadowRootOptions,delegatesFocus:!0},v([(0,r.P)("slot:not([name])")],m.prototype,"defaultSlot",2),v([(0,r.MZ)()],m.prototype,"label",2),v([(0,r.MZ)({attribute:"hint"})],m.prototype,"hint",2),v([(0,r.MZ)({reflect:!0})],m.prototype,"name",2),v([(0,r.MZ)({type:Boolean,reflect:!0})],m.prototype,"disabled",2),v([(0,r.MZ)({reflect:!0})],m.prototype,"orientation",2),v([(0,r.wk)()],m.prototype,"value",1),v([(0,r.MZ)({attribute:"value",reflect:!0})],m.prototype,"defaultValue",2),v([(0,r.MZ)({reflect:!0})],m.prototype,"size",2),v([(0,h.w)("size")],m.prototype,"handleSizeChange",1),v([(0,r.MZ)({type:Boolean,reflect:!0})],m.prototype,"required",2),v([(0,r.MZ)({type:Boolean,attribute:"with-label"})],m.prototype,"withLabel",2),v([(0,r.MZ)({type:Boolean,attribute:"with-hint"})],m.prototype,"withHint",2),v([(0,r.MZ)({attribute:"aria-label"})],m.prototype,"ariaLabel",2),v([(0,r.MZ)({attribute:"radio-tag"})],m.prototype,"radioTag",2),m=v([(0,r.EM)("wa-radio-group")],m),m.disableWarning?.("change-in-update")},17010(t,e,a){a.d(e,{A:()=>p});var o=a(5124),r=a(22441),i=a(40991),s=a(9395),l=a(62676),n=a(15477),d=a(31896),c=(a(38625),o.AH`:host{--checked-icon-color:var(--wa-form-control-activated-color);--checked-icon-scale:0.7;color:var(--wa-form-control-value-color);display:inline-flex;flex-direction:row;align-items:top;font-family:inherit;font-weight:var(--wa-form-control-value-font-weight);line-height:var(--wa-form-control-value-line-height);cursor:pointer;user-select:none;-webkit-user-select:none}:host(:focus){outline:0}:host(:not(:state(checked))) svg circle{opacity:0}[part~=label]{display:inline}[part~=hint]{margin-block-start:0.5em}:host([appearance=default]){margin-block:0.375em}:host([appearance=default][data-wa-radio-horizontal]){margin-block:0;margin-inline:0.5em}:host([appearance=default][data-wa-radio-first]){margin-block-start:0;margin-inline-start:0}:host([appearance=default][data-wa-radio-last]){margin-block-end:0;margin-inline-end:0}:host([appearance=button]){margin:0;align-items:center;min-height:var(--wa-form-control-height);background-color:var(--wa-color-surface-default);border:var(--wa-form-control-border-width) var(--wa-form-control-border-style) var(--wa-form-control-border-color);border-radius:var(--wa-border-radius-m);padding:0 var(--wa-form-control-padding-inline);transition:background-color var(--wa-transition-fast),border-color var(--wa-transition-fast)}:host([appearance=default]) .control{flex:0 0 auto;position:relative;display:inline-flex;align-items:center;justify-content:center;width:var(--wa-form-control-toggle-size);height:var(--wa-form-control-toggle-size);border-color:var(--wa-form-control-border-color);border-radius:50%;border-style:var(--wa-form-control-border-style);border-width:var(--wa-form-control-border-width);background-color:var(--wa-form-control-background-color);color:transparent;transition:background var(--wa-transition-normal),border-color var(--wa-transition-fast),box-shadow var(--wa-transition-fast),color var(--wa-transition-fast);transition-timing-function:var(--wa-transition-easing);margin-inline-end:.5em}:host([appearance=default]) .checked-icon{display:flex;fill:currentColor;width:var(--wa-form-control-toggle-size);height:var(--wa-form-control-toggle-size);scale:var(--checked-icon-scale)}:host([appearance=button]) .control{display:none}:host(:state(checked)) .control{color:var(--checked-icon-color);border-color:var(--wa-form-control-activated-color);background-color:var(--wa-form-control-background-color)}:host(:focus-visible) .control{outline:var(--wa-focus-ring);outline-offset:var(--wa-focus-ring-offset)}:host(:state(disabled)){opacity:.5;cursor:not-allowed}:host([appearance=button][data-wa-radio-horizontal][data-wa-radio-inner]){border-radius:0}:host([appearance=button][data-wa-radio-horizontal][data-wa-radio-first]){border-start-end-radius:0;border-end-end-radius:0}:host([appearance=button][data-wa-radio-horizontal][data-wa-radio-last]){border-start-start-radius:0;border-end-start-radius:0}:host([appearance=button][data-wa-radio-vertical][data-wa-radio-inner]){border-radius:0}:host([appearance=button][data-wa-radio-vertical][data-wa-radio-first]){border-end-start-radius:0;border-end-end-radius:0}:host([appearance=button][data-wa-radio-vertical][data-wa-radio-last]){border-start-start-radius:0;border-start-end-radius:0} (hover:hover){:host([appearance=button]:hover:not(:state(disabled),:state(checked))){background-color:color-mix(in srgb,var(--wa-color-surface-default) 95%,var(--wa-color-mix-hover))}}:host([appearance=button]:focus-visible){outline:var(--wa-focus-ring);outline-offset:var(--wa-focus-ring-offset)}:host([appearance=button]:state(checked)){border-color:var(--wa-form-control-activated-color);background-color:var(--wa-color-brand-fill-quiet)}:host([appearance=button]:state(checked):focus-visible){outline:var(--wa-focus-ring);outline-offset:var(--wa-focus-ring-offset)}:host([appearance=button][data-wa-radio-horizontal]:not([data-wa-radio-first])){margin-inline-start:calc(-1 * var(--wa-form-control-border-width))}:host([appearance=button][data-wa-radio-vertical]:not([data-wa-radio-first])){margin-block-start:calc(-1 * var(--wa-form-control-border-width))}:host([appearance=button]:hover),:host([appearance=button]:state(checked)){position:relative;z-index:1}:host([appearance=button]:focus-visible){z-index:2}`),h=Object.defineProperty,u=Object.getOwnPropertyDescriptor,b=(t,e,a,o)=>{for(var r,i=o>1?void 0:o?u(e,a):e,s=t.length-1;s>=0;s--)(r=t[s])&&(i=(o?r(e,a,i):r(i))||i);return o&&i&&h(e,a,i),i};let p=class extends l.q{handleSizeChange(){(0,i.b)(this.localName,this.size)}connectedCallback(){super.connectedCallback(),this.setInitialAttributes()}setInitialAttributes(){this.setAttribute("role","radio"),this.tabIndex=0,this.setAttribute("aria-disabled",this.disabled||this.forceDisabled?"true":"false")}updated(t){if(super.updated(t),t.has("checked")&&(this.customStates.set("checked",this.checked),this.setAttribute("aria-checked",this.checked?"true":"false"),this.disabled||this.forceDisabled||(this.tabIndex=this.checked?0:-1)),t.has("disabled")||t.has("forceDisabled")){const t=this.disabled||this.forceDisabled;this.customStates.set("disabled",t),this.setAttribute("aria-disabled",t?"true":"false"),this.tabIndex=t?-1:this.checked?0:-1}}setValue(){}render(){return o.qy` <span part="control" class="control"> ${this.checked?o.qy` <svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" part="checked-icon" class="checked-icon"> <circle cx="8" cy="8" r="8"/> </svg> `:""} </span> <slot part="label" class="label"></slot> `}constructor(){super(),this.checked=!1,this.forceDisabled=!1,this.appearance="default",this.disabled=!1,this.handleClick=()=>{this.disabled||this.forceDisabled||(this.checked=!0)},o.S$||this.addEventListener("click",this.handleClick)}};p.css=[n.A,d.A,c],b([(0,r.wk)()],p.prototype,"checked",2),b([(0,r.wk)()],p.prototype,"forceDisabled",2),b([(0,r.MZ)({reflect:!0})],p.prototype,"value",2),b([(0,r.MZ)({reflect:!0})],p.prototype,"appearance",2),b([(0,r.MZ)({reflect:!0})],p.prototype,"size",2),b([(0,s.w)("size")],p.prototype,"handleSizeChange",1),b([(0,r.MZ)({type:Boolean})],p.prototype,"disabled",2),p=b([(0,r.EM)("wa-radio")],p),p.disableWarning?.("change-in-update")}};