homebridge-config-ui-x 5.12.0 → 5.12.1-beta.1

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 (251) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/dist/core/auth/auth.controller.d.ts +4 -0
  3. package/dist/core/config/config.interfaces.d.ts +14 -0
  4. package/dist/core/config/config.service.d.ts +6 -0
  5. package/dist/core/config/config.service.js +8 -0
  6. package/dist/core/config/config.service.js.map +1 -1
  7. package/dist/core/config/config.startup.js +48 -17
  8. package/dist/core/config/config.startup.js.map +1 -1
  9. package/dist/core/feature-flags/feature-flags.registry.js +5 -0
  10. package/dist/core/feature-flags/feature-flags.registry.js.map +1 -1
  11. package/dist/core/homebridge-ipc/homebridge-ipc.service.js +1 -0
  12. package/dist/core/homebridge-ipc/homebridge-ipc.service.js.map +1 -1
  13. package/dist/core/spa/spa-html.service.d.ts +5 -0
  14. package/dist/core/spa/spa-html.service.js +32 -0
  15. package/dist/core/spa/spa-html.service.js.map +1 -0
  16. package/dist/core/spa/spa.filter.d.ts +3 -0
  17. package/dist/core/spa/spa.filter.js +22 -2
  18. package/dist/core/spa/spa.filter.js.map +1 -1
  19. package/dist/core/ssl/ssl-cert-generator.service.d.ts +15 -0
  20. package/dist/core/ssl/ssl-cert-generator.service.js +125 -0
  21. package/dist/core/ssl/ssl-cert-generator.service.js.map +1 -0
  22. package/dist/globalDefaults.js +3 -0
  23. package/dist/globalDefaults.js.map +1 -1
  24. package/dist/main.js +18 -4
  25. package/dist/main.js.map +1 -1
  26. package/dist/modules/accessories/accessories.controller.d.ts +1 -1
  27. package/dist/modules/accessories/accessories.interfaces.d.ts +94 -0
  28. package/dist/modules/accessories/accessories.interfaces.js +2 -0
  29. package/dist/modules/accessories/accessories.interfaces.js.map +1 -0
  30. package/dist/modules/accessories/accessories.module.js +2 -0
  31. package/dist/modules/accessories/accessories.module.js.map +1 -1
  32. package/dist/modules/accessories/accessories.service.d.ts +21 -3
  33. package/dist/modules/accessories/accessories.service.js +281 -17
  34. package/dist/modules/accessories/accessories.service.js.map +1 -1
  35. package/dist/modules/child-bridges/child-bridges.interfaces.d.ts +9 -0
  36. package/dist/modules/config-editor/config-editor.controller.d.ts +4 -0
  37. package/dist/modules/config-editor/config-editor.controller.js +64 -0
  38. package/dist/modules/config-editor/config-editor.controller.js.map +1 -1
  39. package/dist/modules/config-editor/config-editor.service.d.ts +6 -1
  40. package/dist/modules/config-editor/config-editor.service.js +45 -1
  41. package/dist/modules/config-editor/config-editor.service.js.map +1 -1
  42. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js +1 -1
  43. package/dist/modules/custom-plugins/plugins-settings-ui/plugins-settings-ui.service.js.map +1 -1
  44. package/dist/modules/plugins/plugins.service.js +15 -0
  45. package/dist/modules/plugins/plugins.service.js.map +1 -1
  46. package/dist/modules/server/server.controller.d.ts +50 -0
  47. package/dist/modules/server/server.controller.js +201 -2
  48. package/dist/modules/server/server.controller.js.map +1 -1
  49. package/dist/modules/server/server.service.d.ts +48 -0
  50. package/dist/modules/server/server.service.js +502 -14
  51. package/dist/modules/server/server.service.js.map +1 -1
  52. package/dist/modules/status/status.gateway.d.ts +2 -0
  53. package/dist/modules/status/status.interfaces.d.ts +11 -0
  54. package/dist/modules/status/status.service.d.ts +4 -1
  55. package/dist/modules/status/status.service.js +9 -0
  56. package/dist/modules/status/status.service.js.map +1 -1
  57. package/docs/matter-todo.md +15 -0
  58. package/docs/ssl-upload-pr.md +103 -0
  59. package/package.json +3 -1
  60. package/public/3rdpartylicenses.txt +631 -657
  61. package/public/assets/matter.svg +8 -0
  62. package/public/assets/plugin-ui-utils/ui.js +3 -0
  63. package/public/assets/plugin-ui-utils/ui.js.map +1 -1
  64. package/public/chunk-2OYRXBN2.js +1 -0
  65. package/public/chunk-2RZGQOIV.js +1 -0
  66. package/public/chunk-2TYRSR7L.js +1 -0
  67. package/public/chunk-2ZONQRJY.js +1 -0
  68. package/public/chunk-3SEP5DLZ.js +1 -0
  69. package/public/chunk-3Z2ANIU6.js +1 -0
  70. package/public/chunk-3ZAUWVFS.js +1 -0
  71. package/public/chunk-4SYWCOWD.js +1 -0
  72. package/public/chunk-4VXAGXIE.js +1 -0
  73. package/public/chunk-5BNEKASD.js +1 -0
  74. package/public/chunk-5GLW5TDA.js +1 -0
  75. package/public/chunk-5KS2DH7B.js +1 -0
  76. package/public/chunk-5RBSEAWH.js +1 -0
  77. package/public/chunk-6BJX5CLA.js +2 -0
  78. package/public/chunk-6JD6QYDM.js +1 -0
  79. package/public/chunk-6LMBPSI7.js +1 -0
  80. package/public/chunk-6PJ56ZYO.js +1 -0
  81. package/public/chunk-6TVBUEIO.js +1 -0
  82. package/public/chunk-725QXWIS.js +1 -0
  83. package/public/chunk-74D66TIP.js +1 -0
  84. package/public/chunk-7UVP7RXM.js +1 -0
  85. package/public/chunk-AJ6G5D4H.js +1 -0
  86. package/public/chunk-AKBDMFNY.js +1 -0
  87. package/public/chunk-AMYBOLIJ.js +1 -0
  88. package/public/chunk-AQMA3RDW.js +5 -0
  89. package/public/chunk-AVNUTXZU.js +1 -0
  90. package/public/chunk-B4AJQJMI.js +1 -0
  91. package/public/chunk-B7HJCRSF.js +1 -0
  92. package/public/chunk-B7M44SMZ.js +1 -0
  93. package/public/{chunk-SIVN6M76.js → chunk-BMOLDRJ3.js} +1 -1
  94. package/public/{chunk-FANHX5JR.js → chunk-BOC4GPPW.js} +1 -1
  95. package/public/chunk-BYKIYQDT.js +1 -0
  96. package/public/chunk-C7II5VP2.js +1 -0
  97. package/public/chunk-CH55NUDR.js +1 -0
  98. package/public/chunk-COMRMPAN.js +1 -0
  99. package/public/chunk-CVR7HH5R.js +19 -0
  100. package/public/chunk-D36GOGOL.js +16 -0
  101. package/public/chunk-D7DWUFHN.js +1 -0
  102. package/public/chunk-DIANFPJO.js +1 -0
  103. package/public/chunk-DIV6SBSA.js +1 -0
  104. package/public/chunk-DPOOINVO.js +1 -0
  105. package/public/chunk-DYMBIGE6.js +2 -0
  106. package/public/chunk-DZSNO3SI.js +1 -0
  107. package/public/chunk-E5XCBASH.js +1 -0
  108. package/public/chunk-EDQYUSSK.js +1 -0
  109. package/public/chunk-EGSAGFD6.js +1 -0
  110. package/public/chunk-EJDOJG5I.js +4 -0
  111. package/public/chunk-EKUI2KLJ.js +1 -0
  112. package/public/chunk-ELBRHYEQ.js +1 -0
  113. package/public/chunk-FE2B7I65.js +1 -0
  114. package/public/chunk-FEF3KUJO.js +1 -0
  115. package/public/chunk-FOZS44SP.js +1 -0
  116. package/public/chunk-G53OXLP6.js +1 -0
  117. package/public/chunk-GQP3IWNY.js +1 -0
  118. package/public/chunk-GRKUQDKZ.js +4 -0
  119. package/public/chunk-GTDQP2AN.js +1 -0
  120. package/public/chunk-GUGASWDS.js +1 -0
  121. package/public/{chunk-V4JCOKHQ.js → chunk-H7F7H5MW.js} +1 -1
  122. package/public/chunk-HBKEAKUY.js +1 -0
  123. package/public/chunk-HPMVQQCQ.js +1 -0
  124. package/public/chunk-HYXVTKH5.js +1 -0
  125. package/public/chunk-I4SED5RO.js +1 -0
  126. package/public/chunk-I5I4J3CI.js +1 -0
  127. package/public/chunk-IEA4TRJP.js +1 -0
  128. package/public/chunk-JHCMYPZI.js +1 -0
  129. package/public/chunk-KII4A2TO.js +1 -0
  130. package/public/chunk-KVCLSFUU.js +35 -0
  131. package/public/chunk-L56VCSQ2.js +2 -0
  132. package/public/chunk-LHNLN7G4.js +1 -0
  133. package/public/{chunk-N2EK3VS7.js → chunk-LTLKZ6BM.js} +1 -1
  134. package/public/chunk-MOJIJ4KI.js +1 -0
  135. package/public/chunk-MQYFARVS.js +1 -0
  136. package/public/chunk-MWXRPLUX.js +2 -0
  137. package/public/chunk-N5RLFJCF.js +1 -0
  138. package/public/chunk-NE5TKDBZ.js +1 -0
  139. package/public/chunk-NJRKOKSU.js +1 -0
  140. package/public/chunk-NNMBFXIZ.js +68 -0
  141. package/public/chunk-NXZQXLGL.js +2 -0
  142. package/public/chunk-O27K467V.js +1 -0
  143. package/public/chunk-O4N7TQYF.js +1 -0
  144. package/public/chunk-OEMJNAOZ.js +1 -0
  145. package/public/chunk-OKDYJSK3.js +1 -0
  146. package/public/chunk-OMS2DGGK.js +1 -0
  147. package/public/chunk-OXW7WUD2.js +1 -0
  148. package/public/chunk-OYAUZ7WO.js +1 -0
  149. package/public/chunk-P36LCHFC.js +1 -0
  150. package/public/chunk-P46NZURT.js +1 -0
  151. package/public/chunk-PPX7XLRU.js +19 -0
  152. package/public/chunk-PXHERBFM.js +2 -0
  153. package/public/chunk-QHLVWXBN.js +2 -0
  154. package/public/{chunk-NXNTFMYU.js → chunk-QSXYRFV2.js} +52 -2
  155. package/public/chunk-RLF5HK3M.js +1 -0
  156. package/public/chunk-STYJ7GX2.js +1 -0
  157. package/public/chunk-T5HDXHUI.js +1 -0
  158. package/public/chunk-TJM4IBUQ.js +1 -0
  159. package/public/chunk-TNHQCJ4K.js +1 -0
  160. package/public/chunk-TS4TGXTB.js +1 -0
  161. package/public/chunk-U32VG5WU.js +12 -0
  162. package/public/chunk-UIS7AEE6.js +1 -0
  163. package/public/chunk-UQ6A4TOF.js +1 -0
  164. package/public/chunk-UX5CFJ7O.js +4 -0
  165. package/public/chunk-VNBFOH2R.js +4 -0
  166. package/public/chunk-W4IPMDNP.js +1 -0
  167. package/public/chunk-WLACRWP7.js +3 -0
  168. package/public/chunk-XO4RLEIC.js +1 -0
  169. package/public/chunk-XYOWFUTO.js +1 -0
  170. package/public/chunk-Y2T2JCJS.js +1 -0
  171. package/public/chunk-YCP75D2G.js +8 -0
  172. package/public/chunk-Z5ETX2UJ.js +1 -0
  173. package/public/chunk-ZAZ3JGIS.js +1 -0
  174. package/public/chunk-ZCGZM7LU.js +1 -0
  175. package/public/chunk-ZLBX5GO7.js +1 -0
  176. package/public/chunk-ZO7KUAS7.js +1 -0
  177. package/public/chunk-ZSOLIIEA.js +1 -0
  178. package/public/chunk-ZTOOYWTR.js +1 -0
  179. package/public/chunk-ZVVR6KI7.js +1 -0
  180. package/public/index.html +2 -2
  181. package/public/main-T3PH2DNO.js +1 -0
  182. package/public/media/matter-P563JGDL.svg +8 -0
  183. package/public/polyfills-34U4WL3Z.js +1 -0
  184. package/public/styles-WJHG5ONB.css +1 -0
  185. package/scripts/extract-plugin-alias.js +53 -2
  186. package/public/chunk-3MO7ICHF.js +0 -1
  187. package/public/chunk-3PGUQRQW.js +0 -1
  188. package/public/chunk-3SKLXSFI.js +0 -1
  189. package/public/chunk-54X33YUH.js +0 -5
  190. package/public/chunk-56HOZZW6.js +0 -1
  191. package/public/chunk-5ZHDYUXA.js +0 -1
  192. package/public/chunk-6SUIFFAZ.js +0 -1
  193. package/public/chunk-7DOT7I4R.js +0 -1
  194. package/public/chunk-7O4JAXGA.js +0 -50
  195. package/public/chunk-A5EOSR6S.js +0 -1
  196. package/public/chunk-AIGU7Y6G.js +0 -1
  197. package/public/chunk-AK4UTJX2.js +0 -1
  198. package/public/chunk-BAHYSQO5.js +0 -1
  199. package/public/chunk-BJKMZCEQ.js +0 -1
  200. package/public/chunk-BNHW6YHK.js +0 -1
  201. package/public/chunk-BNQ6BOCY.js +0 -1
  202. package/public/chunk-BPQAV2XG.js +0 -1
  203. package/public/chunk-CCKAIEVL.js +0 -1
  204. package/public/chunk-CJJAQM22.js +0 -19
  205. package/public/chunk-D5Z6KR3J.js +0 -1
  206. package/public/chunk-DRKO4DTB.js +0 -1
  207. package/public/chunk-EBANXPKG.js +0 -1
  208. package/public/chunk-EQHGBDO3.js +0 -1
  209. package/public/chunk-GOLMQCNJ.js +0 -1
  210. package/public/chunk-GPTVUF5H.js +0 -1
  211. package/public/chunk-HRAMBCZG.js +0 -1
  212. package/public/chunk-IQUWZEQX.js +0 -1
  213. package/public/chunk-JE6FI7IW.js +0 -16
  214. package/public/chunk-JHD5MRCG.js +0 -2
  215. package/public/chunk-JI6C4NXH.js +0 -1
  216. package/public/chunk-JJZ232C2.js +0 -12
  217. package/public/chunk-JYAM3PTI.js +0 -1
  218. package/public/chunk-KCF7ILFR.js +0 -1
  219. package/public/chunk-KEKO5EFZ.js +0 -1
  220. package/public/chunk-KK7LTOA5.js +0 -1
  221. package/public/chunk-L2Y7HWNA.js +0 -1
  222. package/public/chunk-LVPMGB27.js +0 -1
  223. package/public/chunk-MA4NUDLX.js +0 -1
  224. package/public/chunk-ML7UNHWF.js +0 -1
  225. package/public/chunk-MY5KM2NY.js +0 -1
  226. package/public/chunk-NBTW66C4.js +0 -3
  227. package/public/chunk-NLWU3URB.js +0 -1
  228. package/public/chunk-NVN7DYND.js +0 -1
  229. package/public/chunk-OL7NNVJO.js +0 -1
  230. package/public/chunk-PHO7WRKK.js +0 -1
  231. package/public/chunk-PHWW4YF2.js +0 -1
  232. package/public/chunk-QPGFU6MO.js +0 -1
  233. package/public/chunk-QTIB6YCV.js +0 -1
  234. package/public/chunk-RZVF77KW.js +0 -4
  235. package/public/chunk-SNO4VAGT.js +0 -1
  236. package/public/chunk-STRTFJ4I.js +0 -1
  237. package/public/chunk-TGQIPKOK.js +0 -51
  238. package/public/chunk-TMGK6CPZ.js +0 -8
  239. package/public/chunk-UIZYHRTQ.js +0 -4
  240. package/public/chunk-UO2L3YPH.js +0 -1
  241. package/public/chunk-XCOJYJKE.js +0 -4
  242. package/public/chunk-XKFVEK25.js +0 -2
  243. package/public/chunk-XPGD2BHY.js +0 -40
  244. package/public/chunk-YBNR45V5.js +0 -5
  245. package/public/chunk-YK5NYQW5.js +0 -1
  246. package/public/chunk-ZDEL6332.js +0 -1
  247. package/public/chunk-ZRDN4L2J.js +0 -5
  248. package/public/chunk-ZYETXD5U.js +0 -1
  249. package/public/main-YYHATWMC.js +0 -1
  250. package/public/polyfills-5KWHJ7II.js +0 -2
  251. package/public/styles-G2ZRD7VU.css +0 -1
@@ -0,0 +1 @@
1
+ import{a as Ee}from"./chunk-YCP75D2G.js";import{a as ae}from"./chunk-PXHERBFM.js";import{a as Se}from"./chunk-LTLKZ6BM.js";import{n as R,o as ie}from"./chunk-TS4TGXTB.js";import{a as ne}from"./chunk-NXZQXLGL.js";import{s as I,t as we}from"./chunk-DYMBIGE6.js";import{c as he}from"./chunk-6LMBPSI7.js";import{a as xe}from"./chunk-GTDQP2AN.js";import{b as K}from"./chunk-AJ6G5D4H.js";import{B as ge,C as G,D as L,b as W,c as j,d as g,e as P,f as X,g as q,j as S,m as Y,q as Z,r as ee,s as te}from"./chunk-JHCMYPZI.js";import{a as Ie,b as Ce}from"./chunk-5KS2DH7B.js";import{C as k,D as M,F,I as B}from"./chunk-L56VCSQ2.js";import{Ab as C,Cb as de,Db as pe,Dc as o,Eb as ce,Ec as s,Fb as E,Fc as ve,Gb as r,Hb as a,Ib as d,Jb as D,Kb as $,Kc as oe,Lb as z,Rb as N,Sb as re,Xb as _,Yb as O,Za as e,Zb as v,aa as p,ea as le,ga as A,ha as V,hc as ue,ic as T,jc as Q,kc as m,lc as u,ma as me,mb as J,mc as c,nb as U,nc as fe,sa as y,xc as be,yb as f,yc as _e,zb as h}from"./chunk-UX5CFJ7O.js";import{g as Be,h as w}from"./chunk-B4AJQJMI.js";function Ae(n,x){n&1&&(r(0,"ngb-alert",13)(1,"p",20),m(2),o(3,"translate"),a()()),n&2&&(E("dismissible",!1),e(2),u(s(3,2,"login.invalid_password")))}var ye=(()=>{class n{$activeModal=p(I);$api=p(B);$toastr=p(F);$translate=p(k);invalidCredentials=y(!1);formGroup=new q({password:new S("",[g.required])});disable2fa(){return w(this,null,function*(){this.invalidCredentials.set(!1);try{yield this.$api.post("/users/otp/deactivate",this.formGroup.value),this.$activeModal.close(),this.$toastr.success(this.$translate.instant("users.setup_2fa_disable_success"),this.$translate.instant("toast.title_success"))}catch{this.formGroup.setValue({password:""}),this.invalidCredentials.set(!0)}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(l){return new(l||n)};static \u0275cmp=U({type:n,selectors:[["ng-component"]],decls:34,vars:27,consts:[[1,"modal-content",2,"min-height","300px"],[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-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-start","text-md-end","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-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-danger",3,"click","disabled"],[1,"mb-0"]],template:function(l,i){l&1&&(r(0,"div",0)(1,"div",1)(2,"h5",2),m(3),o(4,"translate"),a(),r(5,"button",3),o(6,"translate"),_("click",function(){return i.dismissModal()}),a()(),r(7,"div",4)(8,"div",5),d(9,"i",6),a(),r(10,"ul",7)(11,"li"),m(12),o(13,"translate"),a()(),r(14,"ul",8)(15,"li",9)(16,"label",10),m(17),o(18,"translate"),a(),r(19,"div",11),d(20,"input",12),o(21,"translate"),a()()(),h(22,Ae,4,4,"ngb-alert",13),a(),r(23,"div",14)(24,"div",15)(25,"button",16),o(26,"translate"),_("click",function(){return i.dismissModal()}),m(27),o(28,"translate"),a()(),d(29,"div",17),r(30,"div",18)(31,"button",19),_("click",function(){return i.disable2fa()}),m(32),o(33,"translate"),a()()()()),l&2&&(e(3),u(s(4,11,"users.setup_2fa_disable")),e(2),f("aria-label",s(6,13,"form.button_close")),e(7),u(s(13,15,"users.setup_2fa_disable_current_password")),e(5),u(s(18,17,"users.label_password")),e(3),E("formControl",i.formGroup.controls.password)("placeholder",s(21,19,"users.label_password")),e(2),C(i.invalidCredentials()&&!i.formGroup.controls.password.value?22:-1),e(3),f("aria-label",s(26,21,"form.button_close")),e(2),c(" ",s(28,23,"form.button_close")," "),e(4),E("disabled",i.formGroup.invalid),e(),c(" ",s(33,25,"form.button_disable")," "))},dependencies:[G,j,P,L,Z,ne,M],encapsulation:2})}return n})();var Ue=Be(Ie(),1);var Ve=n=>({timeDiffError:n});function Ne(n,x){n&1&&(r(0,"li"),m(1),o(2,"translate"),a()),n&2&&(e(),u(s(2,1,"users.setup_2fa_scan_qr_code")))}function Fe(n,x){if(n&1&&(r(0,"ngb-alert",8)(1,"p",16),m(2),o(3,"translate"),a(),r(4,"p",17),m(5),o(6,"translate"),a()()),n&2){let t=v();E("dismissible",!1),e(2),u(s(3,3,"users.setup_2fa_cannot_setup_2fa")),e(3),u(ve(6,5,"users.setup_2fa_server_time_out",be(8,Ve,t.timeDiffError())))}}function je(n,x){n&1&&d(0,"i",27)}function Pe(n,x){n&1&&d(0,"i",28)}function qe(n,x){if(n&1){let t=N();r(0,"div",21),m(1),o(2,"translate"),d(3,"br"),m(4),r(5,"a",26),_("click",function(){A(t);let i=v(2);return V(i.copySecretToClipboard())}),h(6,je,1,0,"i",27)(7,Pe,1,0,"i",28),a()()}if(n&2){let t=v(2);e(),c(" ",s(2,3,"users.setup_2fa_scan_qr_manual")),e(3),c(" ",t.otpSecret()," "),e(2),C(t.secretCopied()?6:7)}}function Ge(n,x){if(n&1&&(r(0,"ul",9)(1,"li",18)(2,"div",19),d(3,"app-qrcode",20),a(),h(4,qe,8,5,"div",21),a(),r(5,"li",22)(6,"label",23),m(7),o(8,"translate"),a(),r(9,"div",24),d(10,"input",25),a()()()),n&2){let t=v();e(3),E("data",t.otpString()),e(),C(t.otpSecret()?4:-1),e(3),u(s(8,4,"users.setup_2fa_enter_code")),e(3),E("formControl",t.formGroup.controls.code)}}function Le(n,x){if(n&1){let t=N();r(0,"button",29),o(1,"translate"),_("click",function(){A(t);let i=v();return V(i.dismissModal())}),m(2),o(3,"translate"),a()}n&2&&(f("aria-label",s(1,2,"form.button_close")),e(2),c(" ",s(3,4,"form.button_close")," "))}function Re(n,x){if(n&1){let t=N();r(0,"button",29),o(1,"translate"),_("click",function(){A(t);let i=v();return V(i.dismissModal())}),m(2),o(3,"translate"),a()}n&2&&(f("aria-label",s(1,2,"form.button_close")),e(2),c(" ",s(3,4,"form.button_close")," "))}function ze(n,x){if(n&1){let t=N();r(0,"button",30),_("click",function(){A(t);let i=v();return V(i.enable2fa())}),m(1),o(2,"translate"),a()}if(n&2){let t=v();E("disabled",t.formGroup.invalid),e(),c(" ",s(2,2,"form.button_enable")," ")}}var Me=(()=>{class n{$activeModal=p(I);$api=p(B);$toastr=p(F);$translate=p(k);modalData=p(R);user=this.modalData.user;timeDiffError=y(null);otpString=y(void 0);otpSecret=y(void 0);secretCopied=y(!1);copyTimeout=null;formGroup=new q({code:new S("",[g.required,g.minLength(6),g.maxLength(6)])});ngOnInit(){this.initialize()}initialize(){return w(this,null,function*(){try{let t=yield this.$api.post("/users/otp/setup",{});this.checkTimeDiff(t.timestamp),this.timeDiffError()||(this.otpString.set(t.otpauth),this.otpSecret.set(new URL(t.otpauth).searchParams.get("secret")||""))}catch(t){this.$activeModal.dismiss(),console.error(t),this.$toastr.error(this.$translate.instant("users.setup_2fa_enable_error"),this.$translate.instant("toast.title_error"))}})}enable2fa(){return w(this,null,function*(){try{yield this.$api.post("/users/otp/activate",this.formGroup.value),this.$toastr.success(this.$translate.instant("users.setup_2fa_enabled_success"),this.$translate.instant("toast.title_success")),this.$activeModal.close()}catch(t){console.error(t),this.$toastr.error(this.$translate.instant("users.setup_2fa_activate_error"),this.$translate.instant("toast.title_error"))}})}copySecretToClipboard(){return w(this,null,function*(){let t=this.otpSecret();t&&(yield navigator.clipboard.writeText(t),this.secretCopied.set(!0),this.copyTimeout&&clearTimeout(this.copyTimeout),this.copyTimeout=setTimeout(()=>{this.secretCopied.set(!1)},3e3))})}dismissModal(){this.$activeModal.dismiss("Dismiss")}checkTimeDiff(t){let l=(0,Ue.default)(t).diff(new Date,"millisecond");l<-5e3||l>5e3?this.timeDiffError.set(l):this.timeDiffError.set(null)}static \u0275fac=function(l){return new(l||n)};static \u0275cmp=U({type:n,selectors:[["ng-component"]],decls:24,vars:15,consts:[[1,"modal-content","setup2fa"],[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-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-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"disabled"],[1,"fw-bold","mb-1"],[1,"mb-0"],[1,"list-group-item","text-center"],[1,"text-center","w-100","d-flex","justify-content-center","my-2"],[1,"mx-auto",2,"width","175px","height","175px",3,"data"],[1,"grey-text","small","mt-0","mb-1"],[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-start","text-md-end","w-100","w-md-50"],["type","text","placeholder","eg. 123456","autocomplete","one-time-code","autocapitalize","none","inputmode","numeric","pattern","[0-9]*",1,"form-control","custom-input",3,"formControl"],["href","javascript:void(0)",1,"ms-1","text-primary",3,"click"],[1,"fas","fa-check","green-text"],[1,"fas","fa-copy"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"]],template:function(l,i){l&1&&(r(0,"div",0)(1,"div",1)(2,"h5",2),m(3),o(4,"translate"),a(),r(5,"button",3),o(6,"translate"),_("click",function(){return i.dismissModal()}),a()(),r(7,"div",4)(8,"div",5),d(9,"i",6),a(),r(10,"ul",7)(11,"li"),m(12),o(13,"translate"),a(),h(14,Ne,3,3,"li"),a(),h(15,Fe,7,10,"ngb-alert",8),h(16,Ge,11,6,"ul",9),a(),r(17,"div",10)(18,"div",11),h(19,Le,4,6,"button",12),a(),r(20,"div",13),h(21,Re,4,6,"button",12),a(),r(22,"div",14),h(23,ze,3,4,"button",15),a()()()),l&2&&(e(3),u(s(4,9,"users.setup_2fa")),e(2),f("aria-label",s(6,11,"form.button_close")),e(7),u(s(13,13,"users.setup_2fa_warning")),e(2),C(i.timeDiffError()?-1:14),e(),C(i.timeDiffError()?15:-1),e(),C(i.timeDiffError()?-1:16),e(3),C(i.timeDiffError()?-1:19),e(2),C(i.timeDiffError()?21:-1),e(2),C(i.timeDiffError()?-1:23))},dependencies:[ne,Ee,G,j,P,ge,L,Z,M],encapsulation:2})}return n})();var De=(()=>{class n{$activeModal=p(I);$api=p(B);$toastr=p(F);$translate=p(k);modalData=p(ie);existingUsers=this.modalData.existingUsers;form=new q({username:new S("",[g.required]),name:new S("",[g.required]),password:new S("",[g.compose([g.required,g.minLength(4)])]),passwordConfirm:new S("",[g.required]),admin:new S(!0)},this.matchPassword);ngOnInit(){this.form.controls.username.addValidators(this.duplicateUsernameValidator.bind(this)),this.form.controls.username.updateValueAndValidity()}onSubmit(l){return w(this,arguments,function*({value:t}){try{yield this.$api.post("/users",t),this.$activeModal.close()}catch(i){this.$toastr.error(i.error?.message||i.message,this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}duplicateUsernameValidator(t){if(!t.value)return null;let l=t.value.trim();return l&&this.existingUsers.some(b=>b.username===l)?{duplicateUsername:!0}:null}matchPassword(t){let l=t.get("password")?.value,i=t.get("passwordConfirm")?.value;return l!==i?(t.get("passwordConfirm")?.setErrors({matchPassword:!0}),{matchPassword:!0}):null}static \u0275fac=function(l){return new(l||n)};static \u0275cmp=U({type:n,selectors:[["ng-component"]],decls:63,vars:52,consts:[[1,"modal-content"],["novalidate","",3,"ngSubmit","formGroup"],[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-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-start","text-md-end","w-100","w-md-50"],["formControlName","username","type","text","id","form-username","autofocus","","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"],["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"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"text-start"],[1,"text-end","grey-text","d-flex","align-items-center"],["formControlName","admin","type","checkbox","id","isAdmin",1,"rendux-input"],["for","isAdmin",1,"rendux-label","ms-3"],[1,"modal-footer","justify-content-between"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","submit",1,"btn","btn-primary",3,"disabled"]],template:function(l,i){l&1&&(r(0,"div",0)(1,"form",1),_("ngSubmit",function(){return i.onSubmit(i.form)}),r(2,"div",2)(3,"h5",3),m(4),o(5,"translate"),a(),r(6,"button",4),o(7,"translate"),_("click",function(){return i.dismissModal()}),a()(),r(8,"div",5)(9,"div",6),d(10,"i",7),a(),r(11,"ul",8)(12,"li",9)(13,"label",10),m(14),o(15,"translate"),d(16,"app-required-indicator"),a(),r(17,"div",11),d(18,"input",12),o(19,"translate"),a()(),r(20,"li",9)(21,"label",13),m(22),o(23,"translate"),d(24,"app-required-indicator"),a(),r(25,"div",11),d(26,"input",14),o(27,"translate"),a()(),r(28,"li",9)(29,"label",15),m(30),o(31,"translate"),d(32,"app-required-indicator"),a(),r(33,"div",11),d(34,"input",16),o(35,"translate"),a()(),r(36,"li",9)(37,"label",17),m(38),o(39,"translate"),d(40,"app-required-indicator"),a(),r(41,"div",11),d(42,"input",18),o(43,"translate"),a()(),r(44,"li",19)(45,"span",20),m(46),o(47,"translate"),d(48,"app-required-indicator"),a(),r(49,"div",21),d(50,"input",22),o(51,"translate"),d(52,"label",23),a()()()(),r(53,"div",24)(54,"div",20)(55,"button",25),_("click",function(){return i.dismissModal()}),m(56),o(57,"translate"),a()(),d(58,"div",26),r(59,"div",27)(60,"button",28),m(61),o(62,"translate"),a()()()()()),l&2&&(e(),E("formGroup",i.form),e(3),u(s(5,24,"users.title_add_user")),e(2),f("aria-label",s(7,26,"form.button_close")),e(8),c(" ",s(15,28,"users.label_username")," "),e(4),T("is-invalid",i.form.controls.username.touched&&i.form.controls.username.invalid),f("aria-label",s(19,30,"users.label_username")),e(4),c(" ",s(23,32,"users.label_full_name")," "),e(4),T("is-invalid",i.form.controls.name.touched&&i.form.controls.name.invalid),f("aria-label",s(27,34,"users.label_full_name")),e(4),c(" ",s(31,36,"users.label_password")," "),e(4),T("is-invalid",i.form.controls.password.touched&&i.form.controls.password.invalid),f("aria-label",s(35,38,"users.label_password")),e(4),c(" ",s(39,40,"users.label_confirm_password")," "),e(4),T("is-invalid",i.form.controls.passwordConfirm.touched&&i.form.controls.passwordConfirm.invalid),f("aria-label",s(43,42,"users.label_confirm_password")),e(4),c(" ",s(47,44,"users.label_admin_user")," "),e(4),f("aria-label",s(51,46,"users.label_admin_user")),e(6),c(" ",s(57,48,"form.button_close")," "),e(4),E("disabled",!i.form.valid),e(),c(" ",s(62,50,"form.button_save")," "))},dependencies:[G,Y,j,W,P,X,L,te,ee,ae,M],encapsulation:2})}return n})();function Oe(n,x){n&1&&d(0,"app-required-indicator")}function Je(n,x){if(n&1&&(r(0,"li",9)(1,"label",29),m(2),o(3,"translate"),d(4,"app-required-indicator"),a(),r(5,"div",11),d(6,"input",30),o(7,"translate"),a()()),n&2){let t=v();e(2),c(" ",s(3,4,"users.label_confirm_password")," "),e(4),T("is-invalid",t.form.controls.passwordConfirm.touched&&t.form.controls.passwordConfirm.invalid),f("aria-label",s(7,6,"users.label_confirm_password"))}}function Qe(n,x){n&1&&(r(0,"div",22)(1,"div",25),m(2),o(3,"translate"),a()()),n&2&&(e(2),u(s(3,1,"common.phrases.are_you_sure")))}var $e=(()=>{class n{$activeModal=p(I);$api=p(B);$auth=p(K);$toastr=p(F);$translate=p(k);modalData=p(R);user=this.modalData.user;existingUsers=this.modalData.existingUsers||[];isCurrentUser=y(!1);deleteMode=y(!1);initialFormValue={};form=new q({username:new S("",[g.required]),name:new S("",[g.required]),password:new S("",[g.minLength(4)]),passwordConfirm:new S(""),admin:new S(!0)},this.matchPassword);isLastAdmin=oe(()=>this.user?.admin?this.existingUsers.filter(l=>l.admin).length<=1:!1);canDelete=oe(()=>!this.isCurrentUser()&&!this.isLastAdmin());ngOnInit(){this.user&&(this.isCurrentUser.set(this.$auth.user.username===this.user.username),this.form.patchValue(this.user),this.initialFormValue=this.form.getRawValue(),this.form.controls.username.addValidators(this.duplicateUsernameValidator.bind(this)),this.form.controls.username.updateValueAndValidity(),this.isLastAdmin()&&this.form.controls.admin.disable())}onSubmit(l){return w(this,arguments,function*({value:t}){if(this.user){if(this.deleteMode()){try{yield this.$api.delete(`/users/${this.user.id}`),this.$activeModal.close()}catch(i){console.error(i),this.$toastr.error(i.error?.message||i.message,this.$translate.instant("toast.title_error"))}return}try{yield this.$api.patch(`/users/${this.user.id}`,t),this.$activeModal.close(),this.isCurrentUser()&&t.username!==this.$auth.user.username&&this.$auth.logout()}catch(i){console.error(i),this.$toastr.error(i.error?.message||i.message,this.$translate.instant("toast.title_error"))}}})}toggleDeleteMode(t){this.deleteMode.set(!this.deleteMode()),this.deleteMode()?this.form.disable():(this.form.enable(),this.isLastAdmin()&&this.form.controls.admin.disable()),t.target.blur()}isFormUnchanged(){return this.form.controls.password.value?!1:JSON.stringify(this.form.getRawValue())===JSON.stringify(this.initialFormValue)}duplicateUsernameValidator(t){if(!t.value)return null;let l=t.value.trim();return l&&this.existingUsers.some(b=>b.id!==this.user.id&&b.username===l)?{duplicateUsername:!0}:null}dismissModal(){this.$activeModal.dismiss("Dismiss")}matchPassword(t){let l=t.get("password")?.value,i=t.get("passwordConfirm")?.value;return l!==i?(t.get("passwordConfirm")?.setErrors({matchPassword:!0}),{matchPassword:!0}):null}static \u0275fac=function(l){return new(l||n)};static \u0275cmp=U({type:n,selectors:[["ng-component"]],decls:60,vars:57,consts:[[1,"modal-content"],["novalidate","",3,"ngSubmit","formGroup"],[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-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-start","text-md-end","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"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"text-start"],[1,"text-end","grey-text","d-flex","align-items-center"],["type","checkbox","formControlName","admin","id","isAdmin",1,"rendux-input"],["for","isAdmin",1,"rendux-label","ms-3"],[1,"alert","alert-warning","mt-3","mb-0"],[1,"modal-footer","justify-content-between"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","button",1,"btn","btn-elegant","me-2",3,"click","disabled"],["type","submit",1,"btn",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"]],template:function(l,i){l&1&&(r(0,"div",0)(1,"form",1),_("ngSubmit",function(){return i.onSubmit(i.form)}),r(2,"div",2)(3,"h5",3),m(4),o(5,"translate"),a(),r(6,"button",4),o(7,"translate"),_("click",function(){return i.dismissModal()}),a()(),r(8,"div",5)(9,"div",6),d(10,"i",7),a(),r(11,"ul",8)(12,"li",9)(13,"label",10),m(14),o(15,"translate"),d(16,"app-required-indicator"),a(),r(17,"div",11),d(18,"input",12),o(19,"translate"),a()(),r(20,"li",9)(21,"label",13),m(22),o(23,"translate"),d(24,"app-required-indicator"),a(),r(25,"div",11),d(26,"input",14),o(27,"translate"),a()(),r(28,"li",9)(29,"label",15),m(30),o(31,"translate"),h(32,Oe,1,0,"app-required-indicator"),a(),r(33,"div",11),d(34,"input",16),o(35,"translate"),a()(),h(36,Je,8,8,"li",9),r(37,"li",17)(38,"span",18),m(39),o(40,"translate"),d(41,"app-required-indicator"),a(),r(42,"div",19),d(43,"input",20),o(44,"translate"),d(45,"label",21),a()()(),h(46,Qe,4,3,"div",22),a(),r(47,"div",23)(48,"div",18)(49,"button",24),_("click",function(){return i.dismissModal()}),m(50),o(51,"translate"),a()(),d(52,"div",25),r(53,"div",26)(54,"button",27),o(55,"translate"),_("click",function(ke){return i.toggleDeleteMode(ke)}),d(56,"i"),a(),r(57,"button",28),m(58),o(59,"translate"),a()()()()()),l&2&&(e(),E("formGroup",i.form),e(3),u(s(5,31,"users.title_edit_user")),e(2),f("aria-label",s(7,33,"form.button_close")),e(5),ue("opacity",i.deleteMode()?"0.25":"1"),e(3),c(" ",s(15,35,"users.label_username")," "),e(4),T("is-invalid",i.form.controls.username.touched&&i.form.controls.username.invalid),f("aria-label",s(19,37,"users.label_username")),e(4),c(" ",s(23,39,"users.label_full_name")," "),e(4),T("is-invalid",i.form.controls.name.touched&&i.form.controls.name.invalid),f("aria-label",s(27,41,"users.label_full_name")),e(4),c(" ",s(31,43,"users.label_new_password")," "),e(2),C(i.form.controls.password.value?32:-1),e(2),T("is-invalid",i.form.controls.password.touched&&i.form.controls.password.invalid),f("aria-label",s(35,45,"users.label_new_password")),e(2),C(i.form.controls.password.value?36:-1),e(3),c(" ",s(40,47,"users.label_admin_user")," "),e(4),f("aria-label",s(44,49,"users.label_admin_user")),e(3),C(i.deleteMode()?46:-1),e(4),c(" ",s(51,51,"form.button_close")," "),e(4),E("disabled",!i.canDelete()),f("aria-label",s(55,53,"users.button_delete_user")),e(2),Q(i.deleteMode()?"fas fa-undo":"fas fa-trash"),e(),Q(i.deleteMode()?"btn-danger":"btn-primary"),E("disabled",!i.deleteMode()&&(!i.form.valid||i.isFormUnchanged())),e(),c(" ",s(59,55,i.deleteMode()?"form.button_delete":"form.button_save")," "))},dependencies:[G,Y,j,W,P,X,L,te,ee,ae,M],encapsulation:2})}return n})();var Te=(()=>{class n{$activeModal=p(I);dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(l){return new(l||n)};static \u0275cmp=U({type:n,selectors:[["ng-component"]],decls:46,vars:36,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,"fa","fa-question-circle-o","primary-text",2,"font-size","75px"],[1,"ms-2"],[1,"mb-0"],[1,"mb-2","grey-text"],[1,"modal-footer","justify-content-between"],[1,"text-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-end"]],template:function(l,i){l&1&&(r(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),m(4),o(5,"translate"),a(),r(6,"button",3),o(7,"translate"),_("click",function(){return i.dismissModal()}),a()(),r(8,"div",4)(9,"div",5),d(10,"i",6),a(),r(11,"h5",7),m(12),o(13,"translate"),a(),r(14,"ul",8)(15,"li"),m(16),o(17,"translate"),a(),r(18,"ul",9)(19,"li"),m(20),o(21,"translate"),a(),r(22,"li"),m(23),o(24,"translate"),a(),r(25,"li"),m(26),o(27,"translate"),o(28,"translate"),a(),r(29,"li"),m(30),o(31,"translate"),a(),r(32,"li"),m(33),o(34,"translate"),a()(),r(35,"li"),m(36),o(37,"translate"),a()(),d(38,"app-support-banner"),a(),r(39,"div",10),d(40,"div",11),r(41,"div",12)(42,"button",13),_("click",function(){return i.dismissModal()}),m(43),o(44,"translate"),a()(),d(45,"div",14),a()()()),l&2&&(e(4),u(s(5,12,"support.title")),e(2),f("aria-label",s(7,14,"form.button_close")),e(6),u(s(13,16,"users.title_users")),e(4),u(s(17,18,"users.support.acc_1")),e(4),u(s(21,20,"menu.label_status")),e(3),u(s(24,22,"menu.label_plugins")),e(3),fe("",s(27,24,"menu.label_accessories")," (",s(28,26,"users.support.control"),")"),e(4),u(s(31,28,"menu.linux.label_logs")),e(3),u(s(34,30,"support.title")),e(3),u(s(37,32,"users.support.acc_2")),e(7),c(" ",s(44,34,"form.button_close")," "))},dependencies:[Se,M],encapsulation:2})}return n})();var He=(n,x)=>({"fa-user-secret":n,"fa-user":x});function Ke(n,x){if(n&1){let t=N();D(0,"button",21),O("click",function(){A(t);let i=v(2).$implicit,b=v();return V(b.disable2fa(i))}),m(1),o(2,"translate"),$()}if(n&2){let t=v(2).$implicit,l=v();re("disabled",t.username!==l.username),e(),c(" ",s(2,2,"users.setup_2fa_disable")," ")}}function We(n,x){if(n&1){let t=N();D(0,"button",22),O("click",function(){A(t);let i=v(2).$implicit,b=v();return V(b.setup2fa(i))}),m(1),o(2,"translate"),$()}if(n&2){let t=v(2).$implicit,l=v();re("disabled",t.username!==l.username),e(),c(" ",s(2,2,"users.setup_2fa")," ")}}function Xe(n,x){if(n&1&&h(0,Ke,3,4,"button",19)(1,We,3,4,"button",20),n&2){let t=v().$implicit;C(t.otpActive?0:1)}}function Ye(n,x){n&1&&z(0,"div")}function Ze(n,x){if(n&1){let t=N();D(0,"div",9)(1,"div",10)(2,"div",11)(3,"div",12)(4,"span",13)(5,"h4"),m(6),$(),D(7,"h5",14),z(8,"i",15),m(9),$()()(),D(10,"div",16),h(11,Xe,2,1)(12,Ye,1,0,"div"),D(13,"div")(14,"button",17),o(15,"translate"),O("click",function(){let i=A(t).$implicit,b=v();return V(b.openEditUser(i))}),z(16,"i",18),$()()()()()()}if(n&2){let t=x.$implicit;e(6),u(t.name),e(2),Q(_e(8,He,t.admin,!t.admin)),e(),c(" ",t.username," "),e(2),C(t.admin?11:12),e(3),f("aria-label",s(15,6,"form.button_edit"))}}var ci=(()=>{class n{injector=p(le);destroyRef=p(me);$api=p(B);$auth=p(K);$modal=p(we);$route=p(he);$settings=p(Ce);$translate=p(k);homebridgeUsers=y([]);username=this.$auth.user.username;isAdmin=this.$auth.user.admin;ngOnInit(){let t=this.$translate.instant("users.title_users");this.$settings.setPageTitle(t),this.$route.data.pipe(xe(this.destroyRef)).subscribe(l=>{this.homebridgeUsers.set(l.homebridgeUsers)})}reloadUsers(){return w(this,null,function*(){let t=yield this.$api.get("/users");this.homebridgeUsers.set(t)})}openAddNewUser(){return w(this,null,function*(){let t=J([{provide:ie,useValue:{existingUsers:this.homebridgeUsers()}}],this.injector),l=this.$modal.open(De,{size:"lg",backdrop:"static",injector:t});try{yield l.result,this.reloadUsers()}catch{}})}openEditUser(t){return w(this,null,function*(){let l=J([{provide:R,useValue:{user:t,existingUsers:this.homebridgeUsers()}}],this.injector),i=this.$modal.open($e,{size:"lg",backdrop:"static",injector:l});try{yield i.result,this.reloadUsers()}catch{}})}setup2fa(t){return w(this,null,function*(){let l=J([{provide:R,useValue:{user:t}}],this.injector),i=this.$modal.open(Me,{size:"lg",backdrop:"static",injector:l});try{yield i.result,this.reloadUsers()}catch{}})}disable2fa(t){return w(this,null,function*(){let l=J([{provide:R,useValue:{user:t}}],this.injector),i=this.$modal.open(ye,{size:"lg",backdrop:"static",injector:l});try{yield i.result,this.reloadUsers()}catch{}})}openSupport(){this.$modal.open(Te,{size:"lg",backdrop:"static"})}static \u0275fac=function(l){return new(l||n)};static \u0275cmp=U({type:n,selectors:[["app-users"]],decls:15,vars:9,consts:[[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0"],[1,"col-6","text-end"],[1,"btn","btn-elegant","waves-effect","m-0","me-2",3,"click"],[1,"fas","fa-user-plus"],["type","button",1,"btn","btn-elegant","my-0","me-0",3,"click"],[1,"fa","fa-question-circle-o"],[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"],[1,"small","text-truncate","grey-text"],[1,"fas"],[1,"d-flex","flex-row","justify-content-between"],[1,"btn","btn-elegant","m-0",3,"click"],[1,"fas","fa-user-pen"],[1,"btn","btn-elegant","m-0",3,"disabled"],[1,"btn","btn-primary","m-0",3,"disabled"],[1,"btn","btn-elegant","m-0",3,"click","disabled"],[1,"btn","btn-primary","m-0",3,"click","disabled"]],template:function(l,i){l&1&&(D(0,"div",0)(1,"div",1)(2,"h3",2),m(3),o(4,"translate"),$()(),D(5,"div",3)(6,"button",4),o(7,"translate"),O("click",function(){return i.openAddNewUser()}),z(8,"i",5),$(),D(9,"button",6),o(10,"translate"),O("click",function(){return i.openSupport()}),z(11,"i",7),$()()(),D(12,"div",8),pe(13,Ze,17,11,"div",9,de),$()),l&2&&(e(3),u(s(4,3,"users.title_users")),e(3),f("aria-label",s(7,5,"users.button_add_user")),e(3),f("aria-label",s(10,7,"support.title")),e(4),ce(i.homebridgeUsers()))},dependencies:[M],encapsulation:2})}return n})();export{ci as UsersComponent};
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-6PJ56ZYO.js";import"./chunk-B4AJQJMI.js";export default a();
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-OMS2DGGK.js";import"./chunk-B4AJQJMI.js";export default a();
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-IEA4TRJP.js";import"./chunk-B4AJQJMI.js";export default a();
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-MQYFARVS.js";import"./chunk-B4AJQJMI.js";export default a();
@@ -0,0 +1 @@
1
+ import{_ as o}from"./chunk-UX5CFJ7O.js";var A=new o("ConfirmModalData"),D=new o("InformationModalData"),a=new o("PluginModalData"),e=new o("PluginBridgeModalData"),n=new o("CustomPluginsModalData"),_=new o("PluginLogsModalData"),M=new o("UninstallPluginModalData"),s=new o("ResetAccessoriesModalData"),O=new o("ManagePluginModalData"),T=new o("DisablePluginModalData"),r=new o("PluginCompatibilityModalData"),L=new o("ManageVersionModalData"),l=new o("SwitchToScopedModalData"),I=new o("UserModalData"),c=new o("AddUserModalData"),d=new o("NetworkInterfacesModalData"),i=new o("AccessoryControlListsModalData"),S=new o("RestoreModalData"),E=new o("RemoveIndividualAccessoriesModalData"),p=new o("AccessoryInfoModalData"),R=new o("ConfigRestoreModalData"),w=new o("WidgetControlModalData"),N=new o("WidgetVisibilityModalData"),x=new o("RestartChildBridgesModalData"),C=new o("NodeVersionModalData"),P=new o("HbV2ModalData");export{A as a,D as b,a as c,e as d,n as e,_ as f,M as g,s as h,O as i,T as j,r as k,L as l,l as m,I as n,c as o,d as p,i as q,S as r,E as s,p as t,R as u,w as v,N as w,x,C as y,P as z};
@@ -0,0 +1,12 @@
1
+ import{a as b,b as k,c as z}from"./chunk-BMOLDRJ3.js";import{a as u}from"./chunk-ZLBX5GO7.js";import{F as m,R as l,X as a,aa as d,d as h}from"./chunk-UX5CFJ7O.js";import{g as c}from"./chunk-B4AJQJMI.js";var p=c(b(),1),w=c(k(),1),F=c(z(),1);var v=(()=>{class s{$ws=d(u);io;fitAddon;webLinksAddon;resize;elementResize;pluginName;searchFilter=null;logBuffer=[];maxBufferSize=1e3;destroy$=new h;term;startTerminal(e,r={},o,g){this.pluginName=g,this.elementResize=o,this.io=this.$ws.connectToNamespace("log"),this.fitAddon=new p.FitAddon,this.webLinksAddon=new w.WebLinksAddon,this.term=new F.Terminal(r),this.term.loadAddon(this.fitAddon),this.term.loadAddon(this.webLinksAddon),this.resize=new h,this.term.open(e.nativeElement),setTimeout(()=>{this.fitAddon.fit()}),this.io.connected.pipe(l(this.destroy$)).subscribe(()=>{this.term.reset(),this.logBuffer=[],this.io.socket.emit("tail-log",{cols:this.term.cols,rows:this.term.rows})}),this.io.socket.connected&&this.io.socket.emit("tail-log",{cols:this.term.cols,rows:this.term.rows}),this.io.socket.on("disconnect",()=>{this.term.write(`
2
+ \r
3
+ \rWebsocket failed to connect. Is the server running?
4
+ \r
5
+ \r`)}),this.resize.pipe(m(500),l(this.destroy$)).subscribe(t=>{this.io.socket.emit("resize",t)}),this.io.socket.on("stdout",t=>{if(this.pluginName){let f=t.split(`
6
+ \r`),i=!1;f.forEach(n=>{if(n){if(i)if(n.match(/36m\[.*?\]/))i=!1;else{this.term.write(`${n}
7
+ \r`);return}n.includes(`36m[${this.pluginName}]`)&&(this.term.write(`${n}
8
+ \r`),i=!0)}})}else this.logBuffer.push(t),this.logBuffer.length>this.maxBufferSize&&this.logBuffer.shift(),this.searchFilter?t.split(`
9
+ \r`).forEach(i=>{i&&this.lineMatchesFilter(i)&&this.term.write(`${i}
10
+ \r`)}):this.term.write(t)}),this.term.onResize(t=>{this.resize.next(t)}),this.elementResize&&this.elementResize.pipe(m(100),l(this.destroy$)).subscribe({next:()=>{this.fitAddon.fit()}})}setSearchFilter(e){this.searchFilter=e.toLowerCase(),this.redrawTerminalWithFilter()}clearSearchFilter(){this.searchFilter=null,this.redrawTerminalWithFilter()}getSearchFilter(){return this.searchFilter}scrollToBottom(){this.term&&setTimeout(()=>this.term.scrollToLine(this.term.buffer.active.length),10)}lineMatchesFilter(e){return this.searchFilter?e.replace(/\x1b\[[0-9;]*m/g,"").toLowerCase().includes(this.searchFilter):!0}redrawTerminalWithFilter(){this.term&&(this.term.clear(),this.logBuffer.forEach(e=>{this.searchFilter?e.split(`
11
+ \r`).forEach(o=>{o&&this.lineMatchesFilter(o)&&this.term.write(`${o}
12
+ \r`)}):this.term.write(e)}))}destroyTerminal(){this.destroy$.next(),this.destroy$.complete(),this.io&&this.io.socket&&(this.io.socket.removeAllListeners("stdout"),this.io.socket.removeAllListeners("disconnect")),this.io&&this.io.end(),this.term&&this.term.dispose(),this.resize&&this.resize.complete(),this.elementResize&&this.elementResize.complete(),this.destroy$=new h,this.logBuffer=[],this.searchFilter=null}static \u0275fac=function(r){return new(r||s)};static \u0275prov=a({token:s,factory:s.\u0275fac,providedIn:"root"})}return s})();export{v as a};
@@ -0,0 +1 @@
1
+ import{a as ie}from"./chunk-TUN7H57E.js";import{a as re}from"./chunk-DZSNO3SI.js";import{a as ne}from"./chunk-MOJIJ4KI.js";import{a as de}from"./chunk-QSXYRFV2.js";import{a as te}from"./chunk-D7DWUFHN.js";import{a as Z,b as ee}from"./chunk-TS4TGXTB.js";import{a as Y}from"./chunk-ZLBX5GO7.js";import{a as Q}from"./chunk-ZVVR6KI7.js";import{t as z}from"./chunk-DYMBIGE6.js";import{a as R,b as W,d as H,e as T,f as X,g as G}from"./chunk-6LMBPSI7.js";import{a as $}from"./chunk-GTDQP2AN.js";import{b as D}from"./chunk-AJ6G5D4H.js";import{b as B}from"./chunk-5KS2DH7B.js";import{C as A,D as J,H as I,o as q}from"./chunk-L56VCSQ2.js";import{Ab as S,Dc as d,Ec as l,Fb as g,Gb as i,Hb as a,Ib as p,Nc as K,Rb as M,Xb as u,Za as n,Zb as C,aa as c,ea as O,ga as b,ha as x,hb as j,ic as P,kc as _,lc as h,ma as U,mb as E,n as F,nb as V,sa as w,wc as f,yb as m,zb as y}from"./chunk-UX5CFJ7O.js";import{g as se,h as L}from"./chunk-B4AJQJMI.js";var ae=se(de(),1);var N=()=>["/"],pe=()=>({exact:!0}),ce=()=>["/plugins"],me=()=>["/accessories"],ue=()=>["/logs"],_e=()=>["/support"],ge=()=>["/platform-tools/terminal"],ve=()=>["/config"],he=()=>["/settings"],fe=()=>["/power-options"];function be(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",20),d(2,"translate"),d(3,"translate"),u("click",function(){b(e);let t=C();return x(t.openUnderVoltageModal())})("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(4,"div",12),p(5,"i",21),a(),i(6,"div",14),_(7),d(8,"translate"),a()()()}s&2&&(n(),m("aria-label",l(2,2,"rpi.throttled.undervoltage_title")+" - "+l(3,4,"rpi.throttled.undervoltage_description")),n(6),h(l(8,6,"rpi.throttled.undervoltage_title")))}function xe(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",15),d(2,"translate"),u("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",22),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),g("routerLink",f(8,ge))("routerLinkActive","active"),m("aria-label",l(2,4,"menu.linux.label_terminal")),n(5),h(l(7,6,"menu.linux.label_terminal")))}function Ce(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",15),d(2,"translate"),u("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",23),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),g("routerLink",f(8,ve))("routerLinkActive","active"),m("aria-label",l(2,4,"menu.config_json_editor")),n(5),h(l(7,6,"menu.config_json_editor")))}function we(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",15),d(2,"translate"),u("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",24),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),g("routerLink",f(8,he))("routerLinkActive","active"),m("aria-label",l(2,4,"menu.label_settings")),n(5),h(l(7,6,"menu.label_settings")))}function ye(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",15),d(2,"translate"),u("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",25),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),g("routerLink",f(8,fe))("routerLinkActive","active"),m("aria-label",l(2,4,"menu.restart.title")),n(5),h(l(7,6,"menu.restart.title")))}function Se(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",20),d(2,"translate"),u("click",function(){b(e);let t=C();return x(t.reloadPage())})("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",26),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),m("aria-label",l(2,2,"menu.reload")),n(5),h(l(7,4,"menu.reload")))}function Me(s,k){if(s&1){let e=M();i(0,"div",10)(1,"div",20),d(2,"translate"),u("click",function(){b(e);let t=C();return x(t.logout())})("keydown",function(t){b(e);let o=C();return x(o.handleKeydown(t))}),i(3,"div",12),p(4,"i",27),a(),i(5,"div",14),_(6),d(7,"translate"),a()()()}s&2&&(n(),m("aria-label",l(2,2,"menu.tooltip_logout")),n(5),h(l(7,4,"menu.tooltip_logout")))}var oe=(()=>{class s{destroyRef=c(U);injector=c(O);$auth=c(D);$authHelper=c(Q);$settings=c(B);$modal=c(z);$notification=c(ne);$renderer=c(j);$router=c(T);$translate=c(A);initialIsExpanded=K(!1);isExpanded=w(!1);formAuth=w(this.$settings.formAuth);isAdmin=this.$auth.user.admin;enableTerminalAccess=this.$settings.env.enableTerminalAccess;rPiCurrentlyUnderVoltage=w(!1);rPiWasUnderVoltage=w(!1);isMobile=w(!1);freezeMenu=w(!1);isPwa=ie();sidebarMouseEnterListener=()=>this.openSidebar();sidebarMouseLeaveListener=()=>this.closeSidebar();touchstartListener;clickListener;constructor(){this.isMobile.set(window.innerWidth<768);let e;window.addEventListener("resize",()=>{clearTimeout(e),e=setTimeout(()=>{this.updateListeners()},500)}),this.$router.events.pipe($()).subscribe(r=>L(this,null,function*(){if(r instanceof R&&this.$settings.formAuth&&r.url!=="/login"&&!(yield this.$authHelper.isAuthenticated())){window.sessionStorage.setItem("target_route",r.url),yield this.$router.navigate(["/login"]);return}r instanceof W&&queueMicrotask(()=>{this.closeSidebar(),this.freezeMenu.set(!0),setTimeout(()=>{this.freezeMenu.set(!1)},750)})}))}ngOnInit(){this.isExpanded.set(this.initialIsExpanded()),this.$notification.raspberryPiThrottled.pipe($(this.destroyRef)).subscribe(o=>{o["Under Voltage"]&&this.rPiCurrentlyUnderVoltage.set(!0),o["Under-voltage has occurred"]&&this.rPiWasUnderVoltage.set(!0)}),this.$notification.formAuthEnabled.pipe($(this.destroyRef)).subscribe(o=>{this.formAuth.set(o)});let e=document.querySelector(".sidebar"),r=document.querySelector(".m-header"),t=document.querySelector(".content");this.isMobile()?(this.touchstartListener=o=>{if(t.contains(o.target)&&this.isExpanded()){o.preventDefault(),this.toggleSidebar();return}!e.contains(o.target)&&!r.contains(o.target)&&this.isExpanded()&&(o.preventDefault(),this.closeSidebar())},document.addEventListener("touchstart",this.touchstartListener,{passive:!1})):(this.updateListeners(),r.addEventListener("mouseenter",this.sidebarMouseEnterListener,{passive:!1}),r.addEventListener("mouseleave",this.sidebarMouseLeaveListener,{passive:!1}),this.clickListener=o=>{e.contains(o.target)&&o.clientX>60&&this.closeSidebar()},document.addEventListener("click",this.clickListener,{passive:!1}))}toggleSidebar(){this.freezeMenu()||(this.isExpanded.set(!this.isExpanded()),this.updateContentStyles())}openUnderVoltageModal(){let e=E([{provide:ee,useValue:{title:this.$translate.instant("rpi.throttled.undervoltage_title"),message:this.$translate.instant(this.rPiCurrentlyUnderVoltage()?"rpi.throttled.currently_message":"rpi.throttled.previously_message"),ctaButtonLabel:this.$translate.instant("form.button_more_info"),faIconClass:"fas fa-bolt yellow-text",ctaButtonLink:"https://pimylifeup.com/raspberry-pi-low-voltage-warning"}}],this.injector);this.$modal.open(re,{size:"lg",backdrop:"static",injector:e})}handleKeydown(e){if(e.key==="Enter"){let r=e.target;["menuitem","button"].includes(r.getAttribute("role"))&&r.click()}}reloadPage(){window.location.reload()}ngOnDestroy(){this.touchstartListener&&document.removeEventListener("touchstart",this.touchstartListener),this.clickListener&&document.removeEventListener("click",this.clickListener);let e=document.querySelector(".sidebar"),r=document.querySelector(".m-header");e&&(e.removeEventListener("mouseenter",this.sidebarMouseEnterListener),e.removeEventListener("mouseleave",this.sidebarMouseLeaveListener)),r&&(r.removeEventListener("mouseenter",this.sidebarMouseEnterListener),r.removeEventListener("mouseleave",this.sidebarMouseLeaveListener))}logout(){this.$auth.logout()}openSidebar(){this.freezeMenu()||(this.isExpanded.set(!0),this.updateContentStyles())}closeSidebar(){this.freezeMenu()||(this.isExpanded.set(!1),this.updateContentStyles())}updateContentStyles(){let e=document.querySelector(".content");this.isExpanded()?(this.$renderer.setStyle(e,"opacity","20%"),this.$renderer.setStyle(e,"pointer-events","none"),this.$renderer.setStyle(e,"overflow","hidden")):(this.$renderer.removeStyle(e,"opacity"),this.$renderer.removeStyle(e,"pointer-events"),this.$renderer.removeStyle(e,"overflow"))}updateListeners(){this.isMobile.set(window.innerWidth<768);let e=document.querySelector(".sidebar");e.removeEventListener("mouseenter",this.sidebarMouseEnterListener),e.removeEventListener("mouseleave",this.sidebarMouseLeaveListener),(this.isMobile()||!this.isMobile()&&this.$settings.menuMode!=="freeze")&&(e.addEventListener("mouseenter",this.sidebarMouseEnterListener,{passive:!1}),e.addEventListener("mouseleave",this.sidebarMouseLeaveListener,{passive:!1}))}static \u0275fac=function(r){return new(r||s)};static \u0275cmp=V({type:s,selectors:[["app-sidebar"]],inputs:{initialIsExpanded:[1,"initialIsExpanded"]},decls:68,vars:73,consts:[["tabindex","0","role","button",1,"m-header","text-end",3,"click","keydown"],[1,"me-2","d-block","d-lg-none",2,"font-size","0.9rem","color","#dddddd"],[3,"routerLink"],["ngSrc","assets/homebridge-logo.svg","alt","HB Logo","height","35","width","35",2,"height","35px","width","35px"],[1,"hb-logo-text-mobile"],[1,"hamburger-icon"],["role","navigation","id","sidebar",1,"sidebar"],["tabindex","0","role","button",1,"header",3,"click","keydown"],[1,"hb-logo-text"],[1,"link-wrapper"],[1,"link"],["role","menuitem","tabindex","0",1,"link-row",3,"keydown","routerLink","routerLinkActive","routerLinkActiveOptions"],[1,"icon"],[1,"fa","fa-house"],[1,"title"],["role","menuitem","tabindex","0",1,"link-row",3,"keydown","routerLink","routerLinkActive"],[1,"fa","fa-plug"],[1,"fa","fa-lightbulb"],[1,"fa","fa-wave-square"],[1,"fa","fa-question-circle-o"],["role","menuitem","tabindex","0",1,"link-row",3,"click","keydown"],[1,"fas","fa-bolt","fa-beat","yellow-text",2,"--fa-beat-scale","1.5"],[1,"fa","fa-terminal"],[1,"fa","fa-code"],[1,"fa","fa-cog"],[1,"fa","fa-power-off"],[1,"fa","fa-refresh"],[1,"fa","fa-right-from-bracket"]],template:function(r,t){r&1&&(i(0,"div",0),d(1,"translate"),u("click",function(){return t.toggleSidebar()})("keydown",function(v){return t.handleKeydown(v)}),p(2,"span",1),i(3,"a",2),d(4,"translate"),p(5,"img",3),i(6,"div",4),_(7,"Homebridge"),a()(),i(8,"div",5),p(9,"span")(10,"span")(11,"span")(12,"span"),a()(),i(13,"div",6)(14,"div",7),u("click",function(){return t.toggleSidebar()})("keydown",function(v){return t.handleKeydown(v)}),i(15,"a",2),d(16,"translate"),p(17,"img",3),i(18,"div",8),_(19,"Homebridge"),a()()(),i(20,"div",9)(21,"div",10)(22,"div",11),d(23,"translate"),u("keydown",function(v){return t.handleKeydown(v)}),i(24,"div",12),p(25,"i",13),a(),i(26,"div",14),_(27),d(28,"translate"),a()()(),y(29,be,9,8,"div",10),i(30,"div",10)(31,"div",15),d(32,"translate"),u("keydown",function(v){return t.handleKeydown(v)}),i(33,"div",12),p(34,"i",16),a(),i(35,"div",14),_(36),d(37,"translate"),a()()(),i(38,"div",10)(39,"div",15),d(40,"translate"),u("keydown",function(v){return t.handleKeydown(v)}),i(41,"div",12),p(42,"i",17),a(),i(43,"div",14),_(44),d(45,"translate"),a()()(),i(46,"div",10)(47,"div",15),d(48,"translate"),u("keydown",function(v){return t.handleKeydown(v)}),i(49,"div",12),p(50,"i",18),a(),i(51,"div",14),_(52),d(53,"translate"),a()()(),y(54,xe,8,9,"div",10),y(55,Ce,8,9,"div",10),y(56,we,8,9,"div",10),i(57,"div",10)(58,"div",15),d(59,"translate"),u("keydown",function(v){return t.handleKeydown(v)}),i(60,"div",12),p(61,"i",19),a(),i(62,"div",14),_(63),d(64,"translate"),a()()(),y(65,ye,8,9,"div",10),y(66,Se,8,6,"div",10),y(67,Me,8,6,"div",10),a()()),r&2&&(m("aria-expanded",t.isExpanded()?"true":"false")("aria-controls","sidebar")("aria-label",l(1,39,"menu.sidebar.aria_menu")),n(3),g("routerLink",f(65,N)),m("aria-label",l(4,41,"menu.label_status")),n(5),P("hamburger-icon-cross",t.isExpanded()),n(5),P("expanded",t.isExpanded()),n(2),g("routerLink",f(66,N)),m("aria-label",l(16,43,"menu.label_status")),n(7),g("routerLink",f(67,N))("routerLinkActive","active")("routerLinkActiveOptions",f(68,pe)),m("aria-label",l(23,45,"menu.label_status")),n(5),h(l(28,47,"menu.label_status")),n(2),S(t.rPiWasUnderVoltage()||t.rPiCurrentlyUnderVoltage()?29:-1),n(2),g("routerLink",f(69,ce))("routerLinkActive","active"),m("aria-label",l(32,49,"menu.label_plugins")),n(5),h(l(37,51,"menu.label_plugins")),n(3),g("routerLink",f(70,me))("routerLinkActive","active"),m("aria-label",l(40,53,"menu.label_accessories")),n(5),h(l(45,55,"menu.label_accessories")),n(3),g("routerLink",f(71,ue))("routerLinkActive","active"),m("aria-label",l(48,57,"menu.linux.label_logs")),n(5),h(l(53,59,"menu.linux.label_logs")),n(2),S(t.enableTerminalAccess&&t.isAdmin?54:-1),n(),S(t.isAdmin?55:-1),n(),S(t.isAdmin?56:-1),n(2),g("routerLink",f(72,_e))("routerLinkActive","active"),m("aria-label",l(59,61,"support.title")),n(5),h(l(64,63,"support.title")),n(2),S(t.isAdmin?65:-1),n(),S(t.isPwa?66:-1),n(),S(t.formAuth()?67:-1))},dependencies:[X,q,G,J],styles:[".m-header[_ngcontent-%COMP%]{position:fixed;top:0;left:0;width:100%;height:65px;z-index:510;display:flex;align-items:center;padding-left:3px;padding-right:3px}.m-header[_ngcontent-%COMP%]:hover{cursor:pointer}@media(min-width:768px){.m-header[_ngcontent-%COMP%]{display:none}}.sidebar[_ngcontent-%COMP%]{position:fixed;left:0;top:0;height:100vh;transition:.3s;width:60px;z-index:500}.sidebar[_ngcontent-%COMP%] .header[_ngcontent-%COMP%]{display:flex;flex-direction:column;justify-content:center;padding:15px 10px 15px 11px;font-size:.85rem}.sidebar[_ngcontent-%COMP%] .header[_ngcontent-%COMP%]:hover{cursor:pointer}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%]{overflow-x:hidden;overflow-y:auto;max-height:calc(100vh - 80px)!important;scrollbar-width:thin}@media(max-width:767px){.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%]{padding-bottom:60px}}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%]{display:flex;align-items:center;padding:15px 10px;cursor:pointer;transition:.2s;font-size:17px}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{flex:0 0 38px;display:flex;align-items:center;justify-content:center}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{flex:1;transition:.3s;max-width:0;overflow:hidden;white-space:nowrap}@media(max-width:767px){.sidebar[_ngcontent-%COMP%]{width:0}.sidebar[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%]{display:none}}.sidebar.expanded[_ngcontent-%COMP%]{width:210px}@media(max-width:767px){.sidebar.expanded[_ngcontent-%COMP%]{width:210px}.sidebar.expanded[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%]{display:block}}.sidebar.expanded[_ngcontent-%COMP%] .link-wrapper[_ngcontent-%COMP%] .link[_ngcontent-%COMP%] .link-row[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{max-width:150px;padding-left:10px}.hamburger-icon[_ngcontent-%COMP%]{margin:-7px 0 0 25px}@media(min-width:768px){.hb-logo-text[_ngcontent-%COMP%]{color:#fff;position:absolute;top:17px;font-size:22px;padding-left:3px}.sidebar.expanded[_ngcontent-%COMP%] .hb-logo-text[_ngcontent-%COMP%]{opacity:1;left:55px;transition:.3s}.sidebar[_ngcontent-%COMP%]:not(.expanded) .hb-logo-text[_ngcontent-%COMP%]{opacity:0;left:40px;transition:.3s}.hb-logo-text-mobile[_ngcontent-%COMP%], .hamburger-icon[_ngcontent-%COMP%]{display:none!important}}@media(max-width:767px){.hb-logo-text[_ngcontent-%COMP%]{display:none!important}.hb-logo-text-mobile[_ngcontent-%COMP%]{color:#fff;position:absolute;top:17px;font-size:22px;padding-left:3px;opacity:1;left:55px}.hamburger-icon[_ngcontent-%COMP%]{position:absolute;right:10px;top:28px;width:30px;transform:rotate(0);transition:.5s ease-in-out;cursor:pointer}.hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{display:block;position:absolute;height:2px;width:100%;background-color:#fff;border-radius:9px;opacity:1;left:0;transform:rotate(0);transition:.25s ease-in-out}.hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(1){top:0}.hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(2), .hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(3){top:10px}.hamburger-icon[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(4){top:20px}.hamburger-icon-cross[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(1){top:10px;width:0;left:50%}.hamburger-icon-cross[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(2){transform:rotate(45deg)}.hamburger-icon-cross[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(3){transform:rotate(-45deg)}.hamburger-icon-cross[_ngcontent-%COMP%] span[_ngcontent-%COMP%]:nth-child(4){top:10px;width:0;left:50%}}"]})}return s})();var tt=(()=>{class s{injector=c(O);$auth=c(D);$modal=c(z);$router=c(T);$settings=c(B);$translate=c(A);$ws=c(Y);io;sidebarExpanded=w(!1);ngOnInit(){this.io=this.$ws.connectToNamespace("app"),this.io.socket.on("reconnect",()=>{this.$auth.checkToken()}),this.compareServerUiVersion()}compareServerUiVersion(){return L(this,null,function*(){if(this.$settings.settingsLoaded||(yield F(this.$settings.onSettingsLoaded)),!this.$router.url.endsWith("/restart")&&(0,ae.lt)(this.$settings.uiVersion,I.serverTarget)){console.log(`Server restart required. UI Version: ${I.serverTarget} - Server Version: ${this.$settings.uiVersion} `);let e=E([{provide:Z,useValue:{title:this.$translate.instant("platform.version.service_restart_required"),message:this.$translate.instant("platform.version.restart_required",{serverVersion:this.$settings.uiVersion,uiVersion:I.serverTarget}),confirmButtonLabel:this.$translate.instant("menu.tooltip_restart"),faIconClass:"fas fa-power-off orange-text"}}],this.injector),r=this.$modal.open(te,{size:"lg",backdrop:"static",injector:e});try{yield r.result,this.$router.navigate(["/restart"])}catch{}}})}static \u0275fac=function(r){return new(r||s)};static \u0275cmp=V({type:s,selectors:[["app-layout"]],decls:3,vars:3,consts:[[3,"initialIsExpanded"],[1,"content","px-3","p-md-4"]],template:function(r,t){r&1&&(p(0,"app-sidebar",0),i(1,"div",1),p(2,"router-outlet"),a()),r&2&&(g("initialIsExpanded",t.sidebarExpanded()),n(),P("sidebarExpanded",t.sidebarExpanded()))},dependencies:[oe,H],styles:[".content[_ngcontent-%COMP%]{margin-left:60px;transition:.3s;height:100%}@media(max-width:767px){.content[_ngcontent-%COMP%]{margin-left:0;padding-top:85px!important}}@media(min-width:768px){.content[_ngcontent-%COMP%]{height:100%}}a[_ngcontent-%COMP%]:hover{text-decoration:none!important}"]})}return s})();export{tt as LayoutComponent};
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-NE5TKDBZ.js";import"./chunk-B4AJQJMI.js";export default a();