homebridge-config-ui-x 5.12.1-beta.6 → 5.12.1-beta.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. package/package.json +1 -1
  2. package/public/{chunk-GET4TOQ7.js → chunk-2QUH2FXS.js} +1 -1
  3. package/public/{chunk-SHOIYREX.js → chunk-3VAD7GQK.js} +1 -1
  4. package/public/{chunk-MIRW6W7S.js → chunk-3WNDNRRB.js} +1 -1
  5. package/public/{chunk-J33KCONB.js → chunk-4J3J7FSY.js} +1 -1
  6. package/public/{chunk-U5APV4HQ.js → chunk-55DZYJHI.js} +1 -1
  7. package/public/{chunk-VG77PUXT.js → chunk-5VXOT5GC.js} +1 -1
  8. package/public/{chunk-SDK5Z2TS.js → chunk-6P53ACWC.js} +1 -1
  9. package/public/{chunk-FLS573AD.js → chunk-7AD56BSX.js} +1 -1
  10. package/public/{chunk-NX25VUHB.js → chunk-7LOFSGZK.js} +1 -1
  11. package/public/{chunk-TLUSFONS.js → chunk-ARR3OK4P.js} +1 -1
  12. package/public/{chunk-X4YYP2LR.js → chunk-BADNEAHD.js} +1 -1
  13. package/public/{chunk-XBR7SSMW.js → chunk-C5UZ5BUH.js} +1 -1
  14. package/public/{chunk-35FSDYCY.js → chunk-D3QQAOPW.js} +1 -1
  15. package/public/{chunk-4IJDU5W2.js → chunk-EKYMLGZU.js} +1 -1
  16. package/public/{chunk-QWCGYWQP.js → chunk-F332UHUK.js} +1 -1
  17. package/public/{chunk-O4RPRD43.js → chunk-G5C66QEU.js} +1 -1
  18. package/public/{chunk-WFW4V5CB.js → chunk-GFJO2QTW.js} +1 -1
  19. package/public/{chunk-JV4CFTMO.js → chunk-HOHCTPYN.js} +1 -1
  20. package/public/{chunk-ZEBL4YGF.js → chunk-HZA5LDUU.js} +1 -1
  21. package/public/{chunk-MZA3FXYW.js → chunk-IXSMCZ5A.js} +1 -1
  22. package/public/{chunk-3TO3C4MF.js → chunk-JNPGEJ3W.js} +1 -1
  23. package/public/{chunk-OCNA6V4W.js → chunk-JTQQTKY7.js} +1 -1
  24. package/public/{chunk-DO2QQ27Z.js → chunk-K73S26T3.js} +1 -1
  25. package/public/{chunk-2U3YDOKK.js → chunk-KAPGBFLJ.js} +1 -1
  26. package/public/{chunk-AWY7TUU4.js → chunk-KDNXPUO5.js} +1 -1
  27. package/public/{chunk-Z35VSD7C.js → chunk-KLWYBXMO.js} +1 -1
  28. package/public/{chunk-SAZ3DI6M.js → chunk-MTYIEY2M.js} +1 -1
  29. package/public/{chunk-BAWF37TF.js → chunk-PQPDMNKK.js} +1 -1
  30. package/public/{chunk-PCRT3CPH.js → chunk-PSSWIPLS.js} +1 -1
  31. package/public/{chunk-3TYXDC2O.js → chunk-RGRPV7TK.js} +1 -1
  32. package/public/{chunk-22Z225AS.js → chunk-S3E6JDMS.js} +1 -1
  33. package/public/{chunk-WTZQODSR.js → chunk-S5H22WRF.js} +1 -1
  34. package/public/{chunk-T43ZT3B7.js → chunk-SCW535TW.js} +1 -1
  35. package/public/{chunk-VKVESOYG.js → chunk-UCTE5J3F.js} +1 -1
  36. package/public/{chunk-LK5Y5NQ2.js → chunk-VFZPU4ZL.js} +1 -1
  37. package/public/{chunk-LMM3BN25.js → chunk-VY4NTNG3.js} +1 -1
  38. package/public/{chunk-N5Z4CTHV.js → chunk-WZXTVC6W.js} +1 -1
  39. package/public/{chunk-DH5YBYHN.js → chunk-YIHVWXAX.js} +28 -28
  40. package/public/{chunk-2HD3TOVY.js → chunk-YQXFTYEI.js} +1 -1
  41. package/public/{chunk-Q7FTVGEO.js → chunk-ZH3VNDIS.js} +1 -1
  42. package/public/{chunk-WTYHWUIV.js → chunk-ZMEMMUUF.js} +1 -1
  43. package/public/index.html +1 -1
  44. package/public/{main-JPI6JIAY.js → main-XUQ5G5JD.js} +1 -1
@@ -1 +1 @@
1
- import{a as ie}from"./chunk-TUN7H57E.js";import{a as re}from"./chunk-U5APV4HQ.js";import{a as ne}from"./chunk-ZRGZJ2SE.js";import{a as de}from"./chunk-LK5Y5NQ2.js";import{a as te}from"./chunk-NX25VUHB.js";import{a as Z,b as ee}from"./chunk-HOWYXHPL.js";import{a as Y}from"./chunk-O4RPRD43.js";import{a as Q}from"./chunk-DO2QQ27Z.js";import{t as z}from"./chunk-BNNKKGLH.js";import{a as R,b as W,d as H,e as T,f as X,g as G}from"./chunk-QWCGYWQP.js";import{a as $}from"./chunk-GIBUKDL3.js";import{b as D}from"./chunk-LMM3BN25.js";import{b as B}from"./chunk-GET4TOQ7.js";import{C as A,D as J,H as I,o as q}from"./chunk-FLS573AD.js";import{Ab as S,Dc as d,Ec as l,Fb as g,Gb as i,Hb as a,Ib as p,Nc as K,Rb as M,Xb as u,Za as n,Zb as C,aa as c,ea as O,ga as b,ha as x,hb as j,ic as P,kc as _,lc as h,ma as U,mb as E,n as F,nb as V,sa as w,wc as f,yb as m,zb as y}from"./chunk-JJ5CEM72.js";import{g as se,h as L}from"./chunk-VJN6YUS2.js";var ae=se(de(),1);var N=()=>["/"],pe=()=>({exact:!0}),ce=()=>["/plugins"],me=()=>["/accessories"],ue=()=>["/logs"],_e=()=>["/support"],ge=()=>["/platform-tools/terminal"],ve=()=>["/config"],he=()=>["/settings"],fe=()=>["/power-options"];function be(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",20),d(2,"translate"),d(3,"translate"),u("click",function(){b(e);let t=C();return x(t.openUnderVoltageModal())})("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(4,"div",12),p(5,"i",21),a(),i(6,"div",14),_(7),d(8,"translate"),a()()()}s&2&&(n(),m("aria-label",l(2,2,"rpi.throttled.undervoltage_title")+" - "+l(3,4,"rpi.throttled.undervoltage_description")),n(6),h(l(8,6,"rpi.throttled.undervoltage_title")))}function xe(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",15),d(2,"translate"),u("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",22),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),g("routerLink",f(8,ge))("routerLinkActive","active"),m("aria-label",l(2,4,"menu.linux.label_terminal")),n(5),h(l(7,6,"menu.linux.label_terminal")))}function Ce(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",15),d(2,"translate"),u("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",23),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),g("routerLink",f(8,ve))("routerLinkActive","active"),m("aria-label",l(2,4,"menu.config_json_editor")),n(5),h(l(7,6,"menu.config_json_editor")))}function we(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",15),d(2,"translate"),u("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",24),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),g("routerLink",f(8,he))("routerLinkActive","active"),m("aria-label",l(2,4,"menu.label_settings")),n(5),h(l(7,6,"menu.label_settings")))}function ye(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",15),d(2,"translate"),u("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",25),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),g("routerLink",f(8,fe))("routerLinkActive","active"),m("aria-label",l(2,4,"menu.restart.title")),n(5),h(l(7,6,"menu.restart.title")))}function Se(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",20),d(2,"translate"),u("click",function(){b(e);let t=C();return x(t.reloadPage())})("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",26),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),m("aria-label",l(2,2,"menu.reload")),n(5),h(l(7,4,"menu.reload")))}function Me(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",20),d(2,"translate"),u("click",function(){b(e);let t=C();return x(t.logout())})("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",27),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),m("aria-label",l(2,2,"menu.tooltip_logout")),n(5),h(l(7,4,"menu.tooltip_logout")))}var oe=(()=>{class s{destroyRef=c(U);injector=c(O);$auth=c(D);$authHelper=c(Q);$settings=c(B);$modal=c(z);$notification=c(ne);$renderer=c(j);$router=c(T);$translate=c(A);initialIsExpanded=K(!1);isExpanded=w(!1);formAuth=w(this.$settings.formAuth);isAdmin=this.$auth.user.admin;enableTerminalAccess=this.$settings.env.enableTerminalAccess;rPiCurrentlyUnderVoltage=w(!1);rPiWasUnderVoltage=w(!1);isMobile=w(!1);freezeMenu=w(!1);isPwa=ie();sidebarMouseEnterListener=()=>this.openSidebar();sidebarMouseLeaveListener=()=>this.closeSidebar();touchstartListener;clickListener;constructor(){this.isMobile.set(window.innerWidth<768);let e;window.addEventListener("resize",()=>{clearTimeout(e),e=setTimeout(()=>{this.updateListeners()},500)}),this.$router.events.pipe($()).subscribe(r=>L(this,null,function*(){if(r instanceof R&&this.$settings.formAuth&&r.url!=="/login"&&!(yield this.$authHelper.isAuthenticated())){window.sessionStorage.setItem("target_route",r.url),yield this.$router.navigate(["/login"]);return}r instanceof W&&queueMicrotask(()=>{this.closeSidebar(),this.freezeMenu.set(!0),setTimeout(()=>{this.freezeMenu.set(!1)},750)})}))}ngOnInit(){this.isExpanded.set(this.initialIsExpanded()),this.$notification.raspberryPiThrottled.pipe($(this.destroyRef)).subscribe(o=>{o["Under Voltage"]&&this.rPiCurrentlyUnderVoltage.set(!0),o["Under-voltage has occurred"]&&this.rPiWasUnderVoltage.set(!0)}),this.$notification.formAuthEnabled.pipe($(this.destroyRef)).subscribe(o=>{this.formAuth.set(o)});let e=document.querySelector(".sidebar"),r=document.querySelector(".m-header"),t=document.querySelector(".content");this.isMobile()?(this.touchstartListener=o=>{if(t.contains(o.target)&&this.isExpanded()){o.preventDefault(),this.toggleSidebar();return}!e.contains(o.target)&&!r.contains(o.target)&&this.isExpanded()&&(o.preventDefault(),this.closeSidebar())},document.addEventListener("touchstart",this.touchstartListener,{passive:!1})):(this.updateListeners(),r.addEventListener("mouseenter",this.sidebarMouseEnterListener,{passive:!1}),r.addEventListener("mouseleave",this.sidebarMouseLeaveListener,{passive:!1}),this.clickListener=o=>{e.contains(o.target)&&o.clientX>60&&this.closeSidebar()},document.addEventListener("click",this.clickListener,{passive:!1}))}toggleSidebar(){this.freezeMenu()||(this.isExpanded.set(!this.isExpanded()),this.updateContentStyles())}openUnderVoltageModal(){let e=E([{provide:ee,useValue:{title:this.$translate.instant("rpi.throttled.undervoltage_title"),message:this.$translate.instant(this.rPiCurrentlyUnderVoltage()?"rpi.throttled.currently_message":"rpi.throttled.previously_message"),ctaButtonLabel:this.$translate.instant("form.button_more_info"),faIconClass:"fas fa-bolt yellow-text",ctaButtonLink:"https://pimylifeup.com/raspberry-pi-low-voltage-warning"}}],this.injector);this.$modal.open(re,{size:"lg",backdrop:"static",injector:e})}handleKeydown(e){if(e.key==="Enter"){let r=e.target;["menuitem","button"].includes(r.getAttribute("role"))&&r.click()}}reloadPage(){window.location.reload()}ngOnDestroy(){this.touchstartListener&&document.removeEventListener("touchstart",this.touchstartListener),this.clickListener&&document.removeEventListener("click",this.clickListener);let e=document.querySelector(".sidebar"),r=document.querySelector(".m-header");e&&(e.removeEventListener("mouseenter",this.sidebarMouseEnterListener),e.removeEventListener("mouseleave",this.sidebarMouseLeaveListener)),r&&(r.removeEventListener("mouseenter",this.sidebarMouseEnterListener),r.removeEventListener("mouseleave",this.sidebarMouseLeaveListener))}logout(){this.$auth.logout()}openSidebar(){this.freezeMenu()||(this.isExpanded.set(!0),this.updateContentStyles())}closeSidebar(){this.freezeMenu()||(this.isExpanded.set(!1),this.updateContentStyles())}updateContentStyles(){let e=document.querySelector(".content");this.isExpanded()?(this.$renderer.setStyle(e,"opacity","20%"),this.$renderer.setStyle(e,"pointer-events","none"),this.$renderer.setStyle(e,"overflow","hidden")):(this.$renderer.removeStyle(e,"opacity"),this.$renderer.removeStyle(e,"pointer-events"),this.$renderer.removeStyle(e,"overflow"))}updateListeners(){this.isMobile.set(window.innerWidth<768);let e=document.querySelector(".sidebar");e.removeEventListener("mouseenter",this.sidebarMouseEnterListener),e.removeEventListener("mouseleave",this.sidebarMouseLeaveListener),(this.isMobile()||!this.isMobile()&&this.$settings.menuMode!=="freeze")&&(e.addEventListener("mouseenter",this.sidebarMouseEnterListener,{passive:!1}),e.addEventListener("mouseleave",this.sidebarMouseLeaveListener,{passive:!1}))}static \u0275fac=function(r){return new(r||s)};static \u0275cmp=V({type:s,selectors:[["app-sidebar"]],inputs:{initialIsExpanded:[1,"initialIsExpanded"]},decls:68,vars:73,consts:[["tabindex","0","role","button",1,"m-header","text-end",3,"click","keydown"],[1,"me-2","d-block","d-lg-none",2,"font-size","0.9rem","color","#dddddd"],[3,"routerLink"],["ngSrc","assets/homebridge-logo.svg","alt","HB Logo","height","35","width","35",2,"height","35px","width","35px"],[1,"hb-logo-text-mobile"],[1,"hamburger-icon"],["role","navigation","id","sidebar",1,"sidebar"],["tabindex","0","role","button",1,"header",3,"click","keydown"],[1,"hb-logo-text"],[1,"link-wrapper"],[1,"link"],["role","menuitem","tabindex","0",1,"link-row",3,"keydown","routerLink","routerLinkActive","routerLinkActiveOptions"],[1,"icon"],[1,"fa","fa-house"],[1,"title"],["role","menuitem","tabindex","0",1,"link-row",3,"keydown","routerLink","routerLinkActive"],[1,"fa","fa-plug"],[1,"fa","fa-lightbulb"],[1,"fa","fa-wave-square"],[1,"fa","fa-question-circle-o"],["role","menuitem","tabindex","0",1,"link-row",3,"click","keydown"],[1,"fas","fa-bolt","fa-beat","yellow-text",2,"--fa-beat-scale","1.5"],[1,"fa","fa-terminal"],[1,"fa","fa-code"],[1,"fa","fa-cog"],[1,"fa","fa-power-off"],[1,"fa","fa-refresh"],[1,"fa","fa-right-from-bracket"]],template:function(r,t){r&1&&(i(0,"div",0),d(1,"translate"),u("click",function(){return t.toggleSidebar()})("keydown",function(v){return t.handleKeydown(v)}),p(2,"span",1),i(3,"a",2),d(4,"translate"),p(5,"img",3),i(6,"div",4),_(7,"Homebridge"),a()(),i(8,"div",5),p(9,"span")(10,"span")(11,"span")(12,"span"),a()(),i(13,"div",6)(14,"div",7),u("click",function(){return t.toggleSidebar()})("keydown",function(v){return t.handleKeydown(v)}),i(15,"a",2),d(16,"translate"),p(17,"img",3),i(18,"div",8),_(19,"Homebridge"),a()()(),i(20,"div",9)(21,"div",10)(22,"div",11),d(23,"translate"),u("keydown",function(v){return t.handleKeydown(v)}),i(24,"div",12),p(25,"i",13),a(),i(26,"div",14),_(27),d(28,"translate"),a()()(),y(29,be,9,8,"div",10),i(30,"div",10)(31,"div",15),d(32,"translate"),u("keydown",function(v){return t.handleKeydown(v)}),i(33,"div",12),p(34,"i",16),a(),i(35,"div",14),_(36),d(37,"translate"),a()()(),i(38,"div",10)(39,"div",15),d(40,"translate"),u("keydown",function(v){return t.handleKeydown(v)}),i(41,"div",12),p(42,"i",17),a(),i(43,"div",14),_(44),d(45,"translate"),a()()(),i(46,"div",10)(47,"div",15),d(48,"translate"),u("keydown",function(v){return t.handleKeydown(v)}),i(49,"div",12),p(50,"i",18),a(),i(51,"div",14),_(52),d(53,"translate"),a()()(),y(54,xe,8,9,"div",10),y(55,Ce,8,9,"div",10),y(56,we,8,9,"div",10),i(57,"div",10)(58,"div",15),d(59,"translate"),u("keydown",function(v){return t.handleKeydown(v)}),i(60,"div",12),p(61,"i",19),a(),i(62,"div",14),_(63),d(64,"translate"),a()()(),y(65,ye,8,9,"div",10),y(66,Se,8,6,"div",10),y(67,Me,8,6,"div",10),a()()),r&2&&(m("aria-expanded",t.isExpanded()?"true":"false")("aria-controls","sidebar")("aria-label",l(1,39,"menu.sidebar.aria_menu")),n(3),g("routerLink",f(65,N)),m("aria-label",l(4,41,"menu.label_status")),n(5),P("hamburger-icon-cross",t.isExpanded()),n(5),P("expanded",t.isExpanded()),n(2),g("routerLink",f(66,N)),m("aria-label",l(16,43,"menu.label_status")),n(7),g("routerLink",f(67,N))("routerLinkActive","active")("routerLinkActiveOptions",f(68,pe)),m("aria-label",l(23,45,"menu.label_status")),n(5),h(l(28,47,"menu.label_status")),n(2),S(t.rPiWasUnderVoltage()||t.rPiCurrentlyUnderVoltage()?29:-1),n(2),g("routerLink",f(69,ce))("routerLinkActive","active"),m("aria-label",l(32,49,"menu.label_plugins")),n(5),h(l(37,51,"menu.label_plugins")),n(3),g("routerLink",f(70,me))("routerLinkActive","active"),m("aria-label",l(40,53,"menu.label_accessories")),n(5),h(l(45,55,"menu.label_accessories")),n(3),g("routerLink",f(71,ue))("routerLinkActive","active"),m("aria-label",l(48,57,"menu.linux.label_logs")),n(5),h(l(53,59,"menu.linux.label_logs")),n(2),S(t.enableTerminalAccess&&t.isAdmin?54:-1),n(),S(t.isAdmin?55:-1),n(),S(t.isAdmin?56:-1),n(2),g("routerLink",f(72,_e))("routerLinkActive","active"),m("aria-label",l(59,61,"support.title")),n(5),h(l(64,63,"support.title")),n(2),S(t.isAdmin?65:-1),n(),S(t.isPwa?66:-1),n(),S(t.formAuth()?67:-1))},dependencies:[X,q,G,J],styles:[".m-header[_ngcontent-%COMP%]{position:fixed;top:0;left:0;width:100%;height:65px;z-index:510;display:flex;align-items:center;padding-left:3px;padding-right:3px}.m-header[_ngcontent-%COMP%]:hover{cursor:pointer}@media(min-width:768px){.m-header[_ngcontent-%COMP%]{display:none}}.sidebar[_ngcontent-%COMP%]{position:fixed;left:0;top:0;height:100vh;transition:.3s;width:60px;z-index:500}.sidebar[_ngcontent-%COMP%] .header[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;padding:15px 10px 15px 11px;font-size:.85rem}.sidebar[_ngcontent-%COMP%] .header[_ngcontent-%COMP%]:hover{cursor:pointer}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%]{overflow-x:hidden;overflow-y:auto;max-height:calc(100vh - 80px)!important;scrollbar-width:thin}@media(max-width:767px){.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%]{padding-bottom:60px}}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%]{display:flex;align-items:center;padding:15px 10px;cursor:pointer;transition:.2s;font-size:17px}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{flex:0 0 38px;display:flex;align-items:center;justify-content:center}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{flex:1;transition:.3s;max-width:0;overflow:hidden;white-space:nowrap}@media(max-width:767px){.sidebar[_ngcontent-%COMP%]{width:0}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%]{display:none}}.sidebar.expanded[_ngcontent-%COMP%]{width:210px}@media(max-width:767px){.sidebar.expanded[_ngcontent-%COMP%]{width:210px}.sidebar.expanded[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%]{display:block}}.sidebar.expanded[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{max-width:150px;padding-left:10px}.hamburger-icon[_ngcontent-%COMP%]{margin:-7px 0 0 25px}@media(min-width:768px){.hb-logo-text[_ngcontent-%COMP%]{color:#fff;position:absolute;top:17px;font-size:22px;padding-left:3px}.sidebar.expanded[_ngcontent-%COMP%] .hb-logo-text[_ngcontent-%COMP%]{opacity:1;left:55px;transition:.3s}.sidebar[_ngcontent-%COMP%]:not(.expanded) .hb-logo-text[_ngcontent-%COMP%]{opacity:0;left:40px;transition:.3s}.hb-logo-text-mobile[_ngcontent-%COMP%], .hamburger-icon[_ngcontent-%COMP%]{display:none!important}}@media(max-width:767px){.hb-logo-text[_ngcontent-%COMP%]{display:none!important}.hb-logo-text-mobile[_ngcontent-%COMP%]{color:#fff;position:absolute;top:17px;font-size:22px;padding-left:3px;opacity:1;left:55px}.hamburger-icon[_ngcontent-%COMP%]{position:absolute;right:10px;top:28px;width:30px;transform:rotate(0);transition:.5s ease-in-out;cursor:pointer}.hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:block;position:absolute;height:2px;width:100%;background-color:#fff;border-radius:9px;opacity:1;left:0;transform:rotate(0);transition:.25s ease-in-out}.hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(1){top:0}.hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(2), .hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(3){top:10px}.hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(4){top:20px}.hamburger-icon-cross[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(1){top:10px;width:0;left:50%}.hamburger-icon-cross[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(2){transform:rotate(45deg)}.hamburger-icon-cross[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(3){transform:rotate(-45deg)}.hamburger-icon-cross[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(4){top:10px;width:0;left:50%}}"]})}return s})();var tt=(()=>{class s{injector=c(O);$auth=c(D);$modal=c(z);$router=c(T);$settings=c(B);$translate=c(A);$ws=c(Y);io;sidebarExpanded=w(!1);ngOnInit(){this.io=this.$ws.connectToNamespace("app"),this.io.socket.on("reconnect",()=>{this.$auth.checkToken()}),this.compareServerUiVersion()}compareServerUiVersion(){return L(this,null,function*(){if(this.$settings.settingsLoaded||(yield F(this.$settings.onSettingsLoaded)),!this.$router.url.endsWith("/restart")&&(0,ae.lt)(this.$settings.uiVersion,I.serverTarget)){console.log(`Server restart required. UI Version: ${I.serverTarget} - Server Version: ${this.$settings.uiVersion} `);let e=E([{provide:Z,useValue:{title:this.$translate.instant("platform.version.service_restart_required"),message:this.$translate.instant("platform.version.restart_required",{serverVersion:this.$settings.uiVersion,uiVersion:I.serverTarget}),confirmButtonLabel:this.$translate.instant("menu.tooltip_restart"),faIconClass:"fas fa-power-off orange-text"}}],this.injector),r=this.$modal.open(te,{size:"lg",backdrop:"static",injector:e});try{yield r.result,this.$router.navigate(["/restart"])}catch{}}})}static \u0275fac=function(r){return new(r||s)};static \u0275cmp=V({type:s,selectors:[["app-layout"]],decls:3,vars:3,consts:[[3,"initialIsExpanded"],[1,"content","px-3","p-md-4"]],template:function(r,t){r&1&&(p(0,"app-sidebar",0),i(1,"div",1),p(2,"router-outlet"),a()),r&2&&(g("initialIsExpanded",t.sidebarExpanded()),n(),P("sidebarExpanded",t.sidebarExpanded()))},dependencies:[oe,H],styles:[".content[_ngcontent-%COMP%]{margin-left:60px;transition:.3s;height:100%}@media(max-width:767px){.content[_ngcontent-%COMP%]{margin-left:0;padding-top:85px!important}}@media(min-width:768px){.content[_ngcontent-%COMP%]{height:100%}}a[_ngcontent-%COMP%]:hover{text-decoration:none!important}"]})}return s})();export{tt as LayoutComponent};
1
+ import{a as ie}from"./chunk-TUN7H57E.js";import{a as re}from"./chunk-55DZYJHI.js";import{a as ne}from"./chunk-ZRGZJ2SE.js";import{a as de}from"./chunk-VFZPU4ZL.js";import{a as te}from"./chunk-7LOFSGZK.js";import{a as Z,b as ee}from"./chunk-HOWYXHPL.js";import{a as Y}from"./chunk-G5C66QEU.js";import{a as Q}from"./chunk-K73S26T3.js";import{t as z}from"./chunk-BNNKKGLH.js";import{a as R,b as W,d as H,e as T,f as X,g as G}from"./chunk-F332UHUK.js";import{a as $}from"./chunk-GIBUKDL3.js";import{b as D}from"./chunk-VY4NTNG3.js";import{b as B}from"./chunk-2QUH2FXS.js";import{C as A,D as J,H as I,o as q}from"./chunk-7AD56BSX.js";import{Ab as S,Dc as d,Ec as l,Fb as g,Gb as i,Hb as a,Ib as p,Nc as K,Rb as M,Xb as u,Za as n,Zb as C,aa as c,ea as O,ga as b,ha as x,hb as j,ic as P,kc as _,lc as h,ma as U,mb as E,n as F,nb as V,sa as w,wc as f,yb as m,zb as y}from"./chunk-JJ5CEM72.js";import{g as se,h as L}from"./chunk-VJN6YUS2.js";var ae=se(de(),1);var N=()=>["/"],pe=()=>({exact:!0}),ce=()=>["/plugins"],me=()=>["/accessories"],ue=()=>["/logs"],_e=()=>["/support"],ge=()=>["/platform-tools/terminal"],ve=()=>["/config"],he=()=>["/settings"],fe=()=>["/power-options"];function be(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",20),d(2,"translate"),d(3,"translate"),u("click",function(){b(e);let t=C();return x(t.openUnderVoltageModal())})("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(4,"div",12),p(5,"i",21),a(),i(6,"div",14),_(7),d(8,"translate"),a()()()}s&2&&(n(),m("aria-label",l(2,2,"rpi.throttled.undervoltage_title")+" - "+l(3,4,"rpi.throttled.undervoltage_description")),n(6),h(l(8,6,"rpi.throttled.undervoltage_title")))}function xe(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",15),d(2,"translate"),u("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",22),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),g("routerLink",f(8,ge))("routerLinkActive","active"),m("aria-label",l(2,4,"menu.linux.label_terminal")),n(5),h(l(7,6,"menu.linux.label_terminal")))}function Ce(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",15),d(2,"translate"),u("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",23),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),g("routerLink",f(8,ve))("routerLinkActive","active"),m("aria-label",l(2,4,"menu.config_json_editor")),n(5),h(l(7,6,"menu.config_json_editor")))}function we(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",15),d(2,"translate"),u("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",24),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),g("routerLink",f(8,he))("routerLinkActive","active"),m("aria-label",l(2,4,"menu.label_settings")),n(5),h(l(7,6,"menu.label_settings")))}function ye(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",15),d(2,"translate"),u("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",25),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),g("routerLink",f(8,fe))("routerLinkActive","active"),m("aria-label",l(2,4,"menu.restart.title")),n(5),h(l(7,6,"menu.restart.title")))}function Se(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",20),d(2,"translate"),u("click",function(){b(e);let t=C();return x(t.reloadPage())})("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",26),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),m("aria-label",l(2,2,"menu.reload")),n(5),h(l(7,4,"menu.reload")))}function Me(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",20),d(2,"translate"),u("click",function(){b(e);let t=C();return x(t.logout())})("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",27),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),m("aria-label",l(2,2,"menu.tooltip_logout")),n(5),h(l(7,4,"menu.tooltip_logout")))}var oe=(()=>{class s{destroyRef=c(U);injector=c(O);$auth=c(D);$authHelper=c(Q);$settings=c(B);$modal=c(z);$notification=c(ne);$renderer=c(j);$router=c(T);$translate=c(A);initialIsExpanded=K(!1);isExpanded=w(!1);formAuth=w(this.$settings.formAuth);isAdmin=this.$auth.user.admin;enableTerminalAccess=this.$settings.env.enableTerminalAccess;rPiCurrentlyUnderVoltage=w(!1);rPiWasUnderVoltage=w(!1);isMobile=w(!1);freezeMenu=w(!1);isPwa=ie();sidebarMouseEnterListener=()=>this.openSidebar();sidebarMouseLeaveListener=()=>this.closeSidebar();touchstartListener;clickListener;constructor(){this.isMobile.set(window.innerWidth<768);let e;window.addEventListener("resize",()=>{clearTimeout(e),e=setTimeout(()=>{this.updateListeners()},500)}),this.$router.events.pipe($()).subscribe(r=>L(this,null,function*(){if(r instanceof R&&this.$settings.formAuth&&r.url!=="/login"&&!(yield this.$authHelper.isAuthenticated())){window.sessionStorage.setItem("target_route",r.url),yield this.$router.navigate(["/login"]);return}r instanceof W&&queueMicrotask(()=>{this.closeSidebar(),this.freezeMenu.set(!0),setTimeout(()=>{this.freezeMenu.set(!1)},750)})}))}ngOnInit(){this.isExpanded.set(this.initialIsExpanded()),this.$notification.raspberryPiThrottled.pipe($(this.destroyRef)).subscribe(o=>{o["Under Voltage"]&&this.rPiCurrentlyUnderVoltage.set(!0),o["Under-voltage has occurred"]&&this.rPiWasUnderVoltage.set(!0)}),this.$notification.formAuthEnabled.pipe($(this.destroyRef)).subscribe(o=>{this.formAuth.set(o)});let e=document.querySelector(".sidebar"),r=document.querySelector(".m-header"),t=document.querySelector(".content");this.isMobile()?(this.touchstartListener=o=>{if(t.contains(o.target)&&this.isExpanded()){o.preventDefault(),this.toggleSidebar();return}!e.contains(o.target)&&!r.contains(o.target)&&this.isExpanded()&&(o.preventDefault(),this.closeSidebar())},document.addEventListener("touchstart",this.touchstartListener,{passive:!1})):(this.updateListeners(),r.addEventListener("mouseenter",this.sidebarMouseEnterListener,{passive:!1}),r.addEventListener("mouseleave",this.sidebarMouseLeaveListener,{passive:!1}),this.clickListener=o=>{e.contains(o.target)&&o.clientX>60&&this.closeSidebar()},document.addEventListener("click",this.clickListener,{passive:!1}))}toggleSidebar(){this.freezeMenu()||(this.isExpanded.set(!this.isExpanded()),this.updateContentStyles())}openUnderVoltageModal(){let e=E([{provide:ee,useValue:{title:this.$translate.instant("rpi.throttled.undervoltage_title"),message:this.$translate.instant(this.rPiCurrentlyUnderVoltage()?"rpi.throttled.currently_message":"rpi.throttled.previously_message"),ctaButtonLabel:this.$translate.instant("form.button_more_info"),faIconClass:"fas fa-bolt yellow-text",ctaButtonLink:"https://pimylifeup.com/raspberry-pi-low-voltage-warning"}}],this.injector);this.$modal.open(re,{size:"lg",backdrop:"static",injector:e})}handleKeydown(e){if(e.key==="Enter"){let r=e.target;["menuitem","button"].includes(r.getAttribute("role"))&&r.click()}}reloadPage(){window.location.reload()}ngOnDestroy(){this.touchstartListener&&document.removeEventListener("touchstart",this.touchstartListener),this.clickListener&&document.removeEventListener("click",this.clickListener);let e=document.querySelector(".sidebar"),r=document.querySelector(".m-header");e&&(e.removeEventListener("mouseenter",this.sidebarMouseEnterListener),e.removeEventListener("mouseleave",this.sidebarMouseLeaveListener)),r&&(r.removeEventListener("mouseenter",this.sidebarMouseEnterListener),r.removeEventListener("mouseleave",this.sidebarMouseLeaveListener))}logout(){this.$auth.logout()}openSidebar(){this.freezeMenu()||(this.isExpanded.set(!0),this.updateContentStyles())}closeSidebar(){this.freezeMenu()||(this.isExpanded.set(!1),this.updateContentStyles())}updateContentStyles(){let e=document.querySelector(".content");this.isExpanded()?(this.$renderer.setStyle(e,"opacity","20%"),this.$renderer.setStyle(e,"pointer-events","none"),this.$renderer.setStyle(e,"overflow","hidden")):(this.$renderer.removeStyle(e,"opacity"),this.$renderer.removeStyle(e,"pointer-events"),this.$renderer.removeStyle(e,"overflow"))}updateListeners(){this.isMobile.set(window.innerWidth<768);let e=document.querySelector(".sidebar");e.removeEventListener("mouseenter",this.sidebarMouseEnterListener),e.removeEventListener("mouseleave",this.sidebarMouseLeaveListener),(this.isMobile()||!this.isMobile()&&this.$settings.menuMode!=="freeze")&&(e.addEventListener("mouseenter",this.sidebarMouseEnterListener,{passive:!1}),e.addEventListener("mouseleave",this.sidebarMouseLeaveListener,{passive:!1}))}static \u0275fac=function(r){return new(r||s)};static \u0275cmp=V({type:s,selectors:[["app-sidebar"]],inputs:{initialIsExpanded:[1,"initialIsExpanded"]},decls:68,vars:73,consts:[["tabindex","0","role","button",1,"m-header","text-end",3,"click","keydown"],[1,"me-2","d-block","d-lg-none",2,"font-size","0.9rem","color","#dddddd"],[3,"routerLink"],["ngSrc","assets/homebridge-logo.svg","alt","HB Logo","height","35","width","35",2,"height","35px","width","35px"],[1,"hb-logo-text-mobile"],[1,"hamburger-icon"],["role","navigation","id","sidebar",1,"sidebar"],["tabindex","0","role","button",1,"header",3,"click","keydown"],[1,"hb-logo-text"],[1,"link-wrapper"],[1,"link"],["role","menuitem","tabindex","0",1,"link-row",3,"keydown","routerLink","routerLinkActive","routerLinkActiveOptions"],[1,"icon"],[1,"fa","fa-house"],[1,"title"],["role","menuitem","tabindex","0",1,"link-row",3,"keydown","routerLink","routerLinkActive"],[1,"fa","fa-plug"],[1,"fa","fa-lightbulb"],[1,"fa","fa-wave-square"],[1,"fa","fa-question-circle-o"],["role","menuitem","tabindex","0",1,"link-row",3,"click","keydown"],[1,"fas","fa-bolt","fa-beat","yellow-text",2,"--fa-beat-scale","1.5"],[1,"fa","fa-terminal"],[1,"fa","fa-code"],[1,"fa","fa-cog"],[1,"fa","fa-power-off"],[1,"fa","fa-refresh"],[1,"fa","fa-right-from-bracket"]],template:function(r,t){r&1&&(i(0,"div",0),d(1,"translate"),u("click",function(){return t.toggleSidebar()})("keydown",function(v){return t.handleKeydown(v)}),p(2,"span",1),i(3,"a",2),d(4,"translate"),p(5,"img",3),i(6,"div",4),_(7,"Homebridge"),a()(),i(8,"div",5),p(9,"span")(10,"span")(11,"span")(12,"span"),a()(),i(13,"div",6)(14,"div",7),u("click",function(){return t.toggleSidebar()})("keydown",function(v){return t.handleKeydown(v)}),i(15,"a",2),d(16,"translate"),p(17,"img",3),i(18,"div",8),_(19,"Homebridge"),a()()(),i(20,"div",9)(21,"div",10)(22,"div",11),d(23,"translate"),u("keydown",function(v){return t.handleKeydown(v)}),i(24,"div",12),p(25,"i",13),a(),i(26,"div",14),_(27),d(28,"translate"),a()()(),y(29,be,9,8,"div",10),i(30,"div",10)(31,"div",15),d(32,"translate"),u("keydown",function(v){return t.handleKeydown(v)}),i(33,"div",12),p(34,"i",16),a(),i(35,"div",14),_(36),d(37,"translate"),a()()(),i(38,"div",10)(39,"div",15),d(40,"translate"),u("keydown",function(v){return t.handleKeydown(v)}),i(41,"div",12),p(42,"i",17),a(),i(43,"div",14),_(44),d(45,"translate"),a()()(),i(46,"div",10)(47,"div",15),d(48,"translate"),u("keydown",function(v){return t.handleKeydown(v)}),i(49,"div",12),p(50,"i",18),a(),i(51,"div",14),_(52),d(53,"translate"),a()()(),y(54,xe,8,9,"div",10),y(55,Ce,8,9,"div",10),y(56,we,8,9,"div",10),i(57,"div",10)(58,"div",15),d(59,"translate"),u("keydown",function(v){return t.handleKeydown(v)}),i(60,"div",12),p(61,"i",19),a(),i(62,"div",14),_(63),d(64,"translate"),a()()(),y(65,ye,8,9,"div",10),y(66,Se,8,6,"div",10),y(67,Me,8,6,"div",10),a()()),r&2&&(m("aria-expanded",t.isExpanded()?"true":"false")("aria-controls","sidebar")("aria-label",l(1,39,"menu.sidebar.aria_menu")),n(3),g("routerLink",f(65,N)),m("aria-label",l(4,41,"menu.label_status")),n(5),P("hamburger-icon-cross",t.isExpanded()),n(5),P("expanded",t.isExpanded()),n(2),g("routerLink",f(66,N)),m("aria-label",l(16,43,"menu.label_status")),n(7),g("routerLink",f(67,N))("routerLinkActive","active")("routerLinkActiveOptions",f(68,pe)),m("aria-label",l(23,45,"menu.label_status")),n(5),h(l(28,47,"menu.label_status")),n(2),S(t.rPiWasUnderVoltage()||t.rPiCurrentlyUnderVoltage()?29:-1),n(2),g("routerLink",f(69,ce))("routerLinkActive","active"),m("aria-label",l(32,49,"menu.label_plugins")),n(5),h(l(37,51,"menu.label_plugins")),n(3),g("routerLink",f(70,me))("routerLinkActive","active"),m("aria-label",l(40,53,"menu.label_accessories")),n(5),h(l(45,55,"menu.label_accessories")),n(3),g("routerLink",f(71,ue))("routerLinkActive","active"),m("aria-label",l(48,57,"menu.linux.label_logs")),n(5),h(l(53,59,"menu.linux.label_logs")),n(2),S(t.enableTerminalAccess&&t.isAdmin?54:-1),n(),S(t.isAdmin?55:-1),n(),S(t.isAdmin?56:-1),n(2),g("routerLink",f(72,_e))("routerLinkActive","active"),m("aria-label",l(59,61,"support.title")),n(5),h(l(64,63,"support.title")),n(2),S(t.isAdmin?65:-1),n(),S(t.isPwa?66:-1),n(),S(t.formAuth()?67:-1))},dependencies:[X,q,G,J],styles:[".m-header[_ngcontent-%COMP%]{position:fixed;top:0;left:0;width:100%;height:65px;z-index:510;display:flex;align-items:center;padding-left:3px;padding-right:3px}.m-header[_ngcontent-%COMP%]:hover{cursor:pointer}@media(min-width:768px){.m-header[_ngcontent-%COMP%]{display:none}}.sidebar[_ngcontent-%COMP%]{position:fixed;left:0;top:0;height:100vh;transition:.3s;width:60px;z-index:500}.sidebar[_ngcontent-%COMP%] .header[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;padding:15px 10px 15px 11px;font-size:.85rem}.sidebar[_ngcontent-%COMP%] .header[_ngcontent-%COMP%]:hover{cursor:pointer}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%]{overflow-x:hidden;overflow-y:auto;max-height:calc(100vh - 80px)!important;scrollbar-width:thin}@media(max-width:767px){.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%]{padding-bottom:60px}}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%]{display:flex;align-items:center;padding:15px 10px;cursor:pointer;transition:.2s;font-size:17px}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{flex:0 0 38px;display:flex;align-items:center;justify-content:center}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{flex:1;transition:.3s;max-width:0;overflow:hidden;white-space:nowrap}@media(max-width:767px){.sidebar[_ngcontent-%COMP%]{width:0}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%]{display:none}}.sidebar.expanded[_ngcontent-%COMP%]{width:210px}@media(max-width:767px){.sidebar.expanded[_ngcontent-%COMP%]{width:210px}.sidebar.expanded[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%]{display:block}}.sidebar.expanded[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{max-width:150px;padding-left:10px}.hamburger-icon[_ngcontent-%COMP%]{margin:-7px 0 0 25px}@media(min-width:768px){.hb-logo-text[_ngcontent-%COMP%]{color:#fff;position:absolute;top:17px;font-size:22px;padding-left:3px}.sidebar.expanded[_ngcontent-%COMP%] .hb-logo-text[_ngcontent-%COMP%]{opacity:1;left:55px;transition:.3s}.sidebar[_ngcontent-%COMP%]:not(.expanded) .hb-logo-text[_ngcontent-%COMP%]{opacity:0;left:40px;transition:.3s}.hb-logo-text-mobile[_ngcontent-%COMP%], .hamburger-icon[_ngcontent-%COMP%]{display:none!important}}@media(max-width:767px){.hb-logo-text[_ngcontent-%COMP%]{display:none!important}.hb-logo-text-mobile[_ngcontent-%COMP%]{color:#fff;position:absolute;top:17px;font-size:22px;padding-left:3px;opacity:1;left:55px}.hamburger-icon[_ngcontent-%COMP%]{position:absolute;right:10px;top:28px;width:30px;transform:rotate(0);transition:.5s ease-in-out;cursor:pointer}.hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:block;position:absolute;height:2px;width:100%;background-color:#fff;border-radius:9px;opacity:1;left:0;transform:rotate(0);transition:.25s ease-in-out}.hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(1){top:0}.hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(2), .hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(3){top:10px}.hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(4){top:20px}.hamburger-icon-cross[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(1){top:10px;width:0;left:50%}.hamburger-icon-cross[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(2){transform:rotate(45deg)}.hamburger-icon-cross[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(3){transform:rotate(-45deg)}.hamburger-icon-cross[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(4){top:10px;width:0;left:50%}}"]})}return s})();var tt=(()=>{class s{injector=c(O);$auth=c(D);$modal=c(z);$router=c(T);$settings=c(B);$translate=c(A);$ws=c(Y);io;sidebarExpanded=w(!1);ngOnInit(){this.io=this.$ws.connectToNamespace("app"),this.io.socket.on("reconnect",()=>{this.$auth.checkToken()}),this.compareServerUiVersion()}compareServerUiVersion(){return L(this,null,function*(){if(this.$settings.settingsLoaded||(yield F(this.$settings.onSettingsLoaded)),!this.$router.url.endsWith("/restart")&&(0,ae.lt)(this.$settings.uiVersion,I.serverTarget)){console.log(`Server restart required. UI Version: ${I.serverTarget} - Server Version: ${this.$settings.uiVersion} `);let e=E([{provide:Z,useValue:{title:this.$translate.instant("platform.version.service_restart_required"),message:this.$translate.instant("platform.version.restart_required",{serverVersion:this.$settings.uiVersion,uiVersion:I.serverTarget}),confirmButtonLabel:this.$translate.instant("menu.tooltip_restart"),faIconClass:"fas fa-power-off orange-text"}}],this.injector),r=this.$modal.open(te,{size:"lg",backdrop:"static",injector:e});try{yield r.result,this.$router.navigate(["/restart"])}catch{}}})}static \u0275fac=function(r){return new(r||s)};static \u0275cmp=V({type:s,selectors:[["app-layout"]],decls:3,vars:3,consts:[[3,"initialIsExpanded"],[1,"content","px-3","p-md-4"]],template:function(r,t){r&1&&(p(0,"app-sidebar",0),i(1,"div",1),p(2,"router-outlet"),a()),r&2&&(g("initialIsExpanded",t.sidebarExpanded()),n(),P("sidebarExpanded",t.sidebarExpanded()))},dependencies:[oe,H],styles:[".content[_ngcontent-%COMP%]{margin-left:60px;transition:.3s;height:100%}@media(max-width:767px){.content[_ngcontent-%COMP%]{margin-left:0;padding-top:85px!important}}@media(min-width:768px){.content[_ngcontent-%COMP%]{height:100%}}a[_ngcontent-%COMP%]:hover{text-decoration:none!important}"]})}return s})();export{tt as LayoutComponent};
@@ -1,2 +1,2 @@
1
- import{a as b}from"./chunk-N5Z4CTHV.js";import{Lb as f,W as p,_,aa as d,ba as M,bc as w,cc as C,dc as y,nb as a,oa as v,pa as h,sb as u,v as c,vc as E,ya as l}from"./chunk-JJ5CEM72.js";var q=["editorContainer"],I="[_nghost-%COMP%]{display:block;height:200px}.editor-container[_ngcontent-%COMP%]{width:100%;height:98%}",D=new _("NGX_MONACO_EDITOR_CONFIG"),O=!1,N,R=(()=>{class t{constructor(){this.config=d(D),this.onInit=new v,this._insideNg=!1}set insideNg(e){this._insideNg=e,this._editor&&(this._editor.dispose(),this.initMonaco(this._options,this.insideNg))}get insideNg(){return this._insideNg}ngAfterViewInit(){O?N.then(()=>{this.initMonaco(this._options,this.insideNg)}):(O=!0,N=new Promise(e=>{let i=this.config.baseUrl;if((i==="assets"||!i)&&(i="./assets/monaco/min/vs"),typeof window.monaco=="object"){this.initMonaco(this._options,this.insideNg),e();return}let o=s=>{let g=s||window.require,m={paths:{vs:`${i}`}};Object.assign(m,this.config.requireConfig||{}),g.config(m),g(["vs/editor/editor.main"],()=>{typeof this.config.onMonacoLoad=="function"&&this.config.onMonacoLoad(),this.initMonaco(this._options,this.insideNg),e()})};if(this.config.monacoRequire)o(this.config.monacoRequire);else if(window.require)if(window.require.config)o();else{var n=`${i}/loader.js`,r=new XMLHttpRequest;r.addEventListener("load",()=>{let s=document.createElement("script");s.type="text/javascript",s.text=["var nodeRequire = require;",r.responseText.replace('"use strict";',""),"var monacoAmdRequire = require;","require = nodeRequire;","require.nodeRequire = require;"].join(`
1
+ import{a as b}from"./chunk-WZXTVC6W.js";import{Lb as f,W as p,_,aa as d,ba as M,bc as w,cc as C,dc as y,nb as a,oa as v,pa as h,sb as u,v as c,vc as E,ya as l}from"./chunk-JJ5CEM72.js";var q=["editorContainer"],I="[_nghost-%COMP%]{display:block;height:200px}.editor-container[_ngcontent-%COMP%]{width:100%;height:98%}",D=new _("NGX_MONACO_EDITOR_CONFIG"),O=!1,N,R=(()=>{class t{constructor(){this.config=d(D),this.onInit=new v,this._insideNg=!1}set insideNg(e){this._insideNg=e,this._editor&&(this._editor.dispose(),this.initMonaco(this._options,this.insideNg))}get insideNg(){return this._insideNg}ngAfterViewInit(){O?N.then(()=>{this.initMonaco(this._options,this.insideNg)}):(O=!0,N=new Promise(e=>{let i=this.config.baseUrl;if((i==="assets"||!i)&&(i="./assets/monaco/min/vs"),typeof window.monaco=="object"){this.initMonaco(this._options,this.insideNg),e();return}let o=s=>{let g=s||window.require,m={paths:{vs:`${i}`}};Object.assign(m,this.config.requireConfig||{}),g.config(m),g(["vs/editor/editor.main"],()=>{typeof this.config.onMonacoLoad=="function"&&this.config.onMonacoLoad(),this.initMonaco(this._options,this.insideNg),e()})};if(this.config.monacoRequire)o(this.config.monacoRequire);else if(window.require)if(window.require.config)o();else{var n=`${i}/loader.js`,r=new XMLHttpRequest;r.addEventListener("load",()=>{let s=document.createElement("script");s.type="text/javascript",s.text=["var nodeRequire = require;",r.responseText.replace('"use strict";',""),"var monacoAmdRequire = require;","require = nodeRequire;","require.nodeRequire = require;"].join(`
2
2
  `),document.body.appendChild(s),o(window.monacoAmdRequire)}),r.open("GET",n),r.send()}else{let s=document.createElement("script");s.type="text/javascript",s.src=`${i}/loader.js`,s.addEventListener("load",()=>{o()}),document.body.appendChild(s)}}))}ngOnDestroy(){this._windowResizeSubscription&&this._windowResizeSubscription.unsubscribe(),this._editor&&(this._editor.dispose(),this._editor=void 0)}static{this.\u0275fac=function(i){return new(i||t)}}static{this.\u0275cmp=a({type:t,selectors:[["ng-component"]],viewQuery:function(i,o){if(i&1&&w(q,7),i&2){let n;C(n=y())&&(o._editorContainer=n.first)}},inputs:{insideNg:"insideNg"},outputs:{onInit:"onInit"},standalone:!1,decls:0,vars:0,template:function(i,o){},encapsulation:2})}}return t})(),k=(()=>{class t extends R{constructor(){super(...arguments),this.zone=d(h),this._value="",this.propagateChange=e=>{},this.onTouched=()=>{}}set options(e){this._options=Object.assign({},this.config.defaultOptions,e),this._editor&&(this._editor.dispose(),this.initMonaco(this._options,this.insideNg))}get options(){return this._options}set model(e){this.options.model=e,this._editor&&(this._editor.dispose(),this.initMonaco(this.options,this.insideNg))}writeValue(e){this._value=e||"",setTimeout(()=>{this._editor&&!this.options.model&&this._editor.setValue(this._value)})}registerOnChange(e){this.propagateChange=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this.options.readOnly=e||this._options.readOnly}initMonaco(e,i){let o=!!e.model;if(o){let n=monaco.editor.getModel(e.model.uri||"");n?(e.model=n,e.model.setValue(this._value)):e.model=monaco.editor.createModel(e.model.value,e.model.language,e.model.uri)}i?this._editor=monaco.editor.create(this._editorContainer.nativeElement,e):this.zone.runOutsideAngular(()=>{this._editor=monaco.editor.create(this._editorContainer.nativeElement,e)}),o||this._editor.setValue(this._value),this._editor.onDidChangeModelContent(n=>{let r=this._editor.getValue();this.zone.run(()=>{this.propagateChange(r),this._value=r})}),this._editor.onDidBlurEditorWidget(()=>{this.onTouched()}),this._editor.setTheme=n=>{this.options.theme=n,monaco.editor.setTheme(n)},this._windowResizeSubscription&&this._windowResizeSubscription.unsubscribe(),this._windowResizeSubscription=c(window,"resize").subscribe(()=>this._editor.layout()),this.onInit.emit(this._editor)}static{this.\u0275fac=(()=>{let e;return function(o){return(e||(e=l(t)))(o||t)}})()}static{this.\u0275cmp=a({type:t,selectors:[["ngx-monaco-editor"]],inputs:{options:"options",model:"model"},features:[E([{provide:b,useExisting:p(()=>t),multi:!0}]),u],decls:2,vars:0,consts:[["editorContainer",""],[1,"editor-container"]],template:function(i,o){i&1&&f(0,"div",1,0)},styles:["[_nghost-%COMP%]{display:block;height:200px}.editor-container[_ngcontent-%COMP%]{width:100%;height:98%}"],changeDetection:0})}}return t})(),Q=(()=>{class t extends R{constructor(){super(...arguments),this.zone=d(h)}set options(e){this._options=Object.assign({},this.config.defaultOptions,e),this._editor&&(this._editor.dispose(),this.initMonaco(this._options,this.insideNg))}get options(){return this._options}set originalModel(e){this._originalModel=e,this._editor&&(this._editor.dispose(),this.initMonaco(this.options,this.insideNg))}set modifiedModel(e){this._modifiedModel=e,this._editor&&(this._editor.dispose(),this.initMonaco(this.options,this.insideNg))}initMonaco(e,i){if(!this._originalModel||!this._modifiedModel)throw new Error("originalModel or modifiedModel not found for ngx-monaco-diff-editor");this._originalModel.language=this._originalModel.language||e.language,this._modifiedModel.language=this._modifiedModel.language||e.language;let o=monaco.editor.createModel(this._originalModel.code,this._originalModel.language),n=monaco.editor.createModel(this._modifiedModel.code,this._modifiedModel.language);this._editorContainer.nativeElement.innerHTML="";let r=e.theme;i?this._editor=monaco.editor.createDiffEditor(this._editorContainer.nativeElement,e):this.zone.runOutsideAngular(()=>{this._editor=monaco.editor.createDiffEditor(this._editorContainer.nativeElement,e)}),e.theme=r,this._editor.setModel({original:o,modified:n}),this._windowResizeSubscription&&this._windowResizeSubscription.unsubscribe(),this._windowResizeSubscription=c(window,"resize").subscribe(()=>this._editor.layout()),this.onInit.emit(this._editor)}static{this.\u0275fac=(()=>{let e;return function(o){return(e||(e=l(t)))(o||t)}})()}static{this.\u0275cmp=a({type:t,selectors:[["ngx-monaco-diff-editor"]],inputs:{options:"options",originalModel:"originalModel",modifiedModel:"modifiedModel"},features:[u],decls:2,vars:0,consts:[["editorContainer",""],[1,"editor-container"]],template:function(i,o){i&1&&f(0,"div",1,0)},styles:[I],changeDetection:0})}}return t})();function U(t={}){return M([{provide:D,useValue:t}])}export{k as a,Q as b,U as c};
@@ -1 +1 @@
1
- import{a as c}from"./chunk-I5AP453W.js";import{D as l}from"./chunk-FLS573AD.js";import{Dc as a,Fb as o,Fc as m,Ib as p,Ua as i,nb as r,yc as s}from"./chunk-JJ5CEM72.js";var f=(e,d)=>({github:e,discord:d}),k=(()=>{class e{linkGithub='<a href="https://github.com/homebridge/homebridge-config-ui-x/issues/new?template=feature-request.yml" target="_blank" rel="noopener noreferrer">GitHub</a>';linkDiscord='<a href="https://discord.gg/kqNCe2D" target="_blank" rel="noopener noreferrer">Discord</a>';static \u0275fac=function(t){return new(t||e)};static \u0275cmp=r({type:e,selectors:[["app-support-banner"]],decls:2,vars:8,consts:[["type","info",1,"mt-3","mb-0","grey-text","small",3,"dismissible","innerHtml"]],template:function(t,n){t&1&&(p(0,"ngb-alert",0),a(1,"translate")),t&2&&o("dismissible",!1)("innerHtml",m(1,2,"common.phrases.support",s(5,f,n.linkGithub,n.linkDiscord)),i)},dependencies:[c,l],encapsulation:2})}return e})();export{k as a};
1
+ import{a as c}from"./chunk-I5AP453W.js";import{D as l}from"./chunk-7AD56BSX.js";import{Dc as a,Fb as o,Fc as m,Ib as p,Ua as i,nb as r,yc as s}from"./chunk-JJ5CEM72.js";var f=(e,d)=>({github:e,discord:d}),k=(()=>{class e{linkGithub='<a href="https://github.com/homebridge/homebridge-config-ui-x/issues/new?template=feature-request.yml" target="_blank" rel="noopener noreferrer">GitHub</a>';linkDiscord='<a href="https://discord.gg/kqNCe2D" target="_blank" rel="noopener noreferrer">Discord</a>';static \u0275fac=function(t){return new(t||e)};static \u0275cmp=r({type:e,selectors:[["app-support-banner"]],decls:2,vars:8,consts:[["type","info",1,"mt-3","mb-0","grey-text","small",3,"dismissible","innerHtml"]],template:function(t,n){t&1&&(p(0,"ngb-alert",0),a(1,"translate")),t&2&&o("dismissible",!1)("innerHtml",m(1,2,"common.phrases.support",s(5,f,n.linkGithub,n.linkDiscord)),i)},dependencies:[c,l],encapsulation:2})}return e})();export{k as a};
@@ -1 +1 @@
1
- import{e as T}from"./chunk-QWCGYWQP.js";import{a as $,b as O}from"./chunk-GIBUKDL3.js";import{b as G}from"./chunk-LMM3BN25.js";import{B as Z,C as ee,D as te,c as Q,d as u,e as U,f as W,g as j,j as y,m as J,r as K,s as X,z as Y}from"./chunk-N5Z4CTHV.js";import{b as A}from"./chunk-GET4TOQ7.js";import{D as z,H,o as D}from"./chunk-FLS573AD.js";import{Ab as f,Dc as l,Ec as d,F as k,Fb as m,Gb as a,Hb as o,Ib as r,Oc as w,P as N,Ua as S,Xb as P,Za as n,Zb as V,aa as c,ec as L,fc as F,hc as q,ic as b,kc as v,lc as C,ma as E,mc as B,n as I,nb as R,o as M,sa as p,zb as g}from"./chunk-JJ5CEM72.js";import{h as x}from"./chunk-VJN6YUS2.js";var ie=["password"],ne=["username"],oe=["otp"];function ae(i,_){if(i&1&&(a(0,"div",8)(1,"span",12),r(2,"i",13),o(),r(3,"input",14,0),l(5,"translate"),o(),a(6,"div",8)(7,"span",12),r(8,"i",15),o(),r(9,"input",16,1),l(11,"translate"),o()),i&2){let t=V();n(3),b("is-invalid",t.form.controls.username.dirty&&t.form.controls.username.errors),m("placeholder",d(5,6,"users.label_username")),n(6),b("is-invalid",t.form.controls.password.dirty&&t.form.controls.password.errors),m("placeholder",d(11,8,"users.label_password"))}}function re(i,_){i&1&&(a(0,"div",8)(1,"span",12),r(2,"i",17),o(),r(3,"input",18,2),l(5,"translate"),o()),i&2&&(n(3),m("placeholder",d(5,1,"login.label_2fa_code")))}function se(i,_){i&1&&(a(0,"div",9)(1,"div",12),r(2,"i",19),o(),a(3,"div",20)(4,"div",21),v(5),l(6,"translate"),o(),r(7,"div",22),l(8,"translate"),o()()),i&2&&(n(5),C(d(6,2,"login.invalid_credentials")),n(2),m("innerHTML",d(8,4,"login.invalid_credentials_2"),S))}function le(i,_){i&1&&(a(0,"div",9)(1,"div",12),r(2,"i",19),o(),a(3,"div",20)(4,"div",21),v(5),l(6,"translate"),o(),r(7,"div",22),l(8,"translate"),o()()),i&2&&(n(5),C(d(6,2,"login.invalid_code")),n(2),m("innerHTML",d(8,4,"login.invalid_credentials_2"),S))}var xe=(()=>{class i{destroyRef=c(E);$auth=c(G);$router=c(T);$settings=c(A);targetRoute;validNonAdminRoutes=["/accessories","/plugins","/logs","/support"];passwordInput=w("password");usernameInput=w("username");otpInput=w("otp");backgroundStyle=p("");invalidCredentials=p(!1);invalid2faCode=p(!1);twoFactorCodeRequired=p(!1);inProgress=p(!1);form=new j({username:new y("",{nonNullable:!0,validators:[u.required]}),password:new y("",{nonNullable:!0,validators:[u.required]}),otp:new y("",{nonNullable:!0})});formInvalid=O(this.form.statusChanges.pipe(N(this.form.status),M(()=>this.form.invalid)),{initialValue:this.form.invalid});ngOnInit(){this.form.valueChanges.pipe(k(500),$(this.destroyRef)).subscribe(()=>{let t=this.passwordInput()?.nativeElement.value;t&&t!==this.form.controls.password.value&&this.form.controls.password.setValue(t)}),this.targetRoute=window.sessionStorage.getItem("target_route")||"",this.setBackground()}onSubmit(){return x(this,null,function*(){this.invalidCredentials.set(!1),this.invalid2faCode.set(!1),this.inProgress.set(!0),document.getElementById("submit-button")?.blur();let t=this.passwordInput()?.nativeElement.value;t&&t!==this.form.controls.password.value&&this.form.controls.password.setValue(t);let s=this.usernameInput()?.nativeElement.value;if(s&&s!==this.form.controls.username.value&&this.form.controls.username.setValue(s),this.twoFactorCodeRequired()){let e=this.otpInput()?.nativeElement.value;e&&e!==this.form.controls.otp.value&&this.form.controls.otp.setValue(e)}try{yield this.$auth.login(this.form.getRawValue()),!this.$auth.user.admin&&!this.validNonAdminRoutes.includes(this.targetRoute)&&(this.targetRoute="/"),this.$router.navigateByUrl(this.targetRoute),window.sessionStorage.removeItem("target_route")}catch(e){if(e.status===412){let h=this.form.controls.otp;this.twoFactorCodeRequired()?(h.setErrors({invalidCode:!0}),this.invalid2faCode.set(!0)):(h.setValidators([u.required,u.minLength(6),u.maxLength(6)]),h.updateValueAndValidity()),this.twoFactorCodeRequired.set(!0),setTimeout(()=>{document.getElementById("form-ota")?.focus()},100)}else this.invalidCredentials.set(!0)}this.inProgress.set(!1)})}setBackground(){return x(this,null,function*(){if(this.$settings.settingsLoaded||(yield I(this.$settings.onSettingsLoaded)),this.$settings.env.customWallpaperHash){let t=`${H.api.base}/auth/wallpaper/${this.$settings.env.customWallpaperHash}`;this.backgroundStyle.set(`url('${t}') center/cover`)}})}static \u0275fac=function(s){return new(s||i)};static \u0275cmp=R({type:i,selectors:[["ng-component"]],viewQuery:function(s,e){s&1&&L(e.passwordInput,ie,5)(e.usernameInput,ne,5)(e.otpInput,oe,5),s&2&&F(3)},decls:15,vars:16,consts:[["username",""],["password",""],["otp",""],[1,"login-container","gradient","d-flex","align-items-start","justify-content-center"],[1,"w-100","login-card","d-flex","py-4","flex-column"],["ngSrc","assets/homebridge-color-round.svg","alt","Homebridge Logo","height","100","width","100","priority","true",1,"homebridge-logo","mx-auto","my-3"],["novalidate","",3,"ngSubmit","formGroup"],[1,"mb-4","text-center"],[1,"input-group","mb-4"],[1,"input-group","no-border","mb-4"],[1,"text-center"],["tabindex","3","id","submit-button","type","submit",1,"btn","btn-primary","mb-2",3,"disabled"],[1,"input-group-text","custom-input"],[1,"fas","fa-user","primary-text","fa-lg"],["formControlName","username","type","text","id","form-username","autofocus","","autocomplete","username","autocapitalize","none","tabindex","1","required","",1,"form-control","custom-input",3,"placeholder"],[1,"fas","fa-lock","primary-text","fa-lg"],["formControlName","password","type","password","id","form-pass","autocomplete","current-password","tabindex","2","required","",1,"form-control","custom-input",3,"placeholder"],[1,"fas","fa-key","primary-text","fa-lg"],["formControlName","otp","type","text","id","form-ota","autofocus","","autocomplete","one-time-code","autocapitalize","none","inputmode","numeric","pattern","[0-9]*","tabindex","1",1,"form-control","custom-input",3,"placeholder"],[1,"fas","fa-exclamation-triangle","pink-text","fa-lg"],[1,"form-control","custom-input"],[1,"small","grey-text","fw-semibold"],[1,"small","grey-text",3,"innerHTML"]],template:function(s,e){s&1&&(a(0,"div",3)(1,"div",4),r(2,"img",5),a(3,"form",6),P("ngSubmit",function(){return e.onSubmit()}),a(4,"h4",7),v(5),l(6,"translate"),o(),g(7,ae,12,10),g(8,re,6,3,"div",8),g(9,se,9,6,"div",9),g(10,le,9,6,"div",9),a(11,"div",10)(12,"button",11),v(13),l(14,"translate"),o()()()()()),s&2&&(q("background",e.backgroundStyle()),b("anim",!e.backgroundStyle()),n(3),m("formGroup",e.form),n(2),C(d(6,12,"setup.welcome_to_homebridge")),n(2),f(e.twoFactorCodeRequired()?-1:7),n(),f(e.twoFactorCodeRequired()?8:-1),n(),f(e.invalidCredentials()?9:-1),n(),f(e.invalid2faCode()?10:-1),n(2),m("disabled",e.formInvalid()),n(),B(" ",d(14,14,"form.button_continue")," "))},dependencies:[ee,J,Q,U,W,Y,Z,te,X,K,D,z],styles:["body{overflow:scroll!important} body.dark-mode .login-card{background-color:#2b2b2b;color:#fff}.login-container[_ngcontent-%COMP%]{z-index:-1;padding-top:2em;padding-bottom:2em;min-height:100%;background-size:300% 300%}.anim[_ngcontent-%COMP%]{-webkit-animation:_ngcontent-%COMP%_gradient 20s ease infinite;-moz-animation:gradient 20s ease infinite;animation:_ngcontent-%COMP%_gradient 20s ease infinite}@keyframes _ngcontent-%COMP%_gradient{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.login-card[_ngcontent-%COMP%]{max-width:550px;border-radius:1rem;padding-right:25px;padding-left:25px;background-color:#ffffffe6}.login-card[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%]:focus{background-color:inherit!important}@media screen and (max-width:575px){.login-card[_ngcontent-%COMP%]{margin-left:1em;margin-right:1em}}.homebridge-logo[_ngcontent-%COMP%]{margin-bottom:10px}"]})}return i})();export{xe as LoginComponent};
1
+ import{e as T}from"./chunk-F332UHUK.js";import{a as $,b as O}from"./chunk-GIBUKDL3.js";import{b as G}from"./chunk-VY4NTNG3.js";import{B as Z,C as ee,D as te,c as Q,d as u,e as U,f as W,g as j,j as y,m as J,r as K,s as X,z as Y}from"./chunk-WZXTVC6W.js";import{b as A}from"./chunk-2QUH2FXS.js";import{D as z,H,o as D}from"./chunk-7AD56BSX.js";import{Ab as f,Dc as l,Ec as d,F as k,Fb as m,Gb as a,Hb as o,Ib as r,Oc as w,P as N,Ua as S,Xb as P,Za as n,Zb as V,aa as c,ec as L,fc as F,hc as q,ic as b,kc as v,lc as C,ma as E,mc as B,n as I,nb as R,o as M,sa as p,zb as g}from"./chunk-JJ5CEM72.js";import{h as x}from"./chunk-VJN6YUS2.js";var ie=["password"],ne=["username"],oe=["otp"];function ae(i,_){if(i&1&&(a(0,"div",8)(1,"span",12),r(2,"i",13),o(),r(3,"input",14,0),l(5,"translate"),o(),a(6,"div",8)(7,"span",12),r(8,"i",15),o(),r(9,"input",16,1),l(11,"translate"),o()),i&2){let t=V();n(3),b("is-invalid",t.form.controls.username.dirty&&t.form.controls.username.errors),m("placeholder",d(5,6,"users.label_username")),n(6),b("is-invalid",t.form.controls.password.dirty&&t.form.controls.password.errors),m("placeholder",d(11,8,"users.label_password"))}}function re(i,_){i&1&&(a(0,"div",8)(1,"span",12),r(2,"i",17),o(),r(3,"input",18,2),l(5,"translate"),o()),i&2&&(n(3),m("placeholder",d(5,1,"login.label_2fa_code")))}function se(i,_){i&1&&(a(0,"div",9)(1,"div",12),r(2,"i",19),o(),a(3,"div",20)(4,"div",21),v(5),l(6,"translate"),o(),r(7,"div",22),l(8,"translate"),o()()),i&2&&(n(5),C(d(6,2,"login.invalid_credentials")),n(2),m("innerHTML",d(8,4,"login.invalid_credentials_2"),S))}function le(i,_){i&1&&(a(0,"div",9)(1,"div",12),r(2,"i",19),o(),a(3,"div",20)(4,"div",21),v(5),l(6,"translate"),o(),r(7,"div",22),l(8,"translate"),o()()),i&2&&(n(5),C(d(6,2,"login.invalid_code")),n(2),m("innerHTML",d(8,4,"login.invalid_credentials_2"),S))}var xe=(()=>{class i{destroyRef=c(E);$auth=c(G);$router=c(T);$settings=c(A);targetRoute;validNonAdminRoutes=["/accessories","/plugins","/logs","/support"];passwordInput=w("password");usernameInput=w("username");otpInput=w("otp");backgroundStyle=p("");invalidCredentials=p(!1);invalid2faCode=p(!1);twoFactorCodeRequired=p(!1);inProgress=p(!1);form=new j({username:new y("",{nonNullable:!0,validators:[u.required]}),password:new y("",{nonNullable:!0,validators:[u.required]}),otp:new y("",{nonNullable:!0})});formInvalid=O(this.form.statusChanges.pipe(N(this.form.status),M(()=>this.form.invalid)),{initialValue:this.form.invalid});ngOnInit(){this.form.valueChanges.pipe(k(500),$(this.destroyRef)).subscribe(()=>{let t=this.passwordInput()?.nativeElement.value;t&&t!==this.form.controls.password.value&&this.form.controls.password.setValue(t)}),this.targetRoute=window.sessionStorage.getItem("target_route")||"",this.setBackground()}onSubmit(){return x(this,null,function*(){this.invalidCredentials.set(!1),this.invalid2faCode.set(!1),this.inProgress.set(!0),document.getElementById("submit-button")?.blur();let t=this.passwordInput()?.nativeElement.value;t&&t!==this.form.controls.password.value&&this.form.controls.password.setValue(t);let s=this.usernameInput()?.nativeElement.value;if(s&&s!==this.form.controls.username.value&&this.form.controls.username.setValue(s),this.twoFactorCodeRequired()){let e=this.otpInput()?.nativeElement.value;e&&e!==this.form.controls.otp.value&&this.form.controls.otp.setValue(e)}try{yield this.$auth.login(this.form.getRawValue()),!this.$auth.user.admin&&!this.validNonAdminRoutes.includes(this.targetRoute)&&(this.targetRoute="/"),this.$router.navigateByUrl(this.targetRoute),window.sessionStorage.removeItem("target_route")}catch(e){if(e.status===412){let h=this.form.controls.otp;this.twoFactorCodeRequired()?(h.setErrors({invalidCode:!0}),this.invalid2faCode.set(!0)):(h.setValidators([u.required,u.minLength(6),u.maxLength(6)]),h.updateValueAndValidity()),this.twoFactorCodeRequired.set(!0),setTimeout(()=>{document.getElementById("form-ota")?.focus()},100)}else this.invalidCredentials.set(!0)}this.inProgress.set(!1)})}setBackground(){return x(this,null,function*(){if(this.$settings.settingsLoaded||(yield I(this.$settings.onSettingsLoaded)),this.$settings.env.customWallpaperHash){let t=`${H.api.base}/auth/wallpaper/${this.$settings.env.customWallpaperHash}`;this.backgroundStyle.set(`url('${t}') center/cover`)}})}static \u0275fac=function(s){return new(s||i)};static \u0275cmp=R({type:i,selectors:[["ng-component"]],viewQuery:function(s,e){s&1&&L(e.passwordInput,ie,5)(e.usernameInput,ne,5)(e.otpInput,oe,5),s&2&&F(3)},decls:15,vars:16,consts:[["username",""],["password",""],["otp",""],[1,"login-container","gradient","d-flex","align-items-start","justify-content-center"],[1,"w-100","login-card","d-flex","py-4","flex-column"],["ngSrc","assets/homebridge-color-round.svg","alt","Homebridge Logo","height","100","width","100","priority","true",1,"homebridge-logo","mx-auto","my-3"],["novalidate","",3,"ngSubmit","formGroup"],[1,"mb-4","text-center"],[1,"input-group","mb-4"],[1,"input-group","no-border","mb-4"],[1,"text-center"],["tabindex","3","id","submit-button","type","submit",1,"btn","btn-primary","mb-2",3,"disabled"],[1,"input-group-text","custom-input"],[1,"fas","fa-user","primary-text","fa-lg"],["formControlName","username","type","text","id","form-username","autofocus","","autocomplete","username","autocapitalize","none","tabindex","1","required","",1,"form-control","custom-input",3,"placeholder"],[1,"fas","fa-lock","primary-text","fa-lg"],["formControlName","password","type","password","id","form-pass","autocomplete","current-password","tabindex","2","required","",1,"form-control","custom-input",3,"placeholder"],[1,"fas","fa-key","primary-text","fa-lg"],["formControlName","otp","type","text","id","form-ota","autofocus","","autocomplete","one-time-code","autocapitalize","none","inputmode","numeric","pattern","[0-9]*","tabindex","1",1,"form-control","custom-input",3,"placeholder"],[1,"fas","fa-exclamation-triangle","pink-text","fa-lg"],[1,"form-control","custom-input"],[1,"small","grey-text","fw-semibold"],[1,"small","grey-text",3,"innerHTML"]],template:function(s,e){s&1&&(a(0,"div",3)(1,"div",4),r(2,"img",5),a(3,"form",6),P("ngSubmit",function(){return e.onSubmit()}),a(4,"h4",7),v(5),l(6,"translate"),o(),g(7,ae,12,10),g(8,re,6,3,"div",8),g(9,se,9,6,"div",9),g(10,le,9,6,"div",9),a(11,"div",10)(12,"button",11),v(13),l(14,"translate"),o()()()()()),s&2&&(q("background",e.backgroundStyle()),b("anim",!e.backgroundStyle()),n(3),m("formGroup",e.form),n(2),C(d(6,12,"setup.welcome_to_homebridge")),n(2),f(e.twoFactorCodeRequired()?-1:7),n(),f(e.twoFactorCodeRequired()?8:-1),n(),f(e.invalidCredentials()?9:-1),n(),f(e.invalid2faCode()?10:-1),n(2),m("disabled",e.formInvalid()),n(),B(" ",d(14,14,"form.button_continue")," "))},dependencies:[ee,J,Q,U,W,Y,Z,te,X,K,D,z],styles:["body{overflow:scroll!important} body.dark-mode .login-card{background-color:#2b2b2b;color:#fff}.login-container[_ngcontent-%COMP%]{z-index:-1;padding-top:2em;padding-bottom:2em;min-height:100%;background-size:300% 300%}.anim[_ngcontent-%COMP%]{-webkit-animation:_ngcontent-%COMP%_gradient 20s ease infinite;-moz-animation:gradient 20s ease infinite;animation:_ngcontent-%COMP%_gradient 20s ease infinite}@keyframes _ngcontent-%COMP%_gradient{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}.login-card[_ngcontent-%COMP%]{max-width:550px;border-radius:1rem;padding-right:25px;padding-left:25px;background-color:#ffffffe6}.login-card[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%]:focus{background-color:inherit!important}@media screen and (max-width:575px){.login-card[_ngcontent-%COMP%]{margin-left:1em;margin-right:1em}}.homebridge-logo[_ngcontent-%COMP%]{margin-bottom:10px}"]})}return i})();export{xe as LoginComponent};
@@ -1 +1 @@
1
- import{e as i}from"./chunk-QWCGYWQP.js";import{C as c,F as s,I as m}from"./chunk-FLS573AD.js";import{aa as r}from"./chunk-JJ5CEM72.js";import{h as p}from"./chunk-VJN6YUS2.js";var h=()=>p(null,null,function*(){let t=r(m),o=r(i),a=r(s),e=r(c);try{return yield t.get("/platform-tools/docker/startup-script")}catch(n){console.error(n),a.error(n.message,e.instant("toast.title_error")),o.navigate(["/"]);return}});var R=[{path:"",redirectTo:"/",pathMatch:"full"},{path:"docker",children:[{path:"",redirectTo:"/",pathMatch:"full"},{path:"startup-script",loadComponent:()=>import("./chunk-4IJDU5W2.js").then(t=>t.StartupScriptComponent),resolve:{startupScript:h}},{path:"restart-container",loadComponent:()=>import("./chunk-J33KCONB.js").then(t=>t.ContainerRestartComponent)}]},{path:"linux",children:[{path:"",redirectTo:"/",pathMatch:"full"},{path:"restart-server",loadComponent:()=>import("./chunk-MZA3FXYW.js").then(t=>t.RestartLinuxComponent)},{path:"shutdown-server",loadComponent:()=>import("./chunk-VKVESOYG.js").then(t=>t.ShutdownLinuxComponent)}]},{path:"terminal",loadComponent:()=>import("./chunk-Q7FTVGEO.js").then(t=>t.TerminalComponent),canDeactivate:[(t,o,a,e)=>t.canDeactivate?t.canDeactivate(e?.url):!0]}];export{R as PLATFORM_TOOLS_ROUTES};
1
+ import{e as i}from"./chunk-F332UHUK.js";import{C as c,F as s,I as m}from"./chunk-7AD56BSX.js";import{aa as r}from"./chunk-JJ5CEM72.js";import{h as p}from"./chunk-VJN6YUS2.js";var h=()=>p(null,null,function*(){let t=r(m),o=r(i),a=r(s),e=r(c);try{return yield t.get("/platform-tools/docker/startup-script")}catch(n){console.error(n),a.error(n.message,e.instant("toast.title_error")),o.navigate(["/"]);return}});var R=[{path:"",redirectTo:"/",pathMatch:"full"},{path:"docker",children:[{path:"",redirectTo:"/",pathMatch:"full"},{path:"startup-script",loadComponent:()=>import("./chunk-EKYMLGZU.js").then(t=>t.StartupScriptComponent),resolve:{startupScript:h}},{path:"restart-container",loadComponent:()=>import("./chunk-4J3J7FSY.js").then(t=>t.ContainerRestartComponent)}]},{path:"linux",children:[{path:"",redirectTo:"/",pathMatch:"full"},{path:"restart-server",loadComponent:()=>import("./chunk-IXSMCZ5A.js").then(t=>t.RestartLinuxComponent)},{path:"shutdown-server",loadComponent:()=>import("./chunk-UCTE5J3F.js").then(t=>t.ShutdownLinuxComponent)}]},{path:"terminal",loadComponent:()=>import("./chunk-ZH3VNDIS.js").then(t=>t.TerminalComponent),canDeactivate:[(t,o,a,e)=>t.canDeactivate?t.canDeactivate(e?.url):!0]}];export{R as PLATFORM_TOOLS_ROUTES};