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

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-2YYAI64O.js +1 -0
  129. package/public/{chunk-VMXGERJT.js → chunk-2ZEIWH4C.js} +8 -8
  130. package/public/chunk-42YSCDZK.js +1 -0
  131. package/public/{chunk-QE7DO6J3.js → chunk-474BOAR2.js} +2 -2
  132. package/public/chunk-4BZV7AMQ.js +32 -0
  133. package/public/{chunk-WNWWUCCZ.js → chunk-5KLZWFYX.js} +1 -1
  134. package/public/chunk-5NTU76Y2.js +1 -0
  135. package/public/chunk-5OIS4J4X.js +1 -0
  136. package/public/chunk-5YBMCQ2E.js +1 -0
  137. package/public/chunk-64RTOH3L.js +1 -0
  138. package/public/chunk-675OFXLW.js +1 -0
  139. package/public/chunk-6TO5IBYB.js +5 -0
  140. package/public/chunk-6UQS6IP4.js +1 -0
  141. package/public/{chunk-BKUGARB4.js → chunk-7BCHGXO4.js} +1 -1
  142. package/public/chunk-A5D6DOHK.js +1 -0
  143. package/public/chunk-BMWLHPL2.js +1 -0
  144. package/public/chunk-BO2RTACA.js +1 -0
  145. package/public/chunk-BVC2RBSG.js +1 -0
  146. package/public/{chunk-CCUID66K.js → chunk-C2XBPNOQ.js} +1 -1
  147. package/public/chunk-C4PJKEWA.js +1 -0
  148. package/public/chunk-CHP2ZI3F.js +1 -0
  149. package/public/chunk-CKNHTRCL.js +7 -0
  150. package/public/chunk-CLERVK2C.js +1 -0
  151. package/public/chunk-CZY5YUJJ.js +1 -0
  152. package/public/chunk-DTH6YVQ5.js +1 -0
  153. package/public/chunk-DUM3YHTS.js +1 -0
  154. package/public/chunk-DWDK5EDZ.js +1 -0
  155. package/public/chunk-EEDUUZ6J.js +1 -0
  156. package/public/chunk-ERXUVZM6.js +1 -0
  157. package/public/chunk-FRSJ6MDR.js +1 -0
  158. package/public/{chunk-7L7RZCFC.js → chunk-GR4KMWT2.js} +1 -1
  159. package/public/chunk-GUAOICDU.js +1 -0
  160. package/public/chunk-H3YQBGGB.js +1 -0
  161. package/public/{chunk-UG5DK2RQ.js → chunk-HA6CO5NZ.js} +2 -2
  162. package/public/chunk-HJKPT3MJ.js +6 -0
  163. package/public/chunk-I37YRYWO.js +1 -0
  164. package/public/chunk-I5HC6YE6.js +1 -0
  165. package/public/{chunk-JZZQRLNW.js → chunk-JF5AT3NK.js} +1 -1
  166. package/public/chunk-KROLJP5T.js +1 -0
  167. package/public/chunk-KUS3JO5E.js +1 -0
  168. package/public/chunk-LEFLOPGL.js +1 -0
  169. package/public/chunk-LHGXPARJ.js +1 -0
  170. package/public/chunk-M66MJDOB.js +1 -0
  171. package/public/chunk-MLFCC76B.js +1 -0
  172. package/public/chunk-N4F42HDL.js +5 -0
  173. package/public/{chunk-NW6AFAD7.js → chunk-NFG4Y4PX.js} +1 -1
  174. package/public/{chunk-7EUQWCP5.js → chunk-NSCP3SOQ.js} +1 -1
  175. package/public/chunk-OWP42U3Q.js +1 -0
  176. package/public/chunk-QUXECVRB.js +1 -0
  177. package/public/{chunk-IW3EPSTZ.js → chunk-R5IIVXMM.js} +4 -4
  178. package/public/chunk-RGF5UNTQ.js +1 -0
  179. package/public/chunk-RLM4Q3NA.js +1 -0
  180. package/public/chunk-RZIIH6OH.js +1 -0
  181. package/public/chunk-S75PX3CD.js +1 -0
  182. package/public/chunk-S7RJS4DA.js +1 -0
  183. package/public/chunk-SFOCFUZK.js +1 -0
  184. package/public/chunk-SFW3EWWB.js +1 -0
  185. package/public/chunk-T3B7RH4F.js +1 -0
  186. package/public/{chunk-NZNNTHFQ.js → chunk-T3GI7KUT.js} +1 -1
  187. package/public/chunk-TNPEEFW3.js +1 -0
  188. package/public/chunk-TWVNA46I.js +1 -0
  189. package/public/chunk-U7T2AD2X.js +1 -0
  190. package/public/chunk-UA6R3XIL.js +1 -0
  191. package/public/chunk-UNUYCODO.js +1 -0
  192. package/public/chunk-UOL2NKOO.js +1 -0
  193. package/public/{chunk-BFDVOBTQ.js → chunk-V34IYB4T.js} +1 -1
  194. package/public/{chunk-VOBHY2IH.js → chunk-VH5DDEVH.js} +2 -2
  195. package/public/chunk-VRLRDDC6.js +20 -0
  196. package/public/chunk-VUP4TCYX.js +1 -0
  197. package/public/{chunk-6PHMBMFU.js → chunk-W3AL3YCO.js} +1 -1
  198. package/public/chunk-WC4JHC6X.js +1 -0
  199. package/public/chunk-WEJDJXGV.js +1 -0
  200. package/public/chunk-WJ3IINUA.js +1 -0
  201. package/public/{chunk-ASX35H47.js → chunk-WJVQNA7H.js} +1 -1
  202. package/public/chunk-X5YRTZFZ.js +1 -0
  203. package/public/chunk-XAM6ZNPS.js +1 -0
  204. package/public/{chunk-WHJOLAED.js → chunk-XFK2EZ3K.js} +1 -1
  205. package/public/{chunk-EA5J2VEJ.js → chunk-XP7D2PRA.js} +1 -1
  206. package/public/{chunk-WHJSVGC7.js → chunk-XQNHUDX7.js} +1 -1
  207. package/public/{chunk-QHPDGSZ6.js → chunk-YLEC7AUG.js} +1 -1
  208. package/public/chunk-YPAFR2PB.js +1 -0
  209. package/public/index.html +2 -2
  210. package/public/main-GTJ3X2LZ.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
@@ -1 +0,0 @@
1
- import{a as h}from"./chunk-LDPCT3YF.js";import{b}from"./chunk-3IX3CLER.js";import{Bc as y,Cc as T,Gb as c,Wb as r,Xb as o,Yb as p,cc as u,gb as l,ib as s,kc as f,lc as v,n as m,na as a,nc as g,oc as w,rb as d}from"./chunk-TXOB7R5K.js";var C=["terminaloutput"],k=(()=>{class t{$terminal=a(h);termTarget=c("terminaloutput");resizeEvent=new m;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=d({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&&u("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),p(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};
@@ -1 +0,0 @@
1
- import{b as X,j as it}from"./chunk-CW7Q7WEJ.js";import{l as tt}from"./chunk-UG5DK2RQ.js";import{a as et}from"./chunk-3IX3CLER.js";import{U as K,e as ut,g as ct,h as P,ha as R,n as Q,na as Y,w as G}from"./chunk-TXOB7R5K.js";var nt=ut((N,J)=>{(function(p,b){typeof N=="object"&&typeof J<"u"?J.exports=b():typeof define=="function"&&define.amd?define(b):(p=typeof globalThis<"u"?globalThis:p||self).dayjs=b()})(N,function(){"use strict";var p=1e3,b=6e4,o=36e5,f="millisecond",v="second",L="minute",O="hour",y="day",W="week",M="month",q="quarter",S="year",_="date",z="Invalid Date",rt=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,st=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,at={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(r){var i=["th","st","nd","rd"],t=r%100;return"["+r+(i[(t-20)%10]||i[t]||i[0])+"]"}},F=function(r,i,t){var n=String(r);return!n||n.length>=i?r:""+Array(i+1-n.length).join(t)+r},ot={s:F,z:function(r){var i=-r.utcOffset(),t=Math.abs(i),n=Math.floor(t/60),e=t%60;return(i<=0?"+":"-")+F(n,2,"0")+":"+F(e,2,"0")},m:function r(i,t){if(i.date()<t.date())return-r(t,i);var n=12*(t.year()-i.year())+(t.month()-i.month()),e=i.clone().add(n,M),s=t-e<0,a=i.clone().add(n+(s?-1:1),M);return+(-(n+(t-e)/(s?e-a:a-e))||0)},a:function(r){return r<0?Math.ceil(r)||0:Math.floor(r)},p:function(r){return{M,y:S,w:W,d:y,D:_,h:O,m:L,s:v,ms:f,Q:q}[r]||String(r||"").toLowerCase().replace(/s$/,"")},u:function(r){return r===void 0}},x="en",D={};D[x]=at;var B="$isDayjsObject",U=function(r){return r instanceof V||!(!r||!r[B])},I=function r(i,t,n){var e;if(!i)return x;if(typeof i=="string"){var s=i.toLowerCase();D[s]&&(e=s),t&&(D[s]=t,e=s);var a=i.split("-");if(!e&&a.length>1)return r(a[0])}else{var c=i.name;D[c]=i,e=c}return!n&&e&&(x=e),e||!n&&x},d=function(r,i){if(U(r))return r.clone();var t=typeof i=="object"?i:{};return t.date=r,t.args=arguments,new V(t)},u=ot;u.l=I,u.i=U,u.w=function(r,i){return d(r,{locale:i.$L,utc:i.$u,x:i.$x,$offset:i.$offset})};var V=function(){function r(t){this.$L=I(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[B]=!0}var i=r.prototype;return i.parse=function(t){this.$d=function(n){var e=n.date,s=n.utc;if(e===null)return new Date(NaN);if(u.u(e))return new Date;if(e instanceof Date)return new Date(e);if(typeof e=="string"&&!/Z$/i.test(e)){var a=e.match(rt);if(a){var c=a[2]-1||0,h=(a[7]||"0").substring(0,3);return s?new Date(Date.UTC(a[1],c,a[3]||1,a[4]||0,a[5]||0,a[6]||0,h)):new Date(a[1],c,a[3]||1,a[4]||0,a[5]||0,a[6]||0,h)}}return new Date(e)}(t),this.init()},i.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},i.$utils=function(){return u},i.isValid=function(){return this.$d.toString()!==z},i.isSame=function(t,n){var e=d(t);return this.startOf(n)<=e&&e<=this.endOf(n)},i.isAfter=function(t,n){return d(t)<this.startOf(n)},i.isBefore=function(t,n){return this.endOf(n)<d(t)},i.$g=function(t,n,e){return u.u(t)?this[n]:this.set(e,t)},i.unix=function(){return Math.floor(this.valueOf()/1e3)},i.valueOf=function(){return this.$d.getTime()},i.startOf=function(t,n){var e=this,s=!!u.u(n)||n,a=u.p(t),c=function(k,m){var w=u.w(e.$u?Date.UTC(e.$y,m,k):new Date(e.$y,m,k),e);return s?w:w.endOf(y)},h=function(k,m){return u.w(e.toDate()[k].apply(e.toDate("s"),(s?[0,0,0,0]:[23,59,59,999]).slice(m)),e)},l=this.$W,g=this.$M,$=this.$D,j="set"+(this.$u?"UTC":"");switch(a){case S:return s?c(1,0):c(31,11);case M:return s?c(1,g):c(0,g+1);case W:var T=this.$locale().weekStart||0,A=(l<T?l+7:l)-T;return c(s?$-A:$+(6-A),g);case y:case _:return h(j+"Hours",0);case O:return h(j+"Minutes",1);case L:return h(j+"Seconds",2);case v:return h(j+"Milliseconds",3);default:return this.clone()}},i.endOf=function(t){return this.startOf(t,!1)},i.$set=function(t,n){var e,s=u.p(t),a="set"+(this.$u?"UTC":""),c=(e={},e[y]=a+"Date",e[_]=a+"Date",e[M]=a+"Month",e[S]=a+"FullYear",e[O]=a+"Hours",e[L]=a+"Minutes",e[v]=a+"Seconds",e[f]=a+"Milliseconds",e)[s],h=s===y?this.$D+(n-this.$W):n;if(s===M||s===S){var l=this.clone().set(_,1);l.$d[c](h),l.init(),this.$d=l.set(_,Math.min(this.$D,l.daysInMonth())).$d}else c&&this.$d[c](h);return this.init(),this},i.set=function(t,n){return this.clone().$set(t,n)},i.get=function(t){return this[u.p(t)]()},i.add=function(t,n){var e,s=this;t=Number(t);var a=u.p(n),c=function(g){var $=d(s);return u.w($.date($.date()+Math.round(g*t)),s)};if(a===M)return this.set(M,this.$M+t);if(a===S)return this.set(S,this.$y+t);if(a===y)return c(1);if(a===W)return c(7);var h=(e={},e[L]=b,e[O]=o,e[v]=p,e)[a]||1,l=this.$d.getTime()+t*h;return u.w(l,this)},i.subtract=function(t,n){return this.add(-1*t,n)},i.format=function(t){var n=this,e=this.$locale();if(!this.isValid())return e.invalidDate||z;var s=t||"YYYY-MM-DDTHH:mm:ssZ",a=u.z(this),c=this.$H,h=this.$m,l=this.$M,g=e.weekdays,$=e.months,j=e.meridiem,T=function(m,w,H,C){return m&&(m[w]||m(n,s))||H[w].slice(0,C)},A=function(m){return u.s(c%12||12,m,"0")},k=j||function(m,w,H){var C=m<12?"AM":"PM";return H?C.toLowerCase():C};return s.replace(st,function(m,w){return w||function(H){switch(H){case"YY":return String(n.$y).slice(-2);case"YYYY":return u.s(n.$y,4,"0");case"M":return l+1;case"MM":return u.s(l+1,2,"0");case"MMM":return T(e.monthsShort,l,$,3);case"MMMM":return T($,l);case"D":return n.$D;case"DD":return u.s(n.$D,2,"0");case"d":return String(n.$W);case"dd":return T(e.weekdaysMin,n.$W,g,2);case"ddd":return T(e.weekdaysShort,n.$W,g,3);case"dddd":return g[n.$W];case"H":return String(c);case"HH":return u.s(c,2,"0");case"h":return A(1);case"hh":return A(2);case"a":return k(c,h,!0);case"A":return k(c,h,!1);case"m":return String(h);case"mm":return u.s(h,2,"0");case"s":return String(n.$s);case"ss":return u.s(n.$s,2,"0");case"SSS":return u.s(n.$ms,3,"0");case"Z":return a}return null}(m)||a.replace(":","")})},i.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},i.diff=function(t,n,e){var s,a=this,c=u.p(n),h=d(t),l=(h.utcOffset()-this.utcOffset())*b,g=this-h,$=function(){return u.m(a,h)};switch(c){case S:s=$()/12;break;case M:s=$();break;case q:s=$()/3;break;case W:s=(g-l)/6048e5;break;case y:s=(g-l)/864e5;break;case O:s=g/o;break;case L:s=g/b;break;case v:s=g/p;break;default:s=g}return e?s:u.a(s)},i.daysInMonth=function(){return this.endOf(M).$D},i.$locale=function(){return D[this.$L]},i.locale=function(t,n){if(!t)return this.$L;var e=this.clone(),s=I(t,n,!0);return s&&(e.$L=s),e},i.clone=function(){return u.w(this.$d,this)},i.toDate=function(){return new Date(this.valueOf())},i.toJSON=function(){return this.isValid()?this.toISOString():null},i.toISOString=function(){return this.$d.toISOString()},i.toString=function(){return this.$d.toUTCString()},r}(),E=V.prototype;return d.prototype=E,[["$ms",f],["$s",v],["$m",L],["$H",O],["$W",y],["$M",M],["$y",S],["$D",_]].forEach(function(r){E[r[1]]=function(i){return this.$g(i,r[0],r[1])}}),d.extend=function(r,i){return r.$i||(r(i,V,d),r.$i=!0),d},d.locale=I,d.isDayjs=U,d.unix=function(r){return d(1e3*r)},d.en=D[x],d.Ls=D,d.p={},d})});var Z=ct(nt(),1);var vt=(()=>{class p{$api=Y(X);$title=Y(tt);$toastr=Y(it);$translate=Y(et);env={};formAuth=!0;uiVersion;theme;lightingMode;currentLightingMode;actualLightingMode;browserLightingMode;loginWallpaper;serverTimeOffset=0;themeList=["orange","red","pink","purple","deep-purple","indigo","blue","blue-grey","cyan","green","teal","grey","brown"];rtl=!1;settingsLoadedSubject=new Q;onSettingsLoaded=this.settingsLoadedSubject.pipe(K());settingsLoaded=!1;constructor(){this.getAppSettings()}getAppSettings(){return P(this,null,function*(){let o=yield G(this.$api.get("/auth/settings"));this.formAuth=o.formAuth,this.env=o.env,this.lightingMode=o.lightingMode,this.loginWallpaper=o.loginWallpaper,this.setLightingMode(this.lightingMode,"user"),this.setTheme(o.theme),this.setTitle(this.env.homebridgeInstanceName),this.checkServerTime(o.serverTimestamp),this.setUiVersion(o.env.packageVersion),this.setLang(this.env.lang),this.settingsLoaded=!0,this.settingsLoadedSubject.next(void 0)})}setBrowserLightingMode(o){this.browserLightingMode=o,this.lightingMode==="auto"&&this.setLightingMode(o,"browser")}setLightingMode(o,f){f==="user"&&(this.lightingMode=o),this.currentLightingMode=o,this.actualLightingMode=this.currentLightingMode==="auto"?this.browserLightingMode:this.currentLightingMode,this.theme&&this.setTheme(this.theme)}setTheme(o){(!o||!this.themeList.includes(o))&&(o="orange");let f=window.document.querySelector("body");f.classList.remove(`config-ui-x-${this.theme}`),f.classList.remove(`config-ui-x-dark-mode-${this.theme}`),this.theme=o,this.actualLightingMode==="dark"?(f.classList.add(`config-ui-x-dark-mode-${this.theme}`),f.classList.contains("dark-mode")||f.classList.add("dark-mode")):(f.classList.add(`config-ui-x-${this.theme}`),f.classList.contains("dark-mode")&&f.classList.remove("dark-mode"))}setTitle(o){this.$title.setTitle(o||"Homebridge")}setUiVersion(o){this.uiVersion||(this.uiVersion=o)}setLang(o){o?this.$translate.use(o):o="auto",this.env.lang=o}setEnvItem(o,f){this.env[o]=f}checkServerTime(o){let v=(0,Z.default)(o).diff((0,Z.default)(),"hour");this.serverTimeOffset=v*60*60,(v>=8||v<=-8)&&this.$toastr.warning(this.$translate.instant("settings.datetime.incorrect"),this.$translate.instant("toast.title_warning"),{timeOut:2e4,tapToDismiss:!1}).onTap.subscribe(()=>{window.open("https://homebridge.io/w/JqTFs","_blank")})}static \u0275fac=function(f){return new(f||p)};static \u0275prov=R({token:p,factory:p.\u0275fac,providedIn:"root"})}return p})();export{nt as a,vt as b};
@@ -1 +0,0 @@
1
- import{a as se}from"./chunk-QE7DO6J3.js";import{g as re,m as A,n as ae}from"./chunk-ORPWYWCL.js";import{b as P,c as T,d as C,e as D,f as z,g as F,j as x,m as R,o as Q,p as L,q as O,w as ne,y as I,z as M}from"./chunk-QHPDGSZ6.js";import{b as ie}from"./chunk-NZNNTHFQ.js";import{c as j}from"./chunk-BFDVOBTQ.js";import{a as ve}from"./chunk-SVFFEV36.js";import{b as S,j as U}from"./chunk-CW7Q7WEJ.js";import{a as $,b as E}from"./chunk-3IX3CLER.js";import{$b as G,Bc as s,Cc as o,Dc as te,Gb as K,Kb as B,Lb as f,Mb as u,Rb as g,Tb as W,Ub as X,Vb as Y,Wb as i,Xb as l,Yb as m,ad as q,cc as _,dc as h,g as be,ib as e,kc as Z,lc as ee,na as d,nc as p,oc as v,pc as c,rb as y,xa as N,xc as w,ya as V}from"./chunk-TXOB7R5K.js";function Ce(r,k){r&1&&(i(0,"p",8)(1,"small"),p(2),s(3,"translate"),l()()),r&2&&(e(2),v(o(3,1,"login.invalid_credentials")))}var oe=(()=>{class r{$activeModal=d(A);$api=d(S);$toastr=d(U);$translate=d($);formGroup=new F({password:new x("",[C.required])});invalidCredentials=!1;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(a){return new(a||r)};static \u0275cmp=y({type:r,selectors:[["ng-component"]],decls:28,vars:24,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,"form-group"],["type","password","autocomplete","current-password",1,"form-control",3,"formControl","placeholder"],[1,"red-text"],[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"]],template:function(a,n){a&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),p(3),s(4,"translate"),l(),i(5,"button",3),s(6,"translate"),_("click",function(){return n.$activeModal.dismiss("Dismiss")}),i(7,"span",4),p(8,"\xD7"),l()()(),i(9,"div",5)(10,"p"),p(11),s(12,"translate"),l(),i(13,"div",6),m(14,"input",7),s(15,"translate"),l(),B(16,Ce,4,3,"p",8),l(),i(17,"div",9)(18,"div",10)(19,"button",11),s(20,"translate"),_("click",function(){return n.$activeModal.dismiss("Dismiss")}),p(21),s(22,"translate"),l()(),m(23,"div",12),i(24,"div",13)(25,"button",14),_("click",function(){return n.disable2fa()}),p(26),s(27,"translate"),l()()()()),a&2&&(e(3),v(o(4,10,"users.setup_2fa_disable")),e(2),f("aria-label",o(6,12,"form.button_close")),e(6),v(o(12,14,"users.setup_2fa_disable_current_password")),e(3),u("formControl",n.formGroup.controls.password)("placeholder",o(15,16,"users.label_password")),e(2),g(n.invalidCredentials?16:-1),e(3),f("aria-label",o(20,18,"form.button_close")),e(2),c(" ",o(22,20,"form.button_close")," "),e(4),u("disabled",n.formGroup.invalid),e(),c(" ",o(27,22,"form.button_disable")," "))},dependencies:[I,T,D,M,Q,E],encapsulation:2})}return r})();var le=be(ve(),1);var xe=["qrcode"],he=r=>({timeDiffError:r});function we(r,k){if(r&1&&(i(0,"div",6)(1,"h3"),p(2),s(3,"translate"),l(),i(4,"p"),p(5),s(6,"translate"),l()()),r&2){let t=h();e(2),v(o(3,2,"users.setup_2fa_cannot_setup_2fa")),e(3),v(te(6,4,"users.setup_2fa_server_time_out",w(7,he,t.timeDiffError)))}}function ge(r,k){r&1&&(i(0,"div")(1,"p"),p(2),s(3,"translate"),l()()),r&2&&(e(2),v(o(3,1,"users.setup_2fa_scan_qr_code")))}function ye(r,k){if(r&1&&(i(0,"div",10)(1,"p"),p(2),s(3,"translate"),l(),i(4,"div",16),m(5,"input",17),l()()),r&2){let t=h();e(2),v(o(3,2,"users.setup_2fa_enter_code")),e(3),u("formControl",t.formGroup.controls.code)}}function Se(r,k){if(r&1){let t=G();i(0,"button",18),_("click",function(){N(t);let n=h();return V(n.enable2fa())}),p(1),s(2,"translate"),l()}if(r&2){let t=h();u("disabled",t.formGroup.invalid),e(),c(" ",o(2,2,"form.button_enable")," ")}}var pe=(()=>{class r{$activeModal=d(A);$api=d(S);$toastr=d(U);$translate=d($);user;qrcodeElement=K("qrcode");timeDiffError=null;otpString;formGroup=new F({code:new x("",[C.required,C.minLength(6),C.maxLength(6)])});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 a=(0,le.default)(t).diff(new Date,"millisecond");if(a<-5e3||a>5e3){this.timeDiffError=a;return}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(a){return new(a||r)};static \u0275cmp=y({type:r,selectors:[["ng-component"]],viewQuery:function(a,n){a&1&&Z(n.qrcodeElement,xe,5),a&2&&ee()},inputs:{user:"user"},decls:27,vars:21,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"],["type","warning",3,"dismissible"],[1,"text-center","w-100","d-flex","justify-content-center"],[1,"mx-auto","my-2",2,"width","180px","height","180px",3,"data"],[1,"mt-4"],[1,"modal-footer","justify-content-between"],[1,"text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-right"],["type","button","data-dismiss","modal",1,"btn","btn-primary",3,"disabled"],[1,"form-group"],["type","text","placeholder","eg. 123456","autocomplete","one-time-code","autocapitalize","none","inputmode","numeric","pattern","[0-9]*",1,"form-control",3,"formControl"],["type","button","data-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"]],template:function(a,n){a&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),p(3),s(4,"translate"),l(),i(5,"button",3),s(6,"translate"),_("click",function(){return n.$activeModal.dismiss("Dismiss")}),i(7,"span",4),p(8,"\xD7"),l()()(),i(9,"div",5),B(10,we,7,9,"div",6),i(11,"ngb-alert",7),p(12),s(13,"translate"),l(),B(14,ge,4,3,"div"),i(15,"div",8),m(16,"app-qrcode",9),l(),B(17,ye,6,4,"div",10),l(),i(18,"div",11)(19,"div",12)(20,"button",13),s(21,"translate"),_("click",function(){return n.$activeModal.dismiss("Dismiss")}),p(22),s(23,"translate"),l()(),m(24,"div",6),i(25,"div",14),B(26,Se,3,4,"button",15),l()()()),a&2&&(e(3),v(o(4,11,"users.setup_2fa")),e(2),f("aria-label",o(6,13,"form.button_close")),e(5),g(n.timeDiffError?10:-1),e(),u("dismissible",!1),e(),c(" ",o(13,15,"users.setup_2fa_warning")," "),e(2),g(n.timeDiffError?-1:14),e(2),u("data",n.otpString),e(),g(n.timeDiffError?-1:17),e(3),f("aria-label",o(21,17,"form.button_close")),e(2),c(" ",o(23,19,"form.button_close")," "),e(4),g(n.timeDiffError?-1:26))},dependencies:[re,se,I,T,D,ne,M,Q,E],encapsulation:2})}return r})();var me=r=>({active:r}),de=r=>({"is-invalid":r}),ce=(()=>{class r{$activeModal=d(A);$api=d(S);$toastr=d(U);$translate=d($);form=new F({username:new x("",[C.required]),name:new x("",[C.required]),password:new x("",[C.compose([C.required,C.minLength(4)])]),passwordConfirm:new x("",[C.required]),admin:new x(!0)},this.matchPassword);page={title:"users.title_add_user",save:"users.button_add_new_user",password:"users.label_password"};matchPassword(t){let a=t.get("password").value,n=t.get("passwordConfirm").value;if(a!==n)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:a=>{this.$toastr.error(a.error.message||this.$translate.instant("users.toast_failed_to_add_user"),this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(a){return new(a||r)};static \u0275cmp=y({type:r,selectors:[["ng-component"]],decls:59,vars:57,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,"container","px-1"],[1,"md-form"],["formControlName","username","type","text","id","form-username","autocomplete","username","autocapitalize","none",1,"form-control","px-0"],["for","form-username",3,"ngClass"],[1,"fas","fa-fw","fa-user-shield"],["formControlName","name","type","text","id","form-name","autocomplete","name",1,"form-control","px-0"],["for","form-name",3,"ngClass"],[1,"fas","fa-fw","fa-user"],["formControlName","password","type","password","autocomplete","new-password","id","form-pass",1,"form-control","px-0",3,"ngClass"],["for","form-pass"],[1,"fas","fa-fw","fa-lock"],["formControlName","passwordConfirm","type","password","autocomplete","new-password","id","form-pass-confirm",1,"form-control","px-0",3,"ngClass"],["for","form-pass-confirm"],[1,"form-group","row","align-items-center"],[1,"col-6","col-form-label","grey-text"],[1,"fas","fa-fw","fa-user-secret"],[1,"col-6","text-right"],["type","checkbox","formControlName","admin","id","isAdmin",1,"rendux-input"],["for","isAdmin",1,"rendux-label","ml-3",2,"min-width","50px"],[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","submit",1,"btn","btn-primary",3,"disabled"]],template:function(a,n){a&1&&(i(0,"div",0)(1,"form",1),_("ngSubmit",function(){return n.onSubmit(n.form)}),i(2,"div",2)(3,"h5",3),p(4),s(5,"translate"),l(),i(6,"button",4),s(7,"translate"),_("click",function(){return n.$activeModal.dismiss("Dismiss")}),i(8,"span",5),p(9,"\xD7"),l()()(),i(10,"div",6)(11,"div",7)(12,"div",8),m(13,"input",9),s(14,"translate"),i(15,"label",10),m(16,"i",11),p(17),s(18,"translate"),l()(),i(19,"div",8),m(20,"input",12),s(21,"translate"),i(22,"label",13),m(23,"i",14),p(24),s(25,"translate"),l()(),i(26,"div",8),m(27,"input",15),s(28,"translate"),i(29,"label",16),m(30,"i",17),p(31),s(32,"translate"),l()(),i(33,"div",8),m(34,"input",18),s(35,"translate"),i(36,"label",19),m(37,"i",17),p(38),s(39,"translate"),l()(),i(40,"div",20)(41,"label",21),m(42,"i",22),p(43),s(44,"translate"),l(),i(45,"div",23),m(46,"input",24),s(47,"translate"),m(48,"label",25),l()()()(),i(49,"div",26)(50,"div",27)(51,"button",28),_("click",function(){return n.$activeModal.dismiss("Dismiss")}),p(52),s(53,"translate"),l()(),m(54,"div",29),i(55,"div",30)(56,"button",31),p(57),s(58,"translate"),l()()()()()),a&2&&(e(),u("formGroup",n.form),e(3),v(o(5,21,"users.title_add_user")),e(2),f("aria-label",o(7,23,"form.button_close")),e(7),f("disabled",n.page.title==="users.title_edit_user"?!0:null)("aria-label",o(14,25,"users.label_username")),e(2),u("ngClass",w(49,me,n.page.title==="users.title_edit_user")),e(2),c(" ",o(18,27,"users.label_username")," "),e(3),f("aria-label",o(21,29,"users.label_full_name")),e(2),u("ngClass",w(51,me,n.page.title==="users.title_edit_user")),e(2),c(" ",o(25,31,"users.label_full_name")," "),e(3),u("ngClass",w(53,de,n.form.controls.password.dirty&&n.form.controls.password.errors)),f("aria-label",o(28,33,n.page.password)),e(4),c(" ",o(32,35,n.page.password)," "),e(3),u("ngClass",w(55,de,n.form.controls.passwordConfirm.dirty&&n.form.controls.passwordConfirm.errors)),f("aria-label",o(35,37,"users.label_confirm_password")),e(4),c(" ",o(39,39,"users.label_confirm_password")," "),e(5),c(" ",o(44,41,"users.label_admin_user")," "),e(3),f("aria-label",o(47,43,"users.label_admin_user")),e(6),c(" ",o(53,45,"form.button_close")," "),e(4),u("disabled",!n.form.valid),e(),c(" ",o(58,47,"form.button_save")," "))},dependencies:[I,R,T,P,D,z,M,L,O,q,E],encapsulation:2})}return r})();var ue=r=>({active:r}),fe=r=>({"is-invalid":r}),_e=(()=>{class r{$activeModal=d(A);$api=d(S);$auth=d(j);$toastr=d(U);$translate=d($);user;form=new F({username:new x("",[C.required]),name:new x("",[C.required]),password:new x(""),passwordConfirm:new x(""),admin:new x(!0)},this.matchPassword);page={title:"users.title_edit_user",save:"form.button_save",password:"users.label_new_password"};isCurrentUser=!1;ngOnInit(){this.isCurrentUser=this.$auth.user.username===this.user.username,this.form.patchValue(this.user)}matchPassword(t){let a=t.get("password").value,n=t.get("passwordConfirm").value;if(a!==n)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:a=>{console.error(a),this.$toastr.error(a.error.message||this.$translate.instant("users.toast_failed_to_add_user"),this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(a){return new(a||r)};static \u0275cmp=y({type:r,selectors:[["ng-component"]],inputs:{user:"user"},decls:59,vars:56,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,"container","px-1"],[1,"md-form"],["formControlName","username","type","text","id","form-username","autocomplete","off","autocapitalize","none",1,"form-control","px-0"],["for","form-username",3,"ngClass"],[1,"fas","fa-fw","fa-user-shield"],["formControlName","name","type","text","id","form-name","autocomplete","name",1,"form-control","px-0"],["for","form-name",3,"ngClass"],[1,"fas","fa-fw","fa-user"],["formControlName","password","type","password","autocomplete","new-password","id","form-pass",1,"form-control","px-0",3,"ngClass"],["for","form-pass"],[1,"fas","fa-fw","fa-lock"],["formControlName","passwordConfirm","type","password","autocomplete","new-password","id","form-pass-confirm",1,"form-control","px-0",3,"ngClass"],["for","form-pass-confirm"],[1,"form-group","row","align-items-center"],[1,"col-6","col-form-label","grey-text"],[1,"fas","fa-fw","fa-user-secret"],[1,"col-6","text-right"],["type","checkbox","formControlName","admin","id","isAdmin",1,"rendux-input"],["for","isAdmin",1,"rendux-label","ml-3",2,"min-width","50px"],[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","submit",1,"btn","btn-primary",3,"disabled"]],template:function(a,n){a&1&&(i(0,"div",0)(1,"form",1),_("ngSubmit",function(){return n.onSubmit(n.form)}),i(2,"div",2)(3,"h5",3),p(4),s(5,"translate"),l(),i(6,"button",4),s(7,"translate"),_("click",function(){return n.$activeModal.dismiss("Dismiss")}),i(8,"span",5),p(9,"\xD7"),l()()(),i(10,"div",6)(11,"div",7)(12,"div",8),m(13,"input",9),s(14,"translate"),i(15,"label",10),m(16,"i",11),p(17),s(18,"translate"),l()(),i(19,"div",8),m(20,"input",12),s(21,"translate"),i(22,"label",13),m(23,"i",14),p(24),s(25,"translate"),l()(),i(26,"div",8),m(27,"input",15),s(28,"translate"),i(29,"label",16),m(30,"i",17),p(31),s(32,"translate"),l()(),i(33,"div",8),m(34,"input",18),s(35,"translate"),i(36,"label",19),m(37,"i",17),p(38),s(39,"translate"),l()(),i(40,"div",20)(41,"label",21),m(42,"i",22),p(43),s(44,"translate"),l(),i(45,"div",23),m(46,"input",24),s(47,"translate"),m(48,"label",25),l()()()(),i(49,"div",26)(50,"div",27)(51,"button",28),_("click",function(){return n.$activeModal.dismiss("Dismiss")}),p(52),s(53,"translate"),l()(),m(54,"div",29),i(55,"div",30)(56,"button",31),p(57),s(58,"translate"),l()()()()()),a&2&&(e(),u("formGroup",n.form),e(3),v(o(5,20,"users.title_edit_user")),e(2),f("aria-label",o(7,22,"form.button_close")),e(7),f("aria-label",o(14,24,"users.label_username")),e(2),u("ngClass",w(48,ue,n.page.title==="users.title_edit_user")),e(2),c(" ",o(18,26,"users.label_username")," "),e(3),f("aria-label",o(21,28,"users.label_full_name")),e(2),u("ngClass",w(50,ue,n.page.title==="users.title_edit_user")),e(2),c(" ",o(25,30,"users.label_full_name")," "),e(3),u("ngClass",w(52,fe,n.form.controls.password.dirty&&n.form.controls.password.errors)),f("aria-label",o(28,32,n.page.password)),e(4),c(" ",o(32,34,n.page.password)," "),e(3),u("ngClass",w(54,fe,n.form.controls.passwordConfirm.dirty&&n.form.controls.passwordConfirm.errors)),f("aria-label",o(35,36,"users.label_confirm_password")),e(4),c(" ",o(39,38,"users.label_confirm_password")," "),e(5),c(" ",o(44,40,"users.label_admin_user")," "),e(3),f("aria-label",o(47,42,"users.label_admin_user")),e(6),c(" ",o(53,44,"form.button_close")," "),e(4),u("disabled",!n.form.valid),e(),c(" ",o(58,46,"form.button_save")," "))},dependencies:[I,R,T,P,D,z,M,L,O,q,E],encapsulation:2})}return r})();function $e(r,k){if(r&1){let t=G();i(0,"button",19),_("click",function(){N(t);let n=h().$implicit,b=h();return V(b.deleteUser(n.id))}),p(1),s(2,"translate"),l()}r&2&&(e(),c(" ",o(2,1,"form.button_delete")," "))}function Ee(r,k){if(r&1){let t=G();i(0,"button",20),_("click",function(){N(t);let n=h().$implicit,b=h();return V(b.setup2fa(n))}),p(1),s(2,"translate"),l()}r&2&&(e(),v(o(2,1,"users.setup_2fa")))}function Ue(r,k){if(r&1){let t=G();i(0,"button",18),_("click",function(){N(t);let n=h().$implicit,b=h();return V(b.disable2fa(n))}),p(1),s(2,"translate"),l()}r&2&&(e(),c(" ",o(2,1,"users.setup_2fa_disable")," "))}function ke(r,k){if(r&1){let t=G();i(0,"div",7)(1,"div",8)(2,"div",9)(3,"div",10)(4,"span",11),m(5,"h4",12)(6,"h5",13),l()(),i(7,"div",14),B(8,$e,3,3,"button",15)(9,Ee,3,3,"button",16)(10,Ue,3,3,"button",17),i(11,"button",18),_("click",function(){let n=N(t).$implicit,b=h();return V(b.openEditUser(n))}),p(12),s(13,"translate"),l()()()()()}if(r&2){let t=k.$implicit,a=h();e(5),u("innerText",t.name),e(),u("innerText",t.username),e(2),g(a.$auth.user.username!==t.username?8:-1),e(),g(a.$auth.user.username===t.username&&!t.otpActive?9:-1),e(),g(a.$auth.user.username===t.username&&t.otpActive?10:-1),e(2),v(o(13,6,"form.button_edit"))}}var $t=(()=>{class r{$api=d(S);$auth=d(j);$modal=d(ae);$route=d(ie);$toastr=d(U);$translate=d($);homebridgeUsers;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(ce,{size:"lg",backdrop:"static"}).result.finally(()=>{this.reloadUsers()})}openEditUser(t){let a=this.$modal.open(_e,{size:"lg",backdrop:"static"});a.componentInstance.user=t,a.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:a=>{console.error(a),this.$toastr.error(a.error.message||this.$translate.instant("users.toast_failed_to_delete_user"),this.$translate.instant("toast.title_error"))}})}setup2fa(t){let a=this.$modal.open(pe,{size:"lg",backdrop:"static"});a.componentInstance.user=t,a.result.finally(()=>{this.reloadUsers()})}disable2fa(t){let a=this.$modal.open(oe,{size:"lg",backdrop:"static"});a.componentInstance.user=t,a.result.finally(()=>{this.reloadUsers()})}static \u0275fac=function(a){return new(a||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-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",2,"gap","10px"],[1,"btn","btn-elegant","btn-sml","m-0"],[1,"btn","btn-primary","mt-0","m-0"],[1,"btn","btn-primary","m-0"],[1,"btn","btn-primary","m-0",3,"click"],[1,"btn","btn-elegant","btn-sml","m-0",3,"click"],[1,"btn","btn-primary","mt-0","m-0",3,"click"]],template:function(a,n){a&1&&(i(0,"div",0)(1,"div",1)(2,"h3",2),p(3),s(4,"translate"),l()(),i(5,"div",3)(6,"button",4),s(7,"translate"),_("click",function(){return n.openAddNewUser()}),m(8,"i",5),l()()(),i(9,"div",6),X(10,ke,14,8,"div",7,W),l()),a&2&&(e(3),v(o(4,2,"users.title_users")),e(3),f("aria-label",o(7,4,"users.button_add_user")),e(4),Y(n.homebridgeUsers))},dependencies:[E],encapsulation:2})}return r})();export{oe as a,pe as b,ce as c,_e as d,$t as e};
@@ -1 +0,0 @@
1
- import"./chunk-NW6AFAD7.js";import{q as u}from"./chunk-ORPWYWCL.js";import{z as n}from"./chunk-QHPDGSZ6.js";import{g as i}from"./chunk-NZNNTHFQ.js";import"./chunk-UG5DK2RQ.js";import{c as p}from"./chunk-3IX3CLER.js";import{ia as t,md as m,sb as r}from"./chunk-TXOB7R5K.js";var l=[{path:"",loadComponent:()=>import("./chunk-HSJSWZHD.js").then(o=>o.SupportComponent)}],d=(()=>{class o{static \u0275fac=function(e){return new(e||o)};static \u0275mod=r({type:o});static \u0275inj=t({imports:[i.forChild(l),i]})}return o})();var R=(()=>{class o{static \u0275fac=function(e){return new(e||o)};static \u0275mod=r({type:o});static \u0275inj=t({imports:[m,d,u,n,p]})}return o})();export{R as SupportModule};