UNPKG

homebridge-config-ui-x

Version:

A web based management, configuration and control platform for Homebridge.

2 lines (1 loc) • 9.66 kB
import{b as R,i as j,m as S,n as L,o as V}from"./chunk-2QHNXSQY.js";import{Cb as m,Eb as h,Fb as u,Ga as O,H as _,Ha as T,Kb as l,Sa as P,Ta as a,W as C,Wa as F,X as v,Y as E,Zb as I,aa as r,ab as f,d as D,ja as H,ka as k,na as M,oa as N,sa as B,sc as K,ta as A,va as p,w as c,wb as g,xb as w}from"./chunk-LTGI3NYM.js";var Z=(()=>{class o{constructor(){this.autoClose=!0,this.placement=["bottom-start","bottom-end","top-start","top-end"],this.popperOptions=e=>e,this.container=null}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275prov=v({token:o,factory:o.\u0275fac,providedIn:"root"})}}return o})(),Q=(()=>{class o{constructor(){this._disabled=!1,this.nativeElement=r(p).nativeElement,this.tabindex=0}set disabled(e){this._disabled=e===""||e===!0}get disabled(){return this._disabled}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275dir=a({type:o,selectors:[["","ngbDropdownItem",""]],hostAttrs:[1,"dropdown-item"],hostVars:3,hostBindings:function(n,t){n&2&&(g("tabIndex",t.disabled?-1:t.tabindex),l("disabled",t.disabled))},inputs:{tabindex:"tabindex",disabled:"disabled"}})}}return o})(),se=(()=>{class o{constructor(){this.item=r(Q)}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275dir=a({type:o,selectors:[["button","ngbDropdownItem",""]],hostVars:1,hostBindings:function(n,t){n&2&&g("disabled",t.item.disabled)}})}}return o})(),$=(()=>{class o{constructor(){this.dropdown=r(U),this.nativeElement=r(p).nativeElement}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275dir=a({type:o,selectors:[["","ngbDropdownMenu",""]],contentQueries:function(n,t,s){if(n&1&&m(s,Q,4),n&2){let i;h(i=u())&&(t.menuItems=i)}},hostAttrs:[1,"dropdown-menu"],hostVars:2,hostBindings:function(n,t){n&1&&w("keydown.ArrowUp",function(i){return t.dropdown.onKeyDown(i)})("keydown.ArrowDown",function(i){return t.dropdown.onKeyDown(i)})("keydown.Home",function(i){return t.dropdown.onKeyDown(i)})("keydown.End",function(i){return t.dropdown.onKeyDown(i)})("keydown.Enter",function(i){return t.dropdown.onKeyDown(i)})("keydown.Space",function(i){return t.dropdown.onKeyDown(i)})("keydown.Tab",function(i){return t.dropdown.onKeyDown(i)})("keydown.Shift.Tab",function(i){return t.dropdown.onKeyDown(i)}),n&2&&l("show",t.dropdown.isOpen())}})}}return o})(),y=(()=>{class o{constructor(){this.dropdown=r(U),this.nativeElement=r(p).nativeElement}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275dir=a({type:o,selectors:[["","ngbDropdownAnchor",""]],hostAttrs:[1,"dropdown-toggle"],hostVars:3,hostBindings:function(n,t){n&2&&(f("aria-expanded",t.dropdown.isOpen()),l("show",t.dropdown.isOpen()))}})}}return o})(),re=(()=>{class o extends y{static{this.\u0275fac=(()=>{let e;return function(t){return(e||(e=A(o)))(t||o)}})()}static{this.\u0275dir=a({type:o,selectors:[["","ngbDropdownToggle",""]],hostAttrs:[1,"dropdown-toggle"],hostVars:3,hostBindings:function(n,t){n&1&&w("click",function(){return t.dropdown.toggle()})("keydown.ArrowUp",function(i){return t.dropdown.onKeyDown(i)})("keydown.ArrowDown",function(i){return t.dropdown.onKeyDown(i)})("keydown.Home",function(i){return t.dropdown.onKeyDown(i)})("keydown.End",function(i){return t.dropdown.onKeyDown(i)})("keydown.Tab",function(i){return t.dropdown.onKeyDown(i)})("keydown.Shift.Tab",function(i){return t.dropdown.onKeyDown(i)}),n&2&&(f("aria-expanded",t.dropdown.isOpen()),l("show",t.dropdown.isOpen()))},features:[I([{provide:y,useExisting:C(()=>o)}]),F]})}}return o})(),U=(()=>{class o{constructor(){this._changeDetector=r(K),this._config=r(Z),this._document=r(k),this._injector=r(H),this._ngZone=r(N),this._nativeElement=r(p).nativeElement,this._destroyCloseHandlers$=new D,this._bodyContainer=null,this._positioning=R(),this.autoClose=this._config.autoClose,this._open=!1,this.placement=this._config.placement,this.popperOptions=this._config.popperOptions,this.container=this._config.container,this.openChange=new M}ngOnInit(){this.display||(this.display=this._nativeElement.closest(".navbar")?"static":"dynamic")}ngAfterContentInit(){T({write:()=>{this._applyPlacementClasses(),this._open&&this._setCloseHandlers()}},{injector:this._injector})}ngOnChanges(e){if(e.container&&this._open&&this._applyContainer(this.container),e.placement&&!e.placement.firstChange&&(this._positioning.setOptions({hostElement:this._anchor.nativeElement,targetElement:this._bodyContainer||this._menu.nativeElement,placement:this.placement}),this._applyPlacementClasses()),e.dropdownClass){let{currentValue:n,previousValue:t}=e.dropdownClass;this._applyCustomDropdownClass(n,t)}e.autoClose&&this._open&&(this.autoClose=e.autoClose.currentValue,this._setCloseHandlers())}isOpen(){return this._open}open(){this._open||(this._open=!0,this._applyContainer(this.container),this.openChange.emit(!0),this._setCloseHandlers(),this._anchor&&(this._anchor.nativeElement.focus(),this.display==="dynamic"&&this._ngZone.runOutsideAngular(()=>{this._positioning.createPopper({hostElement:this._anchor.nativeElement,targetElement:this._bodyContainer||this._menu.nativeElement,placement:this.placement,updatePopperOptions:e=>this.popperOptions(V([0,2])(e))}),this._applyPlacementClasses(),this._afterRenderRef=O({write:()=>{this._positionMenu()}},{injector:this._injector})})))}_setCloseHandlers(){this._destroyCloseHandlers$.next(),S(this._ngZone,this._document,this.autoClose,e=>{this.close(),e===0&&this._anchor.nativeElement.focus()},this._destroyCloseHandlers$,this._menu?[this._menu.nativeElement]:[],this._anchor?[this._anchor.nativeElement]:[],".dropdown-item,.dropdown-divider")}close(){this._open&&(this._open=!1,this._resetContainer(),this._positioning.destroy(),this._afterRenderRef?.destroy(),this._destroyCloseHandlers$.next(),this.openChange.emit(!1),this._changeDetector.markForCheck())}toggle(){this.isOpen()?this.close():this.open()}ngOnDestroy(){this.close()}onKeyDown(e){let{key:n}=e,t=this._getMenuElements(),s=-1,i=null,b=this._isEventFromToggle(e);if(!b&&t.length&&t.forEach((d,q)=>{d.contains(e.target)&&(i=d),d===j(this._document)&&(s=q)}),n===" "||n==="Enter"){i&&(this.autoClose===!0||this.autoClose==="inside")&&c(i,"click").pipe(_(1)).subscribe(()=>this.close());return}if(n==="Tab"){if(e.target&&this.isOpen()&&this.autoClose)if(this._anchor.nativeElement===e.target){this.container==="body"&&!e.shiftKey?(this._menu.nativeElement.setAttribute("tabindex","0"),this._menu.nativeElement.focus(),this._menu.nativeElement.removeAttribute("tabindex")):e.shiftKey&&this.close();return}else if(this.container==="body"){let d=this._menu.nativeElement.querySelectorAll(L);e.shiftKey&&e.target===d[0]?(this._anchor.nativeElement.focus(),e.preventDefault()):!e.shiftKey&&e.target===d[d.length-1]&&(this._anchor.nativeElement.focus(),this.close())}else c(e.target,"focusout").pipe(_(1)).subscribe(({relatedTarget:d})=>{this._nativeElement.contains(d)||this.close()});return}if(b||i){if(this.open(),t.length){switch(n){case"ArrowDown":s=Math.min(s+1,t.length-1);break;case"ArrowUp":if(this._isDropup()&&s===-1){s=t.length-1;break}s=Math.max(s-1,0);break;case"Home":s=0;break;case"End":s=t.length-1;break}t[s].focus()}e.preventDefault()}}_isDropup(){return this._nativeElement.classList.contains("dropup")}_isEventFromToggle(e){return this._anchor.nativeElement.contains(e.target)}_getMenuElements(){return this._menu?this._menu.menuItems.filter(({disabled:e})=>!e).map(({nativeElement:e})=>e):[]}_positionMenu(){let e=this._menu;this.isOpen()&&e&&(this.display==="dynamic"?(this._positioning.update(),this._applyPlacementClasses()):this._applyPlacementClasses(this._getFirstPlacement(this.placement)))}_getFirstPlacement(e){return Array.isArray(e)?e[0]:e.split(" ")[0]}_resetContainer(){this._menu&&this._nativeElement.appendChild(this._menu.nativeElement),this._bodyContainer&&(this._document.body.removeChild(this._bodyContainer),this._bodyContainer=null)}_applyContainer(e=null){if(this._resetContainer(),e==="body"){let n=this._menu.nativeElement,t=this._bodyContainer=this._bodyContainer||this._document.createElement("div");t.style.position="absolute",n.style.position="static",t.style.zIndex="1055",t.appendChild(n),this._document.body.appendChild(t)}this._applyCustomDropdownClass(this.dropdownClass)}_applyCustomDropdownClass(e,n){let t=this.container==="body"?this._bodyContainer:this._nativeElement;t&&(n&&t.classList.remove(n),e&&t.classList.add(e))}_applyPlacementClasses(e){if(this._menu){e||(e=this._getFirstPlacement(this.placement)),this._nativeElement.classList.remove("dropup","dropdown"),this.display==="static"?this._menu.nativeElement.setAttribute("data-bs-popper","static"):this._menu.nativeElement.removeAttribute("data-bs-popper");let n=e.search("^top")!==-1?"dropup":"dropdown";this._nativeElement.classList.add(n),this._bodyContainer&&(this._bodyContainer.classList.remove("dropup","dropdown"),this._bodyContainer.classList.add(n))}}static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275dir=a({type:o,selectors:[["","ngbDropdown",""]],contentQueries:function(n,t,s){if(n&1&&m(s,$,5)(s,y,5),n&2){let i;h(i=u())&&(t._menu=i.first),h(i=u())&&(t._anchor=i.first)}},hostVars:2,hostBindings:function(n,t){n&2&&l("show",t.isOpen())},inputs:{autoClose:"autoClose",dropdownClass:"dropdownClass",_open:[0,"open","_open"],placement:"placement",popperOptions:"popperOptions",container:"container",display:"display"},outputs:{openChange:"openChange"},exportAs:["ngbDropdown"],features:[B]})}}return o})();var de=(()=>{class o{static{this.\u0275fac=function(n){return new(n||o)}}static{this.\u0275mod=P({type:o})}static{this.\u0275inj=E({})}}return o})();export{Q as a,se as b,$ as c,re as d,U as e,de as f};