homebridge-config-ui-x 5.0.0-beta.3 → 5.0.0-beta.31

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 (282) hide show
  1. package/CHANGELOG.md +182 -8
  2. package/LICENSE +1 -1
  3. package/README.md +6 -8
  4. package/config.schema.json +38 -18
  5. package/dist/bin/fork.js +17 -7
  6. package/dist/bin/fork.js.map +1 -1
  7. package/dist/bin/hb-service.d.ts +2 -2
  8. package/dist/bin/hb-service.js +67 -56
  9. package/dist/bin/hb-service.js.map +1 -1
  10. package/dist/bin/platforms/win32.js +4 -2
  11. package/dist/bin/platforms/win32.js.map +1 -1
  12. package/dist/bin/standalone.js +18 -7
  13. package/dist/bin/standalone.js.map +1 -1
  14. package/dist/core/auth/auth.controller.d.ts +2 -0
  15. package/dist/core/auth/auth.controller.js.map +1 -1
  16. package/dist/core/auth/auth.module.js +1 -1
  17. package/dist/core/auth/auth.module.js.map +1 -1
  18. package/dist/core/auth/auth.service.js +10 -10
  19. package/dist/core/auth/auth.service.js.map +1 -1
  20. package/dist/core/config/config.service.d.ts +3 -0
  21. package/dist/core/config/config.service.js +1 -0
  22. package/dist/core/config/config.service.js.map +1 -1
  23. package/dist/core/config/config.startup.js +2 -2
  24. package/dist/core/config/config.startup.js.map +1 -1
  25. package/dist/core/homebridge-ipc/homebridge-ipc.service.js +3 -3
  26. package/dist/core/homebridge-ipc/homebridge-ipc.service.js.map +1 -1
  27. package/dist/index.js +25 -14
  28. package/dist/index.js.map +1 -1
  29. package/dist/main.js +1 -1
  30. package/dist/main.js.map +1 -1
  31. package/dist/modules/accessories/accessories.controller.js +4 -4
  32. package/dist/modules/accessories/accessories.controller.js.map +1 -1
  33. package/dist/modules/accessories/accessories.service.js +7 -6
  34. package/dist/modules/accessories/accessories.service.js.map +1 -1
  35. package/dist/modules/backup/backup.controller.js +7 -7
  36. package/dist/modules/backup/backup.controller.js.map +1 -1
  37. package/dist/modules/backup/backup.service.js +17 -17
  38. package/dist/modules/backup/backup.service.js.map +1 -1
  39. package/dist/modules/child-bridges/child-bridges.service.js +3 -3
  40. package/dist/modules/child-bridges/child-bridges.service.js.map +1 -1
  41. package/dist/modules/config-editor/config-editor.controller.d.ts +1 -1
  42. package/dist/modules/config-editor/config-editor.controller.js +7 -7
  43. package/dist/modules/config-editor/config-editor.controller.js.map +1 -1
  44. package/dist/modules/config-editor/config-editor.service.d.ts +1 -1
  45. package/dist/modules/config-editor/config-editor.service.js +6 -6
  46. package/dist/modules/config-editor/config-editor.service.js.map +1 -1
  47. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js +11 -9
  48. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js.map +1 -1
  49. package/dist/modules/log/log.service.js +3 -3
  50. package/dist/modules/log/log.service.js.map +1 -1
  51. package/dist/modules/platform-tools/docker/docker.controller.js +3 -3
  52. package/dist/modules/platform-tools/docker/docker.controller.js.map +1 -1
  53. package/dist/modules/platform-tools/docker/docker.service.js +1 -1
  54. package/dist/modules/platform-tools/docker/docker.service.js.map +1 -1
  55. package/dist/modules/platform-tools/hb-service/hb-service.controller.js +1 -1
  56. package/dist/modules/platform-tools/hb-service/hb-service.controller.js.map +1 -1
  57. package/dist/modules/platform-tools/hb-service/hb-service.service.js +6 -6
  58. package/dist/modules/platform-tools/hb-service/hb-service.service.js.map +1 -1
  59. package/dist/modules/platform-tools/linux/linux.controller.js +2 -2
  60. package/dist/modules/platform-tools/linux/linux.controller.js.map +1 -1
  61. package/dist/modules/platform-tools/linux/linux.service.js +2 -2
  62. package/dist/modules/platform-tools/linux/linux.service.js.map +1 -1
  63. package/dist/modules/platform-tools/terminal/terminal.service.js +2 -2
  64. package/dist/modules/platform-tools/terminal/terminal.service.js.map +1 -1
  65. package/dist/modules/plugins/plugins.controller.js +4 -4
  66. package/dist/modules/plugins/plugins.controller.js.map +1 -1
  67. package/dist/modules/plugins/plugins.service.d.ts +1 -0
  68. package/dist/modules/plugins/plugins.service.js +74 -35
  69. package/dist/modules/plugins/plugins.service.js.map +1 -1
  70. package/dist/modules/server/server.controller.d.ts +19 -2
  71. package/dist/modules/server/server.controller.js +84 -18
  72. package/dist/modules/server/server.controller.js.map +1 -1
  73. package/dist/modules/server/server.service.d.ts +23 -6
  74. package/dist/modules/server/server.service.js +171 -56
  75. package/dist/modules/server/server.service.js.map +1 -1
  76. package/dist/modules/status/status.controller.js +3 -3
  77. package/dist/modules/status/status.controller.js.map +1 -1
  78. package/dist/modules/status/status.service.js +4 -4
  79. package/dist/modules/status/status.service.js.map +1 -1
  80. package/dist/modules/users/users.controller.js +1 -1
  81. package/dist/modules/users/users.controller.js.map +1 -1
  82. package/dist/self-check.js +6 -6
  83. package/dist/self-check.js.map +1 -1
  84. package/package.json +31 -27
  85. package/public/3rdpartylicenses.txt +70 -44
  86. package/public/assets/hap-icons/airpurifier.svg +49 -16
  87. package/public/assets/hap-icons/airquality.svg +24 -13
  88. package/public/assets/hap-icons/contactsensor-closed.svg +35 -2
  89. package/public/assets/hap-icons/contactsensor-open.svg +80 -2
  90. package/public/assets/hap-icons/door-closed.svg +32 -2
  91. package/public/assets/hap-icons/door-open.svg +48 -2
  92. package/public/assets/hap-icons/fan-off.svg +24 -13
  93. package/public/assets/hap-icons/fan-on.svg +24 -13
  94. package/public/assets/hap-icons/garagedoor.svg +24 -13
  95. package/public/assets/hap-icons/humidity.svg +24 -13
  96. package/public/assets/hap-icons/irrigation-system.svg +47 -18
  97. package/public/assets/hap-icons/leaksensor.svg +52 -2
  98. package/public/assets/hap-icons/light.svg +47 -28
  99. package/public/assets/hap-icons/lightbulb.svg +24 -13
  100. package/public/assets/hap-icons/lock-locked.svg +24 -13
  101. package/public/assets/hap-icons/lock-unlocked.svg +24 -13
  102. package/public/assets/hap-icons/motionsensor.svg +100 -2
  103. package/public/assets/hap-icons/occupancysensor.svg +97 -2
  104. package/public/assets/hap-icons/outlet.svg +24 -13
  105. package/public/assets/hap-icons/securitysystem-active.svg +102 -2
  106. package/public/assets/hap-icons/securitysystem-off.svg +68 -2
  107. package/public/assets/hap-icons/smokesensor.svg +42 -9
  108. package/public/assets/hap-icons/speaker.svg +29 -13
  109. package/public/assets/hap-icons/statelessprogrammableswitch.svg +51 -2
  110. package/public/assets/hap-icons/switch.svg +24 -13
  111. package/public/assets/hap-icons/television.svg +15 -4
  112. package/public/assets/hap-icons/temperature.svg +24 -13
  113. package/public/assets/hap-icons/unknown.svg +24 -13
  114. package/public/assets/hap-icons/valve-generic.svg +27 -16
  115. package/public/assets/hap-icons/valve-irrigation.svg +37 -21
  116. package/public/assets/hap-icons/valve-showerhead.svg +52 -0
  117. package/public/assets/hap-icons/valve-waterfaucet.svg +21 -0
  118. package/public/assets/hap-icons/window-closed.svg +85 -2
  119. package/public/assets/hap-icons/window-open.svg +136 -2
  120. package/public/assets/hap-icons/windowcovering-closed.svg +45 -49
  121. package/public/assets/hap-icons/windowcovering-open.svg +40 -44
  122. package/public/assets/homebridge-color-round.svg +36 -1
  123. package/public/assets/homebridge-logo.svg +11 -1
  124. package/public/assets/mask-icon.svg +5 -1
  125. package/public/assets/plugin-ui-utils/ui.js +38 -19
  126. package/public/assets/plugin-ui-utils/ui.js.map +1 -1
  127. package/public/{chunk-6TCHCTXZ.js → chunk-23M23WV2.js} +1 -1
  128. package/public/chunk-27Y2SMZQ.js +1 -0
  129. package/public/{chunk-QE7DO6J3.js → chunk-474BOAR2.js} +2 -2
  130. package/public/{chunk-VOBHY2IH.js → chunk-5FGGDMPF.js} +2 -2
  131. package/public/{chunk-WNWWUCCZ.js → chunk-5KLZWFYX.js} +1 -1
  132. package/public/{chunk-ASX35H47.js → chunk-5YQD6SFF.js} +1 -1
  133. package/public/chunk-675OFXLW.js +1 -0
  134. package/public/chunk-6LLC6ASY.js +1 -0
  135. package/public/chunk-6SQJWZJ3.js +1 -0
  136. package/public/chunk-6VKXZGBQ.js +1 -0
  137. package/public/{chunk-BKUGARB4.js → chunk-7BCHGXO4.js} +1 -1
  138. package/public/chunk-7ZWVTY7M.js +1 -0
  139. package/public/chunk-A4UEYJ65.js +1 -0
  140. package/public/chunk-BMWLHPL2.js +1 -0
  141. package/public/chunk-BUJGF5XS.js +1 -0
  142. package/public/{chunk-CCUID66K.js → chunk-C2XBPNOQ.js} +1 -1
  143. package/public/chunk-CBZQXGMM.js +1 -0
  144. package/public/chunk-CKNHTRCL.js +7 -0
  145. package/public/{chunk-BFDVOBTQ.js → chunk-DI7XQKGK.js} +1 -1
  146. package/public/chunk-DMNEGPYI.js +1 -0
  147. package/public/chunk-DPQL3CFN.js +1 -0
  148. package/public/chunk-DZK7ET6B.js +1 -0
  149. package/public/chunk-E4JGXDDX.js +1 -0
  150. package/public/chunk-EEDUUZ6J.js +1 -0
  151. package/public/chunk-EIDRJ2MZ.js +1 -0
  152. package/public/chunk-EPUIY43R.js +1 -0
  153. package/public/chunk-FFAK3S6H.js +1 -0
  154. package/public/chunk-FYBGDBHS.js +5 -0
  155. package/public/chunk-G6DEXV26.js +1 -0
  156. package/public/chunk-GAOJPT7Q.js +32 -0
  157. package/public/{chunk-6PHMBMFU.js → chunk-GH44GF33.js} +1 -1
  158. package/public/chunk-GMDD67DK.js +1 -0
  159. package/public/chunk-GT23NQ6X.js +1 -0
  160. package/public/chunk-GZ6LPTUZ.js +1 -0
  161. package/public/{chunk-UG5DK2RQ.js → chunk-HA6CO5NZ.js} +2 -2
  162. package/public/chunk-HZMFFGGL.js +1 -0
  163. package/public/chunk-IBVQ5XHN.js +1 -0
  164. package/public/chunk-IFT3CY2Y.js +1 -0
  165. package/public/chunk-IN2KYSF4.js +1 -0
  166. package/public/chunk-JA6D57G2.js +1 -0
  167. package/public/{chunk-JZZQRLNW.js → chunk-JF5AT3NK.js} +1 -1
  168. package/public/chunk-JIBSE7F4.js +1 -0
  169. package/public/chunk-JN3CZQ6V.js +1 -0
  170. package/public/chunk-KKXQOKX2.js +1 -0
  171. package/public/{chunk-IW3EPSTZ.js → chunk-KTZO3WBP.js} +4 -4
  172. package/public/chunk-L2ORBCR2.js +1 -0
  173. package/public/chunk-LEBQDAR4.js +1 -0
  174. package/public/chunk-LEFLOPGL.js +1 -0
  175. package/public/chunk-LXXOSKLU.js +1 -0
  176. package/public/chunk-N4F42HDL.js +5 -0
  177. package/public/{chunk-NW6AFAD7.js → chunk-NFG4Y4PX.js} +1 -1
  178. package/public/chunk-NN4AKVX5.js +1 -0
  179. package/public/{chunk-7EUQWCP5.js → chunk-NSCP3SOQ.js} +1 -1
  180. package/public/{chunk-7L7RZCFC.js → chunk-OE2GYWRJ.js} +1 -1
  181. package/public/chunk-OOXD7YEJ.js +1 -0
  182. package/public/chunk-OURKTFZU.js +1 -0
  183. package/public/{chunk-VMXGERJT.js → chunk-PIKLHZDA.js} +8 -8
  184. package/public/chunk-QAHKBWOC.js +20 -0
  185. package/public/chunk-QRKW54YY.js +1 -0
  186. package/public/chunk-R5E5WAV5.js +1 -0
  187. package/public/chunk-REMR6QVW.js +1 -0
  188. package/public/chunk-RGOOY4ED.js +1 -0
  189. package/public/chunk-SRBTIWVO.js +1 -0
  190. package/public/{chunk-NZNNTHFQ.js → chunk-T3GI7KUT.js} +1 -1
  191. package/public/chunk-TRQOR36U.js +1 -0
  192. package/public/chunk-V6L2K2WY.js +1 -0
  193. package/public/chunk-VB5BRR2U.js +1 -0
  194. package/public/chunk-WAHQ6FKA.js +1 -0
  195. package/public/chunk-WJ3IINUA.js +1 -0
  196. package/public/chunk-WZWCA2UY.js +1 -0
  197. package/public/chunk-X5YRTZFZ.js +1 -0
  198. package/public/chunk-X6VYPTSJ.js +1 -0
  199. package/public/chunk-XADFYKJR.js +1 -0
  200. package/public/chunk-XASV7YHW.js +6 -0
  201. package/public/{chunk-WHJOLAED.js → chunk-XFK2EZ3K.js} +1 -1
  202. package/public/{chunk-EA5J2VEJ.js → chunk-XP7D2PRA.js} +1 -1
  203. package/public/{chunk-WHJSVGC7.js → chunk-XQNHUDX7.js} +1 -1
  204. package/public/chunk-YLAFYHGY.js +1 -0
  205. package/public/{chunk-QHPDGSZ6.js → chunk-YLEC7AUG.js} +1 -1
  206. package/public/chunk-YLOLF5VJ.js +1 -0
  207. package/public/chunk-Z2FKNCT7.js +1 -0
  208. package/public/chunk-Z4NHF7RI.js +1 -0
  209. package/public/index.html +2 -2
  210. package/public/main-422LQ5TU.js +1 -0
  211. package/public/media/fa-brands-400-Q3XCMWHQ.woff2 +0 -0
  212. package/public/media/{fa-brands-400-MVB2B5XM.ttf → fa-brands-400-R2XQZCET.ttf} +0 -0
  213. package/public/media/fa-regular-400-QSNYFYRT.woff2 +0 -0
  214. package/public/media/{fa-regular-400-EGQOOADX.ttf → fa-regular-400-XUOPSR7E.ttf} +0 -0
  215. package/public/media/fa-solid-900-5ZUYHGA7.woff2 +0 -0
  216. package/public/media/{fa-solid-900-ZUDIWQL5.ttf → fa-solid-900-PJNKLK6W.ttf} +0 -0
  217. package/public/styles-7Q7QNSR3.css +1 -0
  218. package/public/chunk-2OBHR63W.js +0 -1
  219. package/public/chunk-3C6WVST7.js +0 -1
  220. package/public/chunk-3IX3CLER.js +0 -1
  221. package/public/chunk-5ALXJOLQ.js +0 -1
  222. package/public/chunk-5LVGHH2N.js +0 -1
  223. package/public/chunk-7456RB3C.js +0 -1
  224. package/public/chunk-76S7LYCL.js +0 -1
  225. package/public/chunk-77A3OZ74.js +0 -1
  226. package/public/chunk-7EANS226.js +0 -1
  227. package/public/chunk-AVJ6EUEE.js +0 -1
  228. package/public/chunk-AX23H5TL.js +0 -1
  229. package/public/chunk-AZXQ73I5.js +0 -1
  230. package/public/chunk-BMXAHMY6.js +0 -1
  231. package/public/chunk-BPMSJ2VF.js +0 -1
  232. package/public/chunk-CW7Q7WEJ.js +0 -1
  233. package/public/chunk-DDXIRKVB.js +0 -1
  234. package/public/chunk-DNOJWLVY.js +0 -1
  235. package/public/chunk-DZY2Q3FG.js +0 -1
  236. package/public/chunk-FX4GQIE4.js +0 -32
  237. package/public/chunk-GVDR7ZRB.js +0 -1
  238. package/public/chunk-HSJSWZHD.js +0 -1
  239. package/public/chunk-I7ZKPCIW.js +0 -1
  240. package/public/chunk-IPZ4P5DE.js +0 -1
  241. package/public/chunk-IWYEH4T6.js +0 -1
  242. package/public/chunk-JL6S5IIU.js +0 -1
  243. package/public/chunk-KIJWUGXX.js +0 -1
  244. package/public/chunk-KO3WJGGG.js +0 -1
  245. package/public/chunk-KQJ7ONUG.js +0 -1
  246. package/public/chunk-KTDJZCFW.js +0 -1
  247. package/public/chunk-LDPCT3YF.js +0 -5
  248. package/public/chunk-MHYIZZN4.js +0 -1
  249. package/public/chunk-MOV2HTCQ.js +0 -1
  250. package/public/chunk-NF4NIS42.js +0 -1
  251. package/public/chunk-O75YP3SB.js +0 -1
  252. package/public/chunk-ODPTCLGS.js +0 -1
  253. package/public/chunk-ORPWYWCL.js +0 -5
  254. package/public/chunk-Q5URFHBE.js +0 -1
  255. package/public/chunk-QLWY5NWN.js +0 -1
  256. package/public/chunk-QRZNMAFL.js +0 -1
  257. package/public/chunk-RHB2T3FE.js +0 -1
  258. package/public/chunk-RMI35HIS.js +0 -1
  259. package/public/chunk-RO4QXVDE.js +0 -1
  260. package/public/chunk-RWZRB2OY.js +0 -1
  261. package/public/chunk-S62KH3FN.js +0 -6
  262. package/public/chunk-S6EMLS5Q.js +0 -1
  263. package/public/chunk-SVFFEV36.js +0 -1
  264. package/public/chunk-T2YVB4SI.js +0 -1
  265. package/public/chunk-TCSXGQNF.js +0 -1
  266. package/public/chunk-TXOB7R5K.js +0 -7
  267. package/public/chunk-U6ORTLYL.js +0 -1
  268. package/public/chunk-UJU3NPS7.js +0 -1
  269. package/public/chunk-UYZI56PX.js +0 -1
  270. package/public/chunk-UZU6PLTW.js +0 -1
  271. package/public/chunk-UZW3DWH4.js +0 -1
  272. package/public/chunk-WMB35VCS.js +0 -1
  273. package/public/chunk-WT2GX4NS.js +0 -1
  274. package/public/chunk-XH6GEPB6.js +0 -1
  275. package/public/chunk-ZLPCX4R4.js +0 -1
  276. package/public/chunk-ZT23DWNL.js +0 -1
  277. package/public/chunk-ZY7HKZ4P.js +0 -20
  278. package/public/main-ILTX7GFO.js +0 -1
  279. package/public/media/fa-brands-400-6U3GU5Y7.woff2 +0 -0
  280. package/public/media/fa-regular-400-R5EOMW4H.woff2 +0 -0
  281. package/public/media/fa-solid-900-W65KEJAS.woff2 +0 -0
  282. package/public/styles-GDLSHXGD.css +0 -1
@@ -0,0 +1 @@
1
+ import{a as h}from"./chunk-FYBGDBHS.js";import{b}from"./chunk-675OFXLW.js";import{Cc as y,Dc as T,Wb as r,Xb as o,Yb as u,dc as p,gb as l,ib as s,lc as f,mc as v,n as m,na as a,oc as g,pc as w,rb as d,ub as c}from"./chunk-CKNHTRCL.js";var C=["terminaloutput"],k=(()=>{class t{$terminal=a(h);termTarget=d("terminaloutput");resizeEvent=new m;constructor(){}onWindowResize(){this.resizeEvent.next(void 0)}ngOnInit(){window.document.querySelector("body").classList.add("bg-black"),this.$terminal.startTerminal(this.termTarget(),{},this.resizeEvent),this.$terminal.term.focus()}ngOnDestroy(){window.document.querySelector("body").classList.remove("bg-black"),this.$terminal.destroyTerminal()}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=c({type:t,selectors:[["ng-component"]],viewQuery:function(e,n){e&1&&f(n.termTarget,C,5),e&2&&v()},hostBindings:function(e,n){e&1&&p("resize",function(x){return n.onWindowResize(x)},!1,l)},decls:8,vars:3,consts:[["terminaloutput",""],[1,"row","mb-3"],[1,"col-12"],[1,"primary-text","m-0"],[1,"flex-column","d-flex","align-items-stretch","adjust-for-mobile"],["id","docker-terminal",1,"align-self-end","w-100","h-100","mb-1"]],template:function(e,n){e&1&&(r(0,"div",1)(1,"div",2)(2,"h3",3),g(3),y(4,"translate"),o()()(),r(5,"div",4),u(6,"div",5,0),o()),e&2&&(s(3),w(T(4,1,"menu.linux.label_terminal")))},dependencies:[b],encapsulation:2})}return t})();export{k as a};
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-WAHQ6FKA.js";import{a as f}from"./chunk-HZMFFGGL.js";import"./chunk-WZWCA2UY.js";import"./chunk-7BCHGXO4.js";import{q as u}from"./chunk-N4F42HDL.js";import{y as n,z as p}from"./chunk-YLEC7AUG.js";import"./chunk-GH44GF33.js";import{g as i}from"./chunk-T3GI7KUT.js";import"./chunk-DI7XQKGK.js";import"./chunk-RGOOY4ED.js";import"./chunk-IBVQ5XHN.js";import"./chunk-HA6CO5NZ.js";import{c as d}from"./chunk-675OFXLW.js";import{ia as t,kd as m,vb as r}from"./chunk-CKNHTRCL.js";var M=[{path:"",loadComponent:()=>import("./chunk-A4UEYJ65.js").then(o=>o.SetupWizardComponent)}],l=(()=>{class o{static \u0275fac=function(e){return new(e||o)};static \u0275mod=r({type:o});static \u0275inj=t({imports:[i.forChild(M),i]})}return o})();var R=(()=>{class o{static \u0275fac=function(e){return new(e||o)};static \u0275mod=r({type:o});static \u0275inj=t({providers:[a],imports:[m,n,p,d,u,l,f]})}return o})();export{R as SetupWizardModule};
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-BUJGF5XS.js";import"./chunk-IBVQ5XHN.js";import"./chunk-HA6CO5NZ.js";import"./chunk-675OFXLW.js";import"./chunk-CKNHTRCL.js";export{a as ShutdownLinuxComponent};
@@ -0,0 +1 @@
1
+ import{d as i}from"./chunk-T3GI7KUT.js";import{c as s}from"./chunk-DI7XQKGK.js";import{h as o}from"./chunk-IBVQ5XHN.js";import{a}from"./chunk-675OFXLW.js";import{ha as e,na as r}from"./chunk-CKNHTRCL.js";var v=(()=>{class t{$auth=r(s);$router=r(i);$translate=r(a);$toastr=r(o);constructor(){}canActivate(){return this.$auth.user&&this.$auth.user.admin?!0:(this.$toastr.error(this.$translate.instant("toast.no_auth"),this.$translate.instant("toast.title_error")),this.$router.navigate(["/"]),!1)}static \u0275fac=function(n){return new(n||t)};static \u0275prov=e({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();export{v as a};
@@ -0,0 +1 @@
1
+ import{m as y}from"./chunk-N4F42HDL.js";import{b as k}from"./chunk-675OFXLW.js";import{Bb as x,Cc as r,Dc as c,Lb as p,Mb as B,Qb as f,Rb as I,Wb as i,Xb as o,Yb as s,db as v,dc as m,ec as M,ib as t,na as C,oc as a,pc as g,qc as u,ub as _}from"./chunk-CKNHTRCL.js";function T(n,L){if(n&1&&s(0,"i",14),n&2){let d=M();f("fas fa-fw ",d.faIconClass," mb-3")}}var z=(()=>{class n{$activeModal=C(y);title;message;confirmButtonLabel;confirmButtonClass;faIconClass;constructor(){}static \u0275fac=function(l){return new(l||n)};static \u0275cmp=_({type:n,selectors:[["ng-component"]],inputs:{title:"title",message:"message",confirmButtonLabel:"confirmButtonLabel",confirmButtonClass:"confirmButtonClass",faIconClass:"faIconClass"},decls:21,vars:16,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click"],["aria-hidden","true"],[1,"modal-body","text-center"],[2,"font-size","75px",3,"class"],[1,"mb-0","text-center",3,"innerHTML"],[1,"modal-footer","justify-content-between"],[1,"text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-right"],["type","button","data-dismiss","modal",3,"click"],[2,"font-size","75px"]],template:function(l,e){l&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),a(3),o(),i(4,"button",3),r(5,"translate"),m("click",function(){return e.$activeModal.dismiss("Dismiss")}),i(6,"span",4),a(7,"\xD7"),o()()(),i(8,"div",5),x(9,T,1,3,"i",6),s(10,"p",7),o(),i(11,"div",8)(12,"div",9)(13,"button",10),r(14,"translate"),m("click",function(){return e.$activeModal.dismiss("Dismiss")}),a(15),r(16,"translate"),o()(),s(17,"div",11),i(18,"div",12)(19,"button",13),m("click",function(){return e.$activeModal.close()}),a(20),o()()()()),l&2&&(t(3),g(e.title),t(),p("aria-label",c(5,10,"form.button_close")),t(5),I(e.faIconClass?9:-1),t(),B("innerHTML",e.message,v),t(3),p("aria-label",c(14,12,"form.button_close")),t(2),u(" ",c(16,14,"form.button_close")," "),t(4),f("btn ",e.confirmButtonClass||"btn-primary",""),t(),u(" ",e.confirmButtonLabel," "))},dependencies:[k],encapsulation:2})}return n})();export{z as a};
@@ -0,0 +1 @@
1
+ import{m as X}from"./chunk-N4F42HDL.js";import{e as q,l as G,r as H,s as J,t as K,y as Q}from"./chunk-YLEC7AUG.js";import{d as te}from"./chunk-T3GI7KUT.js";import{h as ee,k as ie}from"./chunk-IBVQ5XHN.js";import{a as Y,b as Z}from"./chunk-675OFXLW.js";import{Ac as W,Bb as x,Cc as d,Dc as m,Lb as $,Mb as h,Rb as u,Tb as k,Ub as E,Vb as T,Wb as a,Xb as o,Yb as B,a as M,ac as S,b as V,bd as z,dc as b,ec as c,h as F,ib as s,na as w,oc as r,pc as g,qc as I,rc as L,tc as N,ub as U,uc as P,vc as j,w as A,xa as v,ya as C,zc as O}from"./chunk-CKNHTRCL.js";var se=(t,l)=>({"btn-danger":t,"btn-elegant":l}),ae=(t,l,e)=>({"fa-trash":t,"fa-undo":l,"fa-spinner fa-pulse":e});function oe(t,l){t&1&&(a(0,"div",13),B(1,"i",14),o(),a(2,"p",15),r(3),d(4,"translate"),o()),t&2&&(s(3),g(m(4,1,"reset.no_accessories")))}function re(t,l){if(t&1&&(a(0,"option",25),r(1),o()),t&2){let e=l.$implicit;h("value",e._id),s(),L("",e.name," (",e._username,")")}}function le(t,l){if(t&1){let e=S();a(0,"li",21),r(1),d(2,"translate"),o(),a(3,"li",19)(4,"label",22),r(5),d(6,"translate"),o(),a(7,"div",23)(8,"select",24),j("ngModelChange",function(i){v(e);let _=c(2);return P(_.selectedBridge,i)||(_.selectedBridge=i),C(i)}),b("change",function(i){v(e);let _=c(2);return C(_.onBridgeChange(i.target.value))}),E(9,re,2,3,"option",25,k),o()()()}if(t&2){let e=c(2);s(),g(m(2,3,"form.label.changes_kept")),s(4),g(m(6,5,"reset.accessory_ind.bridge")),s(3),N("ngModel",e.selectedBridge),s(),T(e.pairings)}}function ce(t,l){if(t&1&&(a(0,"li",19)(1,"label",26),r(2),d(3,"translate"),o(),a(4,"div",27),r(5),o()()),t&2){let e=c(2);s(2),g(m(3,2,"reset.accessory_ind.bridge")),s(3),I(" ",e.getCurrentlySelectedBridge()," ")}}function de(t,l){if(t&1){let e=S();a(0,"li",20)(1,"span"),r(2),B(3,"br"),a(4,"small")(5,"span",28),r(6),o()()(),a(7,"button",29),d(8,"translate"),b("click",function(){let i=v(e).$implicit,_=c(2);return C(_.toggleList(i.UUID,i.$cacheFile))}),B(9,"i",30),o()()}if(t&2){let e=l.$implicit,n=c(2);s(2),I(" ",e.displayName,""),s(4),g(e.UUID),s(),h("disabled",n.clicked)("ngClass",O(8,se,!n.isInList(e.UUID,e.$cacheFile),n.isInList(e.UUID,e.$cacheFile))),$("aria-label",m(8,6,"form.button_delete")),s(2),h("ngClass",W(11,ae,!n.isInList(e.UUID,e.$cacheFile),n.isInList(e.UUID,e.$cacheFile)&&!n.clicked,n.isInList(e.UUID,e.$cacheFile)&&n.clicked))}}function me(t,l){if(t&1&&(a(0,"div",13),B(1,"i",16),o(),a(2,"ul",17)(3,"li"),r(4),d(5,"translate"),o(),a(6,"li"),r(7),d(8,"translate"),o(),a(9,"li"),r(10),d(11,"translate"),o()(),a(12,"ul",18),x(13,le,11,7)(14,ce,6,4,"li",19),E(15,de,10,15,"li",20,k),o()),t&2){let e=c();s(4),g(m(5,5,"reset.accessory_ind.list_1")),s(3),g(m(8,7,"reset.accessory_ind.list_2")),s(3),g(m(11,9,"reset.accessory_ind.list_3")),s(3),u(e.pairings.length>1?13:-1),s(),u(e.pairings.length===1?14:-1),s(),T(e.selectedBridgeAccessories)}}function pe(t,l){if(t&1){let e=S();a(0,"button",31),b("click",function(){v(e);let i=c();return C(i.$activeModal.dismiss("Dismiss"))}),r(1),d(2,"translate"),o()}if(t&2){let e=c();h("disabled",e.clicked),s(),I(" ",m(2,2,"form.button_close")," ")}}function _e(t,l){if(t&1){let e=S();a(0,"button",32),b("click",function(){v(e);let i=c();return C(i.$activeModal.dismiss("Dismiss"))}),r(1),d(2,"translate"),o()}t&2&&(s(),I(" ",m(2,1,"form.button_close")," "))}function ue(t,l){if(t&1&&r(0),t&2){let e=c(3);I(" (",e.toDelete.length,") ")}}function ge(t,l){if(t&1&&(r(0),d(1,"translate"),x(2,ue,1,1)),t&2){let e=c(2);I(" ",m(1,2,"form.button_remove")," "),s(2),u(e.toDelete.length>0?2:-1)}}function xe(t,l){t&1&&B(0,"i",34)}function fe(t,l){if(t&1){let e=S();a(0,"button",33),b("click",function(){v(e);let i=c();return C(i.removeAccessories())}),x(1,ge,3,4)(2,xe,1,0,"i",34),o()}if(t&2){let e=c();h("disabled",!e.toDelete.length||e.clicked),s(),u(e.clicked?-1:1),s(),u(e.clicked?2:-1)}}var Te=(()=>{class t{$activeModal=w(X);$api=w(ie);$router=w(te);$toastr=w(ee);$translate=w(Y);pairings=[];selectedBridge="";clicked=!1;selectedBridgeAccessories=[];accessoriesExist=!1;toDelete=[];constructor(){}ngOnInit(){this.loadCachedAccessories()}loadCachedAccessories(){return F(this,null,function*(){var e;try{let[n,i]=yield Promise.all([A(this.$api.get("/server/cached-accessories")),A(this.$api.get("/server/pairings"))]),_=new Map(i.map(p=>[p._id,V(M({},p),{accessories:[]})]));n.sort((p,f)=>p.displayName.localeCompare(f.displayName)).forEach(p=>{var D,R;let f=i.find(ne=>ne._main),y=((R=(D=p.$cacheFile)==null?void 0:D.split("."))==null?void 0:R[1])||f._id;(!this.selectedBridge||this.selectedBridge===y)&&(_.has(y)||_.set(y,{_id:y,_username:y.match(/.{1,2}/g).join(":"),name:this.$translate.instant("reset.accessory_ind.unknown"),accessories:[]}),_.get(y).accessories.push(p))}),this.pairings=Array.from(_.values()).filter(p=>p.accessories.length>0).sort((p,f)=>p._main&&!f._main?-1:!p._main&&f._main?1:p.name.localeCompare(f.name)),this.selectedBridge=this.selectedBridge||((e=this.pairings[0])==null?void 0:e._id),this.selectedBridge&&(this.accessoriesExist=!0,this.selectedBridgeAccessories=this.pairings[0].accessories)}catch(n){console.error(n),this.$toastr.error(this.$translate.instant("reset.error_message"),this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}onBridgeChange(e){var n;this.selectedBridge=e,this.selectedBridgeAccessories=(n=this.pairings.find(i=>i._id===this.selectedBridge))==null?void 0:n.accessories}getCurrentlySelectedBridge(){let e=this.pairings.find(n=>n._id===this.selectedBridge);return`${e.name} - ${e._username}`}toggleList(e,n){this.toDelete.some(i=>i.uuid===e&&i.cacheFile===n)?this.toDelete=this.toDelete.filter(i=>i.uuid!==e&&i.cacheFile!==n):this.toDelete.push({cacheFile:n,uuid:e})}isInList(e,n){return this.toDelete.some(i=>i.uuid===e&&i.cacheFile===n)}removeAccessories(){return this.clicked=!0,this.$api.delete("/server/cached-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:e=>{this.clicked=!1,console.error(e),this.$toastr.error(this.$translate.instant("reset.accessory_ind.fail"),this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=U({type:t,selectors:[["ng-component"]],inputs:{selectedBridge:"selectedBridge"},decls:19,vars:12,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click","disabled"],["aria-hidden","true"],[1,"modal-body"],[1,"modal-footer","justify-content-between"],[1,"text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"disabled"],[1,"text-center"],["type","button","data-dismiss","modal",1,"btn","btn-elegant"],[1,"text-right"],["type","button","data-dismiss","modal",1,"btn","btn-danger",3,"disabled"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-circle-check","primary-text",2,"font-size","75px"],[1,"mb-0","text-center"],[1,"fas","fa-fw","fa-network-wired","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"list-group-item","text-center","grey-text","small"],["for","bridgeSelect",1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-left","text-md-right","w-100","w-md-50"],["id","bridgeSelect",1,"custom-select",3,"ngModelChange","change","ngModel"],[3,"value"],[1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-left","text-md-right","w-100","w-md-50","grey-text","text-monospace"],[1,"text-monospace","grey-text"],[1,"btn","btn-danger","ml-3",3,"click","disabled","ngClass"],[1,"fas","fa-fw",3,"ngClass"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[1,"fas","fa-fw","fa-spinner","fa-pulse"]],template:function(n,i){n&1&&(a(0,"div",0)(1,"div",1)(2,"h5",2),r(3),d(4,"translate"),o(),a(5,"button",3),d(6,"translate"),b("click",function(){return i.$activeModal.dismiss("Dismiss")}),a(7,"span",4),r(8,"\xD7"),o()()(),a(9,"div",5),x(10,oe,5,3)(11,me,17,11),o(),a(12,"div",6)(13,"div",7),x(14,pe,3,4,"button",8),o(),a(15,"div",9),x(16,_e,3,3,"button",10),o(),a(17,"div",11),x(18,fe,3,3,"button",12),o()()()),n&2&&(s(3),g(m(4,8,"reset.accessory_ind.title")),s(2),h("disabled",i.clicked),$("aria-label",m(6,10,"form.button_close")),s(5),u(i.accessoriesExist?-1:10),s(),u(i.accessoriesExist?11:-1),s(3),u(i.accessoriesExist?14:-1),s(2),u(i.accessoriesExist?-1:16),s(2),u(i.accessoriesExist?18:-1))},dependencies:[z,Z,Q,J,K,H,q,G],encapsulation:2})}return t})();export{Te as a};
@@ -0,0 +1 @@
1
+ import{a as ne}from"./chunk-474BOAR2.js";import{g as O,m as G,n as te}from"./chunk-N4F42HDL.js";import{b as Z,c as M,d as x,e as F,f as z,g as N,j as w,m as q,o as R,p as L,q as j,w as ee,y as V,z as A}from"./chunk-YLEC7AUG.js";import{b as ie}from"./chunk-T3GI7KUT.js";import{c as Q}from"./chunk-DI7XQKGK.js";import{a as ce}from"./chunk-RGOOY4ED.js";import{h as U,k}from"./chunk-IBVQ5XHN.js";import{a as E,b as $}from"./chunk-675OFXLW.js";import{Bb as h,Cc as s,Dc as l,Ec as Y,Lb as u,Mb as f,Rb as g,Tb as K,Ub as W,Vb as X,Wb as i,Xb as n,Yb as p,ac as D,bd as P,dc as b,ec as v,g as de,ib as e,na as c,oc as m,pc as d,qc as C,ub as y,xa as B,ya as T,yc as I}from"./chunk-CKNHTRCL.js";function ue(r,S){r&1&&(i(0,"ngb-alert",14)(1,"p",21),m(2),s(3,"translate"),n()()),r&2&&(f("dismissible",!1),e(2),d(l(3,2,"login.invalid_password")))}var re=(()=>{class r{$activeModal=c(G);$api=c(k);$toastr=c(U);$translate=c(E);formGroup=new N({password:new w("",[x.required])});invalidCredentials=!1;constructor(){}disable2fa(){this.invalidCredentials=!1,this.$api.post("/users/otp/deactivate",this.formGroup.value).subscribe({next:()=>{this.$activeModal.close(),this.$toastr.success(this.$translate.instant("users.setup_2fa_disable_success"),this.$translate.instant("toast.title_success"))},error:()=>{this.formGroup.setValue({password:""}),this.invalidCredentials=!0}})}static \u0275fac=function(o){return new(o||r)};static \u0275cmp=y({type:r,selectors:[["ng-component"]],decls:36,vars:27,consts:[[1,"modal-content",2,"min-height","300px"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click"],["aria-hidden","true"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-key","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box","mb-0"],[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,"text-left","text-md-right","w-100","w-md-50"],["type","password","autocomplete","current-password",1,"form-control","custom-input",3,"formControl","placeholder"],["type","error",1,"mt-3","mb-0",3,"dismissible"],[1,"modal-footer","justify-content-between"],[1,"text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-right"],["type","button","data-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[1,"mb-0"]],template:function(o,a){o&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),m(3),s(4,"translate"),n(),i(5,"button",3),s(6,"translate"),b("click",function(){return a.$activeModal.dismiss("Dismiss")}),i(7,"span",4),m(8,"\xD7"),n()()(),i(9,"div",5)(10,"div",6),p(11,"i",7),n(),i(12,"ul",8)(13,"li"),m(14),s(15,"translate"),n()(),i(16,"ul",9)(17,"li",10)(18,"label",11),m(19),s(20,"translate"),n(),i(21,"div",12),p(22,"input",13),s(23,"translate"),n()()(),h(24,ue,4,4,"ngb-alert",14),n(),i(25,"div",15)(26,"div",16)(27,"button",17),s(28,"translate"),b("click",function(){return a.$activeModal.dismiss("Dismiss")}),m(29),s(30,"translate"),n()(),p(31,"div",18),i(32,"div",19)(33,"button",20),b("click",function(){return a.disable2fa()}),m(34),s(35,"translate"),n()()()()),o&2&&(e(3),d(l(4,11,"users.setup_2fa_disable")),e(2),u("aria-label",l(6,13,"form.button_close")),e(9),d(l(15,15,"users.setup_2fa_disable_current_password")),e(5),d(l(20,17,"login.label_password")),e(3),f("formControl",a.formGroup.controls.password)("placeholder",l(23,19,"users.label_password")),e(2),g(a.invalidCredentials&&!a.formGroup.controls.password.value?24:-1),e(3),u("aria-label",l(28,21,"form.button_close")),e(2),C(" ",l(30,23,"form.button_close")," "),e(4),f("disabled",a.formGroup.invalid),e(),C(" ",l(35,25,"form.button_disable")," "))},dependencies:[V,M,F,A,R,$,O],encapsulation:2})}return r})();var ae=de(ce(),1);var fe=r=>({timeDiffError:r});function be(r,S){r&1&&(i(0,"li"),m(1),s(2,"translate"),n()),r&2&&(e(),d(l(2,1,"users.setup_2fa_scan_qr_code")))}function _e(r,S){if(r&1&&(i(0,"ngb-alert",9)(1,"p",17),m(2),s(3,"translate"),n(),i(4,"p",18),m(5),s(6,"translate"),n()()),r&2){let t=v();f("dismissible",!1),e(2),d(l(3,3,"users.setup_2fa_cannot_setup_2fa")),e(3),d(Y(6,5,"users.setup_2fa_server_time_out",I(8,fe,t.timeDiffError)))}}function ve(r,S){if(r&1&&(i(0,"ul",10)(1,"li",19)(2,"div",20),p(3,"app-qrcode",21),n()(),i(4,"li",22)(5,"label",23),m(6),s(7,"translate"),n(),i(8,"div",24),p(9,"input",25),n()()()),r&2){let t=v();e(3),f("data",t.otpString),e(3),d(l(7,3,"users.setup_2fa_enter_code")),e(3),f("formControl",t.formGroup.controls.code)}}function xe(r,S){if(r&1){let t=D();i(0,"button",26),s(1,"translate"),b("click",function(){B(t);let a=v();return T(a.$activeModal.dismiss("Dismiss"))}),m(2),s(3,"translate"),n()}r&2&&(u("aria-label",l(1,2,"form.button_close")),e(2),C(" ",l(3,4,"form.button_close")," "))}function we(r,S){if(r&1){let t=D();i(0,"button",26),s(1,"translate"),b("click",function(){B(t);let a=v();return T(a.$activeModal.dismiss("Dismiss"))}),m(2),s(3,"translate"),n()}r&2&&(u("aria-label",l(1,2,"form.button_close")),e(2),C(" ",l(3,4,"form.button_close")," "))}function Ce(r,S){if(r&1){let t=D();i(0,"button",27),b("click",function(){B(t);let a=v();return T(a.enable2fa())}),m(1),s(2,"translate"),n()}if(r&2){let t=v();f("disabled",t.formGroup.invalid),e(),C(" ",l(2,2,"form.button_enable")," ")}}var oe=(()=>{class r{$activeModal=c(G);$api=c(k);$toastr=c(U);$translate=c(E);user;timeDiffError=null;otpString;formGroup=new N({code:new w("",[x.required,x.minLength(6),x.maxLength(6)])});constructor(){}ngOnInit(){this.$api.post("/users/otp/setup",{}).subscribe({next:t=>{this.checkTimeDiff(t.timestamp),this.timeDiffError||(this.otpString=t.otpauth)},error:t=>{this.$activeModal.dismiss(),console.error(t),this.$toastr.error(this.$translate.instant("users.setup_2fa_enable_error"),this.$translate.instant("toast.title_error"))}})}checkTimeDiff(t){let o=(0,ae.default)(t).diff(new Date,"millisecond");o<-5e3||o>5e3?this.timeDiffError=o:this.timeDiffError=null}enable2fa(){this.$api.post("/users/otp/activate",this.formGroup.value).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("users.setup_2fa_enabled_success"),this.$translate.instant("toast.title_success")),this.$activeModal.close()},error:t=>{console.error(t),this.$toastr.error(this.$translate.instant("users.setup_2fa_activate_error"),this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(o){return new(o||r)};static \u0275cmp=y({type:r,selectors:[["ng-component"]],inputs:{user:"user"},decls:26,vars:15,consts:[[1,"modal-content","setup2fa"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click"],["aria-hidden","true"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-key","primary-text",2,"font-size","75px"],[1,"mb-3"],["type","error",1,"mb-0",3,"dismissible"],[1,"list-group","list-group-box","mb-0"],[1,"modal-footer","justify-content-between"],[1,"text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant"],[1,"text-center"],[1,"text-right"],["type","button","data-dismiss","modal",1,"btn","btn-primary",3,"disabled"],[1,"font-weight-bold","mb-1"],[1,"mb-0"],[1,"list-group-item","text-center"],[1,"text-center","w-100","d-flex","justify-content-center"],[1,"mx-auto",2,"width","175px","height","175px",3,"data"],[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,"text-left","text-md-right","w-100","w-md-50"],["formControlName","username","type","text","placeholder","eg. 123456","autocomplete","one-time-code","autocapitalize","none","inputmode","numeric","pattern","[0-9]*",1,"form-control","custom-input",3,"formControl"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"]],template:function(o,a){o&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),m(3),s(4,"translate"),n(),i(5,"button",3),s(6,"translate"),b("click",function(){return a.$activeModal.dismiss("Dismiss")}),i(7,"span",4),m(8,"\xD7"),n()()(),i(9,"div",5)(10,"div",6),p(11,"i",7),n(),i(12,"ul",8)(13,"li"),m(14),s(15,"translate"),n(),h(16,be,3,3,"li"),n(),h(17,_e,7,10,"ngb-alert",9)(18,ve,10,5,"ul",10),n(),i(19,"div",11)(20,"div",12),h(21,xe,4,6,"button",13),n(),i(22,"div",14),h(23,we,4,6,"button",13),n(),i(24,"div",15),h(25,Ce,3,4,"button",16),n()()()),o&2&&(e(3),d(l(4,9,"users.setup_2fa")),e(2),u("aria-label",l(6,11,"form.button_close")),e(9),d(l(15,13,"users.setup_2fa_warning")),e(2),g(a.timeDiffError?-1:16),e(),g(a.timeDiffError?17:-1),e(),g(a.timeDiffError?-1:18),e(3),g(a.timeDiffError?-1:21),e(2),g(a.timeDiffError?23:-1),e(2),g(a.timeDiffError?-1:25))},dependencies:[O,ne,V,M,F,ee,A,R,j,$],encapsulation:2})}return r})();var se=r=>({"is-invalid":r}),le=(()=>{class r{$activeModal=c(G);$api=c(k);$toastr=c(U);$translate=c(E);form=new N({username:new w("",[x.required]),name:new w("",[x.required]),password:new w("",[x.compose([x.required,x.minLength(4)])]),passwordConfirm:new w("",[x.required]),admin:new w(!0)},this.matchPassword);page={title:"users.title_add_user",save:"users.button_add_new_user",password:"users.label_password"};constructor(){}matchPassword(t){let o=t.get("password").value,a=t.get("passwordConfirm").value;if(o!==a)t.get("passwordConfirm").setErrors({matchPassword:!0});else return null}onSubmit({value:t}){this.$api.post("/users",t).subscribe({next:()=>{this.$activeModal.close(),this.$toastr.success(this.$translate.instant("users.toast_added_new_user"),this.$translate.instant("toast.title_success"))},error:o=>{this.$toastr.error(o.error.message||this.$translate.instant("users.toast_failed_to_add_user"),this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(o){return new(o||r)};static \u0275cmp=y({type:r,selectors:[["ng-component"]],decls:60,vars:50,consts:[[1,"modal-content"],["novalidate","",3,"ngSubmit","formGroup"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click"],["aria-hidden","true"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-user-plus","primary-text",2,"font-size","75px"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],["for","form-username",1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-left","text-md-right","w-100","w-md-50"],["formControlName","username","type","text","id","form-username","autocomplete","username","autocapitalize","none",1,"form-control","custom-input"],["for","form-name",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","name","type","text","id","form-name","autocomplete","name",1,"form-control","custom-input"],["for","form-pass",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","password","type","password","autocomplete","new-password","id","form-pass",1,"form-control","custom-input",3,"ngClass"],["for","form-pass-confirm",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","passwordConfirm","type","password","autocomplete","new-password","id","form-pass-confirm",1,"form-control","custom-input",3,"ngClass"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"text-left"],[1,"text-right","grey-text"],["type","checkbox","id","isAdmin",1,"rendux-input"],["for","isAdmin",1,"rendux-label","ml-3"],[1,"modal-footer","justify-content-between"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-right"],["type","submit",1,"btn","btn-primary",3,"disabled"]],template:function(o,a){o&1&&(i(0,"div",0)(1,"form",1),b("ngSubmit",function(){return a.onSubmit(a.form)}),i(2,"div",2)(3,"h5",3),m(4),s(5,"translate"),n(),i(6,"button",4),s(7,"translate"),b("click",function(){return a.$activeModal.dismiss("Dismiss")}),i(8,"span",5),m(9,"\xD7"),n()()(),i(10,"div",6)(11,"div",7),p(12,"i",8),n(),i(13,"ul",9)(14,"li",10)(15,"label",11),m(16),s(17,"translate"),n(),i(18,"div",12),p(19,"input",13),s(20,"translate"),n()(),i(21,"li",10)(22,"label",14),m(23),s(24,"translate"),n(),i(25,"div",12),p(26,"input",15),s(27,"translate"),n()(),i(28,"li",10)(29,"label",16),m(30),s(31,"translate"),n(),i(32,"div",12),p(33,"input",17),s(34,"translate"),n()(),i(35,"li",10)(36,"label",18),m(37),s(38,"translate"),n(),i(39,"div",12),p(40,"input",19),s(41,"translate"),n()(),i(42,"li",20)(43,"span",21),m(44),s(45,"translate"),n(),i(46,"div",22),p(47,"input",23),s(48,"translate"),p(49,"label",24),n()()()(),i(50,"div",25)(51,"div",21)(52,"button",26),b("click",function(){return a.$activeModal.dismiss("Dismiss")}),m(53),s(54,"translate"),n()(),p(55,"div",27),i(56,"div",28)(57,"button",29),m(58),s(59,"translate"),n()()()()()),o&2&&(e(),f("formGroup",a.form),e(3),d(l(5,18,"users.title_add_user")),e(2),u("aria-label",l(7,20,"form.button_close")),e(10),d(l(17,22,"users.label_username")),e(3),u("aria-label",l(20,24,"users.label_username")),e(4),d(l(24,26,"users.label_full_name")),e(3),u("aria-label",l(27,28,"users.label_full_name")),e(4),d(l(31,30,a.page.password)),e(3),f("ngClass",I(46,se,a.form.controls.password.dirty&&a.form.controls.password.errors)),u("aria-label",l(34,32,a.page.password)),e(4),d(l(38,34,"users.label_confirm_password")),e(3),f("ngClass",I(48,se,a.form.controls.passwordConfirm.dirty&&a.form.controls.passwordConfirm.errors)),u("aria-label",l(41,36,"users.label_confirm_password")),e(4),d(l(45,38,"users.label_admin_user")),e(3),u("aria-label",l(48,40,"users.label_admin_user")),e(6),C(" ",l(54,42,"form.button_close")," "),e(4),f("disabled",!a.form.valid),e(),C(" ",l(59,44,"form.button_save")," "))},dependencies:[V,q,M,F,z,A,L,j,P,$],encapsulation:2})}return r})();var me=r=>({"is-invalid":r});function ge(r,S){if(r&1&&(i(0,"li",10)(1,"label",28),m(2),s(3,"translate"),n(),i(4,"div",12),p(5,"input",29),s(6,"translate"),n()()),r&2){let t=v();e(2),d(l(3,3,"users.label_confirm_password")),e(3),f("ngClass",I(7,me,t.form.controls.passwordConfirm.dirty&&t.form.controls.passwordConfirm.errors)),u("aria-label",l(6,5,"users.label_confirm_password"))}}var pe=(()=>{class r{$activeModal=c(G);$api=c(k);$auth=c(Q);$toastr=c(U);$translate=c(E);user;form=new N({username:new w("",[x.required]),name:new w("",[x.required]),password:new w(""),passwordConfirm:new w(""),admin:new w(!0)},this.matchPassword);page={title:"users.title_edit_user",save:"form.button_save",password:"users.label_new_password"};isCurrentUser=!1;constructor(){}ngOnInit(){this.isCurrentUser=this.$auth.user.username===this.user.username,this.form.patchValue(this.user)}matchPassword(t){let o=t.get("password").value,a=t.get("passwordConfirm").value;if(o!==a)t.get("passwordConfirm").setErrors({matchPassword:!0});else return null}onSubmit({value:t}){this.$api.patch(`/users/${this.user.id}`,t).subscribe({next:()=>{this.$activeModal.close(),this.$toastr.success(this.$translate.instant("users.toast_updated_user"),this.$translate.instant("toast.title_success")),this.isCurrentUser&&t.username!==this.$auth.user.username&&this.$auth.logout()},error:o=>{console.error(o),this.$toastr.error(o.error.message||this.$translate.instant("users.toast_failed_to_add_user"),this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(o){return new(o||r)};static \u0275cmp=y({type:r,selectors:[["ng-component"]],inputs:{user:"user"},decls:54,vars:42,consts:[[1,"modal-content"],["novalidate","",3,"ngSubmit","formGroup"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click"],["aria-hidden","true"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-user-pen","primary-text",2,"font-size","75px"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],["for","form-username",1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-left","text-md-right","w-100","w-md-50"],["formControlName","username","type","text","id","form-username","autocomplete","off","autocapitalize","none",1,"form-control","custom-input"],["for","form-name",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","name","type","text","id","form-name","autocomplete","name",1,"form-control","custom-input"],["for","form-pass",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","password","type","password","autocomplete","new-password","id","form-pass",1,"form-control","custom-input",3,"ngClass"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"text-left"],[1,"text-right","grey-text"],["type","checkbox","formControlName","admin","id","isAdmin",1,"rendux-input"],["for","isAdmin",1,"rendux-label","ml-3"],[1,"modal-footer","justify-content-between"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-right"],["type","submit",1,"btn","btn-primary",3,"disabled"],["for","form-pass-confirm",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","passwordConfirm","type","password","autocomplete","new-password","id","form-pass-confirm",1,"form-control","custom-input",3,"ngClass"]],template:function(o,a){o&1&&(i(0,"div",0)(1,"form",1),b("ngSubmit",function(){return a.onSubmit(a.form)}),i(2,"div",2)(3,"h5",3),m(4),s(5,"translate"),n(),i(6,"button",4),s(7,"translate"),b("click",function(){return a.$activeModal.dismiss("Dismiss")}),i(8,"span",5),m(9,"\xD7"),n()()(),i(10,"div",6)(11,"div",7),p(12,"i",8),n(),i(13,"ul",9)(14,"li",10)(15,"label",11),m(16),s(17,"translate"),n(),i(18,"div",12),p(19,"input",13),s(20,"translate"),n()(),i(21,"li",10)(22,"label",14),m(23),s(24,"translate"),n(),i(25,"div",12),p(26,"input",15),s(27,"translate"),n()(),i(28,"li",10)(29,"label",16),m(30),s(31,"translate"),n(),i(32,"div",12),p(33,"input",17),s(34,"translate"),n()(),h(35,ge,7,9,"li",10),i(36,"li",18)(37,"span",19),m(38),s(39,"translate"),n(),i(40,"div",20),p(41,"input",21),s(42,"translate"),p(43,"label",22),n()()()(),i(44,"div",23)(45,"div",19)(46,"button",24),b("click",function(){return a.$activeModal.dismiss("Dismiss")}),m(47),s(48,"translate"),n()(),p(49,"div",25),i(50,"div",26)(51,"button",27),m(52),s(53,"translate"),n()()()()()),o&2&&(e(),f("formGroup",a.form),e(3),d(l(5,16,"users.title_edit_user")),e(2),u("aria-label",l(7,18,"form.button_close")),e(10),d(l(17,20,"users.label_username")),e(3),u("aria-label",l(20,22,"users.label_username")),e(4),d(l(24,24,"users.label_full_name")),e(3),u("aria-label",l(27,26,"users.label_full_name")),e(4),d(l(31,28,a.page.password)),e(3),f("ngClass",I(40,me,a.form.controls.password.dirty&&a.form.controls.password.errors)),u("aria-label",l(34,30,a.page.password)),e(2),g(a.form.controls.password.value?35:-1),e(3),d(l(39,32,"users.label_admin_user")),e(3),u("aria-label",l(42,34,"users.label_admin_user")),e(6),C(" ",l(48,36,"form.button_close")," "),e(4),f("disabled",!a.form.valid),e(),C(" ",l(53,38,"form.button_save")," "))},dependencies:[V,q,M,Z,F,z,A,L,j,P,$],encapsulation:2})}return r})();function he(r,S){if(r&1){let t=D();i(0,"button",22),b("click",function(){B(t);let a=v().$implicit,_=v();return T(_.setup2fa(a))}),m(1),s(2,"translate"),n()}r&2&&(e(),d(l(2,1,"users.setup_2fa")))}function Se(r,S){if(r&1){let t=D();i(0,"button",18),b("click",function(){B(t);let a=v().$implicit,_=v();return T(_.disable2fa(a))}),m(1),s(2,"translate"),n()}r&2&&(e(),C(" ",l(2,1,"users.setup_2fa_disable")," "))}function ye(r,S){if(r&1){let t=D();i(0,"div",7)(1,"div",8)(2,"div",9)(3,"div",10)(4,"span",11),p(5,"h4",12)(6,"h5",13),n()(),i(7,"div",14),h(8,he,3,3,"button",15)(9,Se,3,3,"button",16),i(10,"div",17)(11,"button",18),s(12,"translate"),b("click",function(){let a=B(t).$implicit,_=v();return T(_.openEditUser(a))}),p(13,"i",19),n(),i(14,"button",20),s(15,"translate"),b("click",function(){let a=B(t).$implicit,_=v();return T(_.deleteUser(a.id))}),p(16,"i",21),n()()()()()()}if(r&2){let t=S.$implicit,o=v();e(5),f("innerText",t.name),e(),f("innerText",t.username),e(2),g(o.$auth.user.username===t.username&&!t.otpActive?8:-1),e(),g(o.$auth.user.username===t.username&&t.otpActive?9:-1),e(2),u("aria-label",l(12,7,"form.button_edit")),e(3),f("disabled",o.$auth.user.username===t.username),u("aria-label",l(15,9,"form.button_delete"))}}var gt=(()=>{class r{$api=c(k);$auth=c(Q);$modal=c(te);$route=c(ie);$toastr=c(U);$translate=c(E);homebridgeUsers;constructor(){}ngOnInit(){this.$route.data.subscribe(t=>{this.homebridgeUsers=t.homebridgeUsers})}reloadUsers(){return this.$api.get("/users").subscribe(t=>{this.homebridgeUsers=t})}openAddNewUser(){this.$modal.open(le,{size:"lg",backdrop:"static"}).result.finally(()=>{this.reloadUsers()})}openEditUser(t){let o=this.$modal.open(pe,{size:"lg",backdrop:"static"});o.componentInstance.user=t,o.result.finally(()=>{this.reloadUsers()})}deleteUser(t){this.$api.delete(`/users/${t}`).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("users.toast_user_deleted"),this.$translate.instant("toast.title_success")),this.reloadUsers()},error:o=>{console.error(o),this.$toastr.error(o.error.message||this.$translate.instant("users.toast_failed_to_delete_user"),this.$translate.instant("toast.title_error"))}})}setup2fa(t){let o=this.$modal.open(oe,{size:"lg",backdrop:"static"});o.componentInstance.user=t,o.result.finally(()=>{this.reloadUsers()})}disable2fa(t){let o=this.$modal.open(re,{size:"lg",backdrop:"static"});o.componentInstance.user=t,o.result.finally(()=>{this.reloadUsers()})}static \u0275fac=function(o){return new(o||r)};static \u0275cmp=y({type:r,selectors:[["app-users"]],decls:12,vars:6,consts:[[1,"row","mb-3"],[1,"col-9"],[1,"primary-text","m-0"],[1,"col-3","text-right"],[1,"btn","btn-elegant","waves-effect","m-0",3,"click"],[1,"fas","fa-fw","fa-user-plus"],[1,"row"],[1,"col-md-6","mb-4"],[1,"card","card-body"],[1,"d-flex","flex-column"],[1,"d-flex","flex-row","mb-3"],[1,"me-auto","my-0"],[3,"innerText"],[1,"small","text-truncate","primary-text",3,"innerText"],[1,"d-flex","flex-row","justify-content-between"],[1,"btn","btn-primary","m-0"],[1,"btn","btn-elegant","m-0"],["role","group",1,"btn-group"],[1,"btn","btn-elegant","m-0",3,"click"],[1,"fas","fa-fw","fa-user-pen"],[1,"btn","btn-danger","m-0",3,"click","disabled"],[1,"fas","fa-fw","fa-trash"],[1,"btn","btn-primary","m-0",3,"click"]],template:function(o,a){o&1&&(i(0,"div",0)(1,"div",1)(2,"h3",2),m(3),s(4,"translate"),n()(),i(5,"div",3)(6,"button",4),s(7,"translate"),b("click",function(){return a.openAddNewUser()}),p(8,"i",5),n()()(),i(9,"div",6),W(10,ye,17,11,"div",7,K),n()),o&2&&(e(3),d(l(4,2,"users.title_users")),e(3),u("aria-label",l(7,4,"users.button_add_user")),e(4),X(a.homebridgeUsers))},dependencies:[$],encapsulation:2})}return r})();export{re as a,oe as b,le as c,pe as d,gt as e};
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-L2ORBCR2.js";import"./chunk-OE2GYWRJ.js";import"./chunk-C2XBPNOQ.js";import"./chunk-7BCHGXO4.js";import"./chunk-EEDUUZ6J.js";import"./chunk-N4F42HDL.js";import"./chunk-YLEC7AUG.js";import"./chunk-GH44GF33.js";import"./chunk-DI7XQKGK.js";import"./chunk-RGOOY4ED.js";import"./chunk-IBVQ5XHN.js";import"./chunk-HA6CO5NZ.js";import"./chunk-675OFXLW.js";import"./chunk-CKNHTRCL.js";export{a as LogsComponent};
@@ -0,0 +1,5 @@
1
+ import{a as b}from"./chunk-C2XBPNOQ.js";import{a as p,b as w}from"./chunk-7BCHGXO4.js";import{a as c}from"./chunk-GH44GF33.js";import{M as i,g as o,ha as m,n,na as h}from"./chunk-CKNHTRCL.js";var d=o(p(),1),a=o(w(),1),l=o(b(),1);var v=(()=>{class e{$ws=h(c);term;io;fitAddon;webLinksAddon;resize;elementResize;constructor(){}destroyTerminal(){this.io.end(),this.term.dispose(),this.resize.complete(),this.elementResize&&this.elementResize.complete()}startTerminal(r,s={},f){this.elementResize=f,this.io=this.$ws.connectToNamespace("platform-tools/terminal"),this.term=new d.Terminal(s),setTimeout(()=>{this.term.loadAddon(this.fitAddon),this.term.loadAddon(this.webLinksAddon)}),this.fitAddon=new a.FitAddon,this.webLinksAddon=new l.WebLinksAddon,this.resize=new n,this.term.open(r.nativeElement),setTimeout(()=>{this.fitAddon.activate(this.term),this.fitAddon.fit()}),this.io.connected.pipe(i(200)).subscribe(()=>{this.startSession()}),this.io.socket.on("disconnect",()=>{this.term.write(`
2
+ \r
3
+ \rTerminal disconnected. Is the server running?
4
+ \r
5
+ \r`)}),this.io.socket.on("process-exit",()=>{this.io.socket.emit("end"),this.startSession()}),this.resize.pipe(i(500)).subscribe(t=>{this.io.socket.emit("resize",t)}),this.io.socket.on("stdout",t=>{this.term.write(t)}),this.term.onData(t=>{this.io.socket.emit("stdin",t)}),this.term.onResize(t=>{this.resize.next(t)}),this.elementResize&&this.elementResize.pipe(i(100)).subscribe({next:()=>{this.fitAddon.fit()}})}startSession(){this.term.reset(),this.io.socket.emit("start-session",{cols:this.term.cols,rows:this.term.rows}),this.resize.next({cols:this.term.cols,rows:this.term.rows})}static \u0275fac=function(s){return new(s||e)};static \u0275prov=m({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();export{v as a};
@@ -0,0 +1 @@
1
+ import"./chunk-GZ6LPTUZ.js";import"./chunk-BUJGF5XS.js";import"./chunk-GH44GF33.js";import{g as n}from"./chunk-T3GI7KUT.js";import"./chunk-DI7XQKGK.js";import"./chunk-RGOOY4ED.js";import"./chunk-IBVQ5XHN.js";import"./chunk-HA6CO5NZ.js";import{c as m}from"./chunk-675OFXLW.js";import{ia as t,kd as i,vb as r}from"./chunk-CKNHTRCL.js";var d=[{path:"",redirectTo:"/",pathMatch:"full"},{path:"restart-server",loadComponent:()=>import("./chunk-IN2KYSF4.js").then(o=>o.RestartLinuxComponent)},{path:"shutdown-server",loadComponent:()=>import("./chunk-DZK7ET6B.js").then(o=>o.ShutdownLinuxComponent)}],u=(()=>{class o{static \u0275fac=function(e){return new(e||o)};static \u0275mod=r({type:o});static \u0275inj=t({imports:[n.forChild(d),n]})}return o})();var g=(()=>{class o{static \u0275fac=function(e){return new(e||o)};static \u0275mod=r({type:o});static \u0275inj=t({imports:[i,m.forChild(),u]})}return o})();export{g as LinuxModule};