homebridge-config-ui-x 5.9.1-beta.1 → 5.9.1-beta.11

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 (383) hide show
  1. package/CHANGELOG.md +23 -3
  2. package/TODO-MATTER.md +15 -0
  3. package/dist/app.controller.d.ts +1 -1
  4. package/dist/app.controller.js +14 -12
  5. package/dist/app.controller.js.map +1 -1
  6. package/dist/app.gateway.js +7 -10
  7. package/dist/app.gateway.js.map +1 -1
  8. package/dist/app.module.js +42 -43
  9. package/dist/app.module.js.map +1 -1
  10. package/dist/app.service.js +4 -7
  11. package/dist/app.service.js.map +1 -1
  12. package/dist/bin/base-platform.d.ts +1 -1
  13. package/dist/bin/base-platform.js +11 -17
  14. package/dist/bin/base-platform.js.map +1 -1
  15. package/dist/bin/fork.js +7 -45
  16. package/dist/bin/fork.js.map +1 -1
  17. package/dist/bin/hb-service.js +224 -243
  18. package/dist/bin/hb-service.js.map +1 -1
  19. package/dist/bin/platforms/darwin.d.ts +1 -1
  20. package/dist/bin/platforms/darwin.js +61 -65
  21. package/dist/bin/platforms/darwin.js.map +1 -1
  22. package/dist/bin/platforms/freebsd.d.ts +1 -1
  23. package/dist/bin/platforms/freebsd.js +42 -47
  24. package/dist/bin/platforms/freebsd.js.map +1 -1
  25. package/dist/bin/platforms/linux.d.ts +1 -1
  26. package/dist/bin/platforms/linux.js +127 -132
  27. package/dist/bin/platforms/linux.js.map +1 -1
  28. package/dist/bin/platforms/win32.d.ts +1 -1
  29. package/dist/bin/platforms/win32.js +30 -36
  30. package/dist/bin/platforms/win32.js.map +1 -1
  31. package/dist/bin/standalone.js +15 -53
  32. package/dist/bin/standalone.js.map +1 -1
  33. package/dist/core/auth/auth.controller.d.ts +5 -4
  34. package/dist/core/auth/auth.controller.js +40 -39
  35. package/dist/core/auth/auth.controller.js.map +1 -1
  36. package/dist/core/auth/auth.dto.js +17 -18
  37. package/dist/core/auth/auth.dto.js.map +1 -1
  38. package/dist/core/auth/auth.module.js +28 -31
  39. package/dist/core/auth/auth.module.js.map +1 -1
  40. package/dist/core/auth/auth.service.d.ts +3 -3
  41. package/dist/core/auth/auth.service.js +65 -62
  42. package/dist/core/auth/auth.service.js.map +1 -1
  43. package/dist/core/auth/guards/admin.guard.js +4 -7
  44. package/dist/core/auth/guards/admin.guard.js.map +1 -1
  45. package/dist/core/auth/guards/custom.guard.js +6 -9
  46. package/dist/core/auth/guards/custom.guard.js.map +1 -1
  47. package/dist/core/auth/guards/ws-admin-guard.d.ts +2 -2
  48. package/dist/core/auth/guards/ws-admin-guard.js +13 -11
  49. package/dist/core/auth/guards/ws-admin-guard.js.map +1 -1
  50. package/dist/core/auth/guards/ws.guard.d.ts +2 -2
  51. package/dist/core/auth/guards/ws.guard.js +13 -11
  52. package/dist/core/auth/guards/ws.guard.js.map +1 -1
  53. package/dist/core/auth/jwt.strategy.d.ts +3 -2
  54. package/dist/core/auth/jwt.strategy.js +21 -16
  55. package/dist/core/auth/jwt.strategy.js.map +1 -1
  56. package/dist/core/config/config.interfaces.d.ts +8 -1
  57. package/dist/core/config/config.interfaces.js +1 -2
  58. package/dist/core/config/config.module.js +8 -10
  59. package/dist/core/config/config.module.js.map +1 -1
  60. package/dist/core/config/config.service.d.ts +4 -3
  61. package/dist/core/config/config.service.js +90 -83
  62. package/dist/core/config/config.service.js.map +1 -1
  63. package/dist/core/config/config.startup.d.ts +1 -1
  64. package/dist/core/config/config.startup.js +23 -28
  65. package/dist/core/config/config.startup.js.map +1 -1
  66. package/dist/core/feature-flags/feature-flags.registry.js +2 -5
  67. package/dist/core/feature-flags/feature-flags.registry.js.map +1 -1
  68. package/dist/core/homebridge-ipc/homebridge-ipc.module.js +11 -14
  69. package/dist/core/homebridge-ipc/homebridge-ipc.module.js.map +1 -1
  70. package/dist/core/homebridge-ipc/homebridge-ipc.service.d.ts +4 -4
  71. package/dist/core/homebridge-ipc/homebridge-ipc.service.js +25 -19
  72. package/dist/core/homebridge-ipc/homebridge-ipc.service.js.map +1 -1
  73. package/dist/core/logger/logger.module.js +8 -10
  74. package/dist/core/logger/logger.module.js.map +1 -1
  75. package/dist/core/logger/logger.service.js +13 -23
  76. package/dist/core/logger/logger.service.js.map +1 -1
  77. package/dist/core/node-pty/node-pty.module.js +7 -10
  78. package/dist/core/node-pty/node-pty.module.js.map +1 -1
  79. package/dist/core/node-pty/node-pty.service.js +6 -11
  80. package/dist/core/node-pty/node-pty.service.js.map +1 -1
  81. package/dist/core/node-version.constants.js +4 -11
  82. package/dist/core/node-version.constants.js.map +1 -1
  83. package/dist/core/scheduler/scheduler.module.js +15 -10
  84. package/dist/core/scheduler/scheduler.module.js.map +1 -1
  85. package/dist/core/scheduler/scheduler.service.d.ts +12 -1
  86. package/dist/core/scheduler/scheduler.service.js +101 -13
  87. package/dist/core/scheduler/scheduler.service.js.map +1 -1
  88. package/dist/core/spa/spa-html.service.js +9 -15
  89. package/dist/core/spa/spa-html.service.js.map +1 -1
  90. package/dist/core/spa/spa.filter.d.ts +1 -1
  91. package/dist/core/spa/spa.filter.js +11 -16
  92. package/dist/core/spa/spa.filter.js.map +1 -1
  93. package/dist/core/ssl/ssl-cert-generator.service.js +34 -36
  94. package/dist/core/ssl/ssl-cert-generator.service.js.map +1 -1
  95. package/dist/env-setup.d.ts +1 -0
  96. package/dist/env-setup.js +7 -0
  97. package/dist/env-setup.js.map +1 -0
  98. package/dist/globalDefaults.d.ts +1 -0
  99. package/dist/globalDefaults.js +1 -0
  100. package/dist/index.d.ts +1 -1
  101. package/dist/index.js +16 -19
  102. package/dist/index.js.map +1 -1
  103. package/dist/main.d.ts +5 -3
  104. package/dist/main.js +44 -51
  105. package/dist/main.js.map +1 -1
  106. package/dist/modules/accessories/accessories.controller.d.ts +3 -3
  107. package/dist/modules/accessories/accessories.controller.js +28 -29
  108. package/dist/modules/accessories/accessories.controller.js.map +1 -1
  109. package/dist/modules/accessories/accessories.dto.js +11 -13
  110. package/dist/modules/accessories/accessories.dto.js.map +1 -1
  111. package/dist/modules/accessories/accessories.gateway.d.ts +2 -2
  112. package/dist/modules/accessories/accessories.gateway.js +18 -16
  113. package/dist/modules/accessories/accessories.gateway.js.map +1 -1
  114. package/dist/modules/accessories/accessories.interfaces.d.ts +94 -0
  115. package/dist/modules/accessories/accessories.interfaces.js +2 -0
  116. package/dist/modules/accessories/accessories.interfaces.js.map +1 -0
  117. package/dist/modules/accessories/accessories.module.js +19 -20
  118. package/dist/modules/accessories/accessories.module.js.map +1 -1
  119. package/dist/modules/accessories/accessories.service.d.ts +23 -5
  120. package/dist/modules/accessories/accessories.service.js +316 -51
  121. package/dist/modules/accessories/accessories.service.js.map +1 -1
  122. package/dist/modules/backup/backup.controller.d.ts +4 -4
  123. package/dist/modules/backup/backup.controller.js +68 -67
  124. package/dist/modules/backup/backup.controller.js.map +1 -1
  125. package/dist/modules/backup/backup.gateway.d.ts +4 -4
  126. package/dist/modules/backup/backup.gateway.js +25 -21
  127. package/dist/modules/backup/backup.gateway.js.map +1 -1
  128. package/dist/modules/backup/backup.module.js +22 -25
  129. package/dist/modules/backup/backup.module.js.map +1 -1
  130. package/dist/modules/backup/backup.service.d.ts +5 -5
  131. package/dist/modules/backup/backup.service.js +143 -133
  132. package/dist/modules/backup/backup.service.js.map +1 -1
  133. package/dist/modules/child-bridges/child-bridges.gateway.d.ts +3 -3
  134. package/dist/modules/child-bridges/child-bridges.gateway.js +23 -21
  135. package/dist/modules/child-bridges/child-bridges.gateway.js.map +1 -1
  136. package/dist/modules/child-bridges/child-bridges.interfaces.js +1 -2
  137. package/dist/modules/child-bridges/child-bridges.module.js +19 -22
  138. package/dist/modules/child-bridges/child-bridges.module.js.map +1 -1
  139. package/dist/modules/child-bridges/child-bridges.service.d.ts +3 -3
  140. package/dist/modules/child-bridges/child-bridges.service.js +15 -11
  141. package/dist/modules/child-bridges/child-bridges.service.js.map +1 -1
  142. package/dist/modules/config-editor/config-editor.controller.d.ts +13 -11
  143. package/dist/modules/config-editor/config-editor.controller.js +168 -103
  144. package/dist/modules/config-editor/config-editor.controller.js.map +1 -1
  145. package/dist/modules/config-editor/config-editor.dto.d.ts +6 -0
  146. package/dist/modules/config-editor/config-editor.dto.js +40 -0
  147. package/dist/modules/config-editor/config-editor.dto.js.map +1 -0
  148. package/dist/modules/config-editor/config-editor.module.js +21 -24
  149. package/dist/modules/config-editor/config-editor.module.js.map +1 -1
  150. package/dist/modules/config-editor/config-editor.service.d.ts +11 -8
  151. package/dist/modules/config-editor/config-editor.service.js +123 -66
  152. package/dist/modules/config-editor/config-editor.service.js.map +1 -1
  153. package/dist/modules/custom-plugins/custom-plugins.module.js +10 -13
  154. package/dist/modules/custom-plugins/custom-plugins.module.js.map +1 -1
  155. package/dist/modules/custom-plugins/homebridge-deconz/homebridge-deconz.controller.d.ts +2 -2
  156. package/dist/modules/custom-plugins/homebridge-deconz/homebridge-deconz.controller.js +21 -19
  157. package/dist/modules/custom-plugins/homebridge-deconz/homebridge-deconz.controller.js.map +1 -1
  158. package/dist/modules/custom-plugins/homebridge-deconz/homebridge-deconz.module.js +14 -17
  159. package/dist/modules/custom-plugins/homebridge-deconz/homebridge-deconz.module.js.map +1 -1
  160. package/dist/modules/custom-plugins/homebridge-deconz/homebridge-deconz.service.d.ts +2 -2
  161. package/dist/modules/custom-plugins/homebridge-deconz/homebridge-deconz.service.js +18 -15
  162. package/dist/modules/custom-plugins/homebridge-deconz/homebridge-deconz.service.js.map +1 -1
  163. package/dist/modules/custom-plugins/homebridge-hue/homebridge-hue.controller.d.ts +2 -2
  164. package/dist/modules/custom-plugins/homebridge-hue/homebridge-hue.controller.js +21 -19
  165. package/dist/modules/custom-plugins/homebridge-hue/homebridge-hue.controller.js.map +1 -1
  166. package/dist/modules/custom-plugins/homebridge-hue/homebridge-hue.module.js +14 -17
  167. package/dist/modules/custom-plugins/homebridge-hue/homebridge-hue.module.js.map +1 -1
  168. package/dist/modules/custom-plugins/homebridge-hue/homebridge-hue.service.d.ts +2 -2
  169. package/dist/modules/custom-plugins/homebridge-hue/homebridge-hue.service.js +18 -15
  170. package/dist/modules/custom-plugins/homebridge-hue/homebridge-hue.service.js.map +1 -1
  171. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.controller.d.ts +2 -2
  172. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.controller.js +18 -19
  173. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.controller.js.map +1 -1
  174. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.gateway.d.ts +2 -2
  175. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.gateway.js +15 -13
  176. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.gateway.js.map +1 -1
  177. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.module.js +18 -21
  178. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.module.js.map +1 -1
  179. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.d.ts +8 -8
  180. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js +47 -41
  181. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js.map +1 -1
  182. package/dist/modules/log/log.gateway.d.ts +3 -3
  183. package/dist/modules/log/log.gateway.js +15 -13
  184. package/dist/modules/log/log.gateway.js.map +1 -1
  185. package/dist/modules/log/log.interfaces.js +1 -2
  186. package/dist/modules/log/log.module.js +14 -17
  187. package/dist/modules/log/log.module.js.map +1 -1
  188. package/dist/modules/log/log.service.d.ts +5 -5
  189. package/dist/modules/log/log.service.js +47 -43
  190. package/dist/modules/log/log.service.js.map +1 -1
  191. package/dist/modules/platform-tools/docker/docker.controller.d.ts +1 -1
  192. package/dist/modules/platform-tools/docker/docker.controller.js +24 -25
  193. package/dist/modules/platform-tools/docker/docker.controller.js.map +1 -1
  194. package/dist/modules/platform-tools/docker/docker.module.js +14 -17
  195. package/dist/modules/platform-tools/docker/docker.module.js.map +1 -1
  196. package/dist/modules/platform-tools/docker/docker.service.d.ts +2 -2
  197. package/dist/modules/platform-tools/docker/docker.service.js +20 -16
  198. package/dist/modules/platform-tools/docker/docker.service.js.map +1 -1
  199. package/dist/modules/platform-tools/hb-service/hb-service.controller.d.ts +2 -2
  200. package/dist/modules/platform-tools/hb-service/hb-service.controller.js +35 -36
  201. package/dist/modules/platform-tools/hb-service/hb-service.controller.js.map +1 -1
  202. package/dist/modules/platform-tools/hb-service/hb-service.dto.js +20 -19
  203. package/dist/modules/platform-tools/hb-service/hb-service.dto.js.map +1 -1
  204. package/dist/modules/platform-tools/hb-service/hb-service.module.js +14 -17
  205. package/dist/modules/platform-tools/hb-service/hb-service.module.js.map +1 -1
  206. package/dist/modules/platform-tools/hb-service/hb-service.service.d.ts +3 -3
  207. package/dist/modules/platform-tools/hb-service/hb-service.service.js +37 -30
  208. package/dist/modules/platform-tools/hb-service/hb-service.service.js.map +1 -1
  209. package/dist/modules/platform-tools/linux/linux.controller.d.ts +1 -1
  210. package/dist/modules/platform-tools/linux/linux.controller.js +23 -21
  211. package/dist/modules/platform-tools/linux/linux.controller.js.map +1 -1
  212. package/dist/modules/platform-tools/linux/linux.module.js +14 -17
  213. package/dist/modules/platform-tools/linux/linux.module.js.map +1 -1
  214. package/dist/modules/platform-tools/linux/linux.service.d.ts +2 -2
  215. package/dist/modules/platform-tools/linux/linux.service.js +18 -14
  216. package/dist/modules/platform-tools/linux/linux.service.js.map +1 -1
  217. package/dist/modules/platform-tools/platform-tools.module.js +12 -15
  218. package/dist/modules/platform-tools/platform-tools.module.js.map +1 -1
  219. package/dist/modules/platform-tools/terminal/terminal.controller.d.ts +1 -1
  220. package/dist/modules/platform-tools/terminal/terminal.controller.js +15 -13
  221. package/dist/modules/platform-tools/terminal/terminal.controller.js.map +1 -1
  222. package/dist/modules/platform-tools/terminal/terminal.gateway.d.ts +2 -2
  223. package/dist/modules/platform-tools/terminal/terminal.gateway.js +17 -15
  224. package/dist/modules/platform-tools/terminal/terminal.gateway.js.map +1 -1
  225. package/dist/modules/platform-tools/terminal/terminal.interfaces.js +1 -2
  226. package/dist/modules/platform-tools/terminal/terminal.module.js +18 -21
  227. package/dist/modules/platform-tools/terminal/terminal.module.js.map +1 -1
  228. package/dist/modules/platform-tools/terminal/terminal.service.d.ts +7 -7
  229. package/dist/modules/platform-tools/terminal/terminal.service.js +33 -28
  230. package/dist/modules/platform-tools/terminal/terminal.service.js.map +1 -1
  231. package/dist/modules/plugins/plugins.controller.d.ts +12 -7
  232. package/dist/modules/plugins/plugins.controller.js +100 -52
  233. package/dist/modules/plugins/plugins.controller.js.map +1 -1
  234. package/dist/modules/plugins/plugins.dto.js +26 -24
  235. package/dist/modules/plugins/plugins.dto.js.map +1 -1
  236. package/dist/modules/plugins/plugins.gateway.d.ts +5 -5
  237. package/dist/modules/plugins/plugins.gateway.js +38 -34
  238. package/dist/modules/plugins/plugins.gateway.js.map +1 -1
  239. package/dist/modules/plugins/plugins.interfaces.js +1 -2
  240. package/dist/modules/plugins/plugins.module.js +27 -26
  241. package/dist/modules/plugins/plugins.module.js.map +1 -1
  242. package/dist/modules/plugins/plugins.service.d.ts +26 -13
  243. package/dist/modules/plugins/plugins.service.js +365 -203
  244. package/dist/modules/plugins/plugins.service.js.map +1 -1
  245. package/dist/modules/server/server.controller.d.ts +7 -7
  246. package/dist/modules/server/server.controller.js +208 -205
  247. package/dist/modules/server/server.controller.js.map +1 -1
  248. package/dist/modules/server/server.dto.js +13 -16
  249. package/dist/modules/server/server.dto.js.map +1 -1
  250. package/dist/modules/server/server.module.js +23 -26
  251. package/dist/modules/server/server.module.js.map +1 -1
  252. package/dist/modules/server/server.service.d.ts +6 -6
  253. package/dist/modules/server/server.service.js +202 -224
  254. package/dist/modules/server/server.service.js.map +1 -1
  255. package/dist/modules/setup-wizard/setup-wizard.controller.d.ts +3 -3
  256. package/dist/modules/setup-wizard/setup-wizard.controller.js +19 -20
  257. package/dist/modules/setup-wizard/setup-wizard.controller.js.map +1 -1
  258. package/dist/modules/setup-wizard/setup-wizard.gateway.d.ts +4 -4
  259. package/dist/modules/setup-wizard/setup-wizard.gateway.js +25 -21
  260. package/dist/modules/setup-wizard/setup-wizard.gateway.js.map +1 -1
  261. package/dist/modules/setup-wizard/setup-wizard.guard.d.ts +2 -2
  262. package/dist/modules/setup-wizard/setup-wizard.guard.js +11 -9
  263. package/dist/modules/setup-wizard/setup-wizard.guard.js.map +1 -1
  264. package/dist/modules/setup-wizard/setup-wizard.module.js +12 -15
  265. package/dist/modules/setup-wizard/setup-wizard.module.js.map +1 -1
  266. package/dist/modules/status/status.controller.d.ts +5 -5
  267. package/dist/modules/status/status.controller.js +40 -36
  268. package/dist/modules/status/status.controller.js.map +1 -1
  269. package/dist/modules/status/status.gateway.d.ts +11 -11
  270. package/dist/modules/status/status.gateway.js +51 -47
  271. package/dist/modules/status/status.gateway.js.map +1 -1
  272. package/dist/modules/status/status.interfaces.js +2 -5
  273. package/dist/modules/status/status.interfaces.js.map +1 -1
  274. package/dist/modules/status/status.module.js +26 -29
  275. package/dist/modules/status/status.module.js.map +1 -1
  276. package/dist/modules/status/status.service.d.ts +13 -13
  277. package/dist/modules/status/status.service.js +100 -88
  278. package/dist/modules/status/status.service.js.map +1 -1
  279. package/dist/modules/users/users.controller.d.ts +3 -3
  280. package/dist/modules/users/users.controller.js +59 -60
  281. package/dist/modules/users/users.controller.js.map +1 -1
  282. package/dist/modules/users/users.dto.js +51 -45
  283. package/dist/modules/users/users.dto.js.map +1 -1
  284. package/dist/modules/users/users.module.js +14 -17
  285. package/dist/modules/users/users.module.js.map +1 -1
  286. package/dist/self-check.js +25 -25
  287. package/dist/self-check.js.map +1 -1
  288. package/package.json +14 -12
  289. package/public/3rdpartylicenses.txt +26 -26
  290. package/public/{chunk-AI6E5JVH.js → chunk-24KMNOUL.js} +1 -1
  291. package/public/{chunk-RMZRXORR.js → chunk-2JKVDOVH.js} +1 -1
  292. package/public/chunk-2NCYMI5G.js +1 -0
  293. package/public/{chunk-TOYVIOBH.js → chunk-53XRPANC.js} +1 -1
  294. package/public/{chunk-5ETJWAIW.js → chunk-57Y3L52Q.js} +1 -1
  295. package/public/{chunk-3E2NZ5JW.js → chunk-5WXUZ3UB.js} +1 -1
  296. package/public/chunk-6JOKZWRV.js +1 -0
  297. package/public/{chunk-W3SNJ7TC.js → chunk-6KOTOEN7.js} +1 -1
  298. package/public/{chunk-WLGXJQPD.js → chunk-6RX377TT.js} +1 -1
  299. package/public/chunk-6WKO2T4Z.js +1 -0
  300. package/public/chunk-757LRGXE.js +68 -0
  301. package/public/{chunk-EAGKQ5OJ.js → chunk-7K67C3PU.js} +1 -1
  302. package/public/chunk-A2XCOYWA.js +1 -0
  303. package/public/{chunk-2KEG7SYT.js → chunk-A6QZW5FF.js} +1 -1
  304. package/public/chunk-ACO7OQZJ.js +1 -0
  305. package/public/{chunk-LWAL5JUG.js → chunk-AFJZVBKJ.js} +1 -1
  306. package/public/{chunk-325LPX6W.js → chunk-AFRZCXEB.js} +1 -1
  307. package/public/{chunk-6KT3BYU6.js → chunk-B65DT3FC.js} +1 -1
  308. package/public/{chunk-ADW6BF5G.js → chunk-BELFJ2SD.js} +1 -1
  309. package/public/chunk-DG6RGETW.js +1 -0
  310. package/public/{chunk-D5RKKI2A.js → chunk-DWAKEAKY.js} +1 -1
  311. package/public/chunk-EACHMWEA.js +50 -0
  312. package/public/{chunk-X5AKILHJ.js → chunk-ESOTGGKX.js} +1 -1
  313. package/public/chunk-F7DXQT5T.js +1 -0
  314. package/public/chunk-FS5QC22S.js +1 -0
  315. package/public/{chunk-4QXLJX7D.js → chunk-FSSORWXC.js} +1 -1
  316. package/public/chunk-GCSYCY2Y.js +1 -0
  317. package/public/{chunk-7UDDRMZZ.js → chunk-H22EEHWT.js} +1 -1
  318. package/public/{chunk-UF2IM5BE.js → chunk-HHHD7NH4.js} +1 -1
  319. package/public/{chunk-2FNQEOXF.js → chunk-HZFYCQBZ.js} +1 -1
  320. package/public/{chunk-OS2SEJZU.js → chunk-I24Z7SXB.js} +1 -1
  321. package/public/{chunk-TSFGO3MA.js → chunk-IJNJ3FHH.js} +1 -1
  322. package/public/{chunk-NKNWXFAK.js → chunk-JXJXX7ID.js} +1 -1
  323. package/public/chunk-KGXF4YD5.js +1 -0
  324. package/public/{chunk-YH6MRXGX.js → chunk-KLZ3D7WG.js} +1 -1
  325. package/public/{chunk-732XLY23.js → chunk-KVEQ2HM3.js} +3 -3
  326. package/public/{chunk-73TX7DHV.js → chunk-LGJ37P4E.js} +1 -1
  327. package/public/chunk-LMQCEFY5.js +19 -0
  328. package/public/{chunk-2CNQY2E7.js → chunk-LYPHF4BI.js} +1 -1
  329. package/public/{chunk-CYBDQV2B.js → chunk-MNT5ZGV3.js} +1 -1
  330. package/public/{chunk-SY4VNLXW.js → chunk-NPZDFVKF.js} +1 -1
  331. package/public/{chunk-EVND2DL5.js → chunk-NQ3EUNKR.js} +1 -1
  332. package/public/chunk-O63KCVSC.js +1 -0
  333. package/public/{chunk-2UOYBCTN.js → chunk-P7VMCG7G.js} +1 -1
  334. package/public/{chunk-OAHDGV32.js → chunk-PE5T5OTD.js} +1 -1
  335. package/public/{chunk-LZOHFRHN.js → chunk-QIB6F6O5.js} +1 -1
  336. package/public/{chunk-OK5EJ7US.js → chunk-QWSS6CWX.js} +1 -1
  337. package/public/{chunk-YNONXMOG.js → chunk-R6KWC4OQ.js} +1 -1
  338. package/public/chunk-RERUZJD4.js +5 -0
  339. package/public/{chunk-7IYTG6GP.js → chunk-S6M53YYQ.js} +1 -1
  340. package/public/{chunk-3IZSIVEA.js → chunk-TAYBEUKS.js} +1 -1
  341. package/public/{chunk-ASKB5DLO.js → chunk-UOYGACIL.js} +1 -1
  342. package/public/chunk-UUBGHMJO.js +1 -0
  343. package/public/chunk-VN4YJ4DW.js +1 -0
  344. package/public/chunk-VTCNWWXF.js +1 -0
  345. package/public/chunk-VWYLCYWH.js +1 -0
  346. package/public/chunk-VYNFC5TY.js +1 -0
  347. package/public/{chunk-WWSLIQVD.js → chunk-W6VJMRO6.js} +1 -1
  348. package/public/{chunk-3IJXQMYZ.js → chunk-WFVVY4KI.js} +1 -1
  349. package/public/chunk-WJVSACF7.js +4 -0
  350. package/public/{chunk-BLT2YCDN.js → chunk-WUEH3CVV.js} +1 -1
  351. package/public/chunk-WXDPCDNZ.js +2 -0
  352. package/public/{chunk-BTBGWLKK.js → chunk-XJ7EHBZC.js} +1 -1
  353. package/public/{chunk-ZEI3HZ6P.js → chunk-XQCLQKCG.js} +2 -2
  354. package/public/{chunk-ZJJ3EOBP.js → chunk-XUHWQHKX.js} +1 -1
  355. package/public/{chunk-VYC5JLE6.js → chunk-YFMEPI62.js} +1 -1
  356. package/public/{chunk-5T4JHJYL.js → chunk-YHIIRNVF.js} +1 -1
  357. package/public/{chunk-QK4V5DVW.js → chunk-YT7L7BBI.js} +1 -1
  358. package/public/index.html +2 -2
  359. package/public/{main-27RPBS22.js → main-WBUEOYPF.js} +1 -1
  360. package/public/{styles-CSF457UW.css → styles-WNHDEKE4.css} +1 -1
  361. package/scripts/extract-plugin-alias.js +8 -4
  362. package/public/chunk-2LXNPXT5.js +0 -1
  363. package/public/chunk-3XDYZNNE.js +0 -1
  364. package/public/chunk-57DUDNZJ.js +0 -1
  365. package/public/chunk-FM6ZYPKR.js +0 -4
  366. package/public/chunk-JJ7TVAIH.js +0 -5
  367. package/public/chunk-L43N56JA.js +0 -1
  368. package/public/chunk-L5I3DZ23.js +0 -1
  369. package/public/chunk-LH2LMHIZ.js +0 -1
  370. package/public/chunk-N2TWGDNX.js +0 -1
  371. package/public/chunk-O4SS7KVP.js +0 -40
  372. package/public/chunk-ONTEIYY3.js +0 -19
  373. package/public/chunk-P7TZIGJS.js +0 -50
  374. package/public/chunk-Q2IS3QQY.js +0 -1
  375. package/public/chunk-QQ5VZZQG.js +0 -1
  376. package/public/chunk-RYTGW6B7.js +0 -1
  377. package/public/chunk-SOT54YHI.js +0 -1
  378. package/public/chunk-TGZNYEGN.js +0 -1
  379. package/public/chunk-U5JF2ZOK.js +0 -1
  380. package/public/chunk-UNGEHXRN.js +0 -1
  381. package/public/chunk-VEGMNMLG.js +0 -1
  382. package/public/chunk-Y5FP6C55.js +0 -2
  383. package/public/chunk-YYJG2ENF.js +0 -1
@@ -0,0 +1 @@
1
+ import{a as pe}from"./chunk-TUN7H57E.js";import{a as _e}from"./chunk-ESOTGGKX.js";import{a as he}from"./chunk-XJ7EHBZC.js";import{a as me}from"./chunk-JXJXX7ID.js";import{a as ue}from"./chunk-YFMEPI62.js";import{a as ge}from"./chunk-BELFJ2SD.js";import{a as Le,c as Ne}from"./chunk-7K67C3PU.js";import{a as ze}from"./chunk-R6KWC4OQ.js";import{a as Ht}from"./chunk-PE5T5OTD.js";import{a as w,h as $t,n as D,o as gt,u as Et}from"./chunk-XQCLQKCG.js";import{A as re,C as _t,D as ht,b as mt,c as kt,e as ut,f as Jt,i as Zt,j as T,k as Xt,l as It,m as Yt,n as te,p as wt,s as ee,t as ie,v as ne,w as ae,x as oe,z as se}from"./chunk-KGXF4YD5.js";import{a as ce}from"./chunk-AFRZCXEB.js";import"./chunk-6RX377TT.js";import{b as X}from"./chunk-GCSYCY2Y.js";import{c as Mt,d as ft,f as st,g as bt,k as L,l as H,n as N,p as de,q as z}from"./chunk-A2XCOYWA.js";import{e as Z,f as le}from"./chunk-MNT5ZGV3.js";import{$b as g,Ab as R,Bb as P,Cb as j,Gc as jt,Ib as $,Jb as J,La as nt,Lb as v,Ma as Ot,Mb as G,Nb as h,P as E,Qa as i,Rb as rt,Rc as Y,Sb as lt,Tb as dt,Wb as Vt,Wc as pt,Xb as at,Yc as Gt,Zb as Ut,_b as d,a as Pt,ac as C,b as Rt,bc as vt,db as M,fc as xt,fd as qt,g as At,gc as St,gd as Qt,h as x,hc as yt,ic as ot,jc as Wt,lc as Kt,mc as V,na as k,nc as A,oc as ct,pb as b,qb as u,rb as _,sa as S,sc as r,ta as y,tb as U,tc as l,ub as W,uc as q,vb as K,wb as m,x as F,xb as a,ya as zt,yb as o,zb as p}from"./chunk-RERUZJD4.js";function Ce(e,c=64){return!e||e.length>c?!1:/^[\p{L}\p{N}][\p{L}\p{N} ']*[\p{L}\p{N}]$/u.test(e)}function it(e,c={}){let{min:t=1024,max:n=65535,allowEmpty:s=!1,reservedPorts:f=[],conflictPorts:B=[]}=c;return s&&!e&&e!==0?!0:!(typeof e!="number"||!Number.isInteger(e)||e<t||e>n||f.includes(e)||B.includes(e))}function Dt(e,c,t={}){let{min:n=1024,max:s=65535}=t;return it(e,{min:n,max:s})?it(c,{min:n,max:s})?c<=e?{isValid:!1,error:"End port must be greater than start port"}:{isValid:!0}:{isValid:!1,error:"Invalid end port"}:{isValid:!1,error:"Invalid start port"}}function fe(e,c={}){let{min:t=0,max:n=Number.MAX_SAFE_INTEGER,allowZero:s=!0,allowEmpty:f=!1}=c;return f&&!e&&e!==0?!0:!(typeof e!="number"||!Number.isInteger(e)||!s&&e===0||e<t||e>n)}function Lt(e,c={}){let{allowDisabled:t=!0,maxSize:n=100*1024*1024}=c;return t&&e===-1?!0:fe(e,{min:0,max:n,allowZero:!0})}function be(e,c=1e4){return fe(e,{min:0,max:c,allowZero:!0})}function ve(e){if(!e||e.trim()==="")return!0;let c=e.trim().split(/\s+/);if(c.length!==5)return!1;let[t,n,s,f,B]=c;return[Ct(t,0,59),Ct(n,0,23),Ct(s,1,31),Ct(f,1,12),Ct(B,0,7)].every(Boolean)}function Ct(e,c,t){if(e==="*")return!0;if(e.includes("/")){let[n,s]=e.split("/");if(!s.match(/^\d+$/)||Number.parseInt(s,10)<=0)return!1;if(n==="*")return!0;e=n}if(e.includes(","))return e.split(",").every(s=>Ct(s.trim(),c,t));if(e.includes("-")){let[n,s]=e.split("-");if(!n.match(/^\d+$/)||!s.match(/^\d+$/))return!1;let f=Number.parseInt(n,10),B=Number.parseInt(s,10);return f>=c&&f<=t&&B>=c&&B<=t&&f<=B}if(e.match(/^\d+$/)){let n=Number.parseInt(e,10);return n>=c&&n<=t}return!1}var Oe=[5353,8080,8443];function Tt(){return Oe}function xe(e){return e==null||e===""?null:typeof e=="string"?e.trim()||null:e}function Ft(e,c){let t=xe(e),n=xe(c);if(Array.isArray(t)&&Array.isArray(n)){if(t.length!==n.length)return!1;let s=[...t].map(String).sort(),f=[...n].map(String).sort();return s.every((B,O)=>B===f[O])}return t===n}var Se=(e,c)=>({"green-text":e,"grey-text":c});function Ue(e,c){if(e&1){let t=$();a(0,"li",9)(1,"div",10),d(2),p(3,"br"),a(4,"small",11),p(5,"i",12),r(6,"translate"),d(7," \xB7 "),a(8,"span",13),d(9),o(),d(10),r(11,"titlecase"),o()(),a(12,"div",14)(13,"input",23),r(14,"translate"),v("click",function(){let s=S(t).$implicit,f=h();return y(f.toggleList(s._username))}),o(),p(15,"label",24),o()()}if(e&2){let t=c.$implicit,n=h();i(2),C(" ",t.name," "),i(3),m("ngbTooltip",l(6,11,t._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired"))("openDelay",150)("ngClass",A(17,Se,t._isPaired,!t._isPaired)),i(4),g(t._username),i(),C(" \xB7 ",l(11,13,t._category)," "),i(3),m("id","hidePluginUpdates_"+t._username)("checked",!n.isInList(t._username))("disabled",n.clicked),b("aria-label",l(14,15,"form.button_allow")+" "+t.name),i(2),m("for","hidePluginUpdates_"+t._username)}}function We(e,c){e&1&&(d(0),r(1,"translate")),e&2&&C(" ",l(1,1,"form.button_save")," ")}function Ke(e,c){e&1&&p(0,"i",22)}var ye=(()=>{class e{$activeModal=k(D);$api=k(z);$settings=k(X);$toastr=k(N);$translate=k(L);originalBlacklist=[];updatedBlacklist=[];existingBlacklist=[];clicked=!1;mainPairing={};pairings=[];get blacklistHasUpdated(){return this.updatedBlacklist.join(",")!==this.originalBlacklist.join(",")}ngOnInit(){return x(this,null,function*(){this.updatedBlacklist=this.existingBlacklist.map(t=>t.trim().toUpperCase()).sort((t,n)=>t.localeCompare(n)),this.originalBlacklist=[...this.updatedBlacklist];try{let t=yield F(this.$api.get("/server/pairings"));this.mainPairing=t.find(n=>n._main),this.pairings=t.filter(n=>!n._main).sort((n,s)=>n.name.localeCompare(s.name))}catch(t){console.error(t),this.$toastr.error(t.message,this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}toggleList(t){this.updatedBlacklist.includes(t)?this.updatedBlacklist=this.updatedBlacklist.filter(n=>n!==t):(this.updatedBlacklist.push(t),this.updatedBlacklist.sort((n,s)=>n.localeCompare(s)))}isInList(t){return this.updatedBlacklist.includes(t)}updateBlacklist(){return x(this,null,function*(){this.clicked=!0;try{yield F(this.$api.put("/config-editor/ui/accessory-control/instance-blacklist",{body:this.updatedBlacklist})),this.$settings.setEnvItem("accessoryControl.instanceBlacklist",this.updatedBlacklist),this.$activeModal.close(this.updatedBlacklist)}catch(t){this.clicked=!1,console.error(t),this.$toastr.error(t.message,this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=M({type:e,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,s){n&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),d(3),r(4,"translate"),o(),a(5,"button",3),r(6,"translate"),v("click",function(){return s.dismissModal()}),o()(),a(7,"div",4)(8,"div",5),p(9,"i",6),o(),a(10,"ul",7)(11,"li"),d(12),r(13,"translate"),o(),a(14,"li"),d(15),r(16,"translate"),o()(),a(17,"ul",8)(18,"li",9)(19,"div",10),d(20),p(21,"br"),a(22,"small",11),p(23,"i",12),r(24,"translate"),d(25," \xB7 "),a(26,"span",13),d(27),o(),d(28," \xB7 Homebridge "),o()(),a(29,"div",14)(30,"input",15),r(31,"translate"),v("click",function(){return s.toggleList(s.mainPairing._username)}),o(),p(32,"label",16),o()(),W(33,Ue,16,20,"li",9,U),o()(),a(35,"div",17)(36,"div",10)(37,"button",18),v("click",function(){return s.dismissModal()}),d(38),r(39,"translate"),o()(),p(40,"div",19),a(41,"div",20)(42,"button",21),v("click",function(){return s.updateBlacklist()}),u(43,We,2,3),u(44,Ke,1,0,"i",22),o()()()()),n&2&&(i(3),g(l(4,18,"settings.security.ui_control")),i(2),m("disabled",s.clicked),b("aria-label",l(6,20,"form.button_close")),i(7),g(l(13,22,"settings.security.ui_control_desc")),i(3),g(l(16,24,"settings.security.ui_control_desc_2")),i(5),C(" ",s.mainPairing.name),i(3),m("ngbTooltip",l(24,26,s.mainPairing._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired"))("openDelay",150)("ngClass",A(32,Se,s.mainPairing._isPaired,!s.mainPairing._isPaired)),i(4),g(s.mainPairing._username),i(3),m("checked",!s.isInList(s.mainPairing._username))("disabled",s.clicked),b("aria-label",l(31,28,"plugins.manage.hide_updates")),i(3),K(s.pairings),i(4),m("disabled",s.clicked),i(),C(" ",l(39,30,"form.button_close")," "),i(4),m("disabled",!s.blacklistHasUpdated||s.clicked),i(),_(s.clicked?-1:43),i(),_(s.clicked?44:-1))},dependencies:[Y,_t,Et,H,pt],encapsulation:2})}return e})();var Te=At(ze(),1);var ke=At(Le(),1),Ie=At(Ne(),1);var je=e=>({maxBackupSizeText:e});function Ge(e,c){if(e&1&&j(0,"input",10),e&2){let t=h(2);J("value",t.selectedBackup.fileName)}}function qe(e,c){if(e&1){let t=$();R(0,"input",12),G("change",function(s){S(t);let f=h(2);return y(f.handleRestoreFileInput(s.target.files))}),P()}}function Qe(e,c){if(e&1&&(R(0,"div",4)(1,"div",7),j(2,"i",8),P(),R(3,"ul",9)(4,"li"),d(5),r(6,"translate"),P(),R(7,"li"),d(8),r(9,"translate"),P(),R(10,"li"),d(11),r(12,"translate"),P(),R(13,"li"),d(14),r(15,"translate"),P()(),u(16,Ge,1,1,"input",10),u(17,qe,1,0,"input",11),P()),e&2){let t=h();i(5),g(l(6,6,"backup.restore_help_one")),i(3),g(l(9,8,"backup.restore_help_two")),i(3),g(q(12,10,"backup.restore_max_size",V(15,je,t.maxFileSizeText))),i(3),g(l(15,13,"backup.restore_warning")),i(2),_(t.selectedBackup?16:-1),i(),_(t.selectedBackup?-1:17)}}function Je(e,c){if(e&1){let t=$();R(0,"button",18),r(1,"translate"),G("click",function(){S(t);let s=h(2);return y(s.dismissModal())}),d(2),r(3,"translate"),P()}if(e&2){let t=h(2);J("disabled",t.clicked),b("aria-label",l(1,3,"form.button_close")),i(2),C(" ",l(3,5,"form.button_close")," ")}}function Ze(e,c){if(e&1){let t=$();R(0,"button",18),r(1,"translate"),G("click",function(){S(t);let s=h(2);return y(s.reopenBackupModal())}),d(2),r(3,"translate"),P()}if(e&2){let t=h(2);J("disabled",t.clicked),b("aria-label",l(1,3,"form.button_back")),i(2),C(" ",l(3,5,"form.button_back")," ")}}function Xe(e,c){e&1&&j(0,"i",19)}function Ye(e,c){if(e&1&&(R(0,"span"),d(1),P()),e&2){let t=h(3);i(),C("",t.uploadPercent,"% - ")}}function ti(e,c){e&1&&(R(0,"span"),d(1),r(2,"translate"),P()),e&2&&(i(),g(l(2,1,"backup.label_extracting")))}function ei(e,c){e&1&&(R(0,"span"),d(1),r(2,"translate"),P()),e&2&&(i(),g(l(2,1,"backup.label_uploading")))}function ii(e,c){if(e&1&&(R(0,"span"),u(1,Xe,1,0,"i",19),u(2,Ye,2,1,"span"),u(3,ti,3,3,"span"),u(4,ei,3,3,"span"),P()),e&2){let t=h(2);i(),_(!t.uploadPercent||t.uploadPercent===100?1:-1),i(),_(t.uploadPercent&&t.uploadPercent!==100?2:-1),i(),_(t.uploadPercent===100?3:-1),i(),_(t.uploadPercent!==100?4:-1)}}function ni(e,c){e&1&&(d(0),r(1,"translate")),e&2&&C(" ",l(1,1,"form.button_restore")," ")}function ai(e,c){if(e&1){let t=$();R(0,"div",6)(1,"div",13),u(2,Je,4,7,"button",14),u(3,Ze,4,7,"button",14),P(),j(4,"div",15),R(5,"div",16)(6,"button",17),G("click",function(){S(t);let s=h();return y(s.onRestoreBackupClick())}),u(7,ii,5,4,"span"),u(8,ni,2,3),P()()()}if(e&2){let t=h();i(2),_(t.setupWizardRestore?2:-1),i(),_(t.setupWizardRestore?-1:3),i(3),J("disabled",!t.selectedBackup&&!t.selectedFile||t.clicked),i(),_(t.clicked?7:-1),i(),_(t.clicked?-1:8)}}function oi(e,c){if(e&1){let t=$();R(0,"div",6),j(1,"div",13),R(2,"div",15)(3,"button",20),G("click",function(){S(t);let s=h();return y(s.postBackupRestart())}),d(4),r(5,"translate"),P()(),j(6,"div",16),P()}e&2&&(i(4),C(" ",l(5,1,"menu.hbrestart.title")," "))}var we=(()=>{class e{$activeModal=k(D);$api=k(z);$modal=k(gt);$router=k(Z);$toastr=k(N);$translate=k(L);$ws=k(ce);io;term=new Ie.Terminal;termTarget;fitAddon=new ke.FitAddon;setupWizardRestore=!1;selectedBackup=null;clicked=!1;maxFileSizeText=globalThis.backup.maxBackupSizeText;selectedFile;restoreInProgress=!1;restoreStarted=!1;restoreFailed=!1;restoreArchiveType="homebridge";uploadPercent=0;ngOnInit(){return x(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",t=>{this.term.write(t)}),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(t){t.length?(this.selectedFile=t[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.$router.navigate(["/"])},error:()=>{}})}reopenBackupModal(){this.$activeModal.dismiss(),this.$modal.open(Bt,{size:"lg",backdrop:"static"})}ngOnDestroy(){this.io.end()}dismissModal(){this.$activeModal.dismiss("Dismiss")}uploadHomebridgeArchive(){this.term.reset(),this.clicked=!0;let t=new FormData;t.append("restoreArchive",this.selectedFile,this.selectedFile.name),this.$api.post("/backup/restore",t).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 x(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:t=>{console.error(t),this.$toastr.error(t.error?.message||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error")),this.clicked=!1}})})}startRestore(){return x(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:t=>{this.restoreFailed=!0,console.error(t),this.$toastr.error(this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})})}uploadHbfxArchive(){this.term.reset(),this.clicked=!0;let t=new FormData;t.append("restoreArchive",this.selectedFile,this.selectedFile.name),this.$api.post("/backup/restore/hbfx",t,{reportProgress:!0,observe:"events"}).subscribe({next:n=>{n.type===qt.UploadProgress?this.uploadPercent=Math.round(100*n.loaded/n.total):n instanceof Qt&&(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 x(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:t=>{this.restoreFailed=!0,console.error(t),this.$toastr.error(this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})})}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=M({type:e,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,s){n&1&&(R(0,"div",0)(1,"div",1)(2,"h5",2),d(3),r(4,"translate"),P(),R(5,"button",3),r(6,"translate"),G("click",function(){return s.dismissModal()}),P()(),u(7,Qe,18,17,"div",4),j(8,"div",5),u(9,ai,9,5,"div",6),u(10,oi,7,3,"div",6),P()),n&2&&(i(3),g(l(4,7,"backup.title_backup")),i(2),J("disabled",s.restoreInProgress),b("aria-label",l(6,9,"form.button_close")),i(2),_(!s.restoreStarted&&!s.setupWizardRestore?7:-1),i(),J("hidden",!s.restoreStarted),i(),_(!s.restoreStarted||s.restoreFailed===!0?9:-1),i(),_(!s.restoreInProgress&&s.restoreStarted?10:-1))},dependencies:[H],encapsulation:2})}return e})();var $e=(e,c)=>({"fa-arrow-right":e,"fa-cog fa-spin":c}),si=e=>({backupTime:e,dayCount:7}),ri=(e,c)=>({"fa-trash":e,"fa-cog fa-spin":c}),li=(e,c)=>({backupSize:e,maxBackupSizeText:c});function di(e,c){if(e&1&&(d(0),r(1,"date"),r(2,"translate")),e&2){let t=h(2);C(" ",q(2,4,"backup.scheduled_backup_time",V(7,si,q(1,1,t.backupTime,"shortTime")))," ")}}function ci(e,c){e&1&&(d(0),r(1,"translate")),e&2&&C(" ",l(1,1,"plugins.settings.restart_required")," ")}function pi(e,c){if(e&1&&u(0,di,3,9)(1,ci,2,3),e&2){let t=h();_(t.backupTime?0:1)}}function mi(e,c){if(e&1&&(d(0),r(1,"translate")),e&2){let t=h();C(" ",l(1,1,t.backupTime?"plugins.settings.restart_required":"backup.scheduled_backup_disabled")," ")}}function ui(e,c){if(e&1&&(a(0,"span",33),r(1,"translate"),p(2,"i",40),d(3),o()),e&2){let t=h().$implicit;m("ngbTooltip",q(1,3,"backup.backup_exceeds_max_size",A(6,li,t.size+"MB",t.maxBackupSizeText)))("openDelay",150),i(3),C(" ",t.size,"MB ")}}function _i(e,c){if(e&1&&(a(0,"span"),d(1),o()),e&2){let t=h().$implicit;i(),C("",t.size,"MB")}}function hi(e,c){if(e&1){let t=$();a(0,"li",22)(1,"span")(2,"span",32),d(3),r(4,"date"),o(),p(5,"br"),a(6,"small",23),d(7),r(8,"date"),u(9,ui,4,9,"span",33),u(10,_i,2,1,"span"),o()(),a(11,"span",34)(12,"button",35),r(13,"translate"),r(14,"translate"),v("click",function(){let s=S(t).$implicit,f=h(2);return y(f.restore(s))}),p(15,"i",36),o(),a(16,"button",37),r(17,"translate"),r(18,"translate"),v("click",function(){let s=S(t).$implicit,f=h(2);return y(f.download(s))}),p(19,"i",38),o(),a(20,"button",39),r(21,"translate"),r(22,"translate"),v("click",function(){let s=S(t).$implicit,f=h(2);return y(f.delete(s))}),p(23,"i",25),o()()()}if(e&2){let t=c.$implicit,n=h(2);i(2),m("ngbTooltip",t.fileName)("openDelay",150),i(),C(" ",q(4,19,t.timestamp,"mediumDate")," "),i(4),C(" ",q(8,22,t.timestamp,"shortTime")," \xB7 "),i(2),_(t.size>t.maxBackupSize?9:-1),i(),_(t.size<=t.maxBackupSize?10:-1),i(2),m("disabled",n.clicked||n.deleting||t.size>t.maxBackupSize)("ngbTooltip",l(13,25,"form.button_restore"))("openDelay",150),b("aria-label",l(14,27,"form.button_restore")),i(4),m("disabled",n.clicked||n.deleting)("ngbTooltip",l(17,29,"form.button_download"))("openDelay",150),b("aria-label",l(18,31,"form.button_download")),i(4),m("disabled",n.clicked||n.deleting)("ngbTooltip",l(21,33,"form.button_delete"))("openDelay",150),b("aria-label",l(22,35,"form.button_delete")),i(3),m("ngClass",A(37,ri,t.id!==n.deleting,t.id===n.deleting))}}function gi(e,c){if(e&1&&(a(0,"ul",27)(1,"li",9)(2,"h6",10),d(3),r(4,"translate"),o()(),W(5,hi,24,40,"li",22,U),o()),e&2){let t=h();i(3),g(l(4,1,"backup.files_auto")),i(2),K(t.scheduledBackups)}}var Bt=(()=>{class e{$activeModal=k(D);$api=k(z);$backup=k(ge);$modal=k(gt);$settings=k(X);$toastr=k(N);$translate=k(L);Date=Date;clicked=!1;scheduledBackups=[];backupTime;deleting=null;currentSettingEnabled=!1;currentSettingPath="";enabledFormControl=new T(!1);pathFormControl=new T("");initialValues={};changedFields=new Set;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.initialValues.scheduledBackupDisable===void 0&&(this.initialValues.scheduledBackupDisable=this.$settings.env.scheduledBackupDisable),this.initialValues.scheduledBackupPath===void 0&&(this.initialValues.scheduledBackupPath=this.$settings.env.scheduledBackupPath),this.enabledFormControl.valueChanges.pipe(E(750)).subscribe(t=>x(this,null,function*(){this.currentSettingEnabled=t,yield this.saveUiSettingChange("scheduledBackupDisable",!this.currentSettingEnabled)})),this.pathFormControl.valueChanges.pipe(E(1500)).subscribe(t=>x(this,null,function*(){this.currentSettingPath=t,yield this.saveUiSettingChange("scheduledBackupPath",this.currentSettingPath)}))}download(t){this.$api.get(`/backup/scheduled-backups/${t.id}`,{observe:"response",responseType:"blob"}).subscribe({next:n=>{let s=t.fileName||"homebridge-backup.tar.gz",f=n.body.size;if(f>globalThis.backup.maxBackupSize){let B=this.$translate.instant("backup.backup_exceeds_max_size",{maxBackupSizeText:globalThis.backup.maxBackupSizeText,size:`${(f/1048576).toFixed(1)}MB`});this.$toastr.warning(B,this.$translate.instant("toast.title_warning"))}(0,Te.saveAs)(n.body,s)},error:n=>{console.error(n),this.$toastr.error(this.$translate.instant("backup.backup_download_failed"),this.$translate.instant("toast.title_error"))}})}restore(t){this.$activeModal.close();let n=this.$modal.open(we,{size:"lg",backdrop:"static"});n.componentInstance.selectedBackup=t}delete(t){this.deleting=t.id,this.$api.delete(`/backup/scheduled-backups/${t.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 x(this,null,function*(){this.clicked=!0;try{yield this.$backup.downloadBackup(),this.clicked=!1}catch(t){this.clicked=!1,console.error(t),this.$toastr.error(t.message,this.$translate.instant("toast.title_error"))}})}onCreateBackupClick(){return x(this,null,function*(){this.clicked=!0;try{yield F(this.$api.post("/backup",{})),this.clicked=!1,this.getScheduledBackups()}catch(t){this.clicked=!1,console.error(t),this.$toastr.error(t.message,this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}saveUiSettingChange(t,n){return x(this,null,function*(){try{yield F(this.$api.put("/config-editor/ui",{key:t,value:n})),this.$settings.setEnvItem(t,n);let s=this.initialValues[t];if(!Ft(n,s))this.changedFields.add(t);else if(this.changedFields.delete(t),this.changedFields.size===0&&this.$settings.restartToastRef){this.$settings.dismissRestartToast();return}this.$settings.restartToastRef||this.$settings.showRestartToast()}catch(s){console.error(s),this.$toastr.error(s.message,this.$translate.instant("toast.title_error"))}})}getScheduledBackups(){this.$api.get("/backup/scheduled-backups").subscribe({next:t=>{this.scheduledBackups=t},error:t=>console.error(t)})}getNextBackup(){this.$api.get("/backup/scheduled-backups/next").subscribe({next:t=>{this.backupTime=t.next},error:t=>{console.error(t)}})}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=M({type:e,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","py-1",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","py-1",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,s){n&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),d(3),r(4,"translate"),o(),a(5,"button",3),r(6,"translate"),v("click",function(){return s.dismissModal()}),o()(),a(7,"div",4)(8,"div",5),p(9,"i",6),o(),a(10,"ul",7)(11,"li"),d(12),r(13,"translate"),o(),a(14,"li"),d(15),r(16,"translate"),o(),a(17,"li"),d(18),r(19,"translate"),o()(),a(20,"ul",8)(21,"li",9)(22,"h6",10),d(23),r(24,"translate"),o()(),a(25,"li",11)(26,"div",12),d(27),r(28,"translate"),p(29,"br"),a(30,"span",13),d(31),r(32,"translate"),o()(),a(33,"div",14),p(34,"input",15),r(35,"translate"),o()(),a(36,"li",16)(37,"div",17),d(38),r(39,"translate"),p(40,"br"),a(41,"span",18),u(42,pi,2,1)(43,mi,2,3),o()(),a(44,"div",19),p(45,"input",20),r(46,"translate"),p(47,"label",21),o()(),a(48,"li",22)(49,"div")(50,"span"),d(51),r(52,"translate"),o(),p(53,"br"),a(54,"small",23),d(55),r(56,"translate"),o()(),a(57,"button",24),r(58,"translate"),v("click",function(){return s.onDownloadBackupClick()}),p(59,"i",25),o()(),a(60,"li",22)(61,"div")(62,"span"),d(63),r(64,"translate"),o(),p(65,"br"),a(66,"small",23),d(67),r(68,"translate"),o()(),a(69,"button",24),r(70,"translate"),v("click",function(){return s.onCreateBackupClick()}),p(71,"i",25),o()(),a(72,"li",22)(73,"div")(74,"span"),d(75),r(76,"translate"),o(),p(77,"br"),a(78,"small",23),d(79),r(80,"translate"),o()(),a(81,"button",24),r(82,"translate"),v("click",function(){return s.restore(null)}),p(83,"i",26),o()()(),u(84,gi,7,3,"ul",27),o(),a(85,"div",28),p(86,"div",17),a(87,"div",29)(88,"button",30),v("click",function(){return s.dismissModal()}),d(89),r(90,"translate"),o()(),p(91,"div",31),o()()),n&2&&(i(3),g(l(4,32,"backup.title_backup")),i(2),m("disabled",s.clicked||s.deleting),b("aria-label",l(6,34,"form.button_close")),i(7),g(l(13,36,"backup.backup_help_one")),i(3),g(l(16,38,"backup.backup_help_two")),i(3),g(l(19,40,"backup.backup_warning")),i(5),g(l(24,42,"backup.settings_title")),i(4),C(" ",l(28,44,"backup.settings_path")),i(4),g(l(32,46,"backup.settings_path_desc")),i(3),m("formControl",s.pathFormControl),b("aria-label",l(35,48,"backup.settings_path")),i(4),C(" ",l(39,50,"backup.settings_enable")),i(4),_(s.enabledFormControl.value?42:43),i(3),m("formControl",s.enabledFormControl),b("aria-label",l(46,52,"backup.settings_enable")),i(6),g(l(52,54,"backup.backup_now")),i(4),g(l(56,56,"backup.backup_now_desc")),i(2),m("disabled",s.clicked),b("aria-label",l(58,58,"backup.backup_now")),i(2),m("ngClass",A(74,$e,!s.clicked,s.clicked)),i(4),g(l(64,60,"backup.backup_now")),i(4),g(l(68,62,"backup.backup_now_save_desc")),i(2),m("disabled",s.clicked),b("aria-label",l(70,64,"backup.backup_now")),i(2),m("ngClass",A(77,$e,!s.clicked,s.clicked)),i(4),g(l(76,66,"backup.restore_now")),i(4),g(l(80,68,"backup.restore_now_desc")),i(2),m("disabled",s.clicked),b("aria-label",l(82,70,"backup.restore_now")),i(3),_(s.scheduledBackups.length?84:-1),i(4),m("disabled",s.clicked||s.deleting),i(),C(" ",l(90,72,"form.button_close")," "))},dependencies:[Et,Y,ht,kt,mt,ut,wt,Gt,H],encapsulation:2})}return e})();function Ci(e,c){e&1&&(a(0,"div",12),p(1,"i",13),o(),a(2,"p",14),d(3),r(4,"translate"),o()),e&2&&(i(3),g(l(4,1,"reset.no_accessories")))}function fi(e,c){e&1&&(a(0,"div",12),p(1,"i",15),o(),a(2,"ul",16)(3,"li"),d(4),r(5,"translate"),o(),a(6,"li"),d(7),r(8,"translate"),o(),a(9,"li"),d(10),r(11,"translate"),o()(),a(12,"ngb-alert",17)(13,"p",18),d(14),r(15,"translate"),o()()),e&2&&(i(4),g(l(5,5,"reset.accessory_all.list_1")),i(3),g(l(8,7,"reset.accessory_all.list_2")),i(3),g(l(11,9,"reset.accessory_all.list_3")),i(2),m("dismissible",!1),i(2),g(l(15,11,"reset.action_is_irreversible")))}function bi(e,c){if(e&1){let t=$();a(0,"button",19),r(1,"translate"),v("click",function(){S(t);let s=h();return y(s.dismissModal())}),d(2),r(3,"translate"),o()}if(e&2){let t=h();m("disabled",t.clicked),b("aria-label",l(1,3,"form.button_close")),i(2),C(" ",l(3,5,"form.button_close")," ")}}function vi(e,c){if(e&1){let t=$();a(0,"button",20),r(1,"translate"),v("click",function(){S(t);let s=h();return y(s.dismissModal())}),d(2),r(3,"translate"),o()}e&2&&(b("aria-label",l(1,2,"form.button_close")),i(2),C(" ",l(3,4,"form.button_close")," "))}function xi(e,c){e&1&&(d(0),r(1,"translate")),e&2&&C(" ",l(1,1,"form.button_remove")," ")}function Si(e,c){e&1&&p(0,"i",22)}function yi(e,c){if(e&1){let t=$();a(0,"button",21),v("click",function(){S(t);let s=h();return y(s.onResetCachedAccessoriesClick())}),u(1,xi,2,3),u(2,Si,1,0,"i",22),o()}if(e&2){let t=h();m("disabled",t.clicked),i(),_(t.clicked?-1:1),i(),_(t.clicked?2:-1)}}var Fe=(()=>{class e{$activeModal=k(D);$api=k(z);$router=k(Z);$toastr=k(N);$translate=k(L);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:t=>{this.clicked=!1,console.error(t),this.$toastr.error(this.$translate.instant("reset.failed_to_reset"),this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}loadCachedAccessories(){return x(this,null,function*(){try{this.cachedAccessories=yield F(this.$api.get("/server/cached-accessories"))}catch(t){console.error(t),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||e)};static \u0275cmp=M({type:e,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,s){n&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),d(3),r(4,"translate"),o(),a(5,"button",3),r(6,"translate"),v("click",function(){return s.dismissModal()}),o()(),a(7,"div",4),u(8,Ci,5,3),u(9,fi,16,13),o(),a(10,"div",5)(11,"div",6),u(12,bi,4,7,"button",7),o(),a(13,"div",8),u(14,vi,4,6,"button",9),o(),a(15,"div",10),u(16,yi,3,3,"button",11),o()()()),n&2&&(i(3),g(l(4,8,"reset.accessory_all.title")),i(2),m("disabled",s.clicked),b("aria-label",l(6,10,"form.button_close")),i(3),_(s.cachedAccessories.length===0?8:-1),i(),_(s.cachedAccessories.length>0?9:-1),i(3),_(s.cachedAccessories.length>0?12:-1),i(2),_(s.cachedAccessories.length===0?14:-1),i(2),_(s.cachedAccessories.length>0?16:-1))},dependencies:[$t,H],encapsulation:2})}return e})();var ki=(e,c)=>({"fa-matter":e,"fa-hap":c}),Ii=(e,c)=>({"btn-danger":e,"btn-elegant":c}),wi=(e,c,t)=>({"fa-broom":e,"fa-undo":c,"fa-spinner fa-pulse":t});function $i(e,c){e&1&&(a(0,"div",12),p(1,"i",13),o(),a(2,"p",14),d(3),r(4,"translate"),o()),e&2&&(i(3),g(l(4,1,"reset.bridge_accessories.empty")))}function Ei(e,c){if(e&1){let t=$();a(0,"li",18)(1,"span",19),p(2,"i",20),o(),a(3,"span",21),d(4),p(5,"br"),a(6,"small",22)(7,"span",23),d(8),o()()(),a(9,"button",24),r(10,"translate"),v("click",function(){let s=S(t).$implicit,f=h(2);return y(f.toggleList(s._id,s._protocol))}),p(11,"i",25),o()()}if(e&2){let t=c.$implicit,n=h(2);i(2),m("ngClass",A(9,ki,t._protocol==="matter",t._protocol!=="matter")),i(2),C(" ",t.name," "),i(4),g(t._username),i(),m("disabled",n.clicked)("ngClass",A(12,Ii,!n.isInList(t._id,t._protocol),n.isInList(t._id,t._protocol))),b("aria-label",l(10,7,"form.button_delete")),i(2),m("ngClass",ct(15,wi,!n.isInList(t._id,t._protocol),n.isInList(t._id,t._protocol)&&!n.clicked,n.isInList(t._id,t._protocol)&&n.clicked))}}function Ti(e,c){if(e&1&&(a(0,"div",12),p(1,"i",15),o(),a(2,"ul",16)(3,"li"),d(4),r(5,"translate"),o(),a(6,"li"),d(7),r(8,"translate"),o(),a(9,"li"),d(10),r(11,"translate"),o()(),a(12,"ul",17),W(13,Ei,12,19,"li",18,U),o()),e&2){let t=h();i(4),g(l(5,3,"reset.bridge_accessories.list_1")),i(3),g(l(8,5,"reset.clear_cache_single.list_3")),i(3),g(l(11,7,"reset.bridge_accessories.list_2")),i(3),K(t.pairings)}}function Fi(e,c){if(e&1){let t=$();a(0,"button",26),v("click",function(){S(t);let s=h();return y(s.dismissModal())}),d(1),r(2,"translate"),o()}if(e&2){let t=h();m("disabled",t.clicked),i(),C(" ",l(2,2,"form.button_close")," ")}}function Bi(e,c){if(e&1){let t=$();a(0,"button",27),v("click",function(){S(t);let s=h();return y(s.dismissModal())}),d(1),r(2,"translate"),o()}e&2&&(i(),C(" ",l(2,1,"form.button_close")," "))}function Pi(e,c){e&1&&p(0,"i",29)}function Ri(e,c){if(e&1&&d(0),e&2){let t=h(3);C(" (",t.toDelete.length,") ")}}function Ai(e,c){if(e&1&&(d(0),r(1,"translate"),u(2,Ri,1,1)),e&2){let t=h(2);C(" ",l(1,2,"form.button_remove")," "),i(2),_(t.toDelete.length>0?2:-1)}}function Vi(e,c){if(e&1){let t=$();a(0,"button",28),v("click",function(){S(t);let s=h();return y(s.cleanBridges())}),u(1,Pi,1,0,"i",29)(2,Ai,3,4),o()}if(e&2){let t=h();m("disabled",!t.toDelete.length||t.clicked),i(),_(t.clicked?1:2)}}var Be=(()=>{class e{$activeModal=k(D);$api=k(z);$router=k(Z);$settings=k(X);$toastr=k(N);$translate=k(L);isMatterSupported=this.$settings.isFeatureEnabled("matterSupport");clicked=!1;pairings=[];toDelete=[];ngOnInit(){this.loadPairings()}cleanBridges(){return this.clicked=!0,this.$api.delete("/server/pairings/accessories",{body:this.toDelete}).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:t=>{this.clicked=!1,console.error(t),this.$toastr.error(this.$translate.instant("reset.accessory_ind.fail"),this.$translate.instant("toast.title_error"))}})}toggleList(t,n){this.toDelete.some(s=>s.id===t&&s.protocol===n)?this.toDelete=this.toDelete.filter(s=>s.id!==t||s.protocol!==n):this.toDelete.push({id:t,protocol:n})}isInList(t,n){return this.toDelete.some(s=>s.id===t&&s.protocol===n)}dismissModal(){this.$activeModal.dismiss("Dismiss")}loadPairings(){return x(this,null,function*(){try{let t=(yield F(this.$api.get("/server/pairings"))).filter(n=>n._category==="bridge"&&!n._main).sort((n,s)=>n.name.localeCompare(s.name));this.pairings=[];for(let n of t)this.pairings.push(Rt(Pt({},n),{_protocol:"hap",_displayName:n.name})),this.isMatterSupported&&n._matter&&this.pairings.push(Rt(Pt({},n),{_protocol:"matter",_displayName:n.name}))}catch(t){console.error(t),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||e)};static \u0275cmp=M({type:e,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,"me-3"],[1,"fas","fa-lg",3,"ngClass"],[1,"flex-grow-1"],[1,"grey-text"],[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,s){n&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),d(3),r(4,"translate"),o(),a(5,"button",3),r(6,"translate"),v("click",function(){return s.dismissModal()}),o()(),a(7,"div",4),u(8,$i,5,3),u(9,Ti,15,9),o(),a(10,"div",5)(11,"div",6),u(12,Fi,3,4,"button",7),o(),a(13,"div",8),u(14,Bi,3,3,"button",9),o(),a(15,"div",10),u(16,Vi,3,2,"button",11),o()()()),n&2&&(i(3),g(l(4,8,"reset.bridge_accessories.title")),i(2),m("disabled",s.clicked),b("aria-label",l(6,10,"form.button_close")),i(3),_(s.pairings.length===0?8:-1),i(),_(s.pairings.length>0?9:-1),i(3),_(s.pairings.length>0?12:-1),i(2),_(s.pairings.length===0?14:-1),i(2),_(s.pairings.length>0?16:-1))},dependencies:[Y,H],encapsulation:2})}return e})();function Mi(e,c){e&1&&(d(0),r(1,"translate")),e&2&&C(" ",l(1,1,"form.button_reset")," ")}function Hi(e,c){e&1&&p(0,"i",16)}var Pe=(()=>{class e{$activeModal=k(D);$api=k(z);$router=k(Z);$toastr=k(N);$translate=k(L);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.$router.navigate(["/restart"])},error:t=>{console.error(t),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||e)};static \u0275cmp=M({type:e,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,s){n&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),d(3),r(4,"translate"),o(),a(5,"button",3),r(6,"translate"),v("click",function(){return s.dismissModal()}),o()(),a(7,"div",4)(8,"div",5),p(9,"i",6),o(),a(10,"ul",7)(11,"li"),d(12),r(13,"translate"),o(),a(14,"li"),d(15),r(16,"translate"),o(),a(17,"li"),d(18),r(19,"translate"),o(),a(20,"li"),d(21),r(22,"translate"),o()(),a(23,"ngb-alert",8)(24,"p",9),d(25),r(26,"translate"),o()()(),a(27,"div",10)(28,"div",11)(29,"button",12),r(30,"translate"),v("click",function(){return s.dismissModal()}),d(31),r(32,"translate"),o()(),p(33,"div",13),a(34,"div",14)(35,"button",15),v("click",function(){return s.onResetHomebridgeAccessoryClick()}),u(36,Mi,2,3),u(37,Hi,1,0,"i",16),o()()()()),n&2&&(i(3),g(l(4,15,"reset.bridge_all.title")),i(2),m("disabled",s.clicked),b("aria-label",l(6,17,"form.button_close")),i(7),g(l(13,19,"reset.bridge_all.list_1")),i(3),g(l(16,21,"reset.bridge_all.list_2")),i(3),g(l(19,23,"reset.bridge_all.list_3")),i(3),g(l(22,25,"reset.bridge_all.list_4")),i(2),m("dismissible",!1),i(2),g(l(26,27,"reset.action_is_irreversible")),i(4),m("disabled",s.clicked),b("aria-label",l(30,29,"form.button_close")),i(2),C(" ",l(32,31,"form.button_close")," "),i(4),m("disabled",s.clicked),i(),_(s.clicked?-1:36),i(),_(s.clicked?37:-1))},dependencies:[$t,H],encapsulation:2})}return e})();var Nt=(e,c)=>({"btn-danger":e,"btn-elegant":c}),Re=(e,c,t)=>({"fa-refresh":e,"fa-undo":c,"fa-spinner fa-pulse":t}),Di=(e,c,t)=>({"fa-trash":e,"fa-undo":c,"fa-spinner fa-pulse":t});function Li(e,c){e&1&&(a(0,"div",12),p(1,"i",13),o(),a(2,"p",14),d(3),r(4,"translate"),o()),e&2&&(i(3),g(l(4,1,"reset.bridges.empty")))}function Ni(e,c){if(e&1&&p(0,"i",27)(1,"i",28),e&2){let t=h().$implicit;at("opacity",t._matterOnly?"0.25":"1"),i(),at("opacity",t._matter?"1":"0.25")}}function zi(e,c){e&1&&p(0,"i",22)}function Oi(e,c){if(e&1){let t=$();a(0,"li",20)(1,"span",21),u(2,Ni,2,4)(3,zi,1,0,"i",22),o(),a(4,"span",23),d(5),p(6,"br"),a(7,"small",24),d(8),r(9,"titlecase"),o()(),a(10,"button",25),r(11,"translate"),v("click",function(){let s=S(t).$implicit,f=h(3);return y(f.toggleList(s._id,!1))}),p(12,"i",26),o()()}if(e&2){let t=c.$implicit,n=h(3);i(2),_(n.isMatterSupported?2:3),i(3),C(" ",t.name," "),i(3),vt(" ",t._username," \xB7 ",t._main?"Homebridge":l(9,8,t._category)," "),i(2),m("disabled",n.clicked)("ngClass",A(12,Nt,!n.isInList(t._id),n.isInList(t._id))),b("aria-label",l(11,10,"form.button_unpair")),i(2),m("ngClass",ct(15,Re,!n.isInList(t._id),n.isInList(t._id)&&!n.clicked,n.isInList(t._id)&&n.clicked))}}function Ui(e,c){if(e&1&&(a(0,"ul",16)(1,"li",17)(2,"h6",18),d(3),r(4,"translate"),o(),a(5,"p",19),d(6),r(7,"translate"),o()(),W(8,Oi,13,19,"li",20,U),o()),e&2){let t=h(2);i(3),g(l(4,2,"reset.bridge_ind.head_non_child")),i(3),g(l(7,4,"reset.bridge_ind.desc_non_child")),i(2),K(t.pairingsNonChild)}}function Wi(e,c){if(e&1&&p(0,"i",27)(1,"i",28),e&2){let t=h().$implicit;i(),at("opacity",t._matter?"1":"0.25")}}function Ki(e,c){e&1&&p(0,"i",22)}function ji(e,c){if(e&1){let t=$();a(0,"li",20)(1,"span",21),u(2,Wi,2,2)(3,Ki,1,0,"i",22),o(),a(4,"span",23),d(5),p(6,"br"),a(7,"small",24),d(8),o()(),a(9,"button",25),r(10,"translate"),v("click",function(){let s=S(t).$implicit,f=h(3);return y(f.toggleList(s._id,!0))}),p(11,"i",26),o()()}if(e&2){let t=c.$implicit,n=h(3);i(2),_(n.isMatterSupported?2:3),i(3),C(" ",t.name," "),i(3),g(t._username),i(),m("disabled",n.clicked)("ngClass",A(9,Nt,!n.isInList(t._id),n.isInList(t._id))),b("aria-label",l(10,7,"form.button_unpair")),i(2),m("ngClass",ct(12,Re,!n.isInList(t._id),n.isInList(t._id)&&!n.clicked,n.isInList(t._id)&&n.clicked))}}function Gi(e,c){if(e&1&&(a(0,"ul",16)(1,"li",17)(2,"h6",18),d(3),r(4,"translate"),o(),a(5,"p",19),d(6),r(7,"translate"),o()(),W(8,ji,12,16,"li",20,U),o()),e&2){let t=h(2);i(3),g(l(4,2,"reset.bridge_ind.head_child_active")),i(3),g(l(7,4,"reset.bridge_ind.desc_child_active")),i(2),K(t.pairingsChildActive)}}function qi(e,c){if(e&1&&p(0,"i",27)(1,"i",28),e&2){let t=h().$implicit;i(),at("opacity",t._matter?"1":"0.25")}}function Qi(e,c){e&1&&p(0,"i",22)}function Ji(e,c){if(e&1){let t=$();a(0,"li",20)(1,"span",21),u(2,qi,2,2)(3,Qi,1,0,"i",22),o(),a(4,"span",23),d(5),p(6,"br"),a(7,"small",24),d(8),o()(),a(9,"button",25),r(10,"translate"),v("click",function(){let s=S(t).$implicit,f=h(3);return y(f.toggleList(s._id,!1))}),p(11,"i",26),o()()}if(e&2){let t=c.$implicit,n=h(3);i(2),_(n.isMatterSupported?2:3),i(3),C(" ",t.name," "),i(3),g(t._username),i(),m("disabled",n.clicked)("ngClass",A(9,Nt,!n.isInList(t._id),n.isInList(t._id))),b("aria-label",l(10,7,"form.button_unpair")),i(2),m("ngClass",ct(12,Di,!n.isInList(t._id),n.isInList(t._id)&&!n.clicked,n.isInList(t._id)&&n.clicked))}}function Zi(e,c){if(e&1&&(a(0,"ul",16)(1,"li",17)(2,"h6",18),d(3),r(4,"translate"),o(),a(5,"p",19),d(6),r(7,"translate"),o()(),W(8,Ji,12,16,"li",20,U),o()),e&2){let t=h(2);i(3),g(l(4,2,"reset.bridge_ind.head_child_stale")),i(3),g(l(7,4,"reset.bridge_ind.desc_child_stale")),i(2),K(t.pairingsChildStale)}}function Xi(e,c){if(e&1&&(a(0,"div",12),p(1,"i",15),o(),u(2,Ui,10,6,"ul",16),u(3,Gi,10,6,"ul",16),u(4,Zi,10,6,"ul",16)),e&2){let t=h();i(2),_(t.pairingsNonChild.length>0?2:-1),i(),_(t.pairingsChildActive.length>0?3:-1),i(),_(t.pairingsChildStale.length>0?4:-1)}}function Yi(e,c){if(e&1){let t=$();a(0,"button",29),v("click",function(){S(t);let s=h();return y(s.dismissModal())}),d(1),r(2,"translate"),o()}if(e&2){let t=h();m("disabled",t.clicked),i(),C(" ",l(2,2,"form.button_close")," ")}}function tn(e,c){if(e&1){let t=$();a(0,"button",30),v("click",function(){S(t);let s=h();return y(s.dismissModal())}),d(1),r(2,"translate"),o()}e&2&&(i(),C(" ",l(2,1,"form.button_close")," "))}function en(e,c){if(e&1&&d(0),e&2){let t=h(3);C(" (",t.toDelete.length,") ")}}function nn(e,c){if(e&1&&(d(0),r(1,"translate"),u(2,en,1,1)),e&2){let t=h(2);C(" ",l(1,2,"form.button_reset")," "),i(2),_(t.toDelete.length>0?2:-1)}}function an(e,c){e&1&&p(0,"i",32)}function on(e,c){if(e&1){let t=$();a(0,"button",31),v("click",function(){S(t);let s=h();return y(s.removeBridges())}),u(1,nn,3,4),u(2,an,1,0,"i",32),o()}if(e&2){let t=h();m("disabled",!t.toDelete.length||t.clicked),i(),_(t.clicked?-1:1),i(),_(t.clicked?2:-1)}}var Ae=(()=>{class e{$activeModal=k(D);$api=k(z);$router=k(Z);$settings=k(X);$toastr=k(N);$translate=k(L);clicked=!1;pairingsNonChild=[];pairingsChildActive=[];pairingsChildStale=[];toDelete=[];isMatterSupported=this.$settings.isFeatureEnabled("matterSupport");ngOnInit(){this.loadPairings()}toggleList(t,n=!1){this.toDelete.some(s=>s.id===t)?this.toDelete=this.toDelete.filter(s=>s.id!==t):this.toDelete.push({id:t,resetPairingInfo:n})}isInList(t){return this.toDelete.some(n=>n.id===t)}removeBridges(){return this.clicked=!0,this.$api.delete("/server/pairings",{body:this.toDelete}).subscribe({next:()=>{this.$activeModal.close(),this.$router.navigate(["/restart"],{queryParams:{restarting:!0}}),this.$toastr.success(this.$translate.instant("reset.bridge_ind.done"),this.$translate.instant("toast.title_success"))},error:t=>{this.clicked=!1,console.error(t),this.$toastr.error(this.$translate.instant("reset.bridge_ind.fail"),this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}loadPairings(){return x(this,null,function*(){try{let t=(yield F(this.$api.get("/server/pairings"))).filter(n=>!n._main).sort((n,s)=>n.name.localeCompare(s.name));this.pairingsChildActive=t.filter(n=>n._category==="bridge"&&!n._couldBeStale),this.pairingsNonChild=t.filter(n=>n._category!=="bridge"),this.pairingsChildStale=t.filter(n=>n._category==="bridge"&&n._couldBeStale)}catch(t){console.error(t),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||e)};static \u0275cmp=M({type:e,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,"me-3"],[1,"fas","fa-lg","fa-hap"],[1,"flex-grow-1"],[1,"grey-text","font-monospace"],[1,"btn","btn-danger","m-0","ms-3",3,"click","disabled","ngClass"],[1,"fas",3,"ngClass"],[1,"fas","fa-lg","fa-hap","me-2"],[1,"fas","fa-lg","fa-matter"],["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,s){n&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),d(3),r(4,"translate"),o(),a(5,"button",3),r(6,"translate"),v("click",function(){return s.dismissModal()}),o()(),a(7,"div",4),u(8,Li,5,3),u(9,Xi,5,3),o(),a(10,"div",5)(11,"div",6),u(12,Yi,3,4,"button",7),o(),a(13,"div",8),u(14,tn,3,3,"button",9),o(),a(15,"div",10),u(16,on,3,3,"button",11),o()()()),n&2&&(i(3),g(l(4,8,"reset.bridge_ind.title")),i(2),m("disabled",s.clicked),b("aria-label",l(6,10,"form.button_close")),i(3),_(s.pairingsChildActive.length===0&&s.pairingsChildStale.length===0&&s.pairingsNonChild.length===0?8:-1),i(),_(s.pairingsChildActive.length>0||s.pairingsChildStale.length>0||s.pairingsNonChild.length>0?9:-1),i(3),_(s.pairingsChildActive.length>0||s.pairingsChildStale.length>0||s.pairingsNonChild.length>0?12:-1),i(2),_(s.pairingsChildActive.length===0&&s.pairingsChildStale.length===0&&s.pairingsNonChild.length===0?14:-1),i(2),_(s.pairingsChildActive.length>0||s.pairingsChildStale.length>0||s.pairingsNonChild.length>0?16:-1))},dependencies:[Y,pt,H],encapsulation:2})}return e})();function sn(e,c){if(e&1){let t=$();a(0,"li",9)(1,"div")(2,"span",16),d(3),o(),p(4,"br"),a(5,"span",17),d(6),o()(),a(7,"span")(8,"input",18),yt("ngModelChange",function(s){let f=S(t).$implicit;return St(f.selected,s)||(f.selected=s),y(s)}),v("ngModelChange",function(){S(t);let s=h();return y(s.onAdapterSelectionChange())}),o(),p(9,"label",19),o()()}if(e&2){let t=c.$implicit;i(3),g(t.ip4||t.ip6),i(3),g(t.iface),i(2),m("id","adapter"+t.iface),xt("ngModel",t.selected),i(),m("for","adapter"+t.iface)}}var Ve=(()=>{class e{$activeModal=k(D);adaptersOriginal=[];adaptersAvailable=[];adaptersSelected=[];isUnchanged=!0;ngOnInit(){this.adaptersAvailable.forEach(t=>{t.selected=this.adaptersSelected.some(n=>n.iface===t.iface)}),this.adaptersOriginal=this.adaptersSelected.map(t=>t.iface)}onAdapterSelectionChange(){this.isUnchanged=this.adaptersOriginal.length===this.adaptersAvailable.filter(t=>t.selected).length&&this.adaptersOriginal.every(t=>this.adaptersAvailable.some(n=>n.iface===t&&n.selected))}submit(){this.$activeModal.close(this.adaptersAvailable.filter(t=>t.selected).map(t=>t.iface))}closeAndReset(){this.adaptersAvailable.forEach(t=>{t.selected=this.adaptersOriginal.includes(t.iface)}),this.isUnchanged=!0,this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=M({type:e,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,s){n&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),d(3),r(4,"translate"),o(),a(5,"button",3),r(6,"translate"),v("click",function(){return s.closeAndReset()}),o()(),a(7,"div",4)(8,"div",5),p(9,"i",6),o(),a(10,"ul",7)(11,"li"),d(12),r(13,"translate"),o()(),a(14,"ul",8),W(15,sn,10,5,"li",9,U),o()(),a(17,"div",10)(18,"div",11)(19,"button",12),r(20,"translate"),v("click",function(){return s.closeAndReset()}),d(21),r(22,"translate"),o()(),p(23,"div",13),a(24,"div",14)(25,"button",15),v("click",function(){return s.submit()}),d(26),r(27,"translate"),o()()()()),n&2&&(i(3),g(l(4,7,"settings.network.title_network_interfaces")),i(2),b("aria-label",l(6,9,"form.button_close")),i(7),g(l(13,11,"settings.network.message_network_interface")),i(3),K(s.adaptersAvailable),i(4),b("aria-label",l(20,13,"form.button_close")),i(2),C(" ",l(22,15,"form.button_close")," "),i(4),m("disabled",s.isUnchanged),i(),C(" ",l(27,17,"form.button_save")," "))},dependencies:[_t,mt,ut,It,H],encapsulation:2})}return e})();var rn=["wallpaperInput"],ln=e=>({maxFileSizeText:e});function dn(e,c){if(e&1){let t=$();R(0,"div",10),j(1,"img",20),R(2,"button",21),r(3,"translate"),G("click",function(){S(t);let s=h();return y(s.clearWallpaper())}),j(4,"i",22),P()()}if(e&2){let t=h();i(),J("src",t.wallpaperUrl,Ot),i(),b("aria-label",l(3,2,"form.button_delete"))}}function cn(e,c){e&1&&j(0,"div",11)}var Me=(()=>{class e{$activeModal=k(D);$api=k(z);$settings=k(X);$toastr=k(N);$translate=k(L);clicked=!1;maxFileSizeText=globalThis.backup.maxBackupSizeText;selectedFile;wallpaperUrl=null;originalWallpaperUrl=null;wallpaperInput;ngOnInit(){this.$settings.env.customWallpaperHash&&(this.wallpaperUrl=`${de.api.base}/auth/wallpaper/${this.$settings.env.customWallpaperHash}`,this.originalWallpaperUrl=this.wallpaperUrl)}onFileChange(t){if(t.length){this.selectedFile=t[0];let n=new FileReader;n.onload=s=>{this.wallpaperUrl=s.target.result},n.readAsDataURL(this.selectedFile)}else delete this.selectedFile,this.wallpaperUrl=this.originalWallpaperUrl}saveWallpaper(){if(this.clicked=!0,this.selectedFile){let t=new FormData;t.append("wallpaper",this.selectedFile,this.selectedFile.name),this.$api.post("/server/wallpaper",t).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:t=>{console.error(t),this.$toastr.error(t.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||e)};static \u0275cmp=M({type:e,selectors:[["ng-component"]],viewQuery:function(n,s){if(n&1&&rt(rn,5),n&2){let f;lt(f=dt())&&(s.wallpaperInput=f.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,s){if(n&1){let f=$();R(0,"div",1)(1,"div",2)(2,"h5",3),d(3),r(4,"translate"),P(),R(5,"button",4),r(6,"translate"),G("click",function(){return S(f),y(s.dismissModal())}),P()(),R(7,"div",5)(8,"div",6),j(9,"i",7),P(),R(10,"ul",8)(11,"li"),d(12),r(13,"translate"),P(),R(14,"li"),d(15),r(16,"translate"),P(),R(17,"li"),d(18),r(19,"translate"),P()(),R(20,"div",9),u(21,dn,5,4,"div",10)(22,cn,1,0,"div",11),P(),R(23,"div",12)(24,"input",13,0),G("change",function(O){return S(f),y(s.onFileChange(O.target.files))}),P()()(),R(26,"div",14)(27,"div",15)(28,"button",16),G("click",function(){return S(f),y(s.dismissModal())}),d(29),r(30,"translate"),P()(),j(31,"div",17),R(32,"div",18)(33,"button",19),G("click",function(){return S(f),y(s.saveWallpaper())}),d(34),r(35,"translate"),P()()()()}n&2&&(i(3),g(l(4,11,"settings.display.wallpaper")),i(2),J("disabled",s.clicked),b("aria-label",l(6,13,"form.button_close")),i(7),g(l(13,15,"settings.display.wallpaper_intro")),i(3),g(q(16,17,"settings.display.wallpaper_rule",V(26,ln,s.maxFileSizeText))),i(3),g(l(19,20,"settings.display.wallpaper_rule2")),i(3),_(s.wallpaperUrl?21:22),i(7),J("disabled",s.clicked),i(),C(" ",l(30,22,"form.button_close")," "),i(4),J("disabled",s.wallpaperUrl===s.originalWallpaperUrl||s.clicked),i(),C(" ",l(35,24,"form.button_save")," "))},dependencies:[ht,H],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 e})();var pn=["searchInput"],mn=["sslKeyCertInput"],un=["sslPfxInput"],_n=()=>({standalone:!0}),et=(e,c)=>({"fa-chevron-down":e,"fa-chevron-right":c}),Q=e=>({"is-invalid":e}),He=e=>({link:e}),hn=(e,c)=>({"badge-danger":e,"badge-info":c});function gn(e,c){if(e&1){let t=$();a(0,"a",13),v("click",function(){S(t);let s=h(2);return y(s.clearSearch())}),p(1,"i",14),o()}}function Cn(e,c){if(e&1){let t=$();a(0,"div",8)(1,"div",9)(2,"form",10)(3,"input",11,0),r(5,"translate"),yt("ngModelChange",function(s){S(t);let f=h();return St(f.searchQuery,s)||(f.searchQuery=s),y(s)}),v("ngModelChange",function(){S(t);let s=h();return y(s.filterSettings())}),o(),u(6,gn,2,0,"a",12),o()()()}if(e&2){let t=h();i(3),m("placeholder",l(5,4,"form.search")),xt("ngModel",t.searchQuery),m("ngModelOptions",Kt(6,_n)),i(3),_(t.searchQuery?6:-1)}}function fn(e,c){e&1&&p(0,"app-spinner")}function bn(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function vn(e,c){if(e&1&&(a(0,"li",21)(1,"span"),d(2),r(3,"translate"),o(),a(4,"div",23),p(5,"input",24),r(6,"translate"),u(7,bn,1,1,"i",25),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(2),g(l(3,6,"settings.name")),i(3),m("formControl",t.hbNameFormControl)("ngClass",V(10,Q,t.hbNameIsInvalid)),b("aria-label",l(6,8,"settings.name")),i(2),_(t.hbNameIsSaving?7:-1)}}function xn(e,c){if(e&1){let t=$();a(0,"li",22)(1,"span",26),d(2),r(3,"translate"),o(),a(4,"button",27),r(5,"translate"),v("click",function(){S(t);let s=h(4);return y(s.openBackupModal())}),p(6,"i",28),o()()}e&2&&(m("@smoothHide",void 0),i(2),g(l(3,3,"backup.title_backup")),i(2),b("aria-label",l(5,5,"backup.title_backup")))}function Sn(e,c){if(e&1){let t=$();a(0,"li",22)(1,"span",26),d(2),r(3,"translate"),o(),a(4,"button",27),r(5,"translate"),v("click",function(){S(t);let s=h(4);return y(s.openConfigBackup())}),p(6,"i",28),o()()}e&2&&(m("@smoothHide",void 0),i(2),g(l(3,3,"config.restore.title")),i(2),b("aria-label",l(5,5,"config.restore.title")))}function yn(e,c){e&1&&(a(0,"li",22)(1,"span",26),d(2),r(3,"translate"),o(),a(4,"a",29),r(5,"translate"),p(6,"i",28),o()()),e&2&&(m("@smoothHide",void 0),i(2),g(l(3,3,"menu.tooltip_user_accounts")),i(2),b("aria-label",l(5,5,"menu.tooltip_user_accounts")))}function kn(e,c){if(e&1&&(a(0,"ul",20),u(1,vn,8,12,"li",21),u(2,xn,7,7,"li",22),u(3,Sn,7,7,"li",22),u(4,yn,7,7,"li",22),o()),e&2){let t=h(3);i(),_(t.isItemHidden("setting-name")?-1:1),i(),_(t.isItemHidden("setting-backup")?-1:2),i(),_(t.isItemHidden("setting-restore")?-1:3),i(),_(t.isItemHidden("setting-users")?-1:4)}}function In(e,c){if(e&1){let t=$();a(0,"div",15)(1,"div",17),v("click",function(){S(t);let s=h(2);return y(s.toggleSection("general"))}),a(2,"h5",18),p(3,"i",19),d(4),r(5,"translate"),o()(),u(6,kn,5,4,"ul",20),o()}if(e&2){let t=h(2);i(),b("aria-expanded",t.showFields.general?"true":"false")("aria-controls","fieldsGeneral"),i(2),m("ngClass",A(7,et,t.showFields.general,!t.showFields.general)),i(),C(" ",l(5,5,"settings.general.title_general")," "),i(2),_(t.showFields.general?6:-1)}}function wn(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function $n(e,c){if(e&1&&(a(0,"li",21),d(1),r(2,"translate"),a(3,"div",23)(4,"select",31)(5,"option",32),d(6),r(7,"translate"),o(),a(8,"option",33),d(9,"Bulgarian (bg)"),o(),a(10,"option",34),d(11,"Catalan (ca)"),o(),a(12,"option",35),d(13,"Chinese - Simplified (zh-CN)"),o(),a(14,"option",36),d(15,"Chinese - Traditional (zh-TW)"),o(),a(16,"option",37),d(17,"Czech (cs)"),o(),a(18,"option",38),d(19,"Dutch (nl)"),o(),a(20,"option",39),d(21,"English (en)"),o(),a(22,"option",40),d(23,"Finnish (fi)"),o(),a(24,"option",41),d(25,"French (fr)"),o(),a(26,"option",42),d(27,"German (de)"),o(),a(28,"option",43),d(29,"Hebrew (he)"),o(),a(30,"option",44),d(31,"Hungarian (hu)"),o(),a(32,"option",45),d(33,"Indonesian (id)"),o(),a(34,"option",46),d(35,"Italian (it)"),o(),a(36,"option",47),d(37,"Japanese (ja)"),o(),a(38,"option",48),d(39,"Korean (ko)"),o(),a(40,"option",49),d(41,"Macedonian (mk)"),o(),a(42,"option",50),d(43,"Norwegian (no)"),o(),a(44,"option",51),d(45,"Polish (pl)"),o(),a(46,"option",52),d(47,"Portuguese (Brazil)"),o(),a(48,"option",53),d(49,"Portuguese (Portugal)"),o(),a(50,"option",54),d(51,"Russian (ru)"),o(),a(52,"option",55),d(53,"Slovenian (sl)"),o(),a(54,"option",56),d(55,"Spanish (es)"),o(),a(56,"option",57),d(57,"Swedish (sv)"),o(),a(58,"option",58),d(59,"Thai (th)"),o(),a(60,"option",59),d(61,"Turkish (tr)"),o(),a(62,"option",60),d(63,"Ukrainian (uk)"),o()(),u(64,wn,1,1,"i",25),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(),C(" ",l(2,5,"settings.display.lang")," "),i(3),m("formControl",t.uiLangFormControl),i(2),g(l(7,7,"form.select.auto")),i(58),_(t.uiLangIsSaving?64:-1)}}function En(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function Tn(e,c){if(e&1&&(a(0,"li",21),d(1),r(2,"translate"),a(3,"div",23)(4,"select",31)(5,"option",61),d(6),r(7,"translate"),o(),a(8,"option",62),d(9),r(10,"translate"),o(),a(11,"option",63),d(12),r(13,"translate"),o(),a(14,"option",64),d(15),r(16,"translate"),o(),a(17,"option",65),d(18),r(19,"translate"),o(),a(20,"option",66),d(21),r(22,"translate"),o(),a(23,"option",67),d(24),r(25,"translate"),o(),a(26,"option",68),d(27),r(28,"translate"),o(),a(29,"option",69),d(30),r(31,"translate"),o(),a(32,"option",70),d(33),r(34,"translate"),o(),a(35,"option",71),d(36),r(37,"translate"),o(),a(38,"option",72),d(39),r(40,"translate"),o(),a(41,"option",73),d(42),r(43,"translate"),o()(),u(44,En,1,1,"i",25),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(),C(" ",l(2,17,"settings.display.theme")," "),i(3),m("formControl",t.uiThemeFormControl),i(2),g(l(7,19,"settings.display.orange")),i(3),g(l(10,21,"settings.display.red")),i(3),g(l(13,23,"settings.display.pink")),i(3),g(l(16,25,"settings.display.purple")),i(3),g(l(19,27,"settings.display.deep_purple")),i(3),g(l(22,29,"settings.display.indigo")),i(3),g(l(25,31,"settings.display.blue")),i(3),g(l(28,33,"settings.display.bluegrey")),i(3),g(l(31,35,"settings.display.cyan")),i(3),g(l(34,37,"settings.display.green")),i(3),g(l(37,39,"settings.display.teal")),i(3),g(l(40,41,"settings.display.grey")),i(3),g(l(43,43,"settings.display.brown")),i(2),_(t.uiThemeIsSaving?44:-1)}}function Fn(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function Bn(e,c){if(e&1&&(a(0,"li",21),d(1),r(2,"translate"),a(3,"div",23)(4,"select",31)(5,"option",32),d(6),r(7,"translate"),o(),a(8,"option",74),d(9),r(10,"translate"),o(),a(11,"option",75),d(12),r(13,"translate"),o()(),u(14,Fn,1,1,"i",25),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(),C(" ",l(2,7,"settings.display.lighting_mode")," "),i(3),m("formControl",t.uiLightFormControl),i(2),g(l(7,9,"form.select.auto")),i(3),g(l(10,11,"settings.display.light")),i(3),g(l(13,13,"settings.display.dark")),i(2),_(t.uiLightIsSaving?14:-1)}}function Pn(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function Rn(e,c){if(e&1&&(a(0,"li",21),d(1),r(2,"translate"),a(3,"div",23)(4,"select",31)(5,"option",76),d(6),r(7,"translate"),o(),a(8,"option",77),d(9),r(10,"translate"),o()(),u(11,Pn,1,1,"i",25),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(),C(" ",l(2,6,"settings.display.menu_mode")," "),i(3),m("formControl",t.uiMenuFormControl),i(2),g(l(7,8,"settings.display.menu_default")),i(3),g(l(10,10,"settings.display.menu_freeze")),i(2),_(t.uiMenuIsSaving?11:-1)}}function An(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function Vn(e,c){if(e&1&&(a(0,"li",21),d(1),r(2,"translate"),a(3,"div",23)(4,"select",31)(5,"option",78),d(6),r(7,"translate"),o(),a(8,"option",79),d(9),r(10,"translate"),o()(),u(11,An,1,1,"i",25),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(),C(" ",l(2,6,"settings.display.temp_units")," "),i(3),m("formControl",t.uiTempFormControl),i(2),g(l(7,8,"settings.display.temp_units.c")),i(3),g(l(10,10,"settings.display.temp_units.f")),i(2),_(t.uiTempIsSaving?11:-1)}}function Mn(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function Hn(e,c){if(e&1&&(a(0,"li",22),d(1),r(2,"translate"),a(3,"div",80)(4,"div",81),p(5,"input",82),r(6,"translate"),p(7,"label",83),o(),u(8,Mn,1,1,"i",25),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(),C(" ",l(2,5,"settings.display.show_betas")," "),i(4),m("formControl",t.uiAlwaysShowBetasFormControl),b("aria-label",l(6,7,"settings.display.show_betas")),i(3),_(t.uiAlwaysShowBetasIsSaving?8:-1)}}function Dn(e,c){if(e&1){let t=$();a(0,"li",22)(1,"span",26),d(2),r(3,"translate"),o(),a(4,"button",27),r(5,"translate"),v("click",function(){S(t);let s=h(4);return y(s.openWallpaperModal())}),p(6,"i",28),o()()}e&2&&(m("@smoothHide",void 0),i(2),g(l(3,3,"settings.display.wallpaper")),i(2),b("aria-label",l(5,5,"settings.display.wallpaper")))}function Ln(e,c){if(e&1&&(a(0,"ul",30),u(1,$n,65,9,"li",21),u(2,Tn,45,45,"li",21),u(3,Bn,15,15,"li",21),u(4,Rn,12,12,"li",21),u(5,Vn,12,12,"li",21),u(6,Hn,9,9,"li",22),u(7,Dn,7,7,"li",22),o()),e&2){let t=h(3);i(),_(t.isItemHidden("setting-lang")?-1:1),i(),_(t.isItemHidden("setting-theme")?-1:2),i(),_(t.isItemHidden("setting-lighting")?-1:3),i(),_(t.isItemHidden("setting-menu")?-1:4),i(),_(t.isItemHidden("setting-temp")?-1:5),i(),_(t.isItemHidden("setting-betas")?-1:6),i(),_(t.isItemHidden("setting-wallpaper")?-1:7)}}function Nn(e,c){if(e&1){let t=$();a(0,"div",15)(1,"div",17),v("click",function(){S(t);let s=h(2);return y(s.toggleSection("display"))}),a(2,"h5",18),p(3,"i",19),d(4),r(5,"translate"),o()(),u(6,Ln,8,7,"ul",30),o()}if(e&2){let t=h(2);i(),b("aria-expanded",t.showFields.display?"true":"false")("aria-controls","fieldsDisplay"),i(2),m("ngClass",A(7,et,t.showFields.display,!t.showFields.display)),i(),C(" ",l(5,5,"settings.general.title_display")," "),i(2),_(t.showFields.display?6:-1)}}function zn(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function On(e,c){if(e&1&&(a(0,"li",22)(1,"span"),d(2),r(3,"translate"),a(4,"code"),d(5,"-D"),o(),p(6,"br"),a(7,"small",85),d(8),r(9,"translate"),o()(),a(10,"div",80)(11,"div",81),p(12,"input",86),r(13,"translate"),p(14,"label",87),o(),u(15,zn,1,1,"i",25),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(2),C(" ",l(3,6,"settings.startup.debug")," "),i(6),g(l(9,8,t.debugFieldDesc)),i(4),m("formControl",t.hbDebugFormControl),b("aria-label",l(13,10,"settings.startup.debug")),i(3),_(t.hbDebugIsSaving?15:-1)}}function Un(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function Wn(e,c){if(e&1&&(a(0,"li",22)(1,"span"),d(2),r(3,"translate"),a(4,"code"),d(5,"-I"),o(),p(6,"br"),a(7,"small",85),d(8),r(9,"translate"),o()(),a(10,"div",80)(11,"div",81),p(12,"input",88),r(13,"translate"),p(14,"label",89),o(),u(15,Un,1,1,"i",25),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(2),C(" ",l(3,6,"settings.startup.insecure")," "),i(6),g(l(9,8,"settings.startup.insecure_desc")),i(4),m("formControl",t.hbInsecureFormControl),b("aria-label",l(13,10,"settings.startup.insecure")),i(3),_(t.hbInsecureIsSaving?15:-1)}}function Kn(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function jn(e,c){if(e&1&&(a(0,"li",22)(1,"span"),d(2),r(3,"translate"),a(4,"code"),d(5,"-K"),o(),p(6,"br"),a(7,"small",85),d(8),r(9,"translate"),o()(),a(10,"div",80)(11,"div",81),p(12,"input",90),r(13,"translate"),p(14,"label",91),o(),u(15,Kn,1,1,"i",25),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(2),C(" ",l(3,6,"settings.startup.keep_accessories")," "),i(6),g(l(9,8,"settings.startup.keep_accessories_desc")),i(4),m("formControl",t.hbKeepFormControl),b("aria-label",l(13,10,"settings.startup.keep_accessories")),i(3),_(t.hbKeepIsSaving?15:-1)}}function Gn(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function qn(e,c){if(e&1&&(a(0,"li",21)(1,"span"),d(2),r(3,"translate"),a(4,"span",92),d(5),r(6,"translate"),o(),p(7,"br"),a(8,"small",85),d(9),r(10,"translate"),r(11,"translate"),o()(),a(12,"div",93)(13,"div",94),p(14,"input",95),r(15,"translate"),u(16,Gn,1,1,"i",25),o()()()),e&2){let t=h(4);m("@smoothHide",void 0),i(2),C(" ",l(3,13,"settings.startup.scheduled_restart")," "),i(3),g(l(6,15,"common.labels.beta")),i(4),vt("",l(10,17,"settings.startup.scheduled_restart_desc")," ",l(11,19,"settings.startup.scheduled_restart_desc_2")),i(5),at("letter-spacing","0.15em")("text-align","center"),m("formControl",t.scheduledRestartCronFormControl)("ngClass",V(23,Q,t.scheduledRestartCronIsInvalid)),b("aria-label",l(15,21,"settings.startup.scheduled_restart")),i(2),_(t.scheduledRestartCronIsSaving?16:-1)}}function Qn(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function Jn(e,c){if(e&1&&(a(0,"li",22)(1,"span"),d(2),r(3,"translate"),p(4,"br"),a(5,"small",85),d(6),r(7,"translate"),o()(),a(8,"div",80)(9,"div",81),p(10,"input",96),r(11,"translate"),p(12,"label",97),o(),u(13,Qn,1,1,"i",25),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(2),C(" ",l(3,6,"settings.startup.metrics")),i(4),g(l(7,8,"settings.startup.metrics_desc")),i(4),m("formControl",t.uiMetricsFormControl),b("aria-label",l(11,10,"settings.startup.metrics")),i(3),_(t.uiMetricsIsSaving?13:-1)}}function Zn(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function Xn(e,c){if(e&1&&(a(0,"li",21)(1,"span"),d(2),r(3,"translate"),p(4,"br"),a(5,"small",85),d(6),r(7,"translate"),o()(),a(8,"div",23),p(9,"input",98),r(10,"translate"),u(11,Zn,1,1,"i",25),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(2),C(" ",l(3,6,"settings.network.hb_package")),i(4),g(l(7,8,"settings.network.hb_package_desc")),i(3),m("formControl",t.hbPackageFormControl),b("aria-label",l(10,10,"settings.network.hb_package")),i(2),_(t.hbPackageIsSaving?11:-1)}}function Yn(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function ta(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function ea(e,c){if(e&1&&(a(0,"li",21)(1,"span"),d(2),r(3,"translate"),p(4,"br"),a(5,"small",85),d(6),r(7,"translate"),o()(),a(8,"div",100),p(9,"input",101),r(10,"translate"),u(11,ta,1,1,"i",25),o()()),e&2){let t=h(5);m("@smoothHide",void 0),i(2),C(" ",l(3,6,"settings.linux.restart")),i(4),g(l(7,8,"settings.linux.restart_desc")),i(3),m("formControl",t.hbLinuxRestartFormControl),b("aria-label",l(10,10,"settings.linux.restart")),i(2),_(t.hbLinuxRestartIsSaving?11:-1)}}function ia(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function na(e,c){if(e&1&&(a(0,"li",21)(1,"span"),d(2),r(3,"translate"),p(4,"br"),a(5,"small",85),d(6),r(7,"translate"),o()(),a(8,"div",23),p(9,"input",102),r(10,"translate"),u(11,ia,1,1,"i",25),o()()),e&2){let t=h(5);m("@smoothHide",void 0),i(2),C(" ",l(3,6,"settings.linux.temp")),i(4),g(l(7,8,"settings.linux.temp_desc")),i(3),m("formControl",t.uiTempFileFormControl),b("aria-label",l(10,10,"settings.linux.temp")),i(2),_(t.uiTempFileIsSaving?11:-1)}}function aa(e,c){if(e&1&&(a(0,"li",21)(1,"span"),d(2),r(3,"translate"),p(4,"br"),a(5,"small",85),d(6),r(7,"translate"),o()(),a(8,"div",23),p(9,"input",99),r(10,"translate"),u(11,Yn,1,1,"i",25),o()(),u(12,ea,12,12,"li",21),u(13,na,12,12,"li",21)),e&2){let t=h(4);m("@smoothHide",void 0),i(2),C(" ",l(3,8,"settings.linux.shutdown")),i(4),g(l(7,10,"settings.linux.shutdown_desc")),i(3),m("formControl",t.hbLinuxShutdownFormControl),b("aria-label",l(10,12,"settings.linux.shutdown")),i(2),_(t.hbLinuxShutdownIsSaving?11:-1),i(),_(t.isItemHidden("setting-linux-restart")?-1:12),i(),_(t.runningOnRaspberryPi?13:-1)}}function oa(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function sa(e,c){if(e&1&&(a(0,"li",21)(1,"span")(2,"span",103),d(3,"DEBUG"),o(),p(4,"br")(5,"small",104),r(6,"translate"),o(),a(7,"div",23),p(8,"input",105),u(9,oa,1,1,"i",25),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(5),m("innerHTML",q(6,4,"settings.service.debug_tooltip",V(7,He,t.linkDebug)),nt),i(3),m("formControl",t.hbEnvDebugFormControl),i(),_(t.hbEnvDebugIsSaving?9:-1)}}function ra(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function la(e,c){if(e&1&&(a(0,"li",21)(1,"span")(2,"span",103),d(3,"NODE_OPTIONS"),o(),p(4,"br"),a(5,"small",85),d(6),r(7,"translate"),o()(),a(8,"div",23),p(9,"input",106),u(10,ra,1,1,"i",25),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(6),g(l(7,4,"settings.service.node_tooltip")),i(3),m("formControl",t.hbEnvNodeFormControl),i(),_(t.hbEnvNodeIsSaving?10:-1)}}function da(e,c){e&1&&(a(0,"li",22)(1,"span"),d(2),r(3,"translate"),p(4,"br"),a(5,"small",85),d(6),r(7,"translate"),o()(),a(8,"a",107),r(9,"translate"),p(10,"i",28),o()()),e&2&&(m("@smoothHide",void 0),i(2),C(" ",l(3,4,"menu.docker.startup_script")),i(4),g(l(7,6,"platform.docker.script_help")),i(2),b("aria-label",l(9,8,"menu.docker.startup_script")))}function ca(e,c){if(e&1&&(a(0,"ul",84),u(1,On,16,12,"li",22),u(2,Wn,16,12,"li",22),u(3,jn,16,12,"li",22),u(4,qn,17,25,"li",21),u(5,Jn,14,12,"li",22),u(6,Xn,12,12,"li",21),u(7,aa,14,14),u(8,sa,10,9,"li",21),u(9,la,11,6,"li",21),u(10,da,11,10,"li",22),o()),e&2){let t=h(3);i(),_(t.isItemHidden("setting-debug")?-1:1),i(),_(t.isItemHidden("setting-insecure")?-1:2),i(),_(t.isItemHidden("setting-keep")?-1:3),i(),_(t.isItemHidden("setting-scheduled-restart")?-1:4),i(),_(t.isItemHidden("setting-metrics-startup")?-1:5),i(),_(t.isItemHidden("setting-package-path")?-1:6),i(),_(t.platform==="linux"?7:-1),i(),_(t.isItemHidden("setting-env-debug-manual")?-1:8),i(),_(t.isItemHidden("setting-env-node")?-1:9),i(),_(t.runningInDocker?10:-1)}}function pa(e,c){if(e&1){let t=$();a(0,"div",15)(1,"div",17),v("click",function(){S(t);let s=h(2);return y(s.toggleSection("startup"))}),a(2,"h5",18),p(3,"i",19),d(4),r(5,"translate"),o()(),u(6,ca,11,10,"ul",84),o()}if(e&2){let t=h(2);i(),b("aria-expanded",t.showFields.startup?"true":"false")("aria-controls","fieldsStartup"),i(2),m("ngClass",A(7,et,t.showFields.startup,!t.showFields.startup)),i(),C(" ",l(5,5,"settings.title_startup_options")," "),i(2),_(t.showFields.startup?6:-1)}}function ma(e,c){e&1&&p(0,"i",112)}function ua(e,c){if(e&1&&(a(0,"span",110),u(1,ma,1,0,"i",112),d(2),a(3,"span",113),d(4),r(5,"translate"),o()()),e&2){let t=c.$implicit;m("ngClass",A(6,hn,t.missing,!t.missing)),i(),_(t.missing?1:-1),i(),C(" ",t.iface,": "),i(2),g(t.missing?l(5,4,"settings.mdns_advertiser_not_connected"):t.ip4||t.ip6)}}function _a(e,c){if(e&1){let t=$();a(0,"li",22)(1,"span",26),d(2),r(3,"translate"),p(4,"br"),a(5,"div",109),d(6),r(7,"translate"),o(),W(8,ua,6,9,"span",110,U),o(),a(10,"button",111),r(11,"translate"),v("click",function(){S(t);let s=h(4);return y(s.selectNetworkInterfaces())}),p(12,"i",28),o()()}if(e&2){let t=h(4);m("@smoothHide",void 0),i(2),C(" ",l(3,5,"settings.network.title_network_interfaces")),i(4),g(l(7,7,"settings.network.message_network_interface")),i(2),K(t.adaptersSelected),i(2),m("disabled",!t.adaptersAvailable.length),b("aria-label",l(11,9,"settings.network.title_network_interfaces"))}}function ha(e,c){e&1&&(a(0,"option",114),d(1),r(2,"translate"),o()),e&2&&(i(),C("Avahi (",l(2,1,"settings.mdns_advertiser_rec"),")"))}function ga(e,c){e&1&&(a(0,"option",117),d(1),r(2,"translate"),o()),e&2&&(i(),C("systemd-resolved (",l(2,1,"settings.mdns_advertiser_exp"),")"))}function Ca(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function fa(e,c){if(e&1&&(a(0,"li",21)(1,"span"),d(2),r(3,"translate"),p(4,"br"),a(5,"small",85),d(6),r(7,"translate"),o()(),a(8,"div",23)(9,"select",31),r(10,"translate"),u(11,ha,3,3,"option",114),a(12,"option",115),d(13),r(14,"translate"),o(),a(15,"option",116),d(16,"Bonjour HAP"),o(),u(17,ga,3,3,"option",117),o(),u(18,Ca,1,1,"i",25),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(2),C(" ",l(3,9,"settings.mdns_advertiser")),i(4),g(l(7,11,"settings.mdns_advertiser_help")),i(3),m("formControl",t.hbMDnsFormControl),b("aria-label",l(10,13,"settings.mdns_advertiser")),i(2),_(t.showAvahiMdnsOption?11:-1),i(2),C(" Ciao ",t.showAvahiMdnsOption?"":"("+l(14,15,"settings.mdns_advertiser_rec")+")"," "),i(4),_(t.showResolvedMdnsOption?17:-1),i(),_(t.hbMDnsIsSaving?18:-1)}}function ba(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function va(e,c){if(e&1&&(a(0,"li",21)(1,"span"),d(2),r(3,"translate"),p(4,"br"),a(5,"small",85),d(6),r(7,"translate"),o()(),a(8,"div",23),p(9,"input",118),r(10,"translate"),u(11,ba,1,1,"i",25),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(2),C(" ",l(3,7,"settings.network.port_hb")),i(4),g(l(7,9,"settings.network.port_hb_desc")),i(3),m("formControl",t.hbPortFormControl)("ngClass",V(13,Q,t.hbPortIsInvalid)),b("aria-label",l(10,11,"settings.network.port_hb")),i(2),_(t.hbPortIsSaving?11:-1)}}function xa(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function Sa(e,c){if(e&1&&(a(0,"li",21)(1,"span"),d(2),r(3,"translate"),p(4,"br"),a(5,"small",85),d(6),r(7,"translate"),o()(),a(8,"div",23),p(9,"input",118),r(10,"translate"),u(11,xa,1,1,"i",25),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(2),C(" ",l(3,7,"settings.network.port_start")),i(4),g(l(7,9,"settings.network.port_start_desc")),i(3),m("formControl",t.hbStartPortFormControl)("ngClass",V(13,Q,t.hbStartPortIsInvalid)),b("aria-label",l(10,11,"settings.network.port_start")),i(2),_(t.hbStartPortIsSaving?11:-1)}}function ya(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function ka(e,c){if(e&1&&(a(0,"li",21)(1,"span"),d(2),r(3,"translate"),p(4,"br"),a(5,"small",85),d(6),r(7,"translate"),o()(),a(8,"div",23),p(9,"input",118),r(10,"translate"),u(11,ya,1,1,"i",25),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(2),C(" ",l(3,7,"settings.network.port_end")),i(4),g(l(7,9,"settings.network.port_end_desc")),i(3),m("formControl",t.hbEndPortFormControl)("ngClass",V(13,Q,t.hbEndPortIsInvalid)),b("aria-label",l(10,11,"settings.network.port_end")),i(2),_(t.hbEndPortIsSaving?11:-1)}}function Ia(e,c){e&1&&(p(0,"br"),a(1,"small",85),p(2,"i",121),d(3),r(4,"translate"),o()),e&2&&(i(3),C(" ",l(4,1,"settings.warning_pwa")," "))}function wa(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function $a(e,c){if(e&1&&(a(0,"li",21)(1,"span"),d(2),r(3,"translate"),p(4,"br")(5,"small",119),r(6,"translate"),u(7,Ia,5,3),o(),a(8,"div",23),p(9,"input",120),r(10,"translate"),u(11,wa,1,1,"i",25),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(2),C(" ",l(3,7,"settings.network.host")),i(3),m("innerHtml",l(6,9,"settings.network.host_desc"),nt),i(2),_(t.isPwa?7:-1),i(2),m("formControl",t.uiHostFormControl),b("aria-label",l(10,11,"settings.network.host")),i(2),_(t.uiHostIsSaving?11:-1)}}function Ea(e,c){e&1&&(p(0,"br"),a(1,"small",85),p(2,"i",121),d(3),r(4,"translate"),o()),e&2&&(i(3),C(" ",l(4,1,"settings.warning_pwa")," "))}function Ta(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function Fa(e,c){if(e&1&&(a(0,"li",21)(1,"span"),d(2),r(3,"translate"),p(4,"br"),a(5,"small",85),d(6),r(7,"translate"),o(),u(8,Ea,5,3),o(),a(9,"div",23),p(10,"input",122),r(11,"translate"),u(12,Ta,1,1,"i",25),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(2),C(" ",l(3,7,"settings.network.proxy")),i(4),g(l(7,9,"settings.network.proxy_desc")),i(2),_(t.isPwa?8:-1),i(2),m("formControl",t.uiProxyHostFormControl),b("aria-label",l(11,11,"settings.network.proxy")),i(2),_(t.uiProxyHostIsSaving?12:-1)}}function Ba(e,c){e&1&&(p(0,"br"),a(1,"small",85),p(2,"i",121),d(3),r(4,"translate"),o()),e&2&&(i(3),C(" ",l(4,1,"settings.warning_pwa")," "))}function Pa(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function Ra(e,c){if(e&1&&(a(0,"li",21)(1,"span"),d(2),r(3,"translate"),p(4,"br"),a(5,"small",85),d(6),r(7,"translate"),o(),u(8,Ba,5,3),o(),a(9,"div",23),p(10,"input",123),r(11,"translate"),u(12,Pa,1,1,"i",25),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(2),C(" ",l(3,8,"settings.network.port_ui")),i(4),g(l(7,10,"settings.network.port_ui_desc")),i(2),_(t.isPwa?8:-1),i(2),m("formControl",t.uiPortFormControl)("ngClass",V(14,Q,t.uiPortIsInvalid)),b("aria-label",l(11,12,"settings.network.port_ui")),i(2),_(t.uiPortIsSaving?12:-1)}}function Aa(e,c){e&1&&(p(0,"br"),a(1,"small",85),p(2,"i",121)(3,"span",125),r(4,"translate"),o()),e&2&&(i(3),m("innerHtml",l(4,1,"settings.warning_webroot"),nt))}function Va(e,c){e&1&&(p(0,"br"),a(1,"small",85),p(2,"i",121)(3,"span",125),r(4,"translate"),o()),e&2&&(i(3),m("innerHtml",l(4,1,"settings.warning_pwa"),nt))}function Ma(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function Ha(e,c){if(e&1&&(a(0,"li",21)(1,"span"),d(2),r(3,"translate"),a(4,"span",92),d(5),r(6,"translate"),o(),p(7,"br")(8,"small",119),r(9,"translate"),u(10,Aa,5,3)(11,Va,5,3),o(),a(12,"div",23),p(13,"input",124),r(14,"translate"),u(15,Ma,1,1,"i",25),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(2),C(" ",l(3,8,"settings.network.webroot")," "),i(3),g(l(6,10,"common.labels.beta")),i(3),m("innerHtml",l(9,12,"settings.network.webroot_desc"),nt),i(2),_(t.webrootSettingDisabledAccess?10:t.isPwa?11:-1),i(3),m("formControl",t.uiWebrootFormControl),b("aria-label",l(14,14,"settings.network.webroot")),i(2),_(t.uiWebrootIsSaving?15:-1)}}function Da(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function La(e,c){if(e&1&&(a(0,"li",22)(1,"span"),d(2),r(3,"translate"),a(4,"span",92),d(5),r(6,"translate"),o(),p(7,"br"),a(8,"small",85),d(9),r(10,"translate"),o()(),a(11,"div",80)(12,"div",81),p(13,"input",126),r(14,"translate"),p(15,"label",127),o(),u(16,Da,1,1,"i",25),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(2),C(" ",l(3,7,"settings.network.mdns_advertise")," "),i(3),g(l(6,9,"common.labels.beta")),i(4),g(l(10,11,"settings.network.mdns_advertise_help")),i(4),m("formControl",t.enableMdnsAdvertiseFormControl),b("aria-label",l(14,13,"settings.network.mdns_advertise")),i(3),_(t.enableMdnsAdvertiseIsSaving?16:-1)}}function Na(e,c){if(e&1&&(a(0,"ul",108),u(1,_a,13,11,"li",22),u(2,fa,19,17,"li",21),u(3,va,12,15,"li",21),u(4,Sa,12,15,"li",21),u(5,ka,12,15,"li",21),u(6,$a,12,13,"li",21),u(7,Fa,13,13,"li",21),u(8,Ra,13,16,"li",21),u(9,Ha,16,16,"li",21),u(10,La,17,15,"li",22),o()),e&2){let t=h(3);i(),_(t.isItemHidden("setting-interfaces")?-1:1),i(),_(t.isItemHidden("setting-mdns")?-1:2),i(),_(t.isItemHidden("setting-port-hb")?-1:3),i(),_(t.isItemHidden("setting-port-range")?-1:4),i(),_(t.isItemHidden("setting-port-end")?-1:5),i(),_(t.isItemHidden("setting-network-host")?-1:6),i(),_(t.isItemHidden("setting-network-proxy")?-1:7),i(),_(t.isItemHidden("setting-ui-port-network")?-1:8),i(),_(t.isItemHidden("setting-webroot-network")?-1:9),i(),_(t.isItemHidden("setting-mdns-advertise")?-1:10)}}function za(e,c){if(e&1){let t=$();a(0,"div",15)(1,"div",17),v("click",function(){S(t);let s=h(2);return y(s.toggleSection("network"))}),a(2,"h5",18),p(3,"i",19),d(4),r(5,"translate"),o()(),u(6,Na,11,10,"ul",108),o()}if(e&2){let t=h(2);i(),b("aria-expanded",t.showFields.network?"true":"false")("aria-controls","fieldsNetwork"),i(2),m("ngClass",A(7,et,t.showFields.network,!t.showFields.network)),i(),C(" ",l(5,5,"settings.network.title_network")," "),i(2),_(t.showFields.network?6:-1)}}function Oa(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function Ua(e,c){if(e&1&&(a(0,"li",22)(1,"span"),d(2),r(3,"translate"),a(4,"span",92),d(5),r(6,"translate"),o(),p(7,"br"),a(8,"small",85),d(9),r(10,"translate"),o()(),a(11,"div",80)(12,"div",81),p(13,"input",130),r(14,"translate"),p(15,"label",131),o(),u(16,Oa,1,1,"i",25),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(2),C(" ",l(3,7,"settings.matter.enabled")," "),i(3),g(l(6,9,"common.labels.beta")),i(4),g(l(10,11,"settings.matter.enabled_desc")),i(4),m("formControl",t.matterEnabledFormControl),b("aria-label",l(14,13,"settings.matter.enabled")),i(3),_(t.matterEnabledIsSaving?16:-1)}}function Wa(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function Ka(e,c){if(e&1&&(a(0,"li",21)(1,"span"),d(2),r(3,"translate"),p(4,"br"),a(5,"small",85),d(6),r(7,"translate"),o()(),a(8,"div",23),p(9,"input",132),r(10,"translate"),u(11,Wa,1,1,"i",25),o()()),e&2){let t=h(5);m("@smoothHide",void 0),i(2),C(" ",l(3,7,"settings.matter.port")),i(4),g(l(7,9,"settings.matter.port_desc")),i(3),m("formControl",t.matterPortFormControl)("ngClass",V(13,Q,t.matterPortIsInvalid)),b("aria-label",l(10,11,"settings.matter.port")),i(2),_(t.matterPortIsSaving?11:-1)}}function ja(e,c){if(e&1&&u(0,Ka,12,15,"li",21),e&2){let t=h(4);_(t.isItemHidden("setting-matter-port")?-1:0)}}function Ga(e,c){if(e&1&&(a(0,"p",128),d(1),r(2,"translate"),o(),a(3,"ul",129),u(4,Ua,17,15,"li",22),u(5,ja,1,1),o()),e&2){let t=h(3);i(),g(l(2,3,"settings.matter.desc")),i(3),_(t.isItemHidden("setting-matter-enabled")?-1:4),i(),_(t.matterEnabledFormControl.value?5:-1)}}function qa(e,c){if(e&1){let t=$();a(0,"div",15)(1,"div",17),v("click",function(){S(t);let s=h(2);return y(s.toggleSection("matter"))}),a(2,"h5",18),p(3,"i",19),d(4),r(5,"translate"),o()(),u(6,Ga,6,5),o()}if(e&2){let t=h(2);i(),b("aria-expanded",t.showFields.matter?"true":"false")("aria-controls","fieldsMatter"),i(2),m("ngClass",A(7,et,t.showFields.matter,!t.showFields.matter)),i(),C(" ",l(5,5,"settings.matter.title")," "),i(2),_(t.showFields.matter?6:-1)}}function Qa(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function Ja(e,c){if(e&1&&(a(0,"li",21)(1,"span"),d(2),r(3,"translate"),p(4,"br"),a(5,"small",85),d(6),r(7,"translate"),o()(),a(8,"div",23),p(9,"input",134),r(10,"translate"),u(11,Qa,1,1,"i",25),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(2),C(" ",l(3,7,"settings.terminal.log_max")),i(4),g(l(7,9,"settings.terminal.log_max_desc")),i(3),m("formControl",t.hbLogSizeFormControl)("ngClass",V(13,Q,t.hbLogSizeIsInvalid)),b("aria-label",l(10,11,"settings.terminal.log_max")),i(2),_(t.hbLogSizeIsSaving?11:-1)}}function Za(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function Xa(e,c){if(e&1&&(a(0,"li",21)(1,"span"),d(2),r(3,"translate"),p(4,"br"),a(5,"small",85),d(6),r(7,"translate"),o()(),a(8,"div",23),p(9,"input",135),r(10,"translate"),u(11,Za,1,1,"i",25),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(2),C(" ",l(3,7,"settings.terminal.log_truncate")),i(4),g(l(7,9,"settings.terminal.log_truncate_desc")),i(3),m("formControl",t.hbLogTruncateFormControl)("ngClass",V(13,Q,t.hbLogTruncateIsInvalid)),b("aria-label",l(10,11,"settings.terminal.log_truncate")),i(2),_(t.hbLogTruncateIsSaving?11:-1)}}function Ya(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function to(e,c){if(e&1&&(a(0,"li",22)(1,"span"),d(2),r(3,"translate"),p(4,"br"),a(5,"small",85),d(6),r(7,"translate"),o()(),a(8,"div",80)(9,"div",81),p(10,"input",136),r(11,"translate"),p(12,"label",137),o(),u(13,Ya,1,1,"i",25),o()()),e&2){let t=h(5);m("@smoothHide",void 0),i(2),C(" ",l(3,6,"settings.terminal.persistence")),i(4),g(l(7,8,"settings.terminal.persistence_help")),i(4),m("formControl",t.uiTerminalPersistenceFormControl),b("aria-label",l(11,10,"settings.terminal.persistence")),i(3),_(t.uiTerminalPersistenceIsSaving?13:-1)}}function eo(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function io(e,c){if(e&1&&(a(0,"li",22)(1,"span"),d(2),r(3,"translate"),p(4,"br"),a(5,"small",85),d(6),r(7,"translate"),o()(),a(8,"div",80)(9,"div",81),p(10,"input",138),r(11,"translate"),p(12,"label",139),o(),u(13,eo,1,1,"i",25),o()()),e&2){let t=h(5);m("@smoothHide",void 0),i(2),C(" ",l(3,6,"settings.terminal.warning")),i(4),g(l(7,8,"settings.terminal.warning_help")),i(4),m("formControl",t.uiTerminalHideWarningFormControl),b("aria-label",l(11,10,"settings.terminal.warning")),i(3),_(t.uiTerminalHideWarningIsSaving?13:-1)}}function no(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function ao(e,c){if(e&1&&(a(0,"li",21)(1,"div",140)(2,"span"),d(3),r(4,"translate"),o(),a(5,"div",141),d(6),r(7,"translate"),o()(),a(8,"div",23),p(9,"input",142),r(10,"translate"),u(11,no,1,1,"i",25),o()()),e&2){let t=h(6);m("@smoothHide",void 0),i(3),g(l(4,7,"settings.terminal.buffer_size")),i(3),g(l(7,9,"settings.terminal.buffer_size_help")),i(3),m("formControl",t.uiTerminalBufferSizeFormControl)("ngClass",V(13,Q,t.uiTerminalBufferSizeIsInvalid)),b("aria-label",l(10,11,"settings.terminal.buffer_size")),i(2),_(t.uiTerminalBufferSizeIsSaving?11:-1)}}function oo(e,c){if(e&1&&u(0,ao,12,15,"li",21),e&2){let t=h(5);_(t.isItemHidden("setting-terminal-buffer")?-1:0)}}function so(e,c){if(e&1&&(u(0,to,14,12,"li",22),u(1,io,14,12,"li",22),u(2,oo,1,1)),e&2){let t=h(4);_(t.isItemHidden("setting-terminal-persistence")?-1:0),i(),_(t.uiTerminalPersistenceFormControl.value?-1:1),i(),_(t.uiTerminalPersistenceFormControl.value?2:-1)}}function ro(e,c){if(e&1&&(a(0,"ul",133),u(1,Ja,12,15,"li",21),u(2,Xa,12,15,"li",21),u(3,so,3,3),o()),e&2){let t=h(3);i(),_(t.isItemHidden("setting-terminal-log-max")?-1:1),i(),_(t.hbLogSizeFormControl.value>0?2:-1),i(),_(t.enableTerminalAccess?3:-1)}}function lo(e,c){if(e&1){let t=$();a(0,"div",15)(1,"div",17),v("click",function(){S(t);let s=h(2);return y(s.toggleSection("terminal"))}),a(2,"h5",18),p(3,"i",19),d(4),r(5,"translate"),o()(),u(6,ro,4,3,"ul",133),o()}if(e&2){let t=h(2);i(),b("aria-expanded",t.showFields.terminal?"true":"false")("aria-controls","fieldsTerminal"),i(2),m("ngClass",A(7,et,t.showFields.terminal,!t.showFields.terminal)),i(),C(" ",l(5,5,"settings.network.title_terminal")," "),i(2),_(t.showFields.terminal?6:-1)}}function co(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function po(e,c){if(e&1&&(a(0,"li",22)(1,"span"),d(2),r(3,"translate"),p(4,"br"),a(5,"small",85),d(6),r(7,"translate"),o()(),a(8,"div",80)(9,"div",81),p(10,"input",144),r(11,"translate"),p(12,"label",145),o(),u(13,co,1,1,"i",25),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(2),C(" ",l(3,6,"settings.security.auth")),i(4),g(l(7,8,"settings.security.auth_desc")),i(4),m("formControl",t.uiAuthFormControl),b("aria-label",l(11,10,"settings.security.auth")),i(3),_(t.uiAuthIsSaving?13:-1)}}function mo(e,c){e&1&&p(0,"i",148),e&2&&m("@fadeInOut",void 0)}function uo(e,c){if(e&1&&(a(0,"li",22)(1,"span"),d(2),r(3,"translate"),a(4,"span",92),d(5),r(6,"translate"),o(),p(7,"br"),a(8,"small",85),d(9),r(10,"translate"),o()(),a(11,"div",80)(12,"div",81),p(13,"input",146),r(14,"translate"),p(15,"label",147),o(),u(16,mo,1,1,"i",148),o()()),e&2){let t=h(5);m("@smoothHide",void 0),i(2),C(" ",l(3,7,"settings.startup.session_inactivity_based")," "),i(3),g(l(6,9,"common.labels.beta")),i(4),g(l(10,11,"settings.startup.session_inactivity_based_desc")),i(4),m("formControl",t.uiSessionTimeoutInactivityBasedFormControl),b("aria-label",l(14,13,"settings.startup.session_inactivity_based")),i(3),_(t.uiSessionTimeoutInactivityBasedIsSaving?16:-1)}}function _o(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function ho(e,c){if(e&1&&(a(0,"li",21)(1,"span"),d(2),r(3,"translate"),p(4,"br"),a(5,"small",85),d(6),r(7,"translate"),o()(),a(8,"div",23)(9,"div",149)(10,"div",80),p(11,"input",150),r(12,"translate"),a(13,"label",151),d(14),r(15,"translate"),o()(),a(16,"div",80),p(17,"input",152),r(18,"translate"),a(19,"label",151),d(20),r(21,"translate"),o()(),a(22,"div",80),p(23,"input",153),r(24,"translate"),a(25,"label",151),d(26),r(27,"translate"),o()()(),u(28,_o,1,1,"i",25),o()()),e&2){let t=h(5);m("@smoothHide",void 0),i(2),C(" ",l(3,16,"settings.startup.session")),i(4),g(l(7,18,"settings.startup.session_desc")),i(5),m("formControl",t.uiSessionTimeoutDaysFormControl)("ngClass",V(32,Q,t.uiSessionTimeoutIsInvalid)),b("aria-label",l(12,20,"settings.startup.session_days")),i(3),g(l(15,22,"settings.startup.session_days")),i(3),m("formControl",t.uiSessionTimeoutHoursFormControl)("ngClass",V(34,Q,t.uiSessionTimeoutIsInvalid)),b("aria-label",l(18,24,"settings.startup.session_hours")),i(3),g(l(21,26,"settings.startup.session_hours")),i(3),m("formControl",t.uiSessionTimeoutMinutesFormControl)("ngClass",V(36,Q,t.uiSessionTimeoutIsInvalid)),b("aria-label",l(24,28,"settings.startup.session_minutes")),i(3),g(l(27,30,"settings.startup.session_minutes")),i(2),_(t.uiSessionTimeoutIsSaving?28:-1)}}function go(e,c){if(e&1&&(u(0,uo,17,15,"li",22),u(1,ho,29,38,"li",21)),e&2){let t=h(4);_(t.isItemHidden("setting-session-inactivity")?-1:0),i(),_(t.isItemHidden("setting-security-session")?-1:1)}}function Co(e,c){if(e&1&&(a(0,"small",85),p(1,"span",125),r(2,"translate"),o()),e&2){let t=h(5);i(),m("innerHtml",q(2,1,"settings.security.https_raspbian",V(4,He,t.linkRaspbianSsl)),nt)}}function fo(e,c){e&1&&(p(0,"br"),a(1,"small",85),p(2,"i",121),d(3),r(4,"translate"),o()),e&2&&(i(3),C(" ",l(4,1,"settings.warning_pwa")," "))}function bo(e,c){if(e&1&&(a(0,"small",85),d(1),r(2,"translate"),o(),u(3,fo,5,3)),e&2){let t=h(5);i(),g(l(2,2,"settings.security.https_desc")),i(2),_(t.isPwa?3:-1)}}function vo(e,c){e&1&&(a(0,"option",156),d(1),r(2,"translate"),o()),e&2&&(i(),g(l(2,1,"settings.security.https_selfsigned")))}function xo(e,c){if(e&1){let t=$();a(0,"button",160),r(1,"translate"),r(2,"translate"),v("click",function(){S(t);let s=h(5);return y(s.validateSsl())}),p(3,"i",161),o()}e&2&&(m("title",ot(l(1,3,"settings.security.ssl_validate"))),b("aria-label",l(2,5,"settings.security.ssl_validate")))}function So(e,c){if(e&1&&(a(0,"li",21)(1,"span"),d(2),r(3,"translate"),p(4,"br"),u(5,Co,3,6,"small",85)(6,bo,4,4),o(),a(7,"div",23)(8,"select",154),r(9,"translate"),a(10,"option",155),d(11),r(12,"translate"),o(),u(13,vo,3,3,"option",156),a(14,"option",157),d(15),r(16,"translate"),o(),a(17,"option",158),d(18),r(19,"translate"),o()(),u(20,xo,4,7,"button",159),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(2),C(" ",l(3,11,"settings.security.https")),i(3),_(t.runningOnRaspbianImage?5:6),i(3),m("formControl",t.uiSslTypeFormControl)("hidden",t.runningOnRaspbianImage),b("aria-label",l(9,13,"settings.security.https")),i(3),g(l(12,15,"accessories.control.off")),i(2),_(t.runningOnRaspbianImage?-1:13),i(2),g(l(16,17,"settings.security.https_keycert")),i(3),g(l(19,19,"settings.security.https_pfx")),i(2),_(t.uiSslTypeFormControl.value!=="off"?20:-1)}}function yo(e,c){e&1&&(p(0,"br"),a(1,"small",85),p(2,"i",121),d(3),r(4,"translate"),o()),e&2&&(i(3),C(" ",l(4,1,"settings.warning_pwa")," "))}function ko(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function Io(e,c){if(e&1){let t=$();a(0,"li",21)(1,"span"),d(2),r(3,"translate"),a(4,"span",92),d(5),r(6,"translate"),o(),p(7,"br"),a(8,"small",85),d(9),r(10,"translate"),o()(),u(11,yo,5,3),a(12,"div",23),p(13,"input",162),r(14,"translate"),a(15,"button",163),r(16,"translate"),r(17,"translate"),v("click",function(){S(t);let s=h(4);return y(s.generateSelfSigned("keycert"))}),p(18,"i",164),o(),a(19,"button",165),r(20,"translate"),r(21,"translate"),v("click",function(){S(t);let s=h(4);return y(s.generateSelfSigned("selfsigned"))}),p(22,"i",166),o(),u(23,ko,1,1,"i",25),o()()}if(e&2){let t=h(4);m("@smoothHide",void 0),i(2),C(" ",l(3,14,"settings.security.selfsigned_hostnames")," "),i(3),g(l(6,16,"common.labels.beta")),i(4),g(l(10,18,"settings.security.selfsigned_hostnames_desc")),i(2),_(t.isPwa?11:-1),i(2),m("formControl",t.uiSslSelfSignedHostnamesFormControl),b("aria-label",l(14,20,"settings.security.selfsigned_hostnames")),i(2),m("title",ot(l(16,22,"settings.security.selfsigned_generate_keycert"))),b("aria-label",l(17,24,"settings.security.selfsigned_generate_keycert")),i(4),m("title",ot(l(20,26,"settings.security.selfsigned_generate_selfsigned"))),b("aria-label",l(21,28,"settings.security.selfsigned_generate_selfsigned")),i(4),_(t.uiSslSelfSignedHostnamesIsSaving?23:-1)}}function wo(e,c){e&1&&(p(0,"br"),a(1,"small",85),p(2,"i",121),d(3),r(4,"translate"),o()),e&2&&(i(3),C(" ",l(4,1,"settings.warning_pwa")," "))}function $o(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function Eo(e,c){e&1&&(p(0,"br"),a(1,"small",85),p(2,"i",121),d(3),r(4,"translate"),o()),e&2&&(i(3),C(" ",l(4,1,"settings.warning_pwa")," "))}function To(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function Fo(e,c){if(e&1){let t=$();a(0,"li",21)(1,"span"),d(2),r(3,"translate"),o(),u(4,Eo,5,3),a(5,"div",167)(6,"button",172),r(7,"translate"),r(8,"translate"),v("click",function(){S(t);let s=h(6);return y(s.triggerKeyCertSelect())}),p(9,"i",169),o(),p(10,"input",173),r(11,"translate"),u(12,To,1,1,"i",25),o()()}if(e&2){let t=h(6);m("@smoothHide",void 0),i(2),g(l(3,9,"settings.security.cert")),i(2),_(t.isPwa?4:-1),i(2),m("title",ot(l(7,11,"settings.security.ssl_upload_keycert_aria"))),b("aria-label",l(8,13,"settings.security.ssl_upload_keycert_aria")),i(4),m("formControl",t.uiSslCertFormControl),b("aria-label",l(11,15,"settings.security.cert")),i(2),_(t.uiSslCertIsSaving?12:-1)}}function Bo(e,c){if(e&1){let t=$();a(0,"li",21)(1,"span"),d(2),r(3,"translate"),o(),u(4,wo,5,3),a(5,"div",167)(6,"button",168),r(7,"translate"),r(8,"translate"),v("click",function(){S(t);let s=h(5);return y(s.triggerKeyCertSelect())}),p(9,"i",169),o(),a(10,"input",170,1),v("change",function(){S(t);let s=Vt(11),f=h(5);return y(f.onSslKeyCertChange(s.files))}),o(),p(12,"input",171),r(13,"translate"),u(14,$o,1,1,"i",25),o()(),u(15,Fo,13,17,"li",21)}if(e&2){let t=h(5);m("@smoothHide",void 0),i(2),g(l(3,10,"settings.security.key")),i(2),_(t.isPwa?4:-1),i(2),m("title",ot(l(7,12,"settings.security.ssl_upload_keycert_aria"))),b("aria-label",l(8,14,"settings.security.ssl_upload_keycert_aria")),i(6),m("formControl",t.uiSslKeyFormControl),b("aria-label",l(13,16,"settings.security.key")),i(2),_(t.uiSslKeyIsSaving?14:-1),i(),_(t.isItemHidden("setting-security-cert")?-1:15)}}function Po(e,c){e&1&&(p(0,"br"),a(1,"small",85),p(2,"i",121),d(3),r(4,"translate"),o()),e&2&&(i(3),C(" ",l(4,1,"settings.warning_pwa")," "))}function Ro(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function Ao(e,c){e&1&&(p(0,"br"),a(1,"small",85),p(2,"i",121),d(3),r(4,"translate"),o()),e&2&&(i(3),C(" ",l(4,1,"settings.warning_pwa")," "))}function Vo(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function Mo(e,c){if(e&1){let t=$();a(0,"li",21)(1,"span"),d(2),r(3,"translate"),o(),u(4,Ao,5,3),a(5,"div",23)(6,"input",177),r(7,"translate"),v("focus",function(){S(t);let s=h(6);return y(s.showPfxPassphrase=!0)})("blur",function(){S(t);let s=h(6);return y(s.showPfxPassphrase=!1)}),o(),u(8,Vo,1,1,"i",25),o()()}if(e&2){let t=h(6);m("@smoothHide",void 0),i(2),g(l(3,7,"settings.security.pass")),i(2),_(t.isPwa?4:-1),i(2),m("type",t.showPfxPassphrase?"text":"password")("formControl",t.uiSslPassphraseFormControl),b("aria-label",l(7,9,"settings.security.pass")),i(2),_(t.uiSslPassphraseIsSaving?8:-1)}}function Ho(e,c){if(e&1){let t=$();a(0,"li",21)(1,"span"),d(2),r(3,"translate"),o(),u(4,Po,5,3),a(5,"div",167)(6,"button",174),r(7,"translate"),r(8,"translate"),v("click",function(){S(t);let s=h(5);return y(s.triggerPfxSelect())}),p(9,"i",169),o(),a(10,"input",175,2),v("change",function(){S(t);let s=Vt(11),f=h(5);return y(f.onSslPfxChange(s.files))}),o(),p(12,"input",176),r(13,"translate"),u(14,Ro,1,1,"i",25),o()(),u(15,Mo,9,11,"li",21)}if(e&2){let t=h(5);m("@smoothHide",void 0),i(2),g(l(3,10,"settings.security.pfx")),i(2),_(t.isPwa?4:-1),i(2),m("title",ot(l(7,12,"settings.security.ssl_upload_pfx_aria"))),b("aria-label",l(8,14,"settings.security.ssl_upload_pfx_aria")),i(6),m("formControl",t.uiSslPfxFormControl),b("aria-label",l(13,16,"settings.security.pfx")),i(2),_(t.uiSslPfxIsSaving?14:-1),i(),_(t.isItemHidden("setting-security-pass")?-1:15)}}function Do(e,c){if(e&1&&(u(0,Bo,16,18),u(1,Ho,16,18)),e&2){let t=h(4);_(t.uiSslTypeFormControl.value==="keycert"?0:-1),i(),_(t.uiSslTypeFormControl.value==="pfx"?1:-1)}}function Lo(e,c){if(e&1){let t=$();a(0,"li",22)(1,"span",26),d(2),r(3,"translate"),p(4,"br"),a(5,"small",85),d(6),r(7,"translate"),o()(),a(8,"button",27),r(9,"translate"),v("click",function(){S(t);let s=h(4);return y(s.accessoryUiControl())}),p(10,"i",28),o()()}e&2&&(m("@smoothHide",void 0),i(2),C(" ",l(3,4,"settings.security.ui_control")),i(4),g(l(7,6,"settings.security.ui_control_desc")),i(2),b("aria-label",l(9,8,"settings.security.ui_control")))}function No(e,c){if(e&1&&(a(0,"ul",143),u(1,po,14,12,"li",22),u(2,go,2,2),u(3,So,21,21,"li",21),u(4,Io,24,30,"li",21),u(5,Do,2,2),u(6,Lo,11,10,"li",22),o()),e&2){let t=h(3);i(),_(t.isItemHidden("setting-security-auth")?-1:1),i(),_(t.uiAuthFormControl.value?2:-1),i(),_(t.isItemHidden("setting-security-https")?-1:3),i(),_(t.uiSslTypeFormControl.value==="selfsigned"?4:-1),i(),_(t.runningOnRaspbianImage?-1:5),i(),_(t.isItemHidden("setting-security-control")?-1:6)}}function zo(e,c){if(e&1){let t=$();a(0,"div",15)(1,"div",17),v("click",function(){S(t);let s=h(2);return y(s.toggleSection("security"))}),a(2,"h5",18),p(3,"i",19),d(4),r(5,"translate"),o()(),u(6,No,7,6,"ul",143),o()}if(e&2){let t=h(2);i(),b("aria-expanded",t.showFields.security?"true":"false")("aria-controls","fieldsSecurity"),i(2),m("ngClass",A(7,et,t.showFields.security,!t.showFields.security)),i(),C(" ",l(5,5,"settings.network.title_security")," "),i(2),_(t.showFields.security?6:-1)}}function Oo(e,c){e&1&&p(0,"i",25),e&2&&m("@fadeInOut",void 0)}function Uo(e,c){if(e&1&&(a(0,"li",22)(1,"span"),d(2),r(3,"translate"),p(4,"br"),a(5,"small",85),d(6),r(7,"translate"),o()(),a(8,"div",80)(9,"div",81),p(10,"input",179),r(11,"translate"),p(12,"label",180),o(),u(13,Oo,1,1,"i",25),o()()),e&2){let t=h(4);m("@smoothHide",void 0),i(2),C(" ",l(3,6,"settings.accessory.debug")),i(4),g(l(7,8,"settings.accessory.debug_desc")),i(4),m("formControl",t.uiAccDebugFormControl),b("aria-label",l(11,10,"settings.accessory.debug")),i(3),_(t.uiAccDebugIsSaving?13:-1)}}function Wo(e,c){if(e&1){let t=$();a(0,"li",22)(1,"span",26),d(2),r(3,"translate"),p(4,"br"),a(5,"small",85),d(6),r(7,"translate"),o()(),a(8,"button",27),r(9,"translate"),v("click",function(){S(t);let s=h(4);return y(s.removeSingleCachedAccessories())}),p(10,"i",28),o()()}e&2&&(m("@smoothHide",void 0),i(2),C(" ",l(3,4,"reset.accessory_ind.title")),i(4),g(l(7,6,"reset.accessory_ind.desc")),i(2),b("aria-label",l(9,8,"reset.accessory_ind.title")))}function Ko(e,c){if(e&1){let t=$();a(0,"li",22)(1,"span",26),d(2),r(3,"translate"),p(4,"br"),a(5,"small",85),d(6),r(7,"translate"),o()(),a(8,"button",27),r(9,"translate"),v("click",function(){S(t);let s=h(4);return y(s.removeBridgeAccessories())}),p(10,"i",28),o()()}e&2&&(m("@smoothHide",void 0),i(2),C(" ",l(3,4,"reset.bridge_accessories.title")),i(4),g(l(7,6,"reset.bridge_accessories.desc")),i(2),b("aria-label",l(9,8,"reset.accessory_all.title")))}function jo(e,c){if(e&1){let t=$();a(0,"li",22)(1,"span",26),d(2),r(3,"translate"),p(4,"br"),a(5,"small",85),d(6),r(7,"translate"),o()(),a(8,"button",27),r(9,"translate"),v("click",function(){S(t);let s=h(4);return y(s.removeAllCachedAccessories())}),p(10,"i",28),o()()}e&2&&(m("@smoothHide",void 0),i(2),C(" ",l(3,4,"reset.accessory_all.title")),i(4),g(l(7,6,"reset.accessory_all.desc")),i(2),b("aria-label",l(9,8,"reset.accessory_all.title")))}function Go(e,c){if(e&1&&(a(0,"p",128),d(1),r(2,"translate"),o(),a(3,"ul",178),u(4,Uo,14,12,"li",22),u(5,Wo,11,10,"li",22),u(6,Ko,11,10,"li",22),u(7,jo,11,10,"li",22),o()),e&2){let t=h(3);i(),g(l(2,5,"settings.cache.desc")),i(3),_(t.isItemHidden("setting-accessory-debug")?-1:4),i(),_(t.isItemHidden("setting-reset-accessory-ind")?-1:5),i(),_(t.isItemHidden("setting-reset-bridge-accessories")?-1:6),i(),_(t.isItemHidden("setting-reset-accessory-all")?-1:7)}}function qo(e,c){if(e&1){let t=$();a(0,"div",15)(1,"div",17),v("click",function(){S(t);let s=h(2);return y(s.toggleSection("cache"))}),a(2,"h5",18),p(3,"i",19),d(4),r(5,"translate"),o()(),u(6,Go,8,7),o()}if(e&2){let t=h(2);i(),b("aria-expanded",t.showFields.cache?"true":"false")("aria-controls","fieldsCache"),i(2),m("ngClass",A(7,et,t.showFields.cache,!t.showFields.cache)),i(),C(" ",l(5,5,"menu.label_accessories")," "),i(2),_(t.showFields.cache?6:-1)}}function Qo(e,c){if(e&1){let t=$();a(0,"li",22)(1,"span",26),d(2),r(3,"translate"),p(4,"br"),a(5,"small",85),d(6),r(7,"translate"),o()(),a(8,"button",27),r(9,"translate"),v("click",function(){S(t);let s=h(4);return y(s.unpairAccessory())}),p(10,"i",28),o()()}e&2&&(m("@smoothHide",void 0),i(2),C(" ",l(3,4,"reset.bridge_ind.title")),i(4),g(l(7,6,"reset.bridge_ind.desc")),i(2),b("aria-label",l(9,8,"reset.bridge_ind.title")))}function Jo(e,c){if(e&1){let t=$();a(0,"li",22)(1,"span",26),d(2),r(3,"translate"),r(4,"titlecase"),p(5,"br"),a(6,"small",85),d(7),r(8,"translate"),o()(),a(9,"button",27),r(10,"translate"),v("click",function(){S(t);let s=h(4);return y(s.resetHomebridgeState())}),p(11,"i",28),o()()}e&2&&(m("@smoothHide",void 0),i(2),C(" ",l(4,6,l(3,4,"reset.bridge_all.title"))),i(5),g(l(8,8,"reset.bridge_all.desc")),i(2),b("aria-label",l(10,10,"reset.bridge_all.title")))}function Zo(e,c){if(e&1&&(a(0,"p",128),d(1),r(2,"translate"),o(),a(3,"ul",181),u(4,Qo,11,10,"li",22),u(5,Jo,12,12,"li",22),o()),e&2){let t=h(3);i(),g(l(2,3,"reset.bridges.desc")),i(3),_(t.isItemHidden("setting-reset-bridge-ind")?-1:4),i(),_(t.isItemHidden("setting-reset-bridge-all")?-1:5)}}function Xo(e,c){if(e&1){let t=$();a(0,"div",15)(1,"div",17),v("click",function(){S(t);let s=h(2);return y(s.toggleSection("reset"))}),a(2,"h5",18),p(3,"i",19),d(4),r(5,"translate"),o()(),u(6,Zo,6,5),o()}if(e&2){let t=h(2);i(),b("aria-expanded",t.showFields.reset?"true":"false")("aria-controls","fieldsReset"),i(2),m("ngClass",A(7,et,t.showFields.reset,!t.showFields.reset)),i(),C(" ",l(5,5,"reset.bridges.title")," "),i(2),_(t.showFields.reset?6:-1)}}function Yo(e,c){if(e&1&&(u(0,In,7,10,"div",15),u(1,Nn,7,10,"div",15),u(2,pa,7,10,"div",15),u(3,za,7,10,"div",15),u(4,qa,7,10,"div",15),u(5,lo,7,10,"div",15),u(6,zo,7,10,"div",15),u(7,qo,7,10,"div",15),u(8,Xo,7,10,"div",15),p(9,"div",16)),e&2){let t=h();_(t.isSectionVisible("general")?0:-1),i(),_(t.isSectionVisible("display")?1:-1),i(),_(t.isSectionVisible("startup")?2:-1),i(),_(t.isSectionVisible("network")?3:-1),i(),_(t.isMatterSupported&&t.isSectionVisible("matter")?4:-1),i(),_(t.isSectionVisible("terminal")?5:-1),i(),_(t.isSectionVisible("security")?6:-1),i(),_(t.isSectionVisible("cache")?7:-1),i(),_(t.isSectionVisible("reset")?8:-1)}}var El=(()=>{class e{searchInput;sslKeyCertInput;sslPfxInput;$api=k(z);$cdr=k(jt);$destroyRef=k(zt);$modal=k(gt);$notification=k(me);$router=k(Z);$settings=k(X);$terminal=k(_e);$toastr=k(N);$translate=k(L);restartToastIsShown=!1;initialValues={};changedFields=new Set;matterConfigCache={};showFields={general:!0,display:!0,startup:!0,network:!0,matter:!0,security:!0,terminal:!0,reset:!0,cache:!0};hiddenItems={};showSearchBar=!1;searchQuery="";loading=!0;debugFieldDesc="settings.startup.debug_desc_v1";showAvahiMdnsOption=!1;showResolvedMdnsOption=!1;adaptersAvailable=[];adaptersSelected=[];showPfxPassphrase=!1;runningInDocker=this.$settings.env.runningInDocker;runningOnRaspberryPi=this.$settings.env.runningOnRaspberryPi;runningOnRaspbianImage=this.$settings.env.runningOnRaspbianImage;platform=this.$settings.env.platform;enableTerminalAccess=this.$settings.env.enableTerminalAccess;isMatterSupported=this.$settings.isFeatureEnabled("matterSupport");isPwa=!!pe();webrootSettingDisabledAccess=!1;hbNameIsInvalid=!1;hbNameIsSaving=!1;hbNameFormControl=new T("");uiLangIsSaving=!1;uiLangFormControl=new T("");uiThemeIsSaving=!1;uiThemeFormControl=new T("");uiLightIsSaving=!1;uiLightFormControl=new T("");uiMenuIsSaving=!1;uiMenuFormControl=new T("");uiTempIsSaving=!1;uiTempFormControl=new T("");uiAlwaysShowBetasIsSaving=!1;uiAlwaysShowBetasFormControl=new T(!1);uiTerminalPersistenceIsSaving=!1;uiTerminalPersistenceFormControl=new T(!1);uiTerminalHideWarningIsSaving=!1;uiTerminalHideWarningFormControl=new T(!1);uiTerminalBufferSizeIsSaving=!1;uiTerminalBufferSizeIsInvalid=!1;uiTerminalBufferSizeFormControl=new T(globalThis.terminal.bufferSize);hbDebugIsSaving=!1;hbDebugFormControl=new T(!1);hbInsecureIsSaving=!1;hbInsecureFormControl=new T(!1);hbKeepIsSaving=!1;hbKeepFormControl=new T(!1);hbEnvDebugIsSaving=!1;hbEnvDebugFormControl=new T("");hbEnvNodeIsSaving=!1;hbEnvNodeFormControl=new T("");hbLogSizeIsInvalid=!1;hbLogSizeIsSaving=!1;hbLogSizeFormControl=new T(-1);hbLogTruncateIsInvalid=!1;hbLogTruncateIsSaving=!1;hbLogTruncateFormControl=new T(0);hbMDnsIsSaving=!1;hbMDnsFormControl=new T("");enableMdnsAdvertiseFormControl=new T(!1);enableMdnsAdvertiseIsSaving=!1;hbPortIsInvalid=!1;hbPortIsSaving=!1;hbPortFormControl=new T(0);uiPortIsInvalid=!1;uiPortIsSaving=!1;uiPortFormControl=new T(0);hbStartPortIsInvalid=!1;hbStartPortIsSaving=!1;hbStartPortFormControl=new T(0);hbEndPortIsInvalid=!1;hbEndPortIsSaving=!1;hbEndPortFormControl=new T(0);uiHostIsSaving=!1;uiHostFormControl=new T("");uiWebrootIsSaving=!1;uiWebrootFormControl=new T("");uiProxyHostIsSaving=!1;uiProxyHostFormControl=new T("");uiAuthIsSaving=!1;uiAuthFormControl=new Xt(!0);uiSessionTimeoutIsInvalid=!1;uiSessionTimeoutIsSaving=!1;uiSessionTimeoutDaysFormControl=new T(0);uiSessionTimeoutHoursFormControl=new T(8);uiSessionTimeoutMinutesFormControl=new T(0);uiSessionTimeoutInactivityBasedIsSaving=!1;uiSessionTimeoutInactivityBasedFormControl=new T(!1);uiSslTypeFormControl=new T("off");uiSslKeyIsSaving=!1;uiSslKeyFormControl=new T("");uiSslCertIsSaving=!1;uiSslCertFormControl=new T("");uiSslPfxIsSaving=!1;uiSslPfxFormControl=new T("");uiSslPassphraseIsSaving=!1;uiSslPassphraseFormControl=new T("");uiSslSelfSignedHostnamesIsSaving=!1;uiSslSelfSignedHostnamesFormControl=new T("");hbPackageIsSaving=!1;hbPackageFormControl=new T("");uiMetricsIsSaving=!1;uiMetricsFormControl=new T(!0);uiAccDebugIsSaving=!1;uiAccDebugFormControl=new T(!1);uiTempFileIsSaving=!1;uiTempFileFormControl=new T("");hbLinuxShutdownIsSaving=!1;hbLinuxShutdownFormControl=new T("");hbLinuxRestartIsSaving=!1;hbLinuxRestartFormControl=new T("");scheduledRestartCronIsSaving=!1;scheduledRestartCronIsInvalid=!1;scheduledRestartCronFormControl=new T("");matterEnabledIsSaving=!1;matterEnabledFormControl=new T(!1);matterPortIsInvalid=!1;matterPortIsSaving=!1;matterPortFormControl=new T(0);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>';linkRaspbianSsl='<a href="https://github.com/homebridge/homebridge-raspbian-image/wiki/SSL-HTTPS-Access" target="_blank" rel="noopener noreferrer"><i class="fa fa-external-link-alt primary-text"></i></a>';toggleSearch(){this.showSearchBar=!this.showSearchBar,this.showSearchBar?setTimeout(()=>{this.searchInput&&this.searchInput.nativeElement&&this.searchInput.nativeElement.focus()},100):this.clearSearch()}clearSearch(){this.searchQuery="",this.filterSettings()}filterSettings(){if(this.hiddenItems={},!this.searchQuery)return;let t=this.searchQuery.toLowerCase(),n=this.getItemsContent();Object.entries(n).forEach(([s,f])=>{f&&f.toLowerCase().includes(t)||(this.hiddenItems[s]=!0)}),this.$cdr.detectChanges()}isItemHidden(t){let n=!!this.hiddenItems[t];return this.searchQuery,n}isSectionVisible(t){if(!this.searchQuery)return!0;let s={general:["setting-name","setting-backup","setting-restore","setting-users"],display:["setting-lang","setting-theme","setting-lighting","setting-menu","setting-temp","setting-betas","setting-wallpaper"],startup:["setting-debug","setting-insecure","setting-keep","setting-scheduled-restart","setting-metrics-startup","setting-package-path","setting-linux-restart","setting-env-debug-manual","setting-env-node"],network:["setting-interfaces","setting-mdns","setting-port-hb","setting-port-range","setting-port-end","setting-network-host","setting-network-proxy","setting-ui-port-network","setting-webroot-network","setting-mdns-advertise"],matter:["setting-matter-enabled","setting-matter-port"],terminal:["setting-terminal-log-max","setting-terminal-persistence","setting-terminal-buffer"],security:["setting-security-auth","setting-session-inactivity","setting-security-session","setting-security-https","setting-security-cert","setting-security-pass","setting-security-selfsigned-hostnames","setting-security-control"],cache:["setting-accessory-debug","setting-reset-accessory-ind","setting-reset-bridge-accessories","setting-reset-accessory-all"],reset:["setting-reset-bridge-ind","setting-reset-bridge-all"]}[t];return s?s.some(f=>!this.isItemHidden(f)):!0}getItemsContent(){return{"setting-name":this.$translate.instant("settings.name"),"setting-backup":this.$translate.instant("backup.title_backup"),"setting-restore":this.$translate.instant("config.restore.title"),"setting-users":this.$translate.instant("menu.tooltip_user_accounts"),"setting-lang":this.$translate.instant("settings.display.lang"),"setting-theme":this.$translate.instant("settings.display.theme"),"setting-lighting":this.$translate.instant("settings.display.lighting_mode"),"setting-menu":this.$translate.instant("settings.display.menu_mode"),"setting-temp":this.$translate.instant("settings.display.temp_units"),"setting-betas":this.$translate.instant("settings.display.show_betas"),"setting-wallpaper":this.$translate.instant("settings.display.wallpaper"),"setting-debug":this.$translate.instant("settings.startup.debug"),"setting-insecure":this.$translate.instant("settings.startup.insecure"),"setting-keep":this.$translate.instant("settings.startup.keep_accessories"),"setting-scheduled-restart":this.$translate.instant("settings.startup.scheduled_restart"),"setting-metrics-startup":this.$translate.instant("settings.startup.metrics"),"setting-env-debug":this.$translate.instant("settings.startup.env_debug"),"setting-env-debug-manual":"DEBUG","setting-env-node":this.$translate.instant("settings.startup.env_node_options"),"setting-log-size":this.$translate.instant("settings.startup.log_length"),"setting-log-truncate":this.$translate.instant("settings.startup.truncate_log"),"setting-package-path":this.$translate.instant("settings.startup.homebridge_package_path"),"setting-mdns":this.$translate.instant("settings.mdns_advertiser"),"setting-interfaces":this.$translate.instant("settings.network.title_network_interfaces"),"setting-port-hb":this.$translate.instant("settings.network.port_hb"),"setting-port-bridge":this.$translate.instant("settings.network.port.bridge"),"setting-port-range":this.$translate.instant("settings.network.port.start"),"setting-port-end":this.$translate.instant("settings.network.port.end"),"setting-network-host":this.$translate.instant("settings.network.host"),"setting-network-proxy":this.$translate.instant("settings.network.proxy"),"setting-ui-port-network":this.$translate.instant("settings.network.port_ui"),"setting-webroot-network":this.$translate.instant("settings.network.webroot"),"setting-mdns-advertise":this.$translate.instant("settings.network.mdns_advertise"),"setting-matter-enabled":this.$translate.instant("settings.matter.enabled"),"setting-matter-port":this.$translate.instant("settings.matter.port"),"setting-security-auth":this.$translate.instant("settings.security.auth"),"setting-security-session":this.$translate.instant("settings.startup.session"),"setting-security-https":this.$translate.instant("settings.security.https"),"setting-security-cert":this.$translate.instant("settings.security.cert"),"setting-security-pass":this.$translate.instant("settings.security.pass"),"setting-security-selfsigned-hostnames":this.$translate.instant("settings.security.selfsigned_hostnames"),"setting-security-control":this.$translate.instant("settings.security.ui_control"),"setting-ui-port":this.$translate.instant("settings.security.webui_port"),"setting-ui-host":this.$translate.instant("settings.security.webui_host"),"setting-ui-auth":this.$translate.instant("settings.security.webui_auth"),"setting-session-timeout":this.$translate.instant("settings.security.session_timeout"),"setting-session-inactivity":this.$translate.instant("settings.startup.session_inactivity_based"),"setting-proxy":this.$translate.instant("settings.security.webui_proxy_host"),"setting-ssl":this.$translate.instant("settings.security.ssl_key"),"setting-terminal-log-max":this.$translate.instant("settings.terminal.log_max"),"setting-terminal-persistence":this.$translate.instant("settings.terminal.persistence"),"setting-terminal-warning":this.$translate.instant("settings.terminal.hide_warning"),"setting-terminal-buffer":this.$translate.instant("settings.terminal.buffer_size"),"setting-reset-accessory-ind":this.$translate.instant("reset.accessory_ind.title"),"setting-reset-bridge-accessories":this.$translate.instant("reset.bridge_accessories.title"),"setting-reset-accessory-all":this.$translate.instant("reset.accessory_all.title"),"setting-reset-bridge-ind":this.$translate.instant("reset.bridge_ind.title"),"setting-reset-bridge-all":this.$translate.instant("reset.bridge_all.title"),"setting-reset-state":this.$translate.instant("settings.reset.reset_homebridge_state"),"setting-unpair":this.$translate.instant("settings.reset.unpair_bridges"),"setting-metrics":this.$translate.instant("settings.reset.enable_metrics"),"setting-accessory-control":this.$translate.instant("settings.reset.control_panel"),"setting-accessory-debug":this.$translate.instant("settings.accessory.debug"),"setting-temp-files":this.$translate.instant("settings.reset.temp_files"),"setting-linux-shutdown":this.$translate.instant("settings.reset.linux_shutdown"),"setting-linux-restart":this.$translate.instant("settings.reset.linux_restart"),"setting-cache-all":this.$translate.instant("settings.cache.title_clear_cache"),"setting-cache-bridge":this.$translate.instant("settings.cache.title_clear_bridge_cache"),"setting-cache-accessories":this.$translate.instant("settings.cache.title_clear_cached_accessories")}}ngOnInit(){return x(this,null,function*(){let t=this.$translate.instant("menu.label_settings");this.$settings.setPageTitle(t),this.$settings.isFeatureEnabled("childBridgeDebugMode")&&(this.debugFieldDesc="settings.startup.debug_desc_v2"),yield this.initNetworkingOptions(),yield this.initStartupSettings(),this.$settings.originalWebroot===globalThis.webroot.errorCode&&(this.webrootSettingDisabledAccess=!0,this.uiWebrootFormControl.disable()),this.isPwa&&(this.uiPortFormControl.disable(),this.uiHostFormControl.disable(),this.uiWebrootFormControl.disable(),this.uiProxyHostFormControl.disable(),this.uiSslTypeFormControl.disable(),this.uiSslKeyFormControl.disable(),this.uiSslCertFormControl.disable(),this.uiSslPfxFormControl.disable(),this.uiSslPassphraseFormControl.disable(),this.uiSslSelfSignedHostnamesFormControl.disable()),this.runningOnRaspbianImage&&this.uiSslTypeFormControl.disable(),this.hbNameFormControl.patchValue(this.$settings.env.homebridgeInstanceName),this.hbNameFormControl.valueChanges.pipe(E(1500)).pipe(w(this.$destroyRef)).subscribe(I=>this.hbNameSave(I)),this.uiLangFormControl.patchValue(this.$settings.env.lang),this.uiLangFormControl.valueChanges.pipe(E(750)).pipe(w(this.$destroyRef)).subscribe(I=>this.uiLangSave(I)),this.uiThemeFormControl.patchValue(this.$settings.theme),this.uiThemeFormControl.valueChanges.pipe(E(750)).pipe(w(this.$destroyRef)).subscribe(I=>this.uiThemeSave(I)),this.uiLightFormControl.patchValue(this.$settings.lightingMode),this.uiLightFormControl.valueChanges.pipe(E(750)).pipe(w(this.$destroyRef)).subscribe(I=>this.uiLightSave(I)),this.uiMenuFormControl.patchValue(this.$settings.menuMode),this.uiMenuFormControl.valueChanges.pipe(E(750)).pipe(w(this.$destroyRef)).subscribe(I=>this.uiMenuSave(I)),this.uiTempFormControl.patchValue(this.$settings.env.temperatureUnits),this.uiTempFormControl.valueChanges.pipe(E(750)).pipe(w(this.$destroyRef)).subscribe(I=>this.uiTempSave(I)),this.uiAlwaysShowBetasFormControl.patchValue(this.$settings.env.plugins?.alwaysShowBetas||!1),this.uiAlwaysShowBetasFormControl.valueChanges.pipe(E(750)).pipe(w(this.$destroyRef)).subscribe(I=>this.uiAlwaysShowBetasSave(I)),this.uiTerminalPersistenceFormControl.patchValue(this.$settings.env.terminal?.persistence),this.uiTerminalPersistenceFormControl.valueChanges.pipe(E(750)).pipe(w(this.$destroyRef)).subscribe(I=>this.uiTerminalPersistenceSave(I)),this.uiTerminalHideWarningFormControl.patchValue(this.$settings.env.terminal?.hideWarning),this.uiTerminalHideWarningFormControl.valueChanges.pipe(E(750)).pipe(w(this.$destroyRef)).subscribe(I=>this.uiTerminalHideWarningSave(I)),this.uiTerminalBufferSizeFormControl.patchValue(this.$settings.env.terminal?.bufferSize),this.uiTerminalBufferSizeFormControl.valueChanges.pipe(E(1500)).pipe(w(this.$destroyRef)).subscribe(I=>this.uiTerminalBufferSizeSave(I)),this.patchAndTrack(this.hbLogSizeFormControl,"hbLogSize",this.$settings.env.log?.maxSize),this.hbLogSizeFormControl.valueChanges.pipe(E(1500)).pipe(w(this.$destroyRef)).subscribe(I=>this.hbLogSizeSave(I)),this.patchAndTrack(this.hbLogTruncateFormControl,"hbLogTruncate",this.$settings.env.log?.truncateSize),this.hbLogTruncateFormControl.valueChanges.pipe(E(1500)).pipe(w(this.$destroyRef)).subscribe(I=>this.hbLogTruncateSave(I)),this.patchAndTrack(this.uiPortFormControl,"uiPort",this.$settings.env.port),this.uiPortFormControl.valueChanges.pipe(E(1500)).pipe(w(this.$destroyRef)).subscribe(I=>this.uiPortSave(I)),this.patchAndTrack(this.uiAuthFormControl,"uiAuth",this.$settings.formAuth),this.uiAuthFormControl.valueChanges.pipe(E(750)).pipe(w(this.$destroyRef)).subscribe(I=>this.uiAuthSave(I));let n=this.$settings.sessionTimeout,s=Math.floor(n/86400),f=Math.floor(n%86400/3600),B=Math.floor(n%3600/60);this.uiSessionTimeoutDaysFormControl.patchValue(s),this.uiSessionTimeoutHoursFormControl.patchValue(f),this.uiSessionTimeoutMinutesFormControl.patchValue(B),this.initialValues.uiSessionTimeout=n,this.uiSessionTimeoutDaysFormControl.valueChanges.pipe(E(750)).pipe(w(this.$destroyRef)).subscribe(()=>this.uiSessionTimeoutSaveFromFields()),this.uiSessionTimeoutHoursFormControl.valueChanges.pipe(E(750)).pipe(w(this.$destroyRef)).subscribe(()=>this.uiSessionTimeoutSaveFromFields()),this.uiSessionTimeoutMinutesFormControl.valueChanges.pipe(E(750)).pipe(w(this.$destroyRef)).subscribe(()=>this.uiSessionTimeoutSaveFromFields()),this.patchAndTrack(this.uiSessionTimeoutInactivityBasedFormControl,"uiSessionTimeoutInactivityBased",this.$settings.sessionTimeoutInactivityBased||!1),this.uiSessionTimeoutInactivityBasedFormControl.valueChanges.pipe(E(750)).pipe(w(this.$destroyRef)).subscribe(I=>this.uiSessionTimeoutInactivityBasedSave(I)),this.patchAndTrack(this.uiSslKeyFormControl,"uiSslKey",this.$settings.env.ssl?.key||""),this.uiSslKeyFormControl.valueChanges.pipe(E(1500)).pipe(w(this.$destroyRef)).subscribe(I=>this.uiSslKeySave(I)),this.patchAndTrack(this.uiSslCertFormControl,"uiSslCert",this.$settings.env.ssl?.cert||""),this.uiSslCertFormControl.valueChanges.pipe(E(1500)).pipe(w(this.$destroyRef)).subscribe(I=>this.uiSslCertSave(I)),this.patchAndTrack(this.uiSslPfxFormControl,"uiSslPfx",this.$settings.env.ssl?.pfx||""),this.uiSslPfxFormControl.valueChanges.pipe(E(1500)).pipe(w(this.$destroyRef)).subscribe(I=>this.uiSslPfxSave(I)),this.patchAndTrack(this.uiSslPassphraseFormControl,"uiSslPassphrase",this.$settings.env.ssl?.passphrase||""),this.uiSslPassphraseFormControl.valueChanges.pipe(E(1500)).pipe(w(this.$destroyRef)).subscribe(I=>this.uiSslPassphraseSave(I));let O=this.$settings.env.ssl?.selfSignedHostnames?.join(", ")||"localhost, 127.0.0.1";this.patchAndTrack(this.uiSslSelfSignedHostnamesFormControl,"uiSslSelfSignedHostnames",O),this.uiSslSelfSignedHostnamesFormControl.valueChanges.pipe(E(1500)).pipe(w(this.$destroyRef)).subscribe(I=>this.uiSslSelfSignedHostnamesSave(I));let De=this.$settings.env.ssl?.selfSigned?"selfsigned":this.uiSslKeyFormControl.value||this.uiSslCertFormControl.value?"keycert":this.uiSslPfxFormControl.value||this.uiSslPassphraseFormControl.value?"pfx":"off";this.patchAndTrack(this.uiSslTypeFormControl,"uiSslType",De),this.uiSslTypeFormControl.valueChanges.pipe(E(750)).pipe(w(this.$destroyRef)).subscribe(I=>this.uiSslTypeSave(I)),this.patchAndTrack(this.uiHostFormControl,"uiHost",this.$settings.host||""),this.uiHostFormControl.valueChanges.pipe(E(1500)).pipe(w(this.$destroyRef)).subscribe(I=>this.uiHostSave(I)),this.patchAndTrack(this.uiWebrootFormControl,"uiWebroot",this.$settings.webroot||""),this.uiWebrootFormControl.valueChanges.pipe(E(1500)).pipe(w(this.$destroyRef)).subscribe(I=>this.uiWebrootSave(I)),this.patchAndTrack(this.uiProxyHostFormControl,"uiProxyHost",this.$settings.proxyHost||""),this.uiProxyHostFormControl.valueChanges.pipe(E(1500)).pipe(w(this.$destroyRef)).subscribe(I=>this.uiProxyHostSave(I)),this.patchAndTrack(this.hbPackageFormControl,"hbPackage",this.$settings.env.homebridgePackagePath||""),this.hbPackageFormControl.valueChanges.pipe(E(1500)).pipe(w(this.$destroyRef)).subscribe(I=>this.hbPackageSave(I)),this.patchAndTrack(this.uiMetricsFormControl,"uiMetrics",!this.$settings.env.disableServerMetricsMonitoring),this.uiMetricsFormControl.valueChanges.pipe(E(750)).pipe(w(this.$destroyRef)).subscribe(I=>this.uiMetricsSave(I)),this.patchAndTrack(this.enableMdnsAdvertiseFormControl,"enableMdnsAdvertise",this.$settings.env.enableMdnsAdvertise||!1),this.enableMdnsAdvertiseFormControl.valueChanges.pipe(E(750)).pipe(w(this.$destroyRef)).subscribe(I=>this.enableMdnsAdvertiseSave(I)),this.patchAndTrack(this.uiAccDebugFormControl,"uiAccDebug",this.$settings.env.accessoryControl?.debug),this.uiAccDebugFormControl.valueChanges.pipe(E(750)).pipe(w(this.$destroyRef)).subscribe(I=>this.uiAccDebugSave(I)),this.patchAndTrack(this.uiTempFileFormControl,"uiTempFile",this.$settings.env.temp),this.uiTempFileFormControl.valueChanges.pipe(E(1500)).pipe(w(this.$destroyRef)).subscribe(I=>this.uiTempFileSave(I)),this.patchAndTrack(this.hbLinuxShutdownFormControl,"hbLinuxShutdown",this.$settings.env.linux?.shutdown),this.hbLinuxShutdownFormControl.valueChanges.pipe(E(1500)).pipe(w(this.$destroyRef)).subscribe(I=>this.hbLinuxShutdownSave(I)),this.patchAndTrack(this.hbLinuxRestartFormControl,"hbLinuxRestart",this.$settings.env.linux?.restart),this.hbLinuxRestartFormControl.valueChanges.pipe(E(1500)).pipe(w(this.$destroyRef)).subscribe(I=>this.hbLinuxRestartSave(I)),this.patchAndTrack(this.scheduledRestartCronFormControl,"scheduledRestartCron",this.$settings.env.scheduledRestartCron||""),this.scheduledRestartCronFormControl.valueChanges.pipe(E(1500)).pipe(w(this.$destroyRef)).subscribe(I=>this.scheduledRestartCronSave(I)),yield this.initMatterSettings(),this.loading=!1,this.$cdr.markForCheck()})}openBackupModal(){let t=this.$modal.open(Bt,{size:"lg",backdrop:"static"});t.componentInstance.initialValues=this.initialValues,t.componentInstance.changedFields=this.changedFields}openConfigBackup(){this.$router.navigate(["/config"],{queryParams:{action:"restore"}})}openWallpaperModal(){this.$modal.open(Me,{size:"lg",backdrop:"static"})}resetHomebridgeState(){this.$modal.open(Pe,{size:"lg",backdrop:"static"})}unpairAccessory(){this.$modal.open(Ae,{size:"lg",backdrop:"static"})}removeAllCachedAccessories(){this.$modal.open(Fe,{size:"lg",backdrop:"static"})}accessoryUiControl(){return x(this,null,function*(){try{let t=this.$modal.open(ye,{size:"lg",backdrop:"static"}),n=this.$settings.env.accessoryControl?.instanceBlacklist||[];t.componentInstance.existingBlacklist=n,this.initialValues.accessoryControlBlacklist||(this.initialValues.accessoryControlBlacklist=n);let s=yield t.result;this.showRestartToast("accessoryControlBlacklist",s)}catch(t){t!=="Dismiss"&&(console.error(t),this.$toastr.error(t.message,this.$translate.instant("toast.title_error")))}})}removeSingleCachedAccessories(){this.$modal.open(he,{size:"lg",backdrop:"static"})}removeBridgeAccessories(){this.$modal.open(Be,{size:"lg",backdrop:"static"})}selectNetworkInterfaces(){return x(this,null,function*(){let t=this.$modal.open(Ve,{size:"lg",backdrop:"static"});t.componentInstance.adaptersAvailable=this.adaptersAvailable,t.componentInstance.adaptersSelected=this.adaptersSelected;try{let n=yield t.result;this.buildBridgeNetworkAdapterList(n),yield F(this.$api.put("/server/network-interfaces/bridge",{adapters:n})),this.showRestartToast("networkAdapters",n)}catch(n){n!=="Dismiss"&&(console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")))}})}toggleSection(t){this.showFields[t]=!this.showFields[t]}initStartupSettings(){return x(this,null,function*(){try{let t=yield F(this.$api.get("/platform-tools/hb-service/homebridge-startup-settings"));this.patchAndTrack(this.hbDebugFormControl,"hbDebug",t.HOMEBRIDGE_DEBUG),this.hbDebugFormControl.valueChanges.pipe(E(750)).pipe(w(this.$destroyRef)).subscribe(n=>this.hbDebugSave(n)),this.patchAndTrack(this.hbInsecureFormControl,"hbInsecure",t.HOMEBRIDGE_INSECURE),this.hbInsecureFormControl.valueChanges.pipe(E(750)).pipe(w(this.$destroyRef)).subscribe(n=>this.hbInsecureSave(n)),this.patchAndTrack(this.hbKeepFormControl,"hbKeep",t.HOMEBRIDGE_KEEP_ORPHANS),this.hbKeepFormControl.valueChanges.pipe(E(750)).pipe(w(this.$destroyRef)).subscribe(n=>this.hbKeepSave(n)),this.patchAndTrack(this.hbEnvDebugFormControl,"hbEnvDebug",t.ENV_DEBUG),this.hbEnvDebugFormControl.valueChanges.pipe(E(1500)).pipe(w(this.$destroyRef)).subscribe(n=>this.hbEnvDebugSave(n)),this.patchAndTrack(this.hbEnvNodeFormControl,"hbEnvNode",t.ENV_NODE_OPTIONS),this.hbEnvNodeFormControl.valueChanges.pipe(E(1500)).pipe(w(this.$destroyRef)).subscribe(n=>this.hbEnvNodeSave(n))}catch(t){console.error(t),this.$toastr.error(t.message,this.$translate.instant("toast.title_error"))}})}initNetworkingOptions(){return x(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(t){console.error(t),this.$toastr.error(t.message,this.$translate.instant("toast.title_error"))}})}getNetworkSettings(){return x(this,null,function*(){return Promise.all([F(this.$api.get("/server/network-interfaces/system")),F(this.$api.get("/server/network-interfaces/bridge")),F(this.$api.get("/server/mdns-advertiser")),F(this.$api.get("/server/port")),F(this.$api.get("/server/ports"))]).then(([t,n,s,f,B])=>{this.adaptersAvailable=t,this.buildBridgeNetworkAdapterList(n),this.initialValues.networkAdapters=n.slice(),this.patchAndTrack(this.hbMDnsFormControl,"hbMDns",s.advertiser),this.hbMDnsFormControl.valueChanges.pipe(E(750)).pipe(w(this.$destroyRef)).subscribe(O=>this.hbMDnsSave(O)),this.patchAndTrack(this.hbPortFormControl,"hbPort",f.port),this.hbPortFormControl.valueChanges.pipe(E(1500)).pipe(w(this.$destroyRef)).subscribe(O=>this.hbPortSave(O)),this.patchAndTrack(this.hbStartPortFormControl,"hbStartPort",B.start),this.hbStartPortFormControl.valueChanges.pipe(E(1500)).pipe(w(this.$destroyRef)).subscribe(O=>this.hbStartPortSave(O)),this.patchAndTrack(this.hbEndPortFormControl,"hbEndPort",B.end),this.hbEndPortFormControl.valueChanges.pipe(E(1500)).pipe(w(this.$destroyRef)).subscribe(O=>this.hbEndPortSave(O))})})}saveUiSettingChange(t,n){return x(this,null,function*(){try{yield F(this.$api.put("/config-editor/ui",{key:t,value:n}))}catch(s){console.error(s),this.$toastr.error(s.message,this.$translate.instant("toast.title_error"))}})}hbNameSave(t){return x(this,null,function*(){if(!Ce(t)){this.hbNameIsInvalid=!0,this.$cdr.markForCheck();return}try{this.hbNameIsSaving=!0,this.$cdr.markForCheck(),yield F(this.$api.put("/server/name",{name:t})),this.$settings.setEnvItem("homebridgeInstanceName",t),this.hbNameIsInvalid=!1,this.$cdr.markForCheck(),setTimeout(()=>{this.hbNameIsSaving=!1,this.$cdr.markForCheck()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbNameIsSaving=!1,this.$cdr.markForCheck()}})}uiLangSave(t){return x(this,null,function*(){try{this.uiLangIsSaving=!0,this.$cdr.markForCheck(),this.$settings.setLang(t),yield this.saveUiSettingChange("lang",t),setTimeout(()=>{this.uiLangIsSaving=!1,this.$cdr.markForCheck()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiLangIsSaving=!1,this.$cdr.markForCheck()}})}uiThemeSave(t){return x(this,null,function*(){try{this.uiThemeIsSaving=!0,this.$cdr.markForCheck(),this.$settings.setTheme(t),yield this.saveUiSettingChange("theme",t),setTimeout(()=>{this.uiThemeIsSaving=!1,this.$cdr.markForCheck()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiThemeIsSaving=!1,this.$cdr.markForCheck()}})}uiLightSave(t){return x(this,null,function*(){try{this.uiLightIsSaving=!0,this.$cdr.markForCheck(),this.$settings.setLightingMode(t,"user"),yield this.saveUiSettingChange("lightingMode",t),setTimeout(()=>{this.uiLightIsSaving=!1,this.$cdr.markForCheck()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiLightIsSaving=!1,this.$cdr.markForCheck()}})}uiMenuSave(t){return x(this,null,function*(){try{this.uiMenuIsSaving=!0,this.$cdr.markForCheck(),this.$settings.setMenuMode(t),yield this.saveUiSettingChange("menuMode",t),window.location.reload()}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiMenuIsSaving=!1,this.$cdr.markForCheck()}})}uiTempSave(t){return x(this,null,function*(){try{this.uiTempIsSaving=!0,this.$cdr.markForCheck(),this.$settings.setEnvItem("temperatureUnits",t),yield this.saveUiSettingChange("tempUnits",t),setTimeout(()=>{this.uiTempIsSaving=!1,this.$cdr.markForCheck()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiTempIsSaving=!1,this.$cdr.markForCheck()}})}uiAlwaysShowBetasSave(t){return x(this,null,function*(){try{this.uiAlwaysShowBetasIsSaving=!0,this.$cdr.markForCheck(),this.$settings.setEnvItem("plugins.alwaysShowBetas",t),yield this.saveUiSettingChange("plugins.alwaysShowBetas",t),setTimeout(()=>{this.uiAlwaysShowBetasIsSaving=!1,this.$cdr.markForCheck()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiAlwaysShowBetasIsSaving=!1,this.$cdr.markForCheck()}})}uiTerminalPersistenceSave(t){return x(this,null,function*(){if(!t&&this.$terminal.hasActiveSession()){let n=this.$modal.open(Ht,{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,this.$cdr.markForCheck(),t||this.$terminal.destroyPersistentSession(),this.$settings.setEnvItem("terminal.persistence",t),yield this.saveUiSettingChange("terminal.persistence",t),setTimeout(()=>{this.uiTerminalPersistenceIsSaving=!1,this.$cdr.markForCheck()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiTerminalPersistenceIsSaving=!1,this.$cdr.markForCheck()}})}uiTerminalHideWarningSave(t){return x(this,null,function*(){try{this.uiTerminalHideWarningIsSaving=!0,this.$cdr.markForCheck(),this.$settings.setEnvItem("terminal.hideWarning",t),yield this.saveUiSettingChange("terminal.hideWarning",t),setTimeout(()=>{this.uiTerminalHideWarningIsSaving=!1,this.$cdr.markForCheck()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiTerminalHideWarningIsSaving=!1,this.$cdr.markForCheck()}})}uiTerminalBufferSizeSave(t){return x(this,null,function*(){if(!be(t)){this.uiTerminalBufferSizeIsInvalid=!0,this.$cdr.markForCheck();return}try{this.uiTerminalBufferSizeIsSaving=!0,this.$cdr.markForCheck(),this.$settings.setEnvItem("terminal.bufferSize",t),yield this.saveUiSettingChange("terminal.bufferSize",t),this.uiTerminalBufferSizeIsInvalid=!1,this.$cdr.markForCheck(),setTimeout(()=>{this.uiTerminalBufferSizeIsSaving=!1,this.$cdr.markForCheck()},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiTerminalBufferSizeIsSaving=!1,this.$cdr.markForCheck()}})}hbDebugSave(t){return x(this,null,function*(){try{this.hbDebugIsSaving=!0,this.$cdr.markForCheck(),yield F(this.$api.put("/platform-tools/hb-service/homebridge-startup-settings",{HOMEBRIDGE_DEBUG:t,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.$cdr.markForCheck(),this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).pipe(w(this.$destroyRef)).subscribe({next:()=>this.showRestartToast("hbDebug",t),error:n=>{console.error(n),this.showRestartToast("hbDebug",t)}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbDebugIsSaving=!1,this.$cdr.markForCheck()}})}hbInsecureSave(t){return x(this,null,function*(){try{this.hbInsecureIsSaving=!0,this.$cdr.markForCheck(),yield F(this.$api.put("/platform-tools/hb-service/homebridge-startup-settings",{HOMEBRIDGE_DEBUG:this.hbDebugFormControl.value,HOMEBRIDGE_KEEP_ORPHANS:this.hbKeepFormControl.value,HOMEBRIDGE_INSECURE:t,ENV_DEBUG:this.hbEnvDebugFormControl.value,ENV_NODE_OPTIONS:this.hbEnvNodeFormControl.value})),setTimeout(()=>{this.hbInsecureIsSaving=!1,this.$cdr.markForCheck(),this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).pipe(w(this.$destroyRef)).subscribe({next:()=>this.showRestartToast("hbInsecure",t),error:n=>{console.error(n),this.showRestartToast("hbInsecure",t)}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbInsecureIsSaving=!1,this.$cdr.markForCheck()}})}hbKeepSave(t){return x(this,null,function*(){try{this.hbKeepIsSaving=!0,this.$cdr.markForCheck(),yield F(this.$api.put("/platform-tools/hb-service/homebridge-startup-settings",{HOMEBRIDGE_DEBUG:this.hbDebugFormControl.value,HOMEBRIDGE_KEEP_ORPHANS:t,HOMEBRIDGE_INSECURE:this.hbInsecureFormControl.value,ENV_DEBUG:this.hbEnvDebugFormControl.value,ENV_NODE_OPTIONS:this.hbEnvNodeFormControl.value})),this.$settings.setKeepOrphans(t),setTimeout(()=>{this.hbKeepIsSaving=!1,this.$cdr.markForCheck(),this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).pipe(w(this.$destroyRef)).subscribe({next:()=>this.showRestartToast("hbKeep",t),error:n=>{console.error(n),this.showRestartToast("hbKeep",t)}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbKeepIsSaving=!1,this.$cdr.markForCheck()}})}hbEnvDebugSave(t){return x(this,null,function*(){try{this.hbEnvDebugIsSaving=!0,this.$cdr.markForCheck(),yield F(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:t,ENV_NODE_OPTIONS:this.hbEnvNodeFormControl.value})),setTimeout(()=>{this.hbEnvDebugIsSaving=!1,this.$cdr.markForCheck(),this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).pipe(w(this.$destroyRef)).subscribe({next:()=>this.showRestartToast("hbEnvDebug",t),error:n=>{console.error(n),this.showRestartToast("hbEnvDebug",t)}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbEnvDebugIsSaving=!1,this.$cdr.markForCheck()}})}hbEnvNodeSave(t){return x(this,null,function*(){try{this.hbEnvNodeIsSaving=!0,this.$cdr.markForCheck(),yield F(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:t})),setTimeout(()=>{this.hbEnvNodeIsSaving=!1,this.$cdr.markForCheck(),this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).pipe(w(this.$destroyRef)).subscribe({next:()=>this.showRestartToast("hbEnvNode",t),error:n=>{console.error(n),this.showRestartToast("hbEnvNode",t)}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbEnvNodeIsSaving=!1,this.$cdr.markForCheck()}})}hbLogSizeSave(t){return x(this,null,function*(){if(!Lt(t)){this.hbLogSizeIsInvalid=!0,this.$cdr.markForCheck();return}try{this.hbLogSizeIsSaving=!0,this.$cdr.markForCheck(),this.$settings.setEnvItem("log.maxSize",t),(!t||t===-1)&&(yield this.saveUiSettingChange("log.truncateSize",null),this.hbLogTruncateIsInvalid=!1,this.$cdr.markForCheck()),yield this.saveUiSettingChange("log.maxSize",t),this.hbLogSizeIsInvalid=!1,this.$cdr.markForCheck(),setTimeout(()=>{this.hbLogSizeIsSaving=!1,this.$cdr.markForCheck(),this.showRestartToast("hbLogSize",t)},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbLogSizeIsSaving=!1,this.$cdr.markForCheck()}})}hbLogTruncateSave(t){return x(this,null,function*(){if(!Lt(t,{allowDisabled:!1})){this.hbLogTruncateIsInvalid=!0,this.$cdr.markForCheck();return}try{this.hbLogTruncateIsSaving=!0,this.$cdr.markForCheck(),this.$settings.setEnvItem("log.truncateSize",t),yield this.saveUiSettingChange("log.truncateSize",t),this.hbLogTruncateIsInvalid=!1,this.$cdr.markForCheck(),setTimeout(()=>{this.hbLogTruncateIsSaving=!1,this.$cdr.markForCheck(),this.showRestartToast("hbLogTruncate",t)},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbLogTruncateIsSaving=!1,this.$cdr.markForCheck()}})}hbMDnsSave(t){return x(this,null,function*(){try{this.hbMDnsIsSaving=!0,this.$cdr.markForCheck(),yield F(this.$api.put("/server/mdns-advertiser",{advertiser:t})),setTimeout(()=>{this.hbMDnsIsSaving=!1,this.$cdr.markForCheck(),this.showRestartToast("hbMDns",t)},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbMDnsIsSaving=!1,this.$cdr.markForCheck()}})}hbPortSave(t){return x(this,null,function*(){let n=[this.uiPortFormControl.value];if(this.matterPortFormControl.value&&n.push(this.matterPortFormControl.value),!it(t,{min:1024,max:65535,reservedPorts:Tt(),conflictPorts:n})){this.hbPortIsInvalid=!0,this.$cdr.markForCheck();return}try{this.hbPortIsSaving=!0,this.$cdr.markForCheck(),yield F(this.$api.put("/server/port",{port:t})),this.hbPortIsInvalid=!1,this.$cdr.markForCheck(),setTimeout(()=>{this.hbPortIsSaving=!1,this.$cdr.markForCheck(),this.showRestartToast("hbPort",t)},1e3)}catch(s){console.error(s),this.$toastr.error(s.message,this.$translate.instant("toast.title_error")),this.hbPortIsSaving=!1,this.$cdr.markForCheck()}})}hbStartPortSave(t){return x(this,null,function*(){if(!it(t,{min:1024,max:65535})){this.hbStartPortIsInvalid=!0,this.$cdr.markForCheck();return}let n=this.hbEndPortFormControl.value;if(n){let s=Dt(t,n);if(!s.isValid){this.hbStartPortIsInvalid=!0,this.$cdr.markForCheck(),this.hbEndPortIsInvalid=!0,this.$cdr.markForCheck(),this.$toastr.error(s.error,this.$translate.instant("toast.title_error"));return}}try{this.hbStartPortIsSaving=!0,this.$cdr.markForCheck(),yield F(this.$api.put("/server/ports",{start:t,end:this.hbEndPortFormControl.value})),this.hbStartPortIsInvalid=!1,this.$cdr.markForCheck(),this.hbEndPortIsInvalid=!1,this.$cdr.markForCheck(),setTimeout(()=>{this.hbStartPortIsSaving=!1,this.$cdr.markForCheck(),this.showRestartToast("hbStartPort",t)},1e3)}catch(s){console.error(s),this.$toastr.error(s.message,this.$translate.instant("toast.title_error")),this.hbStartPortIsSaving=!1,this.$cdr.markForCheck()}})}hbEndPortSave(t){return x(this,null,function*(){if(!it(t,{min:1024,max:65535})){this.hbEndPortIsInvalid=!0,this.$cdr.markForCheck();return}let n=this.hbStartPortFormControl.value,s=Dt(n,t);if(!s.isValid){this.hbEndPortIsInvalid=!0,this.$cdr.markForCheck(),this.hbStartPortIsInvalid=!0,this.$cdr.markForCheck(),this.$toastr.error(s.error,this.$translate.instant("toast.title_error"));return}try{this.hbEndPortIsSaving=!0,this.$cdr.markForCheck(),yield F(this.$api.put("/server/ports",{start:this.hbStartPortFormControl.value,end:t})),this.hbEndPortIsInvalid=!1,this.$cdr.markForCheck(),this.hbStartPortIsInvalid=!1,this.$cdr.markForCheck(),setTimeout(()=>{this.hbEndPortIsSaving=!1,this.$cdr.markForCheck(),this.showRestartToast("hbEndPort",t)},1e3)}catch(f){console.error(f),this.$toastr.error(f.message,this.$translate.instant("toast.title_error")),this.hbEndPortIsSaving=!1,this.$cdr.markForCheck()}})}uiPortSave(t){return x(this,null,function*(){let n=[this.hbPortFormControl.value];if(this.matterPortFormControl.value&&n.push(this.matterPortFormControl.value),!it(t,{min:1025,max:65533,reservedPorts:Tt(),conflictPorts:n})){this.uiPortIsInvalid=!0,this.$cdr.markForCheck();return}try{this.uiPortIsSaving=!0,this.$cdr.markForCheck(),this.$settings.setEnvItem("port",t),yield this.saveUiSettingChange("port",t),this.uiPortIsInvalid=!1,this.$cdr.markForCheck(),setTimeout(()=>{this.uiPortIsSaving=!1,this.$cdr.markForCheck(),this.showRestartToast("uiPort",t)},1e3)}catch(s){console.error(s),this.$toastr.error(s.message,this.$translate.instant("toast.title_error")),this.uiPortIsSaving=!1,this.$cdr.markForCheck()}})}uiAuthSave(t){return x(this,null,function*(){try{this.uiAuthIsSaving=!0,this.$cdr.markForCheck(),this.$settings.setItem("formAuth",t),yield this.saveUiSettingChange("auth",t?"form":"none"),this.$notification.formAuthEnabled.next(t),setTimeout(()=>{this.uiAuthIsSaving=!1,this.$cdr.markForCheck(),this.showRestartToast("uiAuth",t)},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiAuthIsSaving=!1,this.$cdr.markForCheck()}})}uiSessionTimeoutSaveFromFields(){return x(this,null,function*(){let t=this.uiSessionTimeoutDaysFormControl.value||0,n=this.uiSessionTimeoutHoursFormControl.value||0,s=this.uiSessionTimeoutMinutesFormControl.value||0;if(typeof t!="number"||t<0||t>365||!Number.isInteger(t)||typeof n!="number"||n<0||n>23||!Number.isInteger(n)||typeof s!="number"||s<0||s>59||!Number.isInteger(s)){this.uiSessionTimeoutIsInvalid=!0,this.$cdr.markForCheck();return}let f=t*86400+n*3600+s*60;if(f<600||f>864e5){this.uiSessionTimeoutIsInvalid=!0,this.$cdr.markForCheck();return}try{this.uiSessionTimeoutIsSaving=!0,this.$cdr.markForCheck(),this.$settings.setItem("sessionTimeout",f),yield this.saveUiSettingChange("sessionTimeout",f),this.uiSessionTimeoutIsInvalid=!1,this.$cdr.markForCheck(),setTimeout(()=>{this.uiSessionTimeoutIsSaving=!1,this.$cdr.markForCheck(),this.showRestartToast("uiSessionTimeout",f)},1e3)}catch(B){console.error(B),this.$toastr.error(B.message,this.$translate.instant("toast.title_error")),this.uiSessionTimeoutIsSaving=!1,this.$cdr.markForCheck()}})}uiSessionTimeoutInactivityBasedSave(t){return x(this,null,function*(){try{this.uiSessionTimeoutInactivityBasedIsSaving=!0,this.$cdr.markForCheck(),this.$settings.setItem("sessionTimeoutInactivityBased",t),yield this.saveUiSettingChange("sessionTimeoutInactivityBased",t),setTimeout(()=>{this.uiSessionTimeoutInactivityBasedIsSaving=!1,this.$cdr.markForCheck(),this.showRestartToast("uiSessionTimeoutInactivityBased",t)},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiSessionTimeoutInactivityBasedIsSaving=!1,this.$cdr.markForCheck()}})}uiSslKeySave(t){return x(this,null,function*(){try{this.uiSslKeyIsSaving=!0,this.$cdr.markForCheck(),this.$settings.setEnvItem("ssl.key",t),yield this.saveUiSettingChange("ssl.key",t),setTimeout(()=>{this.uiSslKeyIsSaving=!1,this.$cdr.markForCheck(),this.showRestartToast("uiSslKey",t)},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiSslKeyIsSaving=!1,this.$cdr.markForCheck()}})}uiSslCertSave(t){return x(this,null,function*(){try{this.uiSslCertIsSaving=!0,this.$cdr.markForCheck(),this.$settings.setEnvItem("ssl.cert",t),yield this.saveUiSettingChange("ssl.cert",t),setTimeout(()=>{this.uiSslCertIsSaving=!1,this.$cdr.markForCheck(),this.showRestartToast("uiSslCert",t)},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiSslCertIsSaving=!1,this.$cdr.markForCheck()}})}uiSslPfxSave(t){return x(this,null,function*(){try{this.uiSslPfxIsSaving=!0,this.$cdr.markForCheck(),this.$settings.setEnvItem("ssl.pfx",t),yield this.saveUiSettingChange("ssl.pfx",t),setTimeout(()=>{this.uiSslPfxIsSaving=!1,this.$cdr.markForCheck(),this.showRestartToast("uiSslPfx",t)},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiSslPfxIsSaving=!1,this.$cdr.markForCheck()}})}uiSslPassphraseSave(t){return x(this,null,function*(){try{this.uiSslPassphraseIsSaving=!0,this.$cdr.markForCheck(),this.$settings.setEnvItem("ssl.passphrase",t),yield this.saveUiSettingChange("ssl.passphrase",t),setTimeout(()=>{this.uiSslPassphraseIsSaving=!1,this.$cdr.markForCheck(),this.showRestartToast("uiSslPassphrase",t)},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiSslPassphraseIsSaving=!1,this.$cdr.markForCheck()}})}uiSslSelfSignedHostnamesSave(t){return x(this,null,function*(){try{this.uiSslSelfSignedHostnamesIsSaving=!0,this.$cdr.markForCheck();let n=t.split(",").map(s=>s.trim()).filter(s=>s.length>0);this.$settings.setEnvItem("ssl.selfSignedHostnames",n),yield this.saveUiSettingChange("ssl.selfSignedHostnames",n),setTimeout(()=>{this.uiSslSelfSignedHostnamesIsSaving=!1,this.$cdr.markForCheck(),this.showRestartToast("uiSslSelfSignedHostnames",t)},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiSslSelfSignedHostnamesIsSaving=!1,this.$cdr.markForCheck()}})}generateSelfSigned(t="keycert"){let n=this.uiSslSelfSignedHostnamesFormControl.value||"",s=String(n).split(",").map(B=>B.trim()).filter(B=>!!B),f={hostnames:s,mode:t};this.$api.post("/server/ssl/selfsigned/generate",f).pipe(w(this.$destroyRef)).subscribe({next:B=>{t==="keycert"?(this.handleSslKeyCertUpdate(B),this.$toastr.success(this.$translate.instant("settings.security.selfsigned_generate_success_keycert"),this.$translate.instant("toast.title_success"))):(this.$settings.setEnvItem("ssl.selfSigned",!0),this.$settings.setEnvItem("ssl.selfSignedHostnames",s),this.uiSslTypeFormControl.patchValue("selfsigned",{emitEvent:!0}),this.$toastr.success(this.$translate.instant("settings.security.selfsigned_generate_success_selfsigned"),this.$translate.instant("toast.title_success"))),this.showRestartToast()},error:B=>{console.error(B),this.$toastr.error(B.error?.message||B.message,this.$translate.instant("toast.title_error"))}})}uiSslTypeSave(t){return x(this,null,function*(){switch(t){case"keycert":this.uiSslPfxFormControl.patchValue("",{emitEvent:!1}),this.uiSslPassphraseFormControl.patchValue("",{emitEvent:!1}),this.$settings.setEnvItem("ssl.pfx",""),this.$settings.setEnvItem("ssl.passphrase",""),this.$settings.setEnvItem("ssl.selfSigned",!1),yield this.saveUiSettingChange("ssl.selfSigned",!1);break;case"pfx":this.uiSslKeyFormControl.patchValue("",{emitEvent:!1}),this.uiSslCertFormControl.patchValue("",{emitEvent:!1}),this.$settings.setEnvItem("ssl.key",""),this.$settings.setEnvItem("ssl.cert",""),this.$settings.setEnvItem("ssl.selfSigned",!1),yield this.saveUiSettingChange("ssl.selfSigned",!1);break;case"selfsigned":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",""),this.$settings.setEnvItem("ssl.selfSigned",!0),yield this.saveUiSettingChange("ssl.selfSigned",!0),this.uiSslSelfSignedHostnamesFormControl.value||this.uiSslSelfSignedHostnamesFormControl.patchValue("localhost, 127.0.0.1",{emitEvent:!0}),this.showRestartToast("uiSslType",t);break;default:this.uiSslKeyFormControl.patchValue("",{emitEvent:!1}),this.uiSslCertFormControl.patchValue("",{emitEvent:!1}),this.uiSslPfxFormControl.patchValue("",{emitEvent:!1}),this.uiSslPassphraseFormControl.patchValue("",{emitEvent:!1}),this.uiSslSelfSignedHostnamesFormControl.patchValue("",{emitEvent:!1}),this.$settings.setEnvItem("ssl.key",""),this.$settings.setEnvItem("ssl.cert",""),this.$settings.setEnvItem("ssl.pfx",""),this.$settings.setEnvItem("ssl.passphrase",""),this.$settings.setEnvItem("ssl.selfSigned",!1),this.$settings.setEnvItem("ssl.selfSignedHostnames",[]),yield this.saveUiSettingChange("ssl",""),this.showRestartToast("uiSslType",t)}})}uiHostSave(t){return x(this,null,function*(){try{this.uiHostIsSaving=!0,this.$cdr.markForCheck(),this.$settings.setItem("host",t),yield this.saveUiSettingChange("host",t),setTimeout(()=>{this.uiHostIsSaving=!1,this.$cdr.markForCheck(),this.showRestartToast("uiHost",t)},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiHostIsSaving=!1,this.$cdr.markForCheck()}})}uiWebrootSave(t){return x(this,null,function*(){try{this.uiWebrootIsSaving=!0,this.$cdr.markForCheck(),t=t?`/${t}`.replace(/\/+/g,"/").replace(/\/$/,""):"",t==="/"&&(t=""),this.$settings.setItem("webroot",t),yield this.saveUiSettingChange("webroot",t),this.uiWebrootFormControl.patchValue(t,{emitEvent:!1}),setTimeout(()=>{this.uiWebrootIsSaving=!1,this.$cdr.markForCheck(),this.showRestartToast("uiWebroot",t)},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiWebrootIsSaving=!1,this.$cdr.markForCheck()}})}uiProxyHostSave(t){return x(this,null,function*(){try{this.uiProxyHostIsSaving=!0,this.$cdr.markForCheck(),this.$settings.setItem("proxyHost",t),yield this.saveUiSettingChange("proxyHost",t),setTimeout(()=>{this.uiProxyHostIsSaving=!1,this.$cdr.markForCheck(),this.showRestartToast("uiProxyHost",t)},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiProxyHostIsSaving=!1,this.$cdr.markForCheck()}})}hbPackageSave(t){return x(this,null,function*(){try{this.hbPackageIsSaving=!0,this.$cdr.markForCheck(),this.$settings.setEnvItem("homebridgePackagePath",t),yield this.saveUiSettingChange("homebridgePackagePath",t),setTimeout(()=>{this.hbPackageIsSaving=!1,this.$cdr.markForCheck(),this.showRestartToast("hbPackage",t)},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbPackageIsSaving=!1,this.$cdr.markForCheck()}})}uiMetricsSave(t){return x(this,null,function*(){try{this.uiMetricsIsSaving=!0,this.$cdr.markForCheck(),this.$settings.setEnvItem("disableServerMetricsMonitoring",!t),yield this.saveUiSettingChange("disableServerMetricsMonitoring",!t),setTimeout(()=>{this.uiMetricsIsSaving=!1,this.$cdr.markForCheck(),this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).pipe(w(this.$destroyRef)).subscribe({next:()=>this.showRestartToast("uiMetrics",t),error:n=>{console.error(n),this.showRestartToast("uiMetrics",t)}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiMetricsIsSaving=!1,this.$cdr.markForCheck()}})}enableMdnsAdvertiseSave(t){return x(this,null,function*(){try{this.enableMdnsAdvertiseIsSaving=!0,this.$cdr.markForCheck(),this.$settings.setEnvItem("enableMdnsAdvertise",t),yield this.saveUiSettingChange("enableMdnsAdvertise",t),setTimeout(()=>{this.enableMdnsAdvertiseIsSaving=!1,this.$cdr.markForCheck(),this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).pipe(w(this.$destroyRef)).subscribe({next:()=>this.showRestartToast("enableMdnsAdvertise",t),error:n=>{console.error(n),this.showRestartToast("enableMdnsAdvertise",t)}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error"))}})}uiAccDebugSave(t){return x(this,null,function*(){try{this.uiAccDebugIsSaving=!0,this.$cdr.markForCheck(),this.$settings.setEnvItem("accessoryControl.debug",t),yield this.saveUiSettingChange("accessoryControl.debug",t),setTimeout(()=>{this.uiAccDebugIsSaving=!1,this.$cdr.markForCheck(),this.showRestartToast("uiAccDebug",t)},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiAccDebugIsSaving=!1,this.$cdr.markForCheck()}})}uiTempFileSave(t){return x(this,null,function*(){try{this.uiTempFileIsSaving=!0,this.$cdr.markForCheck(),this.$settings.setEnvItem("temp",t),yield this.saveUiSettingChange("temp",t),setTimeout(()=>{this.uiTempFileIsSaving=!1,this.$cdr.markForCheck(),this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).pipe(w(this.$destroyRef)).subscribe({next:()=>this.showRestartToast("uiTempFile",t),error:n=>{console.error(n),this.showRestartToast("uiTempFile",t)}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.uiTempFileIsSaving=!1,this.$cdr.markForCheck()}})}hbLinuxShutdownSave(t){return x(this,null,function*(){try{this.hbLinuxShutdownIsSaving=!0,this.$cdr.markForCheck(),this.$settings.setEnvItem("linux.shutdown",t),yield this.saveUiSettingChange("linux.shutdown",t),setTimeout(()=>{this.hbLinuxShutdownIsSaving=!1,this.$cdr.markForCheck(),this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).pipe(w(this.$destroyRef)).subscribe({next:()=>this.showRestartToast("hbLinuxShutdown",t),error:n=>{console.error(n),this.showRestartToast("hbLinuxShutdown",t)}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbLinuxShutdownIsSaving=!1,this.$cdr.markForCheck()}})}hbLinuxRestartSave(t){return x(this,null,function*(){try{this.hbLinuxRestartIsSaving=!0,this.$cdr.markForCheck(),this.$settings.setEnvItem("linux.restart",t),yield this.saveUiSettingChange("linux.restart",t),setTimeout(()=>{this.hbLinuxRestartIsSaving=!1,this.$cdr.markForCheck(),this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).pipe(w(this.$destroyRef)).subscribe({next:()=>this.showRestartToast("hbLinuxRestart",t),error:n=>{console.error(n),this.showRestartToast("hbLinuxRestart",t)}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.hbLinuxRestartIsSaving=!1,this.$cdr.markForCheck()}})}scheduledRestartCronSave(t){return x(this,null,function*(){if(!ve(t)){this.scheduledRestartCronIsInvalid=!0,this.$cdr.markForCheck();return}this.scheduledRestartCronIsInvalid=!1,this.$cdr.markForCheck();try{this.scheduledRestartCronIsSaving=!0,this.$cdr.markForCheck();let n=t?.trim()?t:null;this.$settings.setEnvItem("scheduledRestartCron",n),yield F(this.$api.put("/config-editor/ui",{key:"scheduledRestartCron",value:n})),setTimeout(()=>{this.scheduledRestartCronIsSaving=!1,this.$cdr.markForCheck(),this.$api.put("/platform-tools/hb-service/set-full-service-restart-flag",{}).pipe(w(this.$destroyRef)).subscribe({next:()=>this.showRestartToast("scheduledRestartCron",n),error:s=>{console.error(s),this.showRestartToast("scheduledRestartCron",n)}})},1e3)}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.scheduledRestartCronIsSaving=!1,this.$cdr.markForCheck()}})}initMatterSettings(){return x(this,null,function*(){try{let t=yield F(this.$api.get("/config-editor/matter")),n=t!==null;n?this.patchAndTrack(this.matterPortFormControl,"matterPort",t.port||""):this.patchAndTrack(this.matterPortFormControl,"matterPort",0),this.matterPortFormControl.valueChanges.pipe(E(1500)).pipe(w(this.$destroyRef)).subscribe(s=>this.matterPortSave(s)),this.patchAndTrack(this.matterEnabledFormControl,"matterEnabled",n),this.matterEnabledFormControl.valueChanges.pipe(w(this.$destroyRef)).subscribe(s=>this.matterEnabledSave(s))}catch(t){console.error(t),this.matterEnabledFormControl.valueChanges.pipe(w(this.$destroyRef)).subscribe(n=>this.matterEnabledSave(n))}})}matterPortSave(t){return x(this,null,function*(){if(!t&&t!==0){try{this.matterPortIsSaving=!0,this.matterPortIsInvalid=!1,this.$cdr.markForCheck(),yield F(this.$api.put("/config-editor/matter",{port:void 0})),setTimeout(()=>{this.matterPortIsSaving=!1,this.$cdr.markForCheck(),this.showRestartToast("matterPort",t)},1e3)}catch(s){console.error(s),this.$toastr.error(s.message,this.$translate.instant("toast.title_error")),this.matterPortIsSaving=!1}return}let n=[this.hbPortFormControl.value,this.uiPortFormControl.value].filter(Boolean);if(!it(t,{min:1024,max:65535,reservedPorts:Tt(),conflictPorts:n})){this.matterPortIsInvalid=!0,this.$cdr.markForCheck(),this.$cdr.detectChanges();return}try{this.matterPortIsSaving=!0,this.$cdr.markForCheck(),this.matterPortIsInvalid=!1,this.$cdr.markForCheck(),yield F(this.$api.put("/config-editor/matter",{port:t})),setTimeout(()=>{this.matterPortIsSaving=!1,this.$cdr.markForCheck(),this.showRestartToast("matterPort",t)},1e3)}catch(s){console.error(s),this.$toastr.error(s.message,this.$translate.instant("toast.title_error")),this.matterPortIsSaving=!1,this.$cdr.markForCheck(),this.matterPortIsInvalid=!0,this.$cdr.markForCheck()}})}matterEnabledSave(t){return x(this,null,function*(){try{if(this.matterEnabledIsSaving=!0,this.$cdr.markForCheck(),t){let n;if(this.matterConfigCache.port)n=this.matterConfigCache.port;else try{n=(yield F(this.$api.get("/server/port/new/matter"))).port}catch(s){console.error("Failed to get Matter port, using fallback",s),n=Math.floor(Math.random()*12+5530)}yield F(this.$api.put("/config-editor/matter",{port:n})),n!==void 0&&this.matterPortFormControl.patchValue(n,{emitEvent:!1}),this.matterConfigCache={port:n},setTimeout(()=>{this.matterEnabledIsSaving=!1,this.$cdr.markForCheck(),this.showRestartToast("matterEnabled",t)},1e3)}else{if(!(this.initialValues.matterEnabled===!0)){this.matterConfigCache={port:this.matterPortFormControl.value||void 0},yield F(this.$api.delete("/config-editor/matter")),this.matterEnabledIsSaving=!1,this.$cdr.markForCheck(),this.showRestartToast("matterEnabled",t);return}let s=this.$modal.open(Ht,{size:"lg",backdrop:"static"});s.componentInstance.title="Disable Matter",s.componentInstance.message="Disabling Matter will delete all Matter bridge files. This action cannot be undone.",s.componentInstance.message2="Are you sure you want to continue?",s.componentInstance.confirmButtonLabel="Continue",s.componentInstance.confirmButtonClass="btn-danger",s.componentInstance.faIconClass="fas fa-exclamation-triangle text-warning";try{yield s.result,this.matterConfigCache={port:this.matterPortFormControl.value||void 0},this.$settings.dismissRestartToast(),this.restartToastIsShown=!1,this.changedFields.clear(),this.$router.navigate(["/restart"],{queryParams:{alreadyRestarting:"true"}}),yield F(this.$api.delete("/config-editor/matter"))}catch(f){f==="Dismiss"?(this.matterEnabledFormControl.patchValue(!0,{emitEvent:!1}),this.matterEnabledIsSaving=!1,this.$cdr.markForCheck()):(console.error(f),this.$toastr.error(f.message,this.$translate.instant("toast.title_error")),this.matterEnabledFormControl.patchValue(!0,{emitEvent:!1}),this.matterEnabledIsSaving=!1,this.$cdr.markForCheck())}}}catch(n){console.error(n),this.$toastr.error(n.message,this.$translate.instant("toast.title_error")),this.matterEnabledFormControl.patchValue(t,{emitEvent:!1}),this.matterEnabledIsSaving=!1,this.$cdr.markForCheck()}})}buildBridgeNetworkAdapterList(t){if(!t.length){this.adaptersSelected=[];return}this.adaptersSelected=t.map(n=>{let s=this.adaptersAvailable.find(f=>f.iface===n);return s?{iface:s.iface,selected:!0,missing:!1,ip4:s.ip4,ip6:s.ip6}:{iface:n,selected:!0,missing:!0}})}showRestartToast(t,n){if(t!==void 0&&n!==void 0){let s=this.initialValues[t],f=!Ft(n,s);if(f)this.changedFields.add(t);else if(this.changedFields.delete(t),this.changedFields.size===0&&this.restartToastIsShown){this.$settings.dismissRestartToast(),this.restartToastIsShown=!1;return}if(!f&&!this.restartToastIsShown)return}else this.changedFields.add("_complex_operation");this.restartToastIsShown||(this.restartToastIsShown=!0,this.$settings.showRestartToast())}patchAndTrack(t,n,s){t.patchValue(s),this.initialValues[n]=s}handleSslKeyCertUpdate(t){t?.keyPath&&(this.$settings.setEnvItem("ssl.key",t.keyPath),this.uiSslKeyFormControl.patchValue(t.keyPath,{emitEvent:!1})),t?.certPath&&(this.$settings.setEnvItem("ssl.cert",t.certPath),this.uiSslCertFormControl.patchValue(t.certPath,{emitEvent:!1})),this.$settings.setEnvItem("ssl.selfSigned",!1),this.uiSslTypeFormControl.patchValue("keycert",{emitEvent:!0})}triggerKeyCertSelect(){this.sslKeyCertInput?.nativeElement&&(this.sslKeyCertInput.nativeElement.value="",this.sslKeyCertInput.nativeElement.click())}onSslKeyCertChange(t){if(!t||t.length===0)return;let n=new FormData;Array.from(t).forEach(s=>{n.append("files",s,s.name)}),this.$api.post("/server/ssl/keycert",n).pipe(w(this.$destroyRef)).subscribe({next:s=>{this.handleSslKeyCertUpdate(s),this.$toastr.success(this.$translate.instant("settings.security.ssl_upload_success_keycert"),this.$translate.instant("toast.title_success")),this.showRestartToast()},error:s=>{console.error(s),this.$toastr.error(s.error?.message||s.message,this.$translate.instant("toast.title_error"))}})}triggerPfxSelect(){this.sslPfxInput?.nativeElement&&(this.sslPfxInput.nativeElement.value="",this.sslPfxInput.nativeElement.click())}onSslPfxChange(t){if(!t||t.length===0)return;let n=new FormData;n.append("pfx",t[0],t[0].name),this.uiSslPassphraseFormControl.value&&n.append("passphrase",this.uiSslPassphraseFormControl.value),this.$api.post("/server/ssl/pfx",n).pipe(w(this.$destroyRef)).subscribe({next:s=>{s?.pfxPath&&(this.$settings.setEnvItem("ssl.pfx",s.pfxPath),this.uiSslPfxFormControl.patchValue(s.pfxPath,{emitEvent:!1})),this.$settings.setEnvItem("ssl.selfSigned",!1),this.uiSslTypeFormControl.patchValue("pfx",{emitEvent:!0}),this.$toastr.success(this.$translate.instant("settings.security.ssl_upload_success_pfx"),this.$translate.instant("toast.title_success")),this.showRestartToast()},error:s=>{console.error(s),this.$toastr.error(s.error?.message||s.message,this.$translate.instant("toast.title_error"))}})}validateSsl(){this.$api.post("/server/ssl/validate",{}).pipe(w(this.$destroyRef)).subscribe({next:t=>{if(t?.valid)this.$toastr.success(t?.details||this.$translate.instant("settings.security.ssl_validate_success"),this.$translate.instant("toast.title_success"));else{let n=t?.details||this.$translate.instant("settings.security.ssl_validate_error");this.$toastr.error(n,this.$translate.instant("toast.title_error"))}},error:t=>{console.error(t),this.$toastr.error(t.error?.message||t.message,this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=M({type:e,selectors:[["ng-component"]],viewQuery:function(n,s){if(n&1&&(rt(pn,5),rt(mn,5),rt(un,5)),n&2){let f;lt(f=dt())&&(s.searchInput=f.first),lt(f=dt())&&(s.sslKeyCertInput=f.first),lt(f=dt())&&(s.sslPfxInput=f.first)}},decls:12,vars:11,consts:[["searchInput",""],["sslKeyCertInput",""],["sslPfxInput",""],[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0"],[1,"col-6","text-end"],["type","button",1,"btn","btn-elegant","my-0","me-0",3,"click"],[1,"row"],[1,"col-md-12"],["novalidate",""],["type","text",1,"search-bar",3,"ngModelChange","placeholder","ngModel","ngModelOptions"],["href","javascript:void(0)",1,"search-bar-clear"],["href","javascript:void(0)",1,"search-bar-clear",3,"click"],[1,"fas","fa-square-xmark"],[1,"my-4"],[1,"pb-3"],["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,"list-group-item","d-block","d-md-flex","justify-content-between","align-items-center"],[1,"list-group-item","d-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,"pe-2"],[1,"btn","btn-primary","waves-effect","m-0","ms-3","py-1",2,"min-width","50px",3,"click"],[1,"fas","fa-arrow-right"],["routerLink","/users",1,"btn","btn-primary","waves-effect","m-0","ms-3","py-1",2,"min-width","50px"],["id","fieldsDisplay",1,"list-group","list-group-box","mt-2","mx-0"],[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"],["id","fieldsStartup",1,"list-group","list-group-box","mb-4","mx-0"],[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"],[1,"badge","badge-primary","ms-1"],[1,"my-3","my-md-0","ps-0","ps-md-5","w-auto","d-flex","flex-column","align-items-end"],[1,"d-flex","align-items-center","w-100"],["type","text","placeholder","mm hh dd MM ww","maxlength","30",1,"form-control","custom-input","resp-input","order-1","order-md-2","font-monospace",3,"formControl","ngClass"],["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","font-monospace",3,"formControl"],["type","text","placeholder","shutdown",1,"form-control","custom-input","resp-input","order-1","order-md-2","font-monospace",3,"formControl"],[1,"my-3","my-md-0","ps-0","ps-md-5","w-auto","d-flex","align-items-center","font-monospace"],["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","font-monospace",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","font-monospace",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","font-monospace",3,"formControl"],["routerLink","/platform-tools/docker/startup-script",1,"btn","btn-primary","waves-effect","m-0","ms-3","py-1",2,"min-width","50px"],["id","fieldsNetwork",1,"list-group","list-group-box","mt-2","mx-0"],[1,"small","grey-text","pe-2"],[1,"badge","badge-primary","me-1",3,"ngClass"],[1,"btn","btn-primary","waves-effect","m-0","ms-3","py-1",2,"min-width","50px",3,"click","disabled"],[1,"fas","fa-exclamation-triangle"],[1,"fw-normal"],["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","font-monospace",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","font-monospace",3,"formControl"],[1,"fas","fa-exclamation-triangle","red-text"],["type","text","pattern","^[^{}/:\\\\s]+(?::\\d+)?$","placeholder","example.com:8443",1,"form-control","custom-input","resp-input","order-1","order-md-2","font-monospace",3,"formControl"],["type","number","min","1025","max","65533","placeholder","8581",1,"form-control","custom-input","resp-input","order-1","order-md-2","font-monospace",3,"formControl","ngClass"],["type","text","placeholder","/",1,"form-control","custom-input","resp-input","order-1","order-md-2","font-monospace",3,"formControl"],[3,"innerHtml"],["type","checkbox","id","enableMdnsAdvertise",1,"rendux-input",3,"formControl"],["for","enableMdnsAdvertise",1,"rendux-label","ms-3",2,"min-width","50px"],[1,"small","grey-text","mb-2","mx-0"],["id","fieldsMatter",1,"list-group","list-group-box","mt-2","mx-0"],["type","checkbox","id","matterEnabled",1,"rendux-input",3,"formControl"],["for","matterEnabled",1,"rendux-label","ms-3",2,"min-width","50px"],["type","number","min","1024","max","65535","placeholder","5540",1,"form-control","custom-input","resp-input","order-1","order-md-2","font-monospace",3,"formControl","ngClass"],["id","fieldsTerminal",1,"list-group","list-group-box","mt-2","mx-0"],["type","number","min","-1","placeholder","1000000",1,"form-control","custom-input","resp-input","order-1","order-md-2","font-monospace",3,"formControl","ngClass"],["type","number","min","0","placeholder","200000",1,"form-control","custom-input","resp-input","order-1","order-md-2","font-monospace",3,"formControl","ngClass"],["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","font-monospace",3,"formControl","ngClass"],["id","fieldsSecurity",1,"list-group","list-group-box","mt-2","mx-0"],["type","checkbox","id","uiAuthForm",1,"rendux-input",3,"formControl"],["for","uiAuthForm",1,"rendux-label","ms-3",2,"min-width","50px"],["type","checkbox","id","session-inactivity-based",1,"rendux-input",3,"formControl"],["for","session-inactivity-based",1,"rendux-label","ms-3",2,"min-width","50px"],[1,"fas","fa-floppy-disk","primary-text","fa-xl","me-0","me-md-2","ms-2","ms-md-0"],[1,"d-flex","align-items-center","gap-2"],["type","number","min","0","max","365","placeholder","0",1,"form-control","custom-input",2,"width","44px","text-align","right",3,"formControl","ngClass"],[1,"ms-1","me-2","mb-0","text-nowrap","grey-text","small"],["type","number","min","0","max","23","placeholder","8",1,"form-control","custom-input",2,"width","44px","text-align","right",3,"formControl","ngClass"],["type","number","min","0","max","59","placeholder","0",1,"form-control","custom-input",2,"width","44px","text-align","right",3,"formControl","ngClass"],[1,"custom-select","resp-select","order-1","order-md-2",3,"formControl","hidden"],["value","off"],["value","selfsigned"],["value","keycert"],["value","pfx"],["type","button",1,"btn","btn-elegant","mx-2","py-1",2,"min-width","50px",3,"title"],["type","button",1,"btn","btn-elegant","mx-2","py-1",2,"min-width","50px",3,"click","title"],[1,"fas","fa-check"],["type","text","placeholder","localhost, 127.0.0.1, homebridge.local",1,"form-control","custom-input","resp-input","order-1","order-md-2","font-monospace",3,"formControl"],["type","button",1,"btn","btn-elegant","m-0","waves-effect","ms-2","py-1",2,"min-width","50px",3,"click","title"],[1,"fas","fa-magic"],["type","button",1,"btn","btn-elegant","m-0","py-1","mx-2",2,"min-width","50px",3,"click","title"],[1,"fas","fa-shield-alt"],[1,"my-3","my-md-0","ps-0","ps-md-5","w-auto","d-flex","align-items-center","gap-2"],["type","button",1,"btn","btn-elegant","m-0","py-1",2,"min-width","50px",3,"click","title"],[1,"fas","fa-upload"],["type","file","multiple","",1,"d-none",3,"change"],["type","text","placeholder","/Users/.../certs/server.key",1,"form-control","custom-input","resp-input","order-1","order-md-2","font-monospace",3,"formControl"],["type","button",1,"btn","btn-elegant","m-0",2,"min-width","50px",3,"click","title"],["type","text","placeholder","/Users/.../certs/server.crt",1,"form-control","custom-input","resp-input","order-1","order-md-2","font-monospace",3,"formControl"],["type","button",1,"btn","btn-elegant","waves-effect","m-0","py-1",2,"min-width","50px",3,"click","title"],["type","file",1,"d-none",3,"change"],["type","text","placeholder","/Users/.../certs/server.pfx",1,"form-control","custom-input","resp-input","order-1","order-md-2","font-monospace",3,"formControl"],["placeholder","mypassphrase",1,"form-control","custom-input","resp-input","order-1","order-md-2","font-monospace",3,"focus","blur","type","formControl"],["id","fieldsCache",1,"list-group","list-group-box","mb-4","mx-0"],["type","checkbox","id","accessoryDebug",1,"rendux-input",3,"formControl"],["for","accessoryDebug",1,"rendux-label","ms-3",2,"min-width","50px"],["id","fieldsReset",1,"list-group","list-group-box","mt-2","mx-0"]],template:function(n,s){n&1&&(a(0,"div",3)(1,"div",4)(2,"h3",5),d(3),r(4,"translate"),o()(),a(5,"div",6)(6,"button",7),r(7,"translate"),v("click",function(){return s.toggleSearch()}),p(8,"i"),o()()(),u(9,Cn,7,7,"div",8),u(10,fn,1,0,"app-spinner")(11,Yo,10,9)),n&2&&(i(3),g(l(4,7,"menu.settings.title")),i(3),b("aria-label",l(7,9,"form.search")),i(2),Ut(Wt("fas",s.showSearchBar?" primary-text":""," fa-search")),i(),_(s.showSearchBar?9:-1),i(),_(s.loading?10:11))},dependencies:[Y,le,_t,Yt,ie,ne,kt,te,mt,ee,ut,Jt,se,re,oe,ae,It,Zt,ht,wt,ue,pt,H],styles:[".search-bar[_ngcontent-%COMP%]{outline:none;box-sizing:inherit!important;background-color:inherit;height:50px!important;width:100%;border-width:.5px;padding:10px;margin-bottom:15px}@media (hover: hover){.search-bar[_ngcontent-%COMP%]:hover{border:1px solid #000000}}.search-bar[_ngcontent-%COMP%]:focus{border:1px solid #000000;box-shadow:0 1px #000}.search-bar-clear[_ngcontent-%COMP%]{position:absolute;right:30px;font-size:25px;color:#d0d0d0;line-height:50px;cursor:pointer}"],data:{animation:[Mt("fadeInOut",[bt(":enter",[st({opacity:0}),ft("750ms",st({opacity:1}))]),bt(":leave",[ft("750ms",st({opacity:0}))])]),Mt("smoothHide",[bt(":enter",[st({opacity:.01,height:"0px",overflow:"hidden",marginBottom:0,transform:"scale(0.97)"}),ft("450ms cubic-bezier(0.0, 0.0, 0.2, 1)",st({opacity:1,height:"*",marginBottom:"*",transform:"scale(1)"}))]),bt(":leave",[ft("150ms cubic-bezier(0.4, 0.0, 1, 1)",st({opacity:0,height:0,marginBottom:0,paddingTop:0,paddingBottom:0,overflow:"hidden",transform:"scale(0.98)"}))])])]},changeDetection:0})}return e})();export{El as SettingsComponent};
@@ -1 +1 @@
1
- import{e as n}from"./chunk-CYBDQV2B.js";import{b as s}from"./chunk-U5JF2ZOK.js";import{h as r,ia as o,na as e,x as i}from"./chunk-JJ7TVAIH.js";var l=(()=>{class t{$router=e(n);$settings=e(s);canActivate(){return r(this,null,function*(){return this.$settings.settingsLoaded||(yield i(this.$settings.onSettingsLoaded)),this.$settings.env.setupWizardComplete===!1||this.$router.navigate(["/"]),!0})}static \u0275fac=function(a){return new(a||t)};static \u0275prov=o({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();export{l as a};
1
+ import{b as s}from"./chunk-GCSYCY2Y.js";import{e as n}from"./chunk-MNT5ZGV3.js";import{h as r,ia as o,na as e,x as i}from"./chunk-RERUZJD4.js";var l=(()=>{class t{$router=e(n);$settings=e(s);canActivate(){return r(this,null,function*(){return this.$settings.settingsLoaded||(yield i(this.$settings.onSettingsLoaded)),this.$settings.env.setupWizardComplete===!1||this.$router.navigate(["/"]),!0})}static \u0275fac=function(a){return new(a||t)};static \u0275prov=o({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();export{l as a};