homebridge-config-ui-x 5.12.1-beta.3 → 5.12.1-beta.5

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 (156) hide show
  1. package/package.json +10 -10
  2. package/public/{chunk-JXGR2UI3.js → chunk-2DRLNNDM.js} +1 -1
  3. package/public/chunk-2FKL7WTN.js +1 -0
  4. package/public/{chunk-LKA3HBCU.js → chunk-2K66PSKD.js} +1 -1
  5. package/public/{chunk-Q4ALB4PG.js → chunk-2QSUQ4VI.js} +1 -1
  6. package/public/chunk-3B3NAPXD.js +1 -0
  7. package/public/chunk-3BODPB3K.js +1 -0
  8. package/public/chunk-3BOXIXZY.js +1 -0
  9. package/public/{chunk-ZBIB5CY4.js → chunk-3LY5FRVV.js} +1 -1
  10. package/public/{chunk-PIZ742XO.js → chunk-3N3RJBS3.js} +1 -1
  11. package/public/chunk-3NHWMCB7.js +1 -0
  12. package/public/chunk-3YXAYQFV.js +1 -0
  13. package/public/chunk-4BX7KSQH.js +1 -0
  14. package/public/{chunk-I4UJLAVJ.js → chunk-4OEYZBSF.js} +1 -1
  15. package/public/{chunk-ZBNB3EPH.js → chunk-4P4VAV7I.js} +1 -1
  16. package/public/chunk-5A2G7KDR.js +1 -0
  17. package/public/{chunk-CJ4RHJAH.js → chunk-5QHRLSAE.js} +1 -1
  18. package/public/chunk-65AW3ZMH.js +1 -0
  19. package/public/{chunk-XFKYZXKP.js → chunk-664C4LX2.js} +1 -1
  20. package/public/chunk-6KHLSYCO.js +1 -0
  21. package/public/{chunk-MAQWGSNZ.js → chunk-6U3YEWBO.js} +1 -1
  22. package/public/chunk-7GUHWJ4X.js +1 -0
  23. package/public/chunk-7JD74YRM.js +1 -0
  24. package/public/{chunk-SKRVTKE3.js → chunk-A5JF6PDD.js} +6 -6
  25. package/public/chunk-AHIRH7NQ.js +1 -0
  26. package/public/chunk-AST2OLG2.js +1 -0
  27. package/public/{chunk-Z56QIJS3.js → chunk-ATJM3XYR.js} +1 -1
  28. package/public/{chunk-S2NF675V.js → chunk-AY35X64S.js} +1 -1
  29. package/public/chunk-AZLCZPTC.js +1 -0
  30. package/public/chunk-BJV2F6QZ.js +1 -0
  31. package/public/{chunk-UQTV3KLJ.js → chunk-BRGXDZZE.js} +1 -1
  32. package/public/chunk-BUZBTHD2.js +1 -0
  33. package/public/{chunk-TXSHVS35.js → chunk-BZLBFDQG.js} +1 -1
  34. package/public/{chunk-CSG2SHBW.js → chunk-C5CMRH2U.js} +1 -1
  35. package/public/{chunk-7DSHUQQE.js → chunk-CAY6MDP6.js} +1 -1
  36. package/public/{chunk-JDMMT5L4.js → chunk-CP2QJXVO.js} +1 -1
  37. package/public/chunk-CXSRVC7V.js +1 -0
  38. package/public/chunk-DCBZUBGA.js +1 -0
  39. package/public/chunk-DJGU4NTG.js +1 -0
  40. package/public/chunk-DOJGHPYJ.js +1 -0
  41. package/public/chunk-DQVHBQLA.js +1 -0
  42. package/public/chunk-DUPASTS2.js +1 -0
  43. package/public/chunk-E55EDX5Y.js +1 -0
  44. package/public/chunk-F2HGBWZZ.js +1 -0
  45. package/public/{chunk-UU4H7O22.js → chunk-FH62LNHX.js} +1 -1
  46. package/public/chunk-FLCYKKEZ.js +1 -0
  47. package/public/{chunk-5ADKC7QH.js → chunk-GDBXX4WT.js} +1 -1
  48. package/public/chunk-GYM2PPGX.js +1 -0
  49. package/public/{chunk-VZQ3UMBD.js → chunk-H2UKSDHZ.js} +1 -1
  50. package/public/chunk-HBK7LF6W.js +1 -0
  51. package/public/chunk-IXMOGLOS.js +1 -0
  52. package/public/chunk-J56ZFHCF.js +1 -0
  53. package/public/{chunk-WLG7PGUZ.js → chunk-JBILFYTL.js} +1 -1
  54. package/public/{chunk-JBCO5ZGG.js → chunk-JPAZUSRO.js} +1 -1
  55. package/public/chunk-KDXP3F5S.js +1 -0
  56. package/public/{chunk-627DHRQR.js → chunk-KIFEAONI.js} +1 -1
  57. package/public/chunk-KYBKIBTT.js +1 -0
  58. package/public/chunk-LINXSUG2.js +1 -0
  59. package/public/chunk-LPJ4GDP3.js +1 -0
  60. package/public/chunk-LPWY3RKY.js +1 -0
  61. package/public/chunk-LR2GN2Y2.js +1 -0
  62. package/public/{chunk-7O34GFCK.js → chunk-M3DSUNBG.js} +1 -1
  63. package/public/{chunk-DZ4GN7CJ.js → chunk-MAJDTCMY.js} +1 -1
  64. package/public/chunk-MUHHYXFN.js +1 -0
  65. package/public/{chunk-5JY2IGJ4.js → chunk-MVT3BOGV.js} +1 -1
  66. package/public/chunk-N6F32H34.js +1 -0
  67. package/public/chunk-NPABPWX3.js +1 -0
  68. package/public/{chunk-Y6DNZAC2.js → chunk-NPMJGEDY.js} +1 -1
  69. package/public/chunk-NTQWCIIF.js +1 -0
  70. package/public/{chunk-G26XQPM7.js → chunk-NYEZF6Y3.js} +1 -1
  71. package/public/chunk-OU66C3M2.js +1 -0
  72. package/public/chunk-P67JXXO4.js +1 -0
  73. package/public/chunk-PTJ3UZME.js +1 -0
  74. package/public/chunk-Q5X66PGK.js +1 -0
  75. package/public/chunk-QGJKMFM5.js +1 -0
  76. package/public/chunk-QSXJHCTT.js +1 -0
  77. package/public/{chunk-UTK5QYBZ.js → chunk-RMDVYT7X.js} +1 -1
  78. package/public/{chunk-YUXVWURK.js → chunk-RWABUVQY.js} +1 -1
  79. package/public/{chunk-AGMIR63R.js → chunk-S2GJNEOI.js} +1 -1
  80. package/public/chunk-TR77UVYU.js +1 -0
  81. package/public/{chunk-KQSUQYOI.js → chunk-TV5ACJCB.js} +1 -1
  82. package/public/{chunk-LNVODE7E.js → chunk-UH3C2FAE.js} +1 -1
  83. package/public/chunk-UPP5DT2A.js +1 -0
  84. package/public/chunk-V45KU64F.js +1 -0
  85. package/public/{chunk-6JORSDRO.js → chunk-VFMCVZHO.js} +1 -1
  86. package/public/chunk-VV4LXPCS.js +1 -0
  87. package/public/{chunk-NSDUWTNB.js → chunk-VV4S6PBO.js} +1 -1
  88. package/public/{chunk-2J2ADNZ3.js → chunk-VWUZDCBZ.js} +1 -1
  89. package/public/{chunk-SKTRHOM7.js → chunk-WGTVNYII.js} +1 -1
  90. package/public/chunk-XTQWZF3J.js +1 -0
  91. package/public/{chunk-KU7MI4EL.js → chunk-XUP37AHQ.js} +1 -1
  92. package/public/chunk-XYVW562Y.js +1 -0
  93. package/public/{chunk-O7ASY26P.js → chunk-Y6B4ENQ3.js} +1 -1
  94. package/public/chunk-YCASP3MF.js +1 -0
  95. package/public/chunk-YDYBCBXX.js +1 -0
  96. package/public/chunk-Z2RGI4BU.js +1 -0
  97. package/public/chunk-ZPKMGNNM.js +1 -0
  98. package/public/{chunk-TIETFXW3.js → chunk-ZVU2KU6A.js} +1 -1
  99. package/public/index.html +1 -1
  100. package/public/{main-B3YXUAIV.js → main-QHHXZV7U.js} +1 -1
  101. package/public/chunk-2FXKHKRF.js +0 -1
  102. package/public/chunk-2ZERFNLG.js +0 -1
  103. package/public/chunk-3IQMKSYT.js +0 -1
  104. package/public/chunk-3LXZS65D.js +0 -1
  105. package/public/chunk-5GJ7VEN2.js +0 -1
  106. package/public/chunk-5J5BKS6V.js +0 -1
  107. package/public/chunk-5LEUA5ML.js +0 -1
  108. package/public/chunk-7SG2F2V4.js +0 -1
  109. package/public/chunk-7YP6YRCQ.js +0 -1
  110. package/public/chunk-A6ZF4UAT.js +0 -1
  111. package/public/chunk-ANHKZLHH.js +0 -1
  112. package/public/chunk-ANK4KDVK.js +0 -1
  113. package/public/chunk-AUQDKQJK.js +0 -1
  114. package/public/chunk-BUH4KDH4.js +0 -1
  115. package/public/chunk-CRZNK2EK.js +0 -1
  116. package/public/chunk-D5VO4XPO.js +0 -1
  117. package/public/chunk-DJ2EJOEH.js +0 -1
  118. package/public/chunk-E6DYTMWA.js +0 -1
  119. package/public/chunk-E7TDUWKH.js +0 -1
  120. package/public/chunk-EQED4CZQ.js +0 -1
  121. package/public/chunk-FE2ZONWW.js +0 -1
  122. package/public/chunk-FPSFZSJ3.js +0 -1
  123. package/public/chunk-G2NY3ZCN.js +0 -1
  124. package/public/chunk-GEGSB4GN.js +0 -1
  125. package/public/chunk-GN7QPRR6.js +0 -1
  126. package/public/chunk-HH2POB4I.js +0 -1
  127. package/public/chunk-HWDBPX2Z.js +0 -1
  128. package/public/chunk-IDS6VUDM.js +0 -1
  129. package/public/chunk-IR6ZCGVC.js +0 -1
  130. package/public/chunk-K6KSPMJA.js +0 -1
  131. package/public/chunk-KB7D5SFS.js +0 -1
  132. package/public/chunk-KJJHXJSC.js +0 -1
  133. package/public/chunk-LBYOA4VH.js +0 -1
  134. package/public/chunk-LJ22FMGM.js +0 -1
  135. package/public/chunk-LXQKJPCB.js +0 -1
  136. package/public/chunk-NEMS53PP.js +0 -1
  137. package/public/chunk-NNZ55R3M.js +0 -1
  138. package/public/chunk-NP4HRPHU.js +0 -1
  139. package/public/chunk-OEWYBM4X.js +0 -1
  140. package/public/chunk-OOIPUQER.js +0 -1
  141. package/public/chunk-P2GGGU2Y.js +0 -1
  142. package/public/chunk-QAK4LTJK.js +0 -1
  143. package/public/chunk-QKVFC7F5.js +0 -1
  144. package/public/chunk-RVX73CVN.js +0 -1
  145. package/public/chunk-SJDRQIN5.js +0 -1
  146. package/public/chunk-T6FOXECG.js +0 -1
  147. package/public/chunk-U5PCRNWX.js +0 -1
  148. package/public/chunk-UB77D3LN.js +0 -1
  149. package/public/chunk-USNKVK3T.js +0 -1
  150. package/public/chunk-VCQXRYFP.js +0 -1
  151. package/public/chunk-VF77U6IG.js +0 -1
  152. package/public/chunk-VS2RZZM2.js +0 -1
  153. package/public/chunk-XFEUNVVJ.js +0 -1
  154. package/public/chunk-Y7EASXJH.js +0 -1
  155. package/public/chunk-YM24O4KE.js +0 -1
  156. package/public/chunk-ZR36K7FI.js +0 -1
@@ -1 +1 @@
1
- import{a as Ee}from"./chunk-X66UFY6K.js";import{a as ae}from"./chunk-K3WEJJSS.js";import{a as Se}from"./chunk-ZBIB5CY4.js";import{n as R,o as ie}from"./chunk-HH2FDI7W.js";import{a as ne}from"./chunk-UVWXUC5Y.js";import{s as I,t as we}from"./chunk-RDHUW73W.js";import{c as Ce}from"./chunk-7DSHUQQE.js";import{a as xe}from"./chunk-C64AHVUO.js";import{b as K}from"./chunk-XFKYZXKP.js";import{B as ge,C as G,D as L,b as W,c as j,d as g,e as P,f as X,g as q,j as S,m as Y,q as Z,r as ee,s as te}from"./chunk-JBCO5ZGG.js";import{a as Ie,b as he}from"./chunk-DZ4GN7CJ.js";import{C as k,D as M,F,I as B}from"./chunk-2J2ADNZ3.js";import{Ab as h,Cb as de,Db as pe,Dc as o,Eb as ce,Ec as s,Fb as E,Fc as ve,Gb as r,Hb as a,Ib as d,Jb as D,Kb as T,Kc as oe,Lb as z,Rb as N,Sb as re,Xb as _,Yb as O,Za as e,Zb as v,aa as p,ea as le,ga as A,ha as V,hc as ue,ic as $,jc as Q,kc as m,lc as u,ma as me,mb as J,mc as c,nb as U,nc as fe,sa as y,xc as be,yb as f,yc as _e,zb as C}from"./chunk-F5MBSCH4.js";import{g as Be,h as w}from"./chunk-B4AJQJMI.js";function Ae(n,x){n&1&&(r(0,"ngb-alert",13)(1,"p",20),m(2),o(3,"translate"),a()()),n&2&&(E("dismissible",!1),e(2),u(s(3,2,"login.invalid_password")))}var ye=(()=>{class n{$activeModal=p(I);$api=p(B);$toastr=p(F);$translate=p(k);invalidCredentials=y(!1);formGroup=new q({password:new S("",[g.required])});disable2fa(){return w(this,null,function*(){this.invalidCredentials.set(!1);try{yield this.$api.post("/users/otp/deactivate",this.formGroup.value),this.$activeModal.close()}catch{this.formGroup.setValue({password:""}),this.invalidCredentials.set(!0)}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(l){return new(l||n)};static \u0275cmp=U({type:n,selectors:[["ng-component"]],decls:34,vars:27,consts:[[1,"modal-content",2,"min-height","300px"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-key","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],[1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["type","password","autocomplete","current-password",1,"form-control","custom-input",3,"formControl","placeholder"],["type","error",1,"mt-3","mb-0",3,"dismissible"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[1,"mb-0"]],template:function(l,i){l&1&&(r(0,"div",0)(1,"div",1)(2,"h5",2),m(3),o(4,"translate"),a(),r(5,"button",3),o(6,"translate"),_("click",function(){return i.dismissModal()}),a()(),r(7,"div",4)(8,"div",5),d(9,"i",6),a(),r(10,"ul",7)(11,"li"),m(12),o(13,"translate"),a()(),r(14,"ul",8)(15,"li",9)(16,"label",10),m(17),o(18,"translate"),a(),r(19,"div",11),d(20,"input",12),o(21,"translate"),a()()(),C(22,Ae,4,4,"ngb-alert",13),a(),r(23,"div",14)(24,"div",15)(25,"button",16),o(26,"translate"),_("click",function(){return i.dismissModal()}),m(27),o(28,"translate"),a()(),d(29,"div",17),r(30,"div",18)(31,"button",19),_("click",function(){return i.disable2fa()}),m(32),o(33,"translate"),a()()()()),l&2&&(e(3),u(s(4,11,"users.setup_2fa_disable")),e(2),f("aria-label",s(6,13,"form.button_close")),e(7),u(s(13,15,"users.setup_2fa_disable_current_password")),e(5),u(s(18,17,"users.label_password")),e(3),E("formControl",i.formGroup.controls.password)("placeholder",s(21,19,"users.label_password")),e(2),h(i.invalidCredentials()&&!i.formGroup.controls.password.value?22:-1),e(3),f("aria-label",s(26,21,"form.button_close")),e(2),c(" ",s(28,23,"form.button_close")," "),e(4),E("disabled",i.formGroup.invalid),e(),c(" ",s(33,25,"form.button_continue")," "))},dependencies:[G,j,P,L,Z,ne,M],encapsulation:2})}return n})();var Ue=Be(Ie(),1);var Ve=n=>({timeDiffError:n});function Ne(n,x){n&1&&(r(0,"li"),m(1),o(2,"translate"),a()),n&2&&(e(),u(s(2,1,"users.setup_2fa_scan_qr_code")))}function Fe(n,x){if(n&1&&(r(0,"ngb-alert",8)(1,"p",16),m(2),o(3,"translate"),a(),r(4,"p",17),m(5),o(6,"translate"),a()()),n&2){let t=v();E("dismissible",!1),e(2),u(s(3,3,"users.setup_2fa_cannot_setup_2fa")),e(3),u(ve(6,5,"users.setup_2fa_server_time_out",be(8,Ve,t.timeDiffError())))}}function je(n,x){n&1&&d(0,"i",27)}function Pe(n,x){n&1&&d(0,"i",28)}function qe(n,x){if(n&1){let t=N();r(0,"div",21),m(1),o(2,"translate"),d(3,"br"),m(4),r(5,"a",26),_("click",function(){A(t);let i=v(2);return V(i.copySecretToClipboard())}),C(6,je,1,0,"i",27)(7,Pe,1,0,"i",28),a()()}if(n&2){let t=v(2);e(),c(" ",s(2,3,"users.setup_2fa_scan_qr_manual")),e(3),c(" ",t.otpSecret()," "),e(2),h(t.secretCopied()?6:7)}}function Ge(n,x){if(n&1&&(r(0,"ul",9)(1,"li",18)(2,"div",19),d(3,"app-qrcode",20),a(),C(4,qe,8,5,"div",21),a(),r(5,"li",22)(6,"label",23),m(7),o(8,"translate"),a(),r(9,"div",24),d(10,"input",25),a()()()),n&2){let t=v();e(3),E("data",t.otpString()),e(),h(t.otpSecret()?4:-1),e(3),u(s(8,4,"users.setup_2fa_enter_code")),e(3),E("formControl",t.formGroup.controls.code)}}function Le(n,x){if(n&1){let t=N();r(0,"button",29),o(1,"translate"),_("click",function(){A(t);let i=v();return V(i.dismissModal())}),m(2),o(3,"translate"),a()}n&2&&(f("aria-label",s(1,2,"form.button_close")),e(2),c(" ",s(3,4,"form.button_close")," "))}function Re(n,x){if(n&1){let t=N();r(0,"button",29),o(1,"translate"),_("click",function(){A(t);let i=v();return V(i.dismissModal())}),m(2),o(3,"translate"),a()}n&2&&(f("aria-label",s(1,2,"form.button_close")),e(2),c(" ",s(3,4,"form.button_close")," "))}function ze(n,x){if(n&1){let t=N();r(0,"button",30),_("click",function(){A(t);let i=v();return V(i.enable2fa())}),m(1),o(2,"translate"),a()}if(n&2){let t=v();E("disabled",t.formGroup.invalid),e(),c(" ",s(2,2,"form.button_continue")," ")}}var Me=(()=>{class n{$activeModal=p(I);$api=p(B);$toastr=p(F);$translate=p(k);modalData=p(R);user=this.modalData.user;timeDiffError=y(null);otpString=y(void 0);otpSecret=y(void 0);secretCopied=y(!1);copyTimeout=null;formGroup=new q({code:new S("",[g.required,g.minLength(6),g.maxLength(6)])});ngOnInit(){this.initialize()}initialize(){return w(this,null,function*(){try{let t=yield this.$api.post("/users/otp/setup",{});this.checkTimeDiff(t.timestamp),this.timeDiffError()||(this.otpString.set(t.otpauth),this.otpSecret.set(new URL(t.otpauth).searchParams.get("secret")||""))}catch(t){this.$activeModal.dismiss(),console.error(t),this.$toastr.error(this.$translate.instant("users.setup_2fa_enable_error"),this.$translate.instant("toast.title_error"))}})}enable2fa(){return w(this,null,function*(){try{yield this.$api.post("/users/otp/activate",this.formGroup.value),this.$activeModal.close()}catch(t){console.error(t),this.$toastr.error(this.$translate.instant("users.setup_2fa_activate_error"),this.$translate.instant("toast.title_error"))}})}copySecretToClipboard(){return w(this,null,function*(){let t=this.otpSecret();t&&(yield navigator.clipboard.writeText(t),this.secretCopied.set(!0),this.copyTimeout&&clearTimeout(this.copyTimeout),this.copyTimeout=setTimeout(()=>{this.secretCopied.set(!1)},3e3))})}dismissModal(){this.$activeModal.dismiss("Dismiss")}checkTimeDiff(t){let l=(0,Ue.default)(t).diff(new Date,"millisecond");l<-5e3||l>5e3?this.timeDiffError.set(l):this.timeDiffError.set(null)}static \u0275fac=function(l){return new(l||n)};static \u0275cmp=U({type:n,selectors:[["ng-component"]],decls:24,vars:15,consts:[[1,"modal-content","setup2fa"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-key","primary-text",2,"font-size","75px"],[1,"mb-3"],["type","error",1,"mb-0",3,"dismissible"],[1,"list-group","list-group-box","mb-0"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"disabled"],[1,"fw-bold","mb-1"],[1,"mb-0"],[1,"list-group-item","text-center"],[1,"text-center","w-100","d-flex","justify-content-center","my-2"],[1,"mx-auto",2,"width","175px","height","175px",3,"data"],[1,"grey-text","small","mt-0","mb-1"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],[1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["type","text","placeholder","eg. 123456","autocomplete","one-time-code","autocapitalize","none","inputmode","numeric","pattern","[0-9]*",1,"form-control","custom-input",3,"formControl"],["href","javascript:void(0)",1,"ms-1","text-primary",3,"click"],[1,"fas","fa-check","green-text"],[1,"fas","fa-copy"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"]],template:function(l,i){l&1&&(r(0,"div",0)(1,"div",1)(2,"h5",2),m(3),o(4,"translate"),a(),r(5,"button",3),o(6,"translate"),_("click",function(){return i.dismissModal()}),a()(),r(7,"div",4)(8,"div",5),d(9,"i",6),a(),r(10,"ul",7)(11,"li"),m(12),o(13,"translate"),a(),C(14,Ne,3,3,"li"),a(),C(15,Fe,7,10,"ngb-alert",8),C(16,Ge,11,6,"ul",9),a(),r(17,"div",10)(18,"div",11),C(19,Le,4,6,"button",12),a(),r(20,"div",13),C(21,Re,4,6,"button",12),a(),r(22,"div",14),C(23,ze,3,4,"button",15),a()()()),l&2&&(e(3),u(s(4,9,"users.setup_2fa")),e(2),f("aria-label",s(6,11,"form.button_close")),e(7),u(s(13,13,"users.setup_2fa_warning")),e(2),h(i.timeDiffError()?-1:14),e(),h(i.timeDiffError()?15:-1),e(),h(i.timeDiffError()?-1:16),e(3),h(i.timeDiffError()?-1:19),e(2),h(i.timeDiffError()?21:-1),e(2),h(i.timeDiffError()?-1:23))},dependencies:[ne,Ee,G,j,P,ge,L,Z,M],encapsulation:2})}return n})();var De=(()=>{class n{$activeModal=p(I);$api=p(B);$toastr=p(F);$translate=p(k);modalData=p(ie);existingUsers=this.modalData.existingUsers;form=new q({username:new S("",[g.required]),name:new S("",[g.required]),password:new S("",[g.compose([g.required,g.minLength(4)])]),passwordConfirm:new S("",[g.required]),admin:new S(!0)},this.matchPassword);ngOnInit(){this.form.controls.username.addValidators(this.duplicateUsernameValidator.bind(this)),this.form.controls.username.updateValueAndValidity()}onSubmit(l){return w(this,arguments,function*({value:t}){try{yield this.$api.post("/users",t),this.$activeModal.close()}catch(i){this.$toastr.error(i.error?.message||i.message,this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}duplicateUsernameValidator(t){if(!t.value)return null;let l=t.value.trim();return l&&this.existingUsers.some(b=>b.username===l)?{duplicateUsername:!0}:null}matchPassword(t){let l=t.get("password")?.value,i=t.get("passwordConfirm")?.value;return l!==i?(t.get("passwordConfirm")?.setErrors({matchPassword:!0}),{matchPassword:!0}):null}static \u0275fac=function(l){return new(l||n)};static \u0275cmp=U({type:n,selectors:[["ng-component"]],decls:63,vars:52,consts:[[1,"modal-content"],["novalidate","",3,"ngSubmit","formGroup"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-user-plus","primary-text",2,"font-size","75px"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],["for","form-username",1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["formControlName","username","type","text","id","form-username","autofocus","","autocomplete","username","autocapitalize","none",1,"form-control","custom-input"],["for","form-name",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","name","type","text","id","form-name","autocomplete","name",1,"form-control","custom-input"],["for","form-pass",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","password","type","password","autocomplete","new-password","id","form-pass",1,"form-control","custom-input"],["for","form-pass-confirm",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","passwordConfirm","type","password","autocomplete","new-password","id","form-pass-confirm",1,"form-control","custom-input"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"text-start"],[1,"text-end","grey-text","d-flex","align-items-center"],["formControlName","admin","type","checkbox","id","isAdmin",1,"rendux-input"],["for","isAdmin",1,"rendux-label","ms-3"],[1,"modal-footer","justify-content-between"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","submit",1,"btn","btn-primary",3,"disabled"]],template:function(l,i){l&1&&(r(0,"div",0)(1,"form",1),_("ngSubmit",function(){return i.onSubmit(i.form)}),r(2,"div",2)(3,"h5",3),m(4),o(5,"translate"),a(),r(6,"button",4),o(7,"translate"),_("click",function(){return i.dismissModal()}),a()(),r(8,"div",5)(9,"div",6),d(10,"i",7),a(),r(11,"ul",8)(12,"li",9)(13,"label",10),m(14),o(15,"translate"),d(16,"app-required-indicator"),a(),r(17,"div",11),d(18,"input",12),o(19,"translate"),a()(),r(20,"li",9)(21,"label",13),m(22),o(23,"translate"),d(24,"app-required-indicator"),a(),r(25,"div",11),d(26,"input",14),o(27,"translate"),a()(),r(28,"li",9)(29,"label",15),m(30),o(31,"translate"),d(32,"app-required-indicator"),a(),r(33,"div",11),d(34,"input",16),o(35,"translate"),a()(),r(36,"li",9)(37,"label",17),m(38),o(39,"translate"),d(40,"app-required-indicator"),a(),r(41,"div",11),d(42,"input",18),o(43,"translate"),a()(),r(44,"li",19)(45,"span",20),m(46),o(47,"translate"),d(48,"app-required-indicator"),a(),r(49,"div",21),d(50,"input",22),o(51,"translate"),d(52,"label",23),a()()()(),r(53,"div",24)(54,"div",20)(55,"button",25),_("click",function(){return i.dismissModal()}),m(56),o(57,"translate"),a()(),d(58,"div",26),r(59,"div",27)(60,"button",28),m(61),o(62,"translate"),a()()()()()),l&2&&(e(),E("formGroup",i.form),e(3),u(s(5,24,"users.title_add_user")),e(2),f("aria-label",s(7,26,"form.button_close")),e(8),c(" ",s(15,28,"users.label_username")," "),e(4),$("is-invalid",i.form.controls.username.touched&&i.form.controls.username.invalid),f("aria-label",s(19,30,"users.label_username")),e(4),c(" ",s(23,32,"users.label_full_name")," "),e(4),$("is-invalid",i.form.controls.name.touched&&i.form.controls.name.invalid),f("aria-label",s(27,34,"users.label_full_name")),e(4),c(" ",s(31,36,"users.label_password")," "),e(4),$("is-invalid",i.form.controls.password.touched&&i.form.controls.password.invalid),f("aria-label",s(35,38,"users.label_password")),e(4),c(" ",s(39,40,"users.label_confirm_password")," "),e(4),$("is-invalid",i.form.controls.passwordConfirm.touched&&i.form.controls.passwordConfirm.invalid),f("aria-label",s(43,42,"users.label_confirm_password")),e(4),c(" ",s(47,44,"users.label_admin_user")," "),e(4),f("aria-label",s(51,46,"users.label_admin_user")),e(6),c(" ",s(57,48,"form.button_close")," "),e(4),E("disabled",!i.form.valid),e(),c(" ",s(62,50,"form.button_save")," "))},dependencies:[G,Y,j,W,P,X,L,te,ee,ae,M],encapsulation:2})}return n})();function Oe(n,x){n&1&&d(0,"app-required-indicator")}function Je(n,x){if(n&1&&(r(0,"li",9)(1,"label",29),m(2),o(3,"translate"),d(4,"app-required-indicator"),a(),r(5,"div",11),d(6,"input",30),o(7,"translate"),a()()),n&2){let t=v();e(2),c(" ",s(3,4,"users.label_confirm_password")," "),e(4),$("is-invalid",t.form.controls.passwordConfirm.touched&&t.form.controls.passwordConfirm.invalid),f("aria-label",s(7,6,"users.label_confirm_password"))}}function Qe(n,x){n&1&&(r(0,"div",22)(1,"div",25),m(2),o(3,"translate"),a()()),n&2&&(e(2),u(s(3,1,"common.phrases.are_you_sure")))}var Te=(()=>{class n{$activeModal=p(I);$api=p(B);$auth=p(K);$toastr=p(F);$translate=p(k);modalData=p(R);user=this.modalData.user;existingUsers=this.modalData.existingUsers||[];isCurrentUser=y(!1);deleteMode=y(!1);initialFormValue={};form=new q({username:new S("",[g.required]),name:new S("",[g.required]),password:new S("",[g.minLength(4)]),passwordConfirm:new S(""),admin:new S(!0)},this.matchPassword);isLastAdmin=oe(()=>this.user?.admin?this.existingUsers.filter(l=>l.admin).length<=1:!1);canDelete=oe(()=>!this.isCurrentUser()&&!this.isLastAdmin());ngOnInit(){this.user&&(this.isCurrentUser.set(this.$auth.user.username===this.user.username),this.form.patchValue(this.user),this.initialFormValue=this.form.getRawValue(),this.form.controls.username.addValidators(this.duplicateUsernameValidator.bind(this)),this.form.controls.username.updateValueAndValidity(),this.isLastAdmin()&&this.form.controls.admin.disable())}onSubmit(l){return w(this,arguments,function*({value:t}){if(this.user){if(this.deleteMode()){try{yield this.$api.delete(`/users/${this.user.id}`),this.$activeModal.close()}catch(i){console.error(i),this.$toastr.error(i.error?.message||i.message,this.$translate.instant("toast.title_error"))}return}try{yield this.$api.patch(`/users/${this.user.id}`,t),this.$activeModal.close(),this.isCurrentUser()&&t.username!==this.$auth.user.username&&this.$auth.logout()}catch(i){console.error(i),this.$toastr.error(i.error?.message||i.message,this.$translate.instant("toast.title_error"))}}})}toggleDeleteMode(t){this.deleteMode.set(!this.deleteMode()),this.deleteMode()?this.form.disable():(this.form.enable(),this.isLastAdmin()&&this.form.controls.admin.disable()),t.target.blur()}isFormUnchanged(){return this.form.controls.password.value?!1:JSON.stringify(this.form.getRawValue())===JSON.stringify(this.initialFormValue)}duplicateUsernameValidator(t){if(!t.value)return null;let l=t.value.trim();return l&&this.existingUsers.some(b=>b.id!==this.user.id&&b.username===l)?{duplicateUsername:!0}:null}dismissModal(){this.$activeModal.dismiss("Dismiss")}matchPassword(t){let l=t.get("password")?.value,i=t.get("passwordConfirm")?.value;return l!==i?(t.get("passwordConfirm")?.setErrors({matchPassword:!0}),{matchPassword:!0}):null}static \u0275fac=function(l){return new(l||n)};static \u0275cmp=U({type:n,selectors:[["ng-component"]],decls:60,vars:57,consts:[[1,"modal-content"],["novalidate","",3,"ngSubmit","formGroup"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-user-pen","primary-text",2,"font-size","75px"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],["for","form-username",1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["formControlName","username","type","text","id","form-username","autocomplete","off","autocapitalize","none",1,"form-control","custom-input"],["for","form-name",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","name","type","text","id","form-name","autocomplete","name",1,"form-control","custom-input"],["for","form-pass",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","password","type","password","autocomplete","new-password","id","form-pass",1,"form-control","custom-input"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"text-start"],[1,"text-end","grey-text","d-flex","align-items-center"],["type","checkbox","formControlName","admin","id","isAdmin",1,"rendux-input"],["for","isAdmin",1,"rendux-label","ms-3"],[1,"alert","alert-warning","mt-3","mb-0"],[1,"modal-footer","justify-content-between"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","button",1,"btn","btn-elegant","me-2",3,"click","disabled"],["type","submit",1,"btn",3,"disabled"],["for","form-pass-confirm",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","passwordConfirm","type","password","autocomplete","new-password","id","form-pass-confirm",1,"form-control","custom-input"]],template:function(l,i){l&1&&(r(0,"div",0)(1,"form",1),_("ngSubmit",function(){return i.onSubmit(i.form)}),r(2,"div",2)(3,"h5",3),m(4),o(5,"translate"),a(),r(6,"button",4),o(7,"translate"),_("click",function(){return i.dismissModal()}),a()(),r(8,"div",5)(9,"div",6),d(10,"i",7),a(),r(11,"ul",8)(12,"li",9)(13,"label",10),m(14),o(15,"translate"),d(16,"app-required-indicator"),a(),r(17,"div",11),d(18,"input",12),o(19,"translate"),a()(),r(20,"li",9)(21,"label",13),m(22),o(23,"translate"),d(24,"app-required-indicator"),a(),r(25,"div",11),d(26,"input",14),o(27,"translate"),a()(),r(28,"li",9)(29,"label",15),m(30),o(31,"translate"),C(32,Oe,1,0,"app-required-indicator"),a(),r(33,"div",11),d(34,"input",16),o(35,"translate"),a()(),C(36,Je,8,8,"li",9),r(37,"li",17)(38,"span",18),m(39),o(40,"translate"),d(41,"app-required-indicator"),a(),r(42,"div",19),d(43,"input",20),o(44,"translate"),d(45,"label",21),a()()(),C(46,Qe,4,3,"div",22),a(),r(47,"div",23)(48,"div",18)(49,"button",24),_("click",function(){return i.dismissModal()}),m(50),o(51,"translate"),a()(),d(52,"div",25),r(53,"div",26)(54,"button",27),o(55,"translate"),_("click",function(ke){return i.toggleDeleteMode(ke)}),d(56,"i"),a(),r(57,"button",28),m(58),o(59,"translate"),a()()()()()),l&2&&(e(),E("formGroup",i.form),e(3),u(s(5,31,"users.title_edit_user")),e(2),f("aria-label",s(7,33,"form.button_close")),e(5),ue("opacity",i.deleteMode()?"0.25":"1"),e(3),c(" ",s(15,35,"users.label_username")," "),e(4),$("is-invalid",i.form.controls.username.touched&&i.form.controls.username.invalid),f("aria-label",s(19,37,"users.label_username")),e(4),c(" ",s(23,39,"users.label_full_name")," "),e(4),$("is-invalid",i.form.controls.name.touched&&i.form.controls.name.invalid),f("aria-label",s(27,41,"users.label_full_name")),e(4),c(" ",s(31,43,"users.label_new_password")," "),e(2),h(i.form.controls.password.value?32:-1),e(2),$("is-invalid",i.form.controls.password.touched&&i.form.controls.password.invalid),f("aria-label",s(35,45,"users.label_new_password")),e(2),h(i.form.controls.password.value?36:-1),e(3),c(" ",s(40,47,"users.label_admin_user")," "),e(4),f("aria-label",s(44,49,"users.label_admin_user")),e(3),h(i.deleteMode()?46:-1),e(4),c(" ",s(51,51,"form.button_close")," "),e(4),E("disabled",!i.canDelete()),f("aria-label",s(55,53,"users.button_delete_user")),e(2),Q(i.deleteMode()?"fas fa-undo":"fas fa-trash"),e(),Q(i.deleteMode()?"btn-danger":"btn-primary"),E("disabled",!i.deleteMode()&&(!i.form.valid||i.isFormUnchanged())),e(),c(" ",s(59,55,i.deleteMode()?"form.button_delete":"form.button_save")," "))},dependencies:[G,Y,j,W,P,X,L,te,ee,ae,M],encapsulation:2})}return n})();var $e=(()=>{class n{$activeModal=p(I);dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(l){return new(l||n)};static \u0275cmp=U({type:n,selectors:[["ng-component"]],decls:46,vars:36,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fa","fa-question-circle-o","primary-text",2,"font-size","75px"],[1,"ms-2"],[1,"mb-0"],[1,"mb-2","grey-text"],[1,"modal-footer","justify-content-between"],[1,"text-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-end"]],template:function(l,i){l&1&&(r(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),m(4),o(5,"translate"),a(),r(6,"button",3),o(7,"translate"),_("click",function(){return i.dismissModal()}),a()(),r(8,"div",4)(9,"div",5),d(10,"i",6),a(),r(11,"h5",7),m(12),o(13,"translate"),a(),r(14,"ul",8)(15,"li"),m(16),o(17,"translate"),a(),r(18,"ul",9)(19,"li"),m(20),o(21,"translate"),a(),r(22,"li"),m(23),o(24,"translate"),a(),r(25,"li"),m(26),o(27,"translate"),o(28,"translate"),a(),r(29,"li"),m(30),o(31,"translate"),a(),r(32,"li"),m(33),o(34,"translate"),a()(),r(35,"li"),m(36),o(37,"translate"),a()(),d(38,"app-support-banner"),a(),r(39,"div",10),d(40,"div",11),r(41,"div",12)(42,"button",13),_("click",function(){return i.dismissModal()}),m(43),o(44,"translate"),a()(),d(45,"div",14),a()()()),l&2&&(e(4),u(s(5,12,"support.title")),e(2),f("aria-label",s(7,14,"form.button_close")),e(6),u(s(13,16,"users.title_users")),e(4),u(s(17,18,"users.support.acc_1")),e(4),u(s(21,20,"menu.label_status")),e(3),u(s(24,22,"menu.label_plugins")),e(3),fe("",s(27,24,"menu.label_accessories")," (",s(28,26,"users.support.control"),")"),e(4),u(s(31,28,"menu.linux.label_logs")),e(3),u(s(34,30,"support.title")),e(3),u(s(37,32,"users.support.acc_2")),e(7),c(" ",s(44,34,"form.button_close")," "))},dependencies:[Se,M],encapsulation:2})}return n})();var He=(n,x)=>({"fa-user-secret":n,"fa-user":x});function Ke(n,x){if(n&1){let t=N();D(0,"button",21),O("click",function(){A(t);let i=v(2).$implicit,b=v();return V(b.disable2fa(i))}),m(1),o(2,"translate"),T()}if(n&2){let t=v(2).$implicit,l=v();re("disabled",t.username!==l.username),e(),c(" ",s(2,2,"users.setup_2fa_disable")," ")}}function We(n,x){if(n&1){let t=N();D(0,"button",22),O("click",function(){A(t);let i=v(2).$implicit,b=v();return V(b.setup2fa(i))}),m(1),o(2,"translate"),T()}if(n&2){let t=v(2).$implicit,l=v();re("disabled",t.username!==l.username),e(),c(" ",s(2,2,"users.setup_2fa")," ")}}function Xe(n,x){if(n&1&&C(0,Ke,3,4,"button",19)(1,We,3,4,"button",20),n&2){let t=v().$implicit;h(t.otpActive?0:1)}}function Ye(n,x){n&1&&z(0,"div")}function Ze(n,x){if(n&1){let t=N();D(0,"div",9)(1,"div",10)(2,"div",11)(3,"div",12)(4,"span",13)(5,"h4"),m(6),T(),D(7,"h5",14),z(8,"i",15),m(9),T()()(),D(10,"div",16),C(11,Xe,2,1)(12,Ye,1,0,"div"),D(13,"div")(14,"button",17),o(15,"translate"),O("click",function(){let i=A(t).$implicit,b=v();return V(b.openEditUser(i))}),z(16,"i",18),T()()()()()()}if(n&2){let t=x.$implicit;e(6),u(t.name),e(2),Q(_e(8,He,t.admin,!t.admin)),e(),c(" ",t.username," "),e(2),h(t.admin?11:12),e(3),f("aria-label",s(15,6,"form.button_edit"))}}var ci=(()=>{class n{injector=p(le);destroyRef=p(me);$api=p(B);$auth=p(K);$modal=p(we);$route=p(Ce);$settings=p(he);$translate=p(k);homebridgeUsers=y([]);username=this.$auth.user.username;isAdmin=this.$auth.user.admin;ngOnInit(){let t=this.$translate.instant("users.title_users");this.$settings.setPageTitle(t),this.$route.data.pipe(xe(this.destroyRef)).subscribe(l=>{this.homebridgeUsers.set(l.homebridgeUsers)})}reloadUsers(){return w(this,null,function*(){let t=yield this.$api.get("/users");this.homebridgeUsers.set(t)})}openAddNewUser(){return w(this,null,function*(){let t=J([{provide:ie,useValue:{existingUsers:this.homebridgeUsers()}}],this.injector),l=this.$modal.open(De,{size:"lg",backdrop:"static",injector:t});try{yield l.result,this.reloadUsers()}catch{}})}openEditUser(t){return w(this,null,function*(){let l=J([{provide:R,useValue:{user:t,existingUsers:this.homebridgeUsers()}}],this.injector),i=this.$modal.open(Te,{size:"lg",backdrop:"static",injector:l});try{yield i.result,this.reloadUsers()}catch{}})}setup2fa(t){return w(this,null,function*(){let l=J([{provide:R,useValue:{user:t}}],this.injector),i=this.$modal.open(Me,{size:"lg",backdrop:"static",injector:l});try{yield i.result,this.reloadUsers()}catch{}})}disable2fa(t){return w(this,null,function*(){let l=J([{provide:R,useValue:{user:t}}],this.injector),i=this.$modal.open(ye,{size:"lg",backdrop:"static",injector:l});try{yield i.result,this.reloadUsers()}catch{}})}openSupport(){this.$modal.open($e,{size:"lg",backdrop:"static"})}static \u0275fac=function(l){return new(l||n)};static \u0275cmp=U({type:n,selectors:[["app-users"]],decls:15,vars:9,consts:[[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0"],[1,"col-6","text-end"],[1,"btn","btn-elegant","waves-effect","m-0","me-2",3,"click"],[1,"fas","fa-user-plus"],["type","button",1,"btn","btn-elegant","my-0","me-0",3,"click"],[1,"fa","fa-question-circle-o"],[1,"row"],[1,"col-md-6","mb-4"],[1,"card","card-body"],[1,"d-flex","flex-column"],[1,"d-flex","flex-row","mb-3"],[1,"me-auto","my-0"],[1,"small","text-truncate","grey-text"],[1,"fas"],[1,"d-flex","flex-row","justify-content-between"],[1,"btn","btn-elegant","m-0",3,"click"],[1,"fas","fa-user-pen"],[1,"btn","btn-elegant","m-0",3,"disabled"],[1,"btn","btn-primary","m-0",3,"disabled"],[1,"btn","btn-elegant","m-0",3,"click","disabled"],[1,"btn","btn-primary","m-0",3,"click","disabled"]],template:function(l,i){l&1&&(D(0,"div",0)(1,"div",1)(2,"h3",2),m(3),o(4,"translate"),T()(),D(5,"div",3)(6,"button",4),o(7,"translate"),O("click",function(){return i.openAddNewUser()}),z(8,"i",5),T(),D(9,"button",6),o(10,"translate"),O("click",function(){return i.openSupport()}),z(11,"i",7),T()()(),D(12,"div",8),pe(13,Ze,17,11,"div",9,de),T()),l&2&&(e(3),u(s(4,3,"users.title_users")),e(3),f("aria-label",s(7,5,"users.button_add_user")),e(3),f("aria-label",s(10,7,"support.title")),e(4),ce(i.homebridgeUsers()))},dependencies:[M],encapsulation:2})}return n})();export{ci as UsersComponent};
1
+ import{a as Ee}from"./chunk-X66UFY6K.js";import{a as ae}from"./chunk-K3WEJJSS.js";import{a as Se}from"./chunk-3LY5FRVV.js";import{n as R,o as ie}from"./chunk-HH2FDI7W.js";import{a as ne}from"./chunk-UVWXUC5Y.js";import{s as I,t as we}from"./chunk-RDHUW73W.js";import{c as Ce}from"./chunk-CAY6MDP6.js";import{a as xe}from"./chunk-C64AHVUO.js";import{b as K}from"./chunk-664C4LX2.js";import{B as ge,C as G,D as L,b as W,c as j,d as g,e as P,f as X,g as q,j as S,m as Y,q as Z,r as ee,s as te}from"./chunk-JPAZUSRO.js";import{a as Ie,b as he}from"./chunk-MAJDTCMY.js";import{C as k,D as M,F,I as B}from"./chunk-VWUZDCBZ.js";import{Ab as h,Cb as de,Db as pe,Dc as o,Eb as ce,Ec as s,Fb as E,Fc as ve,Gb as r,Hb as a,Ib as d,Jb as D,Kb as T,Kc as oe,Lb as z,Rb as N,Sb as re,Xb as _,Yb as O,Za as e,Zb as v,aa as p,ea as le,ga as A,ha as V,hc as ue,ic as $,jc as Q,kc as m,lc as u,ma as me,mb as J,mc as c,nb as U,nc as fe,sa as y,xc as be,yb as f,yc as _e,zb as C}from"./chunk-F5MBSCH4.js";import{g as Be,h as w}from"./chunk-B4AJQJMI.js";function Ae(n,x){n&1&&(r(0,"ngb-alert",13)(1,"p",20),m(2),o(3,"translate"),a()()),n&2&&(E("dismissible",!1),e(2),u(s(3,2,"login.invalid_password")))}var ye=(()=>{class n{$activeModal=p(I);$api=p(B);$toastr=p(F);$translate=p(k);invalidCredentials=y(!1);formGroup=new q({password:new S("",[g.required])});disable2fa(){return w(this,null,function*(){this.invalidCredentials.set(!1);try{yield this.$api.post("/users/otp/deactivate",this.formGroup.value),this.$activeModal.close()}catch{this.formGroup.setValue({password:""}),this.invalidCredentials.set(!0)}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(l){return new(l||n)};static \u0275cmp=U({type:n,selectors:[["ng-component"]],decls:34,vars:27,consts:[[1,"modal-content",2,"min-height","300px"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-key","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],[1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["type","password","autocomplete","current-password",1,"form-control","custom-input",3,"formControl","placeholder"],["type","error",1,"mt-3","mb-0",3,"dismissible"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[1,"mb-0"]],template:function(l,i){l&1&&(r(0,"div",0)(1,"div",1)(2,"h5",2),m(3),o(4,"translate"),a(),r(5,"button",3),o(6,"translate"),_("click",function(){return i.dismissModal()}),a()(),r(7,"div",4)(8,"div",5),d(9,"i",6),a(),r(10,"ul",7)(11,"li"),m(12),o(13,"translate"),a()(),r(14,"ul",8)(15,"li",9)(16,"label",10),m(17),o(18,"translate"),a(),r(19,"div",11),d(20,"input",12),o(21,"translate"),a()()(),C(22,Ae,4,4,"ngb-alert",13),a(),r(23,"div",14)(24,"div",15)(25,"button",16),o(26,"translate"),_("click",function(){return i.dismissModal()}),m(27),o(28,"translate"),a()(),d(29,"div",17),r(30,"div",18)(31,"button",19),_("click",function(){return i.disable2fa()}),m(32),o(33,"translate"),a()()()()),l&2&&(e(3),u(s(4,11,"users.setup_2fa_disable")),e(2),f("aria-label",s(6,13,"form.button_close")),e(7),u(s(13,15,"users.setup_2fa_disable_current_password")),e(5),u(s(18,17,"users.label_password")),e(3),E("formControl",i.formGroup.controls.password)("placeholder",s(21,19,"users.label_password")),e(2),h(i.invalidCredentials()&&!i.formGroup.controls.password.value?22:-1),e(3),f("aria-label",s(26,21,"form.button_close")),e(2),c(" ",s(28,23,"form.button_close")," "),e(4),E("disabled",i.formGroup.invalid),e(),c(" ",s(33,25,"form.button_continue")," "))},dependencies:[G,j,P,L,Z,ne,M],encapsulation:2})}return n})();var Ue=Be(Ie(),1);var Ve=n=>({timeDiffError:n});function Ne(n,x){n&1&&(r(0,"li"),m(1),o(2,"translate"),a()),n&2&&(e(),u(s(2,1,"users.setup_2fa_scan_qr_code")))}function Fe(n,x){if(n&1&&(r(0,"ngb-alert",8)(1,"p",16),m(2),o(3,"translate"),a(),r(4,"p",17),m(5),o(6,"translate"),a()()),n&2){let t=v();E("dismissible",!1),e(2),u(s(3,3,"users.setup_2fa_cannot_setup_2fa")),e(3),u(ve(6,5,"users.setup_2fa_server_time_out",be(8,Ve,t.timeDiffError())))}}function je(n,x){n&1&&d(0,"i",27)}function Pe(n,x){n&1&&d(0,"i",28)}function qe(n,x){if(n&1){let t=N();r(0,"div",21),m(1),o(2,"translate"),d(3,"br"),m(4),r(5,"a",26),_("click",function(){A(t);let i=v(2);return V(i.copySecretToClipboard())}),C(6,je,1,0,"i",27)(7,Pe,1,0,"i",28),a()()}if(n&2){let t=v(2);e(),c(" ",s(2,3,"users.setup_2fa_scan_qr_manual")),e(3),c(" ",t.otpSecret()," "),e(2),h(t.secretCopied()?6:7)}}function Ge(n,x){if(n&1&&(r(0,"ul",9)(1,"li",18)(2,"div",19),d(3,"app-qrcode",20),a(),C(4,qe,8,5,"div",21),a(),r(5,"li",22)(6,"label",23),m(7),o(8,"translate"),a(),r(9,"div",24),d(10,"input",25),a()()()),n&2){let t=v();e(3),E("data",t.otpString()),e(),h(t.otpSecret()?4:-1),e(3),u(s(8,4,"users.setup_2fa_enter_code")),e(3),E("formControl",t.formGroup.controls.code)}}function Le(n,x){if(n&1){let t=N();r(0,"button",29),o(1,"translate"),_("click",function(){A(t);let i=v();return V(i.dismissModal())}),m(2),o(3,"translate"),a()}n&2&&(f("aria-label",s(1,2,"form.button_close")),e(2),c(" ",s(3,4,"form.button_close")," "))}function Re(n,x){if(n&1){let t=N();r(0,"button",29),o(1,"translate"),_("click",function(){A(t);let i=v();return V(i.dismissModal())}),m(2),o(3,"translate"),a()}n&2&&(f("aria-label",s(1,2,"form.button_close")),e(2),c(" ",s(3,4,"form.button_close")," "))}function ze(n,x){if(n&1){let t=N();r(0,"button",30),_("click",function(){A(t);let i=v();return V(i.enable2fa())}),m(1),o(2,"translate"),a()}if(n&2){let t=v();E("disabled",t.formGroup.invalid),e(),c(" ",s(2,2,"form.button_continue")," ")}}var Me=(()=>{class n{$activeModal=p(I);$api=p(B);$toastr=p(F);$translate=p(k);modalData=p(R);user=this.modalData.user;timeDiffError=y(null);otpString=y(void 0);otpSecret=y(void 0);secretCopied=y(!1);copyTimeout=null;formGroup=new q({code:new S("",[g.required,g.minLength(6),g.maxLength(6)])});ngOnInit(){this.initialize()}initialize(){return w(this,null,function*(){try{let t=yield this.$api.post("/users/otp/setup",{});this.checkTimeDiff(t.timestamp),this.timeDiffError()||(this.otpString.set(t.otpauth),this.otpSecret.set(new URL(t.otpauth).searchParams.get("secret")||""))}catch(t){this.$activeModal.dismiss(),console.error(t),this.$toastr.error(this.$translate.instant("users.setup_2fa_enable_error"),this.$translate.instant("toast.title_error"))}})}enable2fa(){return w(this,null,function*(){try{yield this.$api.post("/users/otp/activate",this.formGroup.value),this.$activeModal.close()}catch(t){console.error(t),this.$toastr.error(this.$translate.instant("users.setup_2fa_activate_error"),this.$translate.instant("toast.title_error"))}})}copySecretToClipboard(){return w(this,null,function*(){let t=this.otpSecret();t&&(yield navigator.clipboard.writeText(t),this.secretCopied.set(!0),this.copyTimeout&&clearTimeout(this.copyTimeout),this.copyTimeout=setTimeout(()=>{this.secretCopied.set(!1)},3e3))})}dismissModal(){this.$activeModal.dismiss("Dismiss")}checkTimeDiff(t){let l=(0,Ue.default)(t).diff(new Date,"millisecond");l<-5e3||l>5e3?this.timeDiffError.set(l):this.timeDiffError.set(null)}static \u0275fac=function(l){return new(l||n)};static \u0275cmp=U({type:n,selectors:[["ng-component"]],decls:24,vars:15,consts:[[1,"modal-content","setup2fa"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-key","primary-text",2,"font-size","75px"],[1,"mb-3"],["type","error",1,"mb-0",3,"dismissible"],[1,"list-group","list-group-box","mb-0"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"disabled"],[1,"fw-bold","mb-1"],[1,"mb-0"],[1,"list-group-item","text-center"],[1,"text-center","w-100","d-flex","justify-content-center","my-2"],[1,"mx-auto",2,"width","175px","height","175px",3,"data"],[1,"grey-text","small","mt-0","mb-1"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],[1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["type","text","placeholder","eg. 123456","autocomplete","one-time-code","autocapitalize","none","inputmode","numeric","pattern","[0-9]*",1,"form-control","custom-input",3,"formControl"],["href","javascript:void(0)",1,"ms-1","text-primary",3,"click"],[1,"fas","fa-check","green-text"],[1,"fas","fa-copy"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"]],template:function(l,i){l&1&&(r(0,"div",0)(1,"div",1)(2,"h5",2),m(3),o(4,"translate"),a(),r(5,"button",3),o(6,"translate"),_("click",function(){return i.dismissModal()}),a()(),r(7,"div",4)(8,"div",5),d(9,"i",6),a(),r(10,"ul",7)(11,"li"),m(12),o(13,"translate"),a(),C(14,Ne,3,3,"li"),a(),C(15,Fe,7,10,"ngb-alert",8),C(16,Ge,11,6,"ul",9),a(),r(17,"div",10)(18,"div",11),C(19,Le,4,6,"button",12),a(),r(20,"div",13),C(21,Re,4,6,"button",12),a(),r(22,"div",14),C(23,ze,3,4,"button",15),a()()()),l&2&&(e(3),u(s(4,9,"users.setup_2fa")),e(2),f("aria-label",s(6,11,"form.button_close")),e(7),u(s(13,13,"users.setup_2fa_warning")),e(2),h(i.timeDiffError()?-1:14),e(),h(i.timeDiffError()?15:-1),e(),h(i.timeDiffError()?-1:16),e(3),h(i.timeDiffError()?-1:19),e(2),h(i.timeDiffError()?21:-1),e(2),h(i.timeDiffError()?-1:23))},dependencies:[ne,Ee,G,j,P,ge,L,Z,M],encapsulation:2})}return n})();var De=(()=>{class n{$activeModal=p(I);$api=p(B);$toastr=p(F);$translate=p(k);modalData=p(ie);existingUsers=this.modalData.existingUsers;form=new q({username:new S("",[g.required]),name:new S("",[g.required]),password:new S("",[g.compose([g.required,g.minLength(4)])]),passwordConfirm:new S("",[g.required]),admin:new S(!0)},this.matchPassword);ngOnInit(){this.form.controls.username.addValidators(this.duplicateUsernameValidator.bind(this)),this.form.controls.username.updateValueAndValidity()}onSubmit(l){return w(this,arguments,function*({value:t}){try{yield this.$api.post("/users",t),this.$activeModal.close()}catch(i){this.$toastr.error(i.error?.message||i.message,this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}duplicateUsernameValidator(t){if(!t.value)return null;let l=t.value.trim();return l&&this.existingUsers.some(b=>b.username===l)?{duplicateUsername:!0}:null}matchPassword(t){let l=t.get("password")?.value,i=t.get("passwordConfirm")?.value;return l!==i?(t.get("passwordConfirm")?.setErrors({matchPassword:!0}),{matchPassword:!0}):null}static \u0275fac=function(l){return new(l||n)};static \u0275cmp=U({type:n,selectors:[["ng-component"]],decls:63,vars:52,consts:[[1,"modal-content"],["novalidate","",3,"ngSubmit","formGroup"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-user-plus","primary-text",2,"font-size","75px"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],["for","form-username",1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["formControlName","username","type","text","id","form-username","autofocus","","autocomplete","username","autocapitalize","none",1,"form-control","custom-input"],["for","form-name",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","name","type","text","id","form-name","autocomplete","name",1,"form-control","custom-input"],["for","form-pass",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","password","type","password","autocomplete","new-password","id","form-pass",1,"form-control","custom-input"],["for","form-pass-confirm",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","passwordConfirm","type","password","autocomplete","new-password","id","form-pass-confirm",1,"form-control","custom-input"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"text-start"],[1,"text-end","grey-text","d-flex","align-items-center"],["formControlName","admin","type","checkbox","id","isAdmin",1,"rendux-input"],["for","isAdmin",1,"rendux-label","ms-3"],[1,"modal-footer","justify-content-between"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","submit",1,"btn","btn-primary",3,"disabled"]],template:function(l,i){l&1&&(r(0,"div",0)(1,"form",1),_("ngSubmit",function(){return i.onSubmit(i.form)}),r(2,"div",2)(3,"h5",3),m(4),o(5,"translate"),a(),r(6,"button",4),o(7,"translate"),_("click",function(){return i.dismissModal()}),a()(),r(8,"div",5)(9,"div",6),d(10,"i",7),a(),r(11,"ul",8)(12,"li",9)(13,"label",10),m(14),o(15,"translate"),d(16,"app-required-indicator"),a(),r(17,"div",11),d(18,"input",12),o(19,"translate"),a()(),r(20,"li",9)(21,"label",13),m(22),o(23,"translate"),d(24,"app-required-indicator"),a(),r(25,"div",11),d(26,"input",14),o(27,"translate"),a()(),r(28,"li",9)(29,"label",15),m(30),o(31,"translate"),d(32,"app-required-indicator"),a(),r(33,"div",11),d(34,"input",16),o(35,"translate"),a()(),r(36,"li",9)(37,"label",17),m(38),o(39,"translate"),d(40,"app-required-indicator"),a(),r(41,"div",11),d(42,"input",18),o(43,"translate"),a()(),r(44,"li",19)(45,"span",20),m(46),o(47,"translate"),d(48,"app-required-indicator"),a(),r(49,"div",21),d(50,"input",22),o(51,"translate"),d(52,"label",23),a()()()(),r(53,"div",24)(54,"div",20)(55,"button",25),_("click",function(){return i.dismissModal()}),m(56),o(57,"translate"),a()(),d(58,"div",26),r(59,"div",27)(60,"button",28),m(61),o(62,"translate"),a()()()()()),l&2&&(e(),E("formGroup",i.form),e(3),u(s(5,24,"users.title_add_user")),e(2),f("aria-label",s(7,26,"form.button_close")),e(8),c(" ",s(15,28,"users.label_username")," "),e(4),$("is-invalid",i.form.controls.username.touched&&i.form.controls.username.invalid),f("aria-label",s(19,30,"users.label_username")),e(4),c(" ",s(23,32,"users.label_full_name")," "),e(4),$("is-invalid",i.form.controls.name.touched&&i.form.controls.name.invalid),f("aria-label",s(27,34,"users.label_full_name")),e(4),c(" ",s(31,36,"users.label_password")," "),e(4),$("is-invalid",i.form.controls.password.touched&&i.form.controls.password.invalid),f("aria-label",s(35,38,"users.label_password")),e(4),c(" ",s(39,40,"users.label_confirm_password")," "),e(4),$("is-invalid",i.form.controls.passwordConfirm.touched&&i.form.controls.passwordConfirm.invalid),f("aria-label",s(43,42,"users.label_confirm_password")),e(4),c(" ",s(47,44,"users.label_admin_user")," "),e(4),f("aria-label",s(51,46,"users.label_admin_user")),e(6),c(" ",s(57,48,"form.button_close")," "),e(4),E("disabled",!i.form.valid),e(),c(" ",s(62,50,"form.button_save")," "))},dependencies:[G,Y,j,W,P,X,L,te,ee,ae,M],encapsulation:2})}return n})();function Oe(n,x){n&1&&d(0,"app-required-indicator")}function Je(n,x){if(n&1&&(r(0,"li",9)(1,"label",29),m(2),o(3,"translate"),d(4,"app-required-indicator"),a(),r(5,"div",11),d(6,"input",30),o(7,"translate"),a()()),n&2){let t=v();e(2),c(" ",s(3,4,"users.label_confirm_password")," "),e(4),$("is-invalid",t.form.controls.passwordConfirm.touched&&t.form.controls.passwordConfirm.invalid),f("aria-label",s(7,6,"users.label_confirm_password"))}}function Qe(n,x){n&1&&(r(0,"div",22)(1,"div",25),m(2),o(3,"translate"),a()()),n&2&&(e(2),u(s(3,1,"common.phrases.are_you_sure")))}var Te=(()=>{class n{$activeModal=p(I);$api=p(B);$auth=p(K);$toastr=p(F);$translate=p(k);modalData=p(R);user=this.modalData.user;existingUsers=this.modalData.existingUsers||[];isCurrentUser=y(!1);deleteMode=y(!1);initialFormValue={};form=new q({username:new S("",[g.required]),name:new S("",[g.required]),password:new S("",[g.minLength(4)]),passwordConfirm:new S(""),admin:new S(!0)},this.matchPassword);isLastAdmin=oe(()=>this.user?.admin?this.existingUsers.filter(l=>l.admin).length<=1:!1);canDelete=oe(()=>!this.isCurrentUser()&&!this.isLastAdmin());ngOnInit(){this.user&&(this.isCurrentUser.set(this.$auth.user.username===this.user.username),this.form.patchValue(this.user),this.initialFormValue=this.form.getRawValue(),this.form.controls.username.addValidators(this.duplicateUsernameValidator.bind(this)),this.form.controls.username.updateValueAndValidity(),this.isLastAdmin()&&this.form.controls.admin.disable())}onSubmit(l){return w(this,arguments,function*({value:t}){if(this.user){if(this.deleteMode()){try{yield this.$api.delete(`/users/${this.user.id}`),this.$activeModal.close()}catch(i){console.error(i),this.$toastr.error(i.error?.message||i.message,this.$translate.instant("toast.title_error"))}return}try{yield this.$api.patch(`/users/${this.user.id}`,t),this.$activeModal.close(),this.isCurrentUser()&&t.username!==this.$auth.user.username&&this.$auth.logout()}catch(i){console.error(i),this.$toastr.error(i.error?.message||i.message,this.$translate.instant("toast.title_error"))}}})}toggleDeleteMode(t){this.deleteMode.set(!this.deleteMode()),this.deleteMode()?this.form.disable():(this.form.enable(),this.isLastAdmin()&&this.form.controls.admin.disable()),t.target.blur()}isFormUnchanged(){return this.form.controls.password.value?!1:JSON.stringify(this.form.getRawValue())===JSON.stringify(this.initialFormValue)}duplicateUsernameValidator(t){if(!t.value)return null;let l=t.value.trim();return l&&this.existingUsers.some(b=>b.id!==this.user.id&&b.username===l)?{duplicateUsername:!0}:null}dismissModal(){this.$activeModal.dismiss("Dismiss")}matchPassword(t){let l=t.get("password")?.value,i=t.get("passwordConfirm")?.value;return l!==i?(t.get("passwordConfirm")?.setErrors({matchPassword:!0}),{matchPassword:!0}):null}static \u0275fac=function(l){return new(l||n)};static \u0275cmp=U({type:n,selectors:[["ng-component"]],decls:60,vars:57,consts:[[1,"modal-content"],["novalidate","",3,"ngSubmit","formGroup"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-user-pen","primary-text",2,"font-size","75px"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],["for","form-username",1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["formControlName","username","type","text","id","form-username","autocomplete","off","autocapitalize","none",1,"form-control","custom-input"],["for","form-name",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","name","type","text","id","form-name","autocomplete","name",1,"form-control","custom-input"],["for","form-pass",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","password","type","password","autocomplete","new-password","id","form-pass",1,"form-control","custom-input"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"text-start"],[1,"text-end","grey-text","d-flex","align-items-center"],["type","checkbox","formControlName","admin","id","isAdmin",1,"rendux-input"],["for","isAdmin",1,"rendux-label","ms-3"],[1,"alert","alert-warning","mt-3","mb-0"],[1,"modal-footer","justify-content-between"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-center"],[1,"text-end"],["type","button",1,"btn","btn-elegant","me-2",3,"click","disabled"],["type","submit",1,"btn",3,"disabled"],["for","form-pass-confirm",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","passwordConfirm","type","password","autocomplete","new-password","id","form-pass-confirm",1,"form-control","custom-input"]],template:function(l,i){l&1&&(r(0,"div",0)(1,"form",1),_("ngSubmit",function(){return i.onSubmit(i.form)}),r(2,"div",2)(3,"h5",3),m(4),o(5,"translate"),a(),r(6,"button",4),o(7,"translate"),_("click",function(){return i.dismissModal()}),a()(),r(8,"div",5)(9,"div",6),d(10,"i",7),a(),r(11,"ul",8)(12,"li",9)(13,"label",10),m(14),o(15,"translate"),d(16,"app-required-indicator"),a(),r(17,"div",11),d(18,"input",12),o(19,"translate"),a()(),r(20,"li",9)(21,"label",13),m(22),o(23,"translate"),d(24,"app-required-indicator"),a(),r(25,"div",11),d(26,"input",14),o(27,"translate"),a()(),r(28,"li",9)(29,"label",15),m(30),o(31,"translate"),C(32,Oe,1,0,"app-required-indicator"),a(),r(33,"div",11),d(34,"input",16),o(35,"translate"),a()(),C(36,Je,8,8,"li",9),r(37,"li",17)(38,"span",18),m(39),o(40,"translate"),d(41,"app-required-indicator"),a(),r(42,"div",19),d(43,"input",20),o(44,"translate"),d(45,"label",21),a()()(),C(46,Qe,4,3,"div",22),a(),r(47,"div",23)(48,"div",18)(49,"button",24),_("click",function(){return i.dismissModal()}),m(50),o(51,"translate"),a()(),d(52,"div",25),r(53,"div",26)(54,"button",27),o(55,"translate"),_("click",function(ke){return i.toggleDeleteMode(ke)}),d(56,"i"),a(),r(57,"button",28),m(58),o(59,"translate"),a()()()()()),l&2&&(e(),E("formGroup",i.form),e(3),u(s(5,31,"users.title_edit_user")),e(2),f("aria-label",s(7,33,"form.button_close")),e(5),ue("opacity",i.deleteMode()?"0.25":"1"),e(3),c(" ",s(15,35,"users.label_username")," "),e(4),$("is-invalid",i.form.controls.username.touched&&i.form.controls.username.invalid),f("aria-label",s(19,37,"users.label_username")),e(4),c(" ",s(23,39,"users.label_full_name")," "),e(4),$("is-invalid",i.form.controls.name.touched&&i.form.controls.name.invalid),f("aria-label",s(27,41,"users.label_full_name")),e(4),c(" ",s(31,43,"users.label_new_password")," "),e(2),h(i.form.controls.password.value?32:-1),e(2),$("is-invalid",i.form.controls.password.touched&&i.form.controls.password.invalid),f("aria-label",s(35,45,"users.label_new_password")),e(2),h(i.form.controls.password.value?36:-1),e(3),c(" ",s(40,47,"users.label_admin_user")," "),e(4),f("aria-label",s(44,49,"users.label_admin_user")),e(3),h(i.deleteMode()?46:-1),e(4),c(" ",s(51,51,"form.button_close")," "),e(4),E("disabled",!i.canDelete()),f("aria-label",s(55,53,"users.button_delete_user")),e(2),Q(i.deleteMode()?"fas fa-undo":"fas fa-trash"),e(),Q(i.deleteMode()?"btn-danger":"btn-primary"),E("disabled",!i.deleteMode()&&(!i.form.valid||i.isFormUnchanged())),e(),c(" ",s(59,55,i.deleteMode()?"form.button_delete":"form.button_save")," "))},dependencies:[G,Y,j,W,P,X,L,te,ee,ae,M],encapsulation:2})}return n})();var $e=(()=>{class n{$activeModal=p(I);dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(l){return new(l||n)};static \u0275cmp=U({type:n,selectors:[["ng-component"]],decls:46,vars:36,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fa","fa-question-circle-o","primary-text",2,"font-size","75px"],[1,"ms-2"],[1,"mb-0"],[1,"mb-2","grey-text"],[1,"modal-footer","justify-content-between"],[1,"text-start"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"text-end"]],template:function(l,i){l&1&&(r(0,"div",0)(1,"form")(2,"div",1)(3,"h5",2),m(4),o(5,"translate"),a(),r(6,"button",3),o(7,"translate"),_("click",function(){return i.dismissModal()}),a()(),r(8,"div",4)(9,"div",5),d(10,"i",6),a(),r(11,"h5",7),m(12),o(13,"translate"),a(),r(14,"ul",8)(15,"li"),m(16),o(17,"translate"),a(),r(18,"ul",9)(19,"li"),m(20),o(21,"translate"),a(),r(22,"li"),m(23),o(24,"translate"),a(),r(25,"li"),m(26),o(27,"translate"),o(28,"translate"),a(),r(29,"li"),m(30),o(31,"translate"),a(),r(32,"li"),m(33),o(34,"translate"),a()(),r(35,"li"),m(36),o(37,"translate"),a()(),d(38,"app-support-banner"),a(),r(39,"div",10),d(40,"div",11),r(41,"div",12)(42,"button",13),_("click",function(){return i.dismissModal()}),m(43),o(44,"translate"),a()(),d(45,"div",14),a()()()),l&2&&(e(4),u(s(5,12,"support.title")),e(2),f("aria-label",s(7,14,"form.button_close")),e(6),u(s(13,16,"users.title_users")),e(4),u(s(17,18,"users.support.acc_1")),e(4),u(s(21,20,"menu.label_status")),e(3),u(s(24,22,"menu.label_plugins")),e(3),fe("",s(27,24,"menu.label_accessories")," (",s(28,26,"users.support.control"),")"),e(4),u(s(31,28,"menu.linux.label_logs")),e(3),u(s(34,30,"support.title")),e(3),u(s(37,32,"users.support.acc_2")),e(7),c(" ",s(44,34,"form.button_close")," "))},dependencies:[Se,M],encapsulation:2})}return n})();var He=(n,x)=>({"fa-user-secret":n,"fa-user":x});function Ke(n,x){if(n&1){let t=N();D(0,"button",21),O("click",function(){A(t);let i=v(2).$implicit,b=v();return V(b.disable2fa(i))}),m(1),o(2,"translate"),T()}if(n&2){let t=v(2).$implicit,l=v();re("disabled",t.username!==l.username),e(),c(" ",s(2,2,"users.setup_2fa_disable")," ")}}function We(n,x){if(n&1){let t=N();D(0,"button",22),O("click",function(){A(t);let i=v(2).$implicit,b=v();return V(b.setup2fa(i))}),m(1),o(2,"translate"),T()}if(n&2){let t=v(2).$implicit,l=v();re("disabled",t.username!==l.username),e(),c(" ",s(2,2,"users.setup_2fa")," ")}}function Xe(n,x){if(n&1&&C(0,Ke,3,4,"button",19)(1,We,3,4,"button",20),n&2){let t=v().$implicit;h(t.otpActive?0:1)}}function Ye(n,x){n&1&&z(0,"div")}function Ze(n,x){if(n&1){let t=N();D(0,"div",9)(1,"div",10)(2,"div",11)(3,"div",12)(4,"span",13)(5,"h4"),m(6),T(),D(7,"h5",14),z(8,"i",15),m(9),T()()(),D(10,"div",16),C(11,Xe,2,1)(12,Ye,1,0,"div"),D(13,"div")(14,"button",17),o(15,"translate"),O("click",function(){let i=A(t).$implicit,b=v();return V(b.openEditUser(i))}),z(16,"i",18),T()()()()()()}if(n&2){let t=x.$implicit;e(6),u(t.name),e(2),Q(_e(8,He,t.admin,!t.admin)),e(),c(" ",t.username," "),e(2),h(t.admin?11:12),e(3),f("aria-label",s(15,6,"form.button_edit"))}}var ci=(()=>{class n{injector=p(le);destroyRef=p(me);$api=p(B);$auth=p(K);$modal=p(we);$route=p(Ce);$settings=p(he);$translate=p(k);homebridgeUsers=y([]);username=this.$auth.user.username;isAdmin=this.$auth.user.admin;ngOnInit(){let t=this.$translate.instant("users.title_users");this.$settings.setPageTitle(t),this.$route.data.pipe(xe(this.destroyRef)).subscribe(l=>{this.homebridgeUsers.set(l.homebridgeUsers)})}reloadUsers(){return w(this,null,function*(){let t=yield this.$api.get("/users");this.homebridgeUsers.set(t)})}openAddNewUser(){return w(this,null,function*(){let t=J([{provide:ie,useValue:{existingUsers:this.homebridgeUsers()}}],this.injector),l=this.$modal.open(De,{size:"lg",backdrop:"static",injector:t});try{yield l.result,this.reloadUsers()}catch{}})}openEditUser(t){return w(this,null,function*(){let l=J([{provide:R,useValue:{user:t,existingUsers:this.homebridgeUsers()}}],this.injector),i=this.$modal.open(Te,{size:"lg",backdrop:"static",injector:l});try{yield i.result,this.reloadUsers()}catch{}})}setup2fa(t){return w(this,null,function*(){let l=J([{provide:R,useValue:{user:t}}],this.injector),i=this.$modal.open(Me,{size:"lg",backdrop:"static",injector:l});try{yield i.result,this.reloadUsers()}catch{}})}disable2fa(t){return w(this,null,function*(){let l=J([{provide:R,useValue:{user:t}}],this.injector),i=this.$modal.open(ye,{size:"lg",backdrop:"static",injector:l});try{yield i.result,this.reloadUsers()}catch{}})}openSupport(){this.$modal.open($e,{size:"lg",backdrop:"static"})}static \u0275fac=function(l){return new(l||n)};static \u0275cmp=U({type:n,selectors:[["app-users"]],decls:15,vars:9,consts:[[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0"],[1,"col-6","text-end"],[1,"btn","btn-elegant","waves-effect","m-0","me-2",3,"click"],[1,"fas","fa-user-plus"],["type","button",1,"btn","btn-elegant","my-0","me-0",3,"click"],[1,"fa","fa-question-circle-o"],[1,"row"],[1,"col-md-6","mb-4"],[1,"card","card-body"],[1,"d-flex","flex-column"],[1,"d-flex","flex-row","mb-3"],[1,"me-auto","my-0"],[1,"small","text-truncate","grey-text"],[1,"fas"],[1,"d-flex","flex-row","justify-content-between"],[1,"btn","btn-elegant","m-0",3,"click"],[1,"fas","fa-user-pen"],[1,"btn","btn-elegant","m-0",3,"disabled"],[1,"btn","btn-primary","m-0",3,"disabled"],[1,"btn","btn-elegant","m-0",3,"click","disabled"],[1,"btn","btn-primary","m-0",3,"click","disabled"]],template:function(l,i){l&1&&(D(0,"div",0)(1,"div",1)(2,"h3",2),m(3),o(4,"translate"),T()(),D(5,"div",3)(6,"button",4),o(7,"translate"),O("click",function(){return i.openAddNewUser()}),z(8,"i",5),T(),D(9,"button",6),o(10,"translate"),O("click",function(){return i.openSupport()}),z(11,"i",7),T()()(),D(12,"div",8),pe(13,Ze,17,11,"div",9,de),T()),l&2&&(e(3),u(s(4,3,"users.title_users")),e(3),f("aria-label",s(7,5,"users.button_add_user")),e(3),f("aria-label",s(10,7,"support.title")),e(4),ce(i.homebridgeUsers()))},dependencies:[M],encapsulation:2})}return n})();export{ci as UsersComponent};
@@ -1 +1 @@
1
- import{a as fe}from"./chunk-2J2ADNZ3.js";import{Aa as w,Kc as N,Rc as ce,U as X,Uc as he,W as d,X as Ne,Xb as y,Y,_ as A,aa as R,d as Ee,db as Pe,h as we,hb as I,ib as o,ic as de,ka as Oe,ma as xe,o as Ie,oa as D,ob as K,pb as l,sa as F,sb as u,u as Se,vb as Re,vc as c,wa as v,xa as E,xb as ke,ya as f,yb as S}from"./chunk-F5MBSCH4.js";import{a as h,b as g}from"./chunk-B4AJQJMI.js";var We=(()=>{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(I),o(w))};static \u0275dir=l({type:n})}return n})(),P=(()=>{class n extends We{static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,features:[u]})}return n})(),V=new A(""),vt={provide:V,useExisting:d(()=>yt),multi:!0},yt=(()=>{class n extends P{writeValue(e){this.setProperty("checked",e)}static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(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&&y("change",function(a){return r.onChange(a.target.checked)})("blur",function(){return r.onTouched()})},standalone:!1,features:[c([vt]),u]})}return n})(),Ct={provide:V,useExisting:d(()=>qe),multi:!0};function Vt(){let n=fe()?fe().getUserAgent():"";return/android (\d+)/.test(n.toLowerCase())}var Dt=new A(""),qe=(()=>{class n extends We{_compositionMode;_composing=!1;constructor(e,i,r){super(e,i),this._compositionMode=r,this._compositionMode==null&&(this._compositionMode=!Vt())}writeValue(e){let i=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(I),o(w),o(Dt,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&&y("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([Ct]),u]})}return n})();function me(n){return n==null||_e(n)===0}function _e(n){return n==null?null:Array.isArray(n)||typeof n=="string"?n.length:n instanceof Set?n.size:null}var m=new A(""),W=new A(""),bt=/^(?=.{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])?)*$/,je=class{static min(t){return ze(t)}static max(t){return Ze(t)}static required(t){return Xe(t)}static requiredTrue(t){return At(t)}static email(t){return Mt(t)}static minLength(t){return Ft(t)}static maxLength(t){return Ye(t)}static pattern(t){return Ke(t)}static nullValidator(t){return Q()}static compose(t){return it(t)}static composeAsync(t){return rt(t)}};function ze(n){return t=>{if(t.value==null||n==null)return null;let e=parseFloat(t.value);return!isNaN(e)&&e<n?{min:{min:n,actual:t.value}}:null}}function Ze(n){return t=>{if(t.value==null||n==null)return null;let e=parseFloat(t.value);return!isNaN(e)&&e>n?{max:{max:n,actual:t.value}}:null}}function Xe(n){return me(n.value)?{required:!0}:null}function At(n){return n.value===!0?null:{required:!0}}function Mt(n){return me(n.value)||bt.test(n.value)?null:{email:!0}}function Ft(n){return t=>{let e=t.value?.length??_e(t.value);return e===null||e===0?null:e<n?{minlength:{requiredLength:n,actualLength:e}}:null}}function Ye(n){return t=>{let e=t.value?.length??_e(t.value);return e!==null&&e>n?{maxlength:{requiredLength:n,actualLength:e}}:null}}function Ke(n){if(!n)return Q;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(me(i.value))return null;let r=i.value;return t.test(r)?null:{pattern:{requiredPattern:e,actualValue:r}}}}function Q(n){return null}function Je(n){return n!=null}function Qe(n){return Re(n)?we(n):n}function et(n){let t={};return n.forEach(e=>{t=e!=null?h(h({},t),e):t}),Object.keys(t).length===0?null:t}function tt(n,t){return t.map(e=>e(n))}function Et(n){return!n.validate}function nt(n){return n.map(t=>Et(t)?t:e=>t.validate(e))}function it(n){if(!n)return null;let t=n.filter(Je);return t.length==0?null:function(e){return et(tt(e,t))}}function ve(n){return n!=null?it(nt(n)):null}function rt(n){if(!n)return null;let t=n.filter(Je);return t.length==0?null:function(e){let i=tt(e,t).map(Qe);return Se(i).pipe(Ie(et))}}function ye(n){return n!=null?rt(nt(n)):null}function Ge(n,t){return n===null?[t]:Array.isArray(n)?[...n,t]:[n,t]}function st(n){return n._rawValidators}function ot(n){return n._rawAsyncValidators}function ge(n){return n?Array.isArray(n)?n:[n]:[]}function ee(n,t){return Array.isArray(n)?n.includes(t):n===t}function Te(n,t){let e=ge(t);return ge(n).forEach(r=>{ee(e,r)||e.push(r)}),e}function Be(n,t){return ge(t).filter(e=>!ee(n,e))}var te=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=ve(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=ye(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}},C=class extends te{name;get formDirective(){return null}get path(){return null}},p=class extends te{_parent=null;name=null;valueAccessor=null},ne=class{_cd;constructor(t){this._cd=t}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}};var xn=(()=>{class n extends ne{constructor(e){super(e)}static \u0275fac=function(i){return new(i||n)(o(p,2))};static \u0275dir=l({type:n,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,r){i&2&&de("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})(),Pn=(()=>{class n extends ne{constructor(e){super(e)}static \u0275fac=function(i){return new(i||n)(o(C,10))};static \u0275dir=l({type:n,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["","formArray",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,r){i&2&&de("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 k="VALID",J="INVALID",O="PENDING",j="DISABLED",b=class{},ie=class extends b{value;source;constructor(t,e){super(),this.value=t,this.source=e}},T=class extends b{pristine;source;constructor(t,e){super(),this.pristine=t,this.source=e}},B=class extends b{touched;source;constructor(t,e){super(),this.touched=t,this.source=e}},x=class extends b{status;source;constructor(t,e){super(),this.status=t,this.source=e}},re=class extends b{source;constructor(t){super(),this.source=t}},U=class extends b{source;constructor(t){super(),this.source=t}};function Ce(n){return(le(n)?n.validators:n)||null}function wt(n){return Array.isArray(n)?ve(n):n||null}function Ve(n,t){return(le(t)?t.asyncValidators:n)||null}function It(n){return Array.isArray(n)?ye(n):n||null}function le(n){return n!=null&&!Array.isArray(n)&&typeof n=="object"}function at(n,t,e){let i=n.controls;if(!(t?Object.keys(i):i).length)throw new X(1e3,"");if(!i[e])throw new X(1001,"")}function lt(n,t,e){n._forEachChild((i,r)=>{if(e[r]===void 0)throw new X(1002,"")})}var H=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 v(this.statusReactive)}set status(t){v(()=>this.statusReactive.set(t))}_status=N(()=>this.statusReactive());statusReactive=F(void 0);get valid(){return this.status===k}get invalid(){return this.status===J}get pending(){return this.status==O}get disabled(){return this.status===j}get enabled(){return this.status!==j}errors;get pristine(){return v(this.pristineReactive)}set pristine(t){v(()=>this.pristineReactive.set(t))}_pristine=N(()=>this.pristineReactive());pristineReactive=F(!0);get dirty(){return!this.pristine}get touched(){return v(this.touchedReactive)}set touched(t){v(()=>this.touchedReactive.set(t))}_touched=N(()=>this.touchedReactive());touchedReactive=F(!1);get untouched(){return!this.touched}_events=new Ee;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(Te(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(Te(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(Be(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(Be(t,this._rawAsyncValidators))}hasValidator(t){return ee(this._rawValidators,t)}hasAsyncValidator(t){return ee(this._rawAsyncValidators,t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){let e=this.touched===!1;this.touched=!0;let i=t.sourceControl??this;this._parent&&!t.onlySelf&&this._parent.markAsTouched(g(h({},t),{sourceControl:i})),e&&t.emitEvent!==!1&&this._events.next(new B(!0,i))}markAllAsDirty(t={}){this.markAsDirty({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsDirty(t))}markAllAsTouched(t={}){this.markAsTouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsTouched(t))}markAsUntouched(t={}){let e=this.touched===!0;this.touched=!1,this._pendingTouched=!1;let i=t.sourceControl??this;this._forEachChild(r=>{r.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 B(!1,i))}markAsDirty(t={}){let e=this.pristine===!0;this.pristine=!1;let i=t.sourceControl??this;this._parent&&!t.onlySelf&&this._parent.markAsDirty(g(h({},t),{sourceControl:i})),e&&t.emitEvent!==!1&&this._events.next(new T(!1,i))}markAsPristine(t={}){let e=this.pristine===!1;this.pristine=!0,this._pendingDirty=!1;let i=t.sourceControl??this;this._forEachChild(r=>{r.markAsPristine({onlySelf:!0,emitEvent:t.emitEvent})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t,i),e&&t.emitEvent!==!1&&this._events.next(new T(!0,i))}markAsPending(t={}){this.status=O;let e=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new x(this.status,e)),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.markAsPending(g(h({},t),{sourceControl:e}))}disable(t={}){let e=this._parentMarkedDirty(t.onlySelf);this.status=j,this.errors=null,this._forEachChild(r=>{r.disable(g(h({},t),{onlySelf:!0}))}),this._updateValue();let i=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new ie(this.value,i)),this._events.next(new x(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(g(h({},t),{skipPristineCheck:e}),this),this._onDisabledChange.forEach(r=>r(!0))}enable(t={}){let e=this._parentMarkedDirty(t.onlySelf);this.status=k,this._forEachChild(i=>{i.enable(g(h({},t),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors(g(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={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){let i=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===k||this.status===O)&&this._runAsyncValidator(i,t.emitEvent)}let e=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new ie(this.value,e)),this._events.next(new x(this.status,e)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(g(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()?j:k}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t,e){if(this.asyncValidator){this.status=O,this._hasOwnPendingAsyncValidator={emitEvent:e!==!1,shouldHaveEmitted:t!==!1};let i=Qe(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(r=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(r,{emitEvent:e,shouldHaveEmitted:t})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();let t=(this._hasOwnPendingAsyncValidator?.emitEvent||this._hasOwnPendingAsyncValidator?.shouldHaveEmitted)??!1;return this._hasOwnPendingAsyncValidator=null,t}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 x(this.status,e)),this._parent&&this._parent._updateControlsErrors(t,e,i)}_initObservables(){this.valueChanges=new D,this.statusChanges=new D}_calculateStatus(){return this._allControlsDisabled()?j:this.errors?J:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(O)?O:this._anyControlsHaveStatus(J)?J:k}_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 T(this.pristine,e))}_updateTouched(t={},e){this.touched=this._anyControlsTouched(),this._events.next(new B(this.touched,e)),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,e)}_onDisabledChange=[];_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){le(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=wt(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=It(this._rawAsyncValidators)}},L=class extends H{constructor(t,e,i){super(Ce(e),Ve(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={}){lt(this,!0,t),Object.keys(t).forEach(i=>{at(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,g(h({},e),{onlySelf:!0}))}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e),e?.emitEvent!==!1&&this._events.next(new U(this))}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 Rn=L;var M=new A("",{factory:()=>q}),q="always";function ut(n,t){return[...t.path,n]}function $(n,t,e=q){De(n,t),t.valueAccessor.writeValue(n.value),(n.disabled||e==="always")&&t.valueAccessor.setDisabledState?.(n.disabled),Nt(n,t),xt(n,t),Ot(n,t),St(n,t)}function se(n,t,e=!0){let i=()=>{};t.valueAccessor&&(t.valueAccessor.registerOnChange(i),t.valueAccessor.registerOnTouched(i)),ae(n,t),n&&(t._invokeOnDestroyCallbacks(),n._registerOnCollectionChange(()=>{}))}function oe(n,t){n.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(t)})}function St(n,t){if(t.valueAccessor.setDisabledState){let e=i=>{t.valueAccessor.setDisabledState(i)};n.registerOnDisabledChange(e),t._registerOnDestroy(()=>{n._unregisterOnDisabledChange(e)})}}function De(n,t){let e=st(n);t.validator!==null?n.setValidators(Ge(e,t.validator)):typeof e=="function"&&n.setValidators([e]);let i=ot(n);t.asyncValidator!==null?n.setAsyncValidators(Ge(i,t.asyncValidator)):typeof i=="function"&&n.setAsyncValidators([i]);let r=()=>n.updateValueAndValidity();oe(t._rawValidators,r),oe(t._rawAsyncValidators,r)}function ae(n,t){let e=!1;if(n!==null){if(t.validator!==null){let r=st(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=ot(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 oe(t._rawValidators,i),oe(t._rawAsyncValidators,i),e}function Nt(n,t){t.valueAccessor.registerOnChange(e=>{n._pendingValue=e,n._pendingChange=!0,n._pendingDirty=!0,n.updateOn==="change"&&dt(n,t)})}function Ot(n,t){t.valueAccessor.registerOnTouched(()=>{n._pendingTouched=!0,n.updateOn==="blur"&&n._pendingChange&&dt(n,t),n.updateOn!=="submit"&&n.markAsTouched()})}function dt(n,t){n._pendingDirty&&n.markAsDirty(),n.setValue(n._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(n._pendingValue),n._pendingChange=!1}function xt(n,t){let e=(i,r)=>{t.valueAccessor.writeValue(i),r&&t.viewToModelUpdate(i)};n.registerOnChange(e),t._registerOnDestroy(()=>{n._unregisterOnChange(e)})}function ct(n,t){n==null,De(n,t)}function Pt(n,t){return ae(n,t)}function be(n,t){if(!n.hasOwnProperty("model"))return!1;let e=n.model;return e.isFirstChange()?!0:!Object.is(t,e.currentValue)}function Rt(n){return Object.getPrototypeOf(n.constructor)===P}function ht(n,t){n._syncPendingControls(),t.forEach(e=>{let i=e.control;i.updateOn==="submit"&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function Ae(n,t){if(!t)return null;Array.isArray(t);let e,i,r;return t.forEach(s=>{s.constructor===qe?e=s:Rt(s)?i=s:r=s}),r||i||e||null}function kt(n,t){let e=n.indexOf(t);e>-1&&n.splice(e,1)}var jt={provide:C,useExisting:d(()=>Gt)},G=Promise.resolve(),Gt=(()=>{class n extends C{callSetDisabledState;get submitted(){return v(this.submittedReactive)}_submitted=N(()=>this.submittedReactive());submittedReactive=F(!1);_directives=new Set;form;ngSubmit=new D;options;constructor(e,i,r){super(),this.callSetDisabledState=r,this.form=new L({},ve(e),ye(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),$(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 L({});ct(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){return this.submittedReactive.set(!0),ht(this.form,this._directives),this.ngSubmit.emit(e),this.form._events.next(new re(this.control)),e?.target?.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(m,10),o(W,10),o(M,8))};static \u0275dir=l({type:n,selectors:[["form",3,"ngNoForm","",3,"formGroup","",3,"formArray",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,r){i&1&&y("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([jt]),u]})}return n})();function Ue(n,t){let e=n.indexOf(t);e>-1&&n.splice(e,1)}function He(n){return typeof n=="object"&&n!==null&&Object.keys(n).length===2&&"value"in n&&"disabled"in n}var Me=class extends H{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(t=null,e,i){super(Ce(e),Ve(i,e)),this._applyFormState(t),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),le(e)&&(e.nonNullable||e.initialValueIsDefault)&&(He(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),e.overwriteDefaultValue&&(this.defaultValue=this.value),this._pendingChange=!1,e?.emitEvent!==!1&&this._events.next(new U(this))}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){Ue(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){Ue(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){He(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}},jn=Me,Tt=n=>n instanceof Me;var Bt={provide:p,useExisting:d(()=>Ut)},Le=Promise.resolve(),Ut=(()=>{class n extends p{_changeDetectorRef;callSetDisabledState;control=new Me;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new D;constructor(e,i,r,s,a,_){super(),this._changeDetectorRef=a,this.callSetDisabledState=_,this._parent=e,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=Ae(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),be(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(){$(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._checkName()}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),!this._isStandalone()&&this.name}_updateValue(e){Le.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){let i=e.isDisabled.currentValue,r=i!==0&&he(i);Le.then(()=>{r&&!this.control.disabled?this.control.disable():!r&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?ut(e,this._parent):[e]}static \u0275fac=function(i){return new(i||n)(o(C,9),o(m,10),o(W,10),o(V,10),o(ce,8),o(M,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([Bt]),u,E]})}return n})();var Gn=(()=>{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})(),Ht={provide:V,useExisting:d(()=>Lt),multi:!0},Lt=(()=>{class n extends P{writeValue(e){let i=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=f(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&&y("input",function(a){return r.onChange(a.target.value)})("blur",function(){return r.onTouched()})},standalone:!1,features:[c([Ht]),u]})}return n})(),$t={provide:V,useExisting:d(()=>qt),multi:!0};var Wt=(()=>{class n{_accessors=[];add(e,i){this._accessors.push([e,i])}remove(e){for(let i=this._accessors.length-1;i>=0;--i)if(this._accessors[i][1]===e){this._accessors.splice(i,1);return}}select(e){this._accessors.forEach(i=>{this._isSameGroup(i,e)&&i[1]!==e&&i[1].fireUncheck(e.value)})}_isSameGroup(e,i){return e[0].control?e[0]._parent===i._control._parent&&e[1].name===i.name:!1}static \u0275fac=function(i){return new(i||n)};static \u0275prov=Ne({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),qt=(()=>{class n extends P{_registry;_injector;_state;_control;_fn;setDisabledStateFired=!1;onChange=()=>{};name;formControlName;value;callSetDisabledState=R(M,{optional:!0})??q;constructor(e,i,r,s){super(e,i),this._registry=r,this._injector=s}ngOnInit(){this._control=this._injector.get(p),this._checkName(),this._registry.add(this._control,this)}ngOnDestroy(){this._registry.remove(this)}writeValue(e){this._state=e===this.value,this.setProperty("checked",this._state)}registerOnChange(e){this._fn=e,this.onChange=()=>{e(this.value),this._registry.select(this)}}setDisabledState(e){(this.setDisabledStateFired||e||this.callSetDisabledState==="whenDisabledForLegacyCode")&&this.setProperty("disabled",e),this.setDisabledStateFired=!0}fireUncheck(e){this.writeValue(e)}_checkName(){this.name&&this.formControlName&&(this.name,this.formControlName),!this.name&&this.formControlName&&(this.name=this.formControlName)}static \u0275fac=function(i){return new(i||n)(o(I),o(w),o(Wt),o(Oe))};static \u0275dir=l({type:n,selectors:[["input","type","radio","formControlName",""],["input","type","radio","formControl",""],["input","type","radio","ngModel",""]],hostBindings:function(i,r){i&1&&y("change",function(){return r.onChange()})("blur",function(){return r.onTouched()})},inputs:{name:"name",formControlName:"formControlName",value:"value"},standalone:!1,features:[c([$t]),u]})}return n})();var pe=class extends H{constructor(t,e,i){super(Ce(e),Ve(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={}){Array.isArray(t)?t.forEach(i=>{this.controls.push(i),this._registerControl(i)}):(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={}){lt(this,!1,t),t.forEach((i,r)=>{at(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],g(h({},e),{onlySelf:!0}))}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e),e?.emitEvent!==!1&&this._events.next(new U(this))}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){return this.at(t)??null}},Tn=pe;var zt=(()=>{class n extends C{callSetDisabledState;get submitted(){return v(this._submittedReactive)}set submitted(e){this._submittedReactive.set(e)}_submitted=N(()=>this._submittedReactive());_submittedReactive=F(!1);_oldForm;_onCollectionChange=()=>this._updateDomValue();directives=[];constructor(e,i,r){super(),this.callSetDisabledState=r,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this.onChanges(e)}ngOnDestroy(){this.onDestroy()}onChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}onDestroy(){this.form&&(ae(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get path(){return[]}addControl(e){let i=this.form.get(e.path);return $(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){se(e.control||null,e,!1),kt(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}getFormArray(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}updateModel(e,i){this.form.get(e.path).setValue(i)}onReset(){this.resetForm()}resetForm(e=void 0,i={}){this.form.reset(e,i),this._submittedReactive.set(!1)}onSubmit(e){return this.submitted=!0,ht(this.form,this.directives),this.ngSubmit.emit(e),this.form._events.next(new re(this.control)),e?.target?.method==="dialog"}_updateDomValue(){this.directives.forEach(e=>{let i=e.control,r=this.form.get(e.path);i!==r&&(se(i||null,e),Tt(r)&&($(r,e,this.callSetDisabledState),e.control=r))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){let i=this.form.get(e.path);ct(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){let i=this.form.get(e.path);i&&Pt(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){De(this.form,this),this._oldForm&&ae(this._oldForm,this)}_checkFormPresent(){this.form}static \u0275fac=function(i){return new(i||n)(o(m,10),o(W,10),o(M,8))};static \u0275dir=l({type:n,features:[u,E]})}return n})();var Fe=new A(""),Zt={provide:p,useExisting:d(()=>Xt)},Xt=(()=>{class n extends p{_ngModelWarningConfig;callSetDisabledState;viewModel;form;set isDisabled(e){}model;update=new D;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=Ae(this,r)}ngOnChanges(e){if(this._isControlChanged(e)){let i=e.form.previousValue;i&&se(i,this,!1),$(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}be(e,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&se(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(m,10),o(W,10),o(V,10),o(Fe,8),o(M,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([Zt]),u,E]})}return n})();var Yt={provide:p,useExisting:d(()=>Kt)},Kt=(()=>{class n extends p{_ngModelWarningConfig;_added=!1;viewModel;control;name=null;set isDisabled(e){}model;update=new D;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=Ae(this,s)}ngOnChanges(e){this._added||this._setUpControl(),be(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 ut(this.name==null?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_setUpControl(){this.control=this.formDirective.addControl(this),this._added=!0}static \u0275fac=function(i){return new(i||n)(o(C,13),o(m,10),o(W,10),o(V,10),o(Fe,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([Yt]),u,E]})}return n})();var Jt={provide:C,useExisting:d(()=>Qt)},Qt=(()=>{class n extends zt{form=null;ngSubmit=new D;get control(){return this.form}static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["","formGroup",""]],hostBindings:function(i,r){i&1&&y("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([Jt]),u]})}return n})(),en={provide:V,useExisting:d(()=>gt),multi:!0};function ft(n,t){return n==null?`${t}`:(t&&typeof t=="object"&&(t="Object"),`${n}: ${t}`.slice(0,50))}function tn(n){return n.split(":")[0]}var gt=(()=>{class n extends P{value;_optionMap=new Map;_idCounter=0;set compareWith(e){this._compareWith=e}_compareWith=Object.is;appRefInjector=R(ke).injector;destroyRef=R(xe);cdr=R(ce);_queuedWrite=!1;_writeValueAfterRender(){this._queuedWrite||this.appRefInjector.destroyed||(this._queuedWrite=!0,Pe({write:()=>{this.destroyRef.destroyed||(this._queuedWrite=!1,this.writeValue(this.value))}},{injector:this.appRefInjector}))}writeValue(e){this.cdr.markForCheck(),this.value=e;let i=this._getOptionId(e),r=ft(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=tn(e);return this._optionMap.has(i)?this._optionMap.get(i):e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(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&&y("change",function(a){return r.onChange(a.target.value)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},standalone:!1,features:[c([en]),u]})}return n})(),Bn=(()=>{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(ft(this.id,e)),this._select._writeValueAfterRender())}set value(e){this._setElementValue(e),this._select&&this._select._writeValueAfterRender()}_setElementValue(e){this._renderer.setProperty(this._element.nativeElement,"value",e)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select._writeValueAfterRender())}static \u0275fac=function(i){return new(i||n)(o(w),o(I),o(gt,9))};static \u0275dir=l({type:n,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"},standalone:!1})}return n})(),nn={provide:V,useExisting:d(()=>pt),multi:!0};function $e(n,t){return n==null?`${t}`:(typeof t=="string"&&(t=`'${t}'`),t&&typeof t=="object"&&(t="Object"),`${n}: ${t}`.slice(0,50))}function rn(n){return n.split(":")[0]}var pt=(()=>{class n extends P{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 _=0;_<a.length;_++){let Z=a[_],ue=this._getOptionValue(Z.value);r.push(ue)}}else{let a=i.options;for(let _=0;_<a.length;_++){let Z=a[_];if(Z.selected){let ue=this._getOptionValue(Z.value);r.push(ue)}}}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=rn(e);return this._optionMap.has(i)?this._optionMap.get(i)._value:e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["select","multiple","","formControlName",""],["select","multiple","","formControl",""],["select","multiple","","ngModel",""]],hostBindings:function(i,r){i&1&&y("change",function(a){return r.onChange(a.target)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},standalone:!1,features:[c([nn]),u]})}return n})(),Un=(()=>{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($e(this.id,e)),this._select.writeValue(this._select.value))}set value(e){this._select?(this._value=e,this._setElementValue($e(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(w),o(I),o(pt,9))};static \u0275dir=l({type:n,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"},standalone:!1})}return n})();function sn(n){return typeof n=="number"?n:parseInt(n,10)}function mt(n){return typeof n=="number"?n:parseFloat(n)}var z=(()=>{class n{_validator=Q;_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):Q,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})(),on={provide:m,useExisting:d(()=>an),multi:!0},an=(()=>{class n extends z{max;inputName="max";normalizeInput=e=>mt(e);createValidator=e=>Ze(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(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&&S("max",r._enabled?r.max:null)},inputs:{max:"max"},standalone:!1,features:[c([on]),u]})}return n})(),ln={provide:m,useExisting:d(()=>un),multi:!0},un=(()=>{class n extends z{min;inputName="min";normalizeInput=e=>mt(e);createValidator=e=>ze(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(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&&S("min",r._enabled?r.min:null)},inputs:{min:"min"},standalone:!1,features:[c([ln]),u]})}return n})(),dn={provide:m,useExisting:d(()=>cn),multi:!0};var cn=(()=>{class n extends z{required;inputName="required";normalizeInput=he;createValidator=e=>Xe;enabled(e){return e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["","required","","formControlName","",3,"type","checkbox"],["","required","","formControl","",3,"type","checkbox"],["","required","","ngModel","",3,"type","checkbox"]],hostVars:1,hostBindings:function(i,r){i&2&&S("required",r._enabled?"":null)},inputs:{required:"required"},standalone:!1,features:[c([dn]),u]})}return n})();var hn={provide:m,useExisting:d(()=>fn),multi:!0},fn=(()=>{class n extends z{maxlength;inputName="maxlength";normalizeInput=e=>sn(e);createValidator=e=>Ye(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(i,r){i&2&&S("maxlength",r._enabled?r.maxlength:null)},inputs:{maxlength:"maxlength"},standalone:!1,features:[c([hn]),u]})}return n})(),gn={provide:m,useExisting:d(()=>pn),multi:!0},pn=(()=>{class n extends z{pattern;inputName="pattern";normalizeInput=e=>e;createValidator=e=>Ke(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["","pattern","","formControlName",""],["","pattern","","formControl",""],["","pattern","","ngModel",""]],hostVars:1,hostBindings:function(i,r){i&2&&S("pattern",r._enabled?r.pattern:null)},inputs:{pattern:"pattern"},standalone:!1,features:[c([gn]),u]})}return n})();var _t=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=K({type:n});static \u0275inj=Y({})}return n})();var Hn=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:M,useValue:e.callSetDisabledState??q}]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=K({type:n});static \u0275inj=Y({imports:[_t]})}return n})(),Ln=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:Fe,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:M,useValue:e.callSetDisabledState??q}]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=K({type:n});static \u0275inj=Y({imports:[_t]})}return n})();export{V as a,yt as b,qe as c,je as d,xn as e,Pn as f,L as g,Rn as h,Gt as i,Me as j,jn as k,Ut as l,Gn as m,Lt as n,qt as o,Tn as p,Xt as q,Kt as r,Qt as s,gt as t,Bn as u,pt as v,Un as w,an as x,un as y,cn as z,fn as A,pn as B,Hn as C,Ln as D};
1
+ import{a as fe}from"./chunk-VWUZDCBZ.js";import{Aa as w,Kc as N,Rc as ce,U as X,Uc as he,W as d,X as Ne,Xb as y,Y,_ as A,aa as R,d as Ee,db as Pe,h as we,hb as I,ib as o,ic as de,ka as Oe,ma as xe,o as Ie,oa as D,ob as K,pb as l,sa as F,sb as u,u as Se,vb as Re,vc as c,wa as v,xa as E,xb as ke,ya as f,yb as S}from"./chunk-F5MBSCH4.js";import{a as h,b as g}from"./chunk-B4AJQJMI.js";var We=(()=>{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(I),o(w))};static \u0275dir=l({type:n})}return n})(),P=(()=>{class n extends We{static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,features:[u]})}return n})(),V=new A(""),vt={provide:V,useExisting:d(()=>yt),multi:!0},yt=(()=>{class n extends P{writeValue(e){this.setProperty("checked",e)}static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(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&&y("change",function(a){return r.onChange(a.target.checked)})("blur",function(){return r.onTouched()})},standalone:!1,features:[c([vt]),u]})}return n})(),Ct={provide:V,useExisting:d(()=>qe),multi:!0};function Vt(){let n=fe()?fe().getUserAgent():"";return/android (\d+)/.test(n.toLowerCase())}var Dt=new A(""),qe=(()=>{class n extends We{_compositionMode;_composing=!1;constructor(e,i,r){super(e,i),this._compositionMode=r,this._compositionMode==null&&(this._compositionMode=!Vt())}writeValue(e){let i=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(I),o(w),o(Dt,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&&y("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([Ct]),u]})}return n})();function me(n){return n==null||_e(n)===0}function _e(n){return n==null?null:Array.isArray(n)||typeof n=="string"?n.length:n instanceof Set?n.size:null}var m=new A(""),W=new A(""),bt=/^(?=.{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])?)*$/,je=class{static min(t){return ze(t)}static max(t){return Ze(t)}static required(t){return Xe(t)}static requiredTrue(t){return At(t)}static email(t){return Mt(t)}static minLength(t){return Ft(t)}static maxLength(t){return Ye(t)}static pattern(t){return Ke(t)}static nullValidator(t){return Q()}static compose(t){return it(t)}static composeAsync(t){return rt(t)}};function ze(n){return t=>{if(t.value==null||n==null)return null;let e=parseFloat(t.value);return!isNaN(e)&&e<n?{min:{min:n,actual:t.value}}:null}}function Ze(n){return t=>{if(t.value==null||n==null)return null;let e=parseFloat(t.value);return!isNaN(e)&&e>n?{max:{max:n,actual:t.value}}:null}}function Xe(n){return me(n.value)?{required:!0}:null}function At(n){return n.value===!0?null:{required:!0}}function Mt(n){return me(n.value)||bt.test(n.value)?null:{email:!0}}function Ft(n){return t=>{let e=t.value?.length??_e(t.value);return e===null||e===0?null:e<n?{minlength:{requiredLength:n,actualLength:e}}:null}}function Ye(n){return t=>{let e=t.value?.length??_e(t.value);return e!==null&&e>n?{maxlength:{requiredLength:n,actualLength:e}}:null}}function Ke(n){if(!n)return Q;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(me(i.value))return null;let r=i.value;return t.test(r)?null:{pattern:{requiredPattern:e,actualValue:r}}}}function Q(n){return null}function Je(n){return n!=null}function Qe(n){return Re(n)?we(n):n}function et(n){let t={};return n.forEach(e=>{t=e!=null?h(h({},t),e):t}),Object.keys(t).length===0?null:t}function tt(n,t){return t.map(e=>e(n))}function Et(n){return!n.validate}function nt(n){return n.map(t=>Et(t)?t:e=>t.validate(e))}function it(n){if(!n)return null;let t=n.filter(Je);return t.length==0?null:function(e){return et(tt(e,t))}}function ve(n){return n!=null?it(nt(n)):null}function rt(n){if(!n)return null;let t=n.filter(Je);return t.length==0?null:function(e){let i=tt(e,t).map(Qe);return Se(i).pipe(Ie(et))}}function ye(n){return n!=null?rt(nt(n)):null}function Ge(n,t){return n===null?[t]:Array.isArray(n)?[...n,t]:[n,t]}function st(n){return n._rawValidators}function ot(n){return n._rawAsyncValidators}function ge(n){return n?Array.isArray(n)?n:[n]:[]}function ee(n,t){return Array.isArray(n)?n.includes(t):n===t}function Te(n,t){let e=ge(t);return ge(n).forEach(r=>{ee(e,r)||e.push(r)}),e}function Be(n,t){return ge(t).filter(e=>!ee(n,e))}var te=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=ve(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=ye(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}},C=class extends te{name;get formDirective(){return null}get path(){return null}},p=class extends te{_parent=null;name=null;valueAccessor=null},ne=class{_cd;constructor(t){this._cd=t}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}};var xn=(()=>{class n extends ne{constructor(e){super(e)}static \u0275fac=function(i){return new(i||n)(o(p,2))};static \u0275dir=l({type:n,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(i,r){i&2&&de("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})(),Pn=(()=>{class n extends ne{constructor(e){super(e)}static \u0275fac=function(i){return new(i||n)(o(C,10))};static \u0275dir=l({type:n,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["","formArray",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(i,r){i&2&&de("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 k="VALID",J="INVALID",O="PENDING",j="DISABLED",b=class{},ie=class extends b{value;source;constructor(t,e){super(),this.value=t,this.source=e}},T=class extends b{pristine;source;constructor(t,e){super(),this.pristine=t,this.source=e}},B=class extends b{touched;source;constructor(t,e){super(),this.touched=t,this.source=e}},x=class extends b{status;source;constructor(t,e){super(),this.status=t,this.source=e}},re=class extends b{source;constructor(t){super(),this.source=t}},U=class extends b{source;constructor(t){super(),this.source=t}};function Ce(n){return(le(n)?n.validators:n)||null}function wt(n){return Array.isArray(n)?ve(n):n||null}function Ve(n,t){return(le(t)?t.asyncValidators:n)||null}function It(n){return Array.isArray(n)?ye(n):n||null}function le(n){return n!=null&&!Array.isArray(n)&&typeof n=="object"}function at(n,t,e){let i=n.controls;if(!(t?Object.keys(i):i).length)throw new X(1e3,"");if(!i[e])throw new X(1001,"")}function lt(n,t,e){n._forEachChild((i,r)=>{if(e[r]===void 0)throw new X(1002,"")})}var H=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 v(this.statusReactive)}set status(t){v(()=>this.statusReactive.set(t))}_status=N(()=>this.statusReactive());statusReactive=F(void 0);get valid(){return this.status===k}get invalid(){return this.status===J}get pending(){return this.status==O}get disabled(){return this.status===j}get enabled(){return this.status!==j}errors;get pristine(){return v(this.pristineReactive)}set pristine(t){v(()=>this.pristineReactive.set(t))}_pristine=N(()=>this.pristineReactive());pristineReactive=F(!0);get dirty(){return!this.pristine}get touched(){return v(this.touchedReactive)}set touched(t){v(()=>this.touchedReactive.set(t))}_touched=N(()=>this.touchedReactive());touchedReactive=F(!1);get untouched(){return!this.touched}_events=new Ee;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(Te(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(Te(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(Be(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(Be(t,this._rawAsyncValidators))}hasValidator(t){return ee(this._rawValidators,t)}hasAsyncValidator(t){return ee(this._rawAsyncValidators,t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){let e=this.touched===!1;this.touched=!0;let i=t.sourceControl??this;this._parent&&!t.onlySelf&&this._parent.markAsTouched(g(h({},t),{sourceControl:i})),e&&t.emitEvent!==!1&&this._events.next(new B(!0,i))}markAllAsDirty(t={}){this.markAsDirty({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsDirty(t))}markAllAsTouched(t={}){this.markAsTouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:this}),this._forEachChild(e=>e.markAllAsTouched(t))}markAsUntouched(t={}){let e=this.touched===!0;this.touched=!1,this._pendingTouched=!1;let i=t.sourceControl??this;this._forEachChild(r=>{r.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 B(!1,i))}markAsDirty(t={}){let e=this.pristine===!0;this.pristine=!1;let i=t.sourceControl??this;this._parent&&!t.onlySelf&&this._parent.markAsDirty(g(h({},t),{sourceControl:i})),e&&t.emitEvent!==!1&&this._events.next(new T(!1,i))}markAsPristine(t={}){let e=this.pristine===!1;this.pristine=!0,this._pendingDirty=!1;let i=t.sourceControl??this;this._forEachChild(r=>{r.markAsPristine({onlySelf:!0,emitEvent:t.emitEvent})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t,i),e&&t.emitEvent!==!1&&this._events.next(new T(!0,i))}markAsPending(t={}){this.status=O;let e=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new x(this.status,e)),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.markAsPending(g(h({},t),{sourceControl:e}))}disable(t={}){let e=this._parentMarkedDirty(t.onlySelf);this.status=j,this.errors=null,this._forEachChild(r=>{r.disable(g(h({},t),{onlySelf:!0}))}),this._updateValue();let i=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new ie(this.value,i)),this._events.next(new x(this.status,i)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(g(h({},t),{skipPristineCheck:e}),this),this._onDisabledChange.forEach(r=>r(!0))}enable(t={}){let e=this._parentMarkedDirty(t.onlySelf);this.status=k,this._forEachChild(i=>{i.enable(g(h({},t),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors(g(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={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){let i=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===k||this.status===O)&&this._runAsyncValidator(i,t.emitEvent)}let e=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new ie(this.value,e)),this._events.next(new x(this.status,e)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(g(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()?j:k}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t,e){if(this.asyncValidator){this.status=O,this._hasOwnPendingAsyncValidator={emitEvent:e!==!1,shouldHaveEmitted:t!==!1};let i=Qe(this.asyncValidator(this));this._asyncValidationSubscription=i.subscribe(r=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(r,{emitEvent:e,shouldHaveEmitted:t})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();let t=(this._hasOwnPendingAsyncValidator?.emitEvent||this._hasOwnPendingAsyncValidator?.shouldHaveEmitted)??!1;return this._hasOwnPendingAsyncValidator=null,t}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 x(this.status,e)),this._parent&&this._parent._updateControlsErrors(t,e,i)}_initObservables(){this.valueChanges=new D,this.statusChanges=new D}_calculateStatus(){return this._allControlsDisabled()?j:this.errors?J:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(O)?O:this._anyControlsHaveStatus(J)?J:k}_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 T(this.pristine,e))}_updateTouched(t={},e){this.touched=this._anyControlsTouched(),this._events.next(new B(this.touched,e)),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,e)}_onDisabledChange=[];_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){le(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=wt(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=It(this._rawAsyncValidators)}},L=class extends H{constructor(t,e,i){super(Ce(e),Ve(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={}){lt(this,!0,t),Object.keys(t).forEach(i=>{at(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,g(h({},e),{onlySelf:!0}))}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e),e?.emitEvent!==!1&&this._events.next(new U(this))}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 Rn=L;var M=new A("",{factory:()=>q}),q="always";function ut(n,t){return[...t.path,n]}function $(n,t,e=q){De(n,t),t.valueAccessor.writeValue(n.value),(n.disabled||e==="always")&&t.valueAccessor.setDisabledState?.(n.disabled),Nt(n,t),xt(n,t),Ot(n,t),St(n,t)}function se(n,t,e=!0){let i=()=>{};t.valueAccessor&&(t.valueAccessor.registerOnChange(i),t.valueAccessor.registerOnTouched(i)),ae(n,t),n&&(t._invokeOnDestroyCallbacks(),n._registerOnCollectionChange(()=>{}))}function oe(n,t){n.forEach(e=>{e.registerOnValidatorChange&&e.registerOnValidatorChange(t)})}function St(n,t){if(t.valueAccessor.setDisabledState){let e=i=>{t.valueAccessor.setDisabledState(i)};n.registerOnDisabledChange(e),t._registerOnDestroy(()=>{n._unregisterOnDisabledChange(e)})}}function De(n,t){let e=st(n);t.validator!==null?n.setValidators(Ge(e,t.validator)):typeof e=="function"&&n.setValidators([e]);let i=ot(n);t.asyncValidator!==null?n.setAsyncValidators(Ge(i,t.asyncValidator)):typeof i=="function"&&n.setAsyncValidators([i]);let r=()=>n.updateValueAndValidity();oe(t._rawValidators,r),oe(t._rawAsyncValidators,r)}function ae(n,t){let e=!1;if(n!==null){if(t.validator!==null){let r=st(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=ot(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 oe(t._rawValidators,i),oe(t._rawAsyncValidators,i),e}function Nt(n,t){t.valueAccessor.registerOnChange(e=>{n._pendingValue=e,n._pendingChange=!0,n._pendingDirty=!0,n.updateOn==="change"&&dt(n,t)})}function Ot(n,t){t.valueAccessor.registerOnTouched(()=>{n._pendingTouched=!0,n.updateOn==="blur"&&n._pendingChange&&dt(n,t),n.updateOn!=="submit"&&n.markAsTouched()})}function dt(n,t){n._pendingDirty&&n.markAsDirty(),n.setValue(n._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(n._pendingValue),n._pendingChange=!1}function xt(n,t){let e=(i,r)=>{t.valueAccessor.writeValue(i),r&&t.viewToModelUpdate(i)};n.registerOnChange(e),t._registerOnDestroy(()=>{n._unregisterOnChange(e)})}function ct(n,t){n==null,De(n,t)}function Pt(n,t){return ae(n,t)}function be(n,t){if(!n.hasOwnProperty("model"))return!1;let e=n.model;return e.isFirstChange()?!0:!Object.is(t,e.currentValue)}function Rt(n){return Object.getPrototypeOf(n.constructor)===P}function ht(n,t){n._syncPendingControls(),t.forEach(e=>{let i=e.control;i.updateOn==="submit"&&i._pendingChange&&(e.viewToModelUpdate(i._pendingValue),i._pendingChange=!1)})}function Ae(n,t){if(!t)return null;Array.isArray(t);let e,i,r;return t.forEach(s=>{s.constructor===qe?e=s:Rt(s)?i=s:r=s}),r||i||e||null}function kt(n,t){let e=n.indexOf(t);e>-1&&n.splice(e,1)}var jt={provide:C,useExisting:d(()=>Gt)},G=Promise.resolve(),Gt=(()=>{class n extends C{callSetDisabledState;get submitted(){return v(this.submittedReactive)}_submitted=N(()=>this.submittedReactive());submittedReactive=F(!1);_directives=new Set;form;ngSubmit=new D;options;constructor(e,i,r){super(),this.callSetDisabledState=r,this.form=new L({},ve(e),ye(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),$(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 L({});ct(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){return this.submittedReactive.set(!0),ht(this.form,this._directives),this.ngSubmit.emit(e),this.form._events.next(new re(this.control)),e?.target?.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(m,10),o(W,10),o(M,8))};static \u0275dir=l({type:n,selectors:[["form",3,"ngNoForm","",3,"formGroup","",3,"formArray",""],["ng-form"],["","ngForm",""]],hostBindings:function(i,r){i&1&&y("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([jt]),u]})}return n})();function Ue(n,t){let e=n.indexOf(t);e>-1&&n.splice(e,1)}function He(n){return typeof n=="object"&&n!==null&&Object.keys(n).length===2&&"value"in n&&"disabled"in n}var Me=class extends H{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(t=null,e,i){super(Ce(e),Ve(i,e)),this._applyFormState(t),this._setUpdateStrategy(e),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),le(e)&&(e.nonNullable||e.initialValueIsDefault)&&(He(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),e.overwriteDefaultValue&&(this.defaultValue=this.value),this._pendingChange=!1,e?.emitEvent!==!1&&this._events.next(new U(this))}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){Ue(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){Ue(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){He(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}},jn=Me,Tt=n=>n instanceof Me;var Bt={provide:p,useExisting:d(()=>Ut)},Le=Promise.resolve(),Ut=(()=>{class n extends p{_changeDetectorRef;callSetDisabledState;control=new Me;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new D;constructor(e,i,r,s,a,_){super(),this._changeDetectorRef=a,this.callSetDisabledState=_,this._parent=e,this._setValidators(i),this._setAsyncValidators(r),this.valueAccessor=Ae(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),be(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(){$(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._checkName()}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),!this._isStandalone()&&this.name}_updateValue(e){Le.then(()=>{this.control.setValue(e,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(e){let i=e.isDisabled.currentValue,r=i!==0&&he(i);Le.then(()=>{r&&!this.control.disabled?this.control.disable():!r&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(e){return this._parent?ut(e,this._parent):[e]}static \u0275fac=function(i){return new(i||n)(o(C,9),o(m,10),o(W,10),o(V,10),o(ce,8),o(M,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([Bt]),u,E]})}return n})();var Gn=(()=>{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})(),Ht={provide:V,useExisting:d(()=>Lt),multi:!0},Lt=(()=>{class n extends P{writeValue(e){let i=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=f(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&&y("input",function(a){return r.onChange(a.target.value)})("blur",function(){return r.onTouched()})},standalone:!1,features:[c([Ht]),u]})}return n})(),$t={provide:V,useExisting:d(()=>qt),multi:!0};var Wt=(()=>{class n{_accessors=[];add(e,i){this._accessors.push([e,i])}remove(e){for(let i=this._accessors.length-1;i>=0;--i)if(this._accessors[i][1]===e){this._accessors.splice(i,1);return}}select(e){this._accessors.forEach(i=>{this._isSameGroup(i,e)&&i[1]!==e&&i[1].fireUncheck(e.value)})}_isSameGroup(e,i){return e[0].control?e[0]._parent===i._control._parent&&e[1].name===i.name:!1}static \u0275fac=function(i){return new(i||n)};static \u0275prov=Ne({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),qt=(()=>{class n extends P{_registry;_injector;_state;_control;_fn;setDisabledStateFired=!1;onChange=()=>{};name;formControlName;value;callSetDisabledState=R(M,{optional:!0})??q;constructor(e,i,r,s){super(e,i),this._registry=r,this._injector=s}ngOnInit(){this._control=this._injector.get(p),this._checkName(),this._registry.add(this._control,this)}ngOnDestroy(){this._registry.remove(this)}writeValue(e){this._state=e===this.value,this.setProperty("checked",this._state)}registerOnChange(e){this._fn=e,this.onChange=()=>{e(this.value),this._registry.select(this)}}setDisabledState(e){(this.setDisabledStateFired||e||this.callSetDisabledState==="whenDisabledForLegacyCode")&&this.setProperty("disabled",e),this.setDisabledStateFired=!0}fireUncheck(e){this.writeValue(e)}_checkName(){this.name&&this.formControlName&&(this.name,this.formControlName),!this.name&&this.formControlName&&(this.name=this.formControlName)}static \u0275fac=function(i){return new(i||n)(o(I),o(w),o(Wt),o(Oe))};static \u0275dir=l({type:n,selectors:[["input","type","radio","formControlName",""],["input","type","radio","formControl",""],["input","type","radio","ngModel",""]],hostBindings:function(i,r){i&1&&y("change",function(){return r.onChange()})("blur",function(){return r.onTouched()})},inputs:{name:"name",formControlName:"formControlName",value:"value"},standalone:!1,features:[c([$t]),u]})}return n})();var pe=class extends H{constructor(t,e,i){super(Ce(e),Ve(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={}){Array.isArray(t)?t.forEach(i=>{this.controls.push(i),this._registerControl(i)}):(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={}){lt(this,!1,t),t.forEach((i,r)=>{at(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],g(h({},e),{onlySelf:!0}))}),this._updatePristine(e,this),this._updateTouched(e,this),this.updateValueAndValidity(e),e?.emitEvent!==!1&&this._events.next(new U(this))}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){return this.at(t)??null}},Tn=pe;var zt=(()=>{class n extends C{callSetDisabledState;get submitted(){return v(this._submittedReactive)}set submitted(e){this._submittedReactive.set(e)}_submitted=N(()=>this._submittedReactive());_submittedReactive=F(!1);_oldForm;_onCollectionChange=()=>this._updateDomValue();directives=[];constructor(e,i,r){super(),this.callSetDisabledState=r,this._setValidators(e),this._setAsyncValidators(i)}ngOnChanges(e){this.onChanges(e)}ngOnDestroy(){this.onDestroy()}onChanges(e){this._checkFormPresent(),e.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}onDestroy(){this.form&&(ae(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get path(){return[]}addControl(e){let i=this.form.get(e.path);return $(i,e,this.callSetDisabledState),i.updateValueAndValidity({emitEvent:!1}),this.directives.push(e),i}getControl(e){return this.form.get(e.path)}removeControl(e){se(e.control||null,e,!1),kt(this.directives,e)}addFormGroup(e){this._setUpFormContainer(e)}removeFormGroup(e){this._cleanUpFormContainer(e)}getFormGroup(e){return this.form.get(e.path)}getFormArray(e){return this.form.get(e.path)}addFormArray(e){this._setUpFormContainer(e)}removeFormArray(e){this._cleanUpFormContainer(e)}updateModel(e,i){this.form.get(e.path).setValue(i)}onReset(){this.resetForm()}resetForm(e=void 0,i={}){this.form.reset(e,i),this._submittedReactive.set(!1)}onSubmit(e){return this.submitted=!0,ht(this.form,this.directives),this.ngSubmit.emit(e),this.form._events.next(new re(this.control)),e?.target?.method==="dialog"}_updateDomValue(){this.directives.forEach(e=>{let i=e.control,r=this.form.get(e.path);i!==r&&(se(i||null,e),Tt(r)&&($(r,e,this.callSetDisabledState),e.control=r))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(e){let i=this.form.get(e.path);ct(i,e),i.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(e){if(this.form){let i=this.form.get(e.path);i&&Pt(i,e)&&i.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){De(this.form,this),this._oldForm&&ae(this._oldForm,this)}_checkFormPresent(){this.form}static \u0275fac=function(i){return new(i||n)(o(m,10),o(W,10),o(M,8))};static \u0275dir=l({type:n,features:[u,E]})}return n})();var Fe=new A(""),Zt={provide:p,useExisting:d(()=>Xt)},Xt=(()=>{class n extends p{_ngModelWarningConfig;callSetDisabledState;viewModel;form;set isDisabled(e){}model;update=new D;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=Ae(this,r)}ngOnChanges(e){if(this._isControlChanged(e)){let i=e.form.previousValue;i&&se(i,this,!1),$(this.form,this,this.callSetDisabledState),this.form.updateValueAndValidity({emitEvent:!1})}be(e,this.viewModel)&&(this.form.setValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.form&&se(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(m,10),o(W,10),o(V,10),o(Fe,8),o(M,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([Zt]),u,E]})}return n})();var Yt={provide:p,useExisting:d(()=>Kt)},Kt=(()=>{class n extends p{_ngModelWarningConfig;_added=!1;viewModel;control;name=null;set isDisabled(e){}model;update=new D;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=Ae(this,s)}ngOnChanges(e){this._added||this._setUpControl(),be(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 ut(this.name==null?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_setUpControl(){this.control=this.formDirective.addControl(this),this._added=!0}static \u0275fac=function(i){return new(i||n)(o(C,13),o(m,10),o(W,10),o(V,10),o(Fe,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([Yt]),u,E]})}return n})();var Jt={provide:C,useExisting:d(()=>Qt)},Qt=(()=>{class n extends zt{form=null;ngSubmit=new D;get control(){return this.form}static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["","formGroup",""]],hostBindings:function(i,r){i&1&&y("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([Jt]),u]})}return n})(),en={provide:V,useExisting:d(()=>gt),multi:!0};function ft(n,t){return n==null?`${t}`:(t&&typeof t=="object"&&(t="Object"),`${n}: ${t}`.slice(0,50))}function tn(n){return n.split(":")[0]}var gt=(()=>{class n extends P{value;_optionMap=new Map;_idCounter=0;set compareWith(e){this._compareWith=e}_compareWith=Object.is;appRefInjector=R(ke).injector;destroyRef=R(xe);cdr=R(ce);_queuedWrite=!1;_writeValueAfterRender(){this._queuedWrite||this.appRefInjector.destroyed||(this._queuedWrite=!0,Pe({write:()=>{this.destroyRef.destroyed||(this._queuedWrite=!1,this.writeValue(this.value))}},{injector:this.appRefInjector}))}writeValue(e){this.cdr.markForCheck(),this.value=e;let i=this._getOptionId(e),r=ft(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=tn(e);return this._optionMap.has(i)?this._optionMap.get(i):e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(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&&y("change",function(a){return r.onChange(a.target.value)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},standalone:!1,features:[c([en]),u]})}return n})(),Bn=(()=>{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(ft(this.id,e)),this._select._writeValueAfterRender())}set value(e){this._setElementValue(e),this._select&&this._select._writeValueAfterRender()}_setElementValue(e){this._renderer.setProperty(this._element.nativeElement,"value",e)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select._writeValueAfterRender())}static \u0275fac=function(i){return new(i||n)(o(w),o(I),o(gt,9))};static \u0275dir=l({type:n,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"},standalone:!1})}return n})(),nn={provide:V,useExisting:d(()=>pt),multi:!0};function $e(n,t){return n==null?`${t}`:(typeof t=="string"&&(t=`'${t}'`),t&&typeof t=="object"&&(t="Object"),`${n}: ${t}`.slice(0,50))}function rn(n){return n.split(":")[0]}var pt=(()=>{class n extends P{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 _=0;_<a.length;_++){let Z=a[_],ue=this._getOptionValue(Z.value);r.push(ue)}}else{let a=i.options;for(let _=0;_<a.length;_++){let Z=a[_];if(Z.selected){let ue=this._getOptionValue(Z.value);r.push(ue)}}}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=rn(e);return this._optionMap.has(i)?this._optionMap.get(i)._value:e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["select","multiple","","formControlName",""],["select","multiple","","formControl",""],["select","multiple","","ngModel",""]],hostBindings:function(i,r){i&1&&y("change",function(a){return r.onChange(a.target)})("blur",function(){return r.onTouched()})},inputs:{compareWith:"compareWith"},standalone:!1,features:[c([nn]),u]})}return n})(),Un=(()=>{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($e(this.id,e)),this._select.writeValue(this._select.value))}set value(e){this._select?(this._value=e,this._setElementValue($e(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(w),o(I),o(pt,9))};static \u0275dir=l({type:n,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"},standalone:!1})}return n})();function sn(n){return typeof n=="number"?n:parseInt(n,10)}function mt(n){return typeof n=="number"?n:parseFloat(n)}var z=(()=>{class n{_validator=Q;_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):Q,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})(),on={provide:m,useExisting:d(()=>an),multi:!0},an=(()=>{class n extends z{max;inputName="max";normalizeInput=e=>mt(e);createValidator=e=>Ze(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(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&&S("max",r._enabled?r.max:null)},inputs:{max:"max"},standalone:!1,features:[c([on]),u]})}return n})(),ln={provide:m,useExisting:d(()=>un),multi:!0},un=(()=>{class n extends z{min;inputName="min";normalizeInput=e=>mt(e);createValidator=e=>ze(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(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&&S("min",r._enabled?r.min:null)},inputs:{min:"min"},standalone:!1,features:[c([ln]),u]})}return n})(),dn={provide:m,useExisting:d(()=>cn),multi:!0};var cn=(()=>{class n extends z{required;inputName="required";normalizeInput=he;createValidator=e=>Xe;enabled(e){return e}static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["","required","","formControlName","",3,"type","checkbox"],["","required","","formControl","",3,"type","checkbox"],["","required","","ngModel","",3,"type","checkbox"]],hostVars:1,hostBindings:function(i,r){i&2&&S("required",r._enabled?"":null)},inputs:{required:"required"},standalone:!1,features:[c([dn]),u]})}return n})();var hn={provide:m,useExisting:d(()=>fn),multi:!0},fn=(()=>{class n extends z{maxlength;inputName="maxlength";normalizeInput=e=>sn(e);createValidator=e=>Ye(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["","maxlength","","formControlName",""],["","maxlength","","formControl",""],["","maxlength","","ngModel",""]],hostVars:1,hostBindings:function(i,r){i&2&&S("maxlength",r._enabled?r.maxlength:null)},inputs:{maxlength:"maxlength"},standalone:!1,features:[c([hn]),u]})}return n})(),gn={provide:m,useExisting:d(()=>pn),multi:!0},pn=(()=>{class n extends z{pattern;inputName="pattern";normalizeInput=e=>e;createValidator=e=>Ke(e);static \u0275fac=(()=>{let e;return function(r){return(e||(e=f(n)))(r||n)}})();static \u0275dir=l({type:n,selectors:[["","pattern","","formControlName",""],["","pattern","","formControl",""],["","pattern","","ngModel",""]],hostVars:1,hostBindings:function(i,r){i&2&&S("pattern",r._enabled?r.pattern:null)},inputs:{pattern:"pattern"},standalone:!1,features:[c([gn]),u]})}return n})();var _t=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=K({type:n});static \u0275inj=Y({})}return n})();var Hn=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:M,useValue:e.callSetDisabledState??q}]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=K({type:n});static \u0275inj=Y({imports:[_t]})}return n})(),Ln=(()=>{class n{static withConfig(e){return{ngModule:n,providers:[{provide:Fe,useValue:e.warnOnNgModelWithFormControl??"always"},{provide:M,useValue:e.callSetDisabledState??q}]}}static \u0275fac=function(i){return new(i||n)};static \u0275mod=K({type:n});static \u0275inj=Y({imports:[_t]})}return n})();export{V as a,yt as b,qe as c,je as d,xn as e,Pn as f,L as g,Rn as h,Gt as i,Me as j,jn as k,Ut as l,Gn as m,Lt as n,qt as o,Tn as p,Xt as q,Kt as r,Qt as s,gt as t,Bn as u,pt as v,Un as w,an as x,un as y,cn as z,fn as A,pn as B,Hn as C,Ln as D};
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-3BODPB3K.js";import"./chunk-B4AJQJMI.js";export default a();
@@ -1 +1 @@
1
- import{a as I}from"./chunk-VZQ3UMBD.js";import{e as S}from"./chunk-7DSHUQQE.js";import{a as x}from"./chunk-C64AHVUO.js";import"./chunk-XFKYZXKP.js";import{b as k}from"./chunk-DZ4GN7CJ.js";import{C as b,D as w,F as C,I as R}from"./chunk-2J2ADNZ3.js";import{Ab as u,Dc as m,Ec as l,Jb as o,Kb as e,Lb as v,Za as r,Zb as $,aa as n,kc as s,lc as a,ma as E,nb as y,sa as c,w as d,zb as f}from"./chunk-F5MBSCH4.js";import{h as _}from"./chunk-B4AJQJMI.js";function T(t,h){if(t&1&&(o(0,"div",7),s(1),e()),t&2){let i=$();r(),a(i.error())}}function D(t,h){t&1&&(o(0,"p",9),s(1),m(2,"translate"),e(),o(3,"div",10)(4,"div",11),v(5,"i",12),e()()),t&2&&(r(),a(l(2,1,"restart.please_wait_while_server_restarts")))}function L(t,h){t&1&&(o(0,"div",8),s(1),m(2,"translate"),e()),t&2&&(r(),a(l(2,1,"platform.linux.long_time")))}var q=(()=>{class t{$api=n(R);$router=n(S);$settings=n(k);$toastr=n(C);$translate=n(b);$ws=n(I);destroyRef=n(E);io;timeout=c(!1);error=c(!1);ngOnInit(){this.initialize()}initialize(){return _(this,null,function*(){this.io=this.$ws.connectToNamespace("status"),this.io.connected.subscribe(()=>{this.io.socket.emit("monitor-server-status"),this.$settings.getAppSettings().catch(()=>{})}),this.io.socket.connected&&(this.io.socket.emit("monitor-server-status"),this.$settings.getAppSettings().catch(()=>{}));try{yield this.$api.put("/platform-tools/linux/restart-host",{}),this.checkIfServerUp()}catch(i){console.error(i),this.error.set(this.$translate.instant("platform.linux.server_restart_error")),this.$toastr.error(this.$translate.instant("platform.linux.server_restart_error"),this.$translate.instant("toast.title_error"))}})}ngOnDestroy(){this.io.end()}checkIfServerUp(){d(3e4).pipe(x(this.destroyRef)).subscribe(()=>{this.io.socket.on("homebridge-status",i=>{(i.status==="ok"||i.status==="pending")&&(this.$toastr.success(this.$translate.instant("platform.linux.server_restarted"),this.$translate.instant("toast.title_success")),this.$router.navigate(["/"]))})}),d(12e4).pipe(x(this.destroyRef)).subscribe(()=>{this.$toastr.warning(this.$translate.instant("platform.linux.server_taking_long_time"),this.$translate.instant("toast.title_warning"),{timeOut:1e4}),this.timeout.set(!0)})}static \u0275fac=function(p){return new(p||t)};static \u0275cmp=y({type:t,selectors:[["ng-component"]],decls:14,vars:8,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,"fas","fa-power-off",2,"font-size","75px"],[1,"text-center"],[1,"primary-text","mb-4"],[1,"alert","alert-error","my-4"],[1,"alert","alert-warning","my-4"],[1,"grey-text"],[1,"justify-content-center","my-4"],[1,"restart-progress-box","primary-text"],[1,"fas","fa-circle-notch","fa-spin"]],template:function(p,g){p&1&&(o(0,"div",0)(1,"h3",1),s(2),m(3,"translate"),e()(),o(4,"div",2)(5,"div",3),v(6,"i",4),e(),o(7,"div",5)(8,"h4",6),s(9),m(10,"translate"),e(),f(11,T,2,1,"div",7)(12,D,6,3),f(13,L,3,3,"div",8),e()()),p&2&&(r(2),a(l(3,4,"menu.restart.title")),r(7),a(l(10,6,"platform.linux.restarting_server")),r(2),u(g.error()?11:12),r(2),u(g.timeout()?13:-1))},dependencies:[w],styles:[".restart-progress-box[_ngcontent-%COMP%]{font-size:22px;font-weight:300;margin-top:15px}"]})}return t})();export{q as RestartLinuxComponent};
1
+ import{a as I}from"./chunk-H2UKSDHZ.js";import{e as S}from"./chunk-CAY6MDP6.js";import{a as x}from"./chunk-C64AHVUO.js";import"./chunk-664C4LX2.js";import{b as k}from"./chunk-MAJDTCMY.js";import{C as b,D as w,F as C,I as R}from"./chunk-VWUZDCBZ.js";import{Ab as u,Dc as m,Ec as l,Jb as o,Kb as e,Lb as v,Za as r,Zb as $,aa as n,kc as s,lc as a,ma as E,nb as y,sa as c,w as d,zb as f}from"./chunk-F5MBSCH4.js";import{h as _}from"./chunk-B4AJQJMI.js";function T(t,h){if(t&1&&(o(0,"div",7),s(1),e()),t&2){let i=$();r(),a(i.error())}}function D(t,h){t&1&&(o(0,"p",9),s(1),m(2,"translate"),e(),o(3,"div",10)(4,"div",11),v(5,"i",12),e()()),t&2&&(r(),a(l(2,1,"restart.please_wait_while_server_restarts")))}function L(t,h){t&1&&(o(0,"div",8),s(1),m(2,"translate"),e()),t&2&&(r(),a(l(2,1,"platform.linux.long_time")))}var q=(()=>{class t{$api=n(R);$router=n(S);$settings=n(k);$toastr=n(C);$translate=n(b);$ws=n(I);destroyRef=n(E);io;timeout=c(!1);error=c(!1);ngOnInit(){this.initialize()}initialize(){return _(this,null,function*(){this.io=this.$ws.connectToNamespace("status"),this.io.connected.subscribe(()=>{this.io.socket.emit("monitor-server-status"),this.$settings.getAppSettings().catch(()=>{})}),this.io.socket.connected&&(this.io.socket.emit("monitor-server-status"),this.$settings.getAppSettings().catch(()=>{}));try{yield this.$api.put("/platform-tools/linux/restart-host",{}),this.checkIfServerUp()}catch(i){console.error(i),this.error.set(this.$translate.instant("platform.linux.server_restart_error")),this.$toastr.error(this.$translate.instant("platform.linux.server_restart_error"),this.$translate.instant("toast.title_error"))}})}ngOnDestroy(){this.io.end()}checkIfServerUp(){d(3e4).pipe(x(this.destroyRef)).subscribe(()=>{this.io.socket.on("homebridge-status",i=>{(i.status==="ok"||i.status==="pending")&&(this.$toastr.success(this.$translate.instant("platform.linux.server_restarted"),this.$translate.instant("toast.title_success")),this.$router.navigate(["/"]))})}),d(12e4).pipe(x(this.destroyRef)).subscribe(()=>{this.$toastr.warning(this.$translate.instant("platform.linux.server_taking_long_time"),this.$translate.instant("toast.title_warning"),{timeOut:1e4}),this.timeout.set(!0)})}static \u0275fac=function(p){return new(p||t)};static \u0275cmp=y({type:t,selectors:[["ng-component"]],decls:14,vars:8,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,"fas","fa-power-off",2,"font-size","75px"],[1,"text-center"],[1,"primary-text","mb-4"],[1,"alert","alert-error","my-4"],[1,"alert","alert-warning","my-4"],[1,"grey-text"],[1,"justify-content-center","my-4"],[1,"restart-progress-box","primary-text"],[1,"fas","fa-circle-notch","fa-spin"]],template:function(p,g){p&1&&(o(0,"div",0)(1,"h3",1),s(2),m(3,"translate"),e()(),o(4,"div",2)(5,"div",3),v(6,"i",4),e(),o(7,"div",5)(8,"h4",6),s(9),m(10,"translate"),e(),f(11,T,2,1,"div",7)(12,D,6,3),f(13,L,3,3,"div",8),e()()),p&2&&(r(2),a(l(3,4,"menu.restart.title")),r(7),a(l(10,6,"platform.linux.restarting_server")),r(2),u(g.error()?11:12),r(2),u(g.timeout()?13:-1))},dependencies:[w],styles:[".restart-progress-box[_ngcontent-%COMP%]{font-size:22px;font-weight:300;margin-top:15px}"]})}return t})();export{q as RestartLinuxComponent};
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-5A2G7KDR.js";import"./chunk-B4AJQJMI.js";export default a();
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-3YXAYQFV.js";import"./chunk-B4AJQJMI.js";export default a();
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-QSXJHCTT.js";import"./chunk-B4AJQJMI.js";export default a();
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-YCASP3MF.js";import"./chunk-B4AJQJMI.js";export default a();