homebridge-config-ui-x 5.6.1 → 5.6.2-beta.0

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 (183) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/dist/core/auth/auth.controller.d.ts +5 -0
  3. package/dist/core/auth/auth.controller.js +13 -0
  4. package/dist/core/auth/auth.controller.js.map +1 -1
  5. package/dist/core/auth/auth.service.d.ts +1 -0
  6. package/dist/core/auth/auth.service.js +24 -0
  7. package/dist/core/auth/auth.service.js.map +1 -1
  8. package/dist/core/config/config.interfaces.d.ts +120 -0
  9. package/dist/core/config/config.interfaces.js +3 -0
  10. package/dist/core/config/config.interfaces.js.map +1 -0
  11. package/dist/core/config/config.service.d.ts +8 -74
  12. package/dist/core/config/config.service.js +6 -0
  13. package/dist/core/config/config.service.js.map +1 -1
  14. package/dist/core/config/config.startup.d.ts +2 -12
  15. package/dist/core/config/config.startup.js +12 -0
  16. package/dist/core/config/config.startup.js.map +1 -1
  17. package/dist/core/spa/spa-html.service.d.ts +5 -0
  18. package/dist/core/spa/spa-html.service.js +38 -0
  19. package/dist/core/spa/spa-html.service.js.map +1 -0
  20. package/dist/core/spa/spa.filter.d.ts +3 -0
  21. package/dist/core/spa/spa.filter.js +22 -2
  22. package/dist/core/spa/spa.filter.js.map +1 -1
  23. package/dist/globalDefaults.js +3 -0
  24. package/dist/globalDefaults.js.map +1 -1
  25. package/dist/main.js +62 -3
  26. package/dist/main.js.map +1 -1
  27. package/dist/modules/backup/backup.service.js +4 -1
  28. package/dist/modules/backup/backup.service.js.map +1 -1
  29. package/dist/modules/config-editor/config-editor.controller.d.ts +3 -3
  30. package/dist/modules/config-editor/config-editor.service.d.ts +3 -2
  31. package/dist/modules/config-editor/config-editor.service.js +36 -13
  32. package/dist/modules/config-editor/config-editor.service.js.map +1 -1
  33. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.d.ts +1 -1
  34. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js +2 -1
  35. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js.map +1 -1
  36. package/dist/modules/log/log.gateway.d.ts +1 -1
  37. package/dist/modules/log/log.interfaces.d.ts +4 -0
  38. package/dist/modules/log/log.interfaces.js +3 -0
  39. package/dist/modules/log/log.interfaces.js.map +1 -0
  40. package/dist/modules/log/log.service.d.ts +1 -4
  41. package/dist/modules/log/log.service.js.map +1 -1
  42. package/dist/modules/platform-tools/terminal/terminal.gateway.d.ts +1 -1
  43. package/dist/modules/platform-tools/terminal/terminal.interfaces.d.ts +8 -0
  44. package/dist/modules/platform-tools/terminal/terminal.interfaces.js +3 -0
  45. package/dist/modules/platform-tools/terminal/terminal.interfaces.js.map +1 -0
  46. package/dist/modules/platform-tools/terminal/terminal.service.d.ts +1 -8
  47. package/dist/modules/platform-tools/terminal/terminal.service.js.map +1 -1
  48. package/dist/modules/plugins/plugins.controller.d.ts +5 -5
  49. package/dist/modules/plugins/plugins.interfaces.d.ts +211 -0
  50. package/dist/modules/plugins/plugins.interfaces.js +3 -0
  51. package/dist/modules/plugins/plugins.interfaces.js.map +1 -0
  52. package/dist/modules/plugins/plugins.service.d.ts +1 -1
  53. package/dist/modules/plugins/plugins.service.js +6 -0
  54. package/dist/modules/plugins/plugins.service.js.map +1 -1
  55. package/dist/modules/server/server.controller.d.ts +3 -0
  56. package/dist/modules/server/server.controller.js +13 -0
  57. package/dist/modules/server/server.controller.js.map +1 -1
  58. package/dist/modules/server/server.service.js +5 -3
  59. package/dist/modules/server/server.service.js.map +1 -1
  60. package/dist/modules/status/status.controller.d.ts +2 -2
  61. package/dist/modules/status/status.gateway.d.ts +5 -5
  62. package/dist/modules/status/status.interfaces.d.ts +27 -0
  63. package/dist/modules/status/status.interfaces.js +10 -0
  64. package/dist/modules/status/status.interfaces.js.map +1 -0
  65. package/dist/modules/status/status.service.d.ts +2 -29
  66. package/dist/modules/status/status.service.js +4 -9
  67. package/dist/modules/status/status.service.js.map +1 -1
  68. package/package.json +2 -1
  69. package/public/3rdpartylicenses.txt +13 -13
  70. package/public/chunk-2NYMCY4K.js +2 -0
  71. package/public/{chunk-TLGNUWU6.js → chunk-2XYBM4MH.js} +1 -1
  72. package/public/chunk-3GUYJPA2.js +1 -0
  73. package/public/{chunk-Q5UJ7RBG.js → chunk-3ZU7ZAMP.js} +1 -1
  74. package/public/chunk-4ULA6UZH.js +1 -0
  75. package/public/{chunk-ALBW3CN3.js → chunk-52FR2IKT.js} +2 -2
  76. package/public/{chunk-SZUTWP25.js → chunk-63TUXJZX.js} +1 -1
  77. package/public/chunk-6LB7WDKS.js +1 -0
  78. package/public/{chunk-AD7SNE53.js → chunk-7CNAISDX.js} +1 -1
  79. package/public/chunk-A6DT34ZH.js +1 -0
  80. package/public/chunk-AGW47667.js +1 -0
  81. package/public/chunk-B3TN2VG6.js +1 -0
  82. package/public/chunk-B57JCIC6.js +1 -0
  83. package/public/{chunk-J6L2XE5U.js → chunk-BU6Y5VTM.js} +1 -1
  84. package/public/{chunk-DSHT67FQ.js → chunk-CAHYGXEK.js} +1 -1
  85. package/public/chunk-CSMJTIDW.js +1 -0
  86. package/public/{chunk-4A7PQXPM.js → chunk-DWX3DNKW.js} +1 -1
  87. package/public/{chunk-BWUD4MPH.js → chunk-EC3LAIKD.js} +1 -1
  88. package/public/{chunk-SXPAZSXC.js → chunk-EQNYLYMJ.js} +1 -1
  89. package/public/chunk-EVUV3HIS.js +1 -0
  90. package/public/{chunk-IDW2S7VV.js → chunk-FF3AWHQD.js} +1 -1
  91. package/public/chunk-GABIQJWM.js +1 -0
  92. package/public/chunk-GD22VSSB.js +1 -0
  93. package/public/chunk-GFMIBE3X.js +1 -0
  94. package/public/chunk-GM4NKZYL.js +40 -0
  95. package/public/chunk-KCMQBND5.js +1 -0
  96. package/public/{chunk-R5CEAGDB.js → chunk-KREFY6FY.js} +1 -1
  97. package/public/chunk-L36D4UBE.js +1 -0
  98. package/public/{chunk-ODN4SLC6.js → chunk-LFHFVX5M.js} +1 -1
  99. package/public/chunk-LFSA6PBF.js +1 -0
  100. package/public/chunk-LUWH3H42.js +1 -0
  101. package/public/chunk-MB24NMSH.js +1 -0
  102. package/public/{chunk-GGZZFW2G.js → chunk-MCPFJTIS.js} +1 -1
  103. package/public/chunk-MFZ4EVGW.js +1 -0
  104. package/public/chunk-MLO35YJL.js +1 -0
  105. package/public/{chunk-QVKCJ4SR.js → chunk-MO7W4MOJ.js} +1 -1
  106. package/public/{chunk-D5RIMAWO.js → chunk-NBY4ULRZ.js} +1 -1
  107. package/public/{chunk-MXQEKDB7.js → chunk-NR4KD4TZ.js} +1 -1
  108. package/public/chunk-PPMDIVHT.js +1 -0
  109. package/public/{chunk-LY3D63PH.js → chunk-PSTSP2WW.js} +1 -1
  110. package/public/chunk-QAOIRGYE.js +1 -0
  111. package/public/chunk-QU76SVRL.js +1 -0
  112. package/public/chunk-QXO6XOHI.js +1 -0
  113. package/public/chunk-QXZ64576.js +1 -0
  114. package/public/{chunk-WIJDDKLW.js → chunk-R2QGD4ZP.js} +1 -1
  115. package/public/{chunk-YAMQWXR3.js → chunk-RSWWBOGX.js} +1 -1
  116. package/public/chunk-S5YBE3E6.js +1 -0
  117. package/public/chunk-T5PXVSN6.js +1 -0
  118. package/public/chunk-TI7CYA2G.js +1 -0
  119. package/public/chunk-TUN7H57E.js +1 -0
  120. package/public/chunk-UD2XK3NM.js +1 -0
  121. package/public/{chunk-LSU6AEJS.js → chunk-UNT2FRVW.js} +1 -1
  122. package/public/chunk-UY5SF6JX.js +1 -0
  123. package/public/{chunk-QJRU2AHW.js → chunk-V65W2HM7.js} +1 -1
  124. package/public/chunk-VLOCOV5W.js +1 -0
  125. package/public/chunk-VSVPJOIN.js +19 -0
  126. package/public/{chunk-7HHGB4JN.js → chunk-WFRSH7IF.js} +1 -1
  127. package/public/{chunk-Q6UH4DEV.js → chunk-WIZAF6OS.js} +1 -1
  128. package/public/{chunk-MSSNDMBK.js → chunk-WO2FS67T.js} +1 -1
  129. package/public/chunk-WWMJUVLA.js +5 -0
  130. package/public/chunk-WYCYZ2CW.js +1 -0
  131. package/public/chunk-XJ2PFA56.js +1 -0
  132. package/public/{chunk-UUXVPC6B.js → chunk-XOZXV7OE.js} +1 -1
  133. package/public/{chunk-2SMLTKN6.js → chunk-Y276Q4AC.js} +1 -1
  134. package/public/chunk-YPC23JPU.js +49 -0
  135. package/public/chunk-YZFG5JO4.js +1 -0
  136. package/public/chunk-ZDJMBH7A.js +1 -0
  137. package/public/chunk-ZWP2O5YR.js +1 -0
  138. package/public/index.html +2 -2
  139. package/public/main-SUDAQ6H2.js +1 -0
  140. package/public/{styles-KAER7B5R.css → styles-IKV7T7ID.css} +1 -1
  141. package/public/chunk-23H472HH.js +0 -1
  142. package/public/chunk-2IG2NOH4.js +0 -49
  143. package/public/chunk-4DQEF3SY.js +0 -1
  144. package/public/chunk-52FJYRHM.js +0 -1
  145. package/public/chunk-52ZZ4IF4.js +0 -1
  146. package/public/chunk-5MWJFCCW.js +0 -1
  147. package/public/chunk-6KGJCE3V.js +0 -1
  148. package/public/chunk-7AQJWYJX.js +0 -1
  149. package/public/chunk-7N7XQXQX.js +0 -1
  150. package/public/chunk-A5X6BX5R.js +0 -1
  151. package/public/chunk-B3AJBIHT.js +0 -1
  152. package/public/chunk-BBLNIMTZ.js +0 -1
  153. package/public/chunk-BR6USPEJ.js +0 -1
  154. package/public/chunk-BZQMBZCK.js +0 -40
  155. package/public/chunk-CSU4CRXM.js +0 -1
  156. package/public/chunk-CZE6VJCO.js +0 -1
  157. package/public/chunk-EFH72TOO.js +0 -1
  158. package/public/chunk-GBGOQFTO.js +0 -1
  159. package/public/chunk-HRXJGOOF.js +0 -1
  160. package/public/chunk-HVB6HFMT.js +0 -1
  161. package/public/chunk-IRK2N2M7.js +0 -1
  162. package/public/chunk-JHUR7SXC.js +0 -1
  163. package/public/chunk-JVZO7GIO.js +0 -1
  164. package/public/chunk-JXPV6V53.js +0 -2
  165. package/public/chunk-L6NRYVMD.js +0 -1
  166. package/public/chunk-LGDYVAWH.js +0 -1
  167. package/public/chunk-M3NG5DHK.js +0 -19
  168. package/public/chunk-MJZG627D.js +0 -1
  169. package/public/chunk-NC3YB7JQ.js +0 -1
  170. package/public/chunk-NJ7NTAUG.js +0 -1
  171. package/public/chunk-OBYXJY4V.js +0 -1
  172. package/public/chunk-OMPHX32Y.js +0 -2
  173. package/public/chunk-RULAYELM.js +0 -1
  174. package/public/chunk-RW3TZQNH.js +0 -1
  175. package/public/chunk-U4JDF4NW.js +0 -1
  176. package/public/chunk-URAOB565.js +0 -1
  177. package/public/chunk-USJUSGFU.js +0 -1
  178. package/public/chunk-V2MV6MJL.js +0 -4
  179. package/public/chunk-VBTRILWF.js +0 -1
  180. package/public/chunk-WC6VTXQW.js +0 -1
  181. package/public/chunk-YBBBKFU2.js +0 -1
  182. package/public/chunk-ZCWNIAD2.js +0 -1
  183. package/public/main-U2ERWF3M.js +0 -1
@@ -1 +0,0 @@
1
- import{a as _,b as D}from"./chunk-23H472HH.js";import{m as S}from"./chunk-BBLNIMTZ.js";import{d as c}from"./chunk-OBYXJY4V.js";import{e as x}from"./chunk-OMPHX32Y.js";import{C as v,fa as h,g as O,ga as E,h as a,ia as y,ja as l,ka as f,pb as I,r as p,w as d,wa as j,x as T,z as w}from"./chunk-V2MV6MJL.js";var g=new y("JWT_OPTIONS"),m=(()=>{class r{constructor(e=null){this.tokenGetter=e&&e.tokenGetter||function(){}}urlBase64Decode(e){let t=e.replace(/-/g,"+").replace(/_/g,"/");switch(t.length%4){case 0:break;case 2:{t+="==";break}case 3:{t+="=";break}default:throw new Error("Illegal base64url string!")}return this.b64DecodeUnicode(t)}b64decode(e){let t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",o="";if(e=String(e).replace(/=+$/,""),e.length%4===1)throw new Error("'atob' failed: The string to be decoded is not correctly encoded.");for(let i=0,s,n,b=0;n=e.charAt(b++);~n&&(s=i%4?s*64+n:n,i++%4)?o+=String.fromCharCode(255&s>>(-2*i&6)):0)n=t.indexOf(n);return o}b64DecodeUnicode(e){return decodeURIComponent(Array.prototype.map.call(this.b64decode(e),t=>"%"+("00"+t.charCodeAt(0).toString(16)).slice(-2)).join(""))}decodeToken(e=this.tokenGetter()){return e instanceof Promise?e.then(t=>this._decodeToken(t)):this._decodeToken(e)}_decodeToken(e){if(!e||e==="")return null;let t=e.split(".");if(t.length!==3)throw new Error("The inspected token doesn't appear to be a JWT. Check to make sure it has three parts and see https://jwt.io for more.");let o=this.urlBase64Decode(t[1]);if(!o)throw new Error("Cannot decode the token.");return JSON.parse(o)}getTokenExpirationDate(e=this.tokenGetter()){return e instanceof Promise?e.then(t=>this._getTokenExpirationDate(t)):this._getTokenExpirationDate(e)}_getTokenExpirationDate(e){let t;if(t=this.decodeToken(e),!t||!t.hasOwnProperty("exp"))return null;let o=new Date(0);return o.setUTCSeconds(t.exp),o}isTokenExpired(e=this.tokenGetter(),t){return e instanceof Promise?e.then(o=>this._isTokenExpired(o,t)):this._isTokenExpired(e,t)}_isTokenExpired(e,t){if(!e||e==="")return!0;let o=this.getTokenExpirationDate(e);return t=t||0,o===null?!1:!(o.valueOf()>new Date().valueOf()+t*1e3)}getAuthScheme(e,t){return typeof e=="function"?e(t):e}}return r.\u0275fac=function(e){return new(e||r)(l(g))},r.\u0275prov=h({token:r,factory:r.\u0275fac}),r})(),$=r=>r instanceof Promise?v(()=>r):p(r),R=(()=>{class r{constructor(e,t,o){this.jwtHelper=t,this.document=o,this.standardPorts=["80","443"],this.tokenGetter=e.tokenGetter,this.headerName=e.headerName||"Authorization",this.authScheme=e.authScheme||e.authScheme===""?e.authScheme:"Bearer ",this.allowedDomains=e.allowedDomains||[],this.disallowedRoutes=e.disallowedRoutes||[],this.throwNoTokenError=e.throwNoTokenError||!1,this.skipWhenExpired=e.skipWhenExpired}isAllowedDomain(e){let t=new URL(e.url,this.document.location.origin);if(t.host===this.document.location.host)return!0;let o=`${t.hostname}${t.port&&!this.standardPorts.includes(t.port)?":"+t.port:""}`;return this.allowedDomains.findIndex(i=>typeof i=="string"?i===o:i instanceof RegExp?i.test(o):!1)>-1}isDisallowedRoute(e){let t=new URL(e.url,this.document.location.origin);return this.disallowedRoutes.findIndex(o=>{if(typeof o=="string"){let i=new URL(o,this.document.location.origin);return i.hostname===t.hostname&&i.pathname===t.pathname}return o instanceof RegExp?o.test(e.url):!1})>-1}handleInterception(e,t,o){let i=this.jwtHelper.getAuthScheme(this.authScheme,t);if(!e&&this.throwNoTokenError)throw new Error("Could not get token from tokenGetter function.");let s=p(!1);return this.skipWhenExpired&&(s=e?$(this.jwtHelper.isTokenExpired(e)):p(!0)),e?s.pipe(T(n=>n&&this.skipWhenExpired?t.clone():t.clone({setHeaders:{[this.headerName]:`${i}${e}`}})),w(n=>o.handle(n))):o.handle(t)}intercept(e,t){if(!this.isAllowedDomain(e)||this.isDisallowedRoute(e))return t.handle(e);let o=this.tokenGetter(e);return $(o).pipe(w(i=>this.handleInterception(i,e,t)))}}return r.\u0275fac=function(e){return new(e||r)(l(g),l(m),l(j))},r.\u0275prov=h({token:r,factory:r.\u0275fac}),r})(),F=(()=>{class r{constructor(e){if(e)throw new Error("JwtModule is already loaded. It should only be imported in your application's main module.")}static forRoot(e){return{ngModule:r,providers:[{provide:x,useClass:R,multi:!0},e.jwtOptionsProvider||{provide:g,useValue:e.config},m]}}}return r.\u0275fac=function(e){return new(e||r)(l(r,12))},r.\u0275mod=I({type:r}),r.\u0275inj=E({}),r})();var k=O(_(),1);var q=(()=>{class r{$api=f(S);$jwtHelper=f(m);$settings=f(D);token;user={};logoutTimer;constructor(){this.loadToken()}login(e){return a(this,null,function*(){let t=yield d(this.$api.post("/auth/login",e));if(!this.validateToken(t.access_token))throw new Error("Invalid username or password.");window.localStorage.setItem(c.jwt.tokenKey,t.access_token),yield this.$settings.getAppSettings()})}noauth(){return a(this,null,function*(){let e=yield d(this.$api.post("/auth/noauth",{}));if(this.validateToken(e.access_token))window.localStorage.setItem(c.jwt.tokenKey,e.access_token),yield this.$settings.getAppSettings();else throw new Error("Invalid username or password.")})}logout(){this.user=null,this.token=null,window.localStorage.removeItem(c.jwt.tokenKey),window.location.reload()}loadToken(){return a(this,null,function*(){this.$settings.settingsLoaded||(yield d(this.$settings.onSettingsLoaded));let e=window.localStorage.getItem(c.jwt.tokenKey);e&&this.validateToken(e)})}checkToken(){return a(this,null,function*(){try{return yield d(this.$api.get("/auth/check"))}catch(e){e.status===401&&(console.error("Current token is not valid"),this.logout())}})}isLoggedIn(){return this.$settings.env.instanceId!==this.user.instanceId?(console.error("Token does not match instance"),!1):this.user&&this.token&&!this.$jwtHelper.isTokenExpired(this.token,this.$settings.serverTimeOffset)}validateToken(e){try{return this.$jwtHelper.isTokenExpired(e,this.$settings.serverTimeOffset)&&this.logout(),this.user=this.$jwtHelper.decodeToken(e),this.token=e,this.setLogoutTimer(),!0}catch{return window.localStorage.removeItem(c.jwt.tokenKey),this.token=null,!1}}setLogoutTimer(){if(clearTimeout(this.logoutTimer),!this.$jwtHelper.isTokenExpired(this.token,this.$settings.serverTimeOffset)){let t=(0,k.default)(this.$jwtHelper.getTokenExpirationDate(this.token)).diff((0,k.default)().add(this.$settings.serverTimeOffset,"s"),"millisecond");t<=2147483647&&(this.logoutTimer=setTimeout(()=>a(this,null,function*(){this.$settings.formAuth===!1?(yield this.noauth(),window.location.reload()):this.logout()}),t))}}static \u0275fac=function(t){return new(t||r)};static \u0275prov=h({token:r,factory:r.\u0275fac})}return r})();export{F as a,q as b};
@@ -1 +0,0 @@
1
- import{a as E}from"./chunk-BWUD4MPH.js";import{a as S}from"./chunk-R5CEAGDB.js";import"./chunk-QVKCJ4SR.js";import"./chunk-IDW2S7VV.js";import"./chunk-Q5UJ7RBG.js";import"./chunk-GGZZFW2G.js";import"./chunk-ODN4SLC6.js";import"./chunk-CSU4CRXM.js";import{b as C}from"./chunk-23H472HH.js";import"./chunk-BBLNIMTZ.js";import{b as w}from"./chunk-OBYXJY4V.js";import"./chunk-OMPHX32Y.js";import{Nc as y,Oc as b,Wb as m,Xb as l,Yb as h,Yc as $,bb as a,cb as c,fc as v,ka as o,n as d,ob as u,oc as f,pc as p,uc as g,vc as T}from"./chunk-V2MV6MJL.js";var _=["terminaloutput"],A=(()=>{class r{$terminal=o(S);$settings=o(C);$navigationGuard=o(E);resizeEvent=new d;termTarget=$("terminaloutput");onWindowResize(){this.resizeEvent.next(void 0)}onBeforeUnload(t){return this.$navigationGuard.handleBeforeUnload(t)}onWindowFocus(){this.activateTerminal()}onClick(){this.activateTerminal()}activateTerminal(){this.$terminal.isTerminalReady()&&this.$terminal.term&&this.$terminal.term.focus()}ngOnInit(){window.document.querySelector("body").classList.add("bg-black"),this.$terminal.isTerminalReady()&&this.$terminal.destroyTerminal(),this.$settings.env.terminal?.persistence&&this.$terminal.hasActiveSession()?this.$terminal.reconnectTerminal(this.termTarget(),{},this.resizeEvent):(!this.$settings.env.terminal?.persistence&&this.$terminal.hasActiveSession()&&this.$terminal.destroyPersistentSession(),this.$terminal.startTerminal(this.termTarget(),{},this.resizeEvent)),setTimeout(()=>{this.activateTerminal()},100)}ngAfterViewInit(){document.addEventListener("visibilitychange",this.onVisibilityChange.bind(this))}onVisibilityChange(){!document.hidden&&this.$terminal.isTerminalReady()&&setTimeout(()=>{this.activateTerminal()},100)}canDeactivate(){return this.$navigationGuard.canDeactivate()}ngOnDestroy(){document.removeEventListener("visibilitychange",this.onVisibilityChange.bind(this)),window.document.querySelector("body").classList.remove("bg-black"),this.$settings.env.terminal?.persistence?this.$terminal.detachTerminal():this.$terminal.destroyPersistentSession()}static \u0275fac=function(e){return new(e||r)};static \u0275cmp=u({type:r,selectors:[["ng-component"]],viewQuery:function(e,i){e&1&&f(i.termTarget,_,5),e&2&&p()},hostBindings:function(e,i){e&1&&v("resize",function(n){return i.onWindowResize(n)},a)("beforeunload",function(n){return i.onBeforeUnload(n)},a)("focus",function(n){return i.onWindowFocus(n)},a)("click",function(n){return i.onClick(n)})},decls:8,vars:3,consts:[["terminaloutput",""],[1,"row","mb-3"],[1,"col-12"],[1,"primary-text","m-0"],[1,"flex-column","d-flex","align-items-stretch","adjust-for-mobile"],["id","docker-terminal",1,"align-self-end","w-100","h-100","mb-1"]],template:function(e,i){e&1&&(m(0,"div",1)(1,"div",2)(2,"h3",3),g(3),y(4,"translate"),l()()(),m(5,"div",4),h(6,"div",5,0),l()),e&2&&(c(3),T(b(4,1,"menu.linux.label_terminal")))},dependencies:[w],encapsulation:2})}return r})();export{A as TerminalComponent};
@@ -1 +0,0 @@
1
- import{a as D}from"./chunk-ODN4SLC6.js";import"./chunk-CSU4CRXM.js";import{d as E}from"./chunk-BR6USPEJ.js";import{b as R}from"./chunk-23H472HH.js";import{k as O,m as B}from"./chunk-BBLNIMTZ.js";import{a as k,b as I}from"./chunk-OBYXJY4V.js";import"./chunk-OMPHX32Y.js";import{Hc as b,Ic as g,Mb as _,Nb as f,Nc as o,Oc as l,Sb as x,Tb as r,Ub as n,Vb as v,cb as i,cc as S,fc as w,hc as d,ka as m,md as T,ob as $,qa as C,ra as y,uc as a,vc as c,wc as h}from"./chunk-V2MV6MJL.js";var U=(t,p)=>({"fas fa-spinner fa-spin":t,"far fa-check-circle":p}),F=t=>({"grey-text":t}),P=(t,p)=>({"far fa-circle":t,"fas fa-spinner fa-spin":p});function j(t,p){if(t&1&&(r(0,"div",7),a(1),n()),t&2){let e=d();i(),c(e.error)}}function M(t,p){if(t&1&&(r(0,"p",9),a(1),o(2,"translate"),n(),r(3,"div",10)(4,"div",11)(5,"span"),v(6,"i",12),a(7),o(8,"translate"),n()(),r(9,"div",11)(10,"span",12),v(11,"i",12),a(12),o(13,"translate"),n()()()),t&2){let e=d();i(),c(l(2,6,"restart.please_wait_while_server_restarts")),i(5),x("ngClass",g(12,U,!e.uiOnline,e.uiOnline)),i(),h(" ",l(8,8,"restart.ui_online")," "),i(3),x("ngClass",b(15,F,!e.uiOnline)),i(),x("ngClass",g(17,P,!e.uiOnline,e.uiOnline)),i(),h(" ",l(13,10,"restart.service_ready")," ")}}function V(t,p){if(t&1){let e=S();r(0,"p",15)(1,"button",16),w("click",function(){C(e);let u=d(2);return y(u.viewLogs())}),a(2),o(3,"translate"),n()()}t&2&&(i(2),c(l(3,1,"menu.tooltip_view_logs")))}function z(t,p){if(t&1&&(r(0,"div",8)(1,"p"),a(2),o(3,"translate"),n(),r(4,"p",13),a(5),o(6,"translate"),r(7,"span",14),a(8),n()(),_(9,V,4,3,"p",15),n()),t&2){let e=d();i(2),c(l(3,4,"restart.server_is_taking_long_time_to_restart")),i(3),h(" ",l(6,6,"restart.label_restart_command_executed"),": "),i(3),c(e.resp.command||"End Process"),i(),f(e.uiOnline?9:-1)}}var X=(()=>{class t{$api=m(B);$router=m(E);$settings=m(R);$toastr=m(O);$translate=m(k);$ws=m(D);checkTimeout;checkDelay;io;uiOnline=!1;error=!1;resp={};timeout=!1;ngOnInit(){this.io=this.$ws.connectToNamespace("status"),this.io.connected.subscribe(()=>{this.io.socket.emit("monitor-server-status"),this.$settings.getAppSettings().catch(()=>{})}),this.$router.parseUrl(this.$router.url).queryParams.restarting?(this.uiOnline=!0,this.checkIfServerUp()):this.$api.put("/server/restart",{}).subscribe({next:s=>{this.resp=s,this.checkIfServerUp(),s.restartingUI||(this.uiOnline=!0)},error:s=>{console.error(s),this.error=this.$translate.instant("restart.toast_server_restart_error"),this.$toastr.error(this.$translate.instant("restart.toast_server_restart_error"),this.$translate.instant("toast.title_error"))}})}viewLogs(){this.$router.navigate(["/logs"])}ngOnDestroy(){this.io.end(),clearTimeout(this.checkDelay),clearTimeout(this.checkTimeout)}checkIfServerUp(){this.checkDelay=setTimeout(()=>{this.io.socket.on("homebridge-status",e=>{this.uiOnline=!0,(e.status==="up"||e.status==="pending")&&(this.$toastr.success(this.$translate.instant("restart.toast_server_restarted"),this.$translate.instant("toast.title_success")),this.$router.navigate(["/"]))})},7e3),this.checkTimeout=setTimeout(()=>{this.$toastr.warning(this.$translate.instant("restart.toast_server_restart_timeout"),this.$translate.instant("toast.title_warning"),{timeOut:1e4}),this.timeout=!0},4e4)}static \u0275fac=function(s){return new(s||t)};static \u0275cmp=$({type:t,selectors:[["ng-component"]],decls:14,vars:8,consts:[[1,"d-flex","justify-content-between"],[1,"primary-text","m-0"],[1,"my-4","align-items-center",2,"max-width","1000px","margin","auto"],[1,"w-100","text-center","primary-text","mb-5"],[1,"fas","fa-power-off",2,"font-size","75px"],[1,"text-center"],[1,"primary-text","mb-4"],[1,"alert","alert-error","my-4"],[1,"alert","alert-warning","my-4"],[1,"grey-text"],[1,"justify-content-center","my-4"],[1,"restart-progress-box","primary-text"],[3,"ngClass"],[1,"grey-text","mb-0"],[1,"font-monospace"],[1,"mt-2","mb-0"],[1,"btn","btn-primary","mb-0",3,"click"]],template:function(s,u){s&1&&(r(0,"div",0)(1,"h3",1),a(2),o(3,"translate"),n()(),r(4,"div",2)(5,"div",3),v(6,"i",4),n(),r(7,"div",5)(8,"h4",6),a(9),o(10,"translate"),n(),_(11,j,2,1,"div",7)(12,M,14,20),_(13,z,10,8,"div",8),n()()),s&2&&(i(2),c(l(3,4,"menu.restart.title")),i(7),c(l(10,6,"restart.title_restart")),i(2),f(u.error?11:12),i(2),f(u.timeout?13:-1))},dependencies:[T,I],styles:[".restart-progress-box[_ngcontent-%COMP%]{font-size:22px;font-weight:300;margin-top:15px}"]})}return t})();export{X as RestartComponent};
@@ -1 +0,0 @@
1
- import{b as E,d as w}from"./chunk-OBYXJY4V.js";import{Ic as x,Jb as s,Mb as g,Nb as f,Nc as i,Oc as n,Sb as v,Tb as t,Ub as a,Vb as p,_a as S,cb as e,fc as h,hc as k,md as B,ob as _,uc as r,vc as m,wc as l}from"./chunk-V2MV6MJL.js";var I=(o,b)=>({"fa-chevron-down":o,"fa-chevron-right":b});function C(o,b){o&1&&(t(0,"ul",6)(1,"li",9)(2,"span",10),r(3),i(4,"translate"),p(5,"br"),t(6,"small",11),r(7),i(8,"translate"),a()(),t(9,"a",12),i(10,"translate"),p(11,"i",13),a()(),t(12,"li",9)(13,"span",10),r(14),i(15,"translate"),p(16,"br"),t(17,"small",11),r(18),i(19,"translate"),a()(),t(20,"a",14),i(21,"translate"),p(22,"i",13),a()(),t(23,"li",9)(24,"span",10),r(25),i(26,"translate"),p(27,"br"),t(28,"small",11),r(29),i(30,"translate"),a()(),t(31,"a",15),i(32,"translate"),p(33,"i",13),a()(),t(34,"li",9)(35,"span",10),r(36),i(37,"translate"),p(38,"br"),t(39,"small",11),r(40),i(41,"translate"),a()(),t(42,"a",16),i(43,"translate"),p(44,"i",13),a()()()),o&2&&(e(3),l(" ",n(4,12,"support.links.documentation")),e(4),m(n(8,14,"support.links.documentation_sub")),e(2),s("aria-label",n(10,16,"support.links.documentation")),e(5),l(" ",n(15,18,"support.links.issue")),e(4),m(n(19,20,"support.links.issue_sub")),e(2),s("aria-label",n(21,22,"support.links.issue")),e(5),l(" ",n(26,24,"support.links.discord")),e(4),m(n(30,26,"support.links.discord_sub")),e(2),s("aria-label",n(32,28,"support.links.discord")),e(5),l(" ",n(37,30,"support.links.reddit")),e(4),m(n(41,32,"support.links.reddit_sub")),e(2),s("aria-label",n(43,34,"support.links.reddit")))}function F(o,b){if(o&1&&(t(0,"ul",8)(1,"li",9)(2,"span",10),r(3),i(4,"translate"),p(5,"br"),t(6,"small",11),r(7),i(8,"translate"),a()(),t(9,"a",17),i(10,"translate"),p(11,"i",13),a()(),t(12,"li",9)(13,"span",10),r(14),i(15,"translate"),p(16,"br"),t(17,"small",11),r(18),i(19,"translate"),a()(),t(20,"a",18),i(21,"translate"),p(22,"i",13),a()(),t(23,"li",9)(24,"span",10),r(25),i(26,"translate"),p(27,"br"),t(28,"small",11),r(29),i(30,"translate"),a()(),t(31,"a",19),i(32,"translate"),p(33,"i",13),a()(),t(34,"li",9)(35,"span",10),r(36),i(37,"translate"),p(38,"br"),t(39,"small",11),r(40),i(41,"translate"),a()(),t(42,"a",20),i(43,"translate"),p(44,"i",13),a()(),t(45,"li",9)(46,"span",10),r(47),i(48,"translate"),p(49,"br"),t(50,"small",11),r(51),i(52,"translate"),a()(),t(53,"a",21),i(54,"translate"),p(55,"i",13),a()()()),o&2){let u=k();e(3),l(" ",n(4,16,"support.dev.item_swagger")),e(4),l(" ",n(8,18,"support.dev.item_swagger_sub")," "),e(2),v("href",u.swaggerUrl,S),s("aria-label",n(10,20,"support.dev.item_swagger")),e(5),l(" ",n(15,22,"support.dev.api")),e(4),m(n(19,24,"support.dev.api_sub")),e(2),s("aria-label",n(21,26,"support.dev.api")),e(5),l(" ",n(26,28,"support.dev.api_hap")),e(4),m(n(30,30,"support.dev.api_hap_sub")),e(2),s("aria-label",n(32,32,"support.dev.api_hap")),e(5),l(" ",n(37,34,"support.dev.template")),e(4),l(" ",n(41,36,"support.dev.template_sub")," "),e(2),s("aria-label",n(43,38,"support.dev.template")),e(5),l(" ",n(48,40,"support.dev.verified")),e(4),m(n(52,42,"support.dev.verified_sub")),e(2),s("aria-label",n(54,44,"support.dev.verified"))}}var j=(()=>{class o{swaggerEndpoint="/swagger";showFields={general:!0,dev:!0};get swaggerUrl(){return w.production?this.swaggerEndpoint:`${w.api.origin}${this.swaggerEndpoint}`}toggleSection(u){this.showFields[u]=!this.showFields[u]}static \u0275fac=function(c){return new(c||o)};static \u0275cmp=_({type:o,selectors:[["ng-component"]],decls:18,vars:23,consts:[[1,"d-flex","justify-content-between"],[1,"primary-text","m-0"],[1,"mb-4"],["role","button","tabindex","0",1,"mt-3","hover-pointer",3,"click"],[1,"primary-text"],[1,"fa",3,"ngClass"],["id","fieldsGeneral",1,"list-group","list-group-box","mt-2","mx-0"],[1,"pb-3"],["id","fieldsDev",1,"list-group","list-group-box","mt-2","mx-0"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"pe-2"],[1,"grey-text","pe-2"],["href","https://github.com/homebridge/homebridge/wiki","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],[1,"fas","fa-external-link-alt"],["href","https://github.com/homebridge/homebridge-config-ui-x/issues/new/choose","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://discord.gg/C87Pvq3","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://www.reddit.com/r/homebridge/","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px",3,"href"],["href","https://developers.homebridge.io/#/","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://developers.homebridge.io/HAP-NodeJS/","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://github.com/homebridge/homebridge-plugin-template","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"],["href","https://github.com/homebridge/homebridge/wiki/Verified-Plugins","target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","waves-effect","m-0",2,"min-width","50px"]],template:function(c,d){c&1&&(t(0,"div",0)(1,"h3",1),r(2),i(3,"translate"),a()(),t(4,"div",2)(5,"div",3),h("click",function(){return d.toggleSection("general")}),t(6,"h5",4),p(7,"i",5),r(8),i(9,"translate"),a()(),g(10,C,45,36,"ul",6),a(),t(11,"div",7)(12,"div",3),h("click",function(){return d.toggleSection("dev")}),t(13,"h5",4),p(14,"i",5),r(15),i(16,"translate"),a()(),g(17,F,56,46,"ul",8),a()),c&2&&(e(2),m(n(3,11,"support.title")),e(3),s("aria-expanded",d.showFields.general?"true":"false")("aria-controls","fieldsGeneral"),e(2),v("ngClass",x(17,I,d.showFields.general,!d.showFields.general)),e(),l(" ",n(9,13,"support.links.title")," "),e(2),f(d.showFields.general?10:-1),e(2),s("aria-expanded",d.showFields.dev?"true":"false")("aria-controls","fieldsDev"),e(2),v("ngClass",x(20,I,d.showFields.dev,!d.showFields.dev)),e(),l(" ",n(16,15,"support.dev.title")," "),e(2),f(d.showFields.dev?17:-1))},dependencies:[B,E],encapsulation:2})}return o})();export{j as SupportComponent};
@@ -1 +0,0 @@
1
- import{g as i}from"./chunk-BR6USPEJ.js";import"./chunk-OMPHX32Y.js";import{ga as t,pb as e}from"./chunk-V2MV6MJL.js";var d=[{path:"",redirectTo:"/",pathMatch:"full"},{path:"docker",loadChildren:()=>import("./chunk-NC3YB7JQ.js").then(o=>o.DockerModule)},{path:"linux",loadChildren:()=>import("./chunk-7AQJWYJX.js").then(o=>o.LinuxModule)},{path:"terminal",loadChildren:()=>import("./chunk-5MWJFCCW.js").then(o=>o.TerminalModule)}],l=(()=>{class o{static \u0275fac=function(r){return new(r||o)};static \u0275mod=e({type:o});static \u0275inj=t({imports:[i.forChild(d),i]})}return o})();var p=(()=>{class o{static \u0275fac=function(r){return new(r||o)};static \u0275mod=e({type:o});static \u0275inj=t({imports:[l]})}return o})();export{p as PlatformToolsModule};
@@ -1 +0,0 @@
1
- import{a as M}from"./chunk-SZUTWP25.js";import"./chunk-QVKCJ4SR.js";import{a as O}from"./chunk-J6L2XE5U.js";import{a as _}from"./chunk-IDW2S7VV.js";import{n as z,t as D}from"./chunk-Q5UJ7RBG.js";import"./chunk-GGZZFW2G.js";import"./chunk-ODN4SLC6.js";import{b as H}from"./chunk-CSU4CRXM.js";import"./chunk-23H472HH.js";import{k as F,m as V}from"./chunk-BBLNIMTZ.js";import{a as E,b as A}from"./chunk-OBYXJY4V.js";import"./chunk-OMPHX32Y.js";import{Jb as u,Mb as x,Nb as C,Nc as a,Oc as s,Sb as f,Tb as c,Ub as r,Vb as m,Yc as k,bb as y,cb as l,cc as T,fc as p,g as q,h as v,hc as b,ka as i,n as w,ob as $,oc as L,pc as S,qa as d,ra as g,uc as I,vc as B}from"./chunk-V2MV6MJL.js";var N=q(O(),1);var Q=["logoutput"];function W(o,P){if(o&1){let t=T();c(0,"div",4)(1,"button",7),a(2,"translate"),a(3,"translate"),p("click",function(){d(t);let n=b();return g(n.downloadLogFile())}),m(4,"i",8),r(),c(5,"button",9),a(6,"translate"),a(7,"translate"),p("click",function(){d(t);let n=b();return g(n.truncateLogFile())}),m(8,"i",10),r()()}o&2&&(l(),f("openDelay",150)("ngbTooltip",s(2,6,"form.button_download")),u("aria-label",s(3,8,"form.button_download")),l(4),f("openDelay",150)("ngbTooltip",s(6,10,"form.button_delete")),u("aria-label",s(7,12,"form.button_delete")))}var it=(()=>{class o{$api=i(V);$auth=i(H);$log=i(M);$modal=i(z);$toastr=i(F);$translate=i(E);termTarget=k("logoutput");resizeEvent=new w;isAdmin=this.$auth.user.admin;onWindowResize(){this.resizeEvent.next(void 0)}ngOnInit(){window.document.querySelector("body").classList.add("bg-black"),this.$log.startTerminal(this.termTarget(),{allowProposedApi:!0},this.resizeEvent)}ngOnDestroy(){window.document.querySelector("body").classList.remove("bg-black"),this.$log.destroyTerminal()}downloadLogFile(){let t=this.$modal.open(_,{size:"lg",backdrop:"static"});t.componentInstance.title=this.$translate.instant("logs.title_download_log_file"),t.componentInstance.message=this.$translate.instant("logs.download_warning"),t.componentInstance.confirmButtonLabel=this.$translate.instant("form.button_download"),t.componentInstance.faIconClass="fas fa-user-secret primary-text",t.result.then(()=>{this.$api.get("/platform-tools/hb-service/log/download",{observe:"response",responseType:"blob"}).subscribe({next:e=>{(0,N.saveAs)(e.body,"homebridge.log.txt")},error:e=>v(this,null,function*(){let n;try{n=JSON.parse(yield e.error.text()).message}catch(h){console.error(h)}this.$toastr.error(n||this.$translate.instant("logs.download.error"),this.$translate.instant("toast.title_error"))})})}).catch(()=>{})}truncateLogFile(){let t=this.$modal.open(_,{size:"lg",backdrop:"static"});t.componentInstance.title=this.$translate.instant("logs.title_truncate_log_file"),t.componentInstance.message=this.$translate.instant("logs.truncate_log_warning"),t.componentInstance.confirmButtonLabel=this.$translate.instant("form.button_delete"),t.componentInstance.confirmButtonClass="btn-danger",t.componentInstance.faIconClass="fas fa-circle-exclamation primary-text",t.result.then(()=>{this.$api.put("/platform-tools/hb-service/log/truncate",{}).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("logs.log_file_truncated"),this.$translate.instant("toast.title_success")),this.$log.term.clear()},error:e=>{console.error(e),this.$toastr.error(e.error?.message||this.$translate.instant("logs.truncate.error"),this.$translate.instant("toast.title_error"))}})}).catch(()=>{})}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=$({type:o,selectors:[["ng-component"]],viewQuery:function(e,n){e&1&&L(n.termTarget,Q,5),e&2&&S()},hostBindings:function(e,n){e&1&&p("resize",function(j){return n.onWindowResize(j)},y)},decls:9,vars:4,consts:[["logoutput",""],[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0"],[1,"col-6","text-end"],[1,"flex-column","d-flex","align-items-stretch","adjust-for-mobile"],["id","log-output",1,"align-self-end","w-100","h-100","mb-1"],["container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0","me-2",3,"click","openDelay","ngbTooltip"],[1,"fas","fa-download"],["container","body","placement","bottom","triggers","hover",1,"btn","btn-elegant","my-0","me-0",3,"click","openDelay","ngbTooltip"],[1,"fas","fa-trash-alt"]],template:function(e,n){e&1&&(c(0,"div",1)(1,"div",2)(2,"h3",3),I(3),a(4,"translate"),r()(),x(5,W,9,14,"div",4),r(),c(6,"div",5),m(7,"div",6,0),r()),e&2&&(l(3),B(s(4,2,"menu.linux.label_logs")),l(2),C(n.isAdmin?5:-1))},dependencies:[D,A],encapsulation:2})}return o})();export{it as LogsComponent};
@@ -1 +0,0 @@
1
- import{c as n}from"./chunk-RW3TZQNH.js";import"./chunk-CSU4CRXM.js";import{g as r}from"./chunk-BR6USPEJ.js";import"./chunk-23H472HH.js";import"./chunk-BBLNIMTZ.js";import"./chunk-OBYXJY4V.js";import"./chunk-OMPHX32Y.js";import{ga as o,pb as e}from"./chunk-V2MV6MJL.js";var c=[{path:"",loadComponent:()=>import("./chunk-JHUR7SXC.js").then(t=>t.SettingsComponent),canActivate:[n]}],m=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=e({type:t});static \u0275inj=o({imports:[r.forChild(c),r]})}return t})();var l=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=e({type:t});static \u0275inj=o({imports:[m]})}return t})();export{l as SettingsModule};
@@ -1 +0,0 @@
1
- import{a as Ke}from"./chunk-R5CEAGDB.js";import{a as Ge}from"./chunk-4DQEF3SY.js";import{a as Ue}from"./chunk-MSSNDMBK.js";import{a as We}from"./chunk-WIJDDKLW.js";import{a as je}from"./chunk-USJUSGFU.js";import{a as pt,c as dt}from"./chunk-QVKCJ4SR.js";import{a as ct}from"./chunk-J6L2XE5U.js";import{a as He}from"./chunk-IDW2S7VV.js";import{g as de,m as R,n as re,t as ce}from"./chunk-Q5UJ7RBG.js";import{B as ae,C as oe,b as ie,c as le,e as ne,j as w,k as $e,l as Fe,n as Pe,p as pe,s as Ae,t as Re,v as Ve,w as Me,x as De,z as Ne}from"./chunk-GGZZFW2G.js";import{a as Oe}from"./chunk-ODN4SLC6.js";import"./chunk-CSU4CRXM.js";import{d as U,e as Le}from"./chunk-BR6USPEJ.js";import{b as Y}from"./chunk-23H472HH.js";import{c as Te,d as _e,f as se,g as ge,k as M,m as D}from"./chunk-BBLNIMTZ.js";import{a as V,b as A,d as ze}from"./chunk-OBYXJY4V.js";import{b as we,c as Be}from"./chunk-OMPHX32Y.js";import{Bc as ye,Cc as Ie,Dc as ke,Hc as N,Ic as F,Jb as v,Jc as ee,M as k,Mb as h,Nb as _,Nc as r,Oc as s,Pb as L,Pc as G,Qb as z,Rb as O,Sb as m,Tb as a,Ub as o,Vb as d,Wb as T,Xb as B,Yb as H,Za as he,_a as fe,cb as t,cc as E,dc as K,fc as x,g as ue,gc as W,h as f,hc as b,ka as C,lc as Ce,mc as xe,md as j,nc as Se,ob as P,qa as S,ra as y,rd as te,td as Ee,uc as l,vc as u,w as $,wc as g}from"./chunk-V2MV6MJL.js";var qe=(i,c)=>({"green-text":i,"grey-text":c});function mt(i,c){if(i&1){let e=E();a(0,"li",9)(1,"div",10),l(2),d(3,"br"),a(4,"small",11),d(5,"i",12),r(6,"translate"),l(7," \xB7 "),a(8,"span",13),l(9),o(),l(10),r(11,"titlecase"),o()(),a(12,"div",14)(13,"input",23),r(14,"translate"),x("click",function(){let p=S(e).$implicit,I=b();return y(I.toggleList(p._username))}),o(),d(15,"label",24),o()()}if(i&2){let e=c.$implicit,n=b();t(2),g(" ",e.name," "),t(3),m("ngbTooltip",s(6,11,e._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired"))("openDelay",150)("ngClass",F(17,qe,e._isPaired,!e._isPaired)),t(4),u(e._username),t(),g(" \xB7 ",s(11,13,e._category)," "),t(3),m("id","hidePluginUpdates_"+e._username)("checked",!n.isInList(e._username))("disabled",n.clicked),v("aria-label",s(14,15,"form.button_allow")+" "+e.name),t(2),m("for","hidePluginUpdates_"+e._username)}}function ut(i,c){i&1&&(l(0),r(1,"translate")),i&2&&g(" ",s(1,1,"form.button_save")," ")}function ht(i,c){i&1&&d(0,"i",22)}var Qe=(()=>{class i{$activeModal=C(R);$api=C(D);$settings=C(Y);$toastr=C(M);$translate=C(V);originalBlacklist=[];updatedBlacklist=[];existingBlacklist=[];clicked=!1;mainPairing={};pairings=[];get blacklistHasUpdated(){return this.updatedBlacklist.join(",")!==this.originalBlacklist.join(",")}ngOnInit(){return f(this,null,function*(){this.updatedBlacklist=this.existingBlacklist.map(e=>e.trim().toUpperCase()).sort((e,n)=>e.localeCompare(n)),this.originalBlacklist=[...this.updatedBlacklist];try{let e=yield $(this.$api.get("/server/pairings"));this.mainPairing=e.find(n=>n._main),this.pairings=e.filter(n=>!n._main).sort((n,p)=>n.name.localeCompare(p.name))}catch(e){console.error(e),this.$toastr.error(e.message,this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}toggleList(e){this.updatedBlacklist.includes(e)?this.updatedBlacklist=this.updatedBlacklist.filter(n=>n!==e):(this.updatedBlacklist.push(e),this.updatedBlacklist.sort((n,p)=>n.localeCompare(p)))}isInList(e){return this.updatedBlacklist.includes(e)}updateBlacklist(){return f(this,null,function*(){this.clicked=!0;try{yield $(this.$api.put("/config-editor/ui/accessory-control/instance-blacklist",{body:this.updatedBlacklist})),this.$settings.setEnvItem("accessoryControl.instanceBlacklist",this.updatedBlacklist),this.$activeModal.close()}catch(e){this.clicked=!1,console.error(e),this.$toastr.error(e.message,this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=P({type:i,selectors:[["ng-component"]],inputs:{existingBlacklist:"existingBlacklist"},decls:45,vars:35,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-list-check","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box","mt-3","mb-0"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"text-start"],[1,"grey-text"],["container","body","triggers","hover","placement","left",1,"fas","fa-link",3,"ngbTooltip","openDelay","ngClass"],[1,"font-monospace"],[1,"text-end","grey-text","d-flex","align-items-center"],["type","checkbox","id","controlMainBridge",1,"rendux-input",3,"click","checked","disabled"],["for","controlMainBridge",1,"rendux-label","ms-3"],[1,"modal-footer","justify-content-between"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"],[1,"fas","fa-spinner","fa-pulse"],["type","checkbox",1,"rendux-input",3,"click","id","checked","disabled"],[1,"rendux-label","ms-3",3,"for"]],template:function(n,p){n&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),l(3),r(4,"translate"),o(),a(5,"button",3),r(6,"translate"),x("click",function(){return p.dismissModal()}),o()(),a(7,"div",4)(8,"div",5),d(9,"i",6),o(),a(10,"ul",7)(11,"li"),l(12),r(13,"translate"),o(),a(14,"li"),l(15),r(16,"translate"),o()(),a(17,"ul",8)(18,"li",9)(19,"div",10),l(20),d(21,"br"),a(22,"small",11),d(23,"i",12),r(24,"translate"),l(25," \xB7 "),a(26,"span",13),l(27),o(),l(28," \xB7 Homebridge "),o()(),a(29,"div",14)(30,"input",15),r(31,"translate"),x("click",function(){return p.toggleList(p.mainPairing._username)}),o(),d(32,"label",16),o()(),z(33,mt,16,20,"li",9,L),o()(),a(35,"div",17)(36,"div",10)(37,"button",18),x("click",function(){return p.dismissModal()}),l(38),r(39,"translate"),o()(),d(40,"div",19),a(41,"div",20)(42,"button",21),x("click",function(){return p.updateBlacklist()}),h(43,ut,2,3),h(44,ht,1,0,"i",22),o()()()()),n&2&&(t(3),u(s(4,18,"settings.security.ui_control")),t(2),m("disabled",p.clicked),v("aria-label",s(6,20,"form.button_close")),t(7),u(s(13,22,"settings.security.ui_control_desc")),t(3),u(s(16,24,"settings.security.ui_control_desc_2")),t(5),g(" ",p.mainPairing.name),t(3),m("ngbTooltip",s(24,26,p.mainPairing._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired"))("openDelay",150)("ngClass",F(32,qe,p.mainPairing._isPaired,!p.mainPairing._isPaired)),t(4),u(p.mainPairing._username),t(3),m("checked",!p.isInList(p.mainPairing._username))("disabled",p.clicked),v("aria-label",s(31,28,"plugins.manage.hide_updates")),t(3),O(p.pairings),t(4),m("disabled",p.clicked),t(),g(" ",s(39,30,"form.button_close")," "),t(4),m("disabled",!p.blacklistHasUpdated||p.clicked),t(),_(p.clicked?-1:43),t(),_(p.clicked?44:-1))},dependencies:[j,ae,ce,A,te],encapsulation:2})}return i})();var tt=ue(ct(),1);var Je=ue(pt(),1),Xe=ue(dt(),1);var _t=i=>({maxBackupSizeText:i});function gt(i,c){if(i&1&&H(0,"input",10),i&2){let e=b(2);K("value",e.selectedBackup.fileName)}}function bt(i,c){if(i&1){let e=E();T(0,"input",12),W("change",function(p){S(e);let I=b(2);return y(I.handleRestoreFileInput(p.target.files))}),B()}}function vt(i,c){if(i&1&&(T(0,"div",4)(1,"div",7),H(2,"i",8),B(),T(3,"ul",9)(4,"li"),l(5),r(6,"translate"),B(),T(7,"li"),l(8),r(9,"translate"),B(),T(10,"li"),l(11),r(12,"translate"),B(),T(13,"li"),l(14),r(15,"translate"),B()(),h(16,gt,1,1,"input",10),h(17,bt,1,0,"input",11),B()),i&2){let e=b();t(5),u(s(6,6,"backup.restore_help_one")),t(3),u(s(9,8,"backup.restore_help_two")),t(3),u(G(12,10,"backup.restore_max_size",N(15,_t,e.maxFileSizeText))),t(3),u(s(15,13,"backup.restore_warning")),t(2),_(e.selectedBackup?16:-1),t(),_(e.selectedBackup?-1:17)}}function ft(i,c){if(i&1){let e=E();T(0,"button",18),r(1,"translate"),W("click",function(){S(e);let p=b(2);return y(p.dismissModal())}),l(2),r(3,"translate"),B()}if(i&2){let e=b(2);K("disabled",e.clicked),v("aria-label",s(1,3,"form.button_close")),t(2),g(" ",s(3,5,"form.button_close")," ")}}function Ct(i,c){if(i&1){let e=E();T(0,"button",18),r(1,"translate"),W("click",function(){S(e);let p=b(2);return y(p.reopenBackupModal())}),l(2),r(3,"translate"),B()}if(i&2){let e=b(2);K("disabled",e.clicked),v("aria-label",s(1,3,"form.button_back")),t(2),g(" ",s(3,5,"form.button_back")," ")}}function xt(i,c){i&1&&H(0,"i",19)}function St(i,c){if(i&1&&(T(0,"span"),l(1),B()),i&2){let e=b(3);t(),g("",e.uploadPercent,"% - ")}}function yt(i,c){i&1&&(T(0,"span"),l(1," Extracting Archive"),B())}function It(i,c){i&1&&(T(0,"span"),l(1),r(2,"translate"),B()),i&2&&(t(),g(" ",s(2,1,"backup.label_uploading")))}function kt(i,c){if(i&1&&(T(0,"span"),h(1,xt,1,0,"i",19),h(2,St,2,1,"span"),h(3,yt,2,0,"span"),h(4,It,3,3,"span"),B()),i&2){let e=b(2);t(),_(!e.uploadPercent||e.uploadPercent===100?1:-1),t(),_(e.uploadPercent&&e.uploadPercent!==100?2:-1),t(),_(e.uploadPercent===100?3:-1),t(),_(e.uploadPercent!==100?4:-1)}}function Et(i,c){i&1&&(l(0),r(1,"translate")),i&2&&g(" ",s(1,1,"form.button_restore")," ")}function wt(i,c){if(i&1){let e=E();T(0,"div",6)(1,"div",13),h(2,ft,4,7,"button",14),h(3,Ct,4,7,"button",14),B(),H(4,"div",15),T(5,"div",16)(6,"button",17),W("click",function(){S(e);let p=b();return y(p.onRestoreBackupClick())}),h(7,kt,5,4,"span"),h(8,Et,2,3),B()()()}if(i&2){let e=b();t(2),_(e.setupWizardRestore?2:-1),t(),_(e.setupWizardRestore?-1:3),t(3),K("disabled",!e.selectedBackup&&!e.selectedFile||e.clicked),t(),_(e.clicked?7:-1),t(),_(e.clicked?-1:8)}}function Bt(i,c){if(i&1){let e=E();T(0,"div",6),H(1,"div",13),T(2,"div",15)(3,"button",20),W("click",function(){S(e);let p=b();return y(p.postBackupRestart())}),l(4),r(5,"translate"),B()(),H(6,"div",16),B()}i&2&&(t(4),g(" ",s(5,1,"menu.hbrestart.title")," "))}var Ye=(()=>{class i{$activeModal=C(R);$api=C(D);$modal=C(re);$route=C(U);$toastr=C(M);$translate=C(V);$ws=C(Oe);io;term=new Xe.Terminal;termTarget;fitAddon=new Je.FitAddon;setupWizardRestore=!1;selectedBackup=null;clicked=!1;maxFileSizeText=globalThis.backup.maxBackupSizeText;selectedFile;restoreInProgress=!1;restoreStarted=!1;restoreFailed=!1;restoreArchiveType="homebridge";uploadPercent=0;ngOnInit(){return f(this,null,function*(){this.io=this.$ws.connectToNamespace("backup"),this.termTarget=document.getElementById("plugin-log-output"),this.term.open(this.termTarget),this.fitAddon.fit(),this.io.socket.on("stdout",e=>{this.term.write(e)}),this.setupWizardRestore&&(this.restoreStarted=!0,this.restoreInProgress=!0,this.startRestore())})}onRestoreBackupClick(){this.selectedBackup?this.restoreScheduledBackup():this.restoreArchiveType==="homebridge"?this.uploadHomebridgeArchive():this.restoreArchiveType==="hbfx"&&this.uploadHbfxArchive()}handleRestoreFileInput(e){e.length?(this.selectedFile=e[0],this.selectedFile.name.endsWith(".hbfx")?this.restoreArchiveType="hbfx":this.restoreArchiveType="homebridge"):delete this.selectedFile}postBackupRestart(){this.$api.put("/backup/restart",{}).subscribe({next:()=>{this.$activeModal.close(!0),this.$route.navigate(["/"])},error:()=>{}})}reopenBackupModal(){this.$activeModal.dismiss(),this.$modal.open(me,{size:"lg",backdrop:"static"})}ngOnDestroy(){this.io.end()}dismissModal(){this.$activeModal.dismiss("Dismiss")}uploadHomebridgeArchive(){this.term.reset(),this.clicked=!0;let e=new FormData;e.append("restoreArchive",this.selectedFile,this.selectedFile.name),this.$api.post("/backup/restore",e).subscribe({next:()=>{this.restoreStarted=!0,this.restoreInProgress=!0,setTimeout(()=>{this.startRestore()},500),this.clicked=!1},error:n=>{console.error(n),this.$toastr.error(n.error?.message||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error")),this.clicked=!1}})}restoreScheduledBackup(){return f(this,null,function*(){this.term.reset(),this.clicked=!0,this.$api.post(`/backup/scheduled-backups/${this.selectedBackup.id}/restore`,{}).subscribe({next:()=>{this.restoreStarted=!0,this.restoreInProgress=!0,setTimeout(()=>{this.startRestore()},500),this.clicked=!1},error:e=>{console.error(e),this.$toastr.error(e.error?.message||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error")),this.clicked=!1}})})}startRestore(){return f(this,null,function*(){this.io.request("do-restore").subscribe({next:()=>{this.restoreInProgress=!1,this.$toastr.success(this.$translate.instant("backup.backup_restored"),this.$translate.instant("toast.title_success")),this.setupWizardRestore&&this.postBackupRestart()},error:e=>{this.restoreFailed=!0,console.error(e),this.$toastr.error(this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})})}uploadHbfxArchive(){this.term.reset(),this.clicked=!0;let e=new FormData;e.append("restoreArchive",this.selectedFile,this.selectedFile.name),this.$api.post("/backup/restore/hbfx",e,{reportProgress:!0,observe:"events"}).subscribe({next:n=>{n.type===we.UploadProgress?this.uploadPercent=Math.round(100*n.loaded/n.total):n instanceof Be&&(this.restoreStarted=!0,this.restoreInProgress=!0,setTimeout(()=>{this.startHbfxRestore()},500),this.clicked=!1)},error:n=>{this.clicked=!1,console.error(n),this.$toastr.error(n.error?.message||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})}startHbfxRestore(){return f(this,null,function*(){this.io.request("do-restore-hbfx").subscribe({next:()=>{this.restoreInProgress=!1,this.$toastr.success(this.$translate.instant("backup.backup_restored"),this.$translate.instant("toast.title_success"))},error:e=>{this.restoreFailed=!0,console.error(e),this.$toastr.error(this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})})}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=P({type:i,selectors:[["ng-component"]],inputs:{setupWizardRestore:"setupWizardRestore",selectedBackup:"selectedBackup"},decls:11,vars:11,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],["id","plugin-log-output",1,"modal-body",3,"hidden"],[1,"modal-footer","justify-content-between"],[1,"text-center","mb-3"],[1,"fas","fa-hard-drive","primary-text",2,"font-size","75px"],[1,"mb-3"],["type","text","disabled","",1,"form-control","custom-input",3,"value"],["type","file","id","restoreFileUpload","accept","application/gzip, .gz, .hbfx",1,"form-control"],["type","file","id","restoreFileUpload","accept","application/gzip, .gz, .hbfx",1,"form-control",3,"change"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"disabled"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"fa","fa-circle-notch","fa-spin"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click"]],template:function(n,p){n&1&&(T(0,"div",0)(1,"div",1)(2,"h5",2),l(3),r(4,"translate"),B(),T(5,"button",3),r(6,"translate"),W("click",function(){return p.dismissModal()}),B()(),h(7,vt,18,17,"div",4),H(8,"div",5),h(9,wt,9,5,"div",6),h(10,Bt,7,3,"div",6),B()),n&2&&(t(3),u(s(4,7,"backup.title_backup")),t(2),K("disabled",p.restoreInProgress),v("aria-label",s(6,9,"form.button_close")),t(2),_(!p.restoreStarted&&!p.setupWizardRestore?7:-1),t(),K("hidden",!p.restoreStarted),t(),_(!p.restoreStarted||p.restoreFailed===!0?9:-1),t(),_(!p.restoreInProgress&&p.restoreStarted?10:-1))},dependencies:[A],encapsulation:2})}return i})();var Ze=(i,c)=>({"fa-arrow-right":i,"fa-cog fa-spin":c}),Tt=i=>({backupTime:i,dayCount:7}),$t=(i,c)=>({"fa-trash":i,"fa-cog fa-spin":c}),Ft=(i,c)=>({backupSize:i,maxBackupSizeText:c});function Pt(i,c){if(i&1&&(l(0),r(1,"date"),r(2,"translate")),i&2){let e=b(2);g(" ",G(2,4,"backup.scheduled_backup_time",N(7,Tt,G(1,1,e.backupTime,"shortTime")))," ")}}function At(i,c){i&1&&(l(0),r(1,"translate")),i&2&&g(" ",s(1,1,"plugins.settings.restart_required")," ")}function Rt(i,c){if(i&1&&h(0,Pt,3,9)(1,At,2,3),i&2){let e=b();_(e.backupTime?0:1)}}function Vt(i,c){if(i&1&&(l(0),r(1,"translate")),i&2){let e=b();g(" ",s(1,1,e.backupTime?"plugins.settings.restart_required":"backup.scheduled_backup_disabled")," ")}}function Mt(i,c){if(i&1&&(a(0,"span",33),r(1,"translate"),d(2,"i",40),l(3),o()),i&2){let e=b().$implicit;m("ngbTooltip",G(1,3,"backup.backup_exceeds_max_size",F(6,Ft,e.size+"MB",e.maxBackupSizeText)))("openDelay",150),t(3),g(" ",e.size,"MB ")}}function Dt(i,c){if(i&1&&(a(0,"span"),l(1),o()),i&2){let e=b().$implicit;t(),g(" ",e.size,"MB ")}}function Nt(i,c){if(i&1){let e=E();a(0,"li",22)(1,"span")(2,"span",32),l(3),r(4,"date"),o(),d(5,"br"),a(6,"small",23),l(7),r(8,"date"),h(9,Mt,4,9,"span",33),h(10,Dt,2,1,"span"),o()(),a(11,"span",34)(12,"button",35),r(13,"translate"),r(14,"translate"),x("click",function(){let p=S(e).$implicit,I=b(2);return y(I.restore(p))}),d(15,"i",36),o(),a(16,"button",37),r(17,"translate"),r(18,"translate"),x("click",function(){let p=S(e).$implicit,I=b(2);return y(I.download(p))}),d(19,"i",38),o(),a(20,"button",39),r(21,"translate"),r(22,"translate"),x("click",function(){let p=S(e).$implicit,I=b(2);return y(I.delete(p))}),d(23,"i",25),o()()()}if(i&2){let e=c.$implicit,n=b(2);t(2),m("ngbTooltip",e.fileName)("openDelay",150),t(),g(" ",G(4,19,e.timestamp,"mediumDate")," "),t(4),g(" ",G(8,22,e.timestamp,"shortTime")," \xB7 "),t(2),_(e.size>e.maxBackupSize?9:-1),t(),_(e.size<=e.maxBackupSize?10:-1),t(2),m("disabled",n.clicked||n.deleting||e.size>e.maxBackupSize)("ngbTooltip",s(13,25,"form.button_restore"))("openDelay",150),v("aria-label",s(14,27,"form.button_restore")),t(4),m("disabled",n.clicked||n.deleting)("ngbTooltip",s(17,29,"form.button_download"))("openDelay",150),v("aria-label",s(18,31,"form.button_download")),t(4),m("disabled",n.clicked||n.deleting)("ngbTooltip",s(21,33,"form.button_delete"))("openDelay",150),v("aria-label",s(22,35,"form.button_delete")),t(3),m("ngClass",F(37,$t,e.id!==n.deleting,e.id===n.deleting))}}function Lt(i,c){if(i&1&&(a(0,"ul",27)(1,"li",9)(2,"h6",10),l(3),r(4,"translate"),o()(),z(5,Nt,24,40,"li",22,L),o()),i&2){let e=b();t(3),u(s(4,1,"backup.files_auto")),t(2),O(e.scheduledBackups)}}var me=(()=>{class i{$activeModal=C(R);$api=C(D);$backup=C(je);$modal=C(re);$router=C(U);$settings=C(Y);$toastr=C(M);$translate=C(V);restartToastIsShown=!1;Date=Date;clicked=!1;scheduledBackups=[];backupTime;deleting=null;currentSettingEnabled=!1;currentSettingPath="";enabledFormControl=new w(!1);pathFormControl=new w("");ngOnInit(){this.getScheduledBackups(),this.getNextBackup(),this.currentSettingEnabled=!this.$settings.env.scheduledBackupDisable,this.currentSettingPath=this.$settings.env.scheduledBackupPath,this.enabledFormControl.patchValue(this.currentSettingEnabled),this.pathFormControl.patchValue(this.currentSettingPath),this.enabledFormControl.valueChanges.pipe(k(750)).subscribe(e=>f(this,null,function*(){this.currentSettingEnabled=e,yield this.saveUiSettingChange("scheduledBackupDisable",!this.currentSettingEnabled)})),this.pathFormControl.valueChanges.pipe(k(1500)).subscribe(e=>f(this,null,function*(){this.currentSettingPath=e,yield this.saveUiSettingChange("scheduledBackupPath",this.currentSettingPath)}))}download(e){this.$api.get(`/backup/scheduled-backups/${e.id}`,{observe:"response",responseType:"blob"}).subscribe({next:n=>{let p=e.fileName||"homebridge-backup.tar.gz",I=n.body.size;if(I>globalThis.backup.maxBackupSize){let X=this.$translate.instant("backup.backup_exceeds_max_size",{maxBackupSizeText:globalThis.backup.maxBackupSizeText,size:`${(I/1048576).toFixed(1)}MB`});this.$toastr.warning(X,this.$translate.instant("toast.title_warning"))}(0,tt.saveAs)(n.body,p)},error:n=>{console.error(n),this.$toastr.error(this.$translate.instant("backup.backup_download_failed"),this.$translate.instant("toast.title_error"))}})}restore(e){this.$activeModal.close();let n=this.$modal.open(Ye,{size:"lg",backdrop:"static"});n.componentInstance.selectedBackup=e}delete(e){this.deleting=e.id,this.$api.delete(`/backup/scheduled-backups/${e.id}`).subscribe({next:()=>{this.getScheduledBackups(),this.deleting=null},error:n=>{this.deleting=null,console.error(n),this.$toastr.error(this.$translate.instant("backup.backup_delete_failed"),this.$translate.instant("toast.title_error"))}})}onDownloadBackupClick(){return f(this,null,function*(){this.clicked=!0;try{yield this.$backup.downloadBackup(),this.clicked=!1}catch(e){this.clicked=!1,console.error(e),this.$toastr.error(e.message,this.$translate.instant("toast.title_error"))}})}onCreateBackupClick(){return f(this,null,function*(){this.clicked=!0;try{yield $(this.$api.post("/backup",{})),this.clicked=!1,this.getScheduledBackups()}catch(e){this.clicked=!1,console.error(e),this.$toastr.error(e.message,this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}saveUiSettingChange(e,n){return f(this,null,function*(){try{yield $(this.$api.put("/config-editor/ui",{key:e,value:n})),this.$settings.setEnvItem(e,n),this.showRestartToast()}catch(p){console.error(p),this.$toastr.error(p.message,this.$translate.instant("toast.title_error"))}})}getScheduledBackups(){this.$api.get("/backup/scheduled-backups").subscribe({next:e=>{this.scheduledBackups=e},error:e=>console.error(e)})}getNextBackup(){this.$api.get("/backup/scheduled-backups/next").subscribe({next:e=>{this.backupTime=e.next},error:e=>{console.error(e)}})}showRestartToast(){if(!this.restartToastIsShown){this.restartToastIsShown=!0;let e=this.$toastr.info(this.$translate.instant("settings.changes.saved"),this.$translate.instant("menu.hbrestart.title"),{timeOut:0,tapToDismiss:!0,disableTimeOut:!0,positionClass:"toast-bottom-right",enableHtml:!0});e&&e.onTap&&e.onTap.subscribe(()=>{this.$router.navigate(["/restart"])})}}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=P({type:i,selectors:[["ng-component"]],decls:92,vars:80,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-hard-drive","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item"],[1,"mb-0","text-center"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],[1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"grey-text","small"],[1,"text-start","text-md-end","w-100","w-md-50"],["type","text","placeholder","/home/pi/homebridge-backups",1,"form-control","custom-input",3,"formControl"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"text-start"],[1,"small","grey-text"],[1,"text-end","grey-text","d-flex","align-items-center"],["type","checkbox","id","disableScheduledBackups",1,"rendux-input",3,"formControl"],["for","disableScheduledBackups",1,"rendux-label"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"grey-text"],[1,"btn","btn-primary","m-0","ms-3",3,"click","disabled"],[1,"fas",3,"ngClass"],[1,"fas","fa-arrow-right"],[1,"list-group","list-group-box","mt-3","mb-0"],[1,"modal-footer","justify-content-between"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-end"],["container","modal","triggers","hover",3,"ngbTooltip","openDelay"],["container","modal","triggers","hover",1,"red-text",3,"ngbTooltip","openDelay"],[2,"display","flex","flex-wrap","nowrap"],["placement","bottom","container","modal","triggers","hover",1,"btn","btn-primary","m-0","ms-3",3,"click","disabled","ngbTooltip","openDelay"],[1,"fas","fa-history"],["placement","bottom","container","modal","triggers","hover",1,"btn","btn-primary","m-0","ms-2",3,"click","disabled","ngbTooltip","openDelay"],[1,"fas","fa-download"],["placement","bottom","container","modal","triggers","hover",1,"btn","btn-danger","m-0","ms-2",3,"click","disabled","ngbTooltip","openDelay"],[1,"fas","fa-exclamation-circle"]],template:function(n,p){n&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),l(3),r(4,"translate"),o(),a(5,"button",3),r(6,"translate"),x("click",function(){return p.dismissModal()}),o()(),a(7,"div",4)(8,"div",5),d(9,"i",6),o(),a(10,"ul",7)(11,"li"),l(12),r(13,"translate"),o(),a(14,"li"),l(15),r(16,"translate"),o(),a(17,"li"),l(18),r(19,"translate"),o()(),a(20,"ul",8)(21,"li",9)(22,"h6",10),l(23),r(24,"translate"),o()(),a(25,"li",11)(26,"div",12),l(27),r(28,"translate"),d(29,"br"),a(30,"span",13),l(31),r(32,"translate"),o()(),a(33,"div",14),d(34,"input",15),r(35,"translate"),o()(),a(36,"li",16)(37,"div",17),l(38),r(39,"translate"),d(40,"br"),a(41,"span",18),h(42,Rt,2,1)(43,Vt,2,3),o()(),a(44,"div",19),d(45,"input",20),r(46,"translate"),d(47,"label",21),o()(),a(48,"li",22)(49,"div")(50,"span"),l(51),r(52,"translate"),o(),d(53,"br"),a(54,"small",23),l(55),r(56,"translate"),o()(),a(57,"button",24),r(58,"translate"),x("click",function(){return p.onDownloadBackupClick()}),d(59,"i",25),o()(),a(60,"li",22)(61,"div")(62,"span"),l(63),r(64,"translate"),o(),d(65,"br"),a(66,"small",23),l(67),r(68,"translate"),o()(),a(69,"button",24),r(70,"translate"),x("click",function(){return p.onCreateBackupClick()}),d(71,"i",25),o()(),a(72,"li",22)(73,"div")(74,"span"),l(75),r(76,"translate"),o(),d(77,"br"),a(78,"small",23),l(79),r(80,"translate"),o()(),a(81,"button",24),r(82,"translate"),x("click",function(){return p.restore(null)}),d(83,"i",26),o()()(),h(84,Lt,7,3,"ul",27),o(),a(85,"div",28),d(86,"div",17),a(87,"div",29)(88,"button",30),x("click",function(){return p.dismissModal()}),l(89),r(90,"translate"),o()(),d(91,"div",31),o()()),n&2&&(t(3),u(s(4,32,"backup.title_backup")),t(2),m("disabled",p.clicked||p.deleting),v("aria-label",s(6,34,"form.button_close")),t(7),u(s(13,36,"backup.backup_help_one")),t(3),u(s(16,38,"backup.backup_help_two")),t(3),u(s(19,40,"backup.backup_warning")),t(5),u(s(24,42,"backup.settings_title")),t(4),g(" ",s(28,44,"backup.settings_path")),t(4),u(s(32,46,"backup.settings_path_desc")),t(3),m("formControl",p.pathFormControl),v("aria-label",s(35,48,"backup.settings_path")),t(4),g(" ",s(39,50,"backup.settings_enable")),t(4),_(p.enabledFormControl.value?42:43),t(3),m("formControl",p.enabledFormControl),v("aria-label",s(46,52,"backup.settings_enable")),t(6),u(s(52,54,"backup.backup_now")),t(4),u(s(56,56,"backup.backup_now_desc")),t(2),m("disabled",p.clicked),v("aria-label",s(58,58,"backup.backup_now")),t(2),m("ngClass",F(74,Ze,!p.clicked,p.clicked)),t(4),u(s(64,60,"backup.backup_now")),t(4),u(s(68,62,"backup.backup_now_save_desc")),t(2),m("disabled",p.clicked),v("aria-label",s(70,64,"backup.backup_now")),t(2),m("ngClass",F(77,Ze,!p.clicked,p.clicked)),t(4),u(s(76,66,"backup.restore_now")),t(4),u(s(80,68,"backup.restore_now_desc")),t(2),m("disabled",p.clicked),v("aria-label",s(82,70,"backup.restore_now")),t(3),_(p.scheduledBackups.length?84:-1),t(4),m("disabled",p.clicked||p.deleting),t(),g(" ",s(90,72,"form.button_close")," "))},dependencies:[ce,j,oe,le,ie,ne,pe,Ee,A],encapsulation:2})}return i})();function zt(i,c){i&1&&(a(0,"div",12),d(1,"i",13),o(),a(2,"p",14),l(3),r(4,"translate"),o()),i&2&&(t(3),u(s(4,1,"reset.no_accessories")))}function Ot(i,c){i&1&&(a(0,"div",12),d(1,"i",15),o(),a(2,"ul",16)(3,"li"),l(4),r(5,"translate"),o(),a(6,"li"),l(7),r(8,"translate"),o(),a(9,"li"),l(10),r(11,"translate"),o()(),a(12,"ngb-alert",17)(13,"p",18),l(14),r(15,"translate"),o()()),i&2&&(t(4),u(s(5,5,"reset.accessory_all.list_1")),t(3),u(s(8,7,"reset.accessory_all.list_2")),t(3),u(s(11,9,"reset.accessory_all.list_3")),t(2),m("dismissible",!1),t(2),u(s(15,11,"reset.action_is_irreversible")))}function Ht(i,c){if(i&1){let e=E();a(0,"button",19),r(1,"translate"),x("click",function(){S(e);let p=b();return y(p.dismissModal())}),l(2),r(3,"translate"),o()}if(i&2){let e=b();m("disabled",e.clicked),v("aria-label",s(1,3,"form.button_close")),t(2),g(" ",s(3,5,"form.button_close")," ")}}function Ut(i,c){if(i&1){let e=E();a(0,"button",20),r(1,"translate"),x("click",function(){S(e);let p=b();return y(p.dismissModal())}),l(2),r(3,"translate"),o()}i&2&&(v("aria-label",s(1,2,"form.button_close")),t(2),g(" ",s(3,4,"form.button_close")," "))}function Wt(i,c){i&1&&(l(0),r(1,"translate")),i&2&&g(" ",s(1,1,"form.button_remove")," ")}function Kt(i,c){i&1&&d(0,"i",22)}function Gt(i,c){if(i&1){let e=E();a(0,"button",21),x("click",function(){S(e);let p=b();return y(p.onResetCachedAccessoriesClick())}),h(1,Wt,2,3),h(2,Kt,1,0,"i",22),o()}if(i&2){let e=b();m("disabled",e.clicked),t(),_(e.clicked?-1:1),t(),_(e.clicked?2:-1)}}var it=(()=>{class i{$activeModal=C(R);$api=C(D);$router=C(U);$toastr=C(M);$translate=C(V);clicked=!1;cachedAccessories=[];ngOnInit(){this.loadCachedAccessories()}onResetCachedAccessoriesClick(){return this.clicked=!0,this.$api.put("/server/reset-cached-accessories",{}).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("reset.delete_success"),this.$translate.instant("toast.title_success")),this.$activeModal.close(),this.$router.navigate(["/restart"],{queryParams:{restarting:!0}})},error:e=>{this.clicked=!1,console.error(e),this.$toastr.error(this.$translate.instant("reset.failed_to_reset"),this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}loadCachedAccessories(){return f(this,null,function*(){try{this.cachedAccessories=yield $(this.$api.get("/server/cached-accessories"))}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("reset.error_message"),this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=P({type:i,selectors:[["ng-component"]],decls:17,vars:12,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"disabled"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"disabled"],[1,"text-center","mb-3"],[1,"fas","fa-circle-check","primary-text",2,"font-size","75px"],[1,"mb-0","text-center"],[1,"fas","fa-network-wired","primary-text",2,"font-size","75px"],[1,"mb-3"],["type","error",1,"mb-0",3,"dismissible"],[1,"text-center","mb-0"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[1,"fas","fa-spinner","fa-pulse"]],template:function(n,p){n&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),l(3),r(4,"translate"),o(),a(5,"button",3),r(6,"translate"),x("click",function(){return p.dismissModal()}),o()(),a(7,"div",4),h(8,zt,5,3),h(9,Ot,16,13),o(),a(10,"div",5)(11,"div",6),h(12,Ht,4,7,"button",7),o(),a(13,"div",8),h(14,Ut,4,6,"button",9),o(),a(15,"div",10),h(16,Gt,3,3,"button",11),o()()()),n&2&&(t(3),u(s(4,8,"reset.accessory_all.title")),t(2),m("disabled",p.clicked),v("aria-label",s(6,10,"form.button_close")),t(3),_(p.cachedAccessories.length===0?8:-1),t(),_(p.cachedAccessories.length>0?9:-1),t(3),_(p.cachedAccessories.length>0?12:-1),t(2),_(p.cachedAccessories.length===0?14:-1),t(2),_(p.cachedAccessories.length>0?16:-1))},dependencies:[de,A],encapsulation:2})}return i})();var jt=(i,c)=>({"green-text":i,"grey-text":c}),qt=(i,c)=>({"btn-danger":i,"btn-elegant":c}),Qt=(i,c,e)=>({"fa-broom":i,"fa-undo":c,"fa-spinner fa-pulse":e});function Jt(i,c){i&1&&(a(0,"div",12),d(1,"i",13),o(),a(2,"p",14),l(3),r(4,"translate"),o()),i&2&&(t(3),u(s(4,1,"reset.bridge_accessories.empty")))}function Xt(i,c){if(i&1){let e=E();a(0,"li",18)(1,"span"),l(2),d(3,"br"),a(4,"small",19),d(5,"i",20),l(6),r(7,"translate"),a(8,"span",21),l(9),o()()(),a(10,"button",22),r(11,"translate"),x("click",function(){let p=S(e).$implicit,I=b(2);return y(I.toggleList(p._id))}),d(12,"i",23),o()()}if(i&2){let e=c.$implicit,n=b(2);t(2),g(" ",e.name," "),t(3),m("ngClass",F(12,jt,e._isPaired,!e._isPaired)),t(),g(" ",s(7,8,e._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired")," \xB7 "),t(3),u(e._username),t(),m("disabled",n.clicked)("ngClass",F(15,qt,!n.toDelete.includes(e._id),n.toDelete.includes(e._id))),v("aria-label",s(11,10,"form.button_delete")),t(2),m("ngClass",ee(18,Qt,!n.toDelete.includes(e._id),n.toDelete.includes(e._id)&&!n.clicked,n.toDelete.includes(e._id)&&n.clicked))}}function Yt(i,c){if(i&1&&(a(0,"div",12),d(1,"i",15),o(),a(2,"ul",16)(3,"li"),l(4),r(5,"translate"),o(),a(6,"li"),l(7),r(8,"translate"),o(),a(9,"li"),l(10),r(11,"translate"),o()(),a(12,"ul",17),z(13,Xt,13,22,"li",18,L),o()),i&2){let e=b();t(4),u(s(5,3,"reset.bridge_accessories.list_1")),t(3),u(s(8,5,"reset.clear_cache_single.list_3")),t(3),u(s(11,7,"reset.bridge_accessories.list_2")),t(3),O(e.pairings)}}function Zt(i,c){if(i&1){let e=E();a(0,"button",24),x("click",function(){S(e);let p=b();return y(p.dismissModal())}),l(1),r(2,"translate"),o()}if(i&2){let e=b();m("disabled",e.clicked),t(),g(" ",s(2,2,"form.button_close")," ")}}function ei(i,c){if(i&1){let e=E();a(0,"button",25),x("click",function(){S(e);let p=b();return y(p.dismissModal())}),l(1),r(2,"translate"),o()}i&2&&(t(),g(" ",s(2,1,"form.button_close")," "))}function ti(i,c){i&1&&d(0,"i",27)}function ii(i,c){if(i&1&&l(0),i&2){let e=b(3);g(" (",e.toDelete.length,") ")}}function ni(i,c){if(i&1&&(l(0),r(1,"translate"),h(2,ii,1,1)),i&2){let e=b(2);g(" ",s(1,2,"form.button_remove")," "),t(2),_(e.toDelete.length>0?2:-1)}}function ai(i,c){if(i&1){let e=E();a(0,"button",26),x("click",function(){S(e);let p=b();return y(p.cleanBridges())}),h(1,ti,1,0,"i",27)(2,ni,3,4),o()}if(i&2){let e=b();m("disabled",!e.toDelete.length||e.clicked),t(),_(e.clicked?1:2)}}var nt=(()=>{class i{$activeModal=C(R);$api=C(D);$router=C(U);$toastr=C(M);$translate=C(V);clicked=!1;pairings=[];toDelete=[];ngOnInit(){this.loadPairings()}cleanBridges(){return this.clicked=!0,this.$api.delete("/server/pairings/accessories",{body:this.toDelete.map(e=>({id:e}))}).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("reset.accessory_ind.done"),this.$translate.instant("toast.title_success")),this.$activeModal.close(),this.$router.navigate(["/restart"],{queryParams:{restarting:!0}})},error:e=>{this.clicked=!1,console.error(e),this.$toastr.error(this.$translate.instant("reset.accessory_ind.fail"),this.$translate.instant("toast.title_error"))}})}toggleList(e){this.toDelete.includes(e)?this.toDelete=this.toDelete.filter(n=>n!==e):this.toDelete.push(e)}dismissModal(){this.$activeModal.dismiss("Dismiss")}loadPairings(){return f(this,null,function*(){try{this.pairings=(yield $(this.$api.get("/server/pairings"))).filter(e=>e._category==="bridge"&&!e._main).sort((e,n)=>e.name.localeCompare(n.name))}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("settings.unpair_bridge.load_error"),this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=P({type:i,selectors:[["ng-component"]],decls:17,vars:12,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"disabled"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"disabled"],[1,"text-center","mb-3"],[1,"fas","fa-circle-check","primary-text",2,"font-size","75px"],[1,"mb-0","text-center"],[1,"fas","fa-broom","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"grey-text"],[1,"fas","fa-link",3,"ngClass"],[1,"font-monospace"],[1,"btn","btn-danger","m-0","ms-3",3,"click","disabled","ngClass"],[1,"fas",3,"ngClass"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[1,"fas","fa-spinner","fa-pulse"]],template:function(n,p){n&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),l(3),r(4,"translate"),o(),a(5,"button",3),r(6,"translate"),x("click",function(){return p.dismissModal()}),o()(),a(7,"div",4),h(8,Jt,5,3),h(9,Yt,15,9),o(),a(10,"div",5)(11,"div",6),h(12,Zt,3,4,"button",7),o(),a(13,"div",8),h(14,ei,3,3,"button",9),o(),a(15,"div",10),h(16,ai,3,2,"button",11),o()()()),n&2&&(t(3),u(s(4,8,"reset.bridge_accessories.title")),t(2),m("disabled",p.clicked),v("aria-label",s(6,10,"form.button_close")),t(3),_(p.pairings.length===0?8:-1),t(),_(p.pairings.length>0?9:-1),t(3),_(p.pairings.length>0?12:-1),t(2),_(p.pairings.length===0?14:-1),t(2),_(p.pairings.length>0?16:-1))},dependencies:[j,A],encapsulation:2})}return i})();function oi(i,c){i&1&&(l(0),r(1,"translate")),i&2&&g(" ",s(1,1,"form.button_reset")," ")}function ri(i,c){i&1&&d(0,"i",16)}var at=(()=>{class i{$activeModal=C(R);$api=C(D);$route=C(U);$toastr=C(M);$translate=C(V);clicked;onResetHomebridgeAccessoryClick(){return this.clicked=!0,this.$api.put("/server/reset-homebridge-accessory",{}).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("reset.accessory_reset"),this.$translate.instant("toast.title_success")),this.$activeModal.close(),this.$route.navigate(["/restart"])},error:e=>{console.error(e),this.$toastr.error(this.$translate.instant("reset.failed_to_reset"),this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=P({type:i,selectors:[["ng-component"]],decls:38,vars:33,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-bridge","primary-text",2,"font-size","75px"],[1,"mb-3"],["type","error",1,"mb-0",3,"dismissible"],[1,"text-center","mb-0"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[1,"fas","fa-spinner","fa-pulse"]],template:function(n,p){n&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),l(3),r(4,"translate"),o(),a(5,"button",3),r(6,"translate"),x("click",function(){return p.dismissModal()}),o()(),a(7,"div",4)(8,"div",5),d(9,"i",6),o(),a(10,"ul",7)(11,"li"),l(12),r(13,"translate"),o(),a(14,"li"),l(15),r(16,"translate"),o(),a(17,"li"),l(18),r(19,"translate"),o(),a(20,"li"),l(21),r(22,"translate"),o()(),a(23,"ngb-alert",8)(24,"p",9),l(25),r(26,"translate"),o()()(),a(27,"div",10)(28,"div",11)(29,"button",12),r(30,"translate"),x("click",function(){return p.dismissModal()}),l(31),r(32,"translate"),o()(),d(33,"div",13),a(34,"div",14)(35,"button",15),x("click",function(){return p.onResetHomebridgeAccessoryClick()}),h(36,oi,2,3),h(37,ri,1,0,"i",16),o()()()()),n&2&&(t(3),u(s(4,15,"reset.bridge_all.title")),t(2),m("disabled",p.clicked),v("aria-label",s(6,17,"form.button_close")),t(7),u(s(13,19,"reset.bridge_all.list_1")),t(3),u(s(16,21,"reset.bridge_all.list_2")),t(3),u(s(19,23,"reset.bridge_all.list_3")),t(3),u(s(22,25,"reset.bridge_all.list_4")),t(2),m("dismissible",!1),t(2),u(s(26,27,"reset.action_is_irreversible")),t(4),m("disabled",p.clicked),v("aria-label",s(30,29,"form.button_close")),t(2),g(" ",s(32,31,"form.button_close")," "),t(4),m("disabled",p.clicked),t(),_(p.clicked?-1:36),t(),_(p.clicked?37:-1))},dependencies:[de,A],encapsulation:2})}return i})();var be=(i,c)=>({"green-text":i,"grey-text":c}),ve=(i,c)=>({"btn-danger":i,"btn-elegant":c}),ot=(i,c,e)=>({"fa-refresh":i,"fa-undo":c,"fa-spinner fa-pulse":e}),si=(i,c,e)=>({"fa-trash":i,"fa-undo":c,"fa-spinner fa-pulse":e});function li(i,c){i&1&&(a(0,"div",12),d(1,"i",13),o(),a(2,"p",14),l(3),r(4,"translate"),o()),i&2&&(t(3),u(s(4,1,"reset.bridges.empty")))}function pi(i,c){if(i&1){let e=E();a(0,"li",20)(1,"span"),l(2),d(3,"br"),a(4,"small",21),d(5,"i",22),l(6),r(7,"translate"),a(8,"span",23),l(9),o(),l(10),r(11,"titlecase"),o()(),a(12,"button",24),r(13,"translate"),x("click",function(){let p=S(e).$implicit,I=b(3);return y(I.toggleList(p._id,!1))}),d(14,"i",25),o()()}if(i&2){let e=c.$implicit,n=b(3);t(2),g(" ",e.name," "),t(3),m("ngClass",F(15,be,e._isPaired,!e._isPaired)),t(),g(" ",s(7,9,e._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired")," \xB7 "),t(3),u(e._username),t(),g(" \xB7 ",e._main?"Homebridge":s(11,11,e._category)," "),t(2),m("disabled",n.clicked)("ngClass",F(18,ve,!n.isInList(e._id),n.isInList(e._id))),v("aria-label",s(13,13,"form.button_unpair")),t(2),m("ngClass",ee(21,ot,!n.isInList(e._id),n.isInList(e._id)&&!n.clicked,n.isInList(e._id)&&n.clicked))}}function di(i,c){if(i&1&&(a(0,"ul",16)(1,"li",17)(2,"h6",18),l(3),r(4,"translate"),o(),a(5,"p",19),l(6),r(7,"translate"),o()(),z(8,pi,15,25,"li",20,L),o()),i&2){let e=b(2);t(3),u(s(4,2,"reset.bridge_ind.head_non_child")),t(3),u(s(7,4,"reset.bridge_ind.desc_non_child")),t(2),O(e.pairingsNonChild)}}function ci(i,c){if(i&1){let e=E();a(0,"li",20)(1,"span"),l(2),d(3,"br"),a(4,"small",21),d(5,"i",22),l(6),r(7,"translate"),a(8,"span",23),l(9),o()()(),a(10,"button",24),r(11,"translate"),x("click",function(){let p=S(e).$implicit,I=b(3);return y(I.toggleList(p._id,!0))}),d(12,"i",25),o()()}if(i&2){let e=c.$implicit,n=b(3);t(2),g(" ",e.name," "),t(3),m("ngClass",F(12,be,e._isPaired,!e._isPaired)),t(),g(" ",s(7,8,e._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired")," \xB7 "),t(3),u(e._username),t(),m("disabled",n.clicked)("ngClass",F(15,ve,!n.isInList(e._id),n.isInList(e._id))),v("aria-label",s(11,10,"form.button_unpair")),t(2),m("ngClass",ee(18,ot,!n.isInList(e._id),n.isInList(e._id)&&!n.clicked,n.isInList(e._id)&&n.clicked))}}function mi(i,c){if(i&1&&(a(0,"ul",16)(1,"li",17)(2,"h6",18),l(3),r(4,"translate"),o(),a(5,"p",19),l(6),r(7,"translate"),o()(),z(8,ci,13,22,"li",20,L),o()),i&2){let e=b(2);t(3),u(s(4,2,"reset.bridge_ind.head_child_active")),t(3),u(s(7,4,"reset.bridge_ind.desc_child_active")),t(2),O(e.pairingsChildActive)}}function ui(i,c){if(i&1){let e=E();a(0,"li",20)(1,"span"),l(2),d(3,"br"),a(4,"small",21),d(5,"i",22),l(6),r(7,"translate"),a(8,"span",23),l(9),o()()(),a(10,"button",24),r(11,"translate"),x("click",function(){let p=S(e).$implicit,I=b(3);return y(I.toggleList(p._id,!1))}),d(12,"i",25),o()()}if(i&2){let e=c.$implicit,n=b(3);t(2),g(" ",e.name," "),t(3),m("ngClass",F(12,be,e._isPaired,!e._isPaired)),t(),g(" ",s(7,8,e._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired")," \xB7 "),t(3),u(e._username),t(),m("disabled",n.clicked)("ngClass",F(15,ve,!n.isInList(e._id),n.isInList(e._id))),v("aria-label",s(11,10,"form.button_unpair")),t(2),m("ngClass",ee(18,si,!n.isInList(e._id),n.isInList(e._id)&&!n.clicked,n.isInList(e._id)&&n.clicked))}}function hi(i,c){if(i&1&&(a(0,"ul",16)(1,"li",17)(2,"h6",18),l(3),r(4,"translate"),o(),a(5,"p",19),l(6),r(7,"translate"),o()(),z(8,ui,13,22,"li",20,L),o()),i&2){let e=b(2);t(3),u(s(4,2,"reset.bridge_ind.head_child_stale")),t(3),u(s(7,4,"reset.bridge_ind.desc_child_stale")),t(2),O(e.pairingsChildStale)}}function _i(i,c){if(i&1&&(a(0,"div",12),d(1,"i",15),o(),h(2,di,10,6,"ul",16),h(3,mi,10,6,"ul",16),h(4,hi,10,6,"ul",16)),i&2){let e=b();t(2),_(e.pairingsNonChild.length>0?2:-1),t(),_(e.pairingsChildActive.length>0?3:-1),t(),_(e.pairingsChildStale.length>0?4:-1)}}function gi(i,c){if(i&1){let e=E();a(0,"button",26),x("click",function(){S(e);let p=b();return y(p.dismissModal())}),l(1),r(2,"translate"),o()}if(i&2){let e=b();m("disabled",e.clicked),t(),g(" ",s(2,2,"form.button_close")," ")}}function bi(i,c){if(i&1){let e=E();a(0,"button",27),x("click",function(){S(e);let p=b();return y(p.dismissModal())}),l(1),r(2,"translate"),o()}i&2&&(t(),g(" ",s(2,1,"form.button_close")," "))}function vi(i,c){if(i&1&&l(0),i&2){let e=b(3);g(" (",e.toDelete.length,") ")}}function fi(i,c){if(i&1&&(l(0),r(1,"translate"),h(2,vi,1,1)),i&2){let e=b(2);g(" ",s(1,2,"form.button_reset")," "),t(2),_(e.toDelete.length>0?2:-1)}}function Ci(i,c){i&1&&d(0,"i",29)}function xi(i,c){if(i&1){let e=E();a(0,"button",28),x("click",function(){S(e);let p=b();return y(p.removeBridges())}),h(1,fi,3,4),h(2,Ci,1,0,"i",29),o()}if(i&2){let e=b();m("disabled",!e.toDelete.length||e.clicked),t(),_(e.clicked?-1:1),t(),_(e.clicked?2:-1)}}var rt=(()=>{class i{$activeModal=C(R);$api=C(D);$router=C(U);$toastr=C(M);$translate=C(V);clicked=!1;pairingsNonChild=[];pairingsChildActive=[];pairingsChildStale=[];toDelete=[];ngOnInit(){this.loadPairings()}toggleList(e,n=!1){this.toDelete.some(p=>p.id===e)?this.toDelete=this.toDelete.filter(p=>p.id!==e):this.toDelete.push({id:e,resetPairingInfo:n})}isInList(e){return this.toDelete.some(n=>n.id===e)}removeBridges(){return this.clicked=!0,this.$api.delete("/server/pairings",{body:this.toDelete}).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("reset.bridge_ind.done"),this.$translate.instant("toast.title_success")),this.$activeModal.close(),this.$router.navigate(["/restart"],{queryParams:{restarting:!0}})},error:e=>{this.clicked=!1,console.error(e),this.$toastr.error(this.$translate.instant("reset.bridge_ind.fail"),this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}loadPairings(){return f(this,null,function*(){try{let e=(yield $(this.$api.get("/server/pairings"))).filter(n=>!n._main).sort((n,p)=>n.name.localeCompare(p.name));this.pairingsChildActive=e.filter(n=>n._category==="bridge"&&!n._couldBeStale),this.pairingsNonChild=e.filter(n=>n._category!=="bridge"),this.pairingsChildStale=e.filter(n=>n._category==="bridge"&&n._couldBeStale)}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("settings.unpair_bridge.load_error"),this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=P({type:i,selectors:[["ng-component"]],decls:17,vars:12,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"disabled"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"disabled"],[1,"text-center","mb-3"],[1,"fas","fa-circle-check","primary-text",2,"font-size","75px"],[1,"text-center","mb-0"],[1,"fas","fa-bridge","primary-text",2,"font-size","75px"],[1,"list-group","list-group-box","mt-3","mb-0"],[1,"list-group-item"],[1,"mb-1","text-center"],[1,"mb-0","small","grey-text","text-center"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"grey-text"],[1,"fas","fa-link",3,"ngClass"],[1,"font-monospace"],[1,"btn","btn-danger","m-0","ms-3",3,"click","disabled","ngClass"],[1,"fas",3,"ngClass"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[1,"fas","fa-spinner","fa-pulse"]],template:function(n,p){n&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),l(3),r(4,"translate"),o(),a(5,"button",3),r(6,"translate"),x("click",function(){return p.dismissModal()}),o()(),a(7,"div",4),h(8,li,5,3),h(9,_i,5,3),o(),a(10,"div",5)(11,"div",6),h(12,gi,3,4,"button",7),o(),a(13,"div",8),h(14,bi,3,3,"button",9),o(),a(15,"div",10),h(16,xi,3,3,"button",11),o()()()),n&2&&(t(3),u(s(4,8,"reset.bridge_ind.title")),t(2),m("disabled",p.clicked),v("aria-label",s(6,10,"form.button_close")),t(3),_(p.pairingsChildActive.length===0&&p.pairingsChildStale.length===0&&p.pairingsNonChild.length===0?8:-1),t(),_(p.pairingsChildActive.length>0||p.pairingsChildStale.length>0||p.pairingsNonChild.length>0?9:-1),t(3),_(p.pairingsChildActive.length>0||p.pairingsChildStale.length>0||p.pairingsNonChild.length>0?12:-1),t(2),_(p.pairingsChildActive.length===0&&p.pairingsChildStale.length===0&&p.pairingsNonChild.length===0?14:-1),t(2),_(p.pairingsChildActive.length>0||p.pairingsChildStale.length>0||p.pairingsNonChild.length>0?16:-1))},dependencies:[j,te,A],encapsulation:2})}return i})();function Si(i,c){if(i&1){let e=E();a(0,"li",9)(1,"div")(2,"span",16),l(3),o(),d(4,"br"),a(5,"span",17),l(6),o()(),a(7,"span")(8,"input",18),ke("ngModelChange",function(p){let I=S(e).$implicit;return Ie(I.selected,p)||(I.selected=p),y(p)}),x("ngModelChange",function(){S(e);let p=b();return y(p.onAdapterSelectionChange())}),o(),d(9,"label",19),o()()}if(i&2){let e=c.$implicit;t(3),u(e.ip4||e.ip6),t(3),u(e.iface),t(2),m("id","adapter"+e.iface),ye("ngModel",e.selected),t(),m("for","adapter"+e.iface)}}var st=(()=>{class i{$activeModal=C(R);adaptersOriginal=[];adaptersAvailable=[];adaptersSelected=[];isUnchanged=!0;ngOnInit(){this.adaptersAvailable.forEach(e=>{e.selected=this.adaptersSelected.some(n=>n.iface===e.iface)}),this.adaptersOriginal=this.adaptersSelected.map(e=>e.iface)}onAdapterSelectionChange(){this.isUnchanged=this.adaptersOriginal.length===this.adaptersAvailable.filter(e=>e.selected).length&&this.adaptersOriginal.every(e=>this.adaptersAvailable.some(n=>n.iface===e&&n.selected))}submit(){this.$activeModal.close(this.adaptersAvailable.filter(e=>e.selected).map(e=>e.iface))}closeAndReset(){this.adaptersAvailable.forEach(e=>{e.selected=this.adaptersOriginal.includes(e.iface)}),this.isUnchanged=!0,this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=P({type:i,selectors:[["ng-component"]],inputs:{adaptersAvailable:"adaptersAvailable",adaptersSelected:"adaptersSelected"},decls:28,vars:19,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-ethernet","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"],[1,"font-monospace"],[1,"font-monospace","grey-text"],["type","checkbox",1,"rendux-input",3,"ngModelChange","id","ngModel"],[1,"rendux-label","ms-3",3,"for"]],template:function(n,p){n&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),l(3),r(4,"translate"),o(),a(5,"button",3),r(6,"translate"),x("click",function(){return p.closeAndReset()}),o()(),a(7,"div",4)(8,"div",5),d(9,"i",6),o(),a(10,"ul",7)(11,"li"),l(12),r(13,"translate"),o()(),a(14,"ul",8),z(15,Si,10,5,"li",9,L),o()(),a(17,"div",10)(18,"div",11)(19,"button",12),r(20,"translate"),x("click",function(){return p.closeAndReset()}),l(21),r(22,"translate"),o()(),d(23,"div",13),a(24,"div",14)(25,"button",15),x("click",function(){return p.submit()}),l(26),r(27,"translate"),o()()()()),n&2&&(t(3),u(s(4,7,"settings.network.title_network_interfaces")),t(2),v("aria-label",s(6,9,"form.button_close")),t(7),u(s(13,11,"settings.network.message_network_interface")),t(3),O(p.adaptersAvailable),t(4),v("aria-label",s(20,13,"form.button_close")),t(2),g(" ",s(22,15,"form.button_close")," "),t(4),m("disabled",p.isUnchanged),t(),g(" ",s(27,17,"form.button_save")," "))},dependencies:[ae,ie,ne,Fe,A],encapsulation:2})}return i})();var yi=["wallpaperInput"],Ii=i=>({maxFileSizeText:i});function ki(i,c){if(i&1){let e=E();T(0,"div",10),H(1,"img",20),T(2,"button",21),r(3,"translate"),W("click",function(){S(e);let p=b();return y(p.clearWallpaper())}),H(4,"i",22),B()()}if(i&2){let e=b();t(),K("src",e.wallpaperUrl,fe),t(),v("aria-label",s(3,2,"form.button_delete"))}}function Ei(i,c){i&1&&H(0,"div",11)}var lt=(()=>{class i{$activeModal=C(R);$api=C(D);$settings=C(Y);$toastr=C(M);$translate=C(V);clicked=!1;maxFileSizeText=globalThis.backup.maxBackupSizeText;selectedFile;wallpaperUrl=null;originalWallpaperUrl=null;wallpaperInput;ngOnInit(){this.$settings.env.customWallpaperHash&&(this.wallpaperUrl=`${ze.api.base}/auth/wallpaper/${this.$settings.env.customWallpaperHash}`,this.originalWallpaperUrl=this.wallpaperUrl)}onFileChange(e){if(e.length){this.selectedFile=e[0];let n=new FileReader;n.onload=p=>{this.wallpaperUrl=p.target.result},n.readAsDataURL(this.selectedFile)}else delete this.selectedFile,this.wallpaperUrl=this.originalWallpaperUrl}saveWallpaper(){if(this.clicked=!0,this.selectedFile){let e=new FormData;e.append("wallpaper",this.selectedFile,this.selectedFile.name),this.$api.post("/server/wallpaper",e).subscribe({next:()=>{this.$settings.setItem("wallpaper",`ui-wallpaper.${this.selectedFile.name.split(".").pop()}`),this.$activeModal.close(),this.$toastr.success(this.$translate.instant("settings.display.wallpaper_success"),this.$translate.instant("toast.title_success"))},error:n=>{console.error(n),this.$toastr.error(n.error?.message,this.$translate.instant("toast.title_error")),this.clicked=!1}})}else this.$api.delete("/server/wallpaper").subscribe({next:()=>{this.$activeModal.close()},error:e=>{console.error(e),this.$toastr.error(e.error?.message,this.$translate.instant("toast.title_error")),this.clicked=!1}})}clearWallpaper(){this.selectedFile=null,this.wallpaperUrl=this.wallpaperUrl===this.originalWallpaperUrl?null:this.originalWallpaperUrl,this.wallpaperInput.nativeElement.value=""}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=P({type:i,selectors:[["ng-component"]],viewQuery:function(n,p){if(n&1&&Ce(yi,5),n&2){let I;xe(I=Se())&&(p.wallpaperInput=I.first)}},decls:36,vars:28,consts:[["wallpaperInput",""],[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-image","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"mb-3","text-center"],[1,"position-relative","d-inline-block"],[1,"gradient","anim","rounded",2,"height","200px","width","350px","margin","0 auto"],[1,"mb-0"],["type","file","id","wallpaper","accept","image/*",1,"form-control",3,"change"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"],["alt","Current Wallpaper",1,"img-fluid","rounded","mx-auto","d-block",2,"height","200px",3,"src"],[1,"btn","btn-danger","position-absolute",2,"top","10px","right","10px",3,"click"],[1,"fas","fa-trash"]],template:function(n,p){if(n&1){let I=E();T(0,"div",1)(1,"div",2)(2,"h5",3),l(3),r(4,"translate"),B(),T(5,"button",4),r(6,"translate"),W("click",function(){return S(I),y(p.dismissModal())}),B()(),T(7,"div",5)(8,"div",6),H(9,"i",7),B(),T(10,"ul",8)(11,"li"),l(12),r(13,"translate"),B(),T(14,"li"),l(15),r(16,"translate"),B(),T(17,"li"),l(18),r(19,"translate"),B()(),T(20,"div",9),h(21,ki,5,4,"div",10)(22,Ei,1,0,"div",11),B(),T(23,"div",12)(24,"input",13,0),W("change",function(q){return S(I),y(p.onFileChange(q.target.files))}),B()()(),T(26,"div",14)(27,"div",15)(28,"button",16),W("click",function(){return S(I),y(p.dismissModal())}),l(29),r(30,"translate"),B()(),H(31,"div",17),T(32,"div",18)(33,"button",19),W("click",function(){return S(I),y(p.saveWallpaper())}),l(34),r(35,"translate"),B()()()()}n&2&&(t(3),u(s(4,11,"settings.display.wallpaper")),t(2),K("disabled",p.clicked),v("aria-label",s(6,13,"form.button_close")),t(7),u(s(13,15,"settings.display.wallpaper_intro")),t(3),u(G(16,17,"settings.display.wallpaper_rule",N(26,Ii,p.maxFileSizeText))),t(3),u(s(19,20,"settings.display.wallpaper_rule2")),t(3),_(p.wallpaperUrl?21:22),t(7),K("disabled",p.clicked),t(),g(" ",s(30,22,"form.button_close")," "),t(4),K("disabled",p.wallpaperUrl===p.originalWallpaperUrl||p.clicked),t(),g(" ",s(35,24,"form.button_save")," "))},dependencies:[oe,A],styles:[".anim[_ngcontent-%COMP%]{-webkit-animation:_ngcontent-%COMP%_gradient 20s ease infinite;-moz-animation:gradient 20s ease infinite;-o-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%}}"]})}return i})();var Z=(i,c)=>({"fa-chevron-down":i,"fa-chevron-right":c}),J=i=>({"is-invalid":i}),wi=i=>({link:i}),Bi=(i,c)=>({"badge-danger":i,"badge-info":c});function Ti(i,c){i&1&&d(0,"app-spinner")}function $i(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Fi(i,c){if(i&1){let e=E();a(0,"ul",8)(1,"li",18)(2,"span"),l(3),r(4,"translate"),o(),a(5,"div",19),d(6,"input",20),r(7,"translate"),h(8,$i,1,1,"i",21),o()(),a(9,"li",22)(10,"span",23),l(11),r(12,"translate"),o(),a(13,"button",24),r(14,"translate"),x("click",function(){S(e);let p=b(2);return y(p.openBackupModal())}),d(15,"i",25),o()(),a(16,"li",22)(17,"span",23),l(18),r(19,"translate"),o(),a(20,"button",24),r(21,"translate"),x("click",function(){S(e);let p=b(2);return y(p.openConfigBackup())}),d(22,"i",25),o()(),a(23,"li",22)(24,"span",23),l(25),r(26,"translate"),o(),a(27,"a",26),r(28,"translate"),d(29,"i",25),o()()()}if(i&2){let e=b(2);t(3),u(s(4,11,"settings.name")),t(3),m("formControl",e.hbNameFormControl)("ngClass",N(27,J,e.hbNameIsInvalid)),v("aria-label",s(7,13,"settings.name")),t(2),_(e.hbNameIsSaving?8:-1),t(3),g(" ",s(12,15,"backup.title_backup")," "),t(2),v("aria-label",s(14,17,"backup.title_backup")),t(5),g(" ",s(19,19,"config.restore.title")," "),t(2),v("aria-label",s(21,21,"config.restore.title")),t(5),g(" ",s(26,23,"menu.tooltip_user_accounts")," "),t(2),v("aria-label",s(28,25,"menu.tooltip_user_accounts"))}}function Pi(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Ai(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Ri(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Vi(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Mi(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Di(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Ni(i,c){if(i&1){let e=E();a(0,"ul",9)(1,"li",18),l(2),r(3,"translate"),a(4,"div",19)(5,"select",27)(6,"option",28),l(7),r(8,"translate"),o(),a(9,"option",29),l(10,"Bulgarian (bg)"),o(),a(11,"option",30),l(12,"Catalan (ca)"),o(),a(13,"option",31),l(14,"Chinese - Simplified (zh-CN)"),o(),a(15,"option",32),l(16,"Chinese - Traditional (zh-TW)"),o(),a(17,"option",33),l(18,"Czech (cs)"),o(),a(19,"option",34),l(20,"Dutch (nl)"),o(),a(21,"option",35),l(22,"English (en)"),o(),a(23,"option",36),l(24,"Finnish (fi)"),o(),a(25,"option",37),l(26,"French (fr)"),o(),a(27,"option",38),l(28,"German (de)"),o(),a(29,"option",39),l(30,"Hebrew (he)"),o(),a(31,"option",40),l(32,"Hungarian (hu)"),o(),a(33,"option",41),l(34,"Indonesian (id)"),o(),a(35,"option",42),l(36,"Italian (it)"),o(),a(37,"option",43),l(38,"Japanese (ja)"),o(),a(39,"option",44),l(40,"Korean (ko)"),o(),a(41,"option",45),l(42,"Macedonian (mk)"),o(),a(43,"option",46),l(44,"Norwegian (no)"),o(),a(45,"option",47),l(46,"Polish (pl)"),o(),a(47,"option",48),l(48,"Portuguese (Brazil)"),o(),a(49,"option",49),l(50,"Portuguese (Portugal)"),o(),a(51,"option",50),l(52,"Russian (ru)"),o(),a(53,"option",51),l(54,"Slovenian (sl)"),o(),a(55,"option",52),l(56,"Spanish (es)"),o(),a(57,"option",53),l(58,"Swedish (sv)"),o(),a(59,"option",54),l(60,"Thai (th)"),o(),a(61,"option",55),l(62,"Turkish (tr)"),o(),a(63,"option",56),l(64,"Ukrainian (uk)"),o()(),h(65,Pi,1,1,"i",21),o()(),a(66,"li",18),l(67),r(68,"translate"),a(69,"div",19)(70,"select",27)(71,"option",57),l(72),r(73,"translate"),o(),a(74,"option",58),l(75),r(76,"translate"),o(),a(77,"option",59),l(78),r(79,"translate"),o(),a(80,"option",60),l(81),r(82,"translate"),o(),a(83,"option",61),l(84),r(85,"translate"),o(),a(86,"option",62),l(87),r(88,"translate"),o(),a(89,"option",63),l(90),r(91,"translate"),o(),a(92,"option",64),l(93),r(94,"translate"),o(),a(95,"option",65),l(96),r(97,"translate"),o(),a(98,"option",66),l(99),r(100,"translate"),o(),a(101,"option",67),l(102),r(103,"translate"),o(),a(104,"option",68),l(105),r(106,"translate"),o(),a(107,"option",69),l(108),r(109,"translate"),o()(),h(110,Ai,1,1,"i",21),o()(),a(111,"li",18),l(112),r(113,"translate"),a(114,"div",19)(115,"select",27)(116,"option",28),l(117),r(118,"translate"),o(),a(119,"option",70),l(120),r(121,"translate"),o(),a(122,"option",71),l(123),r(124,"translate"),o()(),h(125,Ri,1,1,"i",21),o()(),a(126,"li",18),l(127),r(128,"translate"),a(129,"div",19)(130,"select",27)(131,"option",72),l(132),r(133,"translate"),o(),a(134,"option",73),l(135),r(136,"translate"),o()(),h(137,Vi,1,1,"i",21),o()(),a(138,"li",18),l(139),r(140,"translate"),a(141,"div",19)(142,"select",27)(143,"option",74),l(144),r(145,"translate"),o(),a(146,"option",75),l(147),r(148,"translate"),o()(),h(149,Mi,1,1,"i",21),o()(),a(150,"li",22)(151,"span"),l(152),r(153,"translate"),o(),a(154,"div",76)(155,"div",77),d(156,"input",78),r(157,"translate"),d(158,"label",79),o(),h(159,Di,1,1,"i",21),o()(),a(160,"li",22)(161,"span",23),l(162),r(163,"translate"),o(),a(164,"button",24),r(165,"translate"),x("click",function(){S(e);let p=b(2);return y(p.openWallpaperModal())}),d(166,"i",25),o()()()}if(i&2){let e=b(2);t(2),g(" ",s(3,42,"settings.display.lang")," "),t(3),m("formControl",e.uiLangFormControl),t(2),u(s(8,44,"form.select.auto")),t(58),_(e.uiLangIsSaving?65:-1),t(2),g(" ",s(68,46,"settings.display.theme")," "),t(3),m("formControl",e.uiThemeFormControl),t(2),u(s(73,48,"settings.display.orange")),t(3),u(s(76,50,"settings.display.red")),t(3),u(s(79,52,"settings.display.pink")),t(3),u(s(82,54,"settings.display.purple")),t(3),u(s(85,56,"settings.display.deep_purple")),t(3),u(s(88,58,"settings.display.indigo")),t(3),u(s(91,60,"settings.display.blue")),t(3),u(s(94,62,"settings.display.bluegrey")),t(3),u(s(97,64,"settings.display.cyan")),t(3),u(s(100,66,"settings.display.green")),t(3),u(s(103,68,"settings.display.teal")),t(3),u(s(106,70,"settings.display.grey")),t(3),u(s(109,72,"settings.display.brown")),t(2),_(e.uiThemeIsSaving?110:-1),t(2),g(" ",s(113,74,"settings.display.lighting_mode")," "),t(3),m("formControl",e.uiLightFormControl),t(2),u(s(118,76,"form.select.auto")),t(3),u(s(121,78,"settings.display.light")),t(3),u(s(124,80,"settings.display.dark")),t(2),_(e.uiLightIsSaving?125:-1),t(2),g(" ",s(128,82,"settings.display.menu_mode")," "),t(3),m("formControl",e.uiMenuFormControl),t(2),u(s(133,84,"settings.display.menu_default")),t(3),u(s(136,86,"settings.display.menu_freeze")),t(2),_(e.uiMenuIsSaving?137:-1),t(2),g(" ",s(140,88,"settings.display.temp_units")," "),t(3),m("formControl",e.uiTempFormControl),t(2),u(s(145,90,"settings.display.temp_units.c")),t(3),u(s(148,92,"settings.display.temp_units.f")),t(2),_(e.uiTempIsSaving?149:-1),t(3),g(" ",s(153,94,"settings.display.show_betas")," "),t(4),m("formControl",e.uiAlwaysShowBetasFormControl),v("aria-label",s(157,96,"settings.display.show_betas")),t(3),_(e.uiAlwaysShowBetasIsSaving?159:-1),t(3),u(s(163,98,"settings.display.wallpaper")),t(2),v("aria-label",s(165,100,"settings.display.wallpaper"))}}function Li(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function zi(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Oi(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Hi(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Ui(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Wi(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Ki(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Gi(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function ji(i,c){if(i&1&&(a(0,"li",18)(1,"span"),l(2),r(3,"translate"),d(4,"br"),a(5,"small",80),l(6),r(7,"translate"),o()(),a(8,"div",19),d(9,"input",96),r(10,"translate"),h(11,Gi,1,1,"i",21),o()()),i&2){let e=b(4);t(2),g(" ",s(3,5,"settings.linux.temp")),t(4),u(s(7,7,"settings.linux.temp_desc")),t(3),m("formControl",e.uiTempFileFormControl),v("aria-label",s(10,9,"settings.linux.temp")),t(2),_(e.uiTempFileIsSaving?11:-1)}}function qi(i,c){if(i&1&&(a(0,"li",18)(1,"span"),l(2),r(3,"translate"),d(4,"br"),a(5,"small",80),l(6),r(7,"translate"),o()(),a(8,"div",19),d(9,"input",94),r(10,"translate"),h(11,Wi,1,1,"i",21),o()(),a(12,"li",18)(13,"span"),l(14),r(15,"translate"),d(16,"br"),a(17,"small",80),l(18),r(19,"translate"),o()(),a(20,"div",19),d(21,"input",95),r(22,"translate"),h(23,Ki,1,1,"i",21),o()(),h(24,ji,12,11,"li",18)),i&2){let e=b(3);t(2),g(" ",s(3,11,"settings.linux.shutdown")),t(4),u(s(7,13,"settings.linux.shutdown_desc")),t(3),m("formControl",e.hbLinuxShutdownFormControl),v("aria-label",s(10,15,"settings.linux.shutdown")),t(2),_(e.hbLinuxShutdownIsSaving?11:-1),t(3),g(" ",s(15,17,"settings.linux.restart")),t(4),u(s(19,19,"settings.linux.restart_desc")),t(3),m("formControl",e.hbLinuxRestartFormControl),v("aria-label",s(22,21,"settings.linux.restart")),t(2),_(e.hbLinuxRestartIsSaving?23:-1),t(),_(e.runningOnRaspberryPi?24:-1)}}function Qi(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Ji(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Xi(i,c){i&1&&(a(0,"li",22)(1,"span"),l(2),r(3,"translate"),d(4,"br"),a(5,"small",80),l(6),r(7,"translate"),o()(),a(8,"a",97),r(9,"translate"),d(10,"i",25),o()()),i&2&&(t(2),g(" ",s(3,3,"menu.docker.startup_script")),t(4),u(s(7,5,"platform.docker.script_help")),t(2),v("aria-label",s(9,7,"menu.docker.startup_script")))}function Yi(i,c){if(i&1&&(a(0,"ul",10)(1,"li",22)(2,"span"),l(3),r(4,"translate"),a(5,"code"),l(6,"-D"),o(),d(7,"br"),a(8,"small",80),l(9),r(10,"translate"),o()(),a(11,"div",76)(12,"div",77),d(13,"input",81),r(14,"translate"),d(15,"label",82),o(),h(16,Li,1,1,"i",21),o()(),a(17,"li",22)(18,"span"),l(19),r(20,"translate"),a(21,"code"),l(22,"-I"),o(),d(23,"br"),a(24,"small",80),l(25),r(26,"translate"),o()(),a(27,"div",76)(28,"div",77),d(29,"input",83),r(30,"translate"),d(31,"label",84),o(),h(32,zi,1,1,"i",21),o()(),a(33,"li",22)(34,"span"),l(35),r(36,"translate"),a(37,"code"),l(38,"-K"),o(),d(39,"br"),a(40,"small",80),l(41),r(42,"translate"),o()(),a(43,"div",76)(44,"div",77),d(45,"input",85),r(46,"translate"),d(47,"label",86),o(),h(48,Oi,1,1,"i",21),o()(),a(49,"li",22)(50,"span"),l(51),r(52,"translate"),d(53,"br"),a(54,"small",80),l(55),r(56,"translate"),o()(),a(57,"div",76)(58,"div",77),d(59,"input",87),r(60,"translate"),d(61,"label",88),o(),h(62,Hi,1,1,"i",21),o()(),a(63,"li",18)(64,"span"),l(65),r(66,"translate"),d(67,"br"),a(68,"small",80),l(69),r(70,"translate"),o()(),a(71,"div",19),d(72,"input",89),r(73,"translate"),h(74,Ui,1,1,"i",21),o()(),h(75,qi,25,23),a(76,"li",18)(77,"span")(78,"span",90),l(79,"DEBUG"),o(),d(80,"br")(81,"small",91),r(82,"translate"),o(),a(83,"div",19),d(84,"input",92),h(85,Qi,1,1,"i",21),o()(),a(86,"li",18)(87,"span")(88,"span",90),l(89,"NODE_OPTIONS"),o(),d(90,"br"),a(91,"small",80),l(92),r(93,"translate"),o()(),a(94,"div",19),d(95,"input",93),h(96,Ji,1,1,"i",21),o()(),h(97,Xi,11,9,"li",22),o()),i&2){let e=b(2);t(3),g(" ",s(4,33,"settings.startup.debug")," "),t(6),g(" ",s(10,35,e.isHbV2?"settings.startup.debug_desc_v2":"settings.startup.debug_desc_v1")," "),t(4),m("formControl",e.hbDebugFormControl),v("aria-label",s(14,37,"settings.startup.debug")),t(3),_(e.hbDebugIsSaving?16:-1),t(3),g(" ",s(20,39,"settings.startup.insecure")," "),t(6),u(s(26,41,"settings.startup.insecure_desc")),t(4),m("formControl",e.hbInsecureFormControl),v("aria-label",s(30,43,"settings.startup.insecure")),t(3),_(e.hbInsecureIsSaving?32:-1),t(3),g(" ",s(36,45,"settings.startup.keep_accessories")," "),t(6),u(s(42,47,"settings.startup.keep_accessories_desc")),t(4),m("formControl",e.hbKeepFormControl),v("aria-label",s(46,49,"settings.startup.keep_accessories")),t(3),_(e.hbKeepIsSaving?48:-1),t(3),g(" ",s(52,51,"settings.startup.metrics")),t(4),u(s(56,53,"settings.startup.metrics_desc")),t(4),m("formControl",e.uiMetricsFormControl),v("aria-label",s(60,55,"settings.startup.metrics")),t(3),_(e.uiMetricsIsSaving?62:-1),t(3),g(" ",s(66,57,"settings.network.hb_package")),t(4),u(s(70,59,"settings.network.hb_package_desc")),t(3),m("formControl",e.hbPackageFormControl),v("aria-label",s(73,61,"settings.network.hb_package")),t(2),_(e.hbPackageIsSaving?74:-1),t(),_(e.platform==="linux"?75:-1),t(6),m("innerHTML",G(82,63,"settings.service.debug_tooltip",N(68,wi,e.linkDebug)),he),t(3),m("formControl",e.hbEnvDebugFormControl),t(),_(e.hbEnvDebugIsSaving?85:-1),t(7),u(s(93,66,"settings.service.node_tooltip")),t(3),m("formControl",e.hbEnvNodeFormControl),t(),_(e.hbEnvNodeIsSaving?96:-1),t(),_(e.runningInDocker?97:-1)}}function Zi(i,c){i&1&&d(0,"i",110)}function en(i,c){if(i&1&&(a(0,"span",99),h(1,Zi,1,0,"i",110),l(2),a(3,"span",111),l(4),r(5,"translate"),o()()),i&2){let e=c.$implicit;m("ngClass",F(6,Bi,e.missing,!e.missing)),t(),_(e.missing?1:-1),t(),g(" ",e.iface,": "),t(2),u(e.missing?s(5,4,"settings.mdns_advertiser_not_connected"):e.ip4||e.ip6)}}function tn(i,c){i&1&&(a(0,"option",101),l(1),r(2,"translate"),o()),i&2&&(t(),g("Avahi (",s(2,1,"settings.mdns_advertiser_rec"),")"))}function nn(i,c){i&1&&(a(0,"option",104),l(1),r(2,"translate"),o()),i&2&&(t(),g("systemd-resolved (",s(2,1,"settings.mdns_advertiser_exp"),")"))}function an(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function on(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function rn(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function sn(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function ln(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function pn(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function dn(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function cn(i,c){if(i&1){let e=E();a(0,"ul",11)(1,"li",22)(2,"span",23),l(3),r(4,"translate"),d(5,"br"),a(6,"div",98),l(7),r(8,"translate"),o(),z(9,en,6,9,"span",99,L),o(),a(11,"button",100),r(12,"translate"),x("click",function(){S(e);let p=b(2);return y(p.selectNetworkInterfaces())}),d(13,"i",25),o()(),a(14,"li",18)(15,"span"),l(16),r(17,"translate"),d(18,"br"),a(19,"small",80),l(20),r(21,"translate"),o()(),a(22,"div",19)(23,"select",27),r(24,"translate"),h(25,tn,3,3,"option",101),a(26,"option",102),l(27),r(28,"translate"),o(),a(29,"option",103),l(30,"Bonjour HAP"),o(),h(31,nn,3,3,"option",104),o(),h(32,an,1,1,"i",21),o()(),a(33,"li",18)(34,"span"),l(35),r(36,"translate"),d(37,"br"),a(38,"small",80),l(39),r(40,"translate"),o()(),a(41,"div",19),d(42,"input",105),r(43,"translate"),h(44,on,1,1,"i",21),o()(),a(45,"li",18)(46,"span"),l(47),r(48,"translate"),d(49,"br"),a(50,"small",80),l(51),r(52,"translate"),o()(),a(53,"div",19),d(54,"input",106),r(55,"translate"),h(56,rn,1,1,"i",21),o()(),a(57,"li",18)(58,"span"),l(59),r(60,"translate"),d(61,"br"),a(62,"small",80),l(63),r(64,"translate"),o()(),a(65,"div",19),d(66,"input",105),r(67,"translate"),h(68,sn,1,1,"i",21),o()(),a(69,"li",18)(70,"span"),l(71),r(72,"translate"),d(73,"br"),a(74,"small",80),l(75),r(76,"translate"),o()(),a(77,"div",19),d(78,"input",105),r(79,"translate"),h(80,ln,1,1,"i",21),o()(),a(81,"li",18)(82,"span"),l(83),r(84,"translate"),d(85,"br")(86,"small",107),r(87,"translate"),o(),a(88,"div",19),d(89,"input",108),r(90,"translate"),h(91,pn,1,1,"i",21),o()(),a(92,"li",18)(93,"span"),l(94),r(95,"translate"),d(96,"br"),a(97,"small",80),l(98),r(99,"translate"),o()(),a(100,"div",19),d(101,"input",109),r(102,"translate"),h(103,dn,1,1,"i",21),o()()()}if(i&2){let e=b(2);t(3),g(" ",s(4,46,"settings.network.title_network_interfaces")),t(4),u(s(8,48,"settings.network.message_network_interface")),t(2),O(e.adaptersSelected),t(2),m("disabled",!e.adaptersAvailable.length),v("aria-label",s(12,50,"settings.network.title_network_interfaces")),t(5),g(" ",s(17,52,"settings.mdns_advertiser")),t(4),u(s(21,54,"settings.mdns_advertiser_help")),t(3),m("formControl",e.hbMDnsFormControl),v("aria-label",s(24,56,"settings.mdns_advertiser")),t(2),_(e.showAvahiMdnsOption?25:-1),t(2),g(" Ciao ",e.showAvahiMdnsOption?"":"("+s(28,58,"settings.mdns_advertiser_rec")+")"," "),t(4),_(e.showResolvedMdnsOption?31:-1),t(),_(e.hbMDnsIsSaving?32:-1),t(3),g(" ",s(36,60,"settings.network.port_hb")),t(4),u(s(40,62,"settings.network.port_hb_desc")),t(3),m("formControl",e.hbPortFormControl)("ngClass",N(96,J,e.hbPortIsInvalid)),v("aria-label",s(43,64,"settings.network.port_hb")),t(2),_(e.hbPortIsSaving?44:-1),t(3),g(" ",s(48,66,"settings.network.port_ui")),t(4),u(s(52,68,"settings.network.port_ui_desc")),t(3),m("formControl",e.uiPortFormControl)("ngClass",N(98,J,e.uiPortIsInvalid)),v("aria-label",s(55,70,"settings.network.port_ui")),t(2),_(e.uiPortIsSaving?56:-1),t(3),g(" ",s(60,72,"settings.network.port_start")),t(4),u(s(64,74,"settings.network.port_start_desc")),t(3),m("formControl",e.hbStartPortFormControl)("ngClass",N(100,J,e.hbStartPortIsInvalid)),v("aria-label",s(67,76,"settings.network.port_start")),t(2),_(e.hbStartPortIsSaving?68:-1),t(3),g(" ",s(72,78,"settings.network.port_end")),t(4),u(s(76,80,"settings.network.port_end_desc")),t(3),m("formControl",e.hbEndPortFormControl)("ngClass",N(102,J,e.hbEndPortIsInvalid)),v("aria-label",s(79,82,"settings.network.port_end")),t(2),_(e.hbEndPortIsSaving?80:-1),t(3),g(" ",s(84,84,"settings.network.host")),t(3),m("innerHtml",s(87,86,"settings.network.host_desc"),he),t(3),m("formControl",e.uiHostFormControl),v("aria-label",s(90,88,"settings.network.host")),t(2),_(e.uiHostIsSaving?91:-1),t(3),g(" ",s(95,90,"settings.network.proxy")),t(4),u(s(99,92,"settings.network.proxy_desc")),t(3),m("formControl",e.uiProxyHostFormControl),v("aria-label",s(102,94,"settings.network.proxy")),t(2),_(e.uiProxyHostIsSaving?103:-1)}}function mn(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function un(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function hn(i,c){if(i&1&&(a(0,"li",18)(1,"span"),l(2),r(3,"translate"),d(4,"br"),a(5,"small",80),l(6),r(7,"translate"),o()(),a(8,"div",19),d(9,"input",113),r(10,"translate"),h(11,un,1,1,"i",21),o()()),i&2){let e=b(3);t(2),g(" ",s(3,6,"settings.terminal.log_truncate")),t(4),u(s(7,8,"settings.terminal.log_truncate_desc")),t(3),m("formControl",e.hbLogTruncateFormControl)("ngClass",N(12,J,e.hbLogTruncateIsInvalid)),v("aria-label",s(10,10,"settings.terminal.log_truncate")),t(2),_(e.hbLogTruncateIsSaving?11:-1)}}function _n(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function gn(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function bn(i,c){if(i&1&&(a(0,"li",22)(1,"span"),l(2),r(3,"translate"),a(4,"span",114),l(5),r(6,"translate"),o(),d(7,"br"),a(8,"small",80),l(9),r(10,"translate"),o()(),a(11,"div",76)(12,"div",77),d(13,"input",117),r(14,"translate"),d(15,"label",118),o(),h(16,gn,1,1,"i",21),o()()),i&2){let e=b(4);t(2),g(" ",s(3,6,"settings.terminal.warning")," "),t(3),u(s(6,8,"common.labels.beta")),t(4),u(s(10,10,"settings.terminal.warning_help")),t(4),m("formControl",e.uiTerminalHideWarningFormControl),v("aria-label",s(14,12,"settings.terminal.warning")),t(3),_(e.uiTerminalHideWarningIsSaving?16:-1)}}function vn(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function fn(i,c){if(i&1&&(a(0,"li",18)(1,"div",119)(2,"span"),l(3),r(4,"translate"),a(5,"span",114),l(6),r(7,"translate"),o()(),a(8,"div",120),l(9),r(10,"translate"),o()(),a(11,"div",19),d(12,"input",121),r(13,"translate"),h(14,vn,1,1,"i",21),o()()),i&2){let e=b(4);t(3),g(" ",s(4,7,"settings.terminal.buffer_size")," "),t(3),u(s(7,9,"common.labels.beta")),t(3),u(s(10,11,"settings.terminal.buffer_size_help")),t(3),m("formControl",e.uiTerminalBufferSizeFormControl)("ngClass",N(15,J,e.uiTerminalBufferSizeIsInvalid)),v("aria-label",s(13,13,"settings.terminal.buffer_size")),t(2),_(e.uiTerminalBufferSizeIsSaving?14:-1)}}function Cn(i,c){if(i&1&&(a(0,"li",22)(1,"span"),l(2),r(3,"translate"),a(4,"span",114),l(5),r(6,"translate"),o(),d(7,"br"),a(8,"small",80),l(9),r(10,"translate"),o()(),a(11,"div",76)(12,"div",77),d(13,"input",115),r(14,"translate"),d(15,"label",116),o(),h(16,_n,1,1,"i",21),o()(),h(17,bn,17,14,"li",22),h(18,fn,15,17,"li",18)),i&2){let e=b(3);t(2),g(" ",s(3,8,"settings.terminal.persistence")," "),t(3),u(s(6,10,"common.labels.beta")),t(4),u(s(10,12,"settings.terminal.persistence_help")),t(4),m("formControl",e.uiTerminalPersistenceFormControl),v("aria-label",s(14,14,"settings.terminal.persistence")),t(3),_(e.uiTerminalPersistenceIsSaving?16:-1),t(),_(e.uiTerminalPersistenceFormControl.value?-1:17),t(),_(e.uiTerminalPersistenceFormControl.value?18:-1)}}function xn(i,c){if(i&1&&(a(0,"ul",12)(1,"li",18)(2,"span"),l(3),r(4,"translate"),d(5,"br"),a(6,"small",80),l(7),r(8,"translate"),o()(),a(9,"div",19),d(10,"input",112),r(11,"translate"),h(12,mn,1,1,"i",21),o()(),h(13,hn,12,14,"li",18),h(14,Cn,19,16),o()),i&2){let e=b(2);t(3),g(" ",s(4,8,"settings.terminal.log_max")),t(4),u(s(8,10,"settings.terminal.log_max_desc")),t(3),m("formControl",e.hbLogSizeFormControl)("ngClass",N(14,J,e.hbLogSizeIsInvalid)),v("aria-label",s(11,12,"settings.terminal.log_max")),t(2),_(e.hbLogSizeIsSaving?12:-1),t(),_(e.hbLogSizeFormControl.value>0?13:-1),t(),_(e.enableTerminalAccess?14:-1)}}function Sn(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function yn(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function In(i,c){if(i&1&&(a(0,"li",18)(1,"span"),l(2),r(3,"translate"),d(4,"br"),a(5,"small",80),l(6),r(7,"translate"),o()(),a(8,"div",19),d(9,"input",127),r(10,"translate"),h(11,yn,1,1,"i",21),o()()),i&2){let e=b(3);t(2),g(" ",s(3,6,"settings.startup.session")),t(4),u(s(7,8,"settings.startup.session_desc")),t(3),m("formControl",e.uiSessionTimeoutFormControl)("ngClass",N(12,J,e.uiSessionTimeoutIsInvalid)),v("aria-label",s(10,10,"settings.startup.session")),t(2),_(e.uiSessionTimeoutIsSaving?11:-1)}}function kn(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function En(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function wn(i,c){if(i&1&&(a(0,"li",18)(1,"span"),l(2),r(3,"translate"),o(),a(4,"div",19),d(5,"input",128),r(6,"translate"),h(7,kn,1,1,"i",21),o()(),a(8,"li",18)(9,"span"),l(10),r(11,"translate"),o(),a(12,"div",19),d(13,"input",129),r(14,"translate"),h(15,En,1,1,"i",21),o()()),i&2){let e=b(3);t(2),u(s(3,8,"settings.security.key")),t(3),m("formControl",e.uiSslKeyFormControl),v("aria-label",s(6,10,"settings.security.key")),t(2),_(e.uiSslKeyIsSaving?7:-1),t(3),u(s(11,12,"settings.security.cert")),t(3),m("formControl",e.uiSslCertFormControl),v("aria-label",s(14,14,"settings.security.cert")),t(2),_(e.uiSslCertIsSaving?15:-1)}}function Bn(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Tn(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function $n(i,c){if(i&1){let e=E();a(0,"li",18)(1,"span"),l(2),r(3,"translate"),o(),a(4,"div",19),d(5,"input",130),r(6,"translate"),h(7,Bn,1,1,"i",21),o()(),a(8,"li",18)(9,"span"),l(10),r(11,"translate"),o(),a(12,"div",19)(13,"input",131),r(14,"translate"),x("focus",function(){S(e);let p=b(3);return y(p.showPfxPassphrase=!0)})("blur",function(){S(e);let p=b(3);return y(p.showPfxPassphrase=!1)}),o(),h(15,Tn,1,1,"i",21),o()()}if(i&2){let e=b(3);t(2),u(s(3,9,"settings.security.pfx")),t(3),m("formControl",e.uiSslPfxFormControl),v("aria-label",s(6,11,"settings.security.pfx")),t(2),_(e.uiSslPfxIsSaving?7:-1),t(3),u(s(11,13,"settings.security.pass")),t(3),m("type",e.showPfxPassphrase?"text":"password")("formControl",e.uiSslPassphraseFormControl),v("aria-label",s(14,15,"settings.security.pass")),t(2),_(e.uiSslPassphraseIsSaving?15:-1)}}function Fn(i,c){if(i&1){let e=E();a(0,"ul",13)(1,"li",22)(2,"span"),l(3),r(4,"translate"),d(5,"br"),a(6,"small",80),l(7),r(8,"translate"),o()(),a(9,"div",76)(10,"div",77),d(11,"input",122),r(12,"translate"),d(13,"label",123),o(),h(14,Sn,1,1,"i",21),o()(),h(15,In,12,14,"li",18),a(16,"li",18)(17,"span"),l(18),r(19,"translate"),d(20,"br"),a(21,"small",80),l(22),r(23,"translate"),o()(),a(24,"div",19)(25,"select",27),r(26,"translate"),a(27,"option",124),l(28),r(29,"translate"),o(),a(30,"option",125),l(31),r(32,"translate"),o(),a(33,"option",126),l(34),r(35,"translate"),o()()()(),h(36,wn,16,16),h(37,$n,16,17),a(38,"li",22)(39,"span",23),l(40),r(41,"translate"),d(42,"br"),a(43,"small",80),l(44),r(45,"translate"),o()(),a(46,"button",24),r(47,"translate"),x("click",function(){S(e);let p=b(2);return y(p.accessoryUiControl())}),d(48,"i",25),o()()()}if(i&2){let e=b(2);t(3),g(" ",s(4,18,"settings.security.auth")),t(4),g(" ",s(8,20,"settings.security.auth_desc")," "),t(4),m("formControl",e.uiAuthFormControl),v("aria-label",s(12,22,"settings.security.auth")),t(3),_(e.uiAuthIsSaving?14:-1),t(),_(e.uiAuthFormControl.value?15:-1),t(3),g(" ",s(19,24,"settings.security.https")),t(4),u(s(23,26,"settings.security.https_desc")),t(3),m("formControl",e.uiSslTypeFormControl),v("aria-label",s(26,28,"settings.security.https")),t(3),u(s(29,30,"accessories.control.off")),t(3),u(s(32,32,"settings.security.https_keycert")),t(3),u(s(35,34,"settings.security.https_pfx")),t(2),_(e.uiSslTypeFormControl.value==="keycert"?36:-1),t(),_(e.uiSslTypeFormControl.value==="pfx"?37:-1),t(3),g(" ",s(41,36,"settings.security.ui_control")),t(4),u(s(45,38,"settings.security.ui_control_desc")),t(2),v("aria-label",s(47,40,"settings.security.ui_control"))}}function Pn(i,c){i&1&&(a(0,"p",14),l(1),r(2,"translate"),o()),i&2&&(t(),u(s(2,1,"settings.cache.desc")))}function An(i,c){i&1&&d(0,"i",21),i&2&&m("@fadeInOut",void 0)}function Rn(i,c){if(i&1){let e=E();a(0,"ul",15)(1,"li",22)(2,"span"),l(3),r(4,"translate"),d(5,"br"),a(6,"small",80),l(7),r(8,"translate"),o()(),a(9,"div",76)(10,"div",77),d(11,"input",132),r(12,"translate"),d(13,"label",133),o(),h(14,An,1,1,"i",21),o()(),a(15,"li",22)(16,"span",23),l(17),r(18,"translate"),d(19,"br"),a(20,"small",80),l(21),r(22,"translate"),o()(),a(23,"button",24),r(24,"translate"),x("click",function(){S(e);let p=b(2);return y(p.removeSingleCachedAccessories())}),d(25,"i",25),o()(),a(26,"li",22)(27,"span",23),l(28),r(29,"translate"),d(30,"br"),a(31,"small",80),l(32),r(33,"translate"),o()(),a(34,"button",24),r(35,"translate"),x("click",function(){S(e);let p=b(2);return y(p.removeBridgeAccessories())}),d(36,"i",25),o()(),a(37,"li",22)(38,"span",23),l(39),r(40,"translate"),d(41,"br"),a(42,"small",80),l(43),r(44,"translate"),o()(),a(45,"button",24),r(46,"translate"),x("click",function(){S(e);let p=b(2);return y(p.removeAllCachedAccessories())}),d(47,"i",25),o()()()}if(i&2){let e=b(2);t(3),g(" ",s(4,14,"settings.accessory.debug")),t(4),u(s(8,16,"settings.accessory.debug_desc")),t(4),m("formControl",e.uiAccDebugFormControl),v("aria-label",s(12,18,"settings.accessory.debug")),t(3),_(e.uiAccDebugIsSaving?14:-1),t(3),g(" ",s(18,20,"reset.accessory_ind.title")),t(4),u(s(22,22,"reset.accessory_ind.desc")),t(2),v("aria-label",s(24,24,"reset.accessory_ind.title")),t(5),g(" ",s(29,26,"reset.bridge_accessories.title")),t(4),u(s(33,28,"reset.bridge_accessories.desc")),t(2),v("aria-label",s(35,30,"reset.accessory_all.title")),t(5),g(" ",s(40,32,"reset.accessory_all.title")),t(4),u(s(44,34,"reset.accessory_all.desc")),t(2),v("aria-label",s(46,36,"reset.accessory_all.title"))}}function Vn(i,c){i&1&&(a(0,"p",14),l(1),r(2,"translate"),o()),i&2&&(t(),u(s(2,1,"reset.bridges.desc")))}function Mn(i,c){if(i&1){let e=E();a(0,"ul",16)(1,"li",22)(2,"span",23),l(3),r(4,"translate"),d(5,"br"),a(6,"small",80),l(7),r(8,"translate"),o()(),a(9,"button",24),r(10,"translate"),x("click",function(){S(e);let p=b(2);return y(p.unpairAccessory())}),d(11,"i",25),o()(),a(12,"li",22)(13,"span",23),l(14),r(15,"translate"),r(16,"titlecase"),d(17,"br"),a(18,"small",80),l(19),r(20,"translate"),o()(),a(21,"button",24),r(22,"translate"),x("click",function(){S(e);let p=b(2);return y(p.resetHomebridgeState())}),d(23,"i",25),o()()()}i&2&&(t(3),g(" ",s(4,6,"reset.bridge_ind.title")),t(4),u(s(8,8,"reset.bridge_ind.desc")),t(2),v("aria-label",s(10,10,"reset.bridge_ind.title")),t(5),g(" ",s(16,14,s(15,12,"reset.bridge_all.title"))),t(5),u(s(20,16,"reset.bridge_all.desc")),t(2),v("aria-label",s(22,18,"reset.bridge_all.title")))}function Dn(i,c){if(i&1){let e=E();a(0,"div",4)(1,"div",5),x("click",function(){S(e);let p=b();return y(p.toggleSection("general"))}),a(2,"h5",6),d(3,"i",7),l(4),r(5,"translate"),o()(),h(6,Fi,30,29,"ul",8),o(),a(7,"div",4)(8,"div",5),x("click",function(){S(e);let p=b();return y(p.toggleSection("display"))}),a(9,"h5",6),d(10,"i",7),l(11),r(12,"translate"),o()(),h(13,Ni,167,102,"ul",9),o(),a(14,"div",4)(15,"div",5),x("click",function(){S(e);let p=b();return y(p.toggleSection("startup"))}),a(16,"h5",6),d(17,"i",7),l(18),r(19,"translate"),o()(),h(20,Yi,98,70,"ul",10),o(),a(21,"div",4)(22,"div",5),x("click",function(){S(e);let p=b();return y(p.toggleSection("network"))}),a(23,"h5",6),d(24,"i",7),l(25),r(26,"translate"),o()(),h(27,cn,104,104,"ul",11),o(),a(28,"div",4)(29,"div",5),x("click",function(){S(e);let p=b();return y(p.toggleSection("terminal"))}),a(30,"h5",6),d(31,"i",7),l(32),r(33,"translate"),o()(),h(34,xn,15,16,"ul",12),o(),a(35,"div",4)(36,"div",5),x("click",function(){S(e);let p=b();return y(p.toggleSection("security"))}),a(37,"h5",6),d(38,"i",7),l(39),r(40,"translate"),o()(),h(41,Fn,49,42,"ul",13),o(),a(42,"div",4)(43,"div",5),x("click",function(){S(e);let p=b();return y(p.toggleSection("cache"))}),a(44,"h5",6),d(45,"i",7),l(46),r(47,"translate"),o()(),h(48,Pn,3,3,"p",14),h(49,Rn,48,38,"ul",15),o(),a(50,"div",4)(51,"div",5),x("click",function(){S(e);let p=b();return y(p.toggleSection("reset"))}),a(52,"h5",6),d(53,"i",7),l(54),r(55,"translate"),o()(),h(56,Vn,3,3,"p",14),h(57,Mn,24,20,"ul",16),o(),d(58,"div",17)}if(i&2){let e=b();t(),v("aria-expanded",e.showFields.general?"true":"false")("aria-controls","fieldsGeneral"),t(2),m("ngClass",F(58,Z,e.showFields.general,!e.showFields.general)),t(),g(" ",s(5,42,"settings.general.title_general")," "),t(2),_(e.showFields.general?6:-1),t(2),v("aria-expanded",e.showFields.display?"true":"false")("aria-controls","fieldsDisplay"),t(2),m("ngClass",F(61,Z,e.showFields.display,!e.showFields.display)),t(),g(" ",s(12,44,"settings.general.title_display")," "),t(2),_(e.showFields.display?13:-1),t(2),v("aria-expanded",e.showFields.startup?"true":"false")("aria-controls","fieldsStartup"),t(2),m("ngClass",F(64,Z,e.showFields.startup,!e.showFields.startup)),t(),g(" ",s(19,46,"settings.title_startup_options")," "),t(2),_(e.showFields.startup?20:-1),t(2),v("aria-expanded",e.showFields.network?"true":"false")("aria-controls","fieldsNetwork"),t(2),m("ngClass",F(67,Z,e.showFields.network,!e.showFields.network)),t(),g(" ",s(26,48,"settings.network.title_network")," "),t(2),_(e.showFields.network?27:-1),t(2),v("aria-expanded",e.showFields.terminal?"true":"false")("aria-controls","fieldsTerminal"),t(2),m("ngClass",F(70,Z,e.showFields.terminal,!e.showFields.terminal)),t(),g(" ",s(33,50,"settings.network.title_terminal")," "),t(2),_(e.showFields.terminal?34:-1),t(2),v("aria-expanded",e.showFields.security?"true":"false")("aria-controls","fieldsSecurity"),t(2),m("ngClass",F(73,Z,e.showFields.security,!e.showFields.security)),t(),g(" ",s(40,52,"settings.network.title_security")," "),t(2),_(e.showFields.security?41:-1),t(2),v("aria-expanded",e.showFields.cache?"true":"false")("aria-controls","fieldsCache"),t(2),m("ngClass",F(76,Z,e.showFields.cache,!e.showFields.cache)),t(),g(" ",s(47,54,"menu.label_accessories")," "),t(2),_(e.showFields.cache?48:-1),t(),_(e.showFields.cache?49:-1),t(2),v("aria-expanded",e.showFields.reset?"true":"false")("aria-controls","fieldsReset"),t(2),m("ngClass",F(79,Z,e.showFields.reset,!e.showFields.reset)),t(),g(" ",s(55,56,"reset.bridges.title")," "),t(2),_(e.showFields.reset?56:-1),t(),_(e.showFields.reset?57:-1)}}var nr=(()=>{class i{$api=C(D);$modal=C(re);$notification=C(Ue);$router=C(U);$settings=C(Y);$terminal=C(Ke);$toastr=C(M);$translate=C(V);restartToastIsShown=!1;showFields={general:!0,display:!0,startup:!0,network:!0,security:!0,terminal:!0,reset:!0,cache:!0};loading=!0;isHbV2=!1;showAvahiMdnsOption=!1;showResolvedMdnsOption=!1;adaptersAvailable=[];adaptersSelected=[];showPfxPassphrase=!1;runningInDocker=this.$settings.env.runningInDocker;runningOnRaspberryPi=this.$settings.env.runningOnRaspberryPi;platform=this.$settings.env.platform;enableTerminalAccess=this.$settings.env.enableTerminalAccess;hbNameIsInvalid=!1;hbNameIsSaving=!1;hbNameFormControl=new w("");uiLangIsSaving=!1;uiLangFormControl=new w("");uiThemeIsSaving=!1;uiThemeFormControl=new w("");uiLightIsSaving=!1;uiLightFormControl=new w("");uiMenuIsSaving=!1;uiMenuFormControl=new w("");uiTempIsSaving=!1;uiTempFormControl=new w("");uiAlwaysShowBetasIsSaving=!1;uiAlwaysShowBetasFormControl=new w(!1);uiTerminalPersistenceIsSaving=!1;uiTerminalPersistenceFormControl=new w(!1);uiTerminalHideWarningIsSaving=!1;uiTerminalHideWarningFormControl=new w(!1);uiTerminalBufferSizeIsSaving=!1;uiTerminalBufferSizeIsInvalid=!1;uiTerminalBufferSizeFormControl=new w(globalThis.terminal.bufferSize);hbDebugIsSaving=!1;hbDebugFormControl=new w(!1);hbInsecureIsSaving=!1;hbInsecureFormControl=new w(!1);hbKeepIsSaving=!1;hbKeepFormControl=new w(!1);hbEnvDebugIsSaving=!1;hbEnvDebugFormControl=new w("");hbEnvNodeIsSaving=!1;hbEnvNodeFormControl=new w("");hbLogSizeIsInvalid=!1;hbLogSizeIsSaving=!1;hbLogSizeFormControl=new w(-1);hbLogTruncateIsInvalid=!1;hbLogTruncateIsSaving=!1;hbLogTruncateFormControl=new w(0);hbMDnsIsSaving=!1;hbMDnsFormControl=new w("");hbPortIsInvalid=!1;hbPortIsSaving=!1;hbPortFormControl=new w(0);uiPortIsInvalid=!1;uiPortIsSaving=!1;uiPortFormControl=new w(0);hbStartPortIsInvalid=!1;hbStartPortIsSaving=!1;hbStartPortFormControl=new w(0);hbEndPortIsInvalid=!1;hbEndPortIsSaving=!1;hbEndPortFormControl=new w(0);uiHostIsSaving=!1;uiHostFormControl=new w("");uiProxyHostIsSaving=!1;uiProxyHostFormControl=new w("");uiAuthIsSaving=!1;uiAuthFormControl=new $e(!0);uiSessionTimeoutIsInvalid=!1;uiSessionTimeoutIsSaving=!1;uiSessionTimeoutFormControl=new w(0);uiSslTypeFormControl=new w("off");uiSslKeyIsSaving=!1;uiSslKeyFormControl=new w("");uiSslCertIsSaving=!1;uiSslCertFormControl=new w("");uiSslPfxIsSaving=!1;uiSslPfxFormControl=new w("");uiSslPassphraseIsSaving=!1;uiSslPassphraseFormControl=new w("");hbPackageIsSaving=!1;hbPackageFormControl=new w("");uiMetricsIsSaving=!1;uiMetricsFormControl=new w(!0);uiAccDebugIsSaving=!1;uiAccDebugFormControl=new w(!1);uiTempFileIsSaving=!1;uiTempFileFormControl=new w("");hbLinuxShutdownIsSaving=!1;hbLinuxShutdownFormControl=new w("");hbLinuxRestartIsSaving=!1;hbLinuxRestartFormControl=new w("");linkDebug='<a href="https://github.com/homebridge/homebridge-config-ui-x/wiki/Debug-Common-Values" target="_blank" rel="noopener noreferrer"><i class="fa fa-external-link-alt primary-text"></i></a>';ngOnInit(){return f(this,null,function*(){this.isHbV2=this.$settings.env.homebridgeVersion.startsWith("2"),yield this.initNetworkingOptions(),yield this.initStartupSettings(),this.hbNameFormControl.patchValue(this.$settings.env.homebridgeInstanceName),this.hbNameFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.hbNameSave(e)),this.uiLangFormControl.patchValue(this.$settings.env.lang),this.uiLangFormControl.valueChanges.pipe(k(750)).subscribe(e=>this.uiLangSave(e)),this.uiThemeFormControl.patchValue(this.$settings.theme),this.uiThemeFormControl.valueChanges.pipe(k(750)).subscribe(e=>this.uiThemeSave(e)),this.uiLightFormControl.patchValue(this.$settings.lightingMode),this.uiLightFormControl.valueChanges.pipe(k(750)).subscribe(e=>this.uiLightSave(e)),this.uiMenuFormControl.patchValue(this.$settings.menuMode),this.uiMenuFormControl.valueChanges.pipe(k(750)).subscribe(e=>this.uiMenuSave(e)),this.uiTempFormControl.patchValue(this.$settings.env.temperatureUnits),this.uiTempFormControl.valueChanges.pipe(k(750)).subscribe(e=>this.uiTempSave(e)),this.uiAlwaysShowBetasFormControl.patchValue(this.$settings.env.plugins?.alwaysShowBetas||!1),this.uiAlwaysShowBetasFormControl.valueChanges.pipe(k(750)).subscribe(e=>this.uiAlwaysShowBetasSave(e)),this.uiTerminalPersistenceFormControl.patchValue(this.$settings.env.terminal?.persistence),this.uiTerminalPersistenceFormControl.valueChanges.pipe(k(750)).subscribe(e=>this.uiTerminalPersistenceSave(e)),this.uiTerminalHideWarningFormControl.patchValue(this.$settings.env.terminal?.hideWarning),this.uiTerminalHideWarningFormControl.valueChanges.pipe(k(750)).subscribe(e=>this.uiTerminalHideWarningSave(e)),this.uiTerminalBufferSizeFormControl.patchValue(this.$settings.env.terminal?.bufferSize),this.uiTerminalBufferSizeFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.uiTerminalBufferSizeSave(e)),this.hbLogSizeFormControl.patchValue(this.$settings.env.log?.maxSize),this.hbLogSizeFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.hbLogSizeSave(e)),this.hbLogTruncateFormControl.patchValue(this.$settings.env.log?.truncateSize),this.hbLogTruncateFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.hbLogTruncateSave(e)),this.uiPortFormControl.patchValue(this.$settings.env.port),this.uiPortFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.uiPortSave(e)),this.uiAuthFormControl.patchValue(this.$settings.formAuth),this.uiAuthFormControl.valueChanges.pipe(k(750)).subscribe(e=>this.uiAuthSave(e)),this.uiSessionTimeoutFormControl.patchValue(this.$settings.sessionTimeout),this.uiSessionTimeoutFormControl.valueChanges.pipe(k(750)).subscribe(e=>this.uiSessionTimeoutSave(e)),this.uiSslKeyFormControl.patchValue(this.$settings.env.ssl?.key||""),this.uiSslKeyFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.uiSslKeySave(e)),this.uiSslCertFormControl.patchValue(this.$settings.env.ssl?.cert||""),this.uiSslCertFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.uiSslCertSave(e)),this.uiSslPfxFormControl.patchValue(this.$settings.env.ssl?.pfx||""),this.uiSslPfxFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.uiSslPfxSave(e)),this.uiSslPassphraseFormControl.patchValue(this.$settings.env.ssl?.passphrase||""),this.uiSslPassphraseFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.uiSslPassphraseSave(e)),this.uiSslTypeFormControl.patchValue(this.uiSslKeyFormControl.value||this.uiSslCertFormControl.value?"keycert":this.uiSslPfxFormControl.value||this.uiSslPassphraseFormControl.value?"pfx":"off"),this.uiSslTypeFormControl.valueChanges.pipe(k(750)).subscribe(e=>this.uiSslTypeSave(e)),this.uiHostFormControl.patchValue(this.$settings.host||""),this.uiHostFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.uiHostSave(e)),this.uiProxyHostFormControl.patchValue(this.$settings.proxyHost||""),this.uiProxyHostFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.uiProxyHostSave(e)),this.hbPackageFormControl.patchValue(this.$settings.env.homebridgePackagePath||""),this.hbPackageFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.hbPackageSave(e)),this.uiMetricsFormControl.patchValue(!this.$settings.env.disableServerMetricsMonitoring),this.uiMetricsFormControl.valueChanges.pipe(k(750)).subscribe(e=>this.uiMetricsSave(e)),this.uiAccDebugFormControl.patchValue(this.$settings.env.accessoryControl?.debug),this.uiAccDebugFormControl.valueChanges.pipe(k(750)).subscribe(e=>this.uiAccDebugSave(e)),this.uiTempFileFormControl.patchValue(this.$settings.env.temp),this.uiTempFileFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.uiTempFileSave(e)),this.hbLinuxShutdownFormControl.patchValue(this.$settings.env.linux?.shutdown),this.hbLinuxShutdownFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.hbLinuxShutdownSave(e)),this.hbLinuxRestartFormControl.patchValue(this.$settings.env.linux?.restart),this.hbLinuxRestartFormControl.valueChanges.pipe(k(1500)).subscribe(e=>this.hbLinuxRestartSave(e)),this.loading=!1})}openBackupModal(){this.$modal.open(me,{size:"lg",backdrop:"static"})}openConfigBackup(){this.$router.navigate(["/config"],{queryParams:{action:"restore"}})}openWallpaperModal(){this.$modal.open(lt,{size:"lg",backdrop:"static"})}resetHomebridgeState(){this.$modal.open(at,{size:"lg",backdrop:"static"})}unpairAccessory(){this.$modal.open(rt,{size:"lg",backdrop:"static"})}removeAllCachedAccessories(){this.$modal.open(it,{size:"lg",backdrop:"static"})}accessoryUiControl(){return f(this,null,function*(){try{let e=this.$modal.open(Qe,{size:"lg",backdrop:"static"});e.componentInstance.existingBlacklist=this.$settings.env.accessoryControl?.instanceBlacklist||[],yield e.result,this.showRestartToast()}catch(e){e!=="Dismiss"&&(console.error(e),this.$toastr.error(e.message,this.$translate.instant("toast.title_error")))}})}removeSingleCachedAccessories(){this.$modal.open(Ge,{size:"lg",backdrop:"static"})}removeBridgeAccessories(){this.$modal.open(nt,{size:"lg",backdrop:"static"})}selectNetworkInterfaces(){return f(this,null,function*(){let e=this.$modal.open(st,{size:"lg",backdrop:"static"});e.componentInstance.adaptersAvailable=this.adaptersAvailable,e.componentInstance.adaptersSelected=this.adaptersSelected;try{let n=yield e.result;this.buildBridgeNetworkAdapterList(n),yield $(this.$api.put("/server/network-interfaces/bridge",{adapters:n})),this.showRestartToast()}catch(n){n!=="Dismiss"&&(console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")))}})}toggleSection(e){this.showFields[e]=!this.showFields[e]}initStartupSettings(){return f(this,null,function*(){try{let e=yield $(this.$api.get("/platform-tools/hb-service/homebridge-startup-settings"));this.hbDebugFormControl.patchValue(e.HOMEBRIDGE_DEBUG),this.hbDebugFormControl.valueChanges.pipe(k(750)).subscribe(n=>this.hbDebugSave(n)),this.hbInsecureFormControl.patchValue(e.HOMEBRIDGE_INSECURE),this.hbInsecureFormControl.valueChanges.pipe(k(750)).subscribe(n=>this.hbInsecureSave(n)),this.hbKeepFormControl.patchValue(e.HOMEBRIDGE_KEEP_ORPHANS),this.hbKeepFormControl.valueChanges.pipe(k(750)).subscribe(n=>this.hbKeepSave(n)),this.hbEnvDebugFormControl.patchValue(e.ENV_DEBUG),this.hbEnvDebugFormControl.valueChanges.pipe(k(1500)).subscribe(n=>this.hbEnvDebugSave(n)),this.hbEnvNodeFormControl.patchValue(e.ENV_NODE_OPTIONS),this.hbEnvNodeFormControl.valueChanges.pipe(k(1500)).subscribe(n=>this.hbEnvNodeSave(n))}catch(e){console.error(e),this.$toastr.error(e.message,this.$translate.instant("toast.title_error"))}})}initNetworkingOptions(){return f(this,null,function*(){try{yield this.getNetworkSettings(),(this.$settings.env.runningInLinux||this.$settings.env.runningInDocker||this.$settings.env.runningInSynologyPackage||this.$settings.env.runningInPackageMode)&&(this.showAvahiMdnsOption=!0,this.showResolvedMdnsOption=!0)}catch(e){console.error(e),this.$toastr.error(e.message,this.$translate.instant("toast.title_error"))}})}getNetworkSettings(){return f(this,null,function*(){return Promise.all([$(this.$api.get("/server/network-interfaces/system")),$(this.$api.get("/server/network-interfaces/bridge")),$(this.$api.get("/server/mdns-advertiser")),$(this.$api.get("/server/port")),$(this.$api.get("/server/ports"))]).then(([e,n,p,I,X])=>{this.adaptersAvailable=e,this.buildBridgeNetworkAdapterList(n),this.hbMDnsFormControl.patchValue(p.advertiser),this.hbMDnsFormControl.valueChanges.pipe(k(750)).subscribe(q=>this.hbMDnsSave(q)),this.hbPortFormControl.patchValue(I.port),this.hbPortFormControl.valueChanges.pipe(k(1500)).subscribe(q=>this.hbPortSave(q)),this.hbStartPortFormControl.patchValue(X.start),this.hbStartPortFormControl.valueChanges.pipe(k(1500)).subscribe(q=>this.hbStartPortSave(q)),this.hbEndPortFormControl.patchValue(X.end),this.hbEndPortFormControl.valueChanges.pipe(k(1500)).subscribe(q=>this.hbEndPortSave(q))})})}saveUiSettingChange(e,n){return f(this,null,function*(){try{yield $(this.$api.put("/config-editor/ui",{key:e,value:n}))}catch(p){console.error(p),this.$toastr.error(p.message,this.$translate.instant("toast.title_error"))}})}hbNameSave(e){return f(this,null,function*(){if(!e||!/^[\p{L}\p{N}][\p{L}\p{N} ']*[\p{L}\p{N}]$/u.test(e)){this.hbNameIsInvalid=!0;return}try{this.hbNameIsSaving=!0,yield $(this.$api.put("/server/name",{name:e})),this.$settings.setEnvItem("homebridgeInstanceName",e),this.hbNameIsInvalid=!1,setTimeout(()=>{this.hbNameIsSaving=!1},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbNameIsSaving=!1}})}uiLangSave(e){return f(this,null,function*(){try{this.uiLangIsSaving=!0,this.$settings.setLang(e),yield this.saveUiSettingChange("lang",e),setTimeout(()=>{this.uiLangIsSaving=!1},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiLangIsSaving=!1}})}uiThemeSave(e){return f(this,null,function*(){try{this.uiThemeIsSaving=!0,this.$settings.setTheme(e),yield this.saveUiSettingChange("theme",e),setTimeout(()=>{this.uiThemeIsSaving=!1},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiThemeIsSaving=!1}})}uiLightSave(e){return f(this,null,function*(){try{this.uiLightIsSaving=!0,this.$settings.setLightingMode(e,"user"),yield this.saveUiSettingChange("lightingMode",e),setTimeout(()=>{this.uiLightIsSaving=!1},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiLightIsSaving=!1}})}uiMenuSave(e){return f(this,null,function*(){try{this.uiMenuIsSaving=!0,this.$settings.setMenuMode(e),yield this.saveUiSettingChange("menuMode",e),window.location.reload()}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiMenuIsSaving=!1}})}uiTempSave(e){return f(this,null,function*(){try{this.uiTempIsSaving=!0,this.$settings.setEnvItem("temperatureUnits",e),yield this.saveUiSettingChange("tempUnits",e),setTimeout(()=>{this.uiTempIsSaving=!1},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiTempIsSaving=!1}})}uiAlwaysShowBetasSave(e){return f(this,null,function*(){try{this.uiAlwaysShowBetasIsSaving=!0,this.$settings.setEnvItem("plugins.alwaysShowBetas",e),yield this.saveUiSettingChange("plugins.alwaysShowBetas",e),setTimeout(()=>{this.uiAlwaysShowBetasIsSaving=!1},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiAlwaysShowBetasIsSaving=!1}})}uiTerminalPersistenceSave(e){return f(this,null,function*(){if(!e&&this.$terminal.hasActiveSession()){let n=this.$modal.open(He,{size:"lg",backdrop:"static"});n.componentInstance.title=this.$translate.instant("settings.terminal.persistence_confirm_title"),n.componentInstance.message=this.$translate.instant("settings.terminal.persistence_confirm_message"),n.componentInstance.message2=this.$translate.instant("common.phrases.are_you_sure"),n.componentInstance.confirmButtonLabel=this.$translate.instant("form.button_continue"),n.componentInstance.confirmButtonClass="btn-primary",n.componentInstance.faIconClass="fas fa-exclamation-triangle text-warning";try{yield n.result}catch{this.uiTerminalPersistenceFormControl.patchValue(!0,{emitEvent:!1});return}}try{this.uiTerminalPersistenceIsSaving=!0,e||this.$terminal.destroyPersistentSession(),this.$settings.setEnvItem("terminal.persistence",e),yield this.saveUiSettingChange("terminal.persistence",e),setTimeout(()=>{this.uiTerminalPersistenceIsSaving=!1},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiTerminalPersistenceIsSaving=!1}})}uiTerminalHideWarningSave(e){return f(this,null,function*(){try{this.uiTerminalHideWarningIsSaving=!0,this.$settings.setEnvItem("terminal.hideWarning",e),yield this.saveUiSettingChange("terminal.hideWarning",e),setTimeout(()=>{this.uiTerminalHideWarningIsSaving=!1},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiTerminalHideWarningIsSaving=!1}})}uiTerminalBufferSizeSave(e){return f(this,null,function*(){if(e&&(typeof e!="number"||e<0||Number.isInteger(e)===!1)){this.uiTerminalBufferSizeIsInvalid=!0;return}try{this.uiTerminalBufferSizeIsSaving=!0,this.$settings.setEnvItem("terminal.bufferSize",e),yield this.saveUiSettingChange("terminal.bufferSize",e),this.uiTerminalBufferSizeIsInvalid=!1,setTimeout(()=>{this.uiTerminalBufferSizeIsSaving=!1},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiTerminalBufferSizeIsSaving=!1}})}hbDebugSave(e){return f(this,null,function*(){try{this.hbDebugIsSaving=!0,yield $(this.$api.put("/platform-tools/hb-service/homebridge-startup-settings",{HOMEBRIDGE_DEBUG:e,HOMEBRIDGE_KEEP_ORPHANS:this.hbKeepFormControl.value,HOMEBRIDGE_INSECURE:this.hbInsecureFormControl.value,ENV_DEBUG:this.hbEnvDebugFormControl.value,ENV_NODE_OPTIONS:this.hbEnvNodeFormControl.value})),setTimeout(()=>{this.hbDebugIsSaving=!1,this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).subscribe({next:()=>this.showRestartToast(),error:n=>{console.error(n),this.showRestartToast()}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbDebugIsSaving=!1}})}hbInsecureSave(e){return f(this,null,function*(){try{this.hbInsecureIsSaving=!0,yield $(this.$api.put("/platform-tools/hb-service/homebridge-startup-settings",{HOMEBRIDGE_DEBUG:this.hbDebugFormControl.value,HOMEBRIDGE_KEEP_ORPHANS:this.hbKeepFormControl.value,HOMEBRIDGE_INSECURE:e,ENV_DEBUG:this.hbEnvDebugFormControl.value,ENV_NODE_OPTIONS:this.hbEnvNodeFormControl.value})),setTimeout(()=>{this.hbInsecureIsSaving=!1,this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).subscribe({next:()=>this.showRestartToast(),error:n=>{console.error(n),this.showRestartToast()}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbInsecureIsSaving=!1}})}hbKeepSave(e){return f(this,null,function*(){try{this.hbKeepIsSaving=!0,yield $(this.$api.put("/platform-tools/hb-service/homebridge-startup-settings",{HOMEBRIDGE_DEBUG:this.hbDebugFormControl.value,HOMEBRIDGE_KEEP_ORPHANS:e,HOMEBRIDGE_INSECURE:this.hbInsecureFormControl.value,ENV_DEBUG:this.hbEnvDebugFormControl.value,ENV_NODE_OPTIONS:this.hbEnvNodeFormControl.value})),this.$settings.setKeepOrphans(e),setTimeout(()=>{this.hbKeepIsSaving=!1,this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).subscribe({next:()=>this.showRestartToast(),error:n=>{console.error(n),this.showRestartToast()}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbKeepIsSaving=!1}})}hbEnvDebugSave(e){return f(this,null,function*(){try{this.hbEnvDebugIsSaving=!0,yield $(this.$api.put("/platform-tools/hb-service/homebridge-startup-settings",{HOMEBRIDGE_DEBUG:this.hbDebugFormControl.value,HOMEBRIDGE_KEEP_ORPHANS:this.hbKeepFormControl.value,HOMEBRIDGE_INSECURE:this.hbInsecureFormControl.value,ENV_DEBUG:e,ENV_NODE_OPTIONS:this.hbEnvNodeFormControl.value})),setTimeout(()=>{this.hbEnvDebugIsSaving=!1,this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).subscribe({next:()=>this.showRestartToast(),error:n=>{console.error(n),this.showRestartToast()}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbEnvDebugIsSaving=!1}})}hbEnvNodeSave(e){return f(this,null,function*(){try{this.hbEnvNodeIsSaving=!0,yield $(this.$api.put("/platform-tools/hb-service/homebridge-startup-settings",{HOMEBRIDGE_DEBUG:this.hbDebugFormControl.value,HOMEBRIDGE_KEEP_ORPHANS:this.hbKeepFormControl.value,HOMEBRIDGE_INSECURE:this.hbInsecureFormControl.value,ENV_DEBUG:this.hbEnvDebugFormControl.value,ENV_NODE_OPTIONS:e})),setTimeout(()=>{this.hbEnvNodeIsSaving=!1,this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).subscribe({next:()=>this.showRestartToast(),error:n=>{console.error(n),this.showRestartToast()}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbEnvNodeIsSaving=!1}})}hbLogSizeSave(e){return f(this,null,function*(){if(e&&(typeof e!="number"||e<-1||Number.isInteger(e)===!1)){this.hbLogSizeIsInvalid=!0;return}try{this.hbLogSizeIsSaving=!0,this.$settings.setEnvItem("log.maxSize",e),(!e||e===-1)&&(yield this.saveUiSettingChange("log.truncateSize",null),this.hbLogTruncateIsInvalid=!1),yield this.saveUiSettingChange("log.maxSize",e),this.hbLogSizeIsInvalid=!1,setTimeout(()=>{this.hbLogSizeIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbLogSizeIsSaving=!1}})}hbLogTruncateSave(e){return f(this,null,function*(){if(e&&(typeof e!="number"||e<0||Number.isInteger(e)===!1)){this.hbLogTruncateIsInvalid=!0;return}try{this.hbLogTruncateIsSaving=!0,this.$settings.setEnvItem("log.truncateSize",e),yield this.saveUiSettingChange("log.truncateSize",e),this.hbLogTruncateIsInvalid=!1,setTimeout(()=>{this.hbLogTruncateIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbLogTruncateIsSaving=!1}})}hbMDnsSave(e){return f(this,null,function*(){try{this.hbMDnsIsSaving=!0,yield $(this.$api.put("/server/mdns-advertiser",{advertiser:e})),setTimeout(()=>{this.hbMDnsIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbMDnsIsSaving=!1}})}hbPortSave(e){return f(this,null,function*(){if(e===this.uiPortFormControl.value){this.hbPortIsInvalid=!0;return}try{this.hbPortIsSaving=!0,yield $(this.$api.put("/server/port",{port:e})),this.hbPortIsInvalid=!1,setTimeout(()=>{this.hbPortIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbPortIsSaving=!1}})}hbStartPortSave(e){return f(this,null,function*(){try{this.hbStartPortIsSaving=!0,yield $(this.$api.put("/server/ports",{start:e,end:this.hbEndPortFormControl.value})),this.hbStartPortIsInvalid=!1,setTimeout(()=>{this.hbStartPortIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbStartPortIsSaving=!1}})}hbEndPortSave(e){return f(this,null,function*(){try{this.hbEndPortIsSaving=!0,yield $(this.$api.put("/server/ports",{start:this.hbStartPortFormControl.value,end:e})),this.hbEndPortIsInvalid=!1,setTimeout(()=>{this.hbEndPortIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbEndPortIsSaving=!1}})}uiPortSave(e){return f(this,null,function*(){if(!e||typeof e!="number"||e<1025||e>65533||Number.isInteger(e)===!1||e===this.hbPortFormControl.value){this.uiPortIsInvalid=!0;return}try{this.uiPortIsSaving=!0,this.$settings.setEnvItem("port",e),yield this.saveUiSettingChange("port",e),this.uiPortIsInvalid=!1,setTimeout(()=>{this.uiPortIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiPortIsSaving=!1}})}uiAuthSave(e){return f(this,null,function*(){try{this.uiAuthIsSaving=!0,this.$settings.setItem("formAuth",e),yield this.saveUiSettingChange("auth",e?"form":"none"),this.$notification.formAuthEnabled.next(e),setTimeout(()=>{this.uiAuthIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiAuthIsSaving=!1}})}uiSessionTimeoutSave(e){return f(this,null,function*(){if(e&&(typeof e!="number"||e<600||e>864e5||Number.isInteger(e)===!1)){this.uiSessionTimeoutIsInvalid=!0;return}try{this.uiSessionTimeoutIsSaving=!0,this.$settings.setItem("sessionTimeout",e),yield this.saveUiSettingChange("sessionTimeout",e),this.uiSessionTimeoutIsInvalid=!1,setTimeout(()=>{this.uiSessionTimeoutIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiSessionTimeoutIsSaving=!1}})}uiSslKeySave(e){return f(this,null,function*(){try{this.uiSslKeyIsSaving=!0,this.$settings.setEnvItem("ssl.key",e),yield this.saveUiSettingChange("ssl.key",e),setTimeout(()=>{this.uiSslKeyIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiSslKeyIsSaving=!1}})}uiSslCertSave(e){return f(this,null,function*(){try{this.uiSslCertIsSaving=!0,this.$settings.setEnvItem("ssl.cert",e),yield this.saveUiSettingChange("ssl.cert",e),setTimeout(()=>{this.uiSslCertIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiSslCertIsSaving=!1}})}uiSslPfxSave(e){return f(this,null,function*(){try{this.uiSslPfxIsSaving=!0,this.$settings.setEnvItem("ssl.pfx",e),yield this.saveUiSettingChange("ssl.pfx",e),setTimeout(()=>{this.uiSslPfxIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiSslPfxIsSaving=!1}})}uiSslPassphraseSave(e){return f(this,null,function*(){try{this.uiSslPassphraseIsSaving=!0,this.$settings.setEnvItem("ssl.passphrase",e),yield this.saveUiSettingChange("ssl.passphrase",e),setTimeout(()=>{this.uiSslPassphraseIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiSslPassphraseIsSaving=!1}})}uiSslTypeSave(e){return f(this,null,function*(){switch(e){case"keycert":this.uiSslPfxFormControl.patchValue("",{emitEvent:!1}),this.uiSslPassphraseFormControl.patchValue("",{emitEvent:!1}),this.$settings.setEnvItem("ssl.pfx",""),this.$settings.setEnvItem("ssl.passphrase","");break;case"pfx":this.uiSslKeyFormControl.patchValue("",{emitEvent:!1}),this.uiSslCertFormControl.patchValue("",{emitEvent:!1}),this.$settings.setEnvItem("ssl.key",""),this.$settings.setEnvItem("ssl.cert","");break;default:this.uiSslKeyFormControl.patchValue("",{emitEvent:!1}),this.uiSslCertFormControl.patchValue("",{emitEvent:!1}),this.uiSslPfxFormControl.patchValue("",{emitEvent:!1}),this.uiSslPassphraseFormControl.patchValue("",{emitEvent:!1}),this.$settings.setEnvItem("ssl.key",""),this.$settings.setEnvItem("ssl.cert",""),this.$settings.setEnvItem("ssl.pfx",""),this.$settings.setEnvItem("ssl.passphrase",""),yield this.saveUiSettingChange("ssl",""),this.showRestartToast()}})}uiHostSave(e){return f(this,null,function*(){try{this.uiHostIsSaving=!0,this.$settings.setItem("host",e),yield this.saveUiSettingChange("host",e),setTimeout(()=>{this.uiHostIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiHostIsSaving=!1}})}uiProxyHostSave(e){return f(this,null,function*(){try{this.uiProxyHostIsSaving=!0,this.$settings.setItem("proxyHost",e),yield this.saveUiSettingChange("proxyHost",e),setTimeout(()=>{this.uiProxyHostIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiProxyHostIsSaving=!1}})}hbPackageSave(e){return f(this,null,function*(){try{this.hbPackageIsSaving=!0,this.$settings.setEnvItem("homebridgePackagePath",e),yield this.saveUiSettingChange("homebridgePackagePath",e),setTimeout(()=>{this.hbPackageIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbPackageIsSaving=!1}})}uiMetricsSave(e){return f(this,null,function*(){try{this.uiMetricsIsSaving=!0,this.$settings.setEnvItem("disableServerMetricsMonitoring",!e),yield this.saveUiSettingChange("disableServerMetricsMonitoring",!e),setTimeout(()=>{this.uiMetricsIsSaving=!1,this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).subscribe({next:()=>this.showRestartToast(),error:n=>{console.error(n),this.showRestartToast()}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiMetricsIsSaving=!1}})}uiAccDebugSave(e){return f(this,null,function*(){try{this.uiAccDebugIsSaving=!0,this.$settings.setEnvItem("accessoryControl.debug",e),yield this.saveUiSettingChange("accessoryControl.debug",e),setTimeout(()=>{this.uiAccDebugIsSaving=!1,this.showRestartToast()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiAccDebugIsSaving=!1}})}uiTempFileSave(e){return f(this,null,function*(){try{this.uiTempFileIsSaving=!0,this.$settings.setEnvItem("temp",e),yield this.saveUiSettingChange("temp",e),setTimeout(()=>{this.uiTempFileIsSaving=!1,this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).subscribe({next:()=>this.showRestartToast(),error:n=>{console.error(n),this.showRestartToast()}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiTempFileIsSaving=!1}})}hbLinuxShutdownSave(e){return f(this,null,function*(){try{this.hbLinuxShutdownIsSaving=!0,this.$settings.setEnvItem("linux.shutdown",e),yield this.saveUiSettingChange("linux.shutdown",e),setTimeout(()=>{this.hbLinuxShutdownIsSaving=!1,this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).subscribe({next:()=>this.showRestartToast(),error:n=>{console.error(n),this.showRestartToast()}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbLinuxShutdownIsSaving=!1}})}hbLinuxRestartSave(e){return f(this,null,function*(){try{this.hbLinuxRestartIsSaving=!0,this.$settings.setEnvItem("linux.restart",e),yield this.saveUiSettingChange("linux.restart",e),setTimeout(()=>{this.hbLinuxRestartIsSaving=!1,this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).subscribe({next:()=>this.showRestartToast(),error:n=>{console.error(n),this.showRestartToast()}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbLinuxRestartIsSaving=!1}})}buildBridgeNetworkAdapterList(e){if(!e.length){this.adaptersSelected=[];return}this.adaptersSelected=e.map(n=>{let p=this.adaptersAvailable.find(I=>I.iface===n);return p?{iface:p.iface,selected:!0,missing:!1,ip4:p.ip4,ip6:p.ip6}:{iface:n,selected:!0,missing:!0}})}showRestartToast(){if(!this.restartToastIsShown){this.restartToastIsShown=!0;let e=this.$toastr.info(this.$translate.instant("settings.changes.saved"),this.$translate.instant("menu.hbrestart.title"),{timeOut:0,tapToDismiss:!0,disableTimeOut:!0,positionClass:"toast-bottom-right",enableHtml:!0});e&&e.onTap&&e.onTap.subscribe(()=>{this.$router.navigate(["/restart"])})}}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=P({type:i,selectors:[["ng-component"]],decls:8,vars:4,consts:[[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0"],[1,"col-6","text-end"],[1,"my-4"],["role","button","tabindex","0",1,"mt-3","hover-pointer",3,"click"],[1,"primary-text"],[1,"fa",3,"ngClass"],["id","fieldsGeneral",1,"list-group","list-group-box","mt-2","mx-0"],["id","fieldsDisplay",1,"list-group","list-group-box","mt-2","mx-0"],["id","fieldsStartup",1,"list-group","list-group-box","mb-4","mx-0"],["id","fieldsNetwork",1,"list-group","list-group-box","mt-2","mx-0"],["id","fieldsTerminal",1,"list-group","list-group-box","mt-2","mx-0"],["id","fieldsSecurity",1,"list-group","list-group-box","mt-2","mx-0"],[1,"small","grey-text","mb-2","mx-0"],["id","fieldsCache",1,"list-group","list-group-box","mb-4","mx-0"],["id","fieldsReset",1,"list-group","list-group-box","mt-2","mx-0"],[1,"pb-3"],[1,"list-group-item","d-block","d-md-flex","justify-content-between","align-items-center"],[1,"my-3","my-md-0","ps-0","ps-md-5","w-auto","d-flex","align-items-center"],["type","text",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl","ngClass"],[1,"fas","fa-floppy-disk","primary-text","fa-xl","me-0","me-md-2","ms-2","ms-md-0","order-2","order-md-1"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"pe-2"],[1,"btn","btn-primary","waves-effect","m-0","ms-3",2,"min-width","50px",3,"click"],[1,"fas","fa-arrow-right"],["routerLink","/users",1,"btn","btn-primary","waves-effect","m-0","ms-3",2,"min-width","50px"],[1,"custom-select","resp-select","order-1","order-md-2",3,"formControl"],["value","auto"],["value","bg"],["value","ca"],["value","zh-CN"],["value","zh-TW"],["value","cs"],["value","nl"],["value","en"],["value","fi"],["value","fr"],["value","de"],["value","he"],["value","hu"],["value","id"],["value","it"],["value","ja"],["value","ko"],["value","mk"],["value","no"],["value","pl"],["value","pt-BR"],["value","pt"],["value","ru"],["value","sl"],["value","es"],["value","sv"],["value","th"],["value","tr"],["value","uk"],["value","orange"],["value","red"],["value","pink"],["value","purple"],["value","deep-purple"],["value","indigo"],["value","blue"],["value","blue-grey"],["value","cyan"],["value","green"],["value","teal"],["value","grey"],["value","brown"],["value","light"],["value","dark"],["value","default"],["value","freeze"],["value","c"],["value","f"],[1,"d-flex","align-items-center"],[1,"order-1","order-md-2"],["type","checkbox","id","uiAlwaysShowBetas",1,"rendux-input",3,"formControl"],["for","uiAlwaysShowBetas",1,"rendux-label","ms-3",2,"min-width","50px"],[1,"grey-text","pe-2"],["type","checkbox","id","homebridgeDebugMode",1,"rendux-input",3,"formControl"],["for","homebridgeDebugMode",1,"rendux-label","ms-3",2,"min-width","50px"],["type","checkbox","id","homebridgeInsecureMode",1,"rendux-input",3,"formControl"],["for","homebridgeInsecureMode",1,"rendux-label","ms-3",2,"min-width","50px"],["type","checkbox","id","homebridgeKeepOrphans",1,"rendux-input",3,"formControl"],["for","homebridgeKeepOrphans",1,"rendux-label","ms-3",2,"min-width","50px"],["type","checkbox","id","homebridgeMetrics",1,"rendux-input",3,"formControl"],["for","homebridgeMetrics",1,"rendux-label","ms-3",2,"min-width","50px"],["type","text","placeholder","/usr/local/lib/node_modules/homebridge",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl"],[1,"font-monospace"],[1,"grey-text","pe-2",3,"innerHTML"],["type","text","placeholder","HAP-NodeJS:Advertiser,HAP-NodeJS:Service",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl"],["type","text","placeholder","--max-old-space-size=512 --max-http-header-size=8192",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl"],["type","text","placeholder","shutdown",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl"],["type","text","placeholder","reboot",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl"],["type","text","placeholder","/sys/class/thermal/thermal_zone0/temp",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl"],["routerLink","/platform-tools/docker/startup-script",1,"btn","btn-primary","waves-effect","m-0","ms-3",2,"min-width","50px"],[1,"small","grey-text","pe-2"],[1,"badge","badge-primary","me-1",3,"ngClass"],[1,"btn","btn-primary","waves-effect","m-0","ms-3",2,"min-width","50px",3,"click","disabled"],["value","avahi"],["value","ciao"],["value","bonjour-hap"],["value","resolved"],["type","number","min","1025","max","65533",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl","ngClass"],["type","number","min","1025","max","65533","placeholder","8581",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl","ngClass"],[1,"grey-text","pe-2",3,"innerHtml"],["type","text","pattern","^[^{}/:\\\\s]+(?::\\d+)?$","placeholder","0.0.0.0",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl"],["type","text","pattern","^[^{}/:\\\\s]+(?::\\d+)?$","placeholder","example.com:8443",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl"],[1,"fas","fa-exclamation-triangle"],[1,"fw-normal"],["type","number","min","-1","placeholder","1000000",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl","ngClass"],["type","number","min","0","placeholder","200000",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl","ngClass"],[1,"badge","badge-primary","ms-1"],["type","checkbox","id","terminalPersistence",1,"rendux-input",3,"formControl"],["for","terminalPersistence",1,"rendux-label","ms-3",2,"min-width","50px"],["type","checkbox","id","terminalHideWarning",1,"rendux-input",3,"formControl"],["for","terminalHideWarning",1,"rendux-label","ms-3",2,"min-width","50px"],[1,"d-flex","flex-column"],[1,"small","grey-text"],["type","number","min","10000","max","100000","step","10000",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl","ngClass"],["type","checkbox","id","uiAuthForm",1,"rendux-input",3,"formControl"],["for","uiAuthForm",1,"rendux-label","ms-3",2,"min-width","50px"],["value","off"],["value","keycert"],["value","pfx"],["type","number","min","600","max","86400000","placeholder","28800",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl","ngClass"],["type","text","placeholder","/Users/.../certs/server.key",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl"],["type","text","placeholder","/Users/.../certs/server.crt",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl"],["type","text","placeholder","/Users/.../certs/server.pfx",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"formControl"],["placeholder","mypassphrase",1,"form-control","custom-input","resp-input","order-1","order-md-2",3,"focus","blur","type","formControl"],["type","checkbox","id","accessoryDebug",1,"rendux-input",3,"formControl"],["for","accessoryDebug",1,"rendux-label","ms-3",2,"min-width","50px"]],template:function(n,p){n&1&&(a(0,"div",0)(1,"div",1)(2,"h3",2),l(3),r(4,"translate"),o()(),d(5,"div",3),o(),h(6,Ti,1,0,"app-spinner")(7,Dn,59,82)),n&2&&(t(3),u(s(4,2,"menu.settings.title")),t(3),_(p.loading?6:7))},dependencies:[j,Le,ae,Re,Ve,le,Pe,ie,Ae,ne,Ne,De,Me,oe,pe,We,te,A],encapsulation:2,data:{animation:[Te("fadeInOut",[ge(":enter",[se({opacity:0}),_e("750ms",se({opacity:1}))]),ge(":leave",[_e("750ms",se({opacity:0}))])])]}})}return i})();export{nr as SettingsComponent};
@@ -1 +0,0 @@
1
- import{a as s}from"./chunk-7HHGB4JN.js";import"./chunk-6KGJCE3V.js";import"./chunk-4DQEF3SY.js";import"./chunk-TLGNUWU6.js";import"./chunk-Q5UJ7RBG.js";import"./chunk-GGZZFW2G.js";import"./chunk-ODN4SLC6.js";import"./chunk-CSU4CRXM.js";import{g as i}from"./chunk-BR6USPEJ.js";import"./chunk-23H472HH.js";import"./chunk-BBLNIMTZ.js";import"./chunk-OBYXJY4V.js";import"./chunk-OMPHX32Y.js";import{ga as e,pb as t}from"./chunk-V2MV6MJL.js";var u=[{path:"",loadComponent:()=>import("./chunk-URAOB565.js").then(o=>o.AccessoriesComponent)}],c=(()=>{class o{static \u0275fac=function(r){return new(r||o)};static \u0275mod=t({type:o});static \u0275inj=e({imports:[i.forChild(u),i]})}return o})();var l=(()=>{class o{static \u0275fac=function(r){return new(r||o)};static \u0275mod=t({type:o});static \u0275inj=e({imports:[s,c]})}return o})();export{l as AccessoriesModule};
@@ -1,2 +0,0 @@
1
- import{B as Y,C as Z,c as G,d as k,e as j,f as D,g as K,j as $,m as A,q as J,r as Q,y as X}from"./chunk-GGZZFW2G.js";import{a as ae}from"./chunk-ODN4SLC6.js";import{b as oe}from"./chunk-CSU4CRXM.js";import{b as re}from"./chunk-23H472HH.js";import{k as ie,m as ne}from"./chunk-BBLNIMTZ.js";import{a as ee,b as te,d as U}from"./chunk-OBYXJY4V.js";import{l as q}from"./chunk-OMPHX32Y.js";import{Cd as R,Gc as L,Hc as B,Ic as E,Jb as M,Mb as z,Nb as T,Nc as a,Oc as s,Sb as m,Tb as o,Ub as r,Vb as u,Za as W,cb as n,cc as I,fc as x,h as S,hc as _,ka as w,md as H,ob as V,pd as N,qa as C,ra as b,rc as O,uc as l,vc as f,w as h,wc as g}from"./chunk-V2MV6MJL.js";var pe=t=>({background:t}),de=t=>({anim:t}),ce=t=>({"progress-bar-animated":t}),me=()=>["restoring","restarting","restore-complete"],P=(t,d)=>({"is-valid":t,"is-invalid":d});function ue(t,d){if(t&1){let e=I();o(0,"div",5)(1,"h4",6),l(2),a(3,"translate"),r(),u(4,"div",7),a(5,"translate"),o(6,"button",8),x("click",function(){C(e);let i=_();return b(i.onClickGettingStarted())}),l(7),a(8,"translate"),r(),o(9,"a",9),x("click",function(){C(e);let i=_();return b(i.onClickRestoreBackup())}),l(10),a(11,"translate"),r()()}t&2&&(n(2),f(s(3,4,"setup.welcome_to_homebridge")),n(2),m("innerHTML",s(5,6,"setup.intro"),W),n(3),g(" ",s(8,8,"setup.button_get_started")," "),n(3),f(s(11,10,"setup_wizard_restore")))}function ge(t,d){if(t&1){let e=I();o(0,"div",5)(1,"h4",6),l(2),a(3,"translate"),r(),o(4,"div",10),l(5),a(6,"translate"),r(),o(7,"div",11)(8,"form",12),x("ngSubmit",function(){C(e);let i=_();return b(i.createFirstUser())}),o(9,"div",13)(10,"span",14),u(11,"i",15),r(),u(12,"input",16),a(13,"translate"),r(),o(14,"div",13)(15,"span",14),u(16,"i",17),r(),u(17,"input",18),a(18,"translate"),r(),o(19,"div",13)(20,"span",14),u(21,"i",17),r(),u(22,"input",19),a(23,"translate"),r(),o(24,"div",20)(25,"button",21),x("click",function(){C(e);let i=_();return b(i.onClickCancelRestore())}),l(26),a(27,"translate"),r(),o(28,"button",22),l(29),a(30,"translate"),r()()()()()}if(t&2){let e=_();n(2),f(s(3,16,"setup.create_account")),n(3),f(s(6,18,"setup_wizard_create_info")),n(3),m("formGroup",e.createUserForm),n(4),m("readonly",e.loading)("ngClass",E(30,P,e.createUserForm.controls.username.dirty&&e.createUserForm.controls.username.valid,e.createUserForm.controls.username.dirty&&e.createUserForm.controls.username.invalid))("placeholder",s(13,20,"users.label_username")),n(5),m("readonly",e.loading)("ngClass",E(33,P,e.createUserForm.controls.password.dirty&&e.createUserForm.controls.password.valid,e.createUserForm.controls.password.dirty&&e.createUserForm.controls.password.errors))("placeholder",s(18,22,"users.label_password")),n(5),m("readonly",e.loading)("ngClass",E(36,P,e.createUserForm.controls.passwordConfirm.dirty&&e.createUserForm.controls.passwordConfirm.valid,e.createUserForm.controls.passwordConfirm.dirty&&e.createUserForm.controls.passwordConfirm.errors))("placeholder",s(23,24,"users.label_confirm_password")),n(3),m("disabled",e.restoreUploading),n(),g(" ",s(27,26,"form.button_back")," "),n(2),m("disabled",e.createUserForm.invalid||e.loading),n(),g(" ",s(30,28,"form.button_continue")," ")}}function _e(t,d){t&1&&(u(0,"i",25),l(1),a(2,"translate")),t&2&&(n(),g(" ",s(2,1,"backup.label_uploading")," "))}function fe(t,d){t&1&&(l(0),a(1,"translate")),t&2&&g(" ",s(1,1,"form.button_continue")," ")}function he(t,d){if(t&1){let e=I();o(0,"div",5)(1,"h4",6),l(2),a(3,"translate"),r(),o(4,"div",10),l(5),a(6,"translate"),r(),o(7,"input",23),x("change",function(i){C(e);let F=_();return b(F.handleRestoreFileInput(i.target.files))}),r(),o(8,"div",20)(9,"button",21),x("click",function(){C(e);let i=_();return b(i.onClickCancelRestore())}),l(10),a(11,"translate"),r(),o(12,"button",24),x("click",function(){C(e);let i=_();return b(i.onRestoreBackupClick())}),z(13,_e,3,3)(14,fe,2,3),r()()()}if(t&2){let e=_();n(2),f(s(3,6,"setup_wizard_restore")),n(3),f(s(6,8,"backup.restore_help_one")),n(4),m("disabled",e.restoreUploading),n(),g(" ",s(11,10,"form.button_back")," "),n(2),m("disabled",e.restoreUploading||!e.selectedFile),n(),T(e.restoreUploading?13:14)}}function we(t,d){t&1&&(l(0),a(1,"translate")),t&2&&g(" ",s(1,1,"setup_wizard_restoring")," ")}function Ce(t,d){t&1&&(l(0),a(1,"translate")),t&2&&g(" ",s(1,1,"setup_wizard_starting")," ")}function be(t,d){t&1&&(l(0),a(1,"translate")),t&2&&g(" ",s(1,1,"setup_wizard_complete")," ")}function xe(t,d){t&1&&(o(0,"a",27),l(1),a(2,"translate"),r()),t&2&&(n(),g(" ",s(2,1,"form.button_continue")," "))}function ve(t,d){if(t&1&&(o(0,"div",5)(1,"h4",6),z(2,we,2,3)(3,Ce,2,3)(4,be,2,3),r(),u(5,"div",26),z(6,xe,3,3,"a",27),r()),t&2){let e=_();n(2),T(e.step==="restoring"?2:e.step==="restarting"?3:e.step==="restore-complete"?4:-1),n(4),T(e.step==="restore-complete"?6:-1)}}function ye(t,d){t&1&&(o(0,"div",5)(1,"h4",28),l(2),a(3,"translate"),r(),o(4,"div",10),l(5),a(6,"translate"),r(),o(7,"a",29),l(8),a(9,"translate"),r()()),t&2&&(n(2),f(s(3,3,"setup_wizard_complete_title")),n(3),f(s(6,5,"setup_wizard_completed")),n(3),g(" ",s(9,7,"form.button_continue")," "))}var He=(()=>{class t{$api=w(ne);$auth=w(oe);$settings=w(re);$title=w(q);$toastr=w(ie);$translate=w(ee);$ws=w(ae);io;step="welcome";backgroundStyle;progress=1;restoreInProgress=!1;restoreStarted=!1;restoreFailed=!1;loading=!1;selectedFile;restoreUploading=!1;createUserForm=new K({username:new $("",[k.required]),password:new $("",[k.compose([k.required,k.minLength(4)])]),passwordConfirm:new $("",[k.required])},this.matchPassword);ngOnInit(){return S(this,null,function*(){this.$title.setTitle(this.$translate.instant("setup_wizard_page_title")),yield this.setBackground()})}onClickGettingStarted(){this.step="create-account",this.progress=50}onClickRestoreBackup(){this.step="restore-backup",this.progress=20}onClickCancelRestore(){this.selectedFile=null,this.step="welcome",this.progress=1}createFirstUser(){return S(this,null,function*(){this.loading=!0,this.progress=75;let e=this.createUserForm.getRawValue();e.name=e.username;try{yield h(this.$api.post("/setup-wizard/create-first-user",e)),this.$settings.env.setupWizardComplete=!0,this.progress=100,this.loading=!1,yield this.$auth.login({username:e.username,password:e.password}),this.step="setup-complete"}catch(p){this.loading=!1,this.progress=50,console.error(p),this.$toastr.error(p.message,this.$translate.instant("toast.title_error"))}})}handleRestoreFileInput(e){e.length?(this.selectedFile=e[0],this.progress=40):(delete this.selectedFile,this.progress=20)}onRestoreBackupClick(){return S(this,null,function*(){this.restoreUploading=!0,this.step="restoring",this.progress=60;try{let e=yield h(this.$api.get("/setup-wizard/get-setup-wizard-token"));window.localStorage.setItem(U.jwt.tokenKey,e.access_token),this.$auth.token=e.access_token,this.progress=65;let p=new FormData;p.append("restoreArchive",this.selectedFile,this.selectedFile.name),yield h(this.$api.post("/backup/restore",p)),this.progress=70,this.io=this.$ws.connectToNamespace("backup");let i=document.getElementById("output");this.io.socket.on("stdout",c=>{c.split(`
2
- \r`).forEach(v=>{if(v&&!/^[⠇⠏⠋⠙⠹⠸]+$/.test(v)){let y=document.createElement("div"),le=/\x1B\[(\d{1,2}(;\d{1,2})?)?[mGK]/g;y.innerHTML=v.replace(le,""),v.includes("[0;31m")?y.classList.add("red-text"):v.includes("[0;32m")?y.classList.add("green-text"):v.includes("[0;33m")?y.classList.add("orange-text"):v.includes("[0;36m")&&y.classList.add("cyan-text"),i.appendChild(y),i.scrollTop=i.scrollHeight}})}),this.restoreStarted=!0,this.restoreInProgress=!0,this.progress=75,yield h(this.io.request("do-restore")),this.progress=80,this.restoreInProgress=!1,yield h(this.$api.put("/backup/restart",{})),this.step="restarting",this.progress=85,window.localStorage.removeItem(U.jwt.tokenKey),this.$auth.token=null;let F=document.createElement("div");F.classList.add("orange-text"),F.innerHTML="Starting Homebridge, please wait...",i.appendChild(F),i.scrollTop=i.scrollHeight,yield new Promise(c=>setTimeout(c,3e3)),this.progress=88,yield new Promise(c=>setTimeout(c,3e3)),this.progress=91,yield new Promise(c=>setTimeout(c,3e3)),this.progress=94,yield new Promise(c=>setTimeout(c,3e3)),this.progress=97,yield new Promise(c=>setTimeout(c,3e3)),this.progress=99;let se=setInterval(()=>S(this,null,function*(){try{yield h(this.$api.get("/auth/settings")),clearInterval(se),this.progress=100,this.restoreUploading=!1,this.step="restore-complete"}catch{}}),1e3)}catch(e){console.error(e),this.restoreUploading=!1,this.restoreFailed=!0,this.progress=20,this.step="restore-backup",this.$toastr.error(e.message,this.$translate.instant("toast.title_error"))}finally{this.io&&this.io.end()}})}setBackground(){return S(this,null,function*(){if(this.$settings.settingsLoaded||(yield h(this.$settings.onSettingsLoaded)),this.$settings.env.customWallpaperHash){let e=`${U.api.base}/auth/wallpaper/${this.$settings.env.customWallpaperHash}`;this.backgroundStyle=`url('${e}') center/cover`}})}matchPassword(e){let p=e.get("password").value,i=e.get("passwordConfirm").value;if(p!==i)e.get("passwordConfirm").setErrors({matchPassword:!0});else return null}static \u0275fac=function(p){return new(p||t)};static \u0275cmp=V({type:t,selectors:[["ng-component"]],decls:10,vars:14,consts:[[1,"setup-container","gradient","d-flex","align-items-start","justify-content-center",3,"ngStyle","ngClass"],[1,"w-100","setup-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"],[1,"progress","w-100","my-4"],["role","progressbar","aria-valuemin","0","aria-valuemax","100",1,"progress-bar","progress-bar-striped","bg-success",3,"ngClass"],[1,"w-100","d-flex","flex-column","align-items-center","mb-2"],[1,"mb-3","text-center"],[1,"mb-4","small","grey-text","text-center",3,"innerHTML"],["type","button",1,"btn","btn-lg","btn-primary","mb-4",3,"click"],["href","javascript:void(0)",1,"grey-text",3,"click"],[1,"mb-4","small","grey-text","text-center"],[1,"w-100"],["novalidate","",3,"ngSubmit","formGroup"],[1,"input-group","mb-4"],[1,"input-group-text","custom-input"],[1,"fas","fa-user","primary-text","fa-lg"],["formControlName","username","type","text","id","form-username","autocomplete","username","autocapitalize","none","tabindex","1","required","",1,"form-control","custom-input",3,"readonly","ngClass","placeholder"],[1,"fas","fa-lock","primary-text","fa-lg"],["formControlName","password","type","password","id","form-pass","autocomplete","new-password","tabindex","2","required","",1,"form-control","custom-input",3,"readonly","ngClass","placeholder"],["formControlName","passwordConfirm","type","password","id","form-pass-confirm","autocomplete","new-password","tabindex","2","required","",1,"form-control","custom-input",3,"readonly","ngClass","placeholder"],[1,"mt-3","w-100","d-flex","justify-content-between"],["type","button",1,"btn","btn-elegant","ms-0",3,"click","disabled"],["type","submit",1,"btn","btn-primary",3,"disabled"],["type","file","id","restoreFileUpload","accept","application/gzip, .gz",1,"form-control","custom-input","mb-3",3,"change"],["type","button",1,"btn","btn-primary","me-0",3,"click","disabled"],[1,"fas","fa-spinner","fa-pulse"],["id","output",1,"font-monospace","small","alert","alert-info","w-100","text-start","mt-1","mb-0"],["href","/login",1,"btn","btn-lg","btn-primary","mt-4"],[1,"mb-3"],["href","/",1,"btn","btn-lg","btn-primary"]],template:function(p,i){p&1&&(o(0,"div",0)(1,"div",1),u(2,"img",2),o(3,"div",3),u(4,"div",4),r(),z(5,ue,12,12,"div",5)(6,ge,31,39,"div",5)(7,he,15,12,"div",5)(8,ve,7,2,"div",5)(9,ye,10,9,"div",5),r()()),p&2&&(m("ngStyle",B(7,pe,i.backgroundStyle))("ngClass",B(9,de,!i.backgroundStyle)),n(4),O("width",i.progress+"%"),m("ngClass",B(11,ce,i.loading||i.restoreUploading)),M("aria-valuenow",i.progress),n(),T(i.step==="welcome"?5:i.step==="create-account"?6:i.step==="restore-backup"?7:L(13,me).includes(i.step)?8:i.step==="setup-complete"?9:-1))},dependencies:[H,R,Y,A,G,j,D,X,Z,J,Q,N,te],styles:["body{overflow:scroll!important} body.dark-mode .setup-card{background-color:#2b2b2b;color:#fff}.setup-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;-o-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%}}.setup-card[_ngcontent-%COMP%]{max-width:550px;border-radius:1rem;padding-right:25px;padding-left:25px;background-color:#ffffffe6}.setup-card[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%]:focus{background-color:inherit!important}@media screen and (max-width: 575px){.setup-card[_ngcontent-%COMP%]{margin-left:1em;margin-right:1em}}.homebridge-logo[_ngcontent-%COMP%]{margin-bottom:10px}.progress[_ngcontent-%COMP%]{background-color:#ddd}#output[_ngcontent-%COMP%]{height:200px;overflow-y:scroll;white-space:pre-wrap}"]})}return t})();export{He as SetupWizardComponent};
@@ -1 +0,0 @@
1
- import{a as b}from"./chunk-ODN4SLC6.js";import"./chunk-CSU4CRXM.js";import{d as k}from"./chunk-BR6USPEJ.js";import{b as w}from"./chunk-23H472HH.js";import{k as T,m as S}from"./chunk-BBLNIMTZ.js";import{a as C,b as $}from"./chunk-OBYXJY4V.js";import"./chunk-OMPHX32Y.js";import{Hc as g,Mb as d,Nb as f,Nc as m,Oc as c,Pc as y,Wb as r,Xb as i,Yb as l,Za as x,cb as n,dc as E,hc as h,ka as o,ob as _,uc as a,vc as s}from"./chunk-V2MV6MJL.js";var I=t=>({command:t});function D(t,u){if(t&1&&(r(0,"div",7),a(1),i()),t&2){let e=h();n(),s(e.error)}}function R(t,u){t&1&&(r(0,"p",9),a(1),m(2,"translate"),i(),r(3,"div",10)(4,"div",11),l(5,"i",12),i()()),t&2&&(n(),s(c(2,1,"restart.please_wait_while_server_restarts")))}function B(t,u){if(t&1&&(r(0,"div",8)(1,"p"),a(2),m(3,"translate"),i(),l(4,"p",13),m(5,"translate"),i()),t&2){let e=h();n(2),s(c(3,2,"platform.docker.server_long_time")),n(2),E("innerHTML",y(5,4,"platform.docker.run_with_restart",g(7,I,e.command)),x)}}var U=(()=>{class t{$api=o(S);$router=o(k);$settings=o(w);$toastr=o(T);$translate=o(C);$ws=o(b);checkTimeout;checkDelay;io;resp={};timeout=!1;error=!1;command='<span class="font-monospace">--restart=always</span>';ngOnInit(){this.io=this.$ws.connectToNamespace("status"),this.io.connected.subscribe(()=>{this.io.socket.emit("monitor-server-status"),this.$settings.getAppSettings().catch(()=>{})}),this.$api.put("/platform-tools/docker/restart-container",{}).subscribe({next:e=>{this.resp=e,this.checkIfServerUp()},error:e=>{this.error=this.$translate.instant("restart.toast_server_restart_error"),console.error(e),this.$toastr.error(this.$translate.instant("restart.toast_server_restart_error"),this.$translate.instant("toast.title_error"))}})}ngOnDestroy(){this.io.end(),clearTimeout(this.checkDelay),clearTimeout(this.checkTimeout)}checkIfServerUp(){this.checkDelay=setTimeout(()=>{this.io.socket.on("homebridge-status",e=>{(e.status==="up"||e.status==="pending")&&(this.$toastr.success(this.$translate.instant("platform.docker.container_restarted"),this.$translate.instant("toast.title_success")),this.$router.navigate(["/"]))})},1e4),this.checkTimeout=setTimeout(()=>{this.$toastr.warning(this.$translate.instant("restart.toast_server_restart_timeout"),this.$translate.instant("toast.title_warning"),{timeOut:1e4}),this.timeout=!0},6e4)}static \u0275fac=function(p){return new(p||t)};static \u0275cmp=_({type:t,selectors:[["ng-component"]],decls:14,vars:8,consts:[[1,"d-flex","justify-content-between"],[1,"primary-text","m-0"],[1,"my-4","align-items-center",2,"max-width","1000px","margin","auto"],[1,"w-100","text-center","primary-text","mb-5"],[1,"fab","fa-docker",2,"font-size","75px"],[1,"text-center"],[1,"primary-text","mb-4"],[1,"alert","alert-error","my-4"],[1,"alert","alert-warning","my-4"],[1,"grey-text"],[1,"justify-content-center","my-4"],[1,"restart-progress-box","primary-text"],[1,"fas","fa-spinner","fa-spin"],[1,"grey-text","mb-0",3,"innerHTML"]],template:function(p,v){p&1&&(r(0,"div",0)(1,"h3",1),a(2),m(3,"translate"),i()(),r(4,"div",2)(5,"div",3),l(6,"i",4),i(),r(7,"div",5)(8,"h4",6),a(9),m(10,"translate"),i(),d(11,D,2,1,"div",7)(12,R,6,3),d(13,B,6,9,"div",8),i()()),p&2&&(n(2),s(c(3,4,"menu.restart.title")),n(7),s(c(10,6,"platform.docker.title_restarting")),n(2),f(v.error?11:12),n(2),f(v.timeout?13:-1))},dependencies:[$],styles:[".restart-progress-box[_ngcontent-%COMP%]{font-size:22px;font-weight:300;margin-top:15px}"]})}return t})();export{U as ContainerRestartComponent};
@@ -1 +0,0 @@
1
- import{B as G,C as Q,c as $,d as C,e as B,f as O,g as T,j as w,m as q,q as z,r as D,y as H,z as A}from"./chunk-GGZZFW2G.js";import{b as K}from"./chunk-CSU4CRXM.js";import{d as U}from"./chunk-BR6USPEJ.js";import{b as J}from"./chunk-23H472HH.js";import"./chunk-BBLNIMTZ.js";import{b as j,d as W}from"./chunk-OBYXJY4V.js";import"./chunk-OMPHX32Y.js";import{Cd as P,Hc as f,M as I,Mb as u,Nb as c,Nc as l,Oc as d,Sb as m,Tb as r,Ub as a,Vb as s,Yc as b,Za as x,_c as L,cb as i,fc as E,h as y,hc as M,ka as p,md as N,ob as k,oc as v,pc as F,pd as V,uc as g,vc as h,w as S,wc as R}from"./chunk-V2MV6MJL.js";var Y=["password"],Z=["username"],ee=["otp"],te=e=>({background:e}),ie=e=>({anim:e}),X=e=>({"is-invalid":e});function ne(e,_){if(e&1&&(r(0,"div",8)(1,"span",12),s(2,"i",13),a(),s(3,"input",14,0),l(5,"translate"),a(),r(6,"div",8)(7,"span",12),s(8,"i",15),a(),s(9,"input",16,1),l(11,"translate"),a()),e&2){let n=M();i(3),m("placeholder",d(5,4,"users.label_username"))("ngClass",f(8,X,n.form.controls.username.dirty&&n.form.controls.username.errors)),i(6),m("placeholder",d(11,6,"users.label_password"))("ngClass",f(10,X,n.form.controls.password.dirty&&n.form.controls.password.errors))}}function oe(e,_){e&1&&(r(0,"div",8)(1,"span",12),s(2,"i",17),a(),s(3,"input",18,2),l(5,"translate"),a()),e&2&&(i(3),m("placeholder",d(5,1,"login.label_2fa_code")))}function ae(e,_){e&1&&(r(0,"div",9)(1,"div",12),s(2,"i",19),a(),r(3,"div",20)(4,"div",21),g(5),l(6,"translate"),a(),s(7,"div",22),l(8,"translate"),a()()),e&2&&(i(5),h(d(6,2,"login.invalid_credentials")),i(2),m("innerHTML",d(8,4,"login.invalid_credentials_2"),x))}function re(e,_){e&1&&(r(0,"div",9)(1,"div",12),s(2,"i",19),a(),r(3,"div",20)(4,"div",21),g(5),l(6,"translate"),a(),s(7,"div",22),l(8,"translate"),a()()),e&2&&(i(5),h(d(6,2,"login.invalid_code")),i(2),m("innerHTML",d(8,4,"login.invalid_credentials_2"),x))}var _e=(()=>{class e{$auth=p(K);$cdr=p(L);$router=p(U);$settings=p(J);targetRoute;validNonAdminRoutes=["/accessories","/plugins","/logs","/support"];passwordInput=b("password");usernameInput=b("username");otpInput=b("otp");backgroundStyle;invalidCredentials=!1;invalid2faCode=!1;twoFactorCodeRequired=!1;inProgress=!1;form;ngOnInit(){this.form=new T({username:new w(""),password:new w("")}),this.form.valueChanges.pipe(I(500)).subscribe(n=>{let o=this.passwordInput()?.nativeElement.value;o&&o!==n.password&&this.form.controls.password.setValue(o)}),this.targetRoute=window.sessionStorage.getItem("target_route")||"",this.setBackground()}ngAfterViewChecked(){this.$cdr.detectChanges()}onSubmit(){return y(this,null,function*(){this.invalidCredentials=!1,this.invalid2faCode=!1,this.inProgress=!0,document.getElementById("submit-button")?.blur();let n=this.passwordInput()?.nativeElement.value;n&&n!==this.form.get("password").value&&this.form.controls.password.setValue(n);let o=this.usernameInput()?.nativeElement.value;if(o&&o!==this.form.get("username").value&&this.form.controls.username.setValue(o),this.twoFactorCodeRequired){let t=this.otpInput()?.nativeElement.value;t&&t!==this.form.get("otp").value&&this.form.controls.username.setValue(t)}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(t){t.status===412?(this.form.controls.otp?(this.form.controls.otp.setErrors(["Invalid Code"]),this.invalid2faCode=!0):this.form.addControl("otp",new w("",[C.required,C.minLength(6),C.maxLength(6)])),this.twoFactorCodeRequired=!0,setTimeout(()=>{document.getElementById("form-ota").focus()},100)):this.invalidCredentials=!0}this.inProgress=!1})}setBackground(){return y(this,null,function*(){if(this.$settings.settingsLoaded||(yield S(this.$settings.onSettingsLoaded)),this.$settings.env.customWallpaperHash){let n=`${W.api.base}/auth/wallpaper/${this.$settings.env.customWallpaperHash}`;this.backgroundStyle=`url('${n}') center/cover`}})}static \u0275fac=function(o){return new(o||e)};static \u0275cmp=k({type:e,selectors:[["ng-component"]],viewQuery:function(o,t){o&1&&(v(t.passwordInput,Y,5),v(t.usernameInput,Z,5),v(t.otpInput,ee,5)),o&2&&F(3)},decls:15,vars:18,consts:[["username",""],["password",""],["otp",""],[1,"login-container","gradient","d-flex","align-items-start","justify-content-center",3,"ngStyle","ngClass"],[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","ngClass"],[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","ngClass"],[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(o,t){o&1&&(r(0,"div",3)(1,"div",4),s(2,"img",5),r(3,"form",6),E("ngSubmit",function(){return t.onSubmit()}),r(4,"h4",7),g(5),l(6,"translate"),a(),u(7,ne,12,12),u(8,oe,6,3,"div",8),u(9,ae,9,6,"div",9),u(10,re,9,6,"div",9),r(11,"div",10)(12,"button",11),g(13),l(14,"translate"),a()()()()()),o&2&&(m("ngStyle",f(14,te,t.backgroundStyle))("ngClass",f(16,ie,!t.backgroundStyle)),i(3),m("formGroup",t.form),i(2),h(d(6,10,"setup.welcome_to_homebridge")),i(2),c(t.twoFactorCodeRequired?-1:7),i(),c(t.twoFactorCodeRequired?8:-1),i(),c(t.invalidCredentials?9:-1),i(),c(t.invalid2faCode?10:-1),i(2),m("disabled",t.form.invalid),i(),R(" ",d(14,12,"form.button_continue")," "))},dependencies:[V,G,q,$,B,O,H,A,Q,z,D,N,P,j],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;-o-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 e})();export{_e as LoginComponent};