iobroker.lovelace
Version:
With this adapter you can build visualization for ioBroker with Home Assistant Lovelace UI
1 lines • 12.6 kB
JavaScript
export const __rspack_esm_id=75939;export const __rspack_esm_ids=[75939];export const __webpack_modules__={28170(t,e,i){i.d(e,{o:()=>h});var s=i(62826),o=i(5124),a=i(22441),n=i(1087),r=i(83892);class h extends r.x{connectedCallback(){super.connectedCallback(),this.hasAttribute("role")||this.setAttribute("role",this.defaultRole),(0,n.r)(this,"ha-list-item-register",{item:this})}disconnectedCallback(){super.disconnectedCallback(),(0,n.r)(this,"ha-list-item-unregister",{item:this})}activate(){this.click()}constructor(...t){super(...t),this.interactive=!1,this.defaultRole="listitem"}}h.styles=[r.x.styles,o.AH`:host{--ha-list-item-focus-radius:var(--ha-border-radius-sm);--ha-list-item-focus-width:2px;--ha-list-item-focus-width-start:var(--ha-space-2);--ha-list-item-focus-offset:-2px;--ha-list-item-focus-background:var(--ha-color-fill-neutral-quiet-hover)}:host(:focus){outline:0}.base{border-radius:var(--ha-list-item-focus-radius);outline:var(--ha-list-item-focus-width) solid transparent;outline-offset:var(--ha-list-item-focus-offset);transition:outline-color var(--ha-animation-duration-fast) ease-out,background-color var(--ha-animation-duration-fast) ease-out} ha-list-item-focus-in{from{outline-width:var(--ha-list-item-focus-width-start);outline-offset:calc(-1 * var(--ha-list-item-focus-width-start))}to{outline-width:var(--ha-list-item-focus-width);outline-offset:var(--ha-list-item-focus-offset)}}:host(:focus-visible) .base{outline-color:var(--ha-color-focus);background-color:var(--ha-list-item-focus-background);animation:ha-list-item-focus-in var(--ha-animation-duration-normal) ease-in}`],(0,s.Cg)([(0,a.MZ)({type:Boolean,reflect:!0})],h.prototype,"interactive",void 0),h=(0,s.Cg)([(0,a.EM)("ha-list-item-base")],h)},1671(t,e,i){var s=i(62826),o=i(5124),a=i(22441),n=i(63672),r=(i(54276),i(28170));class h extends r.o{activate(){this._item?.click()}_renderBase(t){return void 0!==this.href?o.qy`<a part="base" class="base interactive" id="item" href="${(0,n.J)(this.disabled?void 0:this.href)}" target="${(0,n.J)(this.target)}" rel="${(0,n.J)(this.rel)}" download="${(0,n.J)(this.download)}" tabindex="-1" aria-disabled="${this.disabled?"true":"false"}"> ${this._renderRipple()}${t} </a>`:o.qy`<button part="base" class="base interactive" id="item" type="button" ?disabled="${this.disabled}" tabindex="-1"> ${this._renderRipple()}${t} </button>`}_renderRipple(){return o.qy`<ha-ripple part="ripple" for="item" ?disabled="${this.disabled}"></ha-ripple>`}constructor(...t){super(...t),this.interactive=!0}}h.styles=[r.o.styles,o.AH`:host{cursor:pointer;--ha-ripple-color:var(--primary-text-color)}:host([disabled]){cursor:default}.base.interactive{width:100%;border:none;background:0 0;color:inherit;font:inherit;text-align:inherit;text-decoration:none;appearance:none;cursor:inherit}:host([disabled]) .base.interactive{color:var(--disabled-text-color)}`],(0,s.Cg)([(0,a.MZ)({type:String})],h.prototype,"href",void 0),(0,s.Cg)([(0,a.MZ)({type:String})],h.prototype,"target",void 0),(0,s.Cg)([(0,a.MZ)({type:String})],h.prototype,"rel",void 0),(0,s.Cg)([(0,a.MZ)({type:String})],h.prototype,"download",void 0),(0,s.Cg)([(0,a.P)("#item")],h.prototype,"_item",void 0),h=(0,s.Cg)([(0,a.EM)("ha-list-item-button")],h)},83892(t,e,i){i.d(e,{x:()=>r});i(18111),i(13579);var s=i(62826),o=i(92070),a=i(5124),n=i(22441);class r extends a.WF{_onSlotChange(t){return e=>{const i=e.target.assignedNodes({flatten:!0}).some(t=>t.nodeType===Node.ELEMENT_NODE||t.nodeType===Node.TEXT_NODE&&""!==t.textContent?.trim());"start"===t?this._hasStart=i:this._hasEnd=i}}render(){return this._renderBase(this._renderInner())}_renderBase(t){return a.qy`<div part="base" class="base" id="item">${t}</div>`}_renderInner(){const t=this._slotController.test("content");return a.qy` <div part="start" class="start" ?hidden="${!this._hasStart}"> <slot name="start" ="${this._onSlotChange("start")}"></slot> </div> <div part="content" class="content"> ${t?a.qy`<slot name="content"></slot>`:this._renderDefaultContent()} </div> <div part="end" class="end" ?hidden="${!this._hasEnd}"> <slot name="end" ="${this._onSlotChange("end")}"></slot> </div> `}_renderDefaultContent(){const t=this._slotController.test("headline"),e=this._slotController.test("supporting-text"),i=t||void 0!==this.headline,s=e||void 0!==this.supportingText;return a.qy` ${i?a.qy`<div part="headline" class="headline"> <slot name="headline">${this.headline??a.s6}</slot> </div>`:a.s6} ${s?a.qy`<div part="supporting-text" class="supporting"> <slot name="supporting-text">${this.supportingText??a.s6}</slot> </div>`:a.s6} `}constructor(...t){super(...t),this.disabled=!1,this._slotController=new o.X(this,"headline","supporting-text","content"),this._hasStart=!1,this._hasEnd=!1}}r.styles=a.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,s.Cg)([(0,n.MZ)({type:String})],r.prototype,"headline",void 0),(0,s.Cg)([(0,n.MZ)({type:String,attribute:"supporting-text"})],r.prototype,"supportingText",void 0),(0,s.Cg)([(0,n.MZ)({type:Boolean,reflect:!0})],r.prototype,"disabled",void 0),(0,s.Cg)([(0,n.wk)()],r.prototype,"_hasStart",void 0),(0,s.Cg)([(0,n.wk)()],r.prototype,"_hasEnd",void 0),r=(0,s.Cg)([(0,n.EM)("ha-row-item")],r)},50723(t,e,i){i.d(e,{N:()=>d});i(74423),i(18111),i(22489),i(7588);var s=i(62826),o=i(5124),a=i(22441),n=i(91335);i(44114);const r=t=>{const e=[];let i=t;for(;i;){e.push(i);const t=i.parentNode;if(t instanceof ShadowRoot)i=t.host;else if(t)i=t;else{const t=i.getRootNode();i=t instanceof ShadowRoot?t.host:null}}return e.reverse()},h=(t,e)=>{if(t===e)return 0;const i=r(t),s=r(e);let o=0;for(;o<i.length&&o<s.length&&i[o]===s[o];)o++;return 0===o?0:o===i.length?-1:o===s.length?1:i[o].compareDocumentPosition(s[o])&Node.DOCUMENT_POSITION_FOLLOWING?-1:1};var l=i(1087);class d extends o.WF{connectedCallback(){super.connectedCallback(),this.hasAttribute("ha-list")||this.setAttribute("ha-list",""),!this.hasAttribute("role")&&this.hostRole&&this.setAttribute("role",this.hostRole),this._unbindKeys=(0,n.Tc)(this,{ArrowDown:this._onForward,ArrowUp:this._onBack,Home:this._onHome,End:this._onEnd,Enter:this._onActivate,Space:this._onActivate}),this.addEventListener("focusin",this._onFocusIn),this.addEventListener("ha-list-item-register",this._onItemRegister),this.addEventListener("ha-list-item-unregister",this._onItemUnregister)}disconnectedCallback(){super.disconnectedCallback(),this._unbindKeys?.(),this._unbindKeys=void 0,this.removeEventListener("focusin",this._onFocusIn),this.removeEventListener("ha-list-item-register",this._onItemRegister),this.removeEventListener("ha-list-item-unregister",this._onItemUnregister)}focus(t){this.items.length?this.focusItemAtIndex(this._activeItemIndex>=0?this._activeItemIndex:0):super.focus(t)}focusItemAtIndex(t){t<0||this.setActiveItemIndex(t,!0)}getActiveItemIndex(){return this._activeItemIndex}setActiveItemIndex(t,e=!1){this._hasFocusableItem?(this._activeItemIndex=Math.max(0,Math.min(this.items.length-1,t)),this._isFocusable(this._activeItemIndex)||(this._activeItemIndex=this._firstFocusableIndex),this._applyActive(e)):this._activeItemIndex=-1}updateListItems(){this._recomputeFocusableIndexes(),(this._activeItemIndex>=this.items.length||!this._hasFocusableItem||this._activeItemIndex<0)&&(this._activeItemIndex=this._firstFocusableIndex),this._applyActive(!1)}_recomputeFocusableIndexes(){let t=-1,e=-1;for(let i=0;i<this.items.length;i++)this._isFocusable(i)&&(-1===t&&(t=i),e=i);this._firstFocusableIndex=t,this._lastFocusableIndex=e,this._hasFocusableItem=-1!==t}render(){return o.qy`<div part="base" class="base"> <slot></slot> </div>`}_isFocusable(t){const e=this.items[t];return!!e&&e.interactive&&!e.disabled}_applyActive(t){this.items.forEach((t,e)=>{t.interactive&&!t.disabled?t.tabIndex=e===this._activeItemIndex?0:-1:t.removeAttribute("tabindex")}),t&&this._activeItemIndex>=0&&this.items[this._activeItemIndex]?.focus()}_moveFocus(t,e){!this._hasFocusableItem||e<0||e===this._activeItemIndex||(t.preventDefault(),this._activeItemIndex=e,this._applyActive(!0))}_stepIndex(t,e){const i=this.items.length;if(!i||!this._hasFocusableItem)return t;let s=t;for(let o=0;o<i;o++){if(s+=e,s<0||s>=i){if(!this.wrapFocus)return t;s=(s+i)%i}if(this._isFocusable(s))return s}return t}constructor(...t){super(...t),this.wrapFocus=!1,this.ariaLabel=null,this.items=[],this.hostRole="list",this._activeItemIndex=-1,this._firstFocusableIndex=-1,this._lastFocusableIndex=-1,this._hasFocusableItem=!1,this._onItemRegister=t=>{t.stopPropagation();const e=t.detail.item;if(this.items.includes(e))return;const i=[...this.items,e];i.sort(h),this.items=i,this.updateListItems()},this._onItemUnregister=t=>{t.stopPropagation();const e=t.detail.item;this.items.includes(e)&&(this.items=this.items.filter(t=>t!==e),this.updateListItems())},this._onFocusIn=t=>{const e=t.composedPath();for(let t=0;t<this.items.length;t++)if(e.includes(this.items[t]))return void(t!==this._activeItemIndex&&(this._activeItemIndex=t,this._applyActive(!1)))},this._onForward=t=>{this._moveFocus(t,this._stepIndex(this._activeItemIndex,1))},this._onBack=t=>{this._moveFocus(t,this._stepIndex(this._activeItemIndex,-1))},this._onHome=t=>{this._moveFocus(t,this._firstFocusableIndex)},this._onEnd=t=>{this._moveFocus(t,this._lastFocusableIndex)},this._onActivate=t=>{if(!this._isFocusable(this._activeItemIndex))return;t.preventDefault();const e=this.items[this._activeItemIndex];e.activate(),(0,l.r)(this,"ha-list-activated",{index:this._activeItemIndex,item:e})}}}d.styles=o.AH`:host{display:block}.base{display:flex;flex-direction:column;gap:var(--ha-list-gap,0);padding:var(--ha-list-padding,0);margin:0;list-style:none}`,(0,s.Cg)([(0,a.MZ)({type:Boolean,attribute:"wrap-focus"})],d.prototype,"wrapFocus",void 0),(0,s.Cg)([(0,a.MZ)({type:String,attribute:"aria-label",reflect:!0})],d.prototype,"ariaLabel",void 0),d=(0,s.Cg)([(0,a.EM)("ha-list-base")],d)},21006(t,e,i){i.a(t,async function(t,s){try{i.r(e),i.d(e,{ListItemsDialog:()=>c});i(18111),i(61701);var o=i(62826),a=i(5124),n=i(22441),r=i(1087),h=i(99611),l=i(72554),d=(i(47680),i(67094),i(1671),i(50723),t([h,l]));[h,l]=d.then?(await d)():d;class c extends a.WF{async showDialog(t){this._params=t,this._open=!0}closeDialog(t){return this._open=!1,!0}_dialogClosed(){this._params=void 0,(0,r.r)(this,"dialog-closed",{dialog:this.localName})}_itemClicked(t){const e=t.currentTarget.item;e&&(e.action(),this.closeDialog())}render(){if(!this._params||!this.hass)return a.s6;const t=a.qy` <div class="container"> <ha-list-base> ${this._params.items.map(t=>a.qy` <ha-list-item-button ="${this._itemClicked}" .item="${t}"> ${t.iconPath?a.qy` <ha-svg-icon .path="${t.iconPath}" slot="start"></ha-svg-icon> `:t.icon?a.qy` <ha-icon icon="${t.icon}" slot="start"></ha-icon> `:a.s6} <span slot="headline">${t.label}</span> ${t.description?a.qy` <span slot="supporting-text">${t.description}</span> `:a.s6} </ha-list-item-button> `)} </ha-list-base> </div> `;return"bottom-sheet"===this._params.mode?a.qy` <ha-bottom-sheet placement="bottom" .open="${this._open}" ="${this._dialogClosed}"> ${t} </ha-bottom-sheet> `:a.qy` <ha-dialog .open="${this._open}" header-title="${this._params.title??" "}" ="${this._dialogClosed}"> ${t} </ha-dialog> `}constructor(...t){super(...t),this._open=!1}}c.styles=a.AH`ha-bottom-sheet,ha-dialog{--dialog-z-index:104;--dialog-content-padding:0;--ha-row-item-padding-inline:var(--ha-space-6)}ha-bottom-sheet{--ha-bottom-sheet-content-padding:var(--ha-space-4) 0 0}`,(0,o.Cg)([(0,n.MZ)({attribute:!1})],c.prototype,"hass",void 0),(0,o.Cg)([(0,n.wk)()],c.prototype,"_params",void 0),(0,o.Cg)([(0,n.wk)()],c.prototype,"_open",void 0),c=(0,o.Cg)([(0,n.EM)("dialog-list-items")],c),s()}catch(t){s(t)}})}};