homebridge-config-ui-x 5.0.0-beta.22 → 5.0.0-beta.23

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 (195) hide show
  1. package/CHANGELOG.md +32 -1
  2. package/dist/modules/plugins/plugins.service.js +6 -3
  3. package/dist/modules/plugins/plugins.service.js.map +1 -1
  4. package/package.json +5 -4
  5. package/public/3rdpartylicenses.txt +73 -3
  6. package/public/assets/hap-icons/airpurifier.svg +49 -16
  7. package/public/assets/hap-icons/airquality.svg +24 -13
  8. package/public/assets/hap-icons/contactsensor-closed.svg +35 -2
  9. package/public/assets/hap-icons/contactsensor-open.svg +80 -2
  10. package/public/assets/hap-icons/door-closed.svg +32 -2
  11. package/public/assets/hap-icons/door-open.svg +48 -2
  12. package/public/assets/hap-icons/fan-off.svg +24 -13
  13. package/public/assets/hap-icons/fan-on.svg +24 -13
  14. package/public/assets/hap-icons/garagedoor.svg +24 -13
  15. package/public/assets/hap-icons/humidity.svg +24 -13
  16. package/public/assets/hap-icons/irrigation-system.svg +47 -18
  17. package/public/assets/hap-icons/leaksensor.svg +52 -2
  18. package/public/assets/hap-icons/light.svg +47 -28
  19. package/public/assets/hap-icons/lightbulb.svg +24 -13
  20. package/public/assets/hap-icons/lock-locked.svg +24 -13
  21. package/public/assets/hap-icons/lock-unlocked.svg +24 -13
  22. package/public/assets/hap-icons/motionsensor.svg +100 -2
  23. package/public/assets/hap-icons/occupancysensor.svg +97 -2
  24. package/public/assets/hap-icons/outlet.svg +24 -13
  25. package/public/assets/hap-icons/securitysystem-active.svg +102 -2
  26. package/public/assets/hap-icons/securitysystem-off.svg +68 -2
  27. package/public/assets/hap-icons/smokesensor.svg +42 -9
  28. package/public/assets/hap-icons/speaker.svg +29 -13
  29. package/public/assets/hap-icons/statelessprogrammableswitch.svg +51 -2
  30. package/public/assets/hap-icons/switch.svg +24 -13
  31. package/public/assets/hap-icons/television.svg +15 -4
  32. package/public/assets/hap-icons/temperature.svg +24 -13
  33. package/public/assets/hap-icons/unknown.svg +24 -13
  34. package/public/assets/hap-icons/valve-generic.svg +26 -15
  35. package/public/assets/hap-icons/valve-irrigation.svg +36 -20
  36. package/public/assets/hap-icons/valve-showerhead.svg +51 -12
  37. package/public/assets/hap-icons/valve-waterfaucet.svg +20 -6
  38. package/public/assets/hap-icons/window-closed.svg +85 -2
  39. package/public/assets/hap-icons/window-open.svg +136 -2
  40. package/public/assets/hap-icons/windowcovering-closed.svg +45 -49
  41. package/public/assets/hap-icons/windowcovering-open.svg +40 -44
  42. package/public/assets/homebridge-color-round.svg +36 -1
  43. package/public/assets/homebridge-logo.svg +11 -1
  44. package/public/assets/mask-icon.svg +5 -1
  45. package/public/chunk-27FPUPTN.js +1 -0
  46. package/public/{chunk-6MDI4RNQ.js → chunk-2DMDQOK2.js} +1 -1
  47. package/public/chunk-2F3XEUAD.js +1 -0
  48. package/public/chunk-2SJOCVSL.js +1 -0
  49. package/public/{chunk-3VDXR5B2.js → chunk-33OXRXUC.js} +1 -1
  50. package/public/chunk-3T7LR3KP.js +1 -0
  51. package/public/chunk-4GEGP5GO.js +1 -0
  52. package/public/{chunk-EXVHFPLG.js → chunk-4MKTUK3C.js} +1 -1
  53. package/public/chunk-4XUOS275.js +1 -0
  54. package/public/chunk-5PUZ56HW.js +1 -0
  55. package/public/{chunk-MMPQXC6H.js → chunk-5SBO5IQQ.js} +1 -1
  56. package/public/{chunk-BZVO3JIQ.js → chunk-67EN4M44.js} +1 -1
  57. package/public/chunk-6KTSVDPB.js +1 -0
  58. package/public/chunk-75LZTZGF.js +1 -0
  59. package/public/chunk-7PD4QI6O.js +1 -0
  60. package/public/chunk-7VZO5R4J.js +1 -0
  61. package/public/{chunk-UZZFYFXN.js → chunk-7WGR5I6Z.js} +1 -1
  62. package/public/{chunk-HBGENGOA.js → chunk-ACRDELJP.js} +1 -1
  63. package/public/{chunk-KFM3IHPE.js → chunk-AGHJJT2B.js} +1 -1
  64. package/public/chunk-BOYCBPUU.js +1 -0
  65. package/public/chunk-C5RNSBNS.js +1 -0
  66. package/public/{chunk-4J45MC2M.js → chunk-CBI3LF3A.js} +1 -1
  67. package/public/{chunk-P5WCYSBI.js → chunk-CEFSEL4J.js} +1 -1
  68. package/public/chunk-CFFLJ5JD.js +1 -0
  69. package/public/chunk-CKXSP7IR.js +20 -0
  70. package/public/chunk-DBMSQ32L.js +1 -0
  71. package/public/chunk-E2YV2VI5.js +5 -0
  72. package/public/{chunk-LY2KRV55.js → chunk-E4LCOK4T.js} +1 -1
  73. package/public/{chunk-HMOW3VNR.js → chunk-EBVMWV7Q.js} +1 -1
  74. package/public/chunk-EE3AXC6U.js +1 -0
  75. package/public/{chunk-CATV74VT.js → chunk-EJFSW4SK.js} +1 -1
  76. package/public/chunk-EOXXEC54.js +1 -0
  77. package/public/chunk-ET5ASDZV.js +1 -0
  78. package/public/chunk-F3YCS6HT.js +1 -0
  79. package/public/chunk-FCTX2YEK.js +1 -0
  80. package/public/chunk-GABFFUBD.js +1 -0
  81. package/public/chunk-GEH6XWDN.js +1 -0
  82. package/public/chunk-GZ5DOCVG.js +1 -0
  83. package/public/chunk-HPJ3LUSD.js +1 -0
  84. package/public/chunk-HVJRSDCO.js +1 -0
  85. package/public/{chunk-T6FYP7FJ.js → chunk-IF47NAUS.js} +1 -1
  86. package/public/{chunk-HGKURYNB.js → chunk-IYYWSVBH.js} +5 -5
  87. package/public/chunk-J4I2UKEG.js +5 -0
  88. package/public/{chunk-CK234OHO.js → chunk-JHGDWS5G.js} +1 -1
  89. package/public/{chunk-2JYMQLNI.js → chunk-JHT7FCNA.js} +1 -1
  90. package/public/{chunk-KJTNT2RS.js → chunk-K2VKBYPF.js} +1 -1
  91. package/public/chunk-K7SACHXO.js +1 -0
  92. package/public/chunk-KMMOUPYM.js +1 -0
  93. package/public/chunk-L224W57S.js +1 -0
  94. package/public/chunk-LAFQ6QBN.js +1 -0
  95. package/public/{chunk-F4QKTMKG.js → chunk-LJNOSMWT.js} +1 -1
  96. package/public/chunk-LJNRODOH.js +1 -0
  97. package/public/chunk-LXRPNSLW.js +1 -0
  98. package/public/chunk-MA3HOSPP.js +1 -0
  99. package/public/chunk-MP2566JB.js +1 -0
  100. package/public/chunk-NFFAXZA6.js +1 -0
  101. package/public/chunk-NHJLTSH3.js +7 -0
  102. package/public/chunk-NNPWW7QY.js +1 -0
  103. package/public/chunk-NRCSHT3L.js +1 -0
  104. package/public/chunk-P2OEQDP7.js +1 -0
  105. package/public/chunk-P6375ABC.js +1 -0
  106. package/public/{chunk-44XAYR34.js → chunk-PH3WWITU.js} +1 -1
  107. package/public/chunk-Q4VBD4HY.js +1 -0
  108. package/public/{chunk-2QRN7P6W.js → chunk-QADRQCUN.js} +1 -1
  109. package/public/chunk-QN6P2WRK.js +1 -0
  110. package/public/chunk-QQELI3RK.js +1 -0
  111. package/public/chunk-RMEDSCQG.js +1 -0
  112. package/public/chunk-SYZ2D5X2.js +1 -0
  113. package/public/chunk-TQODQLMU.js +1 -0
  114. package/public/{chunk-Z4CHNCHA.js → chunk-UUOIJNVA.js} +1 -1
  115. package/public/chunk-V6DGQLQO.js +1 -0
  116. package/public/chunk-W3NZWHLA.js +1 -0
  117. package/public/chunk-WTYP6A2G.js +1 -0
  118. package/public/chunk-X34XL3Z7.js +1 -0
  119. package/public/chunk-XT73VRCU.js +1 -0
  120. package/public/chunk-YCLJUAE2.js +1 -0
  121. package/public/chunk-YG5UHXGO.js +1 -0
  122. package/public/{chunk-RUC7TPCB.js → chunk-YQQIYYEJ.js} +20 -20
  123. package/public/{chunk-PFCIYPDO.js → chunk-YSOWPBAG.js} +8 -8
  124. package/public/{chunk-QHHRJOCD.js → chunk-YXTLNUTK.js} +1 -1
  125. package/public/chunk-Z4LQDDZT.js +1 -0
  126. package/public/index.html +2 -2
  127. package/public/main-VBJHYWNC.js +1 -0
  128. package/public/media/fa-brands-400-Q3XCMWHQ.woff2 +0 -0
  129. package/public/media/{fa-brands-400-KOKGDU7E.ttf → fa-brands-400-R2XQZCET.ttf} +0 -0
  130. package/public/media/fa-regular-400-QSNYFYRT.woff2 +0 -0
  131. package/public/media/{fa-regular-400-IPMAEX5Y.ttf → fa-regular-400-XUOPSR7E.ttf} +0 -0
  132. package/public/media/fa-solid-900-5ZUYHGA7.woff2 +0 -0
  133. package/public/media/{fa-solid-900-SRFFQLRM.ttf → fa-solid-900-PJNKLK6W.ttf} +0 -0
  134. package/public/styles-LM2DJG4C.css +1 -0
  135. package/public/chunk-2G26F2OY.js +0 -1
  136. package/public/chunk-2HOZ3Y6C.js +0 -1
  137. package/public/chunk-2Q3ZJBWD.js +0 -1
  138. package/public/chunk-4XUM4AAX.js +0 -1
  139. package/public/chunk-5U265P7U.js +0 -1
  140. package/public/chunk-66TZYBOD.js +0 -1
  141. package/public/chunk-75MRNSXS.js +0 -5
  142. package/public/chunk-76R6FK4N.js +0 -1
  143. package/public/chunk-77MKNJZD.js +0 -1
  144. package/public/chunk-7TYZZBWX.js +0 -1
  145. package/public/chunk-7YINJGU5.js +0 -1
  146. package/public/chunk-A5DGQCNW.js +0 -1
  147. package/public/chunk-A5ZYGUPQ.js +0 -1
  148. package/public/chunk-A7JPIFDI.js +0 -1
  149. package/public/chunk-AOMI4P34.js +0 -1
  150. package/public/chunk-AWR7QC6L.js +0 -1
  151. package/public/chunk-BGVO4RUG.js +0 -1
  152. package/public/chunk-BPBMT7G5.js +0 -1
  153. package/public/chunk-CCREQ443.js +0 -1
  154. package/public/chunk-DQ6WFEV3.js +0 -1
  155. package/public/chunk-EFBNPDVN.js +0 -1
  156. package/public/chunk-EH7W2CXP.js +0 -1
  157. package/public/chunk-F37DFFAF.js +0 -1
  158. package/public/chunk-F5SS6TN7.js +0 -5
  159. package/public/chunk-G4YIZM2X.js +0 -20
  160. package/public/chunk-GG777Z5B.js +0 -1
  161. package/public/chunk-GGXW7MGP.js +0 -1
  162. package/public/chunk-GZ4RCRCW.js +0 -1
  163. package/public/chunk-H3E4T6KH.js +0 -1
  164. package/public/chunk-HCPQDE4Y.js +0 -1
  165. package/public/chunk-HH7AWBSM.js +0 -1
  166. package/public/chunk-HMGLHQQM.js +0 -1
  167. package/public/chunk-IQ2VQFLN.js +0 -1
  168. package/public/chunk-JN3IG5XN.js +0 -1
  169. package/public/chunk-JXLK34BL.js +0 -1
  170. package/public/chunk-KDJPDALB.js +0 -7
  171. package/public/chunk-LAYV53FZ.js +0 -1
  172. package/public/chunk-LRBNS4GA.js +0 -1
  173. package/public/chunk-NBLWBPNU.js +0 -1
  174. package/public/chunk-NHYJBJ7V.js +0 -1
  175. package/public/chunk-NIGZKKLM.js +0 -1
  176. package/public/chunk-NSDKR2DD.js +0 -1
  177. package/public/chunk-OAKLLAD6.js +0 -1
  178. package/public/chunk-OZTQT47N.js +0 -1
  179. package/public/chunk-Q5X32EHZ.js +0 -1
  180. package/public/chunk-QCBEADHI.js +0 -1
  181. package/public/chunk-R5PFZZHR.js +0 -1
  182. package/public/chunk-RSUIRNXB.js +0 -1
  183. package/public/chunk-SHFHQWOE.js +0 -1
  184. package/public/chunk-SZQRABYM.js +0 -1
  185. package/public/chunk-TC25IMJX.js +0 -1
  186. package/public/chunk-VQ5OLP5R.js +0 -1
  187. package/public/chunk-W463PPSI.js +0 -1
  188. package/public/chunk-W5XD4G3A.js +0 -1
  189. package/public/chunk-XIOY5AEA.js +0 -1
  190. package/public/chunk-ZXAV3M77.js +0 -1
  191. package/public/main-JEWXJ5EM.js +0 -1
  192. package/public/media/fa-brands-400-6PJPV6JM.woff2 +0 -0
  193. package/public/media/fa-regular-400-OHB6J4OK.woff2 +0 -0
  194. package/public/media/fa-solid-900-ABTK6BNK.woff2 +0 -0
  195. package/public/styles-EG5MFQEM.css +0 -1
@@ -0,0 +1 @@
1
+ import{a as oe}from"./chunk-CEFSEL4J.js";import{g as re,m as A,n as ae}from"./chunk-J4I2UKEG.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-UUOIJNVA.js";import{b as ie}from"./chunk-EBVMWV7Q.js";import{c as j}from"./chunk-33OXRXUC.js";import{a as ve}from"./chunk-CBI3LF3A.js";import{b as S,j as U}from"./chunk-HVJRSDCO.js";import{a as $,b as E}from"./chunk-Q4VBD4HY.js";import{Bb as B,Cc as o,Dc as s,Ec as te,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,ac as G,bd as q,dc as _,ec as h,g as be,ib as e,lc as Z,mc as ee,na as d,oc as p,pc as v,qc as c,rb as K,ub as y,xa as N,ya as V,yc as w}from"./chunk-NHJLTSH3.js";function Ce(r,k){r&1&&(i(0,"p",8)(1,"small"),p(2),o(3,"translate"),l()()),r&2&&(e(2),v(s(3,1,"login.invalid_credentials")))}var se=(()=>{class r{$activeModal=d(A);$api=d(S);$toastr=d(U);$translate=d($);formGroup=new F({password:new x("",[C.required])});invalidCredentials=!1;constructor(){}disable2fa(){this.invalidCredentials=!1,this.$api.post("/users/otp/deactivate",this.formGroup.value).subscribe({next:()=>{this.$activeModal.close(),this.$toastr.success(this.$translate.instant("users.setup_2fa_disable_success"),this.$translate.instant("toast.title_success"))},error:()=>{this.formGroup.setValue({password:""}),this.invalidCredentials=!0}})}static \u0275fac=function(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),o(4,"translate"),l(),i(5,"button",3),o(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),o(12,"translate"),l(),i(13,"div",6),m(14,"input",7),o(15,"translate"),l(),B(16,Ce,4,3,"p",8),l(),i(17,"div",9)(18,"div",10)(19,"button",11),o(20,"translate"),_("click",function(){return n.$activeModal.dismiss("Dismiss")}),p(21),o(22,"translate"),l()(),m(23,"div",12),i(24,"div",13)(25,"button",14),_("click",function(){return n.disable2fa()}),p(26),o(27,"translate"),l()()()()),a&2&&(e(3),v(s(4,10,"users.setup_2fa_disable")),e(2),f("aria-label",s(6,12,"form.button_close")),e(6),v(s(12,14,"users.setup_2fa_disable_current_password")),e(3),u("formControl",n.formGroup.controls.password)("placeholder",s(15,16,"users.label_password")),e(2),g(n.invalidCredentials?16:-1),e(3),f("aria-label",s(20,18,"form.button_close")),e(2),c(" ",s(22,20,"form.button_close")," "),e(4),u("disabled",n.formGroup.invalid),e(),c(" ",s(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),o(3,"translate"),l(),i(4,"p"),p(5),o(6,"translate"),l()()),r&2){let t=h();e(2),v(s(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),o(3,"translate"),l()()),r&2&&(e(2),v(s(3,1,"users.setup_2fa_scan_qr_code")))}function ye(r,k){if(r&1&&(i(0,"div",10)(1,"p"),p(2),o(3,"translate"),l(),i(4,"div",16),m(5,"input",17),l()()),r&2){let t=h();e(2),v(s(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),o(2,"translate"),l()}if(r&2){let t=h();u("disabled",t.formGroup.invalid),e(),c(" ",s(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)])});constructor(){}ngOnInit(){this.$api.post("/users/otp/setup",{}).subscribe({next:t=>{this.checkTimeDiff(t.timestamp),this.timeDiffError||(this.otpString=t.otpauth)},error:t=>{this.$activeModal.dismiss(),console.error(t),this.$toastr.error(this.$translate.instant("users.setup_2fa_enable_error"),this.$translate.instant("toast.title_error"))}})}checkTimeDiff(t){let 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),o(4,"translate"),l(),i(5,"button",3),o(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),o(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),o(21,"translate"),_("click",function(){return n.$activeModal.dismiss("Dismiss")}),p(22),o(23,"translate"),l()(),m(24,"div",6),i(25,"div",14),B(26,Se,3,4,"button",15),l()()()),a&2&&(e(3),v(s(4,11,"users.setup_2fa")),e(2),f("aria-label",s(6,13,"form.button_close")),e(5),g(n.timeDiffError?10:-1),e(),u("dismissible",!1),e(),c(" ",s(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",s(21,17,"form.button_close")),e(2),c(" ",s(23,19,"form.button_close")," "),e(4),g(n.timeDiffError?-1:26))},dependencies:[re,oe,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"};constructor(){}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),o(5,"translate"),l(),i(6,"button",4),o(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),o(14,"translate"),i(15,"label",10),m(16,"i",11),p(17),o(18,"translate"),l()(),i(19,"div",8),m(20,"input",12),o(21,"translate"),i(22,"label",13),m(23,"i",14),p(24),o(25,"translate"),l()(),i(26,"div",8),m(27,"input",15),o(28,"translate"),i(29,"label",16),m(30,"i",17),p(31),o(32,"translate"),l()(),i(33,"div",8),m(34,"input",18),o(35,"translate"),i(36,"label",19),m(37,"i",17),p(38),o(39,"translate"),l()(),i(40,"div",20)(41,"label",21),m(42,"i",22),p(43),o(44,"translate"),l(),i(45,"div",23),m(46,"input",24),o(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),o(53,"translate"),l()(),m(54,"div",29),i(55,"div",30)(56,"button",31),p(57),o(58,"translate"),l()()()()()),a&2&&(e(),u("formGroup",n.form),e(3),v(s(5,21,"users.title_add_user")),e(2),f("aria-label",s(7,23,"form.button_close")),e(7),f("disabled",n.page.title==="users.title_edit_user"?!0:null)("aria-label",s(14,25,"users.label_username")),e(2),u("ngClass",w(49,me,n.page.title==="users.title_edit_user")),e(2),c(" ",s(18,27,"users.label_username")," "),e(3),f("aria-label",s(21,29,"users.label_full_name")),e(2),u("ngClass",w(51,me,n.page.title==="users.title_edit_user")),e(2),c(" ",s(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",s(28,33,n.page.password)),e(4),c(" ",s(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",s(35,37,"users.label_confirm_password")),e(4),c(" ",s(39,39,"users.label_confirm_password")," "),e(5),c(" ",s(44,41,"users.label_admin_user")," "),e(3),f("aria-label",s(47,43,"users.label_admin_user")),e(6),c(" ",s(53,45,"form.button_close")," "),e(4),u("disabled",!n.form.valid),e(),c(" ",s(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;constructor(){}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),o(5,"translate"),l(),i(6,"button",4),o(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),o(14,"translate"),i(15,"label",10),m(16,"i",11),p(17),o(18,"translate"),l()(),i(19,"div",8),m(20,"input",12),o(21,"translate"),i(22,"label",13),m(23,"i",14),p(24),o(25,"translate"),l()(),i(26,"div",8),m(27,"input",15),o(28,"translate"),i(29,"label",16),m(30,"i",17),p(31),o(32,"translate"),l()(),i(33,"div",8),m(34,"input",18),o(35,"translate"),i(36,"label",19),m(37,"i",17),p(38),o(39,"translate"),l()(),i(40,"div",20)(41,"label",21),m(42,"i",22),p(43),o(44,"translate"),l(),i(45,"div",23),m(46,"input",24),o(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),o(53,"translate"),l()(),m(54,"div",29),i(55,"div",30)(56,"button",31),p(57),o(58,"translate"),l()()()()()),a&2&&(e(),u("formGroup",n.form),e(3),v(s(5,20,"users.title_edit_user")),e(2),f("aria-label",s(7,22,"form.button_close")),e(7),f("aria-label",s(14,24,"users.label_username")),e(2),u("ngClass",w(48,ue,n.page.title==="users.title_edit_user")),e(2),c(" ",s(18,26,"users.label_username")," "),e(3),f("aria-label",s(21,28,"users.label_full_name")),e(2),u("ngClass",w(50,ue,n.page.title==="users.title_edit_user")),e(2),c(" ",s(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",s(28,32,n.page.password)),e(4),c(" ",s(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",s(35,36,"users.label_confirm_password")),e(4),c(" ",s(39,38,"users.label_confirm_password")," "),e(5),c(" ",s(44,40,"users.label_admin_user")," "),e(3),f("aria-label",s(47,42,"users.label_admin_user")),e(6),c(" ",s(53,44,"form.button_close")," "),e(4),u("disabled",!n.form.valid),e(),c(" ",s(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),o(2,"translate"),l()}r&2&&(e(),c(" ",s(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),o(2,"translate"),l()}r&2&&(e(),v(s(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),o(2,"translate"),l()}r&2&&(e(),c(" ",s(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),o(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(s(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;constructor(){}ngOnInit(){this.$route.data.subscribe(t=>{this.homebridgeUsers=t.homebridgeUsers})}reloadUsers(){return this.$api.get("/users").subscribe(t=>{this.homebridgeUsers=t})}openAddNewUser(){this.$modal.open(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(se,{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),o(4,"translate"),l()(),i(5,"div",3)(6,"button",4),o(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(s(4,2,"users.title_users")),e(3),f("aria-label",s(7,4,"users.button_add_user")),e(4),Y(n.homebridgeUsers))},dependencies:[E],encapsulation:2})}return r})();export{se as a,pe as b,ce as c,_e as d,$t as e};
@@ -0,0 +1 @@
1
+ import{a as R}from"./chunk-QADRQCUN.js";import"./chunk-X34XL3Z7.js";import{c as g}from"./chunk-5SBO5IQQ.js";import"./chunk-67EN4M44.js";import{q as C}from"./chunk-J4I2UKEG.js";import{y as S,z as v}from"./chunk-UUOIJNVA.js";import"./chunk-E4LCOK4T.js";import{d as h,g as m}from"./chunk-EBVMWV7Q.js";import"./chunk-33OXRXUC.js";import"./chunk-CBI3LF3A.js";import{b as u,j as M}from"./chunk-HVJRSDCO.js";import"./chunk-YXTLNUTK.js";import{a as f,c as d}from"./chunk-Q4VBD4HY.js";import{h as p,ha as c,ia as i,na as e,nd as l,vb as a,w as s}from"./chunk-NHJLTSH3.js";var n=(()=>{class t{$api=e(u);$router=e(h);$toastr=e(M);$translate=e(f);constructor(){}resolve(){return p(this,null,function*(){try{return yield s(this.$api.get("/platform-tools/docker/startup-script"))}catch(r){console.error(r),this.$toastr.error(r.message,this.$translate.instant("toast.title_error")),this.$router.navigate(["/"])}})}static \u0275fac=function(o){return new(o||t)};static \u0275prov=c({token:t,factory:t.\u0275fac})}return t})();var j=[{path:"",redirectTo:"/",pathMatch:"full"},{path:"startup-script",loadComponent:()=>import("./chunk-GEH6XWDN.js").then(t=>t.StartupScriptComponent),resolve:{startupScript:n}},{path:"restart-container",loadComponent:()=>import("./chunk-YCLJUAE2.js").then(t=>t.ContainerRestartComponent)}],$=(()=>{class t{static \u0275fac=function(o){return new(o||t)};static \u0275mod=a({type:t});static \u0275inj=i({imports:[m.forChild(j),m]})}return t})();var Q=(()=>{class t{static \u0275fac=function(o){return new(o||t)};static \u0275mod=a({type:t});static \u0275inj=i({providers:[n],imports:[l,S,v,g,C,d.forChild(),$,R]})}return t})();export{Q as DockerModule};
@@ -1 +1 @@
1
- import{Wb as t,Xb as r,Yb as i,ub as a,za as o}from"./chunk-KDJPDALB.js";var m=(()=>{class e{constructor(){}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=a({type:e,selectors:[["app-spinner"]],decls:7,vars:0,consts:[[1,"app-spinner-container"],[1,"animate_loader"],["xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink","width","200px","height","200px","viewBox","0 0 100 100","preserveAspectRatio","xMidYMid",2,"margin","auto","display","block"],["cx","50","cy","50","r","32","stroke-width","8","stroke-dasharray","50.26548245743669 50.26548245743669","fill","none","stroke-linecap","round","transform","rotate(327.259 50 50)",1,"spinner_outer"],["attributeName","transform","type","rotate","dur","2s","repeatCount","indefinite","keyTimes","0;1","values","0 50 50;360 50 50"],["cx","50","cy","50","r","23","stroke-width","8","stroke","#f8b26a","stroke-dasharray","36.12831551628262 36.12831551628262","stroke-dashoffset","36.12831551628262","fill","none","stroke-linecap","round","transform","rotate(-327.259 50 50)",1,"spinner_inner"],["attributeName","transform","type","rotate","dur","2s","repeatCount","indefinite","keyTimes","0;1","values","0 50 50;-360 50 50"]],template:function(n,p){n&1&&(t(0,"div",0)(1,"div",1),o(),t(2,"svg",2)(3,"circle",3),i(4,"animateTransform",4),r(),t(5,"circle",5),i(6,"animateTransform",6),r()()()())},styles:[".app-spinner-container[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:center;z-index:1000}.animate_loader[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:200px;overflow:visible}"]})}return e})();export{m as a};
1
+ import{Wb as t,Xb as r,Yb as i,ub as a,za as o}from"./chunk-NHJLTSH3.js";var m=(()=>{class e{constructor(){}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=a({type:e,selectors:[["app-spinner"]],decls:7,vars:0,consts:[[1,"app-spinner-container"],[1,"animate_loader"],["xmlns","http://www.w3.org/2000/svg",0,"xmlns","xlink","http://www.w3.org/1999/xlink","width","200px","height","200px","viewBox","0 0 100 100","preserveAspectRatio","xMidYMid",2,"margin","auto","display","block"],["cx","50","cy","50","r","32","stroke-width","8","stroke-dasharray","50.26548245743669 50.26548245743669","fill","none","stroke-linecap","round","transform","rotate(327.259 50 50)",1,"spinner_outer"],["attributeName","transform","type","rotate","dur","2s","repeatCount","indefinite","keyTimes","0;1","values","0 50 50;360 50 50"],["cx","50","cy","50","r","23","stroke-width","8","stroke","#f8b26a","stroke-dasharray","36.12831551628262 36.12831551628262","stroke-dashoffset","36.12831551628262","fill","none","stroke-linecap","round","transform","rotate(-327.259 50 50)",1,"spinner_inner"],["attributeName","transform","type","rotate","dur","2s","repeatCount","indefinite","keyTimes","0;1","values","0 50 50;-360 50 50"]],template:function(n,p){n&1&&(t(0,"div",0)(1,"div",1),o(),t(2,"svg",2)(3,"circle",3),i(4,"animateTransform",4),r(),t(5,"circle",5),i(6,"animateTransform",6),r()()()())},styles:[".app-spinner-container[_ngcontent-%COMP%]{position:absolute;top:0;bottom:0;left:0;right:0;display:flex;align-items:center;justify-content:center;z-index:1000}.animate_loader[_ngcontent-%COMP%] svg[_ngcontent-%COMP%]{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:200px;overflow:visible}"]})}return e})();export{m as a};
@@ -0,0 +1 @@
1
+ import{Aa as w,B as F,C as P,D as q,Fa as S,Ic as Z,L as J,O as L,Z as R,a as I,aa as M,ha as h,ia as X,jb as N,ka as v,ma as o,r as p,t as f,vb as z,x as V,xb as W}from"./chunk-NHJLTSH3.js";var c=class{},Q=(()=>{class n extends c{getTranslation(e){return p({})}static \u0275fac=(()=>{let e;return function(s){return(e||(e=w(n)))(s||n)}})();static \u0275prov=h({token:n,factory:n.\u0275fac})}return n})(),b=class{},Y=(()=>{class n{handle(e){return e.key}static \u0275fac=function(t){return new(t||n)};static \u0275prov=h({token:n,factory:n.\u0275fac})}return n})();function j(n,r){if(n===r)return!0;if(n===null||r===null)return!1;if(n!==n&&r!==r)return!0;let e=typeof n,t=typeof r,s,i,a;if(e==t&&e=="object")if(Array.isArray(n)){if(!Array.isArray(r))return!1;if((s=n.length)==r.length){for(i=0;i<s;i++)if(!j(n[i],r[i]))return!1;return!0}}else{if(Array.isArray(r))return!1;a=Object.create(null);for(i in n){if(!j(n[i],r[i]))return!1;a[i]=!0}for(i in r)if(!(i in a)&&typeof r[i]<"u")return!1;return!0}return!1}function u(n){return typeof n<"u"&&n!==null}function D(n){return E(n)&&!H(n)&&n!==null}function E(n){return typeof n=="object"}function H(n){return Array.isArray(n)}function $(n){return typeof n=="string"}function ne(n){return typeof n=="function"}function K(n,r){let e=Object.assign({},n);return E(n)?(E(n)&&E(r)&&Object.keys(r).forEach(t=>{D(r[t])?t in n?e[t]=K(n[t],r[t]):Object.assign(e,{[t]:r[t]}):Object.assign(e,{[t]:r[t]})}),e):K({},r)}function x(n,r){let e=r.split(".");r="";do r+=e.shift(),u(n)&&u(n[r])&&(D(n[r])||H(n[r])||!e.length)?(n=n[r],r=""):e.length?r+=".":n=void 0;while(e.length);return n}function se(n,r,e){let t=r.split("."),s=n;for(let i=0;i<t.length;i++){let a=t[i];i===t.length-1?s[a]=e:((!s[a]||!D(s[a]))&&(s[a]={}),s=s[a])}}var d=class{},k=(()=>{class n extends d{templateMatcher=/{{\s?([^{}\s]*)\s?}}/g;interpolate(e,t){if($(e))return this.interpolateString(e,t);if(ne(e))return this.interpolateFunction(e,t)}interpolateFunction(e,t){return e(t)}interpolateString(e,t){return t?e.replace(this.templateMatcher,(s,i)=>{let a=x(t,i);return u(a)?a:s}):e}static \u0275fac=(()=>{let e;return function(s){return(e||(e=w(n)))(s||n)}})();static \u0275prov=h({token:n,factory:n.\u0275fac})}return n})(),g=class{},ee=(()=>{class n extends g{compile(e,t){return e}compileTranslations(e,t){return e}static \u0275fac=(()=>{let e;return function(s){return(e||(e=w(n)))(s||n)}})();static \u0275prov=h({token:n,factory:n.\u0275fac})}return n})(),m=class{defaultLang;currentLang=this.defaultLang;translations={};langs=[];onTranslationChange=new S;onLangChange=new S;onDefaultLangChange=new S},O=new v("ISOLATE_TRANSLATE_SERVICE"),U=new v("USE_DEFAULT_LANG"),_=new v("DEFAULT_LANGUAGE"),B=new v("USE_EXTEND"),C=n=>f(n)?n:p(n),G=(()=>{class n{store;currentLoader;compiler;parser;missingTranslationHandler;useDefaultLang;extend;loadingTranslations;pending=!1;_translationRequests={};lastUseLanguage=null;get onTranslationChange(){return this.store.onTranslationChange}get onLangChange(){return this.store.onLangChange}get onDefaultLangChange(){return this.store.onDefaultLangChange}get defaultLang(){return this.store.defaultLang}set defaultLang(e){this.store.defaultLang=e}get currentLang(){return this.store.currentLang}set currentLang(e){this.store.currentLang=e}get langs(){return this.store.langs}set langs(e){this.store.langs=e}get translations(){return this.store.translations}set translations(e){this.store.translations=e}constructor(e,t,s,i,a,A=!0,l=!1,T=!1,y){this.store=e,this.currentLoader=t,this.compiler=s,this.parser=i,this.missingTranslationHandler=a,this.useDefaultLang=A,this.extend=T,l&&(this.store=new m),y&&this.setDefaultLang(y)}setDefaultLang(e){if(e===this.defaultLang)return;let t=this.retrieveTranslations(e);typeof t<"u"?(this.defaultLang==null&&(this.defaultLang=e),t.pipe(L(1)).subscribe(()=>{this.changeDefaultLang(e)})):this.changeDefaultLang(e)}getDefaultLang(){return this.defaultLang}use(e){if(this.lastUseLanguage=e,e===this.currentLang)return p(this.translations[e]);this.currentLang||(this.currentLang=e);let t=this.retrieveTranslations(e);return f(t)?(t.pipe(L(1)).subscribe(()=>{this.changeLang(e)}),t):(this.changeLang(e),p(this.translations[e]))}changeLang(e){e===this.lastUseLanguage&&(this.currentLang=e,this.onLangChange.emit({lang:e,translations:this.translations[e]}),this.defaultLang==null&&this.changeDefaultLang(e))}retrieveTranslations(e){if(typeof this.translations[e]>"u"||this.extend)return this._translationRequests[e]=this._translationRequests[e]||this.loadAndCompileTranslations(e),this._translationRequests[e]}getTranslation(e){return this.loadAndCompileTranslations(e)}loadAndCompileTranslations(e){this.pending=!0;let t=this.currentLoader.getTranslation(e).pipe(R(1),L(1));return this.loadingTranslations=t.pipe(V(s=>this.compiler.compileTranslations(s,e)),R(1),L(1)),this.loadingTranslations.subscribe({next:s=>{this.translations[e]=this.extend&&this.translations[e]?I(I({},s),this.translations[e]):s,this.updateLangs(),this.pending=!1},error:s=>{this.pending=!1}}),t}setTranslation(e,t,s=!1){let i=this.compiler.compileTranslations(t,e);(s||this.extend)&&this.translations[e]?this.translations[e]=K(this.translations[e],i):this.translations[e]=i,this.updateLangs(),this.onTranslationChange.emit({lang:e,translations:this.translations[e]})}getLangs(){return this.langs}addLangs(e){let t=e.filter(s=>!this.langs.includes(s));t.length>0&&(this.langs=[...this.langs,...t])}updateLangs(){this.addLangs(Object.keys(this.translations))}getParsedResultForKey(e,t,s){let i;if(e&&(i=this.runInterpolation(x(e,t),s)),i===void 0&&this.defaultLang!=null&&this.defaultLang!==this.currentLang&&this.useDefaultLang&&(i=this.runInterpolation(x(this.translations[this.defaultLang],t),s)),i===void 0){let a={key:t,translateService:this};typeof s<"u"&&(a.interpolateParams=s),i=this.missingTranslationHandler.handle(a)}return i!==void 0?i:t}runInterpolation(e,t){if(H(e))return e.map(s=>this.runInterpolation(s,t));if(D(e)){let s={};for(let i in e){let a=this.runInterpolation(e[i],t);a!==void 0&&(s[i]=a)}return s}else return this.parser.interpolate(e,t)}getParsedResult(e,t,s){if(t instanceof Array){let i={},a=!1;for(let l of t)i[l]=this.getParsedResultForKey(e,l,s),a=a||f(i[l]);if(!a)return i;let A=t.map(l=>C(i[l]));return q(A).pipe(V(l=>{let T={};return l.forEach((y,te)=>{T[t[te]]=y}),T}))}return this.getParsedResultForKey(e,t,s)}get(e,t){if(!u(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return this.pending?this.loadingTranslations.pipe(J(s=>C(this.getParsedResult(s,e,t)))):C(this.getParsedResult(this.translations[this.currentLang],e,t))}getStreamOnTranslationChange(e,t){if(!u(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return F(P(()=>this.get(e,t)),this.onTranslationChange.pipe(M(s=>{let i=this.getParsedResult(s.translations,e,t);return C(i)})))}stream(e,t){if(!u(e)||!e.length)throw new Error('Parameter "key" required');return F(P(()=>this.get(e,t)),this.onLangChange.pipe(M(s=>{let i=this.getParsedResult(s.translations,e,t);return C(i)})))}instant(e,t){if(!u(e)||e.length===0)throw new Error('Parameter "key" is required and cannot be empty');let s=this.getParsedResult(this.translations[this.currentLang],e,t);return f(s)?Array.isArray(e)?e.reduce((i,a)=>(i[a]=a,i),{}):e:s}set(e,t,s=this.currentLang){se(this.translations[s],e,$(t)?this.compiler.compile(t,s):this.compiler.compileTranslations(t,s)),this.updateLangs(),this.onTranslationChange.emit({lang:s,translations:this.translations[s]})}changeDefaultLang(e){this.defaultLang=e,this.onDefaultLangChange.emit({lang:e,translations:this.translations[e]})}reloadLang(e){return this.resetLang(e),this.loadAndCompileTranslations(e)}resetLang(e){delete this._translationRequests[e],delete this.translations[e]}getBrowserLang(){if(typeof window>"u"||!window.navigator)return;let e=this.getBrowserCultureLang();return e?e.split(/[-_]/)[0]:void 0}getBrowserCultureLang(){if(!(typeof window>"u"||typeof window.navigator>"u"))return window.navigator.languages?window.navigator.languages[0]:window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage}static \u0275fac=function(t){return new(t||n)(o(m),o(c),o(g),o(d),o(b),o(U),o(O),o(B),o(_))};static \u0275prov=h({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var ve=(()=>{class n{translate;_ref;value="";lastKey=null;lastParams=[];onTranslationChange;onLangChange;onDefaultLangChange;constructor(e,t){this.translate=e,this._ref=t}updateValue(e,t,s){let i=a=>{this.value=a!==void 0?a:e,this.lastKey=e,this._ref.markForCheck()};if(s){let a=this.translate.getParsedResult(s,e,t);f(a)?a.subscribe(i):i(a)}this.translate.get(e,t).subscribe(i)}transform(e,...t){if(!e||!e.length)return e;if(j(e,this.lastKey)&&j(t,this.lastParams))return this.value;let s;if(u(t[0])&&t.length)if($(t[0])&&t[0].length){let i=t[0].replace(/(')?([a-zA-Z0-9_]+)(')?(\s)?:/g,'"$2":').replace(/:(\s)?(')(.*?)(')/g,':"$3"');try{s=JSON.parse(i)}catch(a){throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${t[0]}`)}}else D(t[0])&&(s=t[0]);return this.lastKey=e,this.lastParams=t,this.updateValue(e,s),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(i=>{this.lastKey&&i.lang===this.translate.currentLang&&(this.lastKey=null,this.updateValue(e,s,i.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(i=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,s,i.translations))})),this.onDefaultLangChange||(this.onDefaultLangChange=this.translate.onDefaultLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,s))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onDefaultLangChange<"u"&&(this.onDefaultLangChange.unsubscribe(),this.onDefaultLangChange=void 0)}ngOnDestroy(){this._dispose()}static \u0275fac=function(t){return new(t||n)(N(G,16),N(Z,16))};static \u0275pipe=W({name:"translate",type:n,pure:!1});static \u0275prov=h({token:n,factory:n.\u0275fac})}return n})();var Ce=(()=>{class n{static forRoot(e={}){return{ngModule:n,providers:[e.loader||{provide:c,useClass:Q},e.compiler||{provide:g,useClass:ee},e.parser||{provide:d,useClass:k},e.missingTranslationHandler||{provide:b,useClass:Y},m,{provide:O,useValue:e.isolate},{provide:U,useValue:e.useDefaultLang},{provide:B,useValue:e.extend},{provide:_,useValue:e.defaultLanguage},G]}}static forChild(e={}){return{ngModule:n,providers:[e.loader||{provide:c,useClass:Q},e.compiler||{provide:g,useClass:ee},e.parser||{provide:d,useClass:k},e.missingTranslationHandler||{provide:b,useClass:Y},{provide:O,useValue:e.isolate},{provide:U,useValue:e.useDefaultLang},{provide:B,useValue:e.extend},{provide:_,useValue:e.defaultLanguage},G]}}static \u0275fac=function(t){return new(t||n)};static \u0275mod=z({type:n});static \u0275inj=X({})}return n})();export{G as a,ve as b,Ce as c};
@@ -1,4 +1,4 @@
1
- import{a as O}from"./chunk-MMPQXC6H.js";import{a as L}from"./chunk-BZVO3JIQ.js";import{c as P,e as I,l as D,y as H}from"./chunk-Z4CHNCHA.js";import{b as T}from"./chunk-HMOW3VNR.js";import{b as $}from"./chunk-4J45MC2M.js";import{b as y,j as k}from"./chunk-OAKLLAD6.js";import{a as E}from"./chunk-H3E4T6KH.js";import{$b as g,Bb as h,Mb as f,Rb as d,Wb as m,Xb as l,Yb as w,cc as _,dc as a,h as S,ib as s,na as r,nc as v,sc as b,tc as M,ub as x,uc as V,w as C,xa as c,ya as p}from"./chunk-KDJPDALB.js";function z(i,u){i&1&&w(0,"i",6)}function A(i,u){i&1&&w(0,"i",7)}function F(i,u){if(i&1){let t=g();m(0,"ngx-monaco-editor",10),_("onInit",function(e){c(t);let o=a();return p(o.onEditorInit(e))})("keydown.control.s",function(e){c(t);let o=a();return e.preventDefault(),p(o.onSave())})("keydown.meta.s",function(e){c(t);let o=a();return e.preventDefault(),p(o.onSave())}),l()}if(i&2){let t=a();f("options",t.editorOptions)("model",t.monacoEditorModel)}}function W(i,u){if(i&1){let t=g();m(0,"textarea",11),V("ngModelChange",function(e){c(t);let o=a();return M(o.startupScript,e)||(o.startupScript=e),p(e)}),v(1," "),l()}if(i&2){let t=a();b("ngModel",t.startupScript)}}var tt=(()=>{class i{$api=r(y);$md=r(L);$route=r(T);$settings=r($);$toastr=r(k);$translate=r(E);startupScript;saveInProgress;isMobile=!1;options={printMargin:!1};monacoEditor;editorOptions;monacoEditorModel;lastHeight;visualViewPortEventCallback;constructor(){this.isMobile=this.$md.detect.mobile()}ngOnInit(){this.editorOptions={language:"shell",theme:this.$settings.actualLightingMode==="dark"?"vs-dark":"vs-light",automaticLayout:!0},this.visualViewPortEventCallback=()=>this.visualViewPortChanged(),this.lastHeight=window.innerHeight,window.visualViewport&&!this.isMobile&&(window.visualViewport.addEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.disableTouchMove()),this.$route.data.subscribe(t=>{this.startupScript=t.startupScript.script}),this.monacoEditorModel={value:"",language:"shell"}}onEditorInit(t){this.monacoEditor=t,this.monacoEditor.getModel().setValue(this.startupScript)}onSave(){return S(this,null,function*(){if(!this.saveInProgress){if(this.saveInProgress=!0,this.isMobile||(yield this.monacoEditor.getAction("editor.action.formatDocument").run(),this.startupScript=this.monacoEditor.getModel().getValue()),!["#!/bin/sh","#!/bin/bash"].includes(this.startupScript.split(`
1
+ import{a as O}from"./chunk-5SBO5IQQ.js";import{a as L}from"./chunk-67EN4M44.js";import{c as P,e as I,l as D,y as H}from"./chunk-UUOIJNVA.js";import{b as T}from"./chunk-EBVMWV7Q.js";import{b as $}from"./chunk-CBI3LF3A.js";import{b as y,j as k}from"./chunk-HVJRSDCO.js";import{a as E}from"./chunk-Q4VBD4HY.js";import{Bb as h,Mb as f,Rb as d,Wb as m,Xb as l,Yb as w,ac as g,dc as _,ec as a,h as S,ib as s,na as r,oc as v,tc as b,ub as x,uc as M,vc as V,w as C,xa as c,ya as p}from"./chunk-NHJLTSH3.js";function z(i,u){i&1&&w(0,"i",6)}function A(i,u){i&1&&w(0,"i",7)}function F(i,u){if(i&1){let t=g();m(0,"ngx-monaco-editor",10),_("onInit",function(e){c(t);let o=a();return p(o.onEditorInit(e))})("keydown.control.s",function(e){c(t);let o=a();return e.preventDefault(),p(o.onSave())})("keydown.meta.s",function(e){c(t);let o=a();return e.preventDefault(),p(o.onSave())}),l()}if(i&2){let t=a();f("options",t.editorOptions)("model",t.monacoEditorModel)}}function W(i,u){if(i&1){let t=g();m(0,"textarea",11),V("ngModelChange",function(e){c(t);let o=a();return M(o.startupScript,e)||(o.startupScript=e),p(e)}),v(1," "),l()}if(i&2){let t=a();b("ngModel",t.startupScript)}}var tt=(()=>{class i{$api=r(y);$md=r(L);$route=r(T);$settings=r($);$toastr=r(k);$translate=r(E);startupScript;saveInProgress;isMobile=!1;options={printMargin:!1};monacoEditor;editorOptions;monacoEditorModel;lastHeight;visualViewPortEventCallback;constructor(){this.isMobile=this.$md.detect.mobile()}ngOnInit(){this.editorOptions={language:"shell",theme:this.$settings.actualLightingMode==="dark"?"vs-dark":"vs-light",automaticLayout:!0},this.visualViewPortEventCallback=()=>this.visualViewPortChanged(),this.lastHeight=window.innerHeight,window.visualViewport&&!this.isMobile&&(window.visualViewport.addEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.disableTouchMove()),this.$route.data.subscribe(t=>{this.startupScript=t.startupScript.script}),this.monacoEditorModel={value:"",language:"shell"}}onEditorInit(t){this.monacoEditor=t,this.monacoEditor.getModel().setValue(this.startupScript)}onSave(){return S(this,null,function*(){if(!this.saveInProgress){if(this.saveInProgress=!0,this.isMobile||(yield this.monacoEditor.getAction("editor.action.formatDocument").run(),this.startupScript=this.monacoEditor.getModel().getValue()),!["#!/bin/sh","#!/bin/bash"].includes(this.startupScript.split(`
2
2
  `)[0].trim())){this.$toastr.error(this.$translate.instant("platform.docker.must_use_hashbang"),this.$translate.instant("toast.title_error")),this.startupScript=`#!/bin/sh
3
3
 
4
4
  ${this.startupScript}`,this.isMobile||this.monacoEditor.getModel().setValue(this.startupScript),this.saveInProgress=!1;return}try{yield C(this.$api.put("/platform-tools/docker/startup-script",{script:this.startupScript})),this.$toastr.success(this.$translate.instant("platform.docker.restart_required"),this.$translate.instant("platform.docker.script_saved"))}catch(t){console.error(t),this.$toastr.error(t.message,this.$translate.instant("toast.title_error"))}this.saveInProgress=!1}})}visualViewPortChanged(){this.lastHeight<window.visualViewport.height&&document.activeElement.blur(),window.visualViewport.height<window.innerHeight?(this.$md.enableTouchMove(),this.lastHeight=window.visualViewport.height):window.visualViewport.height===window.innerHeight&&(this.$md.disableTouchMove(),this.lastHeight=window.visualViewport.height)}ngOnDestroy(){window.visualViewport&&(window.visualViewport.removeEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.enableTouchMove()),this.monacoEditor&&this.monacoEditor.dispose()}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=x({type:i,selectors:[["ng-component"]],decls:11,vars:5,consts:[[1,"flex-column","d-flex","align-items-stretch","h-100"],[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0","text-monospace"],[1,"col-6","text-right"],[1,"btn","btn-primary","waves-effect","m-0",3,"click","disabled"],[1,"fas","fa-fw","fa-floppy-disk"],[1,"fas","fa-fw","fa-spinner","fa-pulse"],[1,"flex-grow-1","h-100","w-100","my-2",3,"options","model"],["wrap","off","autocomplete","off","autocorrect","off","autocapitalize","off","spellcheck","false",1,"hb-plain-text-editor","align-self-end","h-100","w-100","my-2",3,"ngModel"],[1,"flex-grow-1","h-100","w-100","my-2",3,"onInit","keydown.control.s","keydown.meta.s","options","model"],["wrap","off","autocomplete","off","autocorrect","off","autocapitalize","off","spellcheck","false",1,"hb-plain-text-editor","align-self-end","h-100","w-100","my-2",3,"ngModelChange","ngModel"]],template:function(n,e){n&1&&(m(0,"div",0)(1,"div",1)(2,"div",2)(3,"h3",3),v(4,"startup.sh"),l()(),m(5,"div",4)(6,"button",5),_("click",function(){return e.onSave()}),h(7,z,1,0,"i",6)(8,A,1,0,"i",7),l()()(),h(9,F,1,2,"ngx-monaco-editor",8)(10,W,2,1,"textarea",9),l()),n&2&&(s(6),f("disabled",e.saveInProgress),s(),d(e.saveInProgress?-1:7),s(),d(e.saveInProgress?8:-1),s(),d(e.isMobile?-1:9),s(),d(e.isMobile?10:-1))},dependencies:[O,H,P,I,D],encapsulation:2})}return i})();export{tt as a};
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-27FPUPTN.js";import"./chunk-J4I2UKEG.js";import"./chunk-UUOIJNVA.js";import"./chunk-EBVMWV7Q.js";import"./chunk-CBI3LF3A.js";import"./chunk-HVJRSDCO.js";import"./chunk-YXTLNUTK.js";import"./chunk-Q4VBD4HY.js";import"./chunk-NHJLTSH3.js";export{a as PowerOptionsComponent};
@@ -0,0 +1 @@
1
+ import{a as X}from"./chunk-V6DGQLQO.js";import{n as Q}from"./chunk-J4I2UKEG.js";import{c as D,d as C,e as G,f as j,g as H,j as F,m as A,p as q,q as L,y as K,z as J}from"./chunk-UUOIJNVA.js";import{e as N}from"./chunk-EBVMWV7Q.js";import{c as W}from"./chunk-33OXRXUC.js";import{b as R}from"./chunk-CBI3LF3A.js";import{a as z,b as B,j as O}from"./chunk-HVJRSDCO.js";import{l as M}from"./chunk-YXTLNUTK.js";import{a as P,b as V}from"./chunk-Q4VBD4HY.js";import{Bb as I,Cc as s,Dc as l,Mb as _,Rb as f,Wb as i,Xb as o,Yb as c,ac as y,bd as E,dc as b,ec as m,h as w,ib as t,na as g,oc as a,pc as d,qc as v,ub as T,w as S,xa as x,ya as h,yc as $,zc as k}from"./chunk-NHJLTSH3.js";var U=(n,u)=>({"is-valid":n,"is-invalid":u}),Z=n=>({"button-loading":n});function ee(n,u){if(n&1){let e=y();i(0,"div",2),c(1,"img",3),i(2,"h3",4),a(3),s(4,"translate"),o(),i(5,"button",5),b("click",function(){x(e);let p=m();return h(p.onClickGettingStarted())}),a(6),s(7,"translate"),o(),i(8,"small",6)(9,"a",7),b("click",function(){x(e);let p=m();return h(p.onClickRestoreBackup())}),a(10),s(11,"translate"),o()()()}n&2&&(t(3),d(l(4,3,"setup.welcome_to_homebridge")),t(3),v(" ",l(7,5,"setup.button_get_started")," "),t(4),d(l(11,7,"setup_wizard_message_restore")))}function te(n,u){if(n&1){let e=y();i(0,"div",2),c(1,"img",8),i(2,"h3",4),a(3),s(4,"translate"),o(),i(5,"div",9)(6,"p"),a(7),s(8,"translate"),o(),i(9,"form",10),b("ngSubmit",function(){x(e);let p=m();return h(p.createFirstUser())}),i(10,"div",11),c(11,"i",12)(12,"input",13),i(13,"label",14),a(14),s(15,"translate"),o()(),i(16,"div",11),c(17,"i",15)(18,"input",16),i(19,"label",17),a(20),s(21,"translate"),o()(),i(22,"div",11),c(23,"i",15)(24,"input",18),i(25,"label",19),a(26),s(27,"translate"),o()(),i(28,"div",20)(29,"button",21),a(30),s(31,"translate"),c(32,"i",22),o()()()()()}if(n&2){let e=m();t(3),d(l(4,15,"setup.create_account")),t(4),d(l(8,17,"setup.create_account_reason")),t(2),_("formGroup",e.createUserForm),t(3),_("readonly",e.loading)("ngClass",k(27,U,e.createUserForm.controls.username.dirty&&e.createUserForm.controls.username.valid,e.createUserForm.controls.username.dirty&&e.createUserForm.controls.username.invalid)),t(2),d(l(15,19,"users.label_username")),t(4),_("readonly",e.loading)("ngClass",k(30,U,e.createUserForm.controls.password.dirty&&e.createUserForm.controls.password.valid,e.createUserForm.controls.password.dirty&&e.createUserForm.controls.password.errors)),t(2),d(l(21,21,"users.label_password")),t(4),_("readonly",e.loading)("ngClass",k(33,U,e.createUserForm.controls.passwordConfirm.dirty&&e.createUserForm.controls.passwordConfirm.valid,e.createUserForm.controls.passwordConfirm.dirty&&e.createUserForm.controls.passwordConfirm.errors)),t(2),d(l(27,23,"users.label_confirm_password")),t(3),_("disabled",e.createUserForm.invalid||e.loading)("ngClass",$(36,Z,e.loading)),t(),v(" ",l(31,25,"setup.create_account")," ")}}function ie(n,u){n&1&&(i(0,"span"),c(1,"i",29),a(2),s(3,"translate"),o()),n&2&&(t(2),v(" ",l(3,1,"backup.label_uploading")," "))}function ne(n,u){n&1&&(i(0,"span"),a(1),s(2,"translate"),o()),n&2&&(t(),d(l(2,1,"backup.button_restore_backup")))}function oe(n,u){if(n&1){let e=y();i(0,"div",2),c(1,"img",8),i(2,"h3",4),a(3),s(4,"translate"),o(),i(5,"p"),a(6),s(7,"translate"),o(),i(8,"div",23)(9,"input",24),b("change",function(p){x(e);let Y=m();return h(Y.handleRestoreFileInput(p.target.files))}),o(),i(10,"label",25),a(11),s(12,"translate"),o()(),i(13,"div",26)(14,"button",27),b("click",function(){x(e);let p=m();return h(p.onClickCancelRestore())}),a(15),s(16,"translate"),o(),i(17,"button",28),b("click",function(){x(e);let p=m();return h(p.onRestoreBackupClick())}),I(18,ie,4,3,"span")(19,ne,3,3,"span"),o()()()}if(n&2){let e=m();t(3),d(l(4,8,"form.button_restore")),t(3),d(l(7,10,"backup.restore_help_one")),t(5),v(" ",l(12,12,(e.selectedFile==null?null:e.selectedFile.name)||"backup.label_choose_backup_file_to_restore")," "),t(3),_("disabled",e.restoreUploadStarted),t(),v(" ",l(16,14,"form.button_cancel")," "),t(2),_("disabled",e.restoreUploading||!e.selectedFile),t(),f(e.restoreUploading?18:-1),t(),f(e.restoreUploading?-1:19)}}function re(n,u){n&1&&(i(0,"div",2),c(1,"img",8),i(2,"h3",4),a(3),s(4,"translate"),o(),i(5,"h1"),c(6,"i",29),o()()),n&2&&(t(3),d(l(4,1,"restart.title_restart")))}function ae(n,u){n&1&&(i(0,"div",2),c(1,"img",8),i(2,"h3",30),a(3),s(4,"translate"),o(),i(5,"p",31),a(6),s(7,"translate"),o(),i(8,"a",32),a(9),s(10,"translate"),o()()),n&2&&(t(3),d(l(4,3,"setup_wizard_message_complete_title")),t(3),d(l(7,5,"setup_wizard_message_complete_message")),t(3),d(l(10,7,"setup.open_dashboard")))}var ye=(()=>{class n{$api=g(B);$auth=g(W);$modal=g(Q);$settings=g(R);$title=g(M);$toastr=g(O);$translate=g(P);previousTitle;step="welcome";createUserForm=new H({username:new F("",[C.required]),password:new F("",[C.compose([C.required,C.minLength(4)])]),passwordConfirm:new F("",[C.required])},this.matchPassword);loading=!1;selectedFile;restoreUploading=!1;constructor(){}ngOnInit(){this.previousTitle=this.$title.getTitle(),this.$title.setTitle("Setup Homebridge")}matchPassword(e){let r=e.get("password").value,p=e.get("passwordConfirm").value;if(r!==p)e.get("passwordConfirm").setErrors({matchPassword:!0});else return null}ngOnDestroy(){this.$title.setTitle(this.previousTitle)}onClickGettingStarted(){this.step="create-account"}onClickRestoreBackup(){this.step="restore-backup"}onClickCancelRestore(){this.selectedFile=null,this.step="welcome"}createFirstUser(){this.loading=!0;let e=this.createUserForm.getRawValue();e.name=e.username,this.$api.post("/setup-wizard/create-first-user",e).subscribe({next:()=>w(this,null,function*(){this.$settings.env.setupWizardComplete=!0,yield this.$auth.login({username:e.username,password:e.password}),this.step="setup-complete"}),error:r=>{this.loading=!1,console.error(r),this.$toastr.error(r.error.message||this.$translate.instant("users.toast_failed_to_add_user"),this.$translate.instant("toast.title_error"))}})}handleRestoreFileInput(e){e.length?this.selectedFile=e[0]:delete this.selectedFile}onRestoreBackupClick(){this.restoreUploading=!0,this.uploadHomebridgeArchive()}uploadHomebridgeArchive(){return w(this,null,function*(){try{let e=yield S(this.$api.get("/setup-wizard/get-setup-wizard-token"));window.localStorage.setItem(z.jwt.tokenKey,e.access_token),this.$auth.token=e.access_token;let r=new FormData;r.append("restoreArchive",this.selectedFile,this.selectedFile.name),yield S(this.$api.post("/backup/restore",r)),this.openRestoreModal(),this.restoreUploading=!1}catch(e){this.restoreUploading=!1,console.error(e),this.$toastr.error(e.error.message||this.$translate.instant("users.toast_failed_to_add_user"),this.$translate.instant("toast.title_error"))}})}openRestoreModal(){let e=this.$modal.open(X,{size:"lg",backdrop:"static"});e.componentInstance.setupWizardRestore=!0,e.result.then(r=>{r===!0&&this.waitForHomebridgeToRestart()})}waitForHomebridgeToRestart(){return w(this,null,function*(){this.step="restarting",window.localStorage.removeItem(z.jwt.tokenKey),this.$auth.token=null,yield new Promise(r=>setTimeout(r,15e3));let e=setInterval(()=>w(this,null,function*(){try{yield S(this.$api.get("/auth/settings")),clearInterval(e),location.reload()}catch{}}),1e3)})}static \u0275fac=function(r){return new(r||n)};static \u0275cmp=T({type:n,selectors:[["ng-component"]],decls:7,vars:5,consts:[[1,"setup-container","d-flex","align-items-center","justify-content-center"],[1,"w-100","setup-card","d-flex","py-5"],[1,"w-100","d-flex","flex-column","align-items-center"],["src","/assets/homebridge-color-round.svg","alt","hb logo",1,"homebridge-logo","mx-auto"],[1,"pt-4","pb-3","text-center"],["type","button",1,"btn","btn-lg","btn-primary",3,"click"],[1,"mt-3"],["href","javascript:void(0)",1,"grey-text",3,"click"],["src","/assets/homebridge-color-round.svg","alt","hb logo",1,"homebridge-logo","homebridge-logo-small","mx-auto"],[1,"w-100"],["novalidate","",3,"ngSubmit","formGroup"],[1,"md-form"],[1,"fas","fa-fw","fa-user","prefix","grey-text"],["formControlName","username","type","text","id","form-username","autocomplete","username","autocapitalize","none","tabindex","1",1,"form-control","px-0",3,"readonly","ngClass"],["for","form-username"],[1,"fas","fa-fw","fa-lock","prefix","grey-text"],["formControlName","password","type","password","id","form-pass","autocomplete","new-password","tabindex","2",1,"form-control","px-0",3,"readonly","ngClass"],["for","form-pass"],["formControlName","passwordConfirm","type","password","id","form-pass-confirm","autocomplete","new-password","tabindex","2",1,"form-control","px-0",3,"readonly","ngClass"],["for","form-pass-confirm"],[1,"w-100","text-center"],["type","submit",1,"btn","btn-primary",3,"disabled","ngClass"],[1,"button-loading-overlay","fas","fa-fw","fa-spinner","fa-pulse"],[1,"custom-file"],["type","file","id","restoreFileUpload","accept","application/gzip, .gz",1,"custom-file-input",3,"change"],["for","restoreFileUpload",1,"custom-file-label"],[1,"mt-3","w-100","d-flex","justify-content-between"],["type","button",1,"btn","btn-elegant","ml-0",3,"click","disabled"],["type","button",1,"btn","btn-primary","mr-0",3,"click","disabled"],[1,"fas","fa-fw","fa-spinner","fa-pulse"],[1,"pt-4","pb-3"],[1,"text-center"],["routerLink","/",1,"btn","btn-lg","btn-primary","mt-3"]],template:function(r,p){r&1&&(i(0,"div",0)(1,"div",1),I(2,ee,12,9,"div",2)(3,te,33,38,"div",2)(4,oe,20,16,"div",2)(5,re,7,3,"div",2)(6,ae,11,9,"div",2),o()()),r&2&&(t(2),f(p.step==="welcome"?2:-1),t(),f(p.step==="create-account"?3:-1),t(),f(p.step==="restore-backup"?4:-1),t(),f(p.step==="restarting"?5:-1),t(),f(p.step==="setup-complete"?6:-1))},dependencies:[K,A,D,G,j,J,q,L,E,N,V],styles:[".setup-container[_ngcontent-%COMP%]{background-size:cover;z-index:-1;padding-top:1em;padding-bottom:1em}@media screen and (min-height: 500px) and (min-width: 600px){.setup-container[_ngcontent-%COMP%]{padding-top:4em}}.setup-card[_ngcontent-%COMP%]{max-width:600px;border-radius:15px;background-color:#fff;padding-right:25px;padding-left:25px}.setup-card[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%]:focus{background-color:inherit!important}@media screen and (max-width: 600px){.setup-card[_ngcontent-%COMP%]{margin-left:1em;margin-right:1em}} body.dark-mode .setup-card{background-color:#2b2b2b;color:#fff}.homebridge-logo[_ngcontent-%COMP%]{margin-right:10px;height:200px}@media screen and (max-height: 500px){.homebridge-logo[_ngcontent-%COMP%]{height:100px}}@media screen and (max-width: 600px){.homebridge-logo[_ngcontent-%COMP%]{height:100px}}.homebridge-logo-small[_ngcontent-%COMP%]{height:50px}.button-loading[_ngcontent-%COMP%]{position:relative;color:#0000}.button-loading[_ngcontent-%COMP%] .button-loading-overlay[_ngcontent-%COMP%]{display:block;color:#fff}.button-loading-overlay[_ngcontent-%COMP%]{display:none;position:absolute;top:9px;left:0;right:0}small[_ngcontent-%COMP%] a[_ngcontent-%COMP%]:hover{text-decoration:underline}"]})}return n})();export{ye as a};
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-2F3XEUAD.js";import"./chunk-E2YV2VI5.js";import"./chunk-IF47NAUS.js";import"./chunk-LJNOSMWT.js";import"./chunk-E4LCOK4T.js";import"./chunk-33OXRXUC.js";import"./chunk-CBI3LF3A.js";import"./chunk-HVJRSDCO.js";import"./chunk-YXTLNUTK.js";import"./chunk-Q4VBD4HY.js";import"./chunk-NHJLTSH3.js";export{a as TerminalComponent};
@@ -0,0 +1 @@
1
+ import{a as f}from"./chunk-K2VKBYPF.js";import{a as s}from"./chunk-GZ5DOCVG.js";import"./chunk-75LZTZGF.js";import"./chunk-PH3WWITU.js";import"./chunk-YQQIYYEJ.js";import"./chunk-YSOWPBAG.js";import"./chunk-5SBO5IQQ.js";import"./chunk-2DMDQOK2.js";import"./chunk-JHT7FCNA.js";import"./chunk-IF47NAUS.js";import"./chunk-CEFSEL4J.js";import"./chunk-LJNOSMWT.js";import"./chunk-FCTX2YEK.js";import"./chunk-JHGDWS5G.js";import"./chunk-67EN4M44.js";import"./chunk-NNPWW7QY.js";import{q as p}from"./chunk-J4I2UKEG.js";import{y as u,z as l}from"./chunk-UUOIJNVA.js";import"./chunk-E4LCOK4T.js";import{g as e}from"./chunk-EBVMWV7Q.js";import"./chunk-33OXRXUC.js";import"./chunk-CBI3LF3A.js";import"./chunk-HVJRSDCO.js";import"./chunk-YXTLNUTK.js";import{c as m}from"./chunk-Q4VBD4HY.js";import{ia as t,nd as n,vb as r}from"./chunk-NHJLTSH3.js";var g=[{path:"",loadComponent:()=>import("./chunk-F3YCS6HT.js").then(o=>o.PluginsComponent)}],d=(()=>{class o{static \u0275fac=function(i){return new(i||o)};static \u0275mod=r({type:o});static \u0275inj=t({imports:[e.forChild(g),e]})}return o})();var v=(()=>{class o{static \u0275fac=function(i){return new(i||o)};static \u0275mod=r({type:o});static \u0275inj=t({imports:[n,u,l,m.forChild(),p,f,d,s]})}return o})();export{v as PluginsModule};
@@ -0,0 +1 @@
1
+ import{a as j}from"./chunk-CKXSP7IR.js";import"./chunk-AGHJJT2B.js";import"./chunk-YSOWPBAG.js";import{c as y}from"./chunk-5SBO5IQQ.js";import"./chunk-67EN4M44.js";import{q as h}from"./chunk-J4I2UKEG.js";import{y as M,z as v}from"./chunk-UUOIJNVA.js";import{d as C,g as a}from"./chunk-EBVMWV7Q.js";import"./chunk-CBI3LF3A.js";import{b as l,j as g}from"./chunk-HVJRSDCO.js";import"./chunk-YXTLNUTK.js";import{a as d,c as u}from"./chunk-Q4VBD4HY.js";import{h as s,ha as c,ia as i,na as e,nd as p,vb as n,w as f}from"./chunk-NHJLTSH3.js";var m=(()=>{class o{$api=e(l);$router=e(C);$toastr=e(g);$translate=e(d);constructor(){}resolve(){return s(this,null,function*(){try{let r=yield f(this.$api.get("/config-editor"));return JSON.stringify(r,null,4)}catch(r){console.error(r),this.$toastr.error(r.message,this.$translate.instant("toast.title_error")),this.$router.navigate(["/"])}})}static \u0275fac=function(t){return new(t||o)};static \u0275prov=c({token:o,factory:o.\u0275fac})}return o})();var $=[{path:"",loadComponent:()=>import("./chunk-LXRPNSLW.js").then(o=>o.ConfigEditorComponent),resolve:{config:m}}],R=(()=>{class o{static \u0275fac=function(t){return new(t||o)};static \u0275mod=n({type:o});static \u0275inj=i({imports:[a.forChild($),a]})}return o})();var Q=(()=>{class o{static \u0275fac=function(t){return new(t||o)};static \u0275mod=n({type:o});static \u0275inj=i({providers:[m],imports:[p,M,v,y,h,u.forChild(),R,j]})}return o})();export{Q as ConfigEditorModule};
@@ -1 +1 @@
1
- import{Aa as g,D as Ee,Fa as y,Hb as Fe,Hc as we,Ja as O,Kc as Ie,Lb as Z,Lc as w,Mc as m,Ob as ae,Pc as le,a as h,b as f,cc as C,ea as $,ga as d,ia as q,jb as o,ka as M,n as be,ob as x,q as Ae,qb as F,vb as z,vc as c,wa as E,wb as l,x as Me,yb as u}from"./chunk-KDJPDALB.js";var Te=(()=>{class n{_renderer;_elementRef;onChange=e=>{};onTouched=()=>{};constructor(e,i){this._renderer=e,this._elementRef=i}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}static \u0275fac=function(i){return new(i||n)(o(x),o(O))};static \u0275dir=l({type:n})}return n})(),H=(()=>{class n extends Te{static \u0275fac=(()=>{let e;return function(r){return(e||(e=g(n)))(r||n)}})();static \u0275dir=l({type:n,features:[u]})}return n})(),b=new M(""),dt={provide:b,useExisting:d(()=>ct),multi:!0},ct=(()=>{class n extends H{writeValue(e){this.setProperty("checked",e)}static \u0275fac=(()=>{let e;return function(r){return(e||(e=g(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(i,r){i&1&&C("change",function(a){return r.onChange(a.target.checked)})("blur",function(){return r.onTouched()})},standalone:!1,features:[c([dt]),u]})}return n})(),ht={provide:b,useExisting:d(()=>je),multi:!0};function ft(){let n=le()?le().getUserAgent():"";return/android (\d+)/.test(n.toLowerCase())}var pt=new M(""),je=(()=>{class n extends Te{_compositionMode;_composing=!1;constructor(e,i,r){super(e,i),this._compositionMode=r,this._compositionMode==null&&(this._compositionMode=!ft())}writeValue(e){let i=e==null?"":e;this.setProperty("value",i)}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}static \u0275fac=function(i){return new(i||n)(o(x),o(O),o(pt,8))};static \u0275dir=l({type:n,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,r){i&1&&C("input",function(a){return r._handleInput(a.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(a){return r._compositionEnd(a.target.value)})},standalone:!1,features:[c([ht]),u]})}return n})();function V(n){return n==null||(typeof n=="string"||Array.isArray(n))&&n.length===0}function Be(n){return n!=null&&typeof n.length=="number"}var A=new M(""),L=new M(""),gt=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Se=class{static min(t){return Ue(t)}static max(t){return He(t)}static required(t){return mt(t)}static requiredTrue(t){return _t(t)}static email(t){return vt(t)}static minLength(t){return yt(t)}static maxLength(t){return Ct(t)}static pattern(t){return Le(t)}static nullValidator(t){return Y(t)}static compose(t){return Xe(t)}static composeAsync(t){return Ye(t)}};function Ue(n){return t=>{if(V(t.value)||V(n))return null;let e=parseFloat(t.value);return!isNaN(e)&&e<n?{min:{min:n,actual:t.value}}:null}}function He(n){return t=>{if(V(t.value)||V(n))return null;let e=parseFloat(t.value);return!isNaN(e)&&e>n?{max:{max:n,actual:t.value}}:null}}function mt(n){return V(n.value)?{required:!0}:null}function _t(n){return n.value===!0?null:{required:!0}}function vt(n){return V(n.value)||gt.test(n.value)?null:{email:!0}}function yt(n){return t=>V(t.value)||!Be(t.value)?null:t.value.length<n?{minlength:{requiredLength:n,actualLength:t.value.length}}:null}function Ct(n){return t=>Be(t.value)&&t.value.length>n?{maxlength:{requiredLength:n,actualLength:t.value.length}}:null}function Le(n){if(!n)return Y;let t,e;return typeof n=="string"?(e="",n.charAt(0)!=="^"&&(e+="^"),e+=n,n.charAt(n.length-1)!=="$"&&(e+="$"),t=new RegExp(e)):(e=n.toString(),t=n),i=>{if(V(i.value))return null;let r=i.value;return t.test(r)?null:{pattern:{requiredPattern:e,actualValue:r}}}}function Y(n){return null}function We(n){return n!=null}function $e(n){return Fe(n)?Ae(n):n}function qe(n){let t={};return n.forEach(e=>{t=e!=null?h(h({},t),e):t}),Object.keys(t).length===0?null:t}function ze(n,t){return t.map(e=>e(n))}function Vt(n){return!n.validate}function Ze(n){return n.map(t=>Vt(t)?t:e=>t.validate(e))}function Xe(n){if(!n)return null;let t=n.filter(We);return t.length==0?null:function(e){return qe(ze(e,t))}}function fe(n){return n!=null?Xe(Ze(n)):null}function Ye(n){if(!n)return null;let t=n.filter(We);return t.length==0?null:function(e){let i=ze(e,t).map($e);return Ee(i).pipe(Me(qe))}}function pe(n){return n!=null?Ye(Ze(n)):null}function Ne(n,t){return n===null?[t]:Array.isArray(n)?[...n,t]:[n,t]}function Ke(n){return n._rawValidators}function Je(n){return n._rawAsyncValidators}function ue(n){return n?Array.isArray(n)?n:[n]:[]}function K(n,t){return Array.isArray(n)?n.includes(t):n===t}function Oe(n,t){let e=ue(t);return ue(n).forEach(r=>{K(e,r)||e.push(r)}),e}function xe(n,t){return ue(t).filter(e=>!K(n,e))}var J=class{get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators=[];_rawAsyncValidators=[];_setValidators(t){this._rawValidators=t||[],this._composedValidatorFn=fe(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=pe(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_onDestroyCallbacks=[];_registerOnDestroy(t){this._onDestroyCallbacks.push(t)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(t=>t()),this._onDestroyCallbacks=[]}reset(t=void 0){this.control&&this.control.reset(t)}hasError(t,e){return this.control?this.control.hasError(t,e):!1}getError(t,e){return this.control?this.control.getError(t,e):null}},_=class extends J{name;get formDirective(){return null}get path(){return null}},v=class extends J{_parent=null;name=null;valueAccessor=null},Q=class{_cd;constructor(t){this._cd=t}get isTouched(){var t,e,i,r,s;return(i=(e=(t=this._cd)==null?void 0:t.control)==null?void 0:e._touched)==null||i.call(e),!!((s=(r=this._cd)==null?void 0:r.control)!=null&&s.touched)}get isUntouched(){var t,e;return!!((e=(t=this._cd)==null?void 0:t.control)!=null&&e.untouched)}get isPristine(){var t,e,i,r,s;return(i=(e=(t=this._cd)==null?void 0:t.control)==null?void 0:e._pristine)==null||i.call(e),!!((s=(r=this._cd)==null?void 0:r.control)!=null&&s.pristine)}get isDirty(){var t,e;return!!((e=(t=this._cd)==null?void 0:t.control)!=null&&e.dirty)}get isValid(){var t,e,i,r,s;return(i=(e=(t=this._cd)==null?void 0:t.control)==null?void 0:e._status)==null||i.call(e),!!((s=(r=this._cd)==null?void 0:r.control)!=null&&s.valid)}get isInvalid(){var t,e;return!!((e=(t=this._cd)==null?void 0:t.control)!=null&&e.invalid)}get isPending(){var t,e;return!!((e=(t=this._cd)==null?void 0:t.control)!=null&&e.pending)}get isSubmitted(){var t,e,i;return(e=(t=this._cd)==null?void 0:t._submitted)==null||e.call(t),!!((i=this._cd)!=null&&i.submitted)}},Dt={"[class.ng-untouched]":"isUntouched","[class.ng-touched]":"isTouched","[class.ng-pristine]":"isPristine","[class.ng-dirty]":"isDirty","[class.ng-valid]":"isValid","[class.ng-invalid]":"isInvalid","[class.ng-pending]":"isPending"},Dn=f(h({},Dt),{"[class.ng-submitted]":"isSubmitted"}),bn=(()=>{class n extends Q{constructor(e){super(e)}static \u0275fac=function(i){return new(i||n)(o(v,2))};static \u0275dir=l({type:n,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,r){i&2&&ae("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},standalone:!1,features:[u]})}return n})(),An=(()=>{class n extends Q{constructor(e){super(e)}static \u0275fac=function(i){return new(i||n)(o(_,10))};static \u0275dir=l({type:n,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,r){i&2&&ae("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)("ng-submitted",r.isSubmitted)},standalone:!1,features:[u]})}return n})();var P="VALID",X="INVALID",I="PENDING",k="DISABLED",D=class{},ee=class extends D{value;source;constructor(t,e){super(),this.value=t,this.source=e}},R=class extends D{pristine;source;constructor(t,e){super(),this.pristine=t,this.source=e}},T=class extends D{touched;source;constructor(t,e){super(),this.touched=t,this.source=e}},S=class extends D{status;source;constructor(t,e){super(),this.status=t,this.source=e}},de=class extends D{source;constructor(t){super(),this.source=t}},ce=class extends D{source;constructor(t){super(),this.source=t}};function ge(n){return(re(n)?n.validators:n)||null}function bt(n){return Array.isArray(n)?fe(n):n||null}function me(n,t){return(re(t)?t.asyncValidators:n)||null}function At(n){return Array.isArray(n)?pe(n):n||null}function re(n){return n!=null&&!Array.isArray(n)&&typeof n=="object"}function Qe(n,t,e){let i=n.controls;if(!(t?Object.keys(i):i).length)throw new $(1e3,"");if(!i[e])throw new $(1001,"")}function et(n,t,e){n._forEachChild((i,r)=>{if(e[r]===void 0)throw new $(1002,"")})}var j=class{_pendingDirty=!1;_hasOwnPendingAsyncValidator=null;_pendingTouched=!1;_onCollectionChange=()=>{};_updateOn;_parent=null;_asyncValidationSubscription;_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators;_rawAsyncValidators;value;constructor(t,e){this._assignValidators(t),this._assignAsyncValidators(e)}get validator(){return this._composedValidatorFn}set validator(t){this._rawValidators=this._composedValidatorFn=t}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(t){this._rawAsyncValidators=this._composedAsyncValidatorFn=t}get parent(){return this._parent}get status(){return m(this.statusReactive)}set status(t){m(()=>this.statusReactive.set(t))}_status=w(()=>this.statusReactive());statusReactive=F(void 0);get valid(){return this.status===P}get invalid(){return this.status===X}get pending(){return this.status==I}get disabled(){return this.status===k}get enabled(){return this.status!==k}errors;get pristine(){return m(this.pristineReactive)}set pristine(t){m(()=>this.pristineReactive.set(t))}_pristine=w(()=>this.pristineReactive());pristineReactive=F(!0);get dirty(){return!this.pristine}get touched(){return m(this.touchedReactive)}set touched(t){m(()=>this.touchedReactive.set(t))}_touched=w(()=>this.touchedReactive());touchedReactive=F(!1);get untouched(){return!this.touched}_events=new be;events=this._events.asObservable();valueChanges;statusChanges;get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(t){this._assignValidators(t)}setAsyncValidators(t){this._assignAsyncValidators(t)}addValidators(t){this.setValidators(Oe(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(Oe(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(xe(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(xe(t,this._rawAsyncValidators))}hasValidator(t){return K(this._rawValidators,t)}hasAsyncValidator(t){return K(this._rawAsyncValidators,t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){var r;let e=this.touched===!1;this.touched=!0;let i=(r=t.sourceControl)!=null?r:this;this._parent&&!t.onlySelf&&this._parent.markAsTouched(f(h({},t),{sourceControl:i})),e&&t.emitEvent!==!1&&this._events.next(new T(!0,i))}markAllAsTouched(t={}){this.markAsTouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsTouched(t))}markAsUntouched(t={}){var r;let e=this.touched===!0;this.touched=!1,this._pendingTouched=!1;let i=(r=t.sourceControl)!=null?r:this;this._forEachChild(s=>{s.markAsUntouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:i})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,i),e&&t.emitEvent!==!1&&this._events.next(new T(!1,i))}markAsDirty(t={}){var r;let e=this.pristine===!0;this.pristine=!1;let i=(r=t.sourceControl)!=null?r:this;this._parent&&!t.onlySelf&&this._parent.markAsDirty(f(h({},t),{sourceControl:i})),e&&t.emitEvent!==!1&&this._events.next(new R(!1,i))}markAsPristine(t={}){var r;let e=this.pristine===!1;this.pristine=!0,this._pendingDirty=!1;let i=(r=t.sourceControl)!=null?r:this;this._forEachChild(s=>{s.markAsPristine({onlySelf:!0,emitEvent:t.emitEvent})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t,i),e&&t.emitEvent!==!1&&this._events.next(new R(!0,i))}markAsPending(t={}){var i;this.status=I;let e=(i=t.sourceControl)!=null?i:this;t.emitEvent!==!1&&(this._events.next(new S(this.status,e)),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.markAsPending(f(h({},t),{sourceControl:e}))}disable(t={}){var r;let e=this._parentMarkedDirty(t.onlySelf);this.status=k,this.errors=null,this._forEachChild(s=>{s.disable(f(h({},t),{onlySelf:!0}))}),this._updateValue();let i=(r=t.sourceControl)!=null?r:this;t.emitEvent!==!1&&(this._events.next(new ee(this.value,i)),this._events.next(new S(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(f(h({},t),{skipPristineCheck:e}),this),this._onDisabledChange.forEach(s=>s(!0))}enable(t={}){let e=this._parentMarkedDirty(t.onlySelf);this.status=P,this._forEachChild(i=>{i.enable(f(h({},t),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors(f(h({},t),{skipPristineCheck:e}),this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(t,e){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine({},e),this._parent._updateTouched({},e))}setParent(t){this._parent=t}getRawValue(){return this.value}updateValueAndValidity(t={}){var i;if(this._setInitialStatus(),this._updateValue(),this.enabled){let r=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===P||this.status===I)&&this._runAsyncValidator(r,t.emitEvent)}let e=(i=t.sourceControl)!=null?i:this;t.emitEvent!==!1&&(this._events.next(new ee(this.value,e)),this._events.next(new S(this.status,e)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(f(h({},t),{sourceControl:e}))}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?k:P}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t,e){if(this.asyncValidator){this.status=I,this._hasOwnPendingAsyncValidator={emitEvent:e!==!1};let i=$e(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(r=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(r,{emitEvent:e,shouldHaveEmitted:t})})}}_cancelExistingSubscription(){var t,e;if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();let i=(e=(t=this._hasOwnPendingAsyncValidator)==null?void 0:t.emitEvent)!=null?e:!1;return this._hasOwnPendingAsyncValidator=null,i}return!1}setErrors(t,e={}){this.errors=t,this._updateControlsErrors(e.emitEvent!==!1,this,e.shouldHaveEmitted)}get(t){let e=t;return e==null||(Array.isArray(e)||(e=e.split(".")),e.length===0)?null:e.reduce((i,r)=>i&&i._find(r),this)}getError(t,e){let i=e?this.get(e):this;return i&&i.errors?i.errors[t]:null}hasError(t,e){return!!this.getError(t,e)}get root(){let t=this;for(;t._parent;)t=t._parent;return t}_updateControlsErrors(t,e,i){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),(t||i)&&this._events.next(new S(this.status,e)),this._parent&&this._parent._updateControlsErrors(t,e,i)}_initObservables(){this.valueChanges=new y,this.statusChanges=new y}_calculateStatus(){return this._allControlsDisabled()?k:this.errors?X:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(I)?I:this._anyControlsHaveStatus(X)?X:P}_anyControlsHaveStatus(t){return this._anyControls(e=>e.status===t)}_anyControlsDirty(){return this._anyControls(t=>t.dirty)}_anyControlsTouched(){return this._anyControls(t=>t.touched)}_updatePristine(t,e){let i=!this._anyControlsDirty(),r=this.pristine!==i;this.pristine=i,this._parent&&!t.onlySelf&&this._parent._updatePristine(t,e),r&&this._events.next(new R(this.pristine,e))}_updateTouched(t={},e){this.touched=this._anyControlsTouched(),this._events.next(new T(this.touched,e)),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,e)}_onDisabledChange=[];_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){re(t)&&t.updateOn!=null&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){let e=this._parent&&this._parent.dirty;return!t&&!!e&&!this._parent._anyControlsDirty()}_find(t){return null}_assignValidators(t){this._rawValidators=Array.isArray(t)?t.slice():t,this._composedValidatorFn=bt(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=At(this._rawAsyncValidators)}},B=class extends j{constructor(t,e,i){super(ge(e),me(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;registerControl(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(t,e,i={}){this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(t,e={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(t,e,i={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,e={}){et(this,!0,t),Object.keys(t).forEach(i=>{Qe(this,!0,i),this.controls[i].setValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){t!=null&&(Object.keys(t).forEach(i=>{let r=this.controls[i];r&&r.patchValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t={},e={}){this._forEachChild((i,r)=>{i.reset(t?t[r]:null,{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(t,e,i)=>(t[i]=e.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(e,i)=>i._syncPendingControls()?!0:e);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){Object.keys(this.controls).forEach(e=>{let i=this.controls[e];i&&t(i,e)})}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(let[e,i]of Object.entries(this.controls))if(this.contains(e)&&t(i))return!0;return!1}_reduceValue(){let t={};return this._reduceChildren(t,(e,i,r)=>((i.enabled||this.disabled)&&(e[r]=i.value),e))}_reduceChildren(t,e){let i=t;return this._forEachChild((r,s)=>{i=e(i,r,s)}),i}_allControlsDisabled(){for(let t of Object.keys(this.controls))if(this.controls[t].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(t){return this.controls.hasOwnProperty(t)?this.controls[t]:null}};var Mn=B;var N=new M("CallSetDisabledState",{providedIn:"root",factory:()=>se}),se="always";function tt(n,t){return[...t.path,n]}function U(n,t,e=se){var i,r;_e(n,t),t.valueAccessor.writeValue(n.value),(n.disabled||e==="always")&&((r=(i=t.valueAccessor).setDisabledState)==null||r.call(i,n.disabled)),Et(n,t),wt(n,t),Ft(n,t),Mt(n,t)}function te(n,t,e=!0){let i=()=>{};t.valueAccessor&&(t.valueAccessor.registerOnChange(i),t.valueAccessor.registerOnTouched(i)),ie(n,t),n&&(t._invokeOnDestroyCallbacks(),n._registerOnCollectionChange(()=>{}))}function ne(n,t){n.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(t)})}function Mt(n,t){if(t.valueAccessor.setDisabledState){let e=i=>{t.valueAccessor.setDisabledState(i)};n.registerOnDisabledChange(e),t._registerOnDestroy(()=>{n._unregisterOnDisabledChange(e)})}}function _e(n,t){let e=Ke(n);t.validator!==null?n.setValidators(Ne(e,t.validator)):typeof e=="function"&&n.setValidators([e]);let i=Je(n);t.asyncValidator!==null?n.setAsyncValidators(Ne(i,t.asyncValidator)):typeof i=="function"&&n.setAsyncValidators([i]);let r=()=>n.updateValueAndValidity();ne(t._rawValidators,r),ne(t._rawAsyncValidators,r)}function ie(n,t){let e=!1;if(n!==null){if(t.validator!==null){let r=Ke(n);if(Array.isArray(r)&&r.length>0){let s=r.filter(a=>a!==t.validator);s.length!==r.length&&(e=!0,n.setValidators(s))}}if(t.asyncValidator!==null){let r=Je(n);if(Array.isArray(r)&&r.length>0){let s=r.filter(a=>a!==t.asyncValidator);s.length!==r.length&&(e=!0,n.setAsyncValidators(s))}}}let i=()=>{};return ne(t._rawValidators,i),ne(t._rawAsyncValidators,i),e}function Et(n,t){t.valueAccessor.registerOnChange(e=>{n._pendingValue=e,n._pendingChange=!0,n._pendingDirty=!0,n.updateOn==="change"&&nt(n,t)})}function Ft(n,t){t.valueAccessor.registerOnTouched(()=>{n._pendingTouched=!0,n.updateOn==="blur"&&n._pendingChange&&nt(n,t),n.updateOn!=="submit"&&n.markAsTouched()})}function nt(n,t){n._pendingDirty&&n.markAsDirty(),n.setValue(n._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(n._pendingValue),n._pendingChange=!1}function wt(n,t){let e=(i,r)=>{t.valueAccessor.writeValue(i),r&&t.viewToModelUpdate(i)};n.registerOnChange(e),t._registerOnDestroy(()=>{n._unregisterOnChange(e)})}function it(n,t){n==null,_e(n,t)}function It(n,t){return ie(n,t)}function ve(n,t){if(!n.hasOwnProperty("model"))return!1;let e=n.model;return e.isFirstChange()?!0:!Object.is(t,e.currentValue)}function St(n){return Object.getPrototypeOf(n.constructor)===H}function rt(n,t){n._syncPendingControls(),t.forEach(e=>{let i=e.control;i.updateOn==="submit"&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function ye(n,t){if(!t)return null;Array.isArray(t);let e,i,r;return t.forEach(s=>{s.constructor===je?e=s:St(s)?i=s:r=s}),r||i||e||null}function Nt(n,t){let e=n.indexOf(t);e>-1&&n.splice(e,1)}var Ot={provide:_,useExisting:d(()=>xt)},G=Promise.resolve(),xt=(()=>{class n extends _{callSetDisabledState;get submitted(){return m(this.submittedReactive)}_submitted=w(()=>this.submittedReactive());submittedReactive=F(!1);_directives=new Set;form;ngSubmit=new y;options;constructor(e,i,r){super(),this.callSetDisabledState=r,this.form=new B({},fe(e),pe(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){G.then(()=>{let i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),U(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){G.then(()=>{let i=this._findContainer(e.path);i&&i.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){G.then(()=>{let i=this._findContainer(e.path),r=new B({});it(r,e),i.registerControl(e.name,r),r.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){G.then(()=>{let i=this._findContainer(e.path);i&&i.removeControl(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){G.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){var i;return this.submittedReactive.set(!0),rt(this.form,this._directives),this.ngSubmit.emit(e),((i=e==null?void 0:e.target)==null?void 0:i.method)==="dialog"}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submittedReactive.set(!1)}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.form._updateOn=this.options.updateOn)}_findContainer(e){return e.pop(),e.length?this.form.get(e):this.form}static \u0275fac=function(i){return new(i||n)(o(A,10),o(L,10),o(N,8))};static \u0275dir=l({type:n,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,r){i&1&&C("submit",function(a){return r.onSubmit(a)})("reset",function(){return r.onReset()})},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[c([Ot]),u]})}return n})();function Pe(n,t){let e=n.indexOf(t);e>-1&&n.splice(e,1)}function ke(n){return typeof n=="object"&&n!==null&&Object.keys(n).length===2&&"value"in n&&"disabled"in n}var Ce=class extends j{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(t=null,e,i){super(ge(e),me(i,e)),this._applyFormState(t),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),re(e)&&(e.nonNullable||e.initialValueIsDefault)&&(ke(t)?this.defaultValue=t.value:this.defaultValue=t)}setValue(t,e={}){this.value=this._pendingValue=t,this._onChange.length&&e.emitModelToViewChange!==!1&&this._onChange.forEach(i=>i(this.value,e.emitViewToModelChange!==!1)),this.updateValueAndValidity(e)}patchValue(t,e={}){this.setValue(t,e)}reset(t=this.defaultValue,e={}){this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){Pe(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){Pe(this._onDisabledChange,t)}_forEachChild(t){}_syncPendingControls(){return this.updateOn==="submit"&&(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),this._pendingChange)?(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),!0):!1}_applyFormState(t){ke(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t}},Fn=Ce,Pt=n=>n instanceof Ce;var kt={provide:v,useExisting:d(()=>Gt)},Ge=Promise.resolve(),Gt=(()=>{class n extends v{_changeDetectorRef;callSetDisabledState;control=new Ce;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new y;constructor(e,i,r,s,a,p){super(),this._changeDetectorRef=a,this.callSetDisabledState=p,this._parent=e,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=ye(this,s)}ngOnChanges(e){if(this._checkForErrors(),!this._registered||"name"in e){if(this._registered&&(this._checkName(),this.formDirective)){let i=e.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in e&&this._updateDisabled(e),ve(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!!(this.options&&this.options.standalone)}_setUpStandalone(){U(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),!this._isStandalone()&&this.name}_updateValue(e){Ge.then(()=>{var i;this.control.setValue(e,{emitViewToModelChange:!1}),(i=this._changeDetectorRef)==null||i.markForCheck()})}_updateDisabled(e){let i=e.isDisabled.currentValue,r=i!==0&&Ie(i);Ge.then(()=>{var s;r&&!this.control.disabled?this.control.disable():!r&&this.control.disabled&&this.control.enable(),(s=this._changeDetectorRef)==null||s.markForCheck()})}_getPath(e){return this._parent?tt(e,this._parent):[e]}static \u0275fac=function(i){return new(i||n)(o(_,9),o(A,10),o(L,10),o(b,10),o(we,8),o(N,8))};static \u0275dir=l({type:n,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],standalone:!1,features:[c([kt]),u,E]})}return n})(),wn=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=l({type:n,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""],standalone:!1})}return n})(),Rt={provide:b,useExisting:d(()=>Tt),multi:!0},Tt=(()=>{class n extends H{writeValue(e){let i=e==null?"":e;this.setProperty("value",i)}registerOnChange(e){this.onChange=i=>{e(i==""?null:parseFloat(i))}}static \u0275fac=(()=>{let e;return function(r){return(e||(e=g(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(i,r){i&1&&C("input",function(a){return r.onChange(a.target.value)})("blur",function(){return r.onTouched()})},standalone:!1,features:[c([Rt]),u]})}return n})();var Ve=new M(""),jt={provide:v,useExisting:d(()=>Bt)},Bt=(()=>{class n extends v{_ngModelWarningConfig;callSetDisabledState;viewModel;form;set isDisabled(e){}model;update=new y;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(e,i,r,s,a){super(),this._ngModelWarningConfig=s,this.callSetDisabledState=a,this._setValidators(e),this._setAsyncValidators(i),this.valueAccessor=ye(this,r)}ngOnChanges(e){if(this._isControlChanged(e)){let i=e.form.previousValue;i&&te(i,this,!1),U(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}ve(e,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&te(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_isControlChanged(e){return e.hasOwnProperty("form")}static \u0275fac=function(i){return new(i||n)(o(A,10),o(L,10),o(b,10),o(Ve,8),o(N,8))};static \u0275dir=l({type:n,selectors:[["","formControl",""]],inputs:{form:[0,"formControl","form"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],standalone:!1,features:[c([jt]),u,E]})}return n})(),Ut={provide:_,useExisting:d(()=>Ht)},Ht=(()=>{class n extends _{callSetDisabledState;get submitted(){return m(this._submittedReactive)}set submitted(e){this._submittedReactive.set(e)}_submitted=w(()=>this._submittedReactive());_submittedReactive=F(!1);_oldForm;_onCollectionChange=()=>this._updateDomValue();directives=[];form=null;ngSubmit=new y;constructor(e,i,r){super(),this.callSetDisabledState=r,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(ie(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(e){let i=this.form.get(e.path);return U(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){te(e.control||null,e,!1),Nt(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}getFormArray(e){return this.form.get(e.path)}updateModel(e,i){this.form.get(e.path).setValue(i)}onSubmit(e){var i;return this._submittedReactive.set(!0),rt(this.form,this.directives),this.ngSubmit.emit(e),this.form._events.next(new de(this.control)),((i=e==null?void 0:e.target)==null?void 0:i.method)==="dialog"}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this._submittedReactive.set(!1),this.form._events.next(new ce(this.form))}_updateDomValue(){this.directives.forEach(e=>{let i=e.control,r=this.form.get(e.path);i!==r&&(te(i||null,e),Pt(r)&&(U(r,e,this.callSetDisabledState),e.control=r))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){let i=this.form.get(e.path);it(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){let i=this.form.get(e.path);i&&It(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){_e(this.form,this),this._oldForm&&ie(this._oldForm,this)}_checkFormPresent(){this.form}static \u0275fac=function(i){return new(i||n)(o(A,10),o(L,10),o(N,8))};static \u0275dir=l({type:n,selectors:[["","formGroup",""]],hostBindings:function(i,r){i&1&&C("submit",function(a){return r.onSubmit(a)})("reset",function(){return r.onReset()})},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[c([Ut]),u,E]})}return n})();var Lt={provide:v,useExisting:d(()=>Wt)},Wt=(()=>{class n extends v{_ngModelWarningConfig;_added=!1;viewModel;control;name=null;set isDisabled(e){}model;update=new y;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(e,i,r,s,a){super(),this._ngModelWarningConfig=a,this._parent=e,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=ye(this,s)}ngOnChanges(e){this._added||this._setUpControl(),ve(e,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}get path(){return tt(this.name==null?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this._added=!0}static \u0275fac=function(i){return new(i||n)(o(_,13),o(A,10),o(L,10),o(b,10),o(Ve,8))};static \u0275dir=l({type:n,selectors:[["","formControlName",""]],inputs:{name:[0,"formControlName","name"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},standalone:!1,features:[c([Lt]),u,E]})}return n})(),$t={provide:b,useExisting:d(()=>ot),multi:!0};function st(n,t){return n==null?`${t}`:(t&&typeof t=="object"&&(t="Object"),`${n}: ${t}`.slice(0,50))}function qt(n){return n.split(":")[0]}var ot=(()=>{class n extends H{value;_optionMap=new Map;_idCounter=0;set compareWith(e){this._compareWith=e}_compareWith=Object.is;writeValue(e){this.value=e;let i=this._getOptionId(e),r=st(i,e);this.setProperty("value",r)}registerOnChange(e){this.onChange=i=>{this.value=this._getOptionValue(i),e(this.value)}}_registerOption(){return(this._idCounter++).toString()}_getOptionId(e){for(let i of this._optionMap.keys())if(this._compareWith(this._optionMap.get(i),e))return i;return null}_getOptionValue(e){let i=qt(e);return this._optionMap.has(i)?this._optionMap.get(i):e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=g(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(i,r){i&1&&C("change",function(a){return r.onChange(a.target.value)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},standalone:!1,features:[c([$t]),u]})}return n})(),In=(()=>{class n{_element;_renderer;_select;id;constructor(e,i,r){this._element=e,this._renderer=i,this._select=r,this._select&&(this.id=this._select._registerOption())}set ngValue(e){this._select!=null&&(this._select._optionMap.set(this.id,e),this._setElementValue(st(this.id,e)),this._select.writeValue(this._select.value))}set value(e){this._setElementValue(e),this._select&&this._select.writeValue(this._select.value)}_setElementValue(e){this._renderer.setProperty(this._element.nativeElement,"value",e)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}static \u0275fac=function(i){return new(i||n)(o(O),o(x),o(ot,9))};static \u0275dir=l({type:n,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"},standalone:!1})}return n})(),zt={provide:b,useExisting:d(()=>at),multi:!0};function Re(n,t){return n==null?`${t}`:(typeof t=="string"&&(t=`'${t}'`),t&&typeof t=="object"&&(t="Object"),`${n}: ${t}`.slice(0,50))}function Zt(n){return n.split(":")[0]}var at=(()=>{class n extends H{value;_optionMap=new Map;_idCounter=0;set compareWith(e){this._compareWith=e}_compareWith=Object.is;writeValue(e){this.value=e;let i;if(Array.isArray(e)){let r=e.map(s=>this._getOptionId(s));i=(s,a)=>{s._setSelected(r.indexOf(a.toString())>-1)}}else i=(r,s)=>{r._setSelected(!1)};this._optionMap.forEach(i)}registerOnChange(e){this.onChange=i=>{let r=[],s=i.selectedOptions;if(s!==void 0){let a=s;for(let p=0;p<a.length;p++){let W=a[p],oe=this._getOptionValue(W.value);r.push(oe)}}else{let a=i.options;for(let p=0;p<a.length;p++){let W=a[p];if(W.selected){let oe=this._getOptionValue(W.value);r.push(oe)}}}this.value=r,e(r)}}_registerOption(e){let i=(this._idCounter++).toString();return this._optionMap.set(i,e),i}_getOptionId(e){for(let i of this._optionMap.keys())if(this._compareWith(this._optionMap.get(i)._value,e))return i;return null}_getOptionValue(e){let i=Zt(e);return this._optionMap.has(i)?this._optionMap.get(i)._value:e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=g(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["select","multiple","","formControlName",""],["select","multiple","","formControl",""],["select","multiple","","ngModel",""]],hostBindings:function(i,r){i&1&&C("change",function(a){return r.onChange(a.target)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},standalone:!1,features:[c([zt]),u]})}return n})(),Sn=(()=>{class n{_element;_renderer;_select;id;_value;constructor(e,i,r){this._element=e,this._renderer=i,this._select=r,this._select&&(this.id=this._select._registerOption(this))}set ngValue(e){this._select!=null&&(this._value=e,this._setElementValue(Re(this.id,e)),this._select.writeValue(this._select.value))}set value(e){this._select?(this._value=e,this._setElementValue(Re(this.id,e)),this._select.writeValue(this._select.value)):this._setElementValue(e)}_setElementValue(e){this._renderer.setProperty(this._element.nativeElement,"value",e)}_setSelected(e){this._renderer.setProperty(this._element.nativeElement,"selected",e)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}static \u0275fac=function(i){return new(i||n)(o(O),o(x),o(at,9))};static \u0275dir=l({type:n,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"},standalone:!1})}return n})();function lt(n){return typeof n=="number"?n:parseFloat(n)}var De=(()=>{class n{_validator=Y;_onChange;_enabled;ngOnChanges(e){if(this.inputName in e){let i=this.normalizeInput(e[this.inputName].currentValue);this._enabled=this.enabled(i),this._validator=this._enabled?this.createValidator(i):Y,this._onChange&&this._onChange()}}validate(e){return this._validator(e)}registerOnValidatorChange(e){this._onChange=e}enabled(e){return e!=null}static \u0275fac=function(i){return new(i||n)};static \u0275dir=l({type:n,features:[E]})}return n})(),Xt={provide:A,useExisting:d(()=>Yt),multi:!0},Yt=(()=>{class n extends De{max;inputName="max";normalizeInput=e=>lt(e);createValidator=e=>He(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=g(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["input","type","number","max","","formControlName",""],["input","type","number","max","","formControl",""],["input","type","number","max","","ngModel",""]],hostVars:1,hostBindings:function(i,r){i&2&&Z("max",r._enabled?r.max:null)},inputs:{max:"max"},standalone:!1,features:[c([Xt]),u]})}return n})(),Kt={provide:A,useExisting:d(()=>Jt),multi:!0},Jt=(()=>{class n extends De{min;inputName="min";normalizeInput=e=>lt(e);createValidator=e=>Ue(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=g(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["input","type","number","min","","formControlName",""],["input","type","number","min","","formControl",""],["input","type","number","min","","ngModel",""]],hostVars:1,hostBindings:function(i,r){i&2&&Z("min",r._enabled?r.min:null)},inputs:{min:"min"},standalone:!1,features:[c([Kt]),u]})}return n})();var Qt={provide:A,useExisting:d(()=>en),multi:!0},en=(()=>{class n extends De{pattern;inputName="pattern";normalizeInput=e=>e;createValidator=e=>Le(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=g(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["","pattern","","formControlName",""],["","pattern","","formControl",""],["","pattern","","ngModel",""]],hostVars:1,hostBindings:function(i,r){i&2&&Z("pattern",r._enabled?r.pattern:null)},inputs:{pattern:"pattern"},standalone:!1,features:[c([Qt]),u]})}return n})();var ut=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=z({type:n});static \u0275inj=q({})}return n})(),he=class extends j{constructor(t,e,i){super(ge(e),me(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;at(t){return this.controls[this._adjustIndex(t)]}push(t,e={}){this.controls.push(t),this._registerControl(t),this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}insert(t,e,i={}){this.controls.splice(t,0,e),this._registerControl(e),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(t,e={}){let i=this._adjustIndex(t);i<0&&(i=0),this.controls[i]&&this.controls[i]._registerOnCollectionChange(()=>{}),this.controls.splice(i,1),this.updateValueAndValidity({emitEvent:e.emitEvent})}setControl(t,e,i={}){let r=this._adjustIndex(t);r<0&&(r=0),this.controls[r]&&this.controls[r]._registerOnCollectionChange(()=>{}),this.controls.splice(r,1),e&&(this.controls.splice(r,0,e),this._registerControl(e)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(t,e={}){et(this,!1,t),t.forEach((i,r)=>{Qe(this,!1,r),this.at(r).setValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){t!=null&&(t.forEach((i,r)=>{this.at(r)&&this.at(r).patchValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t=[],e={}){this._forEachChild((i,r)=>{i.reset(t[r],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e)}getRawValue(){return this.controls.map(t=>t.getRawValue())}clear(t={}){this.controls.length<1||(this._forEachChild(e=>e._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:t.emitEvent}))}_adjustIndex(t){return t<0?t+this.length:t}_syncPendingControls(){let t=this.controls.reduce((e,i)=>i._syncPendingControls()?!0:e,!1);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){this.controls.forEach((e,i)=>{t(e,i)})}_updateValue(){this.value=this.controls.filter(t=>t.enabled||this.disabled).map(t=>t.value)}_anyControls(t){return this.controls.some(e=>e.enabled&&t(e))}_setUpControls(){this._forEachChild(t=>this._registerControl(t))}_allControlsDisabled(){for(let t of this.controls)if(t.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(t){t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)}_find(t){var e;return(e=this.at(t))!=null?e:null}},Nn=he;var On=(()=>{class n{static withConfig(e){var i;return{ngModule:n,providers:[{provide:N,useValue:(i=e.callSetDisabledState)!=null?i:se}]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=z({type:n});static \u0275inj=q({imports:[ut]})}return n})(),xn=(()=>{class n{static withConfig(e){var i,r;return{ngModule:n,providers:[{provide:Ve,useValue:(i=e.warnOnNgModelWithFormControl)!=null?i:"always"},{provide:N,useValue:(r=e.callSetDisabledState)!=null?r:se}]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=z({type:n});static \u0275inj=q({imports:[ut]})}return n})();export{b as a,ct as b,je as c,Se as d,bn as e,An as f,B as g,Mn as h,xt as i,Ce as j,Fn as k,Gt as l,wn as m,Tt as n,Bt as o,Ht as p,Wt as q,ot as r,In as s,Sn as t,Yt as u,Jt as v,en as w,Nn as x,On as y,xn as z};
1
+ import{Aa as g,D as Ee,Fa as y,Hb as Fe,Ic as we,Ka as O,Lb as Z,Lc as Ie,Mc as w,Nc as m,Ob as ae,Qc as le,a as h,b as f,dc as C,ea as $,ga as d,ia as q,jb as o,ka as M,n as be,ob as x,q as Ae,qb as F,vb as z,wa as E,wb as l,wc as c,x as Me,yb as u}from"./chunk-NHJLTSH3.js";var Te=(()=>{class n{_renderer;_elementRef;onChange=e=>{};onTouched=()=>{};constructor(e,i){this._renderer=e,this._elementRef=i}setProperty(e,i){this._renderer.setProperty(this._elementRef.nativeElement,e,i)}registerOnTouched(e){this.onTouched=e}registerOnChange(e){this.onChange=e}setDisabledState(e){this.setProperty("disabled",e)}static \u0275fac=function(i){return new(i||n)(o(x),o(O))};static \u0275dir=l({type:n})}return n})(),H=(()=>{class n extends Te{static \u0275fac=(()=>{let e;return function(r){return(e||(e=g(n)))(r||n)}})();static \u0275dir=l({type:n,features:[u]})}return n})(),b=new M(""),dt={provide:b,useExisting:d(()=>ct),multi:!0},ct=(()=>{class n extends H{writeValue(e){this.setProperty("checked",e)}static \u0275fac=(()=>{let e;return function(r){return(e||(e=g(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["input","type","checkbox","formControlName",""],["input","type","checkbox","formControl",""],["input","type","checkbox","ngModel",""]],hostBindings:function(i,r){i&1&&C("change",function(a){return r.onChange(a.target.checked)})("blur",function(){return r.onTouched()})},standalone:!1,features:[c([dt]),u]})}return n})(),ht={provide:b,useExisting:d(()=>je),multi:!0};function ft(){let n=le()?le().getUserAgent():"";return/android (\d+)/.test(n.toLowerCase())}var pt=new M(""),je=(()=>{class n extends Te{_compositionMode;_composing=!1;constructor(e,i,r){super(e,i),this._compositionMode=r,this._compositionMode==null&&(this._compositionMode=!ft())}writeValue(e){let i=e==null?"":e;this.setProperty("value",i)}_handleInput(e){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(e)}_compositionStart(){this._composing=!0}_compositionEnd(e){this._composing=!1,this._compositionMode&&this.onChange(e)}static \u0275fac=function(i){return new(i||n)(o(x),o(O),o(pt,8))};static \u0275dir=l({type:n,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(i,r){i&1&&C("input",function(a){return r._handleInput(a.target.value)})("blur",function(){return r.onTouched()})("compositionstart",function(){return r._compositionStart()})("compositionend",function(a){return r._compositionEnd(a.target.value)})},standalone:!1,features:[c([ht]),u]})}return n})();function V(n){return n==null||(typeof n=="string"||Array.isArray(n))&&n.length===0}function Be(n){return n!=null&&typeof n.length=="number"}var A=new M(""),L=new M(""),gt=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Se=class{static min(t){return Ue(t)}static max(t){return He(t)}static required(t){return mt(t)}static requiredTrue(t){return _t(t)}static email(t){return vt(t)}static minLength(t){return yt(t)}static maxLength(t){return Ct(t)}static pattern(t){return Le(t)}static nullValidator(t){return Y(t)}static compose(t){return Xe(t)}static composeAsync(t){return Ye(t)}};function Ue(n){return t=>{if(V(t.value)||V(n))return null;let e=parseFloat(t.value);return!isNaN(e)&&e<n?{min:{min:n,actual:t.value}}:null}}function He(n){return t=>{if(V(t.value)||V(n))return null;let e=parseFloat(t.value);return!isNaN(e)&&e>n?{max:{max:n,actual:t.value}}:null}}function mt(n){return V(n.value)?{required:!0}:null}function _t(n){return n.value===!0?null:{required:!0}}function vt(n){return V(n.value)||gt.test(n.value)?null:{email:!0}}function yt(n){return t=>V(t.value)||!Be(t.value)?null:t.value.length<n?{minlength:{requiredLength:n,actualLength:t.value.length}}:null}function Ct(n){return t=>Be(t.value)&&t.value.length>n?{maxlength:{requiredLength:n,actualLength:t.value.length}}:null}function Le(n){if(!n)return Y;let t,e;return typeof n=="string"?(e="",n.charAt(0)!=="^"&&(e+="^"),e+=n,n.charAt(n.length-1)!=="$"&&(e+="$"),t=new RegExp(e)):(e=n.toString(),t=n),i=>{if(V(i.value))return null;let r=i.value;return t.test(r)?null:{pattern:{requiredPattern:e,actualValue:r}}}}function Y(n){return null}function We(n){return n!=null}function $e(n){return Fe(n)?Ae(n):n}function qe(n){let t={};return n.forEach(e=>{t=e!=null?h(h({},t),e):t}),Object.keys(t).length===0?null:t}function ze(n,t){return t.map(e=>e(n))}function Vt(n){return!n.validate}function Ze(n){return n.map(t=>Vt(t)?t:e=>t.validate(e))}function Xe(n){if(!n)return null;let t=n.filter(We);return t.length==0?null:function(e){return qe(ze(e,t))}}function fe(n){return n!=null?Xe(Ze(n)):null}function Ye(n){if(!n)return null;let t=n.filter(We);return t.length==0?null:function(e){let i=ze(e,t).map($e);return Ee(i).pipe(Me(qe))}}function pe(n){return n!=null?Ye(Ze(n)):null}function Ne(n,t){return n===null?[t]:Array.isArray(n)?[...n,t]:[n,t]}function Ke(n){return n._rawValidators}function Je(n){return n._rawAsyncValidators}function ue(n){return n?Array.isArray(n)?n:[n]:[]}function K(n,t){return Array.isArray(n)?n.includes(t):n===t}function Oe(n,t){let e=ue(t);return ue(n).forEach(r=>{K(e,r)||e.push(r)}),e}function xe(n,t){return ue(t).filter(e=>!K(n,e))}var J=class{get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators=[];_rawAsyncValidators=[];_setValidators(t){this._rawValidators=t||[],this._composedValidatorFn=fe(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=pe(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_onDestroyCallbacks=[];_registerOnDestroy(t){this._onDestroyCallbacks.push(t)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(t=>t()),this._onDestroyCallbacks=[]}reset(t=void 0){this.control&&this.control.reset(t)}hasError(t,e){return this.control?this.control.hasError(t,e):!1}getError(t,e){return this.control?this.control.getError(t,e):null}},_=class extends J{name;get formDirective(){return null}get path(){return null}},v=class extends J{_parent=null;name=null;valueAccessor=null},Q=class{_cd;constructor(t){this._cd=t}get isTouched(){var t,e,i,r,s;return(i=(e=(t=this._cd)==null?void 0:t.control)==null?void 0:e._touched)==null||i.call(e),!!((s=(r=this._cd)==null?void 0:r.control)!=null&&s.touched)}get isUntouched(){var t,e;return!!((e=(t=this._cd)==null?void 0:t.control)!=null&&e.untouched)}get isPristine(){var t,e,i,r,s;return(i=(e=(t=this._cd)==null?void 0:t.control)==null?void 0:e._pristine)==null||i.call(e),!!((s=(r=this._cd)==null?void 0:r.control)!=null&&s.pristine)}get isDirty(){var t,e;return!!((e=(t=this._cd)==null?void 0:t.control)!=null&&e.dirty)}get isValid(){var t,e,i,r,s;return(i=(e=(t=this._cd)==null?void 0:t.control)==null?void 0:e._status)==null||i.call(e),!!((s=(r=this._cd)==null?void 0:r.control)!=null&&s.valid)}get isInvalid(){var t,e;return!!((e=(t=this._cd)==null?void 0:t.control)!=null&&e.invalid)}get isPending(){var t,e;return!!((e=(t=this._cd)==null?void 0:t.control)!=null&&e.pending)}get isSubmitted(){var t,e,i;return(e=(t=this._cd)==null?void 0:t._submitted)==null||e.call(t),!!((i=this._cd)!=null&&i.submitted)}},Dt={"[class.ng-untouched]":"isUntouched","[class.ng-touched]":"isTouched","[class.ng-pristine]":"isPristine","[class.ng-dirty]":"isDirty","[class.ng-valid]":"isValid","[class.ng-invalid]":"isInvalid","[class.ng-pending]":"isPending"},Dn=f(h({},Dt),{"[class.ng-submitted]":"isSubmitted"}),bn=(()=>{class n extends Q{constructor(e){super(e)}static \u0275fac=function(i){return new(i||n)(o(v,2))};static \u0275dir=l({type:n,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,r){i&2&&ae("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)},standalone:!1,features:[u]})}return n})(),An=(()=>{class n extends Q{constructor(e){super(e)}static \u0275fac=function(i){return new(i||n)(o(_,10))};static \u0275dir=l({type:n,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,r){i&2&&ae("ng-untouched",r.isUntouched)("ng-touched",r.isTouched)("ng-pristine",r.isPristine)("ng-dirty",r.isDirty)("ng-valid",r.isValid)("ng-invalid",r.isInvalid)("ng-pending",r.isPending)("ng-submitted",r.isSubmitted)},standalone:!1,features:[u]})}return n})();var P="VALID",X="INVALID",I="PENDING",k="DISABLED",D=class{},ee=class extends D{value;source;constructor(t,e){super(),this.value=t,this.source=e}},R=class extends D{pristine;source;constructor(t,e){super(),this.pristine=t,this.source=e}},T=class extends D{touched;source;constructor(t,e){super(),this.touched=t,this.source=e}},S=class extends D{status;source;constructor(t,e){super(),this.status=t,this.source=e}},de=class extends D{source;constructor(t){super(),this.source=t}},ce=class extends D{source;constructor(t){super(),this.source=t}};function ge(n){return(re(n)?n.validators:n)||null}function bt(n){return Array.isArray(n)?fe(n):n||null}function me(n,t){return(re(t)?t.asyncValidators:n)||null}function At(n){return Array.isArray(n)?pe(n):n||null}function re(n){return n!=null&&!Array.isArray(n)&&typeof n=="object"}function Qe(n,t,e){let i=n.controls;if(!(t?Object.keys(i):i).length)throw new $(1e3,"");if(!i[e])throw new $(1001,"")}function et(n,t,e){n._forEachChild((i,r)=>{if(e[r]===void 0)throw new $(1002,"")})}var j=class{_pendingDirty=!1;_hasOwnPendingAsyncValidator=null;_pendingTouched=!1;_onCollectionChange=()=>{};_updateOn;_parent=null;_asyncValidationSubscription;_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators;_rawAsyncValidators;value;constructor(t,e){this._assignValidators(t),this._assignAsyncValidators(e)}get validator(){return this._composedValidatorFn}set validator(t){this._rawValidators=this._composedValidatorFn=t}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(t){this._rawAsyncValidators=this._composedAsyncValidatorFn=t}get parent(){return this._parent}get status(){return m(this.statusReactive)}set status(t){m(()=>this.statusReactive.set(t))}_status=w(()=>this.statusReactive());statusReactive=F(void 0);get valid(){return this.status===P}get invalid(){return this.status===X}get pending(){return this.status==I}get disabled(){return this.status===k}get enabled(){return this.status!==k}errors;get pristine(){return m(this.pristineReactive)}set pristine(t){m(()=>this.pristineReactive.set(t))}_pristine=w(()=>this.pristineReactive());pristineReactive=F(!0);get dirty(){return!this.pristine}get touched(){return m(this.touchedReactive)}set touched(t){m(()=>this.touchedReactive.set(t))}_touched=w(()=>this.touchedReactive());touchedReactive=F(!1);get untouched(){return!this.touched}_events=new be;events=this._events.asObservable();valueChanges;statusChanges;get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(t){this._assignValidators(t)}setAsyncValidators(t){this._assignAsyncValidators(t)}addValidators(t){this.setValidators(Oe(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(Oe(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(xe(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(xe(t,this._rawAsyncValidators))}hasValidator(t){return K(this._rawValidators,t)}hasAsyncValidator(t){return K(this._rawAsyncValidators,t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){var r;let e=this.touched===!1;this.touched=!0;let i=(r=t.sourceControl)!=null?r:this;this._parent&&!t.onlySelf&&this._parent.markAsTouched(f(h({},t),{sourceControl:i})),e&&t.emitEvent!==!1&&this._events.next(new T(!0,i))}markAllAsTouched(t={}){this.markAsTouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsTouched(t))}markAsUntouched(t={}){var r;let e=this.touched===!0;this.touched=!1,this._pendingTouched=!1;let i=(r=t.sourceControl)!=null?r:this;this._forEachChild(s=>{s.markAsUntouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:i})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,i),e&&t.emitEvent!==!1&&this._events.next(new T(!1,i))}markAsDirty(t={}){var r;let e=this.pristine===!0;this.pristine=!1;let i=(r=t.sourceControl)!=null?r:this;this._parent&&!t.onlySelf&&this._parent.markAsDirty(f(h({},t),{sourceControl:i})),e&&t.emitEvent!==!1&&this._events.next(new R(!1,i))}markAsPristine(t={}){var r;let e=this.pristine===!1;this.pristine=!0,this._pendingDirty=!1;let i=(r=t.sourceControl)!=null?r:this;this._forEachChild(s=>{s.markAsPristine({onlySelf:!0,emitEvent:t.emitEvent})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t,i),e&&t.emitEvent!==!1&&this._events.next(new R(!0,i))}markAsPending(t={}){var i;this.status=I;let e=(i=t.sourceControl)!=null?i:this;t.emitEvent!==!1&&(this._events.next(new S(this.status,e)),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.markAsPending(f(h({},t),{sourceControl:e}))}disable(t={}){var r;let e=this._parentMarkedDirty(t.onlySelf);this.status=k,this.errors=null,this._forEachChild(s=>{s.disable(f(h({},t),{onlySelf:!0}))}),this._updateValue();let i=(r=t.sourceControl)!=null?r:this;t.emitEvent!==!1&&(this._events.next(new ee(this.value,i)),this._events.next(new S(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(f(h({},t),{skipPristineCheck:e}),this),this._onDisabledChange.forEach(s=>s(!0))}enable(t={}){let e=this._parentMarkedDirty(t.onlySelf);this.status=P,this._forEachChild(i=>{i.enable(f(h({},t),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors(f(h({},t),{skipPristineCheck:e}),this),this._onDisabledChange.forEach(i=>i(!1))}_updateAncestors(t,e){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine({},e),this._parent._updateTouched({},e))}setParent(t){this._parent=t}getRawValue(){return this.value}updateValueAndValidity(t={}){var i;if(this._setInitialStatus(),this._updateValue(),this.enabled){let r=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===P||this.status===I)&&this._runAsyncValidator(r,t.emitEvent)}let e=(i=t.sourceControl)!=null?i:this;t.emitEvent!==!1&&(this._events.next(new ee(this.value,e)),this._events.next(new S(this.status,e)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(f(h({},t),{sourceControl:e}))}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(e=>e._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?k:P}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t,e){if(this.asyncValidator){this.status=I,this._hasOwnPendingAsyncValidator={emitEvent:e!==!1};let i=$e(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(r=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(r,{emitEvent:e,shouldHaveEmitted:t})})}}_cancelExistingSubscription(){var t,e;if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();let i=(e=(t=this._hasOwnPendingAsyncValidator)==null?void 0:t.emitEvent)!=null?e:!1;return this._hasOwnPendingAsyncValidator=null,i}return!1}setErrors(t,e={}){this.errors=t,this._updateControlsErrors(e.emitEvent!==!1,this,e.shouldHaveEmitted)}get(t){let e=t;return e==null||(Array.isArray(e)||(e=e.split(".")),e.length===0)?null:e.reduce((i,r)=>i&&i._find(r),this)}getError(t,e){let i=e?this.get(e):this;return i&&i.errors?i.errors[t]:null}hasError(t,e){return!!this.getError(t,e)}get root(){let t=this;for(;t._parent;)t=t._parent;return t}_updateControlsErrors(t,e,i){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),(t||i)&&this._events.next(new S(this.status,e)),this._parent&&this._parent._updateControlsErrors(t,e,i)}_initObservables(){this.valueChanges=new y,this.statusChanges=new y}_calculateStatus(){return this._allControlsDisabled()?k:this.errors?X:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(I)?I:this._anyControlsHaveStatus(X)?X:P}_anyControlsHaveStatus(t){return this._anyControls(e=>e.status===t)}_anyControlsDirty(){return this._anyControls(t=>t.dirty)}_anyControlsTouched(){return this._anyControls(t=>t.touched)}_updatePristine(t,e){let i=!this._anyControlsDirty(),r=this.pristine!==i;this.pristine=i,this._parent&&!t.onlySelf&&this._parent._updatePristine(t,e),r&&this._events.next(new R(this.pristine,e))}_updateTouched(t={},e){this.touched=this._anyControlsTouched(),this._events.next(new T(this.touched,e)),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,e)}_onDisabledChange=[];_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){re(t)&&t.updateOn!=null&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){let e=this._parent&&this._parent.dirty;return!t&&!!e&&!this._parent._anyControlsDirty()}_find(t){return null}_assignValidators(t){this._rawValidators=Array.isArray(t)?t.slice():t,this._composedValidatorFn=bt(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=At(this._rawAsyncValidators)}},B=class extends j{constructor(t,e,i){super(ge(e),me(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;registerControl(t,e){return this.controls[t]?this.controls[t]:(this.controls[t]=e,e.setParent(this),e._registerOnCollectionChange(this._onCollectionChange),e)}addControl(t,e,i={}){this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}removeControl(t,e={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}setControl(t,e,i={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],e&&this.registerControl(t,e),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,e={}){et(this,!0,t),Object.keys(t).forEach(i=>{Qe(this,!0,i),this.controls[i].setValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){t!=null&&(Object.keys(t).forEach(i=>{let r=this.controls[i];r&&r.patchValue(t[i],{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t={},e={}){this._forEachChild((i,r)=>{i.reset(t?t[r]:null,{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e)}getRawValue(){return this._reduceChildren({},(t,e,i)=>(t[i]=e.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(e,i)=>i._syncPendingControls()?!0:e);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){Object.keys(this.controls).forEach(e=>{let i=this.controls[e];i&&t(i,e)})}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(let[e,i]of Object.entries(this.controls))if(this.contains(e)&&t(i))return!0;return!1}_reduceValue(){let t={};return this._reduceChildren(t,(e,i,r)=>((i.enabled||this.disabled)&&(e[r]=i.value),e))}_reduceChildren(t,e){let i=t;return this._forEachChild((r,s)=>{i=e(i,r,s)}),i}_allControlsDisabled(){for(let t of Object.keys(this.controls))if(this.controls[t].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(t){return this.controls.hasOwnProperty(t)?this.controls[t]:null}};var Mn=B;var N=new M("CallSetDisabledState",{providedIn:"root",factory:()=>se}),se="always";function tt(n,t){return[...t.path,n]}function U(n,t,e=se){var i,r;_e(n,t),t.valueAccessor.writeValue(n.value),(n.disabled||e==="always")&&((r=(i=t.valueAccessor).setDisabledState)==null||r.call(i,n.disabled)),Et(n,t),wt(n,t),Ft(n,t),Mt(n,t)}function te(n,t,e=!0){let i=()=>{};t.valueAccessor&&(t.valueAccessor.registerOnChange(i),t.valueAccessor.registerOnTouched(i)),ie(n,t),n&&(t._invokeOnDestroyCallbacks(),n._registerOnCollectionChange(()=>{}))}function ne(n,t){n.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(t)})}function Mt(n,t){if(t.valueAccessor.setDisabledState){let e=i=>{t.valueAccessor.setDisabledState(i)};n.registerOnDisabledChange(e),t._registerOnDestroy(()=>{n._unregisterOnDisabledChange(e)})}}function _e(n,t){let e=Ke(n);t.validator!==null?n.setValidators(Ne(e,t.validator)):typeof e=="function"&&n.setValidators([e]);let i=Je(n);t.asyncValidator!==null?n.setAsyncValidators(Ne(i,t.asyncValidator)):typeof i=="function"&&n.setAsyncValidators([i]);let r=()=>n.updateValueAndValidity();ne(t._rawValidators,r),ne(t._rawAsyncValidators,r)}function ie(n,t){let e=!1;if(n!==null){if(t.validator!==null){let r=Ke(n);if(Array.isArray(r)&&r.length>0){let s=r.filter(a=>a!==t.validator);s.length!==r.length&&(e=!0,n.setValidators(s))}}if(t.asyncValidator!==null){let r=Je(n);if(Array.isArray(r)&&r.length>0){let s=r.filter(a=>a!==t.asyncValidator);s.length!==r.length&&(e=!0,n.setAsyncValidators(s))}}}let i=()=>{};return ne(t._rawValidators,i),ne(t._rawAsyncValidators,i),e}function Et(n,t){t.valueAccessor.registerOnChange(e=>{n._pendingValue=e,n._pendingChange=!0,n._pendingDirty=!0,n.updateOn==="change"&&nt(n,t)})}function Ft(n,t){t.valueAccessor.registerOnTouched(()=>{n._pendingTouched=!0,n.updateOn==="blur"&&n._pendingChange&&nt(n,t),n.updateOn!=="submit"&&n.markAsTouched()})}function nt(n,t){n._pendingDirty&&n.markAsDirty(),n.setValue(n._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(n._pendingValue),n._pendingChange=!1}function wt(n,t){let e=(i,r)=>{t.valueAccessor.writeValue(i),r&&t.viewToModelUpdate(i)};n.registerOnChange(e),t._registerOnDestroy(()=>{n._unregisterOnChange(e)})}function it(n,t){n==null,_e(n,t)}function It(n,t){return ie(n,t)}function ve(n,t){if(!n.hasOwnProperty("model"))return!1;let e=n.model;return e.isFirstChange()?!0:!Object.is(t,e.currentValue)}function St(n){return Object.getPrototypeOf(n.constructor)===H}function rt(n,t){n._syncPendingControls(),t.forEach(e=>{let i=e.control;i.updateOn==="submit"&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function ye(n,t){if(!t)return null;Array.isArray(t);let e,i,r;return t.forEach(s=>{s.constructor===je?e=s:St(s)?i=s:r=s}),r||i||e||null}function Nt(n,t){let e=n.indexOf(t);e>-1&&n.splice(e,1)}var Ot={provide:_,useExisting:d(()=>xt)},G=Promise.resolve(),xt=(()=>{class n extends _{callSetDisabledState;get submitted(){return m(this.submittedReactive)}_submitted=w(()=>this.submittedReactive());submittedReactive=F(!1);_directives=new Set;form;ngSubmit=new y;options;constructor(e,i,r){super(),this.callSetDisabledState=r,this.form=new B({},fe(e),pe(i))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(e){G.then(()=>{let i=this._findContainer(e.path);e.control=i.registerControl(e.name,e.control),U(e.control,e,this.callSetDisabledState),e.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(e)})}getControl(e){return this.form.get(e.path)}removeControl(e){G.then(()=>{let i=this._findContainer(e.path);i&&i.removeControl(e.name),this._directives.delete(e)})}addFormGroup(e){G.then(()=>{let i=this._findContainer(e.path),r=new B({});it(r,e),i.registerControl(e.name,r),r.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(e){G.then(()=>{let i=this._findContainer(e.path);i&&i.removeControl(e.name)})}getFormGroup(e){return this.form.get(e.path)}updateModel(e,i){G.then(()=>{this.form.get(e.path).setValue(i)})}setValue(e){this.control.setValue(e)}onSubmit(e){var i;return this.submittedReactive.set(!0),rt(this.form,this._directives),this.ngSubmit.emit(e),((i=e==null?void 0:e.target)==null?void 0:i.method)==="dialog"}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this.submittedReactive.set(!1)}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.form._updateOn=this.options.updateOn)}_findContainer(e){return e.pop(),e.length?this.form.get(e):this.form}static \u0275fac=function(i){return new(i||n)(o(A,10),o(L,10),o(N,8))};static \u0275dir=l({type:n,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,r){i&1&&C("submit",function(a){return r.onSubmit(a)})("reset",function(){return r.onReset()})},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[c([Ot]),u]})}return n})();function Pe(n,t){let e=n.indexOf(t);e>-1&&n.splice(e,1)}function ke(n){return typeof n=="object"&&n!==null&&Object.keys(n).length===2&&"value"in n&&"disabled"in n}var Ce=class extends j{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(t=null,e,i){super(ge(e),me(i,e)),this._applyFormState(t),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),re(e)&&(e.nonNullable||e.initialValueIsDefault)&&(ke(t)?this.defaultValue=t.value:this.defaultValue=t)}setValue(t,e={}){this.value=this._pendingValue=t,this._onChange.length&&e.emitModelToViewChange!==!1&&this._onChange.forEach(i=>i(this.value,e.emitViewToModelChange!==!1)),this.updateValueAndValidity(e)}patchValue(t,e={}){this.setValue(t,e)}reset(t=this.defaultValue,e={}){this._applyFormState(t),this.markAsPristine(e),this.markAsUntouched(e),this.setValue(this.value,e),this._pendingChange=!1}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){Pe(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){Pe(this._onDisabledChange,t)}_forEachChild(t){}_syncPendingControls(){return this.updateOn==="submit"&&(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),this._pendingChange)?(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),!0):!1}_applyFormState(t){ke(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t}},Fn=Ce,Pt=n=>n instanceof Ce;var kt={provide:v,useExisting:d(()=>Gt)},Ge=Promise.resolve(),Gt=(()=>{class n extends v{_changeDetectorRef;callSetDisabledState;control=new Ce;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new y;constructor(e,i,r,s,a,p){super(),this._changeDetectorRef=a,this.callSetDisabledState=p,this._parent=e,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=ye(this,s)}ngOnChanges(e){if(this._checkForErrors(),!this._registered||"name"in e){if(this._registered&&(this._checkName(),this.formDirective)){let i=e.name.previousValue;this.formDirective.removeControl({name:i,path:this._getPath(i)})}this._setUpControl()}"isDisabled"in e&&this._updateDisabled(e),ve(e,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!!(this.options&&this.options.standalone)}_setUpStandalone(){U(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._isStandalone()||this._checkParentType(),this._checkName()}_checkParentType(){}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),!this._isStandalone()&&this.name}_updateValue(e){Ge.then(()=>{var i;this.control.setValue(e,{emitViewToModelChange:!1}),(i=this._changeDetectorRef)==null||i.markForCheck()})}_updateDisabled(e){let i=e.isDisabled.currentValue,r=i!==0&&Ie(i);Ge.then(()=>{var s;r&&!this.control.disabled?this.control.disable():!r&&this.control.disabled&&this.control.enable(),(s=this._changeDetectorRef)==null||s.markForCheck()})}_getPath(e){return this._parent?tt(e,this._parent):[e]}static \u0275fac=function(i){return new(i||n)(o(_,9),o(A,10),o(L,10),o(b,10),o(we,8),o(N,8))};static \u0275dir=l({type:n,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],standalone:!1,features:[c([kt]),u,E]})}return n})(),wn=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=l({type:n,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""],standalone:!1})}return n})(),Rt={provide:b,useExisting:d(()=>Tt),multi:!0},Tt=(()=>{class n extends H{writeValue(e){let i=e==null?"":e;this.setProperty("value",i)}registerOnChange(e){this.onChange=i=>{e(i==""?null:parseFloat(i))}}static \u0275fac=(()=>{let e;return function(r){return(e||(e=g(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["input","type","number","formControlName",""],["input","type","number","formControl",""],["input","type","number","ngModel",""]],hostBindings:function(i,r){i&1&&C("input",function(a){return r.onChange(a.target.value)})("blur",function(){return r.onTouched()})},standalone:!1,features:[c([Rt]),u]})}return n})();var Ve=new M(""),jt={provide:v,useExisting:d(()=>Bt)},Bt=(()=>{class n extends v{_ngModelWarningConfig;callSetDisabledState;viewModel;form;set isDisabled(e){}model;update=new y;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(e,i,r,s,a){super(),this._ngModelWarningConfig=s,this.callSetDisabledState=a,this._setValidators(e),this._setAsyncValidators(i),this.valueAccessor=ye(this,r)}ngOnChanges(e){if(this._isControlChanged(e)){let i=e.form.previousValue;i&&te(i,this,!1),U(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}ve(e,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&te(this.form,this,!1)}get path(){return[]}get control(){return this.form}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}_isControlChanged(e){return e.hasOwnProperty("form")}static \u0275fac=function(i){return new(i||n)(o(A,10),o(L,10),o(b,10),o(Ve,8),o(N,8))};static \u0275dir=l({type:n,selectors:[["","formControl",""]],inputs:{form:[0,"formControl","form"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},exportAs:["ngForm"],standalone:!1,features:[c([jt]),u,E]})}return n})(),Ut={provide:_,useExisting:d(()=>Ht)},Ht=(()=>{class n extends _{callSetDisabledState;get submitted(){return m(this._submittedReactive)}set submitted(e){this._submittedReactive.set(e)}_submitted=w(()=>this._submittedReactive());_submittedReactive=F(!1);_oldForm;_onCollectionChange=()=>this._updateDomValue();directives=[];form=null;ngSubmit=new y;constructor(e,i,r){super(),this.callSetDisabledState=r,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(ie(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(e){let i=this.form.get(e.path);return U(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){te(e.control||null,e,!1),Nt(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}getFormArray(e){return this.form.get(e.path)}updateModel(e,i){this.form.get(e.path).setValue(i)}onSubmit(e){var i;return this._submittedReactive.set(!0),rt(this.form,this.directives),this.ngSubmit.emit(e),this.form._events.next(new de(this.control)),((i=e==null?void 0:e.target)==null?void 0:i.method)==="dialog"}onReset(){this.resetForm()}resetForm(e=void 0){this.form.reset(e),this._submittedReactive.set(!1),this.form._events.next(new ce(this.form))}_updateDomValue(){this.directives.forEach(e=>{let i=e.control,r=this.form.get(e.path);i!==r&&(te(i||null,e),Pt(r)&&(U(r,e,this.callSetDisabledState),e.control=r))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){let i=this.form.get(e.path);it(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){let i=this.form.get(e.path);i&&It(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){_e(this.form,this),this._oldForm&&ie(this._oldForm,this)}_checkFormPresent(){this.form}static \u0275fac=function(i){return new(i||n)(o(A,10),o(L,10),o(N,8))};static \u0275dir=l({type:n,selectors:[["","formGroup",""]],hostBindings:function(i,r){i&1&&C("submit",function(a){return r.onSubmit(a)})("reset",function(){return r.onReset()})},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[c([Ut]),u,E]})}return n})();var Lt={provide:v,useExisting:d(()=>Wt)},Wt=(()=>{class n extends v{_ngModelWarningConfig;_added=!1;viewModel;control;name=null;set isDisabled(e){}model;update=new y;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(e,i,r,s,a){super(),this._ngModelWarningConfig=a,this._parent=e,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=ye(this,s)}ngOnChanges(e){this._added||this._setUpControl(),ve(e,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(e){this.viewModel=e,this.update.emit(e)}get path(){return tt(this.name==null?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}_setUpControl(){this._checkParentType(),this.control=this.formDirective.addControl(this),this._added=!0}static \u0275fac=function(i){return new(i||n)(o(_,13),o(A,10),o(L,10),o(b,10),o(Ve,8))};static \u0275dir=l({type:n,selectors:[["","formControlName",""]],inputs:{name:[0,"formControlName","name"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},standalone:!1,features:[c([Lt]),u,E]})}return n})(),$t={provide:b,useExisting:d(()=>ot),multi:!0};function st(n,t){return n==null?`${t}`:(t&&typeof t=="object"&&(t="Object"),`${n}: ${t}`.slice(0,50))}function qt(n){return n.split(":")[0]}var ot=(()=>{class n extends H{value;_optionMap=new Map;_idCounter=0;set compareWith(e){this._compareWith=e}_compareWith=Object.is;writeValue(e){this.value=e;let i=this._getOptionId(e),r=st(i,e);this.setProperty("value",r)}registerOnChange(e){this.onChange=i=>{this.value=this._getOptionValue(i),e(this.value)}}_registerOption(){return(this._idCounter++).toString()}_getOptionId(e){for(let i of this._optionMap.keys())if(this._compareWith(this._optionMap.get(i),e))return i;return null}_getOptionValue(e){let i=qt(e);return this._optionMap.has(i)?this._optionMap.get(i):e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=g(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(i,r){i&1&&C("change",function(a){return r.onChange(a.target.value)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},standalone:!1,features:[c([$t]),u]})}return n})(),In=(()=>{class n{_element;_renderer;_select;id;constructor(e,i,r){this._element=e,this._renderer=i,this._select=r,this._select&&(this.id=this._select._registerOption())}set ngValue(e){this._select!=null&&(this._select._optionMap.set(this.id,e),this._setElementValue(st(this.id,e)),this._select.writeValue(this._select.value))}set value(e){this._setElementValue(e),this._select&&this._select.writeValue(this._select.value)}_setElementValue(e){this._renderer.setProperty(this._element.nativeElement,"value",e)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}static \u0275fac=function(i){return new(i||n)(o(O),o(x),o(ot,9))};static \u0275dir=l({type:n,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"},standalone:!1})}return n})(),zt={provide:b,useExisting:d(()=>at),multi:!0};function Re(n,t){return n==null?`${t}`:(typeof t=="string"&&(t=`'${t}'`),t&&typeof t=="object"&&(t="Object"),`${n}: ${t}`.slice(0,50))}function Zt(n){return n.split(":")[0]}var at=(()=>{class n extends H{value;_optionMap=new Map;_idCounter=0;set compareWith(e){this._compareWith=e}_compareWith=Object.is;writeValue(e){this.value=e;let i;if(Array.isArray(e)){let r=e.map(s=>this._getOptionId(s));i=(s,a)=>{s._setSelected(r.indexOf(a.toString())>-1)}}else i=(r,s)=>{r._setSelected(!1)};this._optionMap.forEach(i)}registerOnChange(e){this.onChange=i=>{let r=[],s=i.selectedOptions;if(s!==void 0){let a=s;for(let p=0;p<a.length;p++){let W=a[p],oe=this._getOptionValue(W.value);r.push(oe)}}else{let a=i.options;for(let p=0;p<a.length;p++){let W=a[p];if(W.selected){let oe=this._getOptionValue(W.value);r.push(oe)}}}this.value=r,e(r)}}_registerOption(e){let i=(this._idCounter++).toString();return this._optionMap.set(i,e),i}_getOptionId(e){for(let i of this._optionMap.keys())if(this._compareWith(this._optionMap.get(i)._value,e))return i;return null}_getOptionValue(e){let i=Zt(e);return this._optionMap.has(i)?this._optionMap.get(i)._value:e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=g(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["select","multiple","","formControlName",""],["select","multiple","","formControl",""],["select","multiple","","ngModel",""]],hostBindings:function(i,r){i&1&&C("change",function(a){return r.onChange(a.target)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},standalone:!1,features:[c([zt]),u]})}return n})(),Sn=(()=>{class n{_element;_renderer;_select;id;_value;constructor(e,i,r){this._element=e,this._renderer=i,this._select=r,this._select&&(this.id=this._select._registerOption(this))}set ngValue(e){this._select!=null&&(this._value=e,this._setElementValue(Re(this.id,e)),this._select.writeValue(this._select.value))}set value(e){this._select?(this._value=e,this._setElementValue(Re(this.id,e)),this._select.writeValue(this._select.value)):this._setElementValue(e)}_setElementValue(e){this._renderer.setProperty(this._element.nativeElement,"value",e)}_setSelected(e){this._renderer.setProperty(this._element.nativeElement,"selected",e)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}static \u0275fac=function(i){return new(i||n)(o(O),o(x),o(at,9))};static \u0275dir=l({type:n,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"},standalone:!1})}return n})();function lt(n){return typeof n=="number"?n:parseFloat(n)}var De=(()=>{class n{_validator=Y;_onChange;_enabled;ngOnChanges(e){if(this.inputName in e){let i=this.normalizeInput(e[this.inputName].currentValue);this._enabled=this.enabled(i),this._validator=this._enabled?this.createValidator(i):Y,this._onChange&&this._onChange()}}validate(e){return this._validator(e)}registerOnValidatorChange(e){this._onChange=e}enabled(e){return e!=null}static \u0275fac=function(i){return new(i||n)};static \u0275dir=l({type:n,features:[E]})}return n})(),Xt={provide:A,useExisting:d(()=>Yt),multi:!0},Yt=(()=>{class n extends De{max;inputName="max";normalizeInput=e=>lt(e);createValidator=e=>He(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=g(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["input","type","number","max","","formControlName",""],["input","type","number","max","","formControl",""],["input","type","number","max","","ngModel",""]],hostVars:1,hostBindings:function(i,r){i&2&&Z("max",r._enabled?r.max:null)},inputs:{max:"max"},standalone:!1,features:[c([Xt]),u]})}return n})(),Kt={provide:A,useExisting:d(()=>Jt),multi:!0},Jt=(()=>{class n extends De{min;inputName="min";normalizeInput=e=>lt(e);createValidator=e=>Ue(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=g(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["input","type","number","min","","formControlName",""],["input","type","number","min","","formControl",""],["input","type","number","min","","ngModel",""]],hostVars:1,hostBindings:function(i,r){i&2&&Z("min",r._enabled?r.min:null)},inputs:{min:"min"},standalone:!1,features:[c([Kt]),u]})}return n})();var Qt={provide:A,useExisting:d(()=>en),multi:!0},en=(()=>{class n extends De{pattern;inputName="pattern";normalizeInput=e=>e;createValidator=e=>Le(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=g(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["","pattern","","formControlName",""],["","pattern","","formControl",""],["","pattern","","ngModel",""]],hostVars:1,hostBindings:function(i,r){i&2&&Z("pattern",r._enabled?r.pattern:null)},inputs:{pattern:"pattern"},standalone:!1,features:[c([Qt]),u]})}return n})();var ut=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=z({type:n});static \u0275inj=q({})}return n})(),he=class extends j{constructor(t,e,i){super(ge(e),me(i,e)),this.controls=t,this._initObservables(),this._setUpdateStrategy(e),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;at(t){return this.controls[this._adjustIndex(t)]}push(t,e={}){this.controls.push(t),this._registerControl(t),this.updateValueAndValidity({emitEvent:e.emitEvent}),this._onCollectionChange()}insert(t,e,i={}){this.controls.splice(t,0,e),this._registerControl(e),this.updateValueAndValidity({emitEvent:i.emitEvent})}removeAt(t,e={}){let i=this._adjustIndex(t);i<0&&(i=0),this.controls[i]&&this.controls[i]._registerOnCollectionChange(()=>{}),this.controls.splice(i,1),this.updateValueAndValidity({emitEvent:e.emitEvent})}setControl(t,e,i={}){let r=this._adjustIndex(t);r<0&&(r=0),this.controls[r]&&this.controls[r]._registerOnCollectionChange(()=>{}),this.controls.splice(r,1),e&&(this.controls.splice(r,0,e),this._registerControl(e)),this.updateValueAndValidity({emitEvent:i.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(t,e={}){et(this,!1,t),t.forEach((i,r)=>{Qe(this,!1,r),this.at(r).setValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e)}patchValue(t,e={}){t!=null&&(t.forEach((i,r)=>{this.at(r)&&this.at(r).patchValue(i,{onlySelf:!0,emitEvent:e.emitEvent})}),this.updateValueAndValidity(e))}reset(t=[],e={}){this._forEachChild((i,r)=>{i.reset(t[r],{onlySelf:!0,emitEvent:e.emitEvent})}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e)}getRawValue(){return this.controls.map(t=>t.getRawValue())}clear(t={}){this.controls.length<1||(this._forEachChild(e=>e._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:t.emitEvent}))}_adjustIndex(t){return t<0?t+this.length:t}_syncPendingControls(){let t=this.controls.reduce((e,i)=>i._syncPendingControls()?!0:e,!1);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){this.controls.forEach((e,i)=>{t(e,i)})}_updateValue(){this.value=this.controls.filter(t=>t.enabled||this.disabled).map(t=>t.value)}_anyControls(t){return this.controls.some(e=>e.enabled&&t(e))}_setUpControls(){this._forEachChild(t=>this._registerControl(t))}_allControlsDisabled(){for(let t of this.controls)if(t.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(t){t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)}_find(t){var e;return(e=this.at(t))!=null?e:null}},Nn=he;var On=(()=>{class n{static withConfig(e){var i;return{ngModule:n,providers:[{provide:N,useValue:(i=e.callSetDisabledState)!=null?i:se}]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=z({type:n});static \u0275inj=q({imports:[ut]})}return n})(),xn=(()=>{class n{static withConfig(e){var i,r;return{ngModule:n,providers:[{provide:Ve,useValue:(i=e.warnOnNgModelWithFormControl)!=null?i:"always"},{provide:N,useValue:(r=e.callSetDisabledState)!=null?r:se}]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=z({type:n});static \u0275inj=q({imports:[ut]})}return n})();export{b as a,ct as b,je as c,Se as d,bn as e,An as f,B as g,Mn as h,xt as i,Ce as j,Fn as k,Gt as l,wn as m,Tt as n,Bt as o,Ht as p,Wt as q,ot as r,In as s,Sn as t,Yt as u,Jt as v,en as w,Nn as x,On as y,xn as z};
@@ -0,0 +1 @@
1
+ import{a as N,b as U}from"./chunk-LJNOSMWT.js";import{m as H}from"./chunk-J4I2UKEG.js";import{a as D}from"./chunk-E4LCOK4T.js";import{d as V}from"./chunk-EBVMWV7Q.js";import{b as E,j as z}from"./chunk-HVJRSDCO.js";import{c as I,d as w}from"./chunk-YXTLNUTK.js";import{a as P,b as A}from"./chunk-Q4VBD4HY.js";import{Bb as f,Cc as l,Dc as d,Ec as F,Lb as S,Mb as b,Rb as c,Wb as s,Xb as o,Yb as u,ac as R,dc as x,ec as p,g as $,h as k,ib as i,na as _,oc as a,pc as h,qc as v,ub as y,xa as C,ya as g,yc as B}from"./chunk-NHJLTSH3.js";var M=$(N(),1),W=$(U(),1);var j=t=>({maxBackupSizeText:t});function q(t,m){if(t&1&&(s(0,"div"),u(1,"input",11),o()),t&2){let e=p(2);i(),b("value",e.selectedBackup.fileName)}}function O(t,m){if(t&1){let e=R();s(0,"div",10)(1,"input",12),x("change",function(n){C(e);let T=p(2);return g(T.handleRestoreFileInput(n.target.files))}),o(),s(2,"label",13),a(3),l(4,"translate"),o()()}if(t&2){let e=p(2);i(3),v(" ",d(4,1,(e.selectedFile==null?null:e.selectedFile.name)||"backup.label_choose_backup_file_to_restore")," ")}}function G(t,m){if(t&1&&(s(0,"div",5)(1,"div",8),u(2,"i",9),o(),s(3,"p"),a(4),l(5,"translate"),o(),s(6,"ul")(7,"li"),a(8),l(9,"translate"),o(),s(10,"li"),a(11),l(12,"translate"),o(),s(13,"li"),a(14),l(15,"translate"),o()(),f(16,q,2,1,"div")(17,O,5,3,"div",10),o()),t&2){let e=p();i(4),h(d(5,6,"backup.restore_help_one")),i(4),h(d(9,8,"backup.restore_help_two")),i(3),h(F(12,10,"backup.restore_max_size",B(15,j,e.maxFileSizeText))),i(3),h(d(15,13,"backup.restore_warning")),i(2),c(e.selectedBackup?16:-1),i(),c(e.selectedBackup?-1:17)}}function J(t,m){t&1&&u(0,"i",19)}function K(t,m){if(t&1&&(s(0,"span"),a(1),o()),t&2){let e=p(3);i(),v("",e.uploadPercent,"% - ")}}function L(t,m){t&1&&(s(0,"span"),a(1," Extracting Archive"),o())}function Q(t,m){t&1&&(s(0,"span"),a(1),l(2,"translate"),o()),t&2&&(i(),v(" ",d(2,1,"backup.label_uploading"),""))}function X(t,m){if(t&1&&(s(0,"span"),f(1,J,1,0,"i",19)(2,K,2,1,"span")(3,L,2,0,"span")(4,Q,3,3,"span"),o()),t&2){let e=p(2);i(),c(!e.uploadPercent||e.uploadPercent===100?1:-1),i(),c(e.uploadPercent&&e.uploadPercent!==100?2:-1),i(),c(e.uploadPercent===100?3:-1),i(),c(e.uploadPercent!==100?4:-1)}}function Y(t,m){t&1&&(s(0,"span"),a(1),l(2,"translate"),o()),t&2&&(i(),h(d(2,1,"form.button_restore")))}function Z(t,m){if(t&1){let e=R();s(0,"div",7)(1,"div",14)(2,"button",15),l(3,"translate"),x("click",function(){C(e);let n=p();return g(n.$activeModal.dismiss("Dismiss"))}),a(4),l(5,"translate"),o()(),u(6,"div",16),s(7,"div",17)(8,"button",18),x("click",function(){C(e);let n=p();return g(n.onRestoreBackupClick())}),f(9,X,5,4,"span")(10,Y,3,3,"span"),o()()()}if(t&2){let e=p();i(2),b("disabled",e.clicked),S("aria-label",d(3,6,"form.button_close")),i(2),v(" ",d(5,8,"form.button_close")," "),i(4),b("disabled",!e.selectedBackup&&!e.selectedFile||e.clicked),i(),c(e.clicked?9:-1),i(),c(e.clicked?-1:10)}}function ee(t,m){if(t&1){let e=R();s(0,"div",7),u(1,"div",14),s(2,"div",16)(3,"button",20),x("click",function(){C(e);let n=p();return g(n.postBackupRestart())}),a(4),l(5,"translate"),o()(),u(6,"div",17),o()}t&2&&(i(4),v(" ",d(5,1,"menu.hbrestart.title")," "))}var me=(()=>{class t{$activeModal=_(H);$api=_(E);$route=_(V);$toastr=_(z);$translate=_(P);$ws=_(D);setupWizardRestore=!1;selectedBackup=null;clicked=!1;maxFileSizeText=globalThis.backup.maxBackupSizeText;selectedFile;restoreInProgress=!1;restoreStarted=!1;restoreFailed=!1;restoreArchiveType="homebridge";uploadPercent=0;term=new M.Terminal;termTarget;fitAddon=new W.FitAddon;io;constructor(){}ngOnInit(){return k(this,null,function*(){this.io=this.$ws.connectToNamespace("backup"),this.termTarget=document.getElementById("plugin-log-output"),this.term.open(this.termTarget),this.fitAddon.fit(),this.io.socket.on("stdout",e=>{this.term.write(e)}),this.setupWizardRestore&&(this.restoreStarted=!0,this.restoreInProgress=!0,this.startRestore())})}onRestoreBackupClick(){this.selectedBackup?this.restoreScheduledBackup():this.restoreArchiveType==="homebridge"?this.uploadHomebridgeArchive():this.restoreArchiveType==="hbfx"&&this.uploadHbfxArchive()}uploadHomebridgeArchive(){this.term.reset(),this.clicked=!0;let e=new FormData;e.append("restoreArchive",this.selectedFile,this.selectedFile.name),this.$api.post("/backup/restore",e).subscribe({next:()=>{this.restoreStarted=!0,this.restoreInProgress=!0,setTimeout(()=>{this.startRestore()},500),this.clicked=!1},error:r=>{var n;console.error(r),this.$toastr.error(((n=r.error)==null?void 0:n.message)||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error")),this.clicked=!1}})}restoreScheduledBackup(){return k(this,null,function*(){this.term.reset(),this.clicked=!0,this.$api.post(`/backup/scheduled-backups/${this.selectedBackup.id}/restore`,{}).subscribe({next:()=>{this.restoreStarted=!0,this.restoreInProgress=!0,setTimeout(()=>{this.startRestore()},500),this.clicked=!1},error:e=>{var r;console.error(e),this.$toastr.error(((r=e.error)==null?void 0:r.message)||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error")),this.clicked=!1}})})}startRestore(){return k(this,null,function*(){this.io.request("do-restore").subscribe({next:()=>{this.restoreInProgress=!1,this.$toastr.success(this.$translate.instant("backup.backup_restored"),this.$translate.instant("toast.title_success")),this.setupWizardRestore&&this.postBackupRestart()},error:e=>{this.restoreFailed=!0,console.error(e),this.$toastr.error(this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})})}uploadHbfxArchive(){this.term.reset(),this.clicked=!0;let e=new FormData;e.append("restoreArchive",this.selectedFile,this.selectedFile.name),this.$api.post("/backup/restore/hbfx",e,{reportProgress:!0,observe:"events"}).subscribe({next:r=>{r.type===I.UploadProgress?this.uploadPercent=Math.round(100*r.loaded/r.total):r instanceof w&&(this.restoreStarted=!0,this.restoreInProgress=!0,setTimeout(()=>{this.startHbfxRestore()},500),this.clicked=!1)},error:r=>{var n;this.clicked=!1,console.error(r),this.$toastr.error(((n=r.error)==null?void 0:n.message)||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})}startHbfxRestore(){return k(this,null,function*(){this.io.request("do-restore-hbfx").subscribe({next:()=>{this.restoreInProgress=!1,this.$toastr.success(this.$translate.instant("backup.backup_restored"),this.$translate.instant("toast.title_success"))},error:e=>{this.restoreFailed=!0,console.error(e),this.$toastr.error(this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})})}handleRestoreFileInput(e){e.length?(this.selectedFile=e[0],this.selectedFile.name.endsWith(".hbfx")?this.restoreArchiveType="hbfx":this.restoreArchiveType="homebridge"):delete this.selectedFile}postBackupRestart(){this.$api.put("/backup/restart",{}).subscribe({next:()=>{this.$activeModal.close(!0),this.$route.navigate(["/"])},error:()=>{}})}ngOnDestroy(){this.io.end()}static \u0275fac=function(r){return new(r||t)};static \u0275cmp=y({type:t,selectors:[["ng-component"]],inputs:{setupWizardRestore:"setupWizardRestore",selectedBackup:"selectedBackup"},decls:13,vars:11,consts:[[1,"modal-content","hb-backup-modal"],[1,"modal-header"],[1,"modal-title"],["type","button","data-dismiss","modal",1,"close",3,"click","disabled"],["aria-hidden","true"],[1,"modal-body"],["id","plugin-log-output",1,"modal-body",3,"hidden"],[1,"modal-footer","justify-content-between"],[1,"text-center","mt-2","mb-3"],[1,"fas","fa-fw","fa-hard-drive","primary-text",2,"font-size","75px"],[1,"custom-file"],["type","text","disabled","",1,"form-control","custom-input",3,"value"],["type","file","id","restoreFileUpload","accept","application/gzip, .gz, .hbfx",1,"custom-file-input",3,"change"],["for","restoreFileUpload",1,"custom-file-label"],[1,"text-left"],["type","button","data-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-center"],[1,"text-right"],["type","button","data-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"],[1,"fa","fa-fw","fa-circle-notch","fa-spin"],["type","button","data-dismiss","modal",1,"btn","btn-primary",3,"click"]],template:function(r,n){r&1&&(s(0,"div",0)(1,"div",1)(2,"h5",2),a(3),l(4,"translate"),o(),s(5,"button",3),l(6,"translate"),x("click",function(){return n.$activeModal.dismiss("Dismiss")}),s(7,"span",4),a(8,"\xD7"),o()()(),f(9,G,18,17,"div",5),u(10,"div",6),f(11,Z,11,10,"div",7)(12,ee,7,3,"div",7),o()),r&2&&(i(3),h(d(4,7,"form.button_restore")),i(2),b("disabled",n.restoreInProgress),S("aria-label",d(6,9,"form.button_close")),i(4),c(!n.restoreStarted&&!n.setupWizardRestore?9:-1),i(),b("hidden",!n.restoreStarted),i(),c(!n.restoreStarted||n.restoreFailed===!0?11:-1),i(),c(!n.restoreInProgress&&n.restoreStarted?12:-1))},dependencies:[A],encapsulation:2})}return t})();export{me as a};
@@ -0,0 +1 @@
1
+ import"./chunk-2SJOCVSL.js";import"./chunk-JHT7FCNA.js";import"./chunk-IF47NAUS.js";import"./chunk-LJNOSMWT.js";import"./chunk-NNPWW7QY.js";import{q as s}from"./chunk-J4I2UKEG.js";import"./chunk-UUOIJNVA.js";import"./chunk-E4LCOK4T.js";import{g as i}from"./chunk-EBVMWV7Q.js";import"./chunk-33OXRXUC.js";import"./chunk-CBI3LF3A.js";import"./chunk-HVJRSDCO.js";import"./chunk-YXTLNUTK.js";import{c as n}from"./chunk-Q4VBD4HY.js";import{ia as t,nd as m,vb as r}from"./chunk-NHJLTSH3.js";var f=[{path:"",loadComponent:()=>import("./chunk-NRCSHT3L.js").then(o=>o.LogsComponent)}],p=(()=>{class o{static \u0275fac=function(e){return new(e||o)};static \u0275mod=r({type:o});static \u0275inj=t({imports:[i.forChild(f),i]})}return o})();var h=(()=>{class o{static \u0275fac=function(e){return new(e||o)};static \u0275mod=r({type:o});static \u0275inj=t({imports:[m,p,s,n.forChild()]})}return o})();export{h as LogsModule};
@@ -0,0 +1 @@
1
+ import"./chunk-MA3HOSPP.js";import"./chunk-LJNRODOH.js";import"./chunk-E4LCOK4T.js";import{g as n}from"./chunk-EBVMWV7Q.js";import"./chunk-33OXRXUC.js";import"./chunk-CBI3LF3A.js";import"./chunk-HVJRSDCO.js";import"./chunk-YXTLNUTK.js";import{c as m}from"./chunk-Q4VBD4HY.js";import{ia as t,nd as i,vb as r}from"./chunk-NHJLTSH3.js";var d=[{path:"",redirectTo:"/",pathMatch:"full"},{path:"restart-server",loadComponent:()=>import("./chunk-4GEGP5GO.js").then(o=>o.RestartLinuxComponent)},{path:"shutdown-server",loadComponent:()=>import("./chunk-DBMSQ32L.js").then(o=>o.ShutdownLinuxComponent)}],u=(()=>{class o{static \u0275fac=function(e){return new(e||o)};static \u0275mod=r({type:o});static \u0275inj=t({imports:[n.forChild(d),n]})}return o})();var g=(()=>{class o{static \u0275fac=function(e){return new(e||o)};static \u0275mod=r({type:o});static \u0275inj=t({imports:[i,m.forChild(),u]})}return o})();export{g as LinuxModule};
@@ -0,0 +1 @@
1
+ import{a as w}from"./chunk-E4LCOK4T.js";import{d as S}from"./chunk-EBVMWV7Q.js";import{b as k}from"./chunk-CBI3LF3A.js";import{b as y,j as T}from"./chunk-HVJRSDCO.js";import{a as C,b as $}from"./chunk-Q4VBD4HY.js";import{Bb as _,Cc as p,Dc as m,Mb as x,Rb as c,Wb as n,Xb as r,Yb as f,db as u,ec as g,ib as e,na as a,oc as o,pc as s,ub as v}from"./chunk-NHJLTSH3.js";function b(t,h){t&1&&(n(0,"p",7),o(1),p(2,"translate"),r()),t&2&&(e(),s(m(2,1,"restart.please_wait_while_server_restarts")))}function E(t,h){if(t&1&&(n(0,"div",8),o(1),r()),t&2){let i=g();e(),s(i.error)}}function I(t,h){t&1&&(n(0,"div",9)(1,"div",10),f(2,"i",11),r()())}function R(t,h){t&1&&(n(0,"div")(1,"div",12)(2,"p"),o(3),p(4,"translate"),r(),f(5,"p",13),p(6,"translate"),r()()),t&2&&(e(3),s(m(4,2,"platform.docker.server_long_time")),e(2),x("innerHTML",m(6,4,"platform.docker.run_with_restart"),u))}var P=(()=>{class t{$api=a(y);$router=a(S);$settings=a(k);$toastr=a(T);$translate=a(C);$ws=a(w);checkTimeout;checkDelay;resp={};timeout=!1;error=!1;io;constructor(){}ngOnInit(){this.io=this.$ws.connectToNamespace("status"),this.io.connected.subscribe(()=>{this.io.socket.emit("monitor-server-status"),this.$settings.getAppSettings().catch()}),this.$api.put("/platform-tools/docker/restart-container",{}).subscribe({next:i=>{this.resp=i,this.checkIfServerUp()},error:i=>{this.error=this.$translate.instant("restart.toast_server_restart_error"),console.error(i),this.$toastr.error(this.$translate.instant("restart.toast_server_restart_error"),this.$translate.instant("toast.title_error"))}})}checkIfServerUp(){this.checkDelay=setTimeout(()=>{this.io.socket.on("homebridge-status",i=>{(i.status==="up"||i.status==="pending")&&(this.$toastr.success(this.$translate.instant("platform.docker.container_restarted"),this.$translate.instant("toast.title_success")),this.$router.navigate(["/"]))})},1e4),this.checkTimeout=setTimeout(()=>{this.$toastr.warning(this.$translate.instant("restart.toast_server_restart_timeout"),this.$translate.instant("toast.title_warning"),{timeOut:1e4}),this.timeout=!0},6e4)}ngOnDestroy(){this.io.end(),clearTimeout(this.checkDelay),clearTimeout(this.checkTimeout)}static \u0275fac=function(l){return new(l||t)};static \u0275cmp=v({type:t,selectors:[["ng-component"]],decls:15,vars:10,consts:[[1,"d-flex","justify-content-between"],[1,"primary-text","m-0"],[1,"my-4","align-items-center",2,"max-width","1000px","margin","auto"],[1,"w-100","text-center","primary-text","mb-5"],[1,"fab","fa-fw","fa-docker",2,"font-size","75px"],[1,"text-center"],[1,"primary-text","mb-4"],[1,"grey-text"],[1,"alert","alert-error","my-4"],[1,"justify-content-center","my-4"],[1,"restart-progress-box","primary-text"],[1,"fas","fa-fw","fa-spinner","fa-spin"],[1,"alert","alert-warning","my-4"],[1,"grey-text","mb-0",3,"innerHTML"]],template:function(l,d){l&1&&(n(0,"div",0)(1,"h3",1),o(2),p(3,"translate"),r()(),n(4,"div",2)(5,"div",3),f(6,"i",4),r(),n(7,"div",5)(8,"h4",6),o(9),p(10,"translate"),r(),_(11,b,3,3,"p",7)(12,E,2,1,"div",8)(13,I,3,0,"div",9)(14,R,7,6,"div"),r()()),l&2&&(e(2),s(m(3,6,"menu.restart.title")),e(7),s(m(10,8,"platform.docker.title_restarting")),e(2),c(d.error?-1:11),e(),c(d.error?12:-1),e(),c(d.error?-1:13),e(),c(d.timeout?14:-1))},dependencies:[$],styles:[".restart-progress-box[_ngcontent-%COMP%]{font-size:22px;margin-top:15px}"]})}return t})();export{P as a};
@@ -0,0 +1 @@
1
+ import{a as f,b as l}from"./chunk-NFFAXZA6.js";import{a as d}from"./chunk-4XUOS275.js";import{T as p}from"./chunk-MP2566JB.js";import"./chunk-2DMDQOK2.js";import"./chunk-67EN4M44.js";import{q as c}from"./chunk-J4I2UKEG.js";import{y as n}from"./chunk-UUOIJNVA.js";import"./chunk-E4LCOK4T.js";import{g as i}from"./chunk-EBVMWV7Q.js";import"./chunk-33OXRXUC.js";import"./chunk-CBI3LF3A.js";import"./chunk-HVJRSDCO.js";import"./chunk-YXTLNUTK.js";import{c as s}from"./chunk-Q4VBD4HY.js";import{ia as r,nd as m,vb as e}from"./chunk-NHJLTSH3.js";var g=[{path:"",loadComponent:()=>import("./chunk-7PD4QI6O.js").then(o=>o.AccessoriesComponent)}],u=(()=>{class o{static \u0275fac=function(t){return new(t||o)};static \u0275mod=e({type:o});static \u0275inj=r({imports:[i.forChild(g),i]})}return o})();var H=(()=>{class o{static \u0275fac=function(t){return new(t||o)};static \u0275mod=e({type:o});static \u0275inj=r({imports:[m,n,c,p,s.forChild(),d,u,l,f]})}return o})();export{H as AccessoriesModule};
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-X34XL3Z7.js";import"./chunk-E4LCOK4T.js";import"./chunk-EBVMWV7Q.js";import"./chunk-33OXRXUC.js";import"./chunk-CBI3LF3A.js";import"./chunk-HVJRSDCO.js";import"./chunk-YXTLNUTK.js";import"./chunk-Q4VBD4HY.js";import"./chunk-NHJLTSH3.js";export{a as ContainerRestartComponent};
@@ -0,0 +1 @@
1
+ import{c as Q,d as x,e as z,f as D,g as H,j as w,m as j,p as A,q as W,w as U,y as J,z as K}from"./chunk-UUOIJNVA.js";import{d as G}from"./chunk-EBVMWV7Q.js";import{c as q}from"./chunk-33OXRXUC.js";import{b as T}from"./chunk-CBI3LF3A.js";import{a as P}from"./chunk-HVJRSDCO.js";import{b as O}from"./chunk-Q4VBD4HY.js";import{Bb as S,Cc as l,Dc as p,M as k,Mb as m,Rb as c,Wb as a,Xb as r,Yb as h,bd as R,dc as $,ec as I,h as y,hd as N,ib as i,lc as C,mc as L,na as g,oc as s,pc as d,qc as B,rb as v,ub as M,w as V,yc as f}from"./chunk-NHJLTSH3.js";var X=["password"],Y=["username"],Z=["otp"],ee=e=>({background:e}),F=e=>({"is-invalid":e});function te(e,_){if(e&1&&(a(0,"div")(1,"div",10),h(2,"i",11)(3,"input",12,0),a(5,"label",13),s(6),l(7,"translate"),r()(),a(8,"div",10),h(9,"i",14)(10,"input",15,1),a(12,"label",16),s(13),l(14,"translate"),r()()()),e&2){let t=I();i(3),m("ngClass",f(8,F,t.form.controls.username.dirty&&t.form.controls.username.errors)),i(3),d(p(7,4,"login.label_username")),i(4),m("ngClass",f(10,F,t.form.controls.password.dirty&&t.form.controls.password.errors)),i(3),d(p(14,6,"login.label_password"))}}function ne(e,_){if(e&1&&(a(0,"div")(1,"p",7),s(2),l(3,"translate"),r(),a(4,"div",10),h(5,"i",17)(6,"input",18,2),a(8,"label",19),s(9),l(10,"translate"),r()()()),e&2){let t=I();i(2),d(p(3,3,"users.setup_2fa_enter_code")),i(4),m("ngClass",f(7,F,t.form.controls.otp.dirty&&t.form.controls.otp.errors)),i(3),d(p(10,5,"login.label_2fa_code"))}}function ie(e,_){e&1&&(a(0,"p",8)(1,"small"),s(2),l(3,"translate"),r()()),e&2&&(i(2),d(p(3,1,"login.invalid_credentials")))}function oe(e,_){e&1&&(a(0,"p",8)(1,"small"),s(2),l(3,"translate"),r()()),e&2&&(i(2),d(p(3,1,"login.message_invalid_2fa_code")))}var Ce=(()=>{class e{$auth=g(q);$router=g(G);$settings=g(T);passwordInput=v("password");usernameInput=v("username");otpInput=v("otp");form;backgroundStyle;invalidCredentials=!1;invalid2faCode=!1;twoFactorCodeRequired=!1;inProgress=!1;targetRoute;constructor(){}ngOnInit(){this.form=new H({username:new w(""),password:new w("")}),this.form.valueChanges.pipe(k(500)).subscribe(t=>{var n;let o=(n=this.passwordInput())==null?void 0:n.nativeElement.value;o&&o!==t.password&&this.form.controls.password.setValue(o)}),this.targetRoute=window.sessionStorage.getItem("target_route")||"",this.setBackground()}setBackground(){return y(this,null,function*(){if(this.$settings.settingsLoaded||(yield V(this.$settings.onSettingsLoaded)),this.$settings.env.customWallpaperHash){let t=this.$settings.env.customWallpaperHash?`${P.api.base}/auth/wallpaper/${this.$settings.env.customWallpaperHash}`:"/assets/snapshot.jpg";this.backgroundStyle=`url('${t}') center/cover`}})}onSubmit(){return y(this,null,function*(){var n,b,E;this.invalidCredentials=!1,this.invalid2faCode=!1,this.inProgress=!0;let t=(n=this.passwordInput())==null?void 0:n.nativeElement.value;t&&t!==this.form.get("password").value&&this.form.controls.password.setValue(t);let o=(b=this.usernameInput())==null?void 0:b.nativeElement.value;if(o&&o!==this.form.get("username").value&&this.form.controls.username.setValue(o),this.twoFactorCodeRequired){let u=(E=this.otpInput())==null?void 0:E.nativeElement.value;u&&u!==this.form.get("otp").value&&this.form.controls.username.setValue(u)}yield this.$auth.login(this.form.getRawValue()).then(()=>{this.$router.navigateByUrl(this.targetRoute),window.sessionStorage.removeItem("target_route")}).catch(u=>{u.status===412?(this.form.controls.otp?(this.form.controls.otp.setErrors(["Invalid Code"]),this.invalid2faCode=!0):this.form.addControl("otp",new w("",[x.required,x.minLength(6),x.maxLength(6)])),this.twoFactorCodeRequired=!0,setTimeout(()=>{document.getElementById("form-ota").focus()},100)):this.invalidCredentials=!0}),this.inProgress=!1})}static \u0275fac=function(o){return new(o||e)};static \u0275cmp=M({type:e,selectors:[["ng-component"]],viewQuery:function(o,n){o&1&&(C(n.passwordInput,X,5),C(n.usernameInput,Y,5),C(n.otpInput,Z,5)),o&2&&L(3)},decls:13,vars:12,consts:[["username",""],["password",""],["otp",""],[1,"login-container","d-flex","align-items-center","justify-content-center",3,"ngStyle"],[1,"card","card-body","mx-2","login-card"],["novalidate","",3,"ngSubmit","formGroup"],[1,"h4","text-center","mb-4"],[1,"text-center"],[1,"red-text"],["tabindex","3","type","submit",1,"btn","btn-primary",3,"disabled"],[1,"md-form"],[1,"fas","fa-fw","fa-user","prefix","grey-text"],["formControlName","username","type","text","id","form-username","autofocus","","autocomplete","username","autocapitalize","none","tabindex","1",1,"form-control","px-0",3,"ngClass"],["for","form-username"],[1,"fas","fa-fw","fa-lock","prefix","grey-text"],["formControlName","password","type","password","id","form-pass","autocomplete","current-password","tabindex","2",1,"form-control","px-0",3,"ngClass"],["for","form-pass"],[1,"fas","fa-fw","fa-key","prefix","grey-text"],["formControlName","otp","type","text","id","form-ota","autocomplete","one-time-code","autocapitalize","none","inputmode","numeric","pattern","[0-9]*","tabindex","1",1,"form-control","px-0",3,"ngClass"],["for","form-ota"]],template:function(o,n){o&1&&(a(0,"div",3)(1,"div",4)(2,"form",5),$("ngSubmit",function(){return n.onSubmit()}),a(3,"p",6),s(4,"Homebridge"),r(),S(5,te,15,12,"div")(6,ne,11,9,"div"),a(7,"div",7),S(8,ie,4,3,"p",8)(9,oe,4,3,"p",8),a(10,"button",9),s(11),l(12,"translate"),r()()()()()),o&2&&(m("ngStyle",f(10,ee,n.backgroundStyle)),i(2),m("formGroup",n.form),i(3),c(n.twoFactorCodeRequired?-1:5),i(),c(n.twoFactorCodeRequired?6:-1),i(2),c(n.invalidCredentials?8:-1),i(),c(n.invalid2faCode?9:-1),i(),m("disabled",n.form.invalid),i(),B(" ",p(12,8,"login.button_login")," "))},dependencies:[N,J,j,Q,z,D,U,K,A,W,R,O],styles:[".login-container[_ngcontent-%COMP%]{background-color:#f4f4f4;background-size:cover;position:absolute;top:0;bottom:0;right:0;left:0}.login-card[_ngcontent-%COMP%]{max-width:500px;background-color:#ffffffe6}.login-card[_ngcontent-%COMP%] .form-control[_ngcontent-%COMP%]:focus{background-color:inherit!important}@media screen and (min-height: 800px){.login-card[_ngcontent-%COMP%]{margin-bottom:12em}}.login-logo[_ngcontent-%COMP%]{position:absolute;top:-35%;z-index:2000;max-width:450px}@media screen and (max-width: 450px){.login-logo[_ngcontent-%COMP%]{max-width:320px;top:-25%}}@media screen and (max-width: 320px){.login-logo[_ngcontent-%COMP%]{max-width:280px}}@media screen and (max-height: 450px){.login-logo[_ngcontent-%COMP%]{display:none}}"]})}return e})();export{Ce as a};