UNPKG

iobroker.lovelace

Version:

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

2 lines 13.4 kB
/*! For license information please see 81034.0e6735a4372372ab.js.LICENSE.txt */ "use strict";(self.rspackChunkhome_assistant_frontend=self.rspackChunkhome_assistant_frontend||[]).push([[81034],{97086:function(t,e,a){a.d(e,{A:function(){return z}});a(49255),a(74423),a(18111),a(22489),a(20116),a(7588),a(61701),a(13579),a(3362),a(27495),a(62953);var r=a(5124),o=a(67576),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);a(17010);let f;var v=(0,r.AH)(f||(f=(t=>t)`.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}`));let w,g,m,k=t=>t;var y=Object.defineProperty,A=Object.getOwnPropertyDescriptor,x=(t,e,a,r)=>{for(var o,i=r>1?void 0:r?A(e,a):e,s=t.length-1;s>=0;s--)(o=t[s])&&(i=(r?o(e,a,i):o(i))||i);return r&&i&&y(e,a,i),i};let z=class extends u.q{static get validators(){const t=r.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(){var t;return this.valueHasChanged?this._value:null!==(t=this._value)&&void 0!==t?t: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(r.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){var e;if(!["ArrowUp","ArrowDown","ArrowLeft","ArrowRight"," "].includes(t.key)||this.disabled)return;const a=this.getAllRadios().filter(t=>!t.disabled);if(a.length<=0)return;t.preventDefault();const r=this.value,o=null!==(e=a.find(t=>t.checked))&&void 0!==e?e:a[0],i=" "===t.key?0:["ArrowUp","ArrowLeft"].includes(t.key)?-1:1;let s=a.indexOf(o)+i;s||(s=0),s<0&&(s=a.length-1),s>a.length-1&&(s=0);const l=a.some(t=>"wa-radio-button"===t.tagName.toLowerCase());this.getAllRadios().forEach(t=>{t.checked=!1,l||t.setAttribute("tabindex","-1")}),this.value=a[s].value,a[s].checked=!0,l?a[s].shadowRoot.querySelector("button").focus():(a[s].setAttribute("tabindex","0"),a[s].focus()),this.value!==r&&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),r=e.find(t=>!t.disabled),o=a||r;o&&o.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,o=!!this.hint||!!e;return(0,r.qy)(w||(w=k` <fieldset part="form-control" class="${0}" role="radiogroup" aria-labelledby="label" aria-describedby="hint" aria-errormessage="error-message" aria-orientation="${0}" aria-label="${0}"> <label part="form-control-label" id="label" class="${0}" aria-hidden="${0}" @click="${0}"> <slot name="label">${0}</slot> </label> <slot part="form-control-input" @slotchange="${0}"></slot> <slot id="hint" name="hint" part="hint" class="${0}" aria-hidden="${0}">${0}</slot> </fieldset> `),(0,i.H)({"form-control":!0,"form-control-radio-group":!0,"form-control-has-label":a}),this.orientation,(0,s.J)(this.label||t||!this.ariaLabel?void 0:this.ariaLabel),(0,i.H)({label:!0,"has-label":a}),a?"false":"true",this.handleLabelClick,this.label,this.syncRadioElements,(0,i.H)({"has-slotted":o}),o?"false":"true",this.hint)}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 r=this.getAllRadios();for(const o of r)e!==o&&(o.checked=!1,o.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}))})},r.S$||(this.addEventListener("keydown",this.handleKeyDown),this.addEventListener("click",this.handleRadioClick))}};z.css=[p.A,b.A,v],z.shadowRootOptions=Object.assign(Object.assign({},u.q.shadowRootOptions),{},{delegatesFocus:!0}),x([(0,o.P)("slot:not([name])")],z.prototype,"defaultSlot",2),x([(0,o.MZ)()],z.prototype,"label",2),x([(0,o.MZ)({attribute:"hint"})],z.prototype,"hint",2),x([(0,o.MZ)({reflect:!0})],z.prototype,"name",2),x([(0,o.MZ)({type:Boolean,reflect:!0})],z.prototype,"disabled",2),x([(0,o.MZ)({reflect:!0})],z.prototype,"orientation",2),x([(0,o.wk)()],z.prototype,"value",1),x([(0,o.MZ)({attribute:"value",reflect:!0})],z.prototype,"defaultValue",2),x([(0,o.MZ)({reflect:!0})],z.prototype,"size",2),x([(0,h.w)("size")],z.prototype,"handleSizeChange",1),x([(0,o.MZ)({type:Boolean,reflect:!0})],z.prototype,"required",2),x([(0,o.MZ)({type:Boolean,attribute:"with-label"})],z.prototype,"withLabel",2),x([(0,o.MZ)({type:Boolean,attribute:"with-hint"})],z.prototype,"withHint",2),x([(0,o.MZ)({attribute:"aria-label"})],z.prototype,"ariaLabel",2),x([(0,o.MZ)({attribute:"radio-tag"})],z.prototype,"radioTag",2),z=x([(0,o.EM)("wa-radio-group")],z),null===(g=(m=z).disableWarning)||void 0===g||g.call(m,"change-in-update")},17010:function(t,e,a){a.d(e,{A:function(){return k}});var r=a(5124),o=a(67576),i=a(40991),s=a(9395),l=a(62676),n=a(15477),d=a(31896);a(38625);let c;var h=(0,r.AH)(c||(c=(t=>t)`: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}@media (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}`));let u,b,p,f,v=t=>t;var w=Object.defineProperty,g=Object.getOwnPropertyDescriptor,m=(t,e,a,r)=>{for(var o,i=r>1?void 0:r?g(e,a):e,s=t.length-1;s>=0;s--)(o=t[s])&&(i=(r?o(e,a,i):o(i))||i);return r&&i&&w(e,a,i),i};let k=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(0,r.qy)(u||(u=v` <span part="control" class="control"> ${0} </span> <slot part="label" class="label"></slot> `),this.checked?(0,r.qy)(b||(b=v` <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> `)):"")}constructor(){super(),this.checked=!1,this.forceDisabled=!1,this.appearance="default",this.disabled=!1,this.handleClick=()=>{this.disabled||this.forceDisabled||(this.checked=!0)},r.S$||this.addEventListener("click",this.handleClick)}};k.css=[n.A,d.A,h],m([(0,o.wk)()],k.prototype,"checked",2),m([(0,o.wk)()],k.prototype,"forceDisabled",2),m([(0,o.MZ)({reflect:!0})],k.prototype,"value",2),m([(0,o.MZ)({reflect:!0})],k.prototype,"appearance",2),m([(0,o.MZ)({reflect:!0})],k.prototype,"size",2),m([(0,s.w)("size")],k.prototype,"handleSizeChange",1),m([(0,o.MZ)({type:Boolean})],k.prototype,"disabled",2),k=m([(0,o.EM)("wa-radio")],k),null===(p=(f=k).disableWarning)||void 0===p||p.call(f,"change-in-update")}}]);