homebridge-config-ui-x 4.78.2-beta.9 → 4.79.1-beta.0

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 (100) hide show
  1. package/CHANGELOG.md +23 -7
  2. package/dist/modules/plugins/plugins.service.js +2 -1
  3. package/dist/modules/plugins/plugins.service.js.map +1 -1
  4. package/dist/modules/status/status.service.js +9 -0
  5. package/dist/modules/status/status.service.js.map +1 -1
  6. package/package.json +3 -3
  7. package/public/assets/hap-icons/doorbell.svg +17 -0
  8. package/public/assets/hap-icons/microphone.svg +22 -0
  9. package/public/assets/hap-icons/speaker.svg +27 -12
  10. package/public/assets/hap-icons/vacuum-off.svg +34 -0
  11. package/public/assets/hap-icons/vacuum-on.svg +73 -0
  12. package/public/{chunk-PJQIMQZP.js → chunk-253F4TW4.js} +1 -1
  13. package/public/{chunk-JYBTER4A.js → chunk-2O6DEC53.js} +1 -1
  14. package/public/{chunk-GW2DVJRQ.js → chunk-3UCLNJIE.js} +1 -1
  15. package/public/{chunk-ZLO3MSCJ.js → chunk-54FUOXNU.js} +1 -1
  16. package/public/{chunk-H7HI7Z2I.js → chunk-5UOKGTXX.js} +1 -1
  17. package/public/chunk-66YKFFB6.js +1 -0
  18. package/public/chunk-6GSLZWG6.js +20 -0
  19. package/public/{chunk-LZTR2JMZ.js → chunk-6VMMFEEB.js} +1 -1
  20. package/public/chunk-6ZL3UE7Z.js +12 -0
  21. package/public/chunk-7CWC5NWB.js +1 -0
  22. package/public/{chunk-3DETIAPU.js → chunk-AUY6QHR5.js} +1 -1
  23. package/public/{chunk-E6C35ANJ.js → chunk-AW7UKRRD.js} +1 -1
  24. package/public/{chunk-UD6SVFW2.js → chunk-BG5MCCBU.js} +1 -1
  25. package/public/{chunk-3FAQKTF4.js → chunk-BSLU2V6T.js} +1 -1
  26. package/public/chunk-C3HWKB2Q.js +5 -0
  27. package/public/chunk-CECQK2NF.js +1 -0
  28. package/public/chunk-CHYWVK3W.js +1 -0
  29. package/public/{chunk-X2SHRXXY.js → chunk-CXP6VKNZ.js} +1 -1
  30. package/public/{chunk-IN7NZAFJ.js → chunk-D5MSFLIQ.js} +1 -1
  31. package/public/{chunk-LGEMUUBP.js → chunk-EEMWANCF.js} +1 -1
  32. package/public/{chunk-RPXUM5K2.js → chunk-EMAIPC6N.js} +1 -1
  33. package/public/{chunk-JD5I7S4V.js → chunk-F5DBIGJY.js} +1 -1
  34. package/public/{chunk-F3ERQJVG.js → chunk-FDBWBMB3.js} +1 -1
  35. package/public/{chunk-TQL32BTE.js → chunk-GCXA6QM7.js} +1 -1
  36. package/public/{chunk-WJEDAPKZ.js → chunk-GCZHMMFU.js} +1 -1
  37. package/public/{chunk-X7PVYZAE.js → chunk-GEIS2BWE.js} +1 -1
  38. package/public/chunk-GXBL725Q.js +1 -0
  39. package/public/{chunk-4VQOBSTS.js → chunk-HMWKVMT3.js} +17 -17
  40. package/public/{chunk-GDFV4BMO.js → chunk-HUAADM2I.js} +1 -1
  41. package/public/{chunk-FUQO62GC.js → chunk-I2B4WZUR.js} +1 -1
  42. package/public/chunk-IOGCS6X4.js +1 -0
  43. package/public/{chunk-XCQC3XK6.js → chunk-J3PUN5YF.js} +1 -1
  44. package/public/chunk-J6IQRUII.js +1 -0
  45. package/public/{chunk-QDCKP2LU.js → chunk-J7Q5BUJW.js} +1 -1
  46. package/public/chunk-L42OF23P.js +1 -0
  47. package/public/{chunk-SNQS667C.js → chunk-LAAHDKJ7.js} +1 -1
  48. package/public/{chunk-WHQQA3BC.js → chunk-LAYR2QS6.js} +1 -1
  49. package/public/{chunk-DCR7444I.js → chunk-MQ7GZVQ6.js} +2 -2
  50. package/public/{chunk-H2Q7I4NK.js → chunk-MW6SHOW2.js} +1 -1
  51. package/public/chunk-NM3WGD6K.js +1 -0
  52. package/public/{chunk-O4HR6C67.js → chunk-OATPWII2.js} +1 -1
  53. package/public/chunk-Q4CZ7LVK.js +2 -0
  54. package/public/chunk-QEYPME6E.js +1 -0
  55. package/public/{chunk-OJ7RLRXT.js → chunk-QFOW3BTF.js} +1 -1
  56. package/public/{chunk-7EQ4BJZB.js → chunk-QIOCGI3G.js} +5 -5
  57. package/public/{chunk-URB6RLTT.js → chunk-QUYIBNT3.js} +1 -1
  58. package/public/{chunk-LXXELGX4.js → chunk-R3563DDE.js} +1 -1
  59. package/public/{chunk-V7EA73XV.js → chunk-SDNN2Y3S.js} +1 -1
  60. package/public/{chunk-HXEALMTX.js → chunk-SZDY4LJI.js} +1 -1
  61. package/public/{chunk-NGNQPAAK.js → chunk-THGDS273.js} +1 -1
  62. package/public/{chunk-EWY3FQR2.js → chunk-TNDQV6T3.js} +1 -1
  63. package/public/{chunk-EGCUYKRH.js → chunk-TNNSK2DY.js} +1 -1
  64. package/public/chunk-ULJPS3WS.js +7 -0
  65. package/public/{chunk-QXDUZYIF.js → chunk-UQFCKN5N.js} +1 -1
  66. package/public/chunk-UZX6ALVK.js +1 -0
  67. package/public/{chunk-PWL42RKY.js → chunk-VFAQVUYG.js} +1 -1
  68. package/public/{chunk-UQYCFN3T.js → chunk-WDFAWIMZ.js} +7 -7
  69. package/public/chunk-WFYBML4S.js +1 -0
  70. package/public/{chunk-NDPLSN2D.js → chunk-XMXHM5XL.js} +1 -1
  71. package/public/{chunk-WJ77V4EB.js → chunk-XWWULMQB.js} +1 -1
  72. package/public/{chunk-J6YDFLQQ.js → chunk-YJ2Q2RAD.js} +1 -1
  73. package/public/chunk-YKW6VN4H.js +4 -0
  74. package/public/chunk-YLO62KQ7.js +1 -0
  75. package/public/{chunk-F3DK6724.js → chunk-Z7X5Z3CA.js} +1 -1
  76. package/public/{chunk-4EOWKGS5.js → chunk-ZEOXOJ4I.js} +1 -1
  77. package/public/index.html +2 -2
  78. package/public/main-WT626ZFU.js +1 -0
  79. package/public/{styles-YDIK2EDN.css → styles-ZKWHTEN5.css} +1 -1
  80. package/scripts/upgrade-install-plugin.sh +6 -1
  81. package/public/chunk-2MYGHBCM.js +0 -1
  82. package/public/chunk-4CAEG4FN.js +0 -1
  83. package/public/chunk-4HJCROCG.js +0 -1
  84. package/public/chunk-CF2ZN7LY.js +0 -5
  85. package/public/chunk-E2UX6425.js +0 -4
  86. package/public/chunk-IOOIBANV.js +0 -20
  87. package/public/chunk-LQ5XI7PH.js +0 -1
  88. package/public/chunk-MKTP4XOX.js +0 -1
  89. package/public/chunk-O5HD4H2P.js +0 -12
  90. package/public/chunk-Q3UFAHWJ.js +0 -1
  91. package/public/chunk-RGH5FX6U.js +0 -1
  92. package/public/chunk-ROD4T2CM.js +0 -1
  93. package/public/chunk-SKZUTSHE.js +0 -7
  94. package/public/chunk-SRP6QX5M.js +0 -2
  95. package/public/chunk-T252YJXA.js +0 -1
  96. package/public/chunk-TQNKRJOX.js +0 -1
  97. package/public/chunk-TXF72ANW.js +0 -1
  98. package/public/chunk-U6MXFYEN.js +0 -1
  99. package/public/chunk-VZX2S4ZZ.js +0 -1
  100. package/public/main-HBWLADWE.js +0 -1
@@ -1 +0,0 @@
1
- import{a as ne}from"./chunk-7EQ4BJZB.js";import{g as O,m as G,n as te}from"./chunk-CF2ZN7LY.js";import{A,b as Z,c as I,d as x,e as F,f as P,g as V,j as w,m as z,o as q,p as R,q as L,x as ee,z as N}from"./chunk-T252YJXA.js";import{b as Q}from"./chunk-QXDUZYIF.js";import{b as ie}from"./chunk-X7PVYZAE.js";import{a as ce}from"./chunk-URB6RLTT.js";import{k as U,n as k}from"./chunk-WJEDAPKZ.js";import{a as S,b as $}from"./chunk-LXXELGX4.js";import"./chunk-SRP6QX5M.js";import{Bc as o,Cc as s,Dc as Y,Hb as u,Ib as h,Jb as g,Lb as K,Mb as W,Nb as X,Ob as f,Pb as i,Qb as n,Rb as d,Vb as M,Yb as b,Zb as v,ab as e,cd as j,g as pe,kc as m,la as c,lc as p,mb as E,mc as C,ra as B,sa as T,xc as D}from"./chunk-SKZUTSHE.js";function ue(r,y){r&1&&(i(0,"ngb-alert",13)(1,"p",20),m(2),o(3,"translate"),n()()),r&2&&(f("dismissible",!1),e(2),p(s(3,2,"login.invalid_password")))}var re=(()=>{class r{$activeModal=c(G);$api=c(k);$toastr=c(U);$translate=c(S);invalidCredentials=!1;formGroup=new V({password:new w("",[x.required])});disable2fa(){this.invalidCredentials=!1,this.$api.post("/users/otp/deactivate",this.formGroup.value).subscribe({next:()=>{this.$activeModal.close(),this.$toastr.success(this.$translate.instant("users.setup_2fa_disable_success"),this.$translate.instant("toast.title_success"))},error:()=>{this.formGroup.setValue({password:""}),this.invalidCredentials=!0}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}static \u0275fac=function(a){return new(a||r)};static \u0275cmp=E({type:r,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-fw","fa-key","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],[1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-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(a,l){a&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),m(3),o(4,"translate"),n(),i(5,"button",3),o(6,"translate"),b("click",function(){return l.dismissModal()}),n()(),i(7,"div",4)(8,"div",5),d(9,"i",6),n(),i(10,"ul",7)(11,"li"),m(12),o(13,"translate"),n()(),i(14,"ul",8)(15,"li",9)(16,"label",10),m(17),o(18,"translate"),n(),i(19,"div",11),d(20,"input",12),o(21,"translate"),n()()(),h(22,ue,4,4,"ngb-alert",13),n(),i(23,"div",14)(24,"div",15)(25,"button",16),o(26,"translate"),b("click",function(){return l.dismissModal()}),m(27),o(28,"translate"),n()(),d(29,"div",17),i(30,"div",18)(31,"button",19),b("click",function(){return l.disable2fa()}),m(32),o(33,"translate"),n()()()()),a&2&&(e(3),p(s(4,11,"users.setup_2fa_disable")),e(2),u("aria-label",s(6,13,"form.button_close")),e(7),p(s(13,15,"users.setup_2fa_disable_current_password")),e(5),p(s(18,17,"users.label_password")),e(3),f("formControl",l.formGroup.controls.password)("placeholder",s(21,19,"users.label_password")),e(2),g(l.invalidCredentials&&!l.formGroup.controls.password.value?22:-1),e(3),u("aria-label",s(26,21,"form.button_close")),e(2),C(" ",s(28,23,"form.button_close")," "),e(4),f("disabled",l.formGroup.invalid),e(),C(" ",s(33,25,"form.button_disable")," "))},dependencies:[N,I,F,A,q,$,O],encapsulation:2})}return r})();var ae=pe(ce(),1);var fe=r=>({timeDiffError:r});function be(r,y){r&1&&(i(0,"li"),m(1),o(2,"translate"),n()),r&2&&(e(),p(s(2,1,"users.setup_2fa_scan_qr_code")))}function _e(r,y){if(r&1&&(i(0,"ngb-alert",8)(1,"p",16),m(2),o(3,"translate"),n(),i(4,"p",17),m(5),o(6,"translate"),n()()),r&2){let t=v();f("dismissible",!1),e(2),p(s(3,3,"users.setup_2fa_cannot_setup_2fa")),e(3),p(Y(6,5,"users.setup_2fa_server_time_out",D(8,fe,t.timeDiffError)))}}function ve(r,y){if(r&1&&(i(0,"ul",9)(1,"li",18)(2,"div",19),d(3,"app-qrcode",20),n()(),i(4,"li",21)(5,"label",22),m(6),o(7,"translate"),n(),i(8,"div",23),d(9,"input",24),n()()()),r&2){let t=v();e(3),f("data",t.otpString),e(3),p(s(7,3,"users.setup_2fa_enter_code")),e(3),f("formControl",t.formGroup.controls.code)}}function xe(r,y){if(r&1){let t=M();i(0,"button",25),o(1,"translate"),b("click",function(){B(t);let l=v();return T(l.dismissModal())}),m(2),o(3,"translate"),n()}r&2&&(u("aria-label",s(1,2,"form.button_close")),e(2),C(" ",s(3,4,"form.button_close")," "))}function we(r,y){if(r&1){let t=M();i(0,"button",25),o(1,"translate"),b("click",function(){B(t);let l=v();return T(l.dismissModal())}),m(2),o(3,"translate"),n()}r&2&&(u("aria-label",s(1,2,"form.button_close")),e(2),C(" ",s(3,4,"form.button_close")," "))}function Ce(r,y){if(r&1){let t=M();i(0,"button",26),b("click",function(){B(t);let l=v();return T(l.enable2fa())}),m(1),o(2,"translate"),n()}if(r&2){let t=v();f("disabled",t.formGroup.invalid),e(),C(" ",s(2,2,"form.button_enable")," ")}}var oe=(()=>{class r{$activeModal=c(G);$api=c(k);$toastr=c(U);$translate=c(S);user;timeDiffError=null;otpString;formGroup=new V({code:new w("",[x.required,x.minLength(6),x.maxLength(6)])});ngOnInit(){this.$api.post("/users/otp/setup",{}).subscribe({next:t=>{this.checkTimeDiff(t.timestamp),this.timeDiffError||(this.otpString=t.otpauth)},error:t=>{this.$activeModal.dismiss(),console.error(t),this.$toastr.error(this.$translate.instant("users.setup_2fa_enable_error"),this.$translate.instant("toast.title_error"))}})}enable2fa(){this.$api.post("/users/otp/activate",this.formGroup.value).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("users.setup_2fa_enabled_success"),this.$translate.instant("toast.title_success")),this.$activeModal.close()},error:t=>{console.error(t),this.$toastr.error(this.$translate.instant("users.setup_2fa_activate_error"),this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}checkTimeDiff(t){let a=(0,ae.default)(t).diff(new Date,"millisecond");a<-5e3||a>5e3?this.timeDiffError=a:this.timeDiffError=null}static \u0275fac=function(a){return new(a||r)};static \u0275cmp=E({type:r,selectors:[["ng-component"]],inputs:{user:"user"},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-fw","fa-key","primary-text",2,"font-size","75px"],[1,"mb-3"],["type","error",1,"mb-0",3,"dismissible"],[1,"list-group","list-group-box","mb-0"],[1,"modal-footer","justify-content-between"],[1,"text-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"],[1,"mx-auto",2,"width","175px","height","175px",3,"data"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],[1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-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"],["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(a,l){a&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),m(3),o(4,"translate"),n(),i(5,"button",3),o(6,"translate"),b("click",function(){return l.dismissModal()}),n()(),i(7,"div",4)(8,"div",5),d(9,"i",6),n(),i(10,"ul",7)(11,"li"),m(12),o(13,"translate"),n(),h(14,be,3,3,"li"),n(),h(15,_e,7,10,"ngb-alert",8),h(16,ve,10,5,"ul",9),n(),i(17,"div",10)(18,"div",11),h(19,xe,4,6,"button",12),n(),i(20,"div",13),h(21,we,4,6,"button",12),n(),i(22,"div",14),h(23,Ce,3,4,"button",15),n()()()),a&2&&(e(3),p(s(4,9,"users.setup_2fa")),e(2),u("aria-label",s(6,11,"form.button_close")),e(7),p(s(13,13,"users.setup_2fa_warning")),e(2),g(l.timeDiffError?-1:14),e(),g(l.timeDiffError?15:-1),e(),g(l.timeDiffError?-1:16),e(3),g(l.timeDiffError?-1:19),e(2),g(l.timeDiffError?21:-1),e(2),g(l.timeDiffError?-1:23))},dependencies:[O,ne,N,I,F,ee,A,q,$],encapsulation:2})}return r})();var se=r=>({"is-invalid":r}),le=(()=>{class r{$activeModal=c(G);$api=c(k);$toastr=c(U);$translate=c(S);form=new V({username:new w("",[x.required]),name:new w("",[x.required]),password:new w("",[x.compose([x.required,x.minLength(4)])]),passwordConfirm:new w("",[x.required]),admin:new w(!0)},this.matchPassword);onSubmit({value:t}){this.$api.post("/users",t).subscribe({next:()=>{this.$activeModal.close(),this.$toastr.success(this.$translate.instant("users.toast_added_new_user"),this.$translate.instant("toast.title_success"))},error:a=>{this.$toastr.error(a.error.message||this.$translate.instant("users.toast_failed_to_add_user"),this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}matchPassword(t){let a=t.get("password").value,l=t.get("passwordConfirm").value;if(a!==l)t.get("passwordConfirm").setErrors({matchPassword:!0});else return null}static \u0275fac=function(a){return new(a||r)};static \u0275cmp=E({type:r,selectors:[["ng-component"]],decls:58,vars:50,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-fw","fa-user-plus","primary-text",2,"font-size","75px"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],["for","form-username",1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-start","text-md-end","w-100","w-md-50"],["formControlName","username","type","text","id","form-username","autocomplete","username","autocapitalize","none",1,"form-control","custom-input"],["for","form-name",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","name","type","text","id","form-name","autocomplete","name",1,"form-control","custom-input"],["for","form-pass",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","password","type","password","autocomplete","new-password","id","form-pass",1,"form-control","custom-input",3,"ngClass"],["for","form-pass-confirm",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","passwordConfirm","type","password","autocomplete","new-password","id","form-pass-confirm",1,"form-control","custom-input",3,"ngClass"],[1,"list-group-item","d-flex","justify-content-between","align-items-center","flex-row","pb-2"],[1,"text-start"],[1,"text-end","grey-text","d-flex","align-items-center"],["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(a,l){a&1&&(i(0,"div",0)(1,"form",1),b("ngSubmit",function(){return l.onSubmit(l.form)}),i(2,"div",2)(3,"h5",3),m(4),o(5,"translate"),n(),i(6,"button",4),o(7,"translate"),b("click",function(){return l.dismissModal()}),n()(),i(8,"div",5)(9,"div",6),d(10,"i",7),n(),i(11,"ul",8)(12,"li",9)(13,"label",10),m(14),o(15,"translate"),n(),i(16,"div",11),d(17,"input",12),o(18,"translate"),n()(),i(19,"li",9)(20,"label",13),m(21),o(22,"translate"),n(),i(23,"div",11),d(24,"input",14),o(25,"translate"),n()(),i(26,"li",9)(27,"label",15),m(28),o(29,"translate"),n(),i(30,"div",11),d(31,"input",16),o(32,"translate"),n()(),i(33,"li",9)(34,"label",17),m(35),o(36,"translate"),n(),i(37,"div",11),d(38,"input",18),o(39,"translate"),n()(),i(40,"li",19)(41,"span",20),m(42),o(43,"translate"),n(),i(44,"div",21),d(45,"input",22),o(46,"translate"),d(47,"label",23),n()()()(),i(48,"div",24)(49,"div",20)(50,"button",25),b("click",function(){return l.dismissModal()}),m(51),o(52,"translate"),n()(),d(53,"div",26),i(54,"div",27)(55,"button",28),m(56),o(57,"translate"),n()()()()()),a&2&&(e(),f("formGroup",l.form),e(3),p(s(5,18,"users.title_add_user")),e(2),u("aria-label",s(7,20,"form.button_close")),e(8),p(s(15,22,"users.label_username")),e(3),u("aria-label",s(18,24,"users.label_username")),e(4),p(s(22,26,"users.label_full_name")),e(3),u("aria-label",s(25,28,"users.label_full_name")),e(4),p(s(29,30,"users.label_password")),e(3),f("ngClass",D(46,se,l.form.controls.password.dirty&&l.form.controls.password.errors)),u("aria-label",s(32,32,"users.label_password")),e(4),p(s(36,34,"users.label_confirm_password")),e(3),f("ngClass",D(48,se,l.form.controls.passwordConfirm.dirty&&l.form.controls.passwordConfirm.errors)),u("aria-label",s(39,36,"users.label_confirm_password")),e(4),p(s(43,38,"users.label_admin_user")),e(3),u("aria-label",s(46,40,"users.label_admin_user")),e(6),C(" ",s(52,42,"form.button_close")," "),e(4),f("disabled",!l.form.valid),e(),C(" ",s(57,44,"form.button_save")," "))},dependencies:[N,z,I,F,P,A,R,L,j,$],encapsulation:2})}return r})();var me=r=>({"is-invalid":r});function he(r,y){if(r&1&&(i(0,"li",9)(1,"label",27),m(2),o(3,"translate"),n(),i(4,"div",11),d(5,"input",28),o(6,"translate"),n()()),r&2){let t=v();e(2),p(s(3,3,"users.label_confirm_password")),e(3),f("ngClass",D(7,me,t.form.controls.passwordConfirm.dirty&&t.form.controls.passwordConfirm.errors)),u("aria-label",s(6,5,"users.label_confirm_password"))}}var de=(()=>{class r{$activeModal=c(G);$api=c(k);$auth=c(Q);$toastr=c(U);$translate=c(S);user;isCurrentUser=!1;form=new V({username:new w("",[x.required]),name:new w("",[x.required]),password:new w(""),passwordConfirm:new w(""),admin:new w(!0)},this.matchPassword);ngOnInit(){this.isCurrentUser=this.$auth.user.username===this.user.username,this.form.patchValue(this.user)}onSubmit({value:t}){this.$api.patch(`/users/${this.user.id}`,t).subscribe({next:()=>{this.$activeModal.close(),this.$toastr.success(this.$translate.instant("users.toast_updated_user"),this.$translate.instant("toast.title_success")),this.isCurrentUser&&t.username!==this.$auth.user.username&&this.$auth.logout()},error:a=>{console.error(a),this.$toastr.error(a.error.message||this.$translate.instant("users.toast_failed_to_add_user"),this.$translate.instant("toast.title_error"))}})}dismissModal(){this.$activeModal.dismiss("Dismiss")}matchPassword(t){let a=t.get("password").value,l=t.get("passwordConfirm").value;if(a!==l)t.get("passwordConfirm").setErrors({matchPassword:!0});else return null}static \u0275fac=function(a){return new(a||r)};static \u0275cmp=E({type:r,selectors:[["ng-component"]],inputs:{user:"user"},decls:52,vars:42,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-fw","fa-user-pen","primary-text",2,"font-size","75px"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],["for","form-username",1,"mb-2","mb-md-0","w-100","w-md-50"],[1,"text-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",3,"ngClass"],[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,"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"],["for","form-pass-confirm",1,"mb-2","mb-md-0","w-100","w-md-50"],["formControlName","passwordConfirm","type","password","autocomplete","new-password","id","form-pass-confirm",1,"form-control","custom-input",3,"ngClass"]],template:function(a,l){a&1&&(i(0,"div",0)(1,"form",1),b("ngSubmit",function(){return l.onSubmit(l.form)}),i(2,"div",2)(3,"h5",3),m(4),o(5,"translate"),n(),i(6,"button",4),o(7,"translate"),b("click",function(){return l.dismissModal()}),n()(),i(8,"div",5)(9,"div",6),d(10,"i",7),n(),i(11,"ul",8)(12,"li",9)(13,"label",10),m(14),o(15,"translate"),n(),i(16,"div",11),d(17,"input",12),o(18,"translate"),n()(),i(19,"li",9)(20,"label",13),m(21),o(22,"translate"),n(),i(23,"div",11),d(24,"input",14),o(25,"translate"),n()(),i(26,"li",9)(27,"label",15),m(28),o(29,"translate"),n(),i(30,"div",11),d(31,"input",16),o(32,"translate"),n()(),h(33,he,7,9,"li",9),i(34,"li",17)(35,"span",18),m(36),o(37,"translate"),n(),i(38,"div",19),d(39,"input",20),o(40,"translate"),d(41,"label",21),n()()()(),i(42,"div",22)(43,"div",18)(44,"button",23),b("click",function(){return l.dismissModal()}),m(45),o(46,"translate"),n()(),d(47,"div",24),i(48,"div",25)(49,"button",26),m(50),o(51,"translate"),n()()()()()),a&2&&(e(),f("formGroup",l.form),e(3),p(s(5,16,"users.title_edit_user")),e(2),u("aria-label",s(7,18,"form.button_close")),e(8),p(s(15,20,"users.label_username")),e(3),u("aria-label",s(18,22,"users.label_username")),e(4),p(s(22,24,"users.label_full_name")),e(3),u("aria-label",s(25,26,"users.label_full_name")),e(4),p(s(29,28,"users.label_new_password")),e(3),f("ngClass",D(40,me,l.form.controls.password.dirty&&l.form.controls.password.errors)),u("aria-label",s(32,30,"users.label_new_password")),e(2),g(l.form.controls.password.value?33:-1),e(3),p(s(37,32,"users.label_admin_user")),e(3),u("aria-label",s(40,34,"users.label_admin_user")),e(6),C(" ",s(46,36,"form.button_close")," "),e(4),f("disabled",!l.form.valid),e(),C(" ",s(51,38,"form.button_save")," "))},dependencies:[N,z,I,Z,F,P,A,R,L,j,$],encapsulation:2})}return r})();function ge(r,y){if(r&1){let t=M();i(0,"button",21),b("click",function(){B(t);let l=v().$implicit,_=v();return T(_.setup2fa(l))}),m(1),o(2,"translate"),n()}r&2&&(e(),p(s(2,1,"users.setup_2fa")))}function ye(r,y){if(r&1){let t=M();i(0,"button",17),b("click",function(){B(t);let l=v().$implicit,_=v();return T(_.disable2fa(l))}),m(1),o(2,"translate"),n()}r&2&&(e(),C(" ",s(2,1,"users.setup_2fa_disable")," "))}function Ee(r,y){if(r&1){let t=M();i(0,"div",7)(1,"div",8)(2,"div",9)(3,"div",10)(4,"span",11),d(5,"h4",12)(6,"h5",13),n()(),i(7,"div",14),h(8,ge,3,3,"button",15),h(9,ye,3,3,"button",16),i(10,"div")(11,"button",17),o(12,"translate"),b("click",function(){let l=B(t).$implicit,_=v();return T(_.openEditUser(l))}),d(13,"i",18),n(),i(14,"button",19),o(15,"translate"),b("click",function(){let l=B(t).$implicit,_=v();return T(_.deleteUser(l.id))}),d(16,"i",20),n()()()()()()}if(r&2){let t=y.$implicit,a=v();e(5),f("innerText",t.name),e(),f("innerText",t.username),e(2),g(a.username===t.username&&!t.otpActive?8:-1),e(),g(a.username===t.username&&t.otpActive?9:-1),e(2),u("aria-label",s(12,7,"form.button_edit")),e(3),f("disabled",a.username===t.username),u("aria-label",s(15,9,"form.button_delete"))}}var ht=(()=>{class r{$api=c(k);$auth=c(Q);$modal=c(te);$route=c(ie);$toastr=c(U);$translate=c(S);homebridgeUsers;username=this.$auth.user.username;ngOnInit(){this.$route.data.subscribe(t=>{this.homebridgeUsers=t.homebridgeUsers})}reloadUsers(){return this.$api.get("/users").subscribe(t=>{this.homebridgeUsers=t})}openAddNewUser(){this.$modal.open(le,{size:"lg",backdrop:"static"}).result.finally(()=>{this.reloadUsers()})}openEditUser(t){let a=this.$modal.open(de,{size:"lg",backdrop:"static"});a.componentInstance.user=t,a.result.finally(()=>{this.reloadUsers()})}deleteUser(t){this.$api.delete(`/users/${t}`).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("users.toast_user_deleted"),this.$translate.instant("toast.title_success")),this.reloadUsers()},error:a=>{console.error(a),this.$toastr.error(a.error.message||this.$translate.instant("users.toast_failed_to_delete_user"),this.$translate.instant("toast.title_error"))}})}setup2fa(t){let a=this.$modal.open(oe,{size:"lg",backdrop:"static"});a.componentInstance.user=t,a.result.finally(()=>{this.reloadUsers()})}disable2fa(t){let a=this.$modal.open(re,{size:"lg",backdrop:"static"});a.componentInstance.user=t,a.result.finally(()=>{this.reloadUsers()})}static \u0275fac=function(a){return new(a||r)};static \u0275cmp=E({type:r,selectors:[["app-users"]],decls:12,vars:6,consts:[[1,"row","mb-3"],[1,"col-9"],[1,"primary-text","m-0"],[1,"col-3","text-end"],[1,"btn","btn-elegant","waves-effect","m-0",3,"click"],[1,"fas","fa-fw","fa-user-plus"],[1,"row"],[1,"col-md-6","mb-4"],[1,"card","card-body"],[1,"d-flex","flex-column"],[1,"d-flex","flex-row","mb-3"],[1,"me-auto","my-0"],[3,"innerText"],[1,"small","text-truncate","primary-text",3,"innerText"],[1,"d-flex","flex-row","justify-content-between"],[1,"btn","btn-primary","m-0"],[1,"btn","btn-elegant","m-0"],[1,"btn","btn-elegant","m-0",3,"click"],[1,"fas","fa-fw","fa-user-pen"],[1,"btn","btn-danger","m-0","ms-2",3,"click","disabled"],[1,"fas","fa-fw","fa-trash"],[1,"btn","btn-primary","m-0",3,"click"]],template:function(a,l){a&1&&(i(0,"div",0)(1,"div",1)(2,"h3",2),m(3),o(4,"translate"),n()(),i(5,"div",3)(6,"button",4),o(7,"translate"),b("click",function(){return l.openAddNewUser()}),d(8,"i",5),n()()(),i(9,"div",6),W(10,Ee,17,11,"div",7,K),n()),a&2&&(e(3),p(s(4,2,"users.title_users")),e(3),u("aria-label",s(7,4,"users.button_add_user")),e(4),X(l.homebridgeUsers))},dependencies:[$],encapsulation:2})}return r})();export{ht as UsersComponent};
@@ -1 +0,0 @@
1
- import{a as n}from"./chunk-OJ7RLRXT.js";import"./chunk-QXDUZYIF.js";import{g as r}from"./chunk-X7PVYZAE.js";import"./chunk-URB6RLTT.js";import"./chunk-WJEDAPKZ.js";import"./chunk-LXXELGX4.js";import"./chunk-SRP6QX5M.js";import{ha as o,nb as e}from"./chunk-SKZUTSHE.js";var c=[{path:"",loadComponent:()=>import("./chunk-TXF72ANW.js").then(t=>t.SettingsComponent),canActivate:[n]}],m=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=e({type:t});static \u0275inj=o({imports:[r.forChild(c),r]})}return t})();var l=(()=>{class t{static \u0275fac=function(i){return new(i||t)};static \u0275mod=e({type:t});static \u0275inj=o({imports:[m]})}return t})();export{l as SettingsModule};