homebridge-config-ui-x 5.0.0-beta.89 → 5.0.0-beta.90

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 (111) hide show
  1. package/package.json +4 -4
  2. package/public/{chunk-OHFVMRCL.js → chunk-2EMPNH2X.js} +1 -1
  3. package/public/chunk-2RK3HZEO.js +1 -0
  4. package/public/{chunk-TCQOEK55.js → chunk-3AF2QBDU.js} +1 -1
  5. package/public/chunk-3SQKC2TS.js +1 -0
  6. package/public/chunk-3YAYVLRD.js +1 -0
  7. package/public/{chunk-ML4NBLLV.js → chunk-42N4BQBA.js} +1 -1
  8. package/public/chunk-45VPTZ2V.js +1 -0
  9. package/public/chunk-4CNFMQHX.js +1 -0
  10. package/public/{chunk-ZPJOZVCQ.js → chunk-4FKCTI4U.js} +1 -1
  11. package/public/chunk-4V6GR2SD.js +1 -0
  12. package/public/{chunk-JRQEWFL4.js → chunk-4VKEWS3F.js} +1 -1
  13. package/public/chunk-4XXNIIG7.js +1 -0
  14. package/public/chunk-56VIVSJU.js +1 -0
  15. package/public/{chunk-BFON6KG3.js → chunk-5AQGPMHT.js} +1 -1
  16. package/public/chunk-5GQ5LHPJ.js +1 -0
  17. package/public/chunk-5UZVX47W.js +1 -0
  18. package/public/{chunk-IISDYYR7.js → chunk-7Y6NWNO6.js} +1 -1
  19. package/public/{chunk-F6AZVQGU.js → chunk-A72PCJ6R.js} +1 -1
  20. package/public/chunk-AE26NEIO.js +1 -0
  21. package/public/{chunk-ZCCLGLMW.js → chunk-ANCTYTNR.js} +1 -1
  22. package/public/{chunk-2DDS5K24.js → chunk-B6WBGOVM.js} +1 -1
  23. package/public/{chunk-SHW4IV7S.js → chunk-CEC3XQIL.js} +1 -1
  24. package/public/{chunk-G7HHAO4N.js → chunk-CVKLBLXM.js} +1 -1
  25. package/public/{chunk-UKFO673K.js → chunk-CW7HPG62.js} +1 -1
  26. package/public/chunk-D4RGGBK3.js +1 -0
  27. package/public/{chunk-7OL746BT.js → chunk-D6TU4SM3.js} +1 -1
  28. package/public/{chunk-KITQC5TK.js → chunk-DM5B72RZ.js} +1 -1
  29. package/public/{chunk-6SEBWKRM.js → chunk-DQBVZWYJ.js} +1 -1
  30. package/public/chunk-E4XKX7UK.js +1 -0
  31. package/public/{chunk-PWIUQQUG.js → chunk-EEUYLNDO.js} +1 -1
  32. package/public/{chunk-MMYB2ZMV.js → chunk-EJ3RNOUF.js} +1 -1
  33. package/public/{chunk-AK6OSKBC.js → chunk-EP2F3UQR.js} +1 -1
  34. package/public/{chunk-JQNJUCCC.js → chunk-ET7FWSNM.js} +1 -1
  35. package/public/{chunk-J6ICAYDY.js → chunk-EWUBHGYD.js} +1 -1
  36. package/public/{chunk-6VFBACGI.js → chunk-F7SPUPN4.js} +1 -1
  37. package/public/{chunk-R3JWGCC5.js → chunk-FDPTBVVC.js} +1 -1
  38. package/public/{chunk-XJY7A24W.js → chunk-FIDKTTX5.js} +1 -1
  39. package/public/{chunk-6M524CF7.js → chunk-FMIYWTUO.js} +1 -1
  40. package/public/{chunk-UVZQOJFV.js → chunk-FY5PL5MR.js} +1 -1
  41. package/public/chunk-GGYRCAYF.js +1 -0
  42. package/public/{chunk-KPKQNEWS.js → chunk-GOW5VSYJ.js} +1 -1
  43. package/public/{chunk-KNJE27OR.js → chunk-IF56BKOM.js} +1 -1
  44. package/public/{chunk-NHJ5MWTG.js → chunk-IVCMNRU4.js} +1 -1
  45. package/public/{chunk-2PP6E46M.js → chunk-JFFBCK75.js} +1 -1
  46. package/public/{chunk-5BVWCIG2.js → chunk-JZQGN6ID.js} +1 -1
  47. package/public/{chunk-Z7YI66JY.js → chunk-K25HWAP5.js} +1 -1
  48. package/public/{chunk-4O7NT7TT.js → chunk-L3YFIHHA.js} +1 -1
  49. package/public/{chunk-TIE2WSHM.js → chunk-L7P4OVCU.js} +1 -1
  50. package/public/chunk-LNCIURRX.js +1 -0
  51. package/public/{chunk-GVYGDSJA.js → chunk-LPGZUTF3.js} +1 -1
  52. package/public/{chunk-ISOKJULM.js → chunk-MMXKQEQO.js} +1 -1
  53. package/public/{chunk-ROS3G3S5.js → chunk-NHJTMRLT.js} +1 -1
  54. package/public/{chunk-QSPBB6EE.js → chunk-NR37MAXW.js} +1 -1
  55. package/public/chunk-O7MBAN56.js +1 -0
  56. package/public/{chunk-3OLHI4ZG.js → chunk-P7BL7CLR.js} +1 -1
  57. package/public/chunk-PA52AH7H.js +1 -0
  58. package/public/chunk-PLCPUQJZ.js +1 -0
  59. package/public/chunk-QQ5WKGNO.js +1 -0
  60. package/public/{chunk-6NFDNZBK.js → chunk-SF7DRFC6.js} +1 -1
  61. package/public/chunk-SVB7PE7C.js +1 -0
  62. package/public/chunk-TPK2GQ3K.js +1 -0
  63. package/public/chunk-UT35MQIH.js +1 -0
  64. package/public/{chunk-E7K55IJG.js → chunk-UT52O3FM.js} +1 -1
  65. package/public/{chunk-N4VYMHB2.js → chunk-UVGXL5ZW.js} +1 -1
  66. package/public/{chunk-NY6W3XR5.js → chunk-VB5IQKBP.js} +1 -1
  67. package/public/{chunk-Z5HLQZS5.js → chunk-VOOJDGMJ.js} +1 -1
  68. package/public/chunk-VWFYKFR2.js +1 -0
  69. package/public/{chunk-E72U4F5S.js → chunk-XCSR3FBC.js} +1 -1
  70. package/public/chunk-XOC6FQ7D.js +1 -0
  71. package/public/chunk-XW322JAX.js +1 -0
  72. package/public/chunk-XZIODJCL.js +1 -0
  73. package/public/{chunk-DSBAEBB7.js → chunk-Y6TXYIFY.js} +1 -1
  74. package/public/{chunk-HHPGR3HF.js → chunk-YWKZ3P6I.js} +1 -1
  75. package/public/{chunk-FBCVUHRU.js → chunk-YWOWWE53.js} +1 -1
  76. package/public/{chunk-XZB3EGU2.js → chunk-ZE45ONWQ.js} +1 -1
  77. package/public/{chunk-QY7HUYL5.js → chunk-ZOLUFCSO.js} +1 -1
  78. package/public/chunk-ZVMYOL56.js +1 -0
  79. package/public/{chunk-XR6435L7.js → chunk-ZZCXKIGL.js} +1 -1
  80. package/public/chunk-ZZNJCKGO.js +1 -0
  81. package/public/index.html +1 -1
  82. package/public/main-U47N7JMY.js +1 -0
  83. package/public/chunk-433T3XRK.js +0 -1
  84. package/public/chunk-5FAVAVOU.js +0 -1
  85. package/public/chunk-7TEXX453.js +0 -1
  86. package/public/chunk-A4USEWAM.js +0 -1
  87. package/public/chunk-A7R7JE7J.js +0 -1
  88. package/public/chunk-BPERFY2X.js +0 -1
  89. package/public/chunk-BQD6ZT3W.js +0 -1
  90. package/public/chunk-DG3V7I4H.js +0 -1
  91. package/public/chunk-EGW7H6AL.js +0 -1
  92. package/public/chunk-ES4OXUT3.js +0 -1
  93. package/public/chunk-FRHX6ZFS.js +0 -1
  94. package/public/chunk-G75PSCHK.js +0 -1
  95. package/public/chunk-GHRC34HV.js +0 -1
  96. package/public/chunk-GOOVJ7WG.js +0 -1
  97. package/public/chunk-JNYLGD6A.js +0 -1
  98. package/public/chunk-MDR5IHDC.js +0 -1
  99. package/public/chunk-MMMJKCXE.js +0 -1
  100. package/public/chunk-NWDJUVJU.js +0 -1
  101. package/public/chunk-OKVWPTSO.js +0 -1
  102. package/public/chunk-Q7SELV6D.js +0 -1
  103. package/public/chunk-QVP36XPX.js +0 -1
  104. package/public/chunk-SMOXDAUR.js +0 -1
  105. package/public/chunk-TAELONSP.js +0 -1
  106. package/public/chunk-VX44EUY4.js +0 -1
  107. package/public/chunk-X5H7WG4D.js +0 -1
  108. package/public/chunk-XSRZZIQT.js +0 -1
  109. package/public/chunk-Y6FL44WB.js +0 -1
  110. package/public/chunk-ZQVKXHUS.js +0 -1
  111. package/public/main-SCNMP36C.js +0 -1
@@ -0,0 +1 @@
1
+ import{a as De}from"./chunk-VB5IQKBP.js";import{w as ze}from"./chunk-A72PCJ6R.js";import{b as et}from"./chunk-MMXKQEQO.js";import{a as Ye,b as Ze}from"./chunk-Y6TXYIFY.js";import{g as oe,m as T,n as O,o as Ve}from"./chunk-2EMPNH2X.js";import{A as J,b as K,c as ie,e as q,f as ke,g as pe,i as ye,j as B,k as de,l as ne,m as we,n as Be,o as ae,p as Ee,q as Ie,r as $e,s as Te,t as Fe,u as Me,v as Ae,z as re}from"./chunk-EJ3RNOUF.js";import{d as H,e as Ne}from"./chunk-ZOLUFCSO.js";import{a as Pe}from"./chunk-XCSR3FBC.js";import{b as Q}from"./chunk-42N4BQBA.js";import{h as M,j as Re,k as A}from"./chunk-3YAYVLRD.js";import{c as Ce,d as Se}from"./chunk-FDPTBVVC.js";import{a as F,b as I}from"./chunk-GOW5VSYJ.js";import{$a as t,Ac as r,Bc as o,Cc as z,Gb as f,Hb as b,Ib as h,Kb as R,Lb as P,M as j,Mb as D,Nb as u,Ob as i,Pb as n,Qb as d,Ub as y,Xa as _e,Xb as x,Ya as ge,Yb as g,ac as be,bc as he,bd as L,cc as fe,g as le,gd as te,h as w,id as ve,jc as l,kc as c,la as C,lb as E,lc as _,qc as Y,ra as S,rc as Z,sa as k,sc as ee,vc as xe,w as N,wc as V,xc as $,yc as G}from"./chunk-NR37MAXW.js";var ce=le(et(),1);var Ue=le(Ye(),1),He=le(Ze(),1);var tt=a=>({maxBackupSizeText:a});function it(a,m){if(a&1&&d(0,"input",10),a&2){let e=g(2);u("value",e.selectedBackup.fileName)}}function nt(a,m){if(a&1){let e=y();i(0,"input",12),x("change",function(p){S(e);let v=g(2);return k(v.handleRestoreFileInput(p.target.files))}),n()}}function at(a,m){if(a&1&&(i(0,"div",4)(1,"div",7),d(2,"i",8),n(),i(3,"ul",9)(4,"li"),l(5),r(6,"translate"),n(),i(7,"li"),l(8),r(9,"translate"),n(),i(10,"li"),l(11),r(12,"translate"),n(),i(13,"li"),l(14),r(15,"translate"),n()(),b(16,it,1,1,"input",10),b(17,nt,1,0,"input",11),n()),a&2){let e=g();t(5),c(o(6,6,"backup.restore_help_one")),t(3),c(o(9,8,"backup.restore_help_two")),t(3),c(z(12,10,"backup.restore_max_size",V(15,tt,e.maxFileSizeText))),t(3),c(o(15,13,"backup.restore_warning")),t(2),h(e.selectedBackup?16:-1),t(),h(e.selectedBackup?-1:17)}}function rt(a,m){if(a&1){let e=y();i(0,"button",18),r(1,"translate"),x("click",function(){S(e);let p=g(2);return k(p.$activeModal.dismiss("Dismiss"))}),l(2),r(3,"translate"),n()}if(a&2){let e=g(2);u("disabled",e.clicked),f("aria-label",o(1,3,"form.button_close")),t(2),_(" ",o(3,5,"form.button_close")," ")}}function ot(a,m){if(a&1){let e=y();i(0,"button",18),r(1,"translate"),x("click",function(){S(e);let p=g(2);return k(p.reopenBackupModal())}),l(2),r(3,"translate"),n()}if(a&2){let e=g(2);u("disabled",e.clicked),f("aria-label",o(1,3,"form.button_back")),t(2),_(" ",o(3,5,"form.button_back")," ")}}function st(a,m){a&1&&d(0,"i",19)}function lt(a,m){if(a&1&&(i(0,"span"),l(1),n()),a&2){let e=g(3);t(),_("",e.uploadPercent,"% - ")}}function pt(a,m){a&1&&(i(0,"span"),l(1," Extracting Archive"),n())}function dt(a,m){a&1&&(i(0,"span"),l(1),r(2,"translate"),n()),a&2&&(t(),_(" ",o(2,1,"backup.label_uploading")))}function ct(a,m){if(a&1&&(i(0,"span"),b(1,st,1,0,"i",19),b(2,lt,2,1,"span"),b(3,pt,2,0,"span"),b(4,dt,3,3,"span"),n()),a&2){let e=g(2);t(),h(!e.uploadPercent||e.uploadPercent===100?1:-1),t(),h(e.uploadPercent&&e.uploadPercent!==100?2:-1),t(),h(e.uploadPercent===100?3:-1),t(),h(e.uploadPercent!==100?4:-1)}}function mt(a,m){a&1&&(l(0),r(1,"translate")),a&2&&_(" ",o(1,1,"form.button_restore")," ")}function ut(a,m){if(a&1){let e=y();i(0,"div",6)(1,"div",13),b(2,rt,4,7,"button",14),b(3,ot,4,7,"button",14),n(),d(4,"div",15),i(5,"div",16)(6,"button",17),x("click",function(){S(e);let p=g();return k(p.onRestoreBackupClick())}),b(7,ct,5,4,"span"),b(8,mt,2,3),n()()()}if(a&2){let e=g();t(2),h(e.setupWizardRestore?2:-1),t(),h(e.setupWizardRestore?-1:3),t(3),u("disabled",!e.selectedBackup&&!e.selectedFile||e.clicked),t(),h(e.clicked?7:-1),t(),h(e.clicked?-1:8)}}function _t(a,m){if(a&1){let e=y();i(0,"div",6),d(1,"div",13),i(2,"div",15)(3,"button",20),x("click",function(){S(e);let p=g();return k(p.postBackupRestart())}),l(4),r(5,"translate"),n()(),d(6,"div",16),n()}a&2&&(t(4),_(" ",o(5,1,"menu.hbrestart.title")," "))}var Le=(()=>{class a{$activeModal=C(T);$api=C(A);$modal=C(O);$route=C(H);$toastr=C(M);$translate=C(F);$ws=C(Pe);setupWizardRestore=!1;selectedBackup=null;clicked=!1;maxFileSizeText=globalThis.backup.maxBackupSizeText;selectedFile;restoreInProgress=!1;restoreStarted=!1;restoreFailed=!1;restoreArchiveType="homebridge";uploadPercent=0;term=new Ue.Terminal;termTarget;fitAddon=new He.FitAddon;io;constructor(){}ngOnInit(){return w(this,null,function*(){this.io=this.$ws.connectToNamespace("backup"),this.termTarget=document.getElementById("plugin-log-output"),this.term.open(this.termTarget),this.fitAddon.fit(),this.io.socket.on("stdout",e=>{this.term.write(e)}),this.setupWizardRestore&&(this.restoreStarted=!0,this.restoreInProgress=!0,this.startRestore())})}onRestoreBackupClick(){this.selectedBackup?this.restoreScheduledBackup():this.restoreArchiveType==="homebridge"?this.uploadHomebridgeArchive():this.restoreArchiveType==="hbfx"&&this.uploadHbfxArchive()}uploadHomebridgeArchive(){this.term.reset(),this.clicked=!0;let e=new FormData;e.append("restoreArchive",this.selectedFile,this.selectedFile.name),this.$api.post("/backup/restore",e).subscribe({next:()=>{this.restoreStarted=!0,this.restoreInProgress=!0,setTimeout(()=>{this.startRestore()},500),this.clicked=!1},error:s=>{console.error(s),this.$toastr.error(s.error?.message||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error")),this.clicked=!1}})}restoreScheduledBackup(){return w(this,null,function*(){this.term.reset(),this.clicked=!0,this.$api.post(`/backup/scheduled-backups/${this.selectedBackup.id}/restore`,{}).subscribe({next:()=>{this.restoreStarted=!0,this.restoreInProgress=!0,setTimeout(()=>{this.startRestore()},500),this.clicked=!1},error:e=>{console.error(e),this.$toastr.error(e.error?.message||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error")),this.clicked=!1}})})}startRestore(){return w(this,null,function*(){this.io.request("do-restore").subscribe({next:()=>{this.restoreInProgress=!1,this.$toastr.success(this.$translate.instant("backup.backup_restored"),this.$translate.instant("toast.title_success")),this.setupWizardRestore&&this.postBackupRestart()},error:e=>{this.restoreFailed=!0,console.error(e),this.$toastr.error(this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})})}uploadHbfxArchive(){this.term.reset(),this.clicked=!0;let e=new FormData;e.append("restoreArchive",this.selectedFile,this.selectedFile.name),this.$api.post("/backup/restore/hbfx",e,{reportProgress:!0,observe:"events"}).subscribe({next:s=>{s.type===Ce.UploadProgress?this.uploadPercent=Math.round(100*s.loaded/s.total):s instanceof Se&&(this.restoreStarted=!0,this.restoreInProgress=!0,setTimeout(()=>{this.startHbfxRestore()},500),this.clicked=!1)},error:s=>{this.clicked=!1,console.error(s),this.$toastr.error(s.error?.message||this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})}startHbfxRestore(){return w(this,null,function*(){this.io.request("do-restore-hbfx").subscribe({next:()=>{this.restoreInProgress=!1,this.$toastr.success(this.$translate.instant("backup.backup_restored"),this.$translate.instant("toast.title_success"))},error:e=>{this.restoreFailed=!0,console.error(e),this.$toastr.error(this.$translate.instant("backup.restore_failed"),this.$translate.instant("toast.title_error"))}})})}handleRestoreFileInput(e){e.length?(this.selectedFile=e[0],this.selectedFile.name.endsWith(".hbfx")?this.restoreArchiveType="hbfx":this.restoreArchiveType="homebridge"):delete this.selectedFile}postBackupRestart(){this.$api.put("/backup/restart",{}).subscribe({next:()=>{this.$activeModal.close(!0),this.$route.navigate(["/"])},error:()=>{}})}reopenBackupModal(){this.$activeModal.dismiss(),this.$modal.open(se,{size:"lg",backdrop:"static"})}ngOnDestroy(){this.io.end()}static \u0275fac=function(s){return new(s||a)};static \u0275cmp=E({type:a,selectors:[["ng-component"]],inputs:{setupWizardRestore:"setupWizardRestore",selectedBackup:"selectedBackup"},decls:11,vars:11,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],["id","plugin-log-output",1,"modal-body",3,"hidden"],[1,"modal-footer","justify-content-between"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-hard-drive","primary-text",2,"font-size","75px"],[1,"mb-3"],["type","text","disabled","",1,"form-control","custom-input",3,"value"],["type","file","id","restoreFileUpload","accept","application/gzip, .gz, .hbfx",1,"form-control"],["type","file","id","restoreFileUpload","accept","application/gzip, .gz, .hbfx",1,"form-control",3,"change"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"disabled"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"fa","fa-fw","fa-circle-notch","fa-spin"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click"]],template:function(s,p){s&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),l(3),r(4,"translate"),n(),i(5,"button",3),r(6,"translate"),x("click",function(){return p.$activeModal.dismiss("Dismiss")}),n()(),b(7,at,18,17,"div",4),d(8,"div",5),b(9,ut,9,5,"div",6),b(10,_t,7,3,"div",6),n()),s&2&&(t(3),c(o(4,7,"backup.title_backup")),t(2),u("disabled",p.restoreInProgress),f("aria-label",o(6,9,"form.button_close")),t(2),h(!p.restoreStarted&&!p.setupWizardRestore?7:-1),t(),u("hidden",!p.restoreStarted),t(),h(!p.restoreStarted||p.restoreFailed===!0?9:-1),t(),h(!p.restoreInProgress&&p.restoreStarted?10:-1))},dependencies:[I],encapsulation:2})}return a})();var gt=(a,m)=>({"fa-arrow-right":a,"fa-cog fa-spin":m}),bt=a=>({backupTime:a,dayCount:7}),ht=(a,m)=>({"fa-trash":a,"fa-cog fa-spin":m}),ft=(a,m)=>({backupSize:a,maxBackupSizeText:m});function xt(a,m){if(a&1&&(i(0,"li",23)(1,"label",28),l(2),r(3,"translate"),n(),i(4,"div",29),d(5,"input",30),r(6,"translate"),n()()),a&2){let e=g();t(2),c(o(3,3,"backup.settings_path")),t(3),u("formControl",e.pathFormControl),f("aria-label",o(6,5,"backup.settings_path"))}}function vt(a,m){if(a&1&&(l(0),r(1,"date"),r(2,"translate")),a&2){let e=g(2);_(" ",z(2,4,"backup.scheduled_backup_time",V(7,bt,z(1,1,e.backupTime,"shortTime")))," ")}}function Ct(a,m){a&1&&(l(0),r(1,"translate")),a&2&&_(" ",o(1,1,"backup.scheduled_backup_disabled")," ")}function St(a,m){if(a&1&&(i(0,"span",33),r(1,"translate"),d(2,"i",40),l(3),n()),a&2){let e=g().$implicit;u("ngbTooltip",z(1,2,"backup.backup_exceeds_max_size",$(5,ft,e.size+"MB",e.maxBackupSizeText))),t(3),_(" ",e.size,"MB ")}}function kt(a,m){if(a&1&&(i(0,"span"),l(1),n()),a&2){let e=g().$implicit;t(),_(" ",e.size,"MB ")}}function yt(a,m){if(a&1){let e=y();i(0,"li",9)(1,"span")(2,"span",32),l(3),r(4,"date"),n(),d(5,"br"),i(6,"small",10),l(7),r(8,"date"),b(9,St,4,8,"span",33),b(10,kt,2,1,"span"),n()(),i(11,"span",34)(12,"button",35),r(13,"translate"),r(14,"translate"),x("click",function(){let p=S(e).$implicit,v=g(2);return k(v.restore(p))}),d(15,"i",36),n(),i(16,"button",37),r(17,"translate"),r(18,"translate"),x("click",function(){let p=S(e).$implicit,v=g(2);return k(v.download(p))}),d(19,"i",38),n(),i(20,"button",39),r(21,"translate"),r(22,"translate"),x("click",function(){let p=S(e).$implicit,v=g(2);return k(v.delete(p))}),d(23,"i",12),n()()()}if(a&2){let e=m.$implicit,s=g(2);t(2),u("ngbTooltip",e.fileName),t(),_(" ",z(4,15,e.timestamp,"mediumDate")," "),t(4),_(" ",z(8,18,e.timestamp,"shortTime")," \xB7 "),t(2),h(e.size>e.maxBackupSize?9:-1),t(),h(e.size<=e.maxBackupSize?10:-1),t(2),u("disabled",s.clicked||s.deleting||e.size>e.maxBackupSize)("ngbTooltip",o(13,21,"form.button_restore")),f("aria-label",o(14,23,"form.button_restore")),t(4),u("disabled",s.clicked||s.deleting)("ngbTooltip",o(17,25,"form.button_download")),f("aria-label",o(18,27,"form.button_download")),t(4),u("disabled",s.clicked||s.deleting)("ngbTooltip",o(21,29,"form.button_delete")),f("aria-label",o(22,31,"form.button_delete")),t(3),u("ngClass",$(33,ht,e.id!==s.deleting,e.id===s.deleting))}}function wt(a,m){if(a&1&&(i(0,"ul",14)(1,"li",15)(2,"h6",16),l(3),r(4,"translate"),n(),i(5,"p",31),b(6,vt,3,9),b(7,Ct,2,3),n()(),P(8,yt,24,36,"li",9,R),n()),a&2){let e=g();t(3),c(o(4,3,"backup.files_auto")),t(3),h(e.currentSettingEnabled&&e.backupTime?6:-1),t(),h(!e.currentSettingEnabled||!e.backupTime?7:-1),t(),D(e.scheduledBackups)}}var se=(()=>{class a{$activeModal=C(T);$api=C(A);$modal=C(O);$settings=C(Q);$toastr=C(M);$translate=C(F);clicked=!1;scheduledBackups=[];backupTime;deleting=null;currentSettingEnabled=!1;currentSettingPath="";enabledFormControl=new B(!1);pathFormControl=new B("");constructor(){}ngOnInit(){this.getScheduledBackups(),this.getNextBackup(),this.currentSettingEnabled=!this.$settings.env.scheduledBackupDisable,this.currentSettingPath=this.$settings.env.scheduledBackupPath,this.enabledFormControl.patchValue(this.currentSettingEnabled),this.pathFormControl.patchValue(this.currentSettingPath),this.enabledFormControl.valueChanges.pipe(j(400)).subscribe(e=>w(this,null,function*(){this.currentSettingEnabled=e,yield this.saveUiSettingChange("scheduledBackupDisable",!this.currentSettingEnabled)})),this.pathFormControl.valueChanges.pipe(j(400)).subscribe(e=>w(this,null,function*(){this.currentSettingPath=e,yield this.saveUiSettingChange("scheduledBackupPath",this.currentSettingPath)}))}saveUiSettingChange(e,s){return w(this,null,function*(){try{yield N(this.$api.put("/config-editor/ui",{key:e,value:s}))}catch(p){console.error(p),this.$toastr.error(p.message,this.$translate.instant("toast.title_error"))}})}getScheduledBackups(){this.$api.get("/backup/scheduled-backups").subscribe({next:e=>{this.scheduledBackups=e},error:e=>console.error(e)})}getNextBackup(){this.$api.get("/backup/scheduled-backups/next").subscribe({next:e=>{this.backupTime=e.next},error:e=>{console.error(e)}})}download(e){this.$api.get(`/backup/scheduled-backups/${e.id}`,{observe:"response",responseType:"blob"}).subscribe({next:s=>{let p=e.fileName||"homebridge-backup.tar.gz",v=s.body.size;if(v>globalThis.backup.maxBackupSize){let U=this.$translate.instant("backup.backup_exceeds_max_size",{maxBackupSizeText:globalThis.backup.maxBackupSizeText,size:`${(v/1048576).toFixed(1)}MB`});this.$toastr.warning(U,this.$translate.instant("toast.title_warning"))}(0,ce.saveAs)(s.body,p)},error:s=>{console.error(s),this.$toastr.error(this.$translate.instant("backup.backup_download_failed"),this.$translate.instant("toast.title_error"))}})}restore(e){this.$activeModal.close();let s=this.$modal.open(Le,{size:"lg",backdrop:"static"});s.componentInstance.selectedBackup=e}delete(e){this.deleting=e.id,this.$api.delete(`/backup/scheduled-backups/${e.id}`).subscribe({next:()=>{this.getScheduledBackups(),this.deleting=null},error:s=>{this.deleting=null,console.error(s),this.$toastr.error(this.$translate.instant("backup.backup_delete_failed"),this.$translate.instant("toast.title_error"))}})}onDownloadBackupClick(){return w(this,null,function*(){this.clicked=!0,this.$api.get("/backup/download",{observe:"response",responseType:"blob"}).subscribe({next:e=>{let s=e.headers.get("File-Name")||"homebridge-backup.tar.gz";this.clicked=!1;let p=e.body.size;if(p>globalThis.backup.maxBackupSize){let v=this.$translate.instant("backup.backup_exceeds_max_size",{maxBackupSizeText:globalThis.backup.maxBackupSizeText,size:`${(p/1048576).toFixed(1)}MB`});this.$toastr.warning(v,this.$translate.instant("toast.title_warning"))}(0,ce.saveAs)(e.body,s)},error:e=>{this.clicked=!1,console.error(e),this.$toastr.error(this.$translate.instant("backup.backup_download_failed"),this.$translate.instant("toast.title_error"))}})})}Date=Date;static \u0275fac=function(s){return new(s||a)};static \u0275cmp=E({type:a,selectors:[["ng-component"]],decls:70,vars:59,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-hard-drive","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box","mb-0"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"grey-text"],[1,"btn","btn-primary","m-0","ms-3",3,"click","disabled"],[1,"fas","fa-fw",3,"ngClass"],[1,"fas","fa-fw","fa-arrow-right"],[1,"list-group","list-group-box","mt-3","mb-0"],[1,"list-group-item"],[1,"mb-1","text-center"],[1,"mb-0","small","grey-text","text-center"],[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","disableScheduledBackups",1,"rendux-input",3,"formControl"],["for","disableScheduledBackups",1,"rendux-label"],[1,"list-group-item","d-flex","flex-column","flex-md-row","align-items-center"],[1,"modal-footer","justify-content-between"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-end"],[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","/home/pi/homebridge-backups",1,"form-control","custom-input",3,"formControl"],[1,"small","grey-text","mb-0","text-center"],["container","modal","openDelay","150","triggers","hover",3,"ngbTooltip"],["container","modal","openDelay","150","triggers","hover",1,"red-text",3,"ngbTooltip"],[2,"display","flex","flex-wrap","nowrap"],["placement","bottom","container","modal","openDelay","150","triggers","hover",1,"btn","btn-primary","m-0","ms-3",3,"click","disabled","ngbTooltip"],[1,"fas","fa-fw","fa-history"],["placement","bottom","container","modal","openDelay","150","triggers","hover",1,"btn","btn-primary","m-0","ms-2",3,"click","disabled","ngbTooltip"],[1,"fas","fa-fw","fa-download"],["placement","bottom","container","modal","openDelay","150","triggers","hover",1,"btn","btn-danger","m-0","ms-2",3,"click","disabled","ngbTooltip"],[1,"fas","fa-fw","fa-exclamation-circle"]],template:function(s,p){s&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),l(3),r(4,"translate"),n(),i(5,"button",3),r(6,"translate"),x("click",function(){return p.$activeModal.dismiss("Dismiss")}),n()(),i(7,"div",4)(8,"div",5),d(9,"i",6),n(),i(10,"ul",7)(11,"li"),l(12),r(13,"translate"),n(),i(14,"li"),l(15),r(16,"translate"),n(),i(17,"li"),l(18),r(19,"translate"),n()(),i(20,"ul",8)(21,"li",9)(22,"div")(23,"span"),l(24),r(25,"translate"),n(),d(26,"br"),i(27,"small",10),l(28),r(29,"translate"),n()(),i(30,"button",11),r(31,"translate"),x("click",function(){return p.onDownloadBackupClick()}),d(32,"i",12),n()(),i(33,"li",9)(34,"div")(35,"span"),l(36),r(37,"translate"),n(),d(38,"br"),i(39,"small",10),l(40),r(41,"translate"),n()(),i(42,"button",11),r(43,"translate"),x("click",function(){return p.restore(null)}),d(44,"i",13),n()()(),i(45,"ul",14)(46,"li",15)(47,"h6",16),l(48),r(49,"translate"),n(),i(50,"p",17),l(51),r(52,"translate"),n()(),i(53,"li",18)(54,"span",19),l(55),r(56,"translate"),n(),i(57,"div",20),d(58,"input",21),r(59,"translate"),d(60,"label",22),n()(),b(61,xt,7,7,"li",23),n(),b(62,wt,10,5,"ul",14),n(),i(63,"div",24),d(64,"div",19),i(65,"div",25)(66,"button",26),x("click",function(){return p.$activeModal.dismiss("Dismiss")}),l(67),r(68,"translate"),n()(),d(69,"div",27),n()()),s&2&&(t(3),c(o(4,24,"backup.title_backup")),t(2),u("disabled",p.clicked||p.deleting),f("aria-label",o(6,26,"form.button_close")),t(7),c(o(13,28,"backup.backup_help_one")),t(3),c(o(16,30,"backup.backup_help_two")),t(3),c(o(19,32,"backup.backup_warning")),t(6),c(o(25,34,"backup.backup_now")),t(4),c(o(29,36,"backup.backup_now_desc")),t(2),u("disabled",p.clicked),f("aria-label",o(31,38,"backup.backup_now")),t(2),u("ngClass",$(56,gt,!p.clicked,p.clicked)),t(4),c(o(37,40,"backup.restore_now")),t(4),c(o(41,42,"backup.restore_now_desc")),t(2),u("disabled",p.clicked),f("aria-label",o(43,44,"backup.restore_now")),t(6),c(o(49,46,"backup.settings_title")),t(3),c(o(52,48,"form.auto_save")),t(4),c(o(56,50,"backup.settings_enable")),t(3),u("formControl",p.enabledFormControl),f("aria-label",o(59,52,"backup.settings_enable")),t(3),h(p.currentSettingEnabled?61:-1),t(),h(p.scheduledBackups.length?62:-1),t(4),u("disabled",p.clicked||p.deleting),t(),_(" ",o(68,54,"form.button_close")," "))},dependencies:[Ve,L,ve,I,J,ie,K,q,ae],encapsulation:2})}return a})();function Bt(a,m){a&1&&(i(0,"div",12),d(1,"i",13),n(),i(2,"p",14),l(3),r(4,"translate"),n()),a&2&&(t(3),c(o(4,1,"reset.no_accessories")))}function Et(a,m){a&1&&(i(0,"div",12),d(1,"i",15),n(),i(2,"ul",16)(3,"li"),l(4),r(5,"translate"),n(),i(6,"li"),l(7),r(8,"translate"),n(),i(9,"li"),l(10),r(11,"translate"),n()(),i(12,"ngb-alert",17)(13,"p",18),l(14),r(15,"translate"),n()()),a&2&&(t(4),c(o(5,5,"reset.accessory_all.list_1")),t(3),c(o(8,7,"reset.accessory_all.list_2")),t(3),c(o(11,9,"reset.accessory_all.list_3")),t(2),u("dismissible",!1),t(2),c(o(15,11,"reset.action_is_irreversible")))}function It(a,m){if(a&1){let e=y();i(0,"button",19),r(1,"translate"),x("click",function(){S(e);let p=g();return k(p.$activeModal.dismiss("Dismiss"))}),l(2),r(3,"translate"),n()}if(a&2){let e=g();u("disabled",e.clicked),f("aria-label",o(1,3,"form.button_close")),t(2),_(" ",o(3,5,"form.button_close")," ")}}function $t(a,m){if(a&1){let e=y();i(0,"button",20),r(1,"translate"),x("click",function(){S(e);let p=g();return k(p.$activeModal.dismiss("Dismiss"))}),l(2),r(3,"translate"),n()}a&2&&(f("aria-label",o(1,2,"form.button_close")),t(2),_(" ",o(3,4,"form.button_close")," "))}function Tt(a,m){a&1&&(l(0),r(1,"translate")),a&2&&_(" ",o(1,1,"form.button_remove")," ")}function Ft(a,m){a&1&&d(0,"i",22)}function Mt(a,m){if(a&1){let e=y();i(0,"button",21),x("click",function(){S(e);let p=g();return k(p.onResetCachedAccessoriesClick())}),b(1,Tt,2,3),b(2,Ft,1,0,"i",22),n()}if(a&2){let e=g();u("disabled",e.clicked),t(),h(e.clicked?-1:1),t(),h(e.clicked?2:-1)}}var We=(()=>{class a{$activeModal=C(T);$api=C(A);$router=C(H);$toastr=C(M);$translate=C(F);clicked=!1;cachedAccessories=[];constructor(){}ngOnInit(){this.loadCachedAccessories()}loadCachedAccessories(){return w(this,null,function*(){try{this.cachedAccessories=yield N(this.$api.get("/server/cached-accessories"))}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("reset.error_message"),this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}onResetCachedAccessoriesClick(){return this.clicked=!0,this.$api.put("/server/reset-cached-accessories",{}).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("reset.delete_success"),this.$translate.instant("toast.title_success")),this.$activeModal.close(),this.$router.navigate(["/restart"],{queryParams:{restarting:!0}})},error:e=>{this.clicked=!1,console.error(e),this.$toastr.error(this.$translate.instant("reset.failed_to_reset"),this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(s){return new(s||a)};static \u0275cmp=E({type:a,selectors:[["ng-component"]],decls:17,vars:12,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"disabled"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"disabled"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-circle-check","primary-text",2,"font-size","75px"],[1,"mb-0","text-center"],[1,"fas","fa-fw","fa-network-wired","primary-text",2,"font-size","75px"],[1,"mb-3"],["type","error",1,"mb-0",3,"dismissible"],[1,"text-center","mb-0"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[1,"fas","fa-fw","fa-spinner","fa-pulse"]],template:function(s,p){s&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),l(3),r(4,"translate"),n(),i(5,"button",3),r(6,"translate"),x("click",function(){return p.$activeModal.dismiss("Dismiss")}),n()(),i(7,"div",4),b(8,Bt,5,3),b(9,Et,16,13),n(),i(10,"div",5)(11,"div",6),b(12,It,4,7,"button",7),n(),i(13,"div",8),b(14,$t,4,6,"button",9),n(),i(15,"div",10),b(16,Mt,3,3,"button",11),n()()()),s&2&&(t(3),c(o(4,8,"reset.accessory_all.title")),t(2),u("disabled",p.clicked),f("aria-label",o(6,10,"form.button_close")),t(3),h(p.cachedAccessories.length===0?8:-1),t(),h(p.cachedAccessories.length>0?9:-1),t(3),h(p.cachedAccessories.length>0?12:-1),t(2),h(p.cachedAccessories.length===0?14:-1),t(2),h(p.cachedAccessories.length>0?16:-1))},dependencies:[oe,I],encapsulation:2})}return a})();var At=(a,m)=>({"green-text":a,"grey-text":m}),Vt=(a,m)=>({"btn-danger":a,"btn-elegant":m}),Nt=(a,m,e)=>({"fa-broom":a,"fa-undo":m,"fa-spinner fa-pulse":e});function Rt(a,m){a&1&&(i(0,"div",12),d(1,"i",13),n(),i(2,"p",14),l(3),r(4,"translate"),n()),a&2&&(t(3),c(o(4,1,"reset.bridge_accessories.empty")))}function Pt(a,m){if(a&1){let e=y();i(0,"li",18)(1,"span"),l(2),d(3,"br"),i(4,"small",19),d(5,"i",20),l(6),r(7,"translate"),i(8,"span",21),l(9),n()()(),i(10,"button",22),r(11,"translate"),x("click",function(){let p=S(e).$implicit,v=g(2);return k(v.toggleList(p._id))}),d(12,"i",23),n()()}if(a&2){let e=m.$implicit,s=g(2);t(2),_(" ",e.name," "),t(3),u("ngClass",$(12,At,e._isPaired,!e._isPaired)),t(),_(" ",o(7,8,e._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired")," \xB7 "),t(3),c(e._username),t(),u("disabled",s.clicked)("ngClass",$(15,Vt,!s.toDelete.includes(e._id),s.toDelete.includes(e._id))),f("aria-label",o(11,10,"form.button_delete")),t(2),u("ngClass",G(18,Nt,!s.toDelete.includes(e._id),s.toDelete.includes(e._id)&&!s.clicked,s.toDelete.includes(e._id)&&s.clicked))}}function Dt(a,m){if(a&1&&(i(0,"div",12),d(1,"i",15),n(),i(2,"ul",16)(3,"li"),l(4),r(5,"translate"),n(),i(6,"li"),l(7),r(8,"translate"),n(),i(9,"li"),l(10),r(11,"translate"),n()(),i(12,"ul",17),P(13,Pt,13,22,"li",18,R),n()),a&2){let e=g();t(4),c(o(5,3,"reset.bridge_accessories.list_1")),t(3),c(o(8,5,"reset.clear_cache_single.list_3")),t(3),c(o(11,7,"reset.bridge_accessories.list_2")),t(3),D(e.pairings)}}function zt(a,m){if(a&1){let e=y();i(0,"button",24),x("click",function(){S(e);let p=g();return k(p.$activeModal.dismiss("Dismiss"))}),l(1),r(2,"translate"),n()}if(a&2){let e=g();u("disabled",e.clicked),t(),_(" ",o(2,2,"form.button_close")," ")}}function Ut(a,m){if(a&1){let e=y();i(0,"button",25),x("click",function(){S(e);let p=g();return k(p.$activeModal.dismiss("Dismiss"))}),l(1),r(2,"translate"),n()}a&2&&(t(),_(" ",o(2,1,"form.button_close")," "))}function Ht(a,m){if(a&1&&l(0),a&2){let e=g(3);_(" (",e.toDelete.length,") ")}}function Lt(a,m){if(a&1&&(l(0),r(1,"translate"),b(2,Ht,1,1)),a&2){let e=g(2);_(" ",o(1,2,"form.button_remove")," "),t(2),h(e.toDelete.length>0?2:-1)}}function Ot(a,m){a&1&&d(0,"i",27)}function Wt(a,m){if(a&1){let e=y();i(0,"button",26),x("click",function(){S(e);let p=g();return k(p.cleanBridges())}),b(1,Lt,3,4),b(2,Ot,1,0,"i",27),n()}if(a&2){let e=g();u("disabled",!e.toDelete.length||e.clicked),t(),h(e.clicked?-1:1),t(),h(e.clicked?2:-1)}}var je=(()=>{class a{$activeModal=C(T);$api=C(A);$router=C(H);$toastr=C(M);$translate=C(F);clicked=!1;pairings=[];toDelete=[];constructor(){}ngOnInit(){this.loadPairings()}loadPairings(){return w(this,null,function*(){try{this.pairings=(yield N(this.$api.get("/server/pairings"))).filter(e=>e._category==="bridge"&&!e._main).sort((e,s)=>e.name.localeCompare(s.name))}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("settings.unpair_bridge.load_error"),this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}toggleList(e){this.toDelete.includes(e)?this.toDelete=this.toDelete.filter(s=>s!==e):this.toDelete.push(e)}cleanBridges(){return this.clicked=!0,this.$api.delete("/server/pairings/accessories",{body:this.toDelete.map(e=>({id:e}))}).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("reset.accessory_ind.done"),this.$translate.instant("toast.title_success")),this.$activeModal.close(),this.$router.navigate(["/restart"],{queryParams:{restarting:!0}})},error:e=>{this.clicked=!1,console.error(e),this.$toastr.error(this.$translate.instant("reset.accessory_ind.fail"),this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(s){return new(s||a)};static \u0275cmp=E({type:a,selectors:[["ng-component"]],decls:17,vars:12,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"disabled"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"disabled"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-circle-check","primary-text",2,"font-size","75px"],[1,"mb-0","text-center"],[1,"fas","fa-fw","fa-broom","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"grey-text"],[1,"fas","fa-fw","fa-link",3,"ngClass"],[1,"font-monospace"],[1,"btn","btn-danger","m-0","ms-3",3,"click","disabled","ngClass"],[1,"fas","fa-fw",3,"ngClass"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[1,"fas","fa-fw","fa-spinner","fa-pulse"]],template:function(s,p){s&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),l(3),r(4,"translate"),n(),i(5,"button",3),r(6,"translate"),x("click",function(){return p.$activeModal.dismiss("Dismiss")}),n()(),i(7,"div",4),b(8,Rt,5,3),b(9,Dt,15,9),n(),i(10,"div",5)(11,"div",6),b(12,zt,3,4,"button",7),n(),i(13,"div",8),b(14,Ut,3,3,"button",9),n(),i(15,"div",10),b(16,Wt,3,3,"button",11),n()()()),s&2&&(t(3),c(o(4,8,"reset.bridge_accessories.title")),t(2),u("disabled",p.clicked),f("aria-label",o(6,10,"form.button_close")),t(3),h(p.pairings.length===0?8:-1),t(),h(p.pairings.length>0?9:-1),t(3),h(p.pairings.length>0?12:-1),t(2),h(p.pairings.length===0?14:-1),t(2),h(p.pairings.length>0?16:-1))},dependencies:[L,I],encapsulation:2})}return a})();function jt(a,m){a&1&&(l(0),r(1,"translate")),a&2&&_(" ",o(1,1,"form.button_reset")," ")}function Gt(a,m){a&1&&d(0,"i",16)}var Ge=(()=>{class a{$activeModal=C(T);$api=C(A);$route=C(H);$toastr=C(M);$translate=C(F);clicked;constructor(){}onResetHomebridgeAccessoryClick(){return this.clicked=!0,this.$api.put("/server/reset-homebridge-accessory",{}).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("reset.accessory_reset"),this.$translate.instant("toast.title_success")),this.$activeModal.close(),this.$route.navigate(["/restart"])},error:e=>{console.error(e),this.$toastr.error(this.$translate.instant("reset.failed_to_reset"),this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(s){return new(s||a)};static \u0275cmp=E({type:a,selectors:[["ng-component"]],decls:38,vars:33,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-bridge","primary-text",2,"font-size","75px"],[1,"mb-3"],["type","error",1,"mb-0",3,"dismissible"],[1,"text-center","mb-0"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[1,"fas","fa-fw","fa-spinner","fa-pulse"]],template:function(s,p){s&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),l(3),r(4,"translate"),n(),i(5,"button",3),r(6,"translate"),x("click",function(){return p.$activeModal.dismiss("Dismiss")}),n()(),i(7,"div",4)(8,"div",5),d(9,"i",6),n(),i(10,"ul",7)(11,"li"),l(12),r(13,"translate"),n(),i(14,"li"),l(15),r(16,"translate"),n(),i(17,"li"),l(18),r(19,"translate"),n(),i(20,"li"),l(21),r(22,"translate"),n()(),i(23,"ngb-alert",8)(24,"p",9),l(25),r(26,"translate"),n()()(),i(27,"div",10)(28,"div",11)(29,"button",12),r(30,"translate"),x("click",function(){return p.$activeModal.dismiss("Dismiss")}),l(31),r(32,"translate"),n()(),d(33,"div",13),i(34,"div",14)(35,"button",15),x("click",function(){return p.onResetHomebridgeAccessoryClick()}),b(36,jt,2,3),b(37,Gt,1,0,"i",16),n()()()()),s&2&&(t(3),c(o(4,15,"reset.bridge_all.title")),t(2),u("disabled",p.clicked),f("aria-label",o(6,17,"form.button_close")),t(7),c(o(13,19,"reset.bridge_all.list_1")),t(3),c(o(16,21,"reset.bridge_all.list_2")),t(3),c(o(19,23,"reset.bridge_all.list_3")),t(3),c(o(22,25,"reset.bridge_all.list_4")),t(2),u("dismissible",!1),t(2),c(o(26,27,"reset.action_is_irreversible")),t(4),u("disabled",p.clicked),f("aria-label",o(30,29,"form.button_close")),t(2),_(" ",o(32,31,"form.button_close")," "),t(4),u("disabled",p.clicked),t(),h(p.clicked?-1:36),t(),h(p.clicked?37:-1))},dependencies:[oe,I],encapsulation:2})}return a})();var me=(a,m)=>({"green-text":a,"grey-text":m}),ue=(a,m)=>({"btn-danger":a,"btn-elegant":m}),Ke=(a,m,e)=>({"fa-refresh":a,"fa-undo":m,"fa-spinner fa-pulse":e}),Kt=(a,m,e)=>({"fa-trash":a,"fa-undo":m,"fa-spinner fa-pulse":e});function qt(a,m){a&1&&(i(0,"div",12),d(1,"i",13),n(),i(2,"p",14),l(3),r(4,"translate"),n()),a&2&&(t(3),c(o(4,1,"reset.bridges.empty")))}function Jt(a,m){if(a&1){let e=y();i(0,"li",20)(1,"span"),l(2),d(3,"br"),i(4,"small",21),d(5,"i",22),l(6),r(7,"translate"),i(8,"span",23),l(9),n(),l(10),r(11,"titlecase"),n()(),i(12,"button",24),r(13,"translate"),x("click",function(){let p=S(e).$implicit,v=g(3);return k(v.toggleList(p._id,!1))}),d(14,"i",25),n()()}if(a&2){let e=m.$implicit,s=g(3);t(2),_(" ",e.name," "),t(3),u("ngClass",$(15,me,e._isPaired,!e._isPaired)),t(),_(" ",o(7,9,e._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired")," \xB7 "),t(3),c(e._username),t(),_(" \xB7 ",e._main?"Homebridge":o(11,11,e._category)," "),t(2),u("disabled",s.clicked)("ngClass",$(18,ue,!s.isInList(e._id),s.isInList(e._id))),f("aria-label",o(13,13,"form.button_unpair")),t(2),u("ngClass",G(21,Ke,!s.isInList(e._id),s.isInList(e._id)&&!s.clicked,s.isInList(e._id)&&s.clicked))}}function Qt(a,m){if(a&1&&(i(0,"ul",16)(1,"li",17)(2,"h6",18),l(3),r(4,"translate"),n(),i(5,"p",19),l(6),r(7,"translate"),n()(),P(8,Jt,15,25,"li",20,R),n()),a&2){let e=g(2);t(3),c(o(4,2,"reset.bridge_ind.head_non_child")),t(3),c(o(7,4,"reset.bridge_ind.desc_non_child")),t(2),D(e.pairingsNonChild)}}function Xt(a,m){if(a&1){let e=y();i(0,"li",20)(1,"span"),l(2),d(3,"br"),i(4,"small",21),d(5,"i",22),l(6),r(7,"translate"),i(8,"span",23),l(9),n()()(),i(10,"button",24),r(11,"translate"),x("click",function(){let p=S(e).$implicit,v=g(3);return k(v.toggleList(p._id,!0))}),d(12,"i",25),n()()}if(a&2){let e=m.$implicit,s=g(3);t(2),_(" ",e.name," "),t(3),u("ngClass",$(12,me,e._isPaired,!e._isPaired)),t(),_(" ",o(7,8,e._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired")," \xB7 "),t(3),c(e._username),t(),u("disabled",s.clicked)("ngClass",$(15,ue,!s.isInList(e._id),s.isInList(e._id))),f("aria-label",o(11,10,"form.button_unpair")),t(2),u("ngClass",G(18,Ke,!s.isInList(e._id),s.isInList(e._id)&&!s.clicked,s.isInList(e._id)&&s.clicked))}}function Yt(a,m){if(a&1&&(i(0,"ul",16)(1,"li",17)(2,"h6",18),l(3),r(4,"translate"),n(),i(5,"p",19),l(6),r(7,"translate"),n()(),P(8,Xt,13,22,"li",20,R),n()),a&2){let e=g(2);t(3),c(o(4,2,"reset.bridge_ind.head_child_active")),t(3),c(o(7,4,"reset.bridge_ind.desc_child_active")),t(2),D(e.pairingsChildActive)}}function Zt(a,m){if(a&1){let e=y();i(0,"li",20)(1,"span"),l(2),d(3,"br"),i(4,"small",21),d(5,"i",22),l(6),r(7,"translate"),i(8,"span",23),l(9),n()()(),i(10,"button",24),r(11,"translate"),x("click",function(){let p=S(e).$implicit,v=g(3);return k(v.toggleList(p._id,!1))}),d(12,"i",25),n()()}if(a&2){let e=m.$implicit,s=g(3);t(2),_(" ",e.name," "),t(3),u("ngClass",$(12,me,e._isPaired,!e._isPaired)),t(),_(" ",o(7,8,e._isPaired?"status.widget.qr_paired":"status.widget.qr_unpaired")," \xB7 "),t(3),c(e._username),t(),u("disabled",s.clicked)("ngClass",$(15,ue,!s.isInList(e._id),s.isInList(e._id))),f("aria-label",o(11,10,"form.button_unpair")),t(2),u("ngClass",G(18,Kt,!s.isInList(e._id),s.isInList(e._id)&&!s.clicked,s.isInList(e._id)&&s.clicked))}}function ei(a,m){if(a&1&&(i(0,"ul",16)(1,"li",17)(2,"h6",18),l(3),r(4,"translate"),n(),i(5,"p",19),l(6),r(7,"translate"),n()(),P(8,Zt,13,22,"li",20,R),n()),a&2){let e=g(2);t(3),c(o(4,2,"reset.bridge_ind.head_child_stale")),t(3),c(o(7,4,"reset.bridge_ind.desc_child_stale")),t(2),D(e.pairingsChildStale)}}function ti(a,m){if(a&1&&(i(0,"div",12),d(1,"i",15),n(),b(2,Qt,10,6,"ul",16),b(3,Yt,10,6,"ul",16),b(4,ei,10,6,"ul",16)),a&2){let e=g();t(2),h(e.pairingsNonChild.length>0?2:-1),t(),h(e.pairingsChildActive.length>0?3:-1),t(),h(e.pairingsChildStale.length>0?4:-1)}}function ii(a,m){if(a&1){let e=y();i(0,"button",26),x("click",function(){S(e);let p=g();return k(p.$activeModal.dismiss("Dismiss"))}),l(1),r(2,"translate"),n()}if(a&2){let e=g();u("disabled",e.clicked),t(),_(" ",o(2,2,"form.button_close")," ")}}function ni(a,m){if(a&1){let e=y();i(0,"button",27),x("click",function(){S(e);let p=g();return k(p.$activeModal.dismiss("Dismiss"))}),l(1),r(2,"translate"),n()}a&2&&(t(),_(" ",o(2,1,"form.button_close")," "))}function ai(a,m){if(a&1&&l(0),a&2){let e=g(3);_(" (",e.toDelete.length,") ")}}function ri(a,m){if(a&1&&(l(0),r(1,"translate"),b(2,ai,1,1)),a&2){let e=g(2);_(" ",o(1,2,"form.button_reset")," "),t(2),h(e.toDelete.length>0?2:-1)}}function oi(a,m){a&1&&d(0,"i",29)}function si(a,m){if(a&1){let e=y();i(0,"button",28),x("click",function(){S(e);let p=g();return k(p.removeBridges())}),b(1,ri,3,4),b(2,oi,1,0,"i",29),n()}if(a&2){let e=g();u("disabled",!e.toDelete.length||e.clicked),t(),h(e.clicked?-1:1),t(),h(e.clicked?2:-1)}}var qe=(()=>{class a{$activeModal=C(T);$api=C(A);$router=C(H);$toastr=C(M);$translate=C(F);clicked=!1;pairingsNonChild=[];pairingsChildActive=[];pairingsChildStale=[];toDelete=[];constructor(){}ngOnInit(){this.loadPairings()}loadPairings(){return w(this,null,function*(){try{let e=(yield N(this.$api.get("/server/pairings"))).filter(s=>!s._main).sort((s,p)=>s.name.localeCompare(p.name));this.pairingsChildActive=e.filter(s=>s._category==="bridge"&&!s._couldBeStale),this.pairingsNonChild=e.filter(s=>s._category!=="bridge"),this.pairingsChildStale=e.filter(s=>s._category==="bridge"&&s._couldBeStale)}catch(e){console.error(e),this.$toastr.error(this.$translate.instant("settings.unpair_bridge.load_error"),this.$translate.instant("toast.title_error")),this.$activeModal.close()}})}toggleList(e,s=!1){this.toDelete.some(p=>p.id===e)?this.toDelete=this.toDelete.filter(p=>p.id!==e):this.toDelete.push({id:e,resetPairingInfo:s})}isInList(e){return this.toDelete.some(s=>s.id===e)}removeBridges(){return this.clicked=!0,this.$api.delete("/server/pairings",{body:this.toDelete}).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("reset.bridge_ind.done"),this.$translate.instant("toast.title_success")),this.$activeModal.close(),this.$router.navigate(["/restart"],{queryParams:{restarting:!0}})},error:e=>{this.clicked=!1,console.error(e),this.$toastr.error(this.$translate.instant("reset.bridge_ind.fail"),this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(s){return new(s||a)};static \u0275cmp=E({type:a,selectors:[["ng-component"]],decls:17,vars:12,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"disabled"],[1,"text-center"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"disabled"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-circle-check","primary-text",2,"font-size","75px"],[1,"text-center","mb-0"],[1,"fas","fa-fw","fa-bridge","primary-text",2,"font-size","75px"],[1,"list-group","list-group-box","mt-3","mb-0"],[1,"list-group-item"],[1,"mb-1","text-center"],[1,"mb-0","small","grey-text","text-center"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"grey-text"],[1,"fas","fa-fw","fa-link",3,"ngClass"],[1,"font-monospace"],[1,"btn","btn-danger","m-0","ms-3",3,"click","disabled","ngClass"],[1,"fas","fa-fw",3,"ngClass"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],["type","button","data-bs-dismiss","modal",1,"btn","btn-danger",3,"click","disabled"],[1,"fas","fa-fw","fa-spinner","fa-pulse"]],template:function(s,p){s&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),l(3),r(4,"translate"),n(),i(5,"button",3),r(6,"translate"),x("click",function(){return p.$activeModal.dismiss("Dismiss")}),n()(),i(7,"div",4),b(8,qt,5,3),b(9,ti,5,3),n(),i(10,"div",5)(11,"div",6),b(12,ii,3,4,"button",7),n(),i(13,"div",8),b(14,ni,3,3,"button",9),n(),i(15,"div",10),b(16,si,3,3,"button",11),n()()()),s&2&&(t(3),c(o(4,8,"reset.bridge_ind.title")),t(2),u("disabled",p.clicked),f("aria-label",o(6,10,"form.button_close")),t(3),h(p.pairingsChildActive.length===0&&p.pairingsChildStale.length===0&&p.pairingsNonChild.length===0?8:-1),t(),h(p.pairingsChildActive.length>0||p.pairingsChildStale.length>0||p.pairingsNonChild.length>0?9:-1),t(3),h(p.pairingsChildActive.length>0||p.pairingsChildStale.length>0||p.pairingsNonChild.length>0?12:-1),t(2),h(p.pairingsChildActive.length===0&&p.pairingsChildStale.length===0&&p.pairingsNonChild.length===0?14:-1),t(2),h(p.pairingsChildActive.length>0||p.pairingsChildStale.length>0||p.pairingsNonChild.length>0?16:-1))},dependencies:[L,te,I],encapsulation:2})}return a})();function li(a,m){if(a&1){let e=y();i(0,"li",10)(1,"span")(2,"label",17)(3,"input",18),ee("ngModelChange",function(p){let v=S(e).$implicit;return Z(v.selected,p)||(v.selected=p),k(p)}),n(),i(4,"span"),l(5),n(),d(6,"span",19),n()(),i(7,"span",20),l(8),n()()}if(a&2){let e=m.$implicit;t(2),u("for","adapter"+e.iface),t(),u("id","adapter"+e.iface),Y("ngModel",e.selected),t(2),c(e.iface),t(3),c(e.ip4||e.ip6)}}var Je=(()=>{class a{$activeModal=C(T);availableNetworkAdapters=[];bridgeNetworkAdapters=[];constructor(){}submit(){this.$activeModal.close(this.availableNetworkAdapters.filter(e=>e.selected).map(e=>e.iface))}static \u0275fac=function(s){return new(s||a)};static \u0275cmp=E({type:a,selectors:[["ng-component"]],inputs:{availableNetworkAdapters:"availableNetworkAdapters",bridgeNetworkAdapters:"bridgeNetworkAdapters"},decls:35,vars:24,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,"fas","fa-fw","fa-ethernet","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"list-group","list-group-box"],[1,"list-group-item","d-flex","flex-row","justify-content-between"],[1,"list-group-item","d-flex","flex-row","flex-wrap","justify-content-between"],[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-primary",3,"click"],[1,"hb-uix-switch","d-inline","pe-3",3,"for"],["type","checkbox",3,"ngModelChange","id","ngModel"],[1,"hb-uix-slider","hb-uix-round"],[1,"font-monospace"]],template:function(s,p){s&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),l(3),r(4,"translate"),n(),i(5,"button",3),r(6,"translate"),x("click",function(){return p.$activeModal.dismiss("Dismiss")}),n()(),i(7,"div",4)(8,"div",5),d(9,"i",6),n(),i(10,"ul",7)(11,"li"),l(12),r(13,"translate"),n()(),i(14,"ul",8)(15,"li",9)(16,"strong"),l(17),r(18,"translate"),n(),i(19,"strong"),l(20),r(21,"translate"),n()(),P(22,li,9,5,"li",10,R),n()(),i(24,"div",11)(25,"div",12)(26,"button",13),r(27,"translate"),x("click",function(){return p.$activeModal.dismiss("Dismiss")}),l(28),r(29,"translate"),n()(),d(30,"div",14),i(31,"div",15)(32,"button",16),x("click",function(){return p.submit()}),l(33),r(34,"translate"),n()()()()),s&2&&(t(3),c(o(4,8,"settings.network.title_network_interfaces")),t(2),f("aria-label",o(6,10,"form.button_close")),t(7),c(o(13,12,"settings.network.message_network_interface")),t(5),c(o(18,14,"settings.network.label_interface_name")),t(3),c(o(21,16,"settings.network.label_ip_address")),t(2),D(p.availableNetworkAdapters),t(4),f("aria-label",o(27,18,"form.button_close")),t(2),_(" ",o(29,20,"form.button_close")," "),t(5),_(" ",o(34,22,"form.button_save")," "))},dependencies:[re,K,q,ne,I],encapsulation:2})}return a})();var pi=["wallpaperInput"],di=a=>({maxFileSizeText:a});function ci(a,m){if(a&1){let e=y();i(0,"div",10),d(1,"img",20),i(2,"button",21),r(3,"translate"),x("click",function(){S(e);let p=g();return k(p.clearWallpaper())}),d(4,"i",22),n()()}if(a&2){let e=g();t(),u("src",e.wallpaperUrl,ge),t(),f("aria-label",o(3,2,"form.button_delete"))}}function mi(a,m){a&1&&d(0,"div",11)}var Qe=(()=>{class a{$activeModal=C(T);$api=C(A);$modal=C(O);$settings=C(Q);$toastr=C(M);$translate=C(F);clicked=!1;maxFileSizeText=globalThis.backup.maxBackupSizeText;selectedFile;wallpaperUrl=null;originalWallpaperUrl=null;wallpaperInput;constructor(){}ngOnInit(){this.$settings.env.customWallpaperHash&&(this.wallpaperUrl=`${Re.api.base}/auth/wallpaper/${this.$settings.env.customWallpaperHash}`,this.originalWallpaperUrl=this.wallpaperUrl)}onFileChange(e){if(e.length){this.selectedFile=e[0];let s=new FileReader;s.onload=p=>{this.wallpaperUrl=p.target.result},s.readAsDataURL(this.selectedFile)}else delete this.selectedFile,this.wallpaperUrl=this.originalWallpaperUrl}saveWallpaper(){if(this.clicked=!0,this.selectedFile){let e=new FormData;e.append("wallpaper",this.selectedFile,this.selectedFile.name),this.$api.post("/server/wallpaper",e).subscribe({next:()=>{this.$settings.setItem("wallpaper",`ui-wallpaper.${this.selectedFile.name.split(".").pop()}`),this.$activeModal.close(),this.$toastr.success(this.$translate.instant("settings.display.wallpaper_success"),this.$translate.instant("toast.title_success"))},error:s=>{console.error(s),this.$toastr.error(s.error?.message,this.$translate.instant("toast.title_error")),this.clicked=!1}})}else this.$api.delete("/server/wallpaper").subscribe({next:()=>{this.$activeModal.close()},error:e=>{console.error(e),this.$toastr.error(e.error?.message,this.$translate.instant("toast.title_error")),this.clicked=!1}})}clearWallpaper(){this.selectedFile=null,this.wallpaperUrl=this.wallpaperUrl===this.originalWallpaperUrl?null:this.originalWallpaperUrl,this.wallpaperInput.nativeElement.value=""}cancel(){this.$activeModal.dismiss()}static \u0275fac=function(s){return new(s||a)};static \u0275cmp=E({type:a,selectors:[["ng-component"]],viewQuery:function(s,p){if(s&1&&be(pi,5),s&2){let v;he(v=fe())&&(p.wallpaperInput=v.first)}},decls:36,vars:28,consts:[["wallpaperInput",""],[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click","disabled"],[1,"modal-body"],[1,"text-center","mb-3"],[1,"fas","fa-fw","fa-image","primary-text",2,"font-size","75px"],[1,"mb-3"],[1,"mb-3","text-center"],[1,"position-relative","d-inline-block"],[1,"gradient","anim","rounded",2,"height","200px","width","350px","margin","0 auto"],[1,"mb-0"],["type","file","id","wallpaper","accept","image/*",1,"form-control",3,"change"],[1,"modal-footer","justify-content-between"],[1,"text-start"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click","disabled"],[1,"text-center"],[1,"text-end"],["type","button","data-bs-dismiss","modal",1,"btn","btn-primary",3,"click","disabled"],["alt","Current Wallpaper",1,"img-fluid","rounded","mx-auto","d-block",2,"height","200px",3,"src"],[1,"btn","btn-danger","position-absolute",2,"top","10px","right","10px",3,"click"],[1,"fas","fa-fw","fa-trash"]],template:function(s,p){if(s&1){let v=y();i(0,"div",1)(1,"div",2)(2,"h5",3),l(3),r(4,"translate"),n(),i(5,"button",4),r(6,"translate"),x("click",function(){return S(v),k(p.$activeModal.dismiss("Dismiss"))}),n()(),i(7,"div",5)(8,"div",6),d(9,"i",7),n(),i(10,"ul",8)(11,"li"),l(12),r(13,"translate"),n(),i(14,"li"),l(15),r(16,"translate"),n(),i(17,"li"),l(18),r(19,"translate"),n()(),i(20,"div",9),b(21,ci,5,4,"div",10)(22,mi,1,0,"div",11),n(),i(23,"div",12)(24,"input",13,0),x("change",function(Xe){return S(v),k(p.onFileChange(Xe.target.files))}),n()()(),i(26,"div",14)(27,"div",15)(28,"button",16),x("click",function(){return S(v),k(p.cancel())}),l(29),r(30,"translate"),n()(),d(31,"div",17),i(32,"div",18)(33,"button",19),x("click",function(){return S(v),k(p.saveWallpaper())}),l(34),r(35,"translate"),n()()()()}s&2&&(t(3),c(o(4,11,"settings.display.wallpaper")),t(2),u("disabled",p.clicked),f("aria-label",o(6,13,"form.button_close")),t(7),c(o(13,15,"settings.display.wallpaper_intro")),t(3),c(z(16,17,"settings.display.wallpaper_rule",V(26,di,p.maxFileSizeText))),t(3),c(o(19,20,"settings.display.wallpaper_rule2")),t(3),h(p.wallpaperUrl?21:22),t(7),u("disabled",p.clicked),t(),_(" ",o(30,22,"form.button_close")," "),t(4),u("disabled",p.wallpaperUrl===p.originalWallpaperUrl||p.clicked),t(),_(" ",o(35,24,"form.button_save")," "))},dependencies:[J,I],styles:[".anim[_ngcontent-%COMP%]{-webkit-animation:_ngcontent-%COMP%_gradient 20s ease infinite;-moz-animation:gradient 20s ease infinite;-o-animation:gradient 20s ease infinite;animation:_ngcontent-%COMP%_gradient 20s ease infinite}@keyframes _ngcontent-%COMP%_gradient{0%{background-position:0 50%}50%{background-position:100% 50%}to{background-position:0 50%}}"]})}return a})();var X=a=>({"is-invalid":a}),ui=a=>({link:a}),_i=a=>({"fa-pulse":a}),gi=(a,m)=>({"badge-danger":a,"badge-info":m}),bi=()=>({standalone:!0});function hi(a,m){a&1&&(i(0,"li",24)(1,"small",25),l(2),r(3,"translate"),n(),i(4,"button",26),r(5,"translate"),l(6),r(7,"translate"),n()()),a&2&&(t(2),c(o(3,3,"settings.changes.saved")),t(2),f("aria-label",o(5,5,"menu.tooltip_restart")),t(2),_(" ",o(7,7,"menu.tooltip_restart")," "))}function fi(a,m){if(a&1){let e=y();i(0,"ul",5)(1,"li",16)(2,"span"),l(3,"Homebridge Name"),n(),i(4,"div",17),d(5,"input",18),r(6,"translate"),n()(),i(7,"li",19)(8,"span",20),l(9),r(10,"translate"),n(),i(11,"button",21),r(12,"translate"),x("click",function(){S(e);let p=g();return k(p.openUiSettings())}),d(13,"i",22),n()(),i(14,"li",19)(15,"span",20),l(16),r(17,"translate"),n(),i(18,"button",21),r(19,"translate"),x("click",function(){S(e);let p=g();return k(p.openBackupModal())}),d(20,"i",22),n()(),i(21,"li",19)(22,"span",20),l(23),r(24,"translate"),n(),i(25,"a",23),r(26,"translate"),d(27,"i",22),n()(),b(28,hi,8,9,"li",24),n()}if(a&2){let e=g();t(5),u("formControl",e.hbNameFormControl)("ngClass",V(24,X,e.isInvalidHbName)),f("aria-label",o(6,10,"settings.network.port_ui")),t(4),c(o(10,12,"menu.label_settings_advanced")),t(2),f("aria-label",o(12,14,"menu.label_settings_advanced")),t(5),_(" ",o(17,16,"backup.title_backup")," "),t(2),f("aria-label",o(19,18,"backup.title_backup")),t(5),_(" ",o(24,20,"menu.tooltip_user_accounts")," "),t(2),f("aria-label",o(26,22,"menu.tooltip_user_accounts")),t(3),h(e.hasChangedHbName&&!e.isInvalidHbName?28:-1)}}function xi(a,m){if(a&1){let e=y();i(0,"ul",6)(1,"li",16),l(2),r(3,"translate"),i(4,"div",27)(5,"select",28),x("ngModelChange",function(p){S(e);let v=g();return k(v.saveUiSettingChange("lang",p))}),i(6,"option",29),l(7),r(8,"translate"),n(),i(9,"option",30),l(10,"Bulgarian (bg)"),n(),i(11,"option",31),l(12,"Catalan (ca)"),n(),i(13,"option",32),l(14,"Chinese - Simplified (zh-CN)"),n(),i(15,"option",33),l(16,"Chinese - Traditional (zh-TW)"),n(),i(17,"option",34),l(18,"Czech (cs)"),n(),i(19,"option",35),l(20,"Dutch (nl)"),n(),i(21,"option",36),l(22,"English (en)"),n(),i(23,"option",37),l(24,"Finnish (fi)"),n(),i(25,"option",38),l(26,"French (fr)"),n(),i(27,"option",39),l(28,"German (de)"),n(),i(29,"option",40),l(30,"Hebrew (he)"),n(),i(31,"option",41),l(32,"Hungarian (hu)"),n(),i(33,"option",42),l(34,"Indonesian (id)"),n(),i(35,"option",43),l(36,"Italian (it)"),n(),i(37,"option",44),l(38,"Japanese (ja)"),n(),i(39,"option",45),l(40,"Korean (ko)"),n(),i(41,"option",46),l(42,"Macedonian (mk)"),n(),i(43,"option",47),l(44,"Norwegian (no)"),n(),i(45,"option",48),l(46,"Polish (pl)"),n(),i(47,"option",49),l(48,"Portuguese (Brazil)"),n(),i(49,"option",50),l(50,"Portuguese (Portugal)"),n(),i(51,"option",51),l(52,"Russian (ru)"),n(),i(53,"option",52),l(54,"Slovenian (sl)"),n(),i(55,"option",53),l(56,"Spanish (es)"),n(),i(57,"option",54),l(58,"Swedish (sv)"),n(),i(59,"option",55),l(60,"Thai (th)"),n(),i(61,"option",56),l(62,"Turkish (tr)"),n(),i(63,"option",57),l(64,"Ukrainian (uk)"),n()()()(),i(65,"li",16),l(66),r(67,"translate"),i(68,"div",27)(69,"select",28),x("ngModelChange",function(p){S(e);let v=g();return k(v.saveUiSettingChange("theme",p))}),i(70,"option",58),l(71),r(72,"translate"),n(),i(73,"option",59),l(74),r(75,"translate"),n(),i(76,"option",60),l(77),r(78,"translate"),n(),i(79,"option",61),l(80),r(81,"translate"),n(),i(82,"option",62),l(83),r(84,"translate"),n(),i(85,"option",63),l(86),r(87,"translate"),n(),i(88,"option",64),l(89),r(90,"translate"),n(),i(91,"option",65),l(92),r(93,"translate"),n(),i(94,"option",66),l(95),r(96,"translate"),n(),i(97,"option",67),l(98),r(99,"translate"),n(),i(100,"option",68),l(101),r(102,"translate"),n(),i(103,"option",69),l(104),r(105,"translate"),n(),i(106,"option",70),l(107),r(108,"translate"),n()()()(),i(109,"li",16),l(110),r(111,"translate"),i(112,"div",27)(113,"select",28),x("ngModelChange",function(p){S(e);let v=g();return k(v.saveUiSettingChange("lightingMode",p))}),i(114,"option",29),l(115),r(116,"translate"),n(),i(117,"option",71),l(118),r(119,"translate"),n(),i(120,"option",72),l(121),r(122,"translate"),n()()()(),i(123,"li",16),l(124),r(125,"translate"),i(126,"div",27)(127,"select",28),x("ngModelChange",function(p){S(e);let v=g();return k(v.saveUiSettingChange("menuMode",p))}),i(128,"option",73),l(129),r(130,"translate"),n(),i(131,"option",74),l(132),r(133,"translate"),n()()()(),i(134,"li",16),l(135),r(136,"translate"),i(137,"div",27)(138,"select",28),x("ngModelChange",function(p){S(e);let v=g();return k(v.saveUiSettingChange("tempUnits",p))}),i(139,"option",75),l(140),r(141,"translate"),n(),i(142,"option",76),l(143),r(144,"translate"),n()()()(),i(145,"li",19)(146,"span",20),l(147),r(148,"translate"),n(),i(149,"button",21),r(150,"translate"),x("click",function(){S(e);let p=g();return k(p.openWallpaperModal())}),d(151,"i",22),n()()()}if(a&2){let e=g();t(2),_(" ",o(3,33,"settings.display.lang")," "),t(3),u("ngModel",e.$settings.env.lang),t(2),c(o(8,35,"form.select.auto")),t(59),_(" ",o(67,37,"settings.display.theme")," "),t(3),u("ngModel",e.$settings.theme),t(2),c(o(72,39,"settings.display.orange")),t(3),c(o(75,41,"settings.display.red")),t(3),c(o(78,43,"settings.display.pink")),t(3),c(o(81,45,"settings.display.purple")),t(3),c(o(84,47,"settings.display.deep_purple")),t(3),c(o(87,49,"settings.display.indigo")),t(3),c(o(90,51,"settings.display.blue")),t(3),c(o(93,53,"settings.display.bluegrey")),t(3),c(o(96,55,"settings.display.cyan")),t(3),c(o(99,57,"settings.display.green")),t(3),c(o(102,59,"settings.display.teal")),t(3),c(o(105,61,"settings.display.grey")),t(3),c(o(108,63,"settings.display.brown")),t(3),_(" ",o(111,65,"settings.display.lighting_mode")," "),t(3),u("ngModel",e.$settings.lightingMode),t(2),c(o(116,67,"form.select.auto")),t(3),c(o(119,69,"settings.display.light")),t(3),c(o(122,71,"settings.display.dark")),t(3),_(" ",o(125,73,"settings.display.menu_mode")," "),t(3),u("ngModel",e.$settings.menuMode),t(2),c(o(130,75,"settings.display.menu_default")),t(3),c(o(133,77,"settings.display.menu_freeze")),t(3),_(" ",o(136,79,"settings.display.temp_units")," "),t(3),u("ngModel",e.$settings.env.temperatureUnits),t(2),c(o(141,81,"settings.display.temp_units.c")),t(3),c(o(144,83,"settings.display.temp_units.f")),t(4),c(o(148,85,"settings.display.wallpaper")),t(2),f("aria-label",o(150,87,"settings.display.wallpaper"))}}function vi(a,m){a&1&&(i(0,"li",19)(1,"span"),l(2),r(3,"translate"),d(4,"br"),i(5,"small",77),l(6),r(7,"translate"),n()(),i(8,"a",89),r(9,"translate"),d(10,"i",22),n()()),a&2&&(t(2),_(" ",o(3,3,"menu.docker.startup_script")),t(4),c(o(7,5,"platform.docker.script_help")),t(2),f("aria-label",o(9,7,"menu.docker.startup_script")))}function Ci(a,m){if(a&1&&(i(0,"li",16)(1,"span"),l(2),r(3,"translate"),d(4,"br"),i(5,"small",77),l(6),r(7,"translate"),n()(),i(8,"div",27),d(9,"input",90),r(10,"translate"),n()()),a&2){let e=g(2);t(2),_(" ",o(3,5,"settings.startup.log_truncate")),t(4),c(o(7,7,"settings.startup.log_truncate_desc")),t(3),u("formControl",e.uiLogTruncateSizeFormControl)("ngClass",V(11,X,e.isInvalidUiLogTruncateSize)),f("aria-label",o(10,9,"settings.startup.log_truncate"))}}function Si(a,m){a&1&&(i(0,"li",24)(1,"small",25),l(2),r(3,"translate"),n(),i(4,"button",26),r(5,"translate"),l(6),r(7,"translate"),n()()),a&2&&(t(2),c(o(3,3,"settings.changes.saved")),t(2),f("aria-label",o(5,5,"menu.tooltip_restart")),t(2),_(" ",o(7,7,"menu.tooltip_restart")," "))}function ki(a,m){if(a&1&&(i(0,"ul",8)(1,"li",19)(2,"span"),l(3),r(4,"translate"),i(5,"code"),l(6,"-D"),n(),d(7,"br"),i(8,"small",77),l(9),r(10,"translate"),n()(),d(11,"input",78),r(12,"translate"),d(13,"label",79),n(),i(14,"li",19)(15,"span"),l(16),r(17,"translate"),i(18,"code"),l(19,"-I"),n(),d(20,"br"),i(21,"small",77),l(22),r(23,"translate"),n()(),d(24,"input",80),r(25,"translate"),d(26,"label",81),n(),i(27,"li",19)(28,"span"),l(29),r(30,"translate"),i(31,"code"),l(32,"-K"),n(),d(33,"br"),i(34,"small",77),l(35),r(36,"translate"),n()(),d(37,"input",82),r(38,"translate"),d(39,"label",83),n(),i(40,"li",16)(41,"span")(42,"span",84),l(43,"DEBUG"),n(),d(44,"br")(45,"small",85),r(46,"translate"),n(),i(47,"div",27),d(48,"input",86),n()(),i(49,"li",16)(50,"span")(51,"span",84),l(52,"NODE_OPTIONS"),n(),d(53,"br"),i(54,"small",77),l(55),r(56,"translate"),n()(),i(57,"div",27),d(58,"input",87),n()(),b(59,vi,11,9,"li",19),i(60,"li",16)(61,"span"),l(62),r(63,"translate"),d(64,"br"),i(65,"small",77),l(66),r(67,"translate"),n()(),i(68,"div",27),d(69,"input",88),r(70,"translate"),n()(),b(71,Ci,11,13,"li",16),b(72,Si,8,9,"li",24),n()),a&2){let e=g();t(3),_(" ",o(4,19,"settings.startup.debug")," "),t(6),_(" ",o(10,21,e.isHbV2?"settings.startup.debug_desc_v2":"settings.startup.debug_desc_v1")," "),t(2),f("aria-label",o(12,23,"settings.startup.debug")),t(5),_(" ",o(17,25,"settings.startup.insecure")," "),t(6),c(o(23,27,"settings.startup.insecure_desc")),t(2),f("aria-label",o(25,29,"settings.startup.insecure")),t(5),_(" ",o(30,31,"settings.startup.keep_accessories")," "),t(6),c(o(36,33,"settings.startup.keep_accessories_desc")),t(2),f("aria-label",o(38,35,"settings.startup.keep_accessories")),t(8),u("innerHTML",z(46,37,"settings.service.debug_tooltip",V(48,ui,e.linkDebug)),_e),t(10),c(o(56,40,"settings.service.node_tooltip")),t(4),h(e.$settings.env.runningInDocker?59:-1),t(3),_(" ",o(63,42,"settings.startup.log_max")),t(4),c(o(67,44,"settings.startup.log_max_desc")),t(3),u("formControl",e.uiLogMaxSizeFormControl)("ngClass",V(50,X,e.isInvalidUiLogMaxSize)),f("aria-label",o(70,46,"settings.startup.log_max")),t(2),h(e.uiLogMaxSizeFormControl.value>0?71:-1),t(),h(e.hasChangedService?72:-1)}}function yi(a,m){a&1&&d(0,"i",102)}function wi(a,m){if(a&1&&(i(0,"span",92),b(1,yi,1,0,"i",102),l(2),i(3,"span",103),l(4),r(5,"translate"),n()()),a&2){let e=m.$implicit;u("ngClass",$(6,gi,e.missing,!e.missing)),t(),h(e.missing?1:-1),t(),_(" ",e.iface,": "),t(2),c(e.missing?o(5,4,"settings.mdns_advertiser_not_connected"):e.ip4||e.ip6)}}function Bi(a,m){a&1&&(i(0,"option",96),l(1),r(2,"translate"),n()),a&2&&(t(),_("Avahi (",o(2,1,"settings.mdns_advertiser_rec"),")"))}function Ei(a,m){a&1&&(i(0,"option",99),l(1),r(2,"translate"),n()),a&2&&(t(),_("systemd-resolved (",o(2,1,"settings.mdns_advertiser_exp"),")"))}function Ii(a,m){a&1&&(i(0,"li",24)(1,"small",25),l(2),r(3,"translate"),n(),i(4,"button",26),r(5,"translate"),l(6),r(7,"translate"),n()()),a&2&&(t(2),c(o(3,3,"settings.changes.saved")),t(2),f("aria-label",o(5,5,"menu.tooltip_restart")),t(2),_(" ",o(7,7,"menu.tooltip_restart")," "))}function $i(a,m){if(a&1){let e=y();i(0,"ul",9)(1,"li",19)(2,"span",20),l(3),r(4,"translate"),d(5,"br"),i(6,"div",91),l(7),r(8,"translate"),n(),P(9,wi,6,9,"span",92,R),n(),i(11,"button",93),r(12,"translate"),x("click",function(){S(e);let p=g();return k(p.selectNetworkInterfaces())}),d(13,"i",94),n()(),i(14,"li",16)(15,"span"),l(16),r(17,"translate"),d(18,"br"),i(19,"small",77),l(20),r(21,"translate"),n()(),i(22,"div",27)(23,"select",95),r(24,"translate"),b(25,Bi,3,3,"option",96),i(26,"option",97),l(27),r(28,"translate"),n(),i(29,"option",98),l(30,"Bonjour HAP"),n(),b(31,Ei,3,3,"option",99),n()()(),i(32,"li",16)(33,"span"),l(34),r(35,"translate"),d(36,"br"),i(37,"small",77),l(38),r(39,"translate"),n()(),i(40,"div",27),d(41,"input",100),r(42,"translate"),n()(),i(43,"li",16)(44,"span"),l(45),r(46,"translate"),d(47,"br"),i(48,"small",77),l(49),r(50,"translate"),n()(),i(51,"div",27),d(52,"input",101),r(53,"translate"),n()(),b(54,Ii,8,9,"li",24),n()}if(a&2){let e=g();t(3),_(" ",o(4,22,"settings.network.title_network_interfaces")),t(4),c(o(8,24,"settings.network.message_network_interface")),t(2),D(e.bridgeNetworkAdapters),t(2),u("disabled",!e.availableNetworkAdapters.length),f("aria-label",o(12,26,"settings.network.title_network_interfaces")),t(2),u("ngClass",V(48,_i,!e.availableNetworkAdapters.length)),t(3),_(" ",o(17,28,"settings.mdns_advertiser")),t(4),c(o(21,30,"settings.mdns_advertiser_help")),t(3),u("formControl",e.legacyMdnsFormControl),f("aria-label",o(24,32,"settings.mdns_advertiser")),t(2),h(e.showAvahiMdnsOption?25:-1),t(2),_(" Ciao ",e.showAvahiMdnsOption?"":"("+o(28,34,"settings.mdns_advertiser_rec")+")"," "),t(4),h(e.showResolvedMdnsOption?31:-1),t(3),_(" ",o(35,36,"settings.network.port_hb")),t(4),c(o(39,38,"settings.network.port_hb_desc")),t(3),u("formControl",e.hbPortFormControl)("ngClass",V(50,X,e.isInvalidHbPort)),f("aria-label",o(42,40,"settings.network.port_ui")),t(4),_(" ",o(46,42,"settings.network.port_ui")),t(4),c(o(50,44,"settings.network.port_ui_desc")),t(3),u("ngClass",V(52,X,e.isInvalidHbUiPort)),f("aria-label",o(53,46,"settings.network.port_ui")),t(2),h(e.hasChangedHbPort&&!e.isInvalidHbPort||e.hasChangedUiSettings||e.hasChangedMdns||e.hasChangedBridgeNetworkAdapters?54:-1)}}function Ti(a,m){if(a&1&&(i(0,"li",16)(1,"span"),l(2),r(3,"translate"),d(4,"br"),i(5,"small",77),l(6),r(7,"translate"),n()(),i(8,"div",27),d(9,"input",110),r(10,"translate"),n()()),a&2){let e=g(2);t(2),_(" ",o(3,5,"settings.startup.session")),t(4),c(o(7,7,"settings.startup.session_desc")),t(3),u("formControl",e.uiSessionTimeoutFormControl)("ngClass",V(11,X,e.isInvalidUiSessionTimeout)),f("aria-label",o(10,9,"settings.startup.session"))}}function Fi(a,m){if(a&1&&(i(0,"li",16)(1,"span"),l(2),r(3,"translate"),n(),i(4,"div",27),d(5,"input",111),r(6,"translate"),n()(),i(7,"li",16)(8,"span"),l(9),r(10,"translate"),n(),i(11,"div",27),d(12,"input",112),r(13,"translate"),n()()),a&2){let e=g(2);t(2),c(o(3,6,"settings.security.key")),t(3),u("formControl",e.uiSslKeyFormControl),f("aria-label",o(6,8,"settings.security.key")),t(4),c(o(10,10,"settings.security.cert")),t(3),u("formControl",e.uiSslCertFormControl),f("aria-label",o(13,12,"settings.security.cert"))}}function Mi(a,m){if(a&1){let e=y();i(0,"li",16)(1,"span"),l(2),r(3,"translate"),n(),i(4,"div",27),d(5,"input",113),r(6,"translate"),n()(),i(7,"li",16)(8,"span"),l(9),r(10,"translate"),n(),i(11,"div",27)(12,"input",114),r(13,"translate"),x("focus",function(){S(e);let p=g(2);return k(p.showPfxPassphrase=!0)})("blur",function(){S(e);let p=g(2);return k(p.showPfxPassphrase=!1)}),n()()()}if(a&2){let e=g(2);t(2),c(o(3,7,"settings.security.pfx")),t(3),u("formControl",e.uiSslPfxFormControl),f("aria-label",o(6,9,"settings.security.pfx")),t(4),c(o(10,11,"settings.security.pass")),t(3),u("type",e.showPfxPassphrase?"text":"password")("formControl",e.uiSslPassphraseFormControl),f("aria-label",o(13,13,"settings.security.pass"))}}function Ai(a,m){a&1&&(i(0,"li",24)(1,"small",25),l(2),r(3,"translate"),n(),i(4,"button",26),r(5,"translate"),l(6),r(7,"translate"),n()()),a&2&&(t(2),c(o(3,3,"settings.changes.saved")),t(2),f("aria-label",o(5,5,"menu.tooltip_restart")),t(2),_(" ",o(7,7,"menu.tooltip_restart")," "))}function Vi(a,m){if(a&1){let e=y();i(0,"ul",11)(1,"li",19)(2,"span"),l(3),r(4,"translate"),d(5,"br"),i(6,"small",77),l(7),r(8,"translate"),n()(),d(9,"input",104),r(10,"translate"),d(11,"label",105),n(),b(12,Ti,11,13,"li",16),i(13,"li",19)(14,"span"),l(15),r(16,"translate"),d(17,"br"),i(18,"small",77),l(19),r(20,"translate"),n()(),i(21,"select",106),r(22,"translate"),ee("ngModelChange",function(p){S(e);let v=g();return Z(v.dummyEnableHttps,p)||(v.dummyEnableHttps=p),k(p)}),i(23,"option",107),l(24),r(25,"translate"),n(),i(26,"option",108),l(27),r(28,"translate"),n(),i(29,"option",109),l(30),r(31,"translate"),n()()(),b(32,Fi,14,14),b(33,Mi,14,15),b(34,Ai,8,9,"li",24),n()}if(a&2){let e=g();t(3),_(" ",o(4,16,"settings.security.auth")),t(4),_(" ",o(8,18,"settings.security.auth_desc")," "),t(2),u("formControl",e.uiAuthFormControl),f("aria-label",o(10,20,"settings.security.auth")),t(3),h(e.uiAuthFormControl.value?12:-1),t(3),_(" ",o(16,22,"settings.security.https")),t(4),c(o(20,24,"settings.security.https_desc")),t(2),Y("ngModel",e.dummyEnableHttps),u("ngModelOptions",xe(34,bi)),f("aria-label",o(22,26,"settings.security.https")),t(3),c(o(25,28,"accessories.control.off")),t(3),c(o(28,30,"settings.security.https_keycert")),t(3),c(o(31,32,"settings.security.https_pfx")),t(2),h(e.dummyEnableHttps==="keycert"?32:-1),t(),h(e.dummyEnableHttps==="pfx"?33:-1),t(),h(e.originalSslKey!==e.uiSslKeyFormControl.value||e.originalSslCert!==e.uiSslCertFormControl.value||e.originalSslPfx!==e.uiSslPfxFormControl.value||e.originalSslPassphrase!==e.uiSslPassphraseFormControl.value?34:-1)}}function Ni(a,m){a&1&&(i(0,"p",12),l(1),r(2,"translate"),n()),a&2&&(t(),c(o(2,1,"settings.cache.desc")))}function Ri(a,m){if(a&1){let e=y();i(0,"ul",13)(1,"li",19)(2,"span",20),l(3),r(4,"translate"),d(5,"br"),i(6,"small",77),l(7),r(8,"translate"),n()(),i(9,"button",21),r(10,"translate"),x("click",function(){S(e);let p=g();return k(p.removeSingleCachedAccessories())}),d(11,"i",22),n()(),i(12,"li",19)(13,"span",20),l(14),r(15,"translate"),d(16,"br"),i(17,"small",77),l(18),r(19,"translate"),n()(),i(20,"button",21),r(21,"translate"),x("click",function(){S(e);let p=g();return k(p.removeBridgeAccessories())}),d(22,"i",22),n()(),i(23,"li",19)(24,"span",20),l(25),r(26,"translate"),d(27,"br"),i(28,"small",77),l(29),r(30,"translate"),n()(),i(31,"button",21),r(32,"translate"),x("click",function(){S(e);let p=g();return k(p.removeAllCachedAccessories())}),d(33,"i",22),n()()()}a&2&&(t(3),_(" ",o(4,9,"reset.accessory_ind.title")),t(4),c(o(8,11,"reset.accessory_ind.desc")),t(2),f("aria-label",o(10,13,"reset.accessory_ind.title")),t(5),_(" ",o(15,15,"reset.bridge_accessories.title")),t(4),c(o(19,17,"reset.bridge_accessories.desc")),t(2),f("aria-label",o(21,19,"reset.accessory_all.title")),t(5),_(" ",o(26,21,"reset.accessory_all.title")),t(4),c(o(30,23,"reset.accessory_all.desc")),t(2),f("aria-label",o(32,25,"reset.accessory_all.title")))}function Pi(a,m){a&1&&(i(0,"p",12),l(1),r(2,"translate"),n()),a&2&&(t(),c(o(2,1,"reset.bridges.desc")))}function Di(a,m){if(a&1){let e=y();i(0,"ul",14)(1,"li",19)(2,"span",20),l(3),r(4,"translate"),d(5,"br"),i(6,"small",77),l(7),r(8,"translate"),n()(),i(9,"button",21),r(10,"translate"),x("click",function(){S(e);let p=g();return k(p.unpairAccessory())}),d(11,"i",22),n()(),i(12,"li",19)(13,"span",20),l(14),r(15,"translate"),r(16,"titlecase"),d(17,"br"),i(18,"small",77),l(19),r(20,"translate"),n()(),i(21,"button",21),r(22,"translate"),x("click",function(){S(e);let p=g();return k(p.resetHomebridgeState())}),d(23,"i",22),n()()()}a&2&&(t(3),_(" ",o(4,6,"reset.bridge_ind.title")),t(4),c(o(8,8,"reset.bridge_ind.desc")),t(2),f("aria-label",o(10,10,"reset.bridge_ind.title")),t(5),_(" ",o(16,14,o(15,12,"reset.bridge_all.title"))),t(5),c(o(20,16,"reset.bridge_all.desc")),t(2),f("aria-label",o(22,18,"reset.bridge_all.title")))}var Da=(()=>{class a{$api=C(A);$modal=C(O);$plugin=C(ze);$settings=C(Q);$toastr=C(M);$translate=C(F);originalServiceForm={HOMEBRIDGE_DEBUG:!1,HOMEBRIDGE_KEEP_ORPHANS:!1,HOMEBRIDGE_INSECURE:!0,ENV_DEBUG:"",ENV_NODE_OPTIONS:""};originalUiSettingsForm={port:0};originalMdnsSetting="";originalBridgeNetworkAdapters=[];originalHbPort=0;originalHbName="";originalSslKey="";originalSslCert="";originalSslPfx="";originalSslPassphrase="";showPfxPassphrase=!1;hasChangedService=!1;hasChangedUiSettings=!1;hasChangedMdns=!1;hasChangedBridgeNetworkAdapters=!1;hasChangedHbPort=!1;hasChangedHbName=!1;isInvalidHbPort=!1;isInvalidHbName=!1;isInvalidHbUiPort=!1;isInvalidUiSessionTimeout=!1;isInvalidUiLogMaxSize=!1;isInvalidUiLogTruncateSize=!1;serviceForm=new pe({HOMEBRIDGE_DEBUG:new B(!1),HOMEBRIDGE_KEEP_ORPHANS:new B(!1),HOMEBRIDGE_INSECURE:new B(!0),ENV_DEBUG:new B(""),ENV_NODE_OPTIONS:new B("")});uiSettingsForm=new pe({port:new B(0)});legacyMdnsFormControl=new de(!1);showAvahiMdnsOption=!1;showResolvedMdnsOption=!1;availableNetworkAdapters=[];bridgeNetworkAdapters=[];hbPortFormControl=new B(0);hbNameFormControl=new B("");uiAuthFormControl=new de(!0);uiSessionTimeoutFormControl=new B(28800);uiLogMaxSizeFormControl=new B;uiLogTruncateSizeFormControl=new B;dummyEnableHttps="off";uiSslKeyFormControl=new B("");uiSslCertFormControl=new B("");uiSslPfxFormControl=new B("");uiSslPassphraseFormControl=new B("");isHbV2=!1;showFields={general:!0,display:!0,startup:!0,network:!0,security:!0,reset:!0,cache:!0};linkDebug='<a href="https://github.com/homebridge/homebridge-config-ui-x/wiki/Debug-Common-Values" target="_blank"><i class="fa fa-fw fa-external-link-alt primary-text"></i></a>';constructor(){}ngOnInit(){this.isHbV2=this.$settings.env.homebridgeVersion.startsWith("2"),this.hbNameFormControl.patchValue(this.$settings.env.homebridgeInstanceName),this.hbNameFormControl.valueChanges.subscribe(e=>this.setHomebridgeName(e)),this.originalHbName=this.$settings.env.homebridgeInstanceName,this.uiAuthFormControl.patchValue(this.$settings.formAuth),this.uiAuthFormControl.valueChanges.subscribe(e=>this.saveUiSettingChange("auth",e)),this.uiSessionTimeoutFormControl.patchValue(this.$settings.sessionTimeout),this.uiSessionTimeoutFormControl.valueChanges.subscribe(e=>this.saveUiSettingChange("sessionTimeout",e)),this.uiLogMaxSizeFormControl.patchValue(this.$settings.env.log?.maxSize),this.uiLogMaxSizeFormControl.valueChanges.subscribe(e=>this.saveUiSettingChange("log.maxSize",e)),this.uiLogTruncateSizeFormControl.patchValue(this.$settings.env.log?.truncateSize),this.uiLogTruncateSizeFormControl.valueChanges.subscribe(e=>this.saveUiSettingChange("log.truncateSize",e)),this.originalSslKey=this.$settings.env.ssl?.key||"",this.originalSslCert=this.$settings.env.ssl?.cert||"",this.originalSslPfx=this.$settings.env.ssl?.pfx||"",this.originalSslPassphrase=this.$settings.env.ssl?.passphrase||"",this.uiSslKeyFormControl.patchValue(this.$settings.env.ssl?.key||""),this.uiSslKeyFormControl.valueChanges.subscribe(e=>this.saveUiSettingChange("ssl.key",e)),this.uiSslCertFormControl.patchValue(this.$settings.env.ssl?.cert||""),this.uiSslCertFormControl.valueChanges.subscribe(e=>this.saveUiSettingChange("ssl.cert",e)),this.uiSslPfxFormControl.patchValue(this.$settings.env.ssl?.pfx||""),this.uiSslPfxFormControl.valueChanges.subscribe(e=>this.saveUiSettingChange("ssl.pfx",e)),this.uiSslPassphraseFormControl.patchValue(this.$settings.env.ssl?.passphrase||""),this.uiSslPassphraseFormControl.valueChanges.subscribe(e=>this.saveUiSettingChange("ssl.passphrase",e)),this.dummyEnableHttps=this.uiSslKeyFormControl.value||this.uiSslCertFormControl.value?"keycert":this.uiSslPfxFormControl.value||this.uiSslPassphraseFormControl.value?"pfx":"off",this.uiSslKeyFormControl.valueChanges.subscribe(e=>{switch(e){case"keycert":this.uiSslPfxFormControl.setValue(""),this.uiSslPassphraseFormControl.setValue("");break;case"pfx":this.uiSslKeyFormControl.setValue(""),this.uiSslCertFormControl.setValue("");break;default:this.uiSslKeyFormControl.setValue(""),this.uiSslCertFormControl.setValue(""),this.uiSslPfxFormControl.setValue(""),this.uiSslPassphraseFormControl.setValue("");break}}),this.initUiSettingsForm(),this.initNetworkingOptions(),this.initStartupSettingsForm()}initUiSettingsForm(){this.originalUiSettingsForm={port:this.$settings.env.port},this.uiSettingsForm.patchValue({port:this.$settings.env.port}),this.uiSettingsForm.valueChanges.pipe(j(500)).subscribe(e=>{let s=!1;Object.keys(e).forEach(p=>{this.originalUiSettingsForm[p]!==e[p]&&(this.saveUiSettingChange(p,e[p]),s=!0)}),this.hasChangedUiSettings=s})}initStartupSettingsForm(){this.$api.get("/platform-tools/hb-service/homebridge-startup-settings").subscribe({next:e=>{Object.keys(e).forEach(s=>{this.originalServiceForm[s]=e[s]}),this.serviceForm.patchValue(e),this.serviceForm.valueChanges.pipe(j(500)).subscribe(this.saveStartupSettingsSettings.bind(this))},error:e=>{console.error(e),this.$toastr.error(e.message,this.$translate.instant("toast.title_error"))}})}saveUiSettingChange(e,s){switch(e){case"lang":this.$settings.setLang(s);break;case"lightingMode":this.$settings.setLightingMode(s,"user");break;case"menuMode":this.$settings.setMenuMode(s),window.location.reload();break;case"theme":this.$settings.setTheme(s);break;case"tempUnits":this.$settings.setEnvItem("temperatureUnits",s);break;case"port":if(!s||typeof s!="number"||s<1025||s>65533||Number.isInteger(s)===!1||s===this.hbPortFormControl.value){this.isInvalidHbUiPort=!0;return}this.$settings.setEnvItem("port",s),this.isInvalidHbUiPort=!1;break;case"auth":this.$settings.setItem("formAuth",s),s=s?"form":"none";break;case"sessionTimeout":if(s&&(typeof s!="number"||s<600||s>864e5||Number.isInteger(s)===!1)){this.isInvalidUiSessionTimeout=!0;return}this.$settings.setItem("sessionTimeout",s),this.isInvalidUiSessionTimeout=!1;break;case"log.maxSize":if(s&&(typeof s!="number"||s<-1||Number.isInteger(s)===!1)){this.isInvalidUiLogMaxSize=!0;return}this.$settings.setEnvItem("log.maxSize",s),this.isInvalidUiLogMaxSize=!1,(!s||s===-1)&&(this.saveUiSettingChange("log.truncateSize",null),this.isInvalidUiLogMaxSize=!1);break;case"log.truncateSize":if(s&&(typeof s!="number"||s<0||Number.isInteger(s)===!1)){this.isInvalidUiLogTruncateSize=!0;return}this.$settings.setEnvItem("log.truncateSize",s),this.isInvalidUiLogTruncateSize=!1;break;case"ssl.key":case"ssl.cert":case"ssl.pfx":case"ssl.passphrase":this.$settings.setEnvItem(e,s);break}N(this.$api.put("/config-editor/ui",{key:e,value:s})).catch(p=>{console.error(p),this.$toastr.error(p.message,this.$translate.instant("toast.title_error"))})}openUiSettings(){this.$plugin.settings({name:"homebridge-config-ui-x",displayName:"Homebridge UI",settingsSchema:!0,links:{}})}openBackupModal(){this.$modal.open(se,{size:"lg",backdrop:"static"})}openWallpaperModal(){this.$modal.open(Qe,{size:"lg",backdrop:"static"})}saveStartupSettingsSettings(e=this.serviceForm.value){this.$api.put("/platform-tools/hb-service/homebridge-startup-settings",e).subscribe({next:()=>{this.hasChangedService=JSON.stringify(e)!==JSON.stringify(this.originalServiceForm)},error:s=>{console.error(s),this.$toastr.error(s.message,this.$translate.instant("toast.title_error"))}})}resetHomebridgeState(){this.$modal.open(Ge,{size:"lg",backdrop:"static"})}unpairAccessory(){this.$modal.open(qe,{size:"lg",backdrop:"static"})}removeAllCachedAccessories(){this.$modal.open(We,{size:"lg",backdrop:"static"})}removeSingleCachedAccessories(){this.$modal.open(De,{size:"lg",backdrop:"static"})}removeBridgeAccessories(){this.$modal.open(je,{size:"lg",backdrop:"static"})}initNetworkingOptions(){return w(this,null,function*(){try{this.getNetworkSettings(),(this.$settings.env.runningInLinux||this.$settings.env.runningInDocker||this.$settings.env.runningInSynologyPackage||this.$settings.env.runningInPackageMode)&&(this.showAvahiMdnsOption=!0,this.showResolvedMdnsOption=!0)}catch{}})}getNetworkSettings(){return w(this,null,function*(){return Promise.all([N(this.$api.get("/server/network-interfaces/system")),N(this.$api.get("/server/network-interfaces/bridge")),N(this.$api.get("/server/mdns-advertiser")),N(this.$api.get("/server/port"))]).then(([e,s,p,v])=>{this.availableNetworkAdapters=e,this.buildBridgeNetworkAdapterList(s),this.legacyMdnsFormControl.patchValue(p.advertiser),this.originalMdnsSetting=p.advertiser,this.originalBridgeNetworkAdapters=this.bridgeNetworkAdapters.map(U=>U.iface),this.legacyMdnsFormControl.valueChanges.subscribe(U=>{this.setHomebridgeMdnsSetting(U)}),this.hbPortFormControl.patchValue(v.port),this.hbPortFormControl.valueChanges.subscribe(U=>this.setHomebridgePort(U)),this.originalHbPort=v.port})})}setHomebridgeMdnsSetting(e){return w(this,null,function*(){this.$api.put("/server/mdns-advertiser",{advertiser:e}).subscribe({next:()=>{this.hasChangedMdns=e!==this.originalMdnsSetting},error:s=>{console.error(s),this.$toastr.error(s.message,this.$translate.instant("toast.title_error"))}})})}setNetworkInterfaces(e){return w(this,null,function*(){this.$api.put("/server/network-interfaces/bridge",{adapters:e}).subscribe({next:()=>{this.hasChangedBridgeNetworkAdapters=this.originalBridgeNetworkAdapters.join(",")!==e.join(",")},error:s=>{console.error(s),this.$toastr.error(s.message,this.$translate.instant("toast.title_error"))}})})}setHomebridgeName(e){return w(this,null,function*(){if(!e||!/^[\p{L}\p{N}][\p{L}\p{N} ']*[\p{L}\p{N}]$/u.test(e)){this.isInvalidHbName=!0;return}this.$api.put("/server/name",{name:e}).subscribe({next:()=>{this.hasChangedHbName=this.originalHbName!==e,this.$settings.setEnvItem("homebridgeInstanceName",e),this.isInvalidHbName=!1},error:()=>{this.isInvalidHbName=!0}})})}setHomebridgePort(e){return w(this,null,function*(){if(e===this.uiSettingsForm.get("port").value){this.isInvalidHbPort=!0;return}this.$api.put("/server/port",{port:e}).subscribe({next:()=>{this.hasChangedHbPort=this.originalHbPort!==e,this.isInvalidHbPort=!1},error:()=>{this.isInvalidHbPort=!0}})})}buildBridgeNetworkAdapterList(e){if(!e.length){this.bridgeNetworkAdapters=[];return}this.bridgeNetworkAdapters=e.map(s=>{let p=this.availableNetworkAdapters.find(v=>v.iface===s);return p?(p.selected=!0,p.missing=!1,p):{iface:s,missing:!0}})}selectNetworkInterfaces(){let e=this.$modal.open(Je,{size:"lg",backdrop:"static"});e.componentInstance.availableNetworkAdapters=this.availableNetworkAdapters,e.componentInstance.bridgeNetworkAdapters=this.bridgeNetworkAdapters,e.result.then(s=>{this.buildBridgeNetworkAdapterList(s),this.setNetworkInterfaces(s)}).catch(()=>{})}toggleSection(e){this.showFields[e]=!this.showFields[e]}static \u0275fac=function(s){return new(s||a)};static \u0275cmp=E({type:a,selectors:[["ng-component"]],decls:55,vars:56,consts:[[1,"primary-text","m-0"],[1,"my-4"],["role","button","tabindex","0",1,"mt-3","hover-pointer",3,"click"],[1,"primary-text"],[1,"fa","fa-fw",3,"ngClass"],["id","fieldsGeneral",1,"list-group","list-group-box","mt-2","mx-0"],["id","fieldsDisplay",1,"list-group","list-group-box","mt-2","mx-0"],["novalidate","",1,"my-4",3,"formGroup"],["id","fieldsStartup",1,"list-group","list-group-box","mb-4","mx-0"],["id","fieldsNetwork",1,"list-group","list-group-box","mt-2","mx-0"],["novalidate","",1,"my-4"],["id","fieldsSecurity",1,"list-group","list-group-box","mt-2","mx-0"],[1,"small","grey-text","mb-2","mx-0"],["id","fieldsCache",1,"list-group","list-group-box","mb-4","mx-0"],["id","fieldsReset",1,"list-group","list-group-box","mt-2","mx-0"],[1,"pb-3"],[1,"list-group-item","d-block","d-md-flex","justify-content-between","align-items-center"],[1,"my-3","my-md-0","pl-0","pl-md-5","w-auto"],["type","text",1,"form-control","custom-input","resp-input",3,"formControl","ngClass"],[1,"list-group-item","d-flex","justify-content-between","align-items-center"],[1,"pe-2"],[1,"btn","btn-primary","waves-effect","m-0","ms-3",2,"min-width","50px",3,"click"],[1,"fas","fa-fw","fa-arrow-right"],["routerLink","/users",1,"btn","btn-primary","waves-effect","m-0","ms-3",2,"min-width","50px"],[1,"list-group-item","d-flex","flex-column","align-items-center"],[1,"grey-text","my-2"],["routerLink","/restart",1,"btn","btn-primary","waves-effect","my-2"],[1,"my-3","my-md-0","ps-0","ps-md-5","w-auto"],[1,"custom-select","resp-select",3,"ngModelChange","ngModel"],["value","auto"],["value","bg"],["value","ca"],["value","zh-CN"],["value","zh-TW"],["value","cs"],["value","nl"],["value","en"],["value","fi"],["value","fr"],["value","de"],["value","he"],["value","hu"],["value","id"],["value","it"],["value","ja"],["value","ko"],["value","mk"],["value","no"],["value","pl"],["value","pt-BR"],["value","pt"],["value","ru"],["value","sl"],["value","es"],["value","sv"],["value","th"],["value","tr"],["value","uk"],["value","orange"],["value","red"],["value","pink"],["value","purple"],["value","deep-purple"],["value","indigo"],["value","blue"],["value","blue-grey"],["value","cyan"],["value","green"],["value","teal"],["value","grey"],["value","brown"],["value","light"],["value","dark"],["value","default"],["value","freeze"],["value","c"],["value","f"],[1,"grey-text","pe-2"],["type","checkbox","id","homebridgeDebugMode","formControlName","HOMEBRIDGE_DEBUG",1,"rendux-input"],["for","homebridgeDebugMode",1,"rendux-label","ms-3",2,"min-width","50px"],["type","checkbox","id","homebridgeInsecureMode","formControlName","HOMEBRIDGE_INSECURE",1,"rendux-input"],["for","homebridgeInsecureMode",1,"rendux-label","ms-3",2,"min-width","50px"],["type","checkbox","id","homebridgeKeepOrphans","formControlName","HOMEBRIDGE_KEEP_ORPHANS",1,"rendux-input"],["for","homebridgeKeepOrphans",1,"rendux-label","ms-3",2,"min-width","50px"],[1,"font-monospace"],[1,"grey-text","pe-2",3,"innerHTML"],["formControlName","ENV_DEBUG","type","text","placeholder","HAP-NodeJS:Advertiser,HAP-NodeJS:Service",1,"form-control","custom-input","resp-input"],["formControlName","ENV_NODE_OPTIONS","type","text","placeholder","--max-old-space-size=512 --max-http-header-size=8192",1,"form-control","custom-input","resp-input"],["type","number","min","-1","placeholder","1000000",1,"form-control","custom-input","resp-input",3,"formControl","ngClass"],["routerLink","/platform-tools/docker/startup-script",1,"btn","btn-primary","waves-effect","m-0","ms-3",2,"min-width","50px"],["type","number","min","0","placeholder","200000",1,"form-control","custom-input","resp-input",3,"formControl","ngClass"],[1,"small","grey-text","pe-2"],[1,"badge","badge-primary","me-1",3,"ngClass"],[1,"btn","btn-primary","waves-effect","m-0","ms-3",2,"min-width","50px",3,"click","disabled"],[1,"fas","fa-fw","fa-arrow-right",3,"ngClass"],[1,"custom-select","resp-select",3,"formControl"],["value","avahi"],["value","ciao"],["value","bonjour-hap"],["value","resolved"],["type","number","min","1025","max","65533",1,"form-control","custom-input","resp-input",3,"formControl","ngClass"],["type","number","min","1025","max","65533","placeholder","8581","formControlName","port",1,"form-control","custom-input","resp-input",3,"ngClass"],[1,"fas","fa-fw","fa-exclamation-triangle"],[1,"fw-normal"],["type","checkbox","id","uiAuthForm",1,"rendux-input",3,"formControl"],["for","uiAuthForm",1,"rendux-label","ms-3",2,"min-width","50px"],[1,"custom-select","resp-select",3,"ngModelChange","ngModel","ngModelOptions"],["value","off"],["value","keycert"],["value","pfx"],["type","number","min","600","max","86400000","placeholder","28800",1,"form-control","custom-input","resp-input",3,"formControl","ngClass"],["type","text","placeholder","/Users/.../certs/server.key",1,"form-control","custom-input","resp-input",3,"formControl"],["type","text","placeholder","/Users/.../certs/server.crt",1,"form-control","custom-input","resp-input",3,"formControl"],["type","text","placeholder","/Users/.../certs/server.pfx",1,"form-control","custom-input","resp-input",3,"formControl"],["placeholder","mypassphrase",1,"form-control","custom-input","resp-input",3,"focus","blur","type","formControl"]],template:function(s,p){s&1&&(i(0,"h3",0),l(1),r(2,"translate"),n(),i(3,"div",1)(4,"div",2),x("click",function(){return p.toggleSection("general")}),i(5,"h5",3),d(6,"i",4),l(7),r(8,"translate"),n()(),b(9,fi,29,26,"ul",5),n(),i(10,"div",1)(11,"div",2),x("click",function(){return p.toggleSection("display")}),i(12,"h5",3),d(13,"i",4),l(14),r(15,"translate"),n()(),b(16,xi,152,89,"ul",6),n(),i(17,"form",7)(18,"div",2),x("click",function(){return p.toggleSection("startup")}),i(19,"h5",3),d(20,"i",4),l(21),r(22,"translate"),n()(),b(23,ki,73,52,"ul",8),n(),i(24,"form",7)(25,"div",2),x("click",function(){return p.toggleSection("network")}),i(26,"h5",3),d(27,"i",4),l(28),r(29,"translate"),n()(),b(30,$i,55,54,"ul",9),n(),i(31,"form",10)(32,"div",2),x("click",function(){return p.toggleSection("security")}),i(33,"h5",3),d(34,"i",4),l(35),r(36,"translate"),n()(),b(37,Vi,35,35,"ul",11),n(),i(38,"div",1)(39,"div",2),x("click",function(){return p.toggleSection("cache")}),i(40,"h5",3),d(41,"i",4),l(42),r(43,"translate"),n()(),b(44,Ni,3,3,"p",12),b(45,Ri,34,27,"ul",13),n(),i(46,"div",1)(47,"div",2),x("click",function(){return p.toggleSection("reset")}),i(48,"h5",3),d(49,"i",4),l(50),r(51,"translate"),n()(),b(52,Pi,3,3,"p",12),b(53,Di,24,20,"ul",14),n(),d(54,"div",15)),s&2&&(t(),c(o(2,40,"menu.settings.title")),t(3),f("aria-expanded",p.showFields.general?"true":"false")("aria-controls","fieldsGeneral"),t(2),u("ngClass",p.showFields.general?"fa-chevron-down":"fa-chevron-right"),t(),_(" ",o(8,42,"settings.general.title_general")," "),t(2),h(p.showFields.general?9:-1),t(2),f("aria-expanded",p.showFields.display?"true":"false")("aria-controls","fieldsDisplay"),t(2),u("ngClass",p.showFields.display?"fa-chevron-down":"fa-chevron-right"),t(),_(" ",o(15,44,"settings.general.title_display")," "),t(2),h(p.showFields.display?16:-1),t(),u("formGroup",p.serviceForm),t(),f("aria-expanded",p.showFields.startup?"true":"false")("aria-controls","fieldsStartup"),t(2),u("ngClass",p.showFields.startup?"fa-chevron-down":"fa-chevron-right"),t(),_(" ",o(22,46,"settings.title_startup_options")," "),t(2),h(p.showFields.startup?23:-1),t(),u("formGroup",p.uiSettingsForm),t(),f("aria-expanded",p.showFields.network?"true":"false")("aria-controls","fieldsNetwork"),t(2),u("ngClass",p.showFields.network?"fa-chevron-down":"fa-chevron-right"),t(),_(" ",o(29,48,"settings.network.title_network")," "),t(2),h(p.showFields.network?30:-1),t(2),f("aria-expanded",p.showFields.security?"true":"false")("aria-controls","fieldsSecurity"),t(2),u("ngClass",p.showFields.security?"fa-chevron-down":"fa-chevron-right"),t(),_(" ",o(36,50,"settings.network.title_security")," "),t(2),h(p.showFields.security?37:-1),t(2),f("aria-expanded",p.showFields.cache?"true":"false")("aria-controls","fieldsCache"),t(2),u("ngClass",p.showFields.cache?"fa-chevron-down":"fa-chevron-right"),t(),_(" ",o(43,52,"settings.cache.title")," "),t(2),h(p.showFields.cache?44:-1),t(),h(p.showFields.cache?45:-1),t(2),f("aria-expanded",p.showFields.reset?"true":"false")("aria-controls","fieldsReset"),t(2),u("ngClass",p.showFields.reset?"fa-chevron-down":"fa-chevron-right"),t(),_(" ",o(51,54,"reset.bridges.title")," "),t(2),h(p.showFields.reset?52:-1),t(),h(p.showFields.reset?53:-1))},dependencies:[L,Ne,re,we,Te,Fe,ie,Be,K,$e,q,ke,Ae,Me,ne,ye,J,ae,Ee,Ie,te,I],encapsulation:2})}return a})();export{se as a,We as b,Ge as c,Je as d,Qe as e,Da as f};
@@ -1 +1 @@
1
- import{$ as M,B as F,C as P,D as q,Da as w,L as J,Nc as Z,O as L,Y as R,a as I,fb as N,ga as h,ha as X,ja as v,ka as o,mb as z,ob as W,r as p,t as f,tb as S,x as V}from"./chunk-QSPBB6EE.js";var c=class{},Q=(()=>{class n extends c{getTranslation(e){return p({})}static \u0275fac=(()=>{let e;return function(s){return(e||(e=w(n)))(s||n)}})();static \u0275prov=h({token:n,factory:n.\u0275fac})}return n})(),b=class{},Y=(()=>{class n{handle(e){return e.key}static \u0275fac=function(t){return new(t||n)};static \u0275prov=h({token:n,factory:n.\u0275fac})}return n})();function j(n,r){if(n===r)return!0;if(n===null||r===null)return!1;if(n!==n&&r!==r)return!0;let e=typeof n,t=typeof r,s,i,a;if(e==t&&e=="object")if(Array.isArray(n)){if(!Array.isArray(r))return!1;if((s=n.length)==r.length){for(i=0;i<s;i++)if(!j(n[i],r[i]))return!1;return!0}}else{if(Array.isArray(r))return!1;a=Object.create(null);for(i in n){if(!j(n[i],r[i]))return!1;a[i]=!0}for(i in r)if(!(i in a)&&typeof r[i]<"u")return!1;return!0}return!1}function u(n){return typeof n<"u"&&n!==null}function D(n){return E(n)&&!H(n)&&n!==null}function E(n){return typeof n=="object"}function H(n){return Array.isArray(n)}function $(n){return typeof n=="string"}function ne(n){return typeof n=="function"}function K(n,r){let e=Object.assign({},n);return E(n)?(E(n)&&E(r)&&Object.keys(r).forEach(t=>{D(r[t])?t in n?e[t]=K(n[t],r[t]):Object.assign(e,{[t]:r[t]}):Object.assign(e,{[t]:r[t]})}),e):K({},r)}function x(n,r){let e=r.split(".");r="";do r+=e.shift(),u(n)&&u(n[r])&&(D(n[r])||H(n[r])||!e.length)?(n=n[r],r=""):e.length?r+=".":n=void 0;while(e.length);return n}function se(n,r,e){let t=r.split("."),s=n;for(let i=0;i<t.length;i++){let a=t[i];i===t.length-1?s[a]=e:((!s[a]||!D(s[a]))&&(s[a]={}),s=s[a])}}var d=class{},k=(()=>{class n extends d{templateMatcher=/{{\s?([^{}\s]*)\s?}}/g;interpolate(e,t){if($(e))return this.interpolateString(e,t);if(ne(e))return this.interpolateFunction(e,t)}interpolateFunction(e,t){return e(t)}interpolateString(e,t){return t?e.replace(this.templateMatcher,(s,i)=>{let a=x(t,i);return u(a)?a:s}):e}static \u0275fac=(()=>{let e;return function(s){return(e||(e=w(n)))(s||n)}})();static \u0275prov=h({token:n,factory:n.\u0275fac})}return n})(),g=class{},ee=(()=>{class n extends g{compile(e,t){return e}compileTranslations(e,t){return e}static \u0275fac=(()=>{let e;return function(s){return(e||(e=w(n)))(s||n)}})();static \u0275prov=h({token:n,factory:n.\u0275fac})}return n})(),m=class{defaultLang;currentLang=this.defaultLang;translations={};langs=[];onTranslationChange=new S;onLangChange=new S;onDefaultLangChange=new S},O=new v("ISOLATE_TRANSLATE_SERVICE"),U=new v("USE_DEFAULT_LANG"),_=new v("DEFAULT_LANGUAGE"),B=new v("USE_EXTEND"),C=n=>f(n)?n:p(n),G=(()=>{class n{store;currentLoader;compiler;parser;missingTranslationHandler;useDefaultLang;extend;loadingTranslations;pending=!1;_translationRequests={};lastUseLanguage=null;get onTranslationChange(){return this.store.onTranslationChange}get onLangChange(){return this.store.onLangChange}get onDefaultLangChange(){return this.store.onDefaultLangChange}get defaultLang(){return this.store.defaultLang}set defaultLang(e){this.store.defaultLang=e}get currentLang(){return this.store.currentLang}set currentLang(e){this.store.currentLang=e}get langs(){return this.store.langs}set langs(e){this.store.langs=e}get translations(){return this.store.translations}set translations(e){this.store.translations=e}constructor(e,t,s,i,a,A=!0,l=!1,T=!1,y){this.store=e,this.currentLoader=t,this.compiler=s,this.parser=i,this.missingTranslationHandler=a,this.useDefaultLang=A,this.extend=T,l&&(this.store=new m),y&&this.setDefaultLang(y)}setDefaultLang(e){if(e===this.defaultLang)return;let t=this.retrieveTranslations(e);typeof t<"u"?(this.defaultLang==null&&(this.defaultLang=e),t.pipe(L(1)).subscribe(()=>{this.changeDefaultLang(e)})):this.changeDefaultLang(e)}getDefaultLang(){return this.defaultLang}use(e){if(this.lastUseLanguage=e,e===this.currentLang)return p(this.translations[e]);this.currentLang||(this.currentLang=e);let t=this.retrieveTranslations(e);return f(t)?(t.pipe(L(1)).subscribe(()=>{this.changeLang(e)}),t):(this.changeLang(e),p(this.translations[e]))}changeLang(e){e===this.lastUseLanguage&&(this.currentLang=e,this.onLangChange.emit({lang:e,translations:this.translations[e]}),this.defaultLang==null&&this.changeDefaultLang(e))}retrieveTranslations(e){if(typeof this.translations[e]>"u"||this.extend)return this._translationRequests[e]=this._translationRequests[e]||this.loadAndCompileTranslations(e),this._translationRequests[e]}getTranslation(e){return this.loadAndCompileTranslations(e)}loadAndCompileTranslations(e){this.pending=!0;let t=this.currentLoader.getTranslation(e).pipe(R(1),L(1));return this.loadingTranslations=t.pipe(V(s=>this.compiler.compileTranslations(s,e)),R(1),L(1)),this.loadingTranslations.subscribe({next:s=>{this.translations[e]=this.extend&&this.translations[e]?I(I({},s),this.translations[e]):s,this.updateLangs(),this.pending=!1},error:s=>{this.pending=!1}}),t}setTranslation(e,t,s=!1){let i=this.compiler.compileTranslations(t,e);(s||this.extend)&&this.translations[e]?this.translations[e]=K(this.translations[e],i):this.translations[e]=i,this.updateLangs(),this.onTranslationChange.emit({lang:e,translations:this.translations[e]})}getLangs(){return this.langs}addLangs(e){let t=e.filter(s=>!this.langs.includes(s));t.length>0&&(this.langs=[...this.langs,...t])}updateLangs(){this.addLangs(Object.keys(this.translations))}getParsedResultForKey(e,t,s){let i;if(e&&(i=this.runInterpolation(x(e,t),s)),i===void 0&&this.defaultLang!=null&&this.defaultLang!==this.currentLang&&this.useDefaultLang&&(i=this.runInterpolation(x(this.translations[this.defaultLang],t),s)),i===void 0){let a={key:t,translateService:this};typeof s<"u"&&(a.interpolateParams=s),i=this.missingTranslationHandler.handle(a)}return i!==void 0?i:t}runInterpolation(e,t){if(H(e))return e.map(s=>this.runInterpolation(s,t));if(D(e)){let s={};for(let i in e){let a=this.runInterpolation(e[i],t);a!==void 0&&(s[i]=a)}return s}else return this.parser.interpolate(e,t)}getParsedResult(e,t,s){if(t instanceof Array){let i={},a=!1;for(let l of t)i[l]=this.getParsedResultForKey(e,l,s),a=a||f(i[l]);if(!a)return i;let A=t.map(l=>C(i[l]));return q(A).pipe(V(l=>{let T={};return l.forEach((y,te)=>{T[t[te]]=y}),T}))}return this.getParsedResultForKey(e,t,s)}get(e,t){if(!u(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return this.pending?this.loadingTranslations.pipe(J(s=>C(this.getParsedResult(s,e,t)))):C(this.getParsedResult(this.translations[this.currentLang],e,t))}getStreamOnTranslationChange(e,t){if(!u(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return F(P(()=>this.get(e,t)),this.onTranslationChange.pipe(M(s=>{let i=this.getParsedResult(s.translations,e,t);return C(i)})))}stream(e,t){if(!u(e)||!e.length)throw new Error('Parameter "key" required');return F(P(()=>this.get(e,t)),this.onLangChange.pipe(M(s=>{let i=this.getParsedResult(s.translations,e,t);return C(i)})))}instant(e,t){if(!u(e)||e.length===0)throw new Error('Parameter "key" is required and cannot be empty');let s=this.getParsedResult(this.translations[this.currentLang],e,t);return f(s)?Array.isArray(e)?e.reduce((i,a)=>(i[a]=a,i),{}):e:s}set(e,t,s=this.currentLang){se(this.translations[s],e,$(t)?this.compiler.compile(t,s):this.compiler.compileTranslations(t,s)),this.updateLangs(),this.onTranslationChange.emit({lang:s,translations:this.translations[s]})}changeDefaultLang(e){this.defaultLang=e,this.onDefaultLangChange.emit({lang:e,translations:this.translations[e]})}reloadLang(e){return this.resetLang(e),this.loadAndCompileTranslations(e)}resetLang(e){delete this._translationRequests[e],delete this.translations[e]}getBrowserLang(){if(typeof window>"u"||!window.navigator)return;let e=this.getBrowserCultureLang();return e?e.split(/[-_]/)[0]:void 0}getBrowserCultureLang(){if(!(typeof window>"u"||typeof window.navigator>"u"))return window.navigator.languages?window.navigator.languages[0]:window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage}static \u0275fac=function(t){return new(t||n)(o(m),o(c),o(g),o(d),o(b),o(U),o(O),o(B),o(_))};static \u0275prov=h({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var ve=(()=>{class n{translate;_ref;value="";lastKey=null;lastParams=[];onTranslationChange;onLangChange;onDefaultLangChange;constructor(e,t){this.translate=e,this._ref=t}updateValue(e,t,s){let i=a=>{this.value=a!==void 0?a:e,this.lastKey=e,this._ref.markForCheck()};if(s){let a=this.translate.getParsedResult(s,e,t);f(a)?a.subscribe(i):i(a)}this.translate.get(e,t).subscribe(i)}transform(e,...t){if(!e||!e.length)return e;if(j(e,this.lastKey)&&j(t,this.lastParams))return this.value;let s;if(u(t[0])&&t.length)if($(t[0])&&t[0].length){let i=t[0].replace(/(')?([a-zA-Z0-9_]+)(')?(\s)?:/g,'"$2":').replace(/:(\s)?(')(.*?)(')/g,':"$3"');try{s=JSON.parse(i)}catch(a){throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${t[0]}`)}}else D(t[0])&&(s=t[0]);return this.lastKey=e,this.lastParams=t,this.updateValue(e,s),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(i=>{this.lastKey&&i.lang===this.translate.currentLang&&(this.lastKey=null,this.updateValue(e,s,i.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(i=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,s,i.translations))})),this.onDefaultLangChange||(this.onDefaultLangChange=this.translate.onDefaultLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,s))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onDefaultLangChange<"u"&&(this.onDefaultLangChange.unsubscribe(),this.onDefaultLangChange=void 0)}ngOnDestroy(){this._dispose()}static \u0275fac=function(t){return new(t||n)(N(G,16),N(Z,16))};static \u0275pipe=W({name:"translate",type:n,pure:!1});static \u0275prov=h({token:n,factory:n.\u0275fac})}return n})();var Ce=(()=>{class n{static forRoot(e={}){return{ngModule:n,providers:[e.loader||{provide:c,useClass:Q},e.compiler||{provide:g,useClass:ee},e.parser||{provide:d,useClass:k},e.missingTranslationHandler||{provide:b,useClass:Y},m,{provide:O,useValue:e.isolate},{provide:U,useValue:e.useDefaultLang},{provide:B,useValue:e.extend},{provide:_,useValue:e.defaultLanguage},G]}}static forChild(e={}){return{ngModule:n,providers:[e.loader||{provide:c,useClass:Q},e.compiler||{provide:g,useClass:ee},e.parser||{provide:d,useClass:k},e.missingTranslationHandler||{provide:b,useClass:Y},{provide:O,useValue:e.isolate},{provide:U,useValue:e.useDefaultLang},{provide:B,useValue:e.extend},{provide:_,useValue:e.defaultLanguage},G]}}static \u0275fac=function(t){return new(t||n)};static \u0275mod=z({type:n});static \u0275inj=X({})}return n})();export{G as a,ve as b,Ce as c};
1
+ import{$ as M,B as F,C as P,D as q,Da as w,L as J,Nc as Z,O as L,Y as R,a as I,fb as N,ga as h,ha as X,ja as v,ka as o,mb as z,ob as W,r as p,t as f,tb as S,x as V}from"./chunk-NR37MAXW.js";var c=class{},Q=(()=>{class n extends c{getTranslation(e){return p({})}static \u0275fac=(()=>{let e;return function(s){return(e||(e=w(n)))(s||n)}})();static \u0275prov=h({token:n,factory:n.\u0275fac})}return n})(),b=class{},Y=(()=>{class n{handle(e){return e.key}static \u0275fac=function(t){return new(t||n)};static \u0275prov=h({token:n,factory:n.\u0275fac})}return n})();function j(n,r){if(n===r)return!0;if(n===null||r===null)return!1;if(n!==n&&r!==r)return!0;let e=typeof n,t=typeof r,s,i,a;if(e==t&&e=="object")if(Array.isArray(n)){if(!Array.isArray(r))return!1;if((s=n.length)==r.length){for(i=0;i<s;i++)if(!j(n[i],r[i]))return!1;return!0}}else{if(Array.isArray(r))return!1;a=Object.create(null);for(i in n){if(!j(n[i],r[i]))return!1;a[i]=!0}for(i in r)if(!(i in a)&&typeof r[i]<"u")return!1;return!0}return!1}function u(n){return typeof n<"u"&&n!==null}function D(n){return E(n)&&!H(n)&&n!==null}function E(n){return typeof n=="object"}function H(n){return Array.isArray(n)}function $(n){return typeof n=="string"}function ne(n){return typeof n=="function"}function K(n,r){let e=Object.assign({},n);return E(n)?(E(n)&&E(r)&&Object.keys(r).forEach(t=>{D(r[t])?t in n?e[t]=K(n[t],r[t]):Object.assign(e,{[t]:r[t]}):Object.assign(e,{[t]:r[t]})}),e):K({},r)}function x(n,r){let e=r.split(".");r="";do r+=e.shift(),u(n)&&u(n[r])&&(D(n[r])||H(n[r])||!e.length)?(n=n[r],r=""):e.length?r+=".":n=void 0;while(e.length);return n}function se(n,r,e){let t=r.split("."),s=n;for(let i=0;i<t.length;i++){let a=t[i];i===t.length-1?s[a]=e:((!s[a]||!D(s[a]))&&(s[a]={}),s=s[a])}}var d=class{},k=(()=>{class n extends d{templateMatcher=/{{\s?([^{}\s]*)\s?}}/g;interpolate(e,t){if($(e))return this.interpolateString(e,t);if(ne(e))return this.interpolateFunction(e,t)}interpolateFunction(e,t){return e(t)}interpolateString(e,t){return t?e.replace(this.templateMatcher,(s,i)=>{let a=x(t,i);return u(a)?a:s}):e}static \u0275fac=(()=>{let e;return function(s){return(e||(e=w(n)))(s||n)}})();static \u0275prov=h({token:n,factory:n.\u0275fac})}return n})(),g=class{},ee=(()=>{class n extends g{compile(e,t){return e}compileTranslations(e,t){return e}static \u0275fac=(()=>{let e;return function(s){return(e||(e=w(n)))(s||n)}})();static \u0275prov=h({token:n,factory:n.\u0275fac})}return n})(),m=class{defaultLang;currentLang=this.defaultLang;translations={};langs=[];onTranslationChange=new S;onLangChange=new S;onDefaultLangChange=new S},O=new v("ISOLATE_TRANSLATE_SERVICE"),U=new v("USE_DEFAULT_LANG"),_=new v("DEFAULT_LANGUAGE"),B=new v("USE_EXTEND"),C=n=>f(n)?n:p(n),G=(()=>{class n{store;currentLoader;compiler;parser;missingTranslationHandler;useDefaultLang;extend;loadingTranslations;pending=!1;_translationRequests={};lastUseLanguage=null;get onTranslationChange(){return this.store.onTranslationChange}get onLangChange(){return this.store.onLangChange}get onDefaultLangChange(){return this.store.onDefaultLangChange}get defaultLang(){return this.store.defaultLang}set defaultLang(e){this.store.defaultLang=e}get currentLang(){return this.store.currentLang}set currentLang(e){this.store.currentLang=e}get langs(){return this.store.langs}set langs(e){this.store.langs=e}get translations(){return this.store.translations}set translations(e){this.store.translations=e}constructor(e,t,s,i,a,A=!0,l=!1,T=!1,y){this.store=e,this.currentLoader=t,this.compiler=s,this.parser=i,this.missingTranslationHandler=a,this.useDefaultLang=A,this.extend=T,l&&(this.store=new m),y&&this.setDefaultLang(y)}setDefaultLang(e){if(e===this.defaultLang)return;let t=this.retrieveTranslations(e);typeof t<"u"?(this.defaultLang==null&&(this.defaultLang=e),t.pipe(L(1)).subscribe(()=>{this.changeDefaultLang(e)})):this.changeDefaultLang(e)}getDefaultLang(){return this.defaultLang}use(e){if(this.lastUseLanguage=e,e===this.currentLang)return p(this.translations[e]);this.currentLang||(this.currentLang=e);let t=this.retrieveTranslations(e);return f(t)?(t.pipe(L(1)).subscribe(()=>{this.changeLang(e)}),t):(this.changeLang(e),p(this.translations[e]))}changeLang(e){e===this.lastUseLanguage&&(this.currentLang=e,this.onLangChange.emit({lang:e,translations:this.translations[e]}),this.defaultLang==null&&this.changeDefaultLang(e))}retrieveTranslations(e){if(typeof this.translations[e]>"u"||this.extend)return this._translationRequests[e]=this._translationRequests[e]||this.loadAndCompileTranslations(e),this._translationRequests[e]}getTranslation(e){return this.loadAndCompileTranslations(e)}loadAndCompileTranslations(e){this.pending=!0;let t=this.currentLoader.getTranslation(e).pipe(R(1),L(1));return this.loadingTranslations=t.pipe(V(s=>this.compiler.compileTranslations(s,e)),R(1),L(1)),this.loadingTranslations.subscribe({next:s=>{this.translations[e]=this.extend&&this.translations[e]?I(I({},s),this.translations[e]):s,this.updateLangs(),this.pending=!1},error:s=>{this.pending=!1}}),t}setTranslation(e,t,s=!1){let i=this.compiler.compileTranslations(t,e);(s||this.extend)&&this.translations[e]?this.translations[e]=K(this.translations[e],i):this.translations[e]=i,this.updateLangs(),this.onTranslationChange.emit({lang:e,translations:this.translations[e]})}getLangs(){return this.langs}addLangs(e){let t=e.filter(s=>!this.langs.includes(s));t.length>0&&(this.langs=[...this.langs,...t])}updateLangs(){this.addLangs(Object.keys(this.translations))}getParsedResultForKey(e,t,s){let i;if(e&&(i=this.runInterpolation(x(e,t),s)),i===void 0&&this.defaultLang!=null&&this.defaultLang!==this.currentLang&&this.useDefaultLang&&(i=this.runInterpolation(x(this.translations[this.defaultLang],t),s)),i===void 0){let a={key:t,translateService:this};typeof s<"u"&&(a.interpolateParams=s),i=this.missingTranslationHandler.handle(a)}return i!==void 0?i:t}runInterpolation(e,t){if(H(e))return e.map(s=>this.runInterpolation(s,t));if(D(e)){let s={};for(let i in e){let a=this.runInterpolation(e[i],t);a!==void 0&&(s[i]=a)}return s}else return this.parser.interpolate(e,t)}getParsedResult(e,t,s){if(t instanceof Array){let i={},a=!1;for(let l of t)i[l]=this.getParsedResultForKey(e,l,s),a=a||f(i[l]);if(!a)return i;let A=t.map(l=>C(i[l]));return q(A).pipe(V(l=>{let T={};return l.forEach((y,te)=>{T[t[te]]=y}),T}))}return this.getParsedResultForKey(e,t,s)}get(e,t){if(!u(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return this.pending?this.loadingTranslations.pipe(J(s=>C(this.getParsedResult(s,e,t)))):C(this.getParsedResult(this.translations[this.currentLang],e,t))}getStreamOnTranslationChange(e,t){if(!u(e)||!e.length)throw new Error('Parameter "key" is required and cannot be empty');return F(P(()=>this.get(e,t)),this.onTranslationChange.pipe(M(s=>{let i=this.getParsedResult(s.translations,e,t);return C(i)})))}stream(e,t){if(!u(e)||!e.length)throw new Error('Parameter "key" required');return F(P(()=>this.get(e,t)),this.onLangChange.pipe(M(s=>{let i=this.getParsedResult(s.translations,e,t);return C(i)})))}instant(e,t){if(!u(e)||e.length===0)throw new Error('Parameter "key" is required and cannot be empty');let s=this.getParsedResult(this.translations[this.currentLang],e,t);return f(s)?Array.isArray(e)?e.reduce((i,a)=>(i[a]=a,i),{}):e:s}set(e,t,s=this.currentLang){se(this.translations[s],e,$(t)?this.compiler.compile(t,s):this.compiler.compileTranslations(t,s)),this.updateLangs(),this.onTranslationChange.emit({lang:s,translations:this.translations[s]})}changeDefaultLang(e){this.defaultLang=e,this.onDefaultLangChange.emit({lang:e,translations:this.translations[e]})}reloadLang(e){return this.resetLang(e),this.loadAndCompileTranslations(e)}resetLang(e){delete this._translationRequests[e],delete this.translations[e]}getBrowserLang(){if(typeof window>"u"||!window.navigator)return;let e=this.getBrowserCultureLang();return e?e.split(/[-_]/)[0]:void 0}getBrowserCultureLang(){if(!(typeof window>"u"||typeof window.navigator>"u"))return window.navigator.languages?window.navigator.languages[0]:window.navigator.language||window.navigator.browserLanguage||window.navigator.userLanguage}static \u0275fac=function(t){return new(t||n)(o(m),o(c),o(g),o(d),o(b),o(U),o(O),o(B),o(_))};static \u0275prov=h({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();var ve=(()=>{class n{translate;_ref;value="";lastKey=null;lastParams=[];onTranslationChange;onLangChange;onDefaultLangChange;constructor(e,t){this.translate=e,this._ref=t}updateValue(e,t,s){let i=a=>{this.value=a!==void 0?a:e,this.lastKey=e,this._ref.markForCheck()};if(s){let a=this.translate.getParsedResult(s,e,t);f(a)?a.subscribe(i):i(a)}this.translate.get(e,t).subscribe(i)}transform(e,...t){if(!e||!e.length)return e;if(j(e,this.lastKey)&&j(t,this.lastParams))return this.value;let s;if(u(t[0])&&t.length)if($(t[0])&&t[0].length){let i=t[0].replace(/(')?([a-zA-Z0-9_]+)(')?(\s)?:/g,'"$2":').replace(/:(\s)?(')(.*?)(')/g,':"$3"');try{s=JSON.parse(i)}catch(a){throw new SyntaxError(`Wrong parameter in TranslatePipe. Expected a valid Object, received: ${t[0]}`)}}else D(t[0])&&(s=t[0]);return this.lastKey=e,this.lastParams=t,this.updateValue(e,s),this._dispose(),this.onTranslationChange||(this.onTranslationChange=this.translate.onTranslationChange.subscribe(i=>{this.lastKey&&i.lang===this.translate.currentLang&&(this.lastKey=null,this.updateValue(e,s,i.translations))})),this.onLangChange||(this.onLangChange=this.translate.onLangChange.subscribe(i=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,s,i.translations))})),this.onDefaultLangChange||(this.onDefaultLangChange=this.translate.onDefaultLangChange.subscribe(()=>{this.lastKey&&(this.lastKey=null,this.updateValue(e,s))})),this.value}_dispose(){typeof this.onTranslationChange<"u"&&(this.onTranslationChange.unsubscribe(),this.onTranslationChange=void 0),typeof this.onLangChange<"u"&&(this.onLangChange.unsubscribe(),this.onLangChange=void 0),typeof this.onDefaultLangChange<"u"&&(this.onDefaultLangChange.unsubscribe(),this.onDefaultLangChange=void 0)}ngOnDestroy(){this._dispose()}static \u0275fac=function(t){return new(t||n)(N(G,16),N(Z,16))};static \u0275pipe=W({name:"translate",type:n,pure:!1});static \u0275prov=h({token:n,factory:n.\u0275fac})}return n})();var Ce=(()=>{class n{static forRoot(e={}){return{ngModule:n,providers:[e.loader||{provide:c,useClass:Q},e.compiler||{provide:g,useClass:ee},e.parser||{provide:d,useClass:k},e.missingTranslationHandler||{provide:b,useClass:Y},m,{provide:O,useValue:e.isolate},{provide:U,useValue:e.useDefaultLang},{provide:B,useValue:e.extend},{provide:_,useValue:e.defaultLanguage},G]}}static forChild(e={}){return{ngModule:n,providers:[e.loader||{provide:c,useClass:Q},e.compiler||{provide:g,useClass:ee},e.parser||{provide:d,useClass:k},e.missingTranslationHandler||{provide:b,useClass:Y},{provide:O,useValue:e.isolate},{provide:U,useValue:e.useDefaultLang},{provide:B,useValue:e.extend},{provide:_,useValue:e.defaultLanguage},G]}}static \u0275fac=function(t){return new(t||n)};static \u0275mod=z({type:n});static \u0275inj=X({})}return n})();export{G as a,ve as b,Ce as c};
@@ -1 +1 @@
1
- import{m as H}from"./chunk-OHFVMRCL.js";import{b as h}from"./chunk-KPKQNEWS.js";import{$a as i,Ac as d,Bc as p,Gb as C,Hb as r,Ib as s,Nb as u,Ob as o,Pb as a,Qb as m,Ub as k,Xa as _,Xb as x,Ya as B,Yb as c,ga as L,ic as w,jc as b,kc as S,la as y,lb as M,lc as v,n as T,ra as I,sa as g,tc as E}from"./chunk-QSPBB6EE.js";var U=(()=>{class t{raspberryPiThrottled=new T;static \u0275fac=function(l){return new(l||t)};static \u0275prov=L({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function V(t,f){if(t&1&&m(0,"i",15),t&2){let e=c();w(E("fas fa-fw ",e.faIconClass," mb-3"))}}function j(t,f){if(t&1&&m(0,"h5",6),t&2){let e=c();u("innerHTML",e.subtitle,_)}}function D(t,f){if(t&1&&m(0,"p",8),t&2){let e=c();u("innerHTML",e.message2,_)}}function $(t,f){if(t&1){let e=k();o(0,"button",16),d(1,"translate"),x("click",function(){I(e);let n=c();return g(n.$activeModal.dismiss("Dismiss"))}),b(2),d(3,"translate"),a()}t&2&&(C("aria-label",p(1,2,"form.button_close")),i(2),v(" ",p(3,4,"form.button_close")," "))}function F(t,f){if(t&1){let e=k();o(0,"button",16),d(1,"translate"),x("click",function(){I(e);let n=c();return g(n.$activeModal.dismiss("Dismiss"))}),b(2),d(3,"translate"),a()}t&2&&(C("aria-label",p(1,2,"form.button_close")),i(2),v(" ",p(3,4,"form.button_close")," "))}function P(t,f){if(t&1&&(o(0,"a",14),b(1),m(2,"i",17),a()),t&2){let e=c();u("href",e.ctaButtonLink,B),i(),v(" ",e.ctaButtonLabel," ")}}var R=(()=>{class t{$activeModal=y(H);title;subtitle;message;message2;ctaButtonLabel;ctaButtonLink;faIconClass;constructor(){}static \u0275fac=function(l){return new(l||t)};static \u0275cmp=M({type:t,selectors:[["ng-component"]],inputs:{title:"title",subtitle:"subtitle",message:"message",message2:"message2",ctaButtonLabel:"ctaButtonLabel",ctaButtonLink:"ctaButtonLink",faIconClass:"faIconClass"},decls:18,vars:11,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body","text-center"],[2,"font-size","75px",3,"class"],[1,"mb-3",3,"innerHTML"],[1,"mb-0",3,"innerHTML"],[1,"mb-0","mt-3",3,"innerHTML"],[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"],["target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","text-decoration-none",3,"href"],[2,"font-size","75px"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"fas","fa-fw","fa-external-link-alt"]],template:function(l,n){l&1&&(o(0,"div",0)(1,"div",1)(2,"h5",2),b(3),a(),o(4,"button",3),d(5,"translate"),x("click",function(){return n.$activeModal.dismiss("Dismiss")}),a()(),o(6,"div",4),r(7,V,1,3,"i",5),r(8,j,1,1,"h5",6),m(9,"p",7),r(10,D,1,1,"p",8),a(),o(11,"div",9)(12,"div",10),r(13,$,4,6,"button",11),a(),o(14,"div",12),r(15,F,4,6,"button",11),a(),o(16,"div",13),r(17,P,3,2,"a",14),a()()()),l&2&&(i(3),S(n.title),i(),C("aria-label",p(5,9,"form.button_close")),i(3),s(n.faIconClass?7:-1),i(),s(n.subtitle?8:-1),i(),u("innerHTML",n.message,_),i(),s(n.message2?10:-1),i(3),s(n.ctaButtonLink?13:-1),i(2),s(n.ctaButtonLink?-1:15),i(2),s(n.ctaButtonLink?17:-1))},dependencies:[h],encapsulation:2})}return t})();export{R as a,U as b};
1
+ import{m as H}from"./chunk-2EMPNH2X.js";import{b as h}from"./chunk-GOW5VSYJ.js";import{$a as i,Ac as d,Bc as p,Gb as C,Hb as r,Ib as s,Nb as u,Ob as o,Pb as a,Qb as m,Ub as k,Xa as _,Xb as x,Ya as B,Yb as c,ga as L,ic as w,jc as b,kc as S,la as y,lb as M,lc as v,n as T,ra as I,sa as g,tc as E}from"./chunk-NR37MAXW.js";var U=(()=>{class t{raspberryPiThrottled=new T;static \u0275fac=function(l){return new(l||t)};static \u0275prov=L({token:t,factory:t.\u0275fac,providedIn:"root"})}return t})();function V(t,f){if(t&1&&m(0,"i",15),t&2){let e=c();w(E("fas fa-fw ",e.faIconClass," mb-3"))}}function j(t,f){if(t&1&&m(0,"h5",6),t&2){let e=c();u("innerHTML",e.subtitle,_)}}function D(t,f){if(t&1&&m(0,"p",8),t&2){let e=c();u("innerHTML",e.message2,_)}}function $(t,f){if(t&1){let e=k();o(0,"button",16),d(1,"translate"),x("click",function(){I(e);let n=c();return g(n.$activeModal.dismiss("Dismiss"))}),b(2),d(3,"translate"),a()}t&2&&(C("aria-label",p(1,2,"form.button_close")),i(2),v(" ",p(3,4,"form.button_close")," "))}function F(t,f){if(t&1){let e=k();o(0,"button",16),d(1,"translate"),x("click",function(){I(e);let n=c();return g(n.$activeModal.dismiss("Dismiss"))}),b(2),d(3,"translate"),a()}t&2&&(C("aria-label",p(1,2,"form.button_close")),i(2),v(" ",p(3,4,"form.button_close")," "))}function P(t,f){if(t&1&&(o(0,"a",14),b(1),m(2,"i",17),a()),t&2){let e=c();u("href",e.ctaButtonLink,B),i(),v(" ",e.ctaButtonLabel," ")}}var R=(()=>{class t{$activeModal=y(H);title;subtitle;message;message2;ctaButtonLabel;ctaButtonLink;faIconClass;constructor(){}static \u0275fac=function(l){return new(l||t)};static \u0275cmp=M({type:t,selectors:[["ng-component"]],inputs:{title:"title",subtitle:"subtitle",message:"message",message2:"message2",ctaButtonLabel:"ctaButtonLabel",ctaButtonLink:"ctaButtonLink",faIconClass:"faIconClass"},decls:18,vars:11,consts:[[1,"modal-content"],[1,"modal-header"],[1,"modal-title"],["type","button","data-bs-dismiss","modal",1,"btn-close",3,"click"],[1,"modal-body","text-center"],[2,"font-size","75px",3,"class"],[1,"mb-3",3,"innerHTML"],[1,"mb-0",3,"innerHTML"],[1,"mb-0","mt-3",3,"innerHTML"],[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"],["target","_blank","rel","noopener noreferrer",1,"btn","btn-primary","text-decoration-none",3,"href"],[2,"font-size","75px"],["type","button","data-bs-dismiss","modal",1,"btn","btn-elegant",3,"click"],[1,"fas","fa-fw","fa-external-link-alt"]],template:function(l,n){l&1&&(o(0,"div",0)(1,"div",1)(2,"h5",2),b(3),a(),o(4,"button",3),d(5,"translate"),x("click",function(){return n.$activeModal.dismiss("Dismiss")}),a()(),o(6,"div",4),r(7,V,1,3,"i",5),r(8,j,1,1,"h5",6),m(9,"p",7),r(10,D,1,1,"p",8),a(),o(11,"div",9)(12,"div",10),r(13,$,4,6,"button",11),a(),o(14,"div",12),r(15,F,4,6,"button",11),a(),o(16,"div",13),r(17,P,3,2,"a",14),a()()()),l&2&&(i(3),S(n.title),i(),C("aria-label",p(5,9,"form.button_close")),i(3),s(n.faIconClass?7:-1),i(),s(n.subtitle?8:-1),i(),u("innerHTML",n.message,_),i(),s(n.message2?10:-1),i(3),s(n.ctaButtonLink?13:-1),i(2),s(n.ctaButtonLink?-1:15),i(2),s(n.ctaButtonLink?17:-1))},dependencies:[h],encapsulation:2})}return t})();export{R as a,U as b};
@@ -1 +1 @@
1
- import{a as V,b as q}from"./chunk-ISOKJULM.js";import{a as _}from"./chunk-6M524CF7.js";import{n as B,o as k}from"./chunk-OHFVMRCL.js";import{h as D,k as F}from"./chunk-MMMJKCXE.js";import{a as z,b as E}from"./chunk-KPKQNEWS.js";import{$a as m,Ac as i,Bc as r,Gb as b,Lc as S,Nb as h,Ob as s,Pb as l,Qb as p,Ub as L,Xb as d,_a as y,dc as T,ec as C,g as j,h as w,jc as x,kc as I,la as o,lb as $,n as v,ra as u,sa as f}from"./chunk-QSPBB6EE.js";var H=j(q(),1);var A=["logoutput"],X=(()=>{class c{$api=o(F);$log=o(V);$modal=o(B);$toastr=o(D);$translate=o(z);termTarget=S("logoutput");resizeEvent=new v;constructor(){}onWindowResize(){this.resizeEvent.next(void 0)}ngOnInit(){window.document.querySelector("body").classList.add("bg-black"),this.$log.startTerminal(this.termTarget(),{},this.resizeEvent)}ngOnDestroy(){window.document.querySelector("body").classList.remove("bg-black"),this.$log.destroyTerminal()}downloadLogFile(){let t=this.$modal.open(_,{size:"lg",backdrop:"static"});t.componentInstance.title=this.$translate.instant("logs.title_download_log_file"),t.componentInstance.message=this.$translate.instant("logs.download_warning"),t.componentInstance.confirmButtonLabel=this.$translate.instant("form.button_download"),t.componentInstance.faIconClass="fas fa-fw fa-user-secret primary-text",t.result.then(()=>{this.$api.get("/platform-tools/hb-service/log/download",{observe:"response",responseType:"blob"}).subscribe({next:e=>{(0,H.saveAs)(e.body,"homebridge.log.txt")},error:e=>w(this,null,function*(){let n;try{n=JSON.parse(yield e.error.text()).message}catch(a){console.error(a)}this.$toastr.error(n||this.$translate.instant("logs.download.error"),this.$translate.instant("toast.title_error"))})})}).catch(()=>{})}truncateLogFile(){let t=this.$modal.open(_,{size:"lg",backdrop:"static"});t.componentInstance.title=this.$translate.instant("logs.title_truncate_log_file"),t.componentInstance.message=this.$translate.instant("logs.truncate_log_warning"),t.componentInstance.confirmButtonLabel=this.$translate.instant("form.button_delete"),t.componentInstance.confirmButtonClass="btn-danger",t.componentInstance.faIconClass="fas fa-fw fa-circle-exclamation primary-text",t.result.then(()=>{this.$api.put("/platform-tools/hb-service/log/truncate",{}).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("logs.log_file_truncated"),this.$translate.instant("toast.title_success")),this.$log.term.clear()},error:e=>{console.error(e),this.$toastr.error(e.error.message||this.$translate.instant("logs.truncate.error"),this.$translate.instant("toast.title_error"))}})}).catch(()=>{})}static \u0275fac=function(e){return new(e||c)};static \u0275cmp=$({type:c,selectors:[["ng-component"]],viewQuery:function(e,n){e&1&&T(n.termTarget,A,5),e&2&&C()},hostBindings:function(e,n){e&1&&d("resize",function(g){return n.onWindowResize(g)},y)},decls:17,vars:15,consts:[["logoutput",""],[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0"],[1,"col-6","text-end"],["container","body","placement","bottom","openDelay","150","triggers","hover",1,"btn","btn-elegant","my-0","me-2",3,"click","ngbTooltip"],[1,"fas","fa-fw","fa-download"],["container","body","placement","bottom","openDelay","150","triggers","hover",1,"btn","btn-elegant","my-0","me-0",3,"click","ngbTooltip"],[1,"fas","fa-fw","fa-trash-alt"],[1,"flex-column","d-flex","align-items-stretch","adjust-for-mobile"],["id","log-output",1,"align-self-end","w-100","h-100","mb-1"]],template:function(e,n){if(e&1){let a=L();s(0,"div",1)(1,"div",2)(2,"h3",3),x(3),i(4,"translate"),l()(),s(5,"div",4)(6,"button",5),i(7,"translate"),i(8,"translate"),d("click",function(){return u(a),f(n.downloadLogFile())}),p(9,"i",6),l(),s(10,"button",7),i(11,"translate"),i(12,"translate"),d("click",function(){return u(a),f(n.truncateLogFile())}),p(13,"i",8),l()()(),s(14,"div",9),p(15,"div",10,0),l()}e&2&&(m(3),I(r(4,5,"menu.linux.label_logs")),m(3),h("ngbTooltip",r(7,7,"form.button_download")),b("aria-label",r(8,9,"form.button_download")),m(4),h("ngbTooltip",r(11,11,"form.button_delete")),b("aria-label",r(12,13,"form.button_delete")))},dependencies:[k,E],encapsulation:2})}return c})();export{X as a};
1
+ import{a as V,b as q}from"./chunk-MMXKQEQO.js";import{a as _}from"./chunk-FMIYWTUO.js";import{n as B,o as k}from"./chunk-2EMPNH2X.js";import{h as D,k as F}from"./chunk-3YAYVLRD.js";import{a as z,b as E}from"./chunk-GOW5VSYJ.js";import{$a as m,Ac as i,Bc as r,Gb as b,Lc as S,Nb as h,Ob as s,Pb as l,Qb as p,Ub as L,Xb as d,_a as y,dc as T,ec as C,g as j,h as w,jc as x,kc as I,la as o,lb as $,n as v,ra as u,sa as f}from"./chunk-NR37MAXW.js";var H=j(q(),1);var A=["logoutput"],X=(()=>{class c{$api=o(F);$log=o(V);$modal=o(B);$toastr=o(D);$translate=o(z);termTarget=S("logoutput");resizeEvent=new v;constructor(){}onWindowResize(){this.resizeEvent.next(void 0)}ngOnInit(){window.document.querySelector("body").classList.add("bg-black"),this.$log.startTerminal(this.termTarget(),{},this.resizeEvent)}ngOnDestroy(){window.document.querySelector("body").classList.remove("bg-black"),this.$log.destroyTerminal()}downloadLogFile(){let t=this.$modal.open(_,{size:"lg",backdrop:"static"});t.componentInstance.title=this.$translate.instant("logs.title_download_log_file"),t.componentInstance.message=this.$translate.instant("logs.download_warning"),t.componentInstance.confirmButtonLabel=this.$translate.instant("form.button_download"),t.componentInstance.faIconClass="fas fa-fw fa-user-secret primary-text",t.result.then(()=>{this.$api.get("/platform-tools/hb-service/log/download",{observe:"response",responseType:"blob"}).subscribe({next:e=>{(0,H.saveAs)(e.body,"homebridge.log.txt")},error:e=>w(this,null,function*(){let n;try{n=JSON.parse(yield e.error.text()).message}catch(a){console.error(a)}this.$toastr.error(n||this.$translate.instant("logs.download.error"),this.$translate.instant("toast.title_error"))})})}).catch(()=>{})}truncateLogFile(){let t=this.$modal.open(_,{size:"lg",backdrop:"static"});t.componentInstance.title=this.$translate.instant("logs.title_truncate_log_file"),t.componentInstance.message=this.$translate.instant("logs.truncate_log_warning"),t.componentInstance.confirmButtonLabel=this.$translate.instant("form.button_delete"),t.componentInstance.confirmButtonClass="btn-danger",t.componentInstance.faIconClass="fas fa-fw fa-circle-exclamation primary-text",t.result.then(()=>{this.$api.put("/platform-tools/hb-service/log/truncate",{}).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("logs.log_file_truncated"),this.$translate.instant("toast.title_success")),this.$log.term.clear()},error:e=>{console.error(e),this.$toastr.error(e.error.message||this.$translate.instant("logs.truncate.error"),this.$translate.instant("toast.title_error"))}})}).catch(()=>{})}static \u0275fac=function(e){return new(e||c)};static \u0275cmp=$({type:c,selectors:[["ng-component"]],viewQuery:function(e,n){e&1&&T(n.termTarget,A,5),e&2&&C()},hostBindings:function(e,n){e&1&&d("resize",function(g){return n.onWindowResize(g)},y)},decls:17,vars:15,consts:[["logoutput",""],[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0"],[1,"col-6","text-end"],["container","body","placement","bottom","openDelay","150","triggers","hover",1,"btn","btn-elegant","my-0","me-2",3,"click","ngbTooltip"],[1,"fas","fa-fw","fa-download"],["container","body","placement","bottom","openDelay","150","triggers","hover",1,"btn","btn-elegant","my-0","me-0",3,"click","ngbTooltip"],[1,"fas","fa-fw","fa-trash-alt"],[1,"flex-column","d-flex","align-items-stretch","adjust-for-mobile"],["id","log-output",1,"align-self-end","w-100","h-100","mb-1"]],template:function(e,n){if(e&1){let a=L();s(0,"div",1)(1,"div",2)(2,"h3",3),x(3),i(4,"translate"),l()(),s(5,"div",4)(6,"button",5),i(7,"translate"),i(8,"translate"),d("click",function(){return u(a),f(n.downloadLogFile())}),p(9,"i",6),l(),s(10,"button",7),i(11,"translate"),i(12,"translate"),d("click",function(){return u(a),f(n.truncateLogFile())}),p(13,"i",8),l()()(),s(14,"div",9),p(15,"div",10,0),l()}e&2&&(m(3),I(r(4,5,"menu.linux.label_logs")),m(3),h("ngbTooltip",r(7,7,"form.button_download")),b("aria-label",r(8,9,"form.button_download")),m(4),h("ngbTooltip",r(11,11,"form.button_delete")),b("aria-label",r(12,13,"form.button_delete")))},dependencies:[k,E],encapsulation:2})}return c})();export{X as a};
@@ -1 +1 @@
1
- import{a as C,b as y,c as $,d as j}from"./chunk-5BVWCIG2.js";import"./chunk-ZCCLGLMW.js";import{q as d}from"./chunk-OHFVMRCL.js";import{A as u,z as l}from"./chunk-MMYB2ZMV.js";import{d as v,g as n}from"./chunk-QY7HUYL5.js";import"./chunk-G7HHAO4N.js";import"./chunk-ML4NBLLV.js";import{h as g,k as h}from"./chunk-MMMJKCXE.js";import"./chunk-R3JWGCC5.js";import{a as M,c as U}from"./chunk-KPKQNEWS.js";import{ga as f,h as a,ha as i,kd as c,la as e,mb as s,w as p}from"./chunk-QSPBB6EE.js";var m=(()=>{class r{$api=e(h);$router=e(v);$toastr=e(g);$translate=e(M);constructor(){}resolve(){return a(this,null,function*(){try{return yield p(this.$api.get("/users"))}catch(o){console.error(o),this.$toastr.error(o.message,this.$translate.instant("toast.title_error")),this.$router.navigate(["/"])}})}static \u0275fac=function(t){return new(t||r)};static \u0275prov=f({token:r,factory:r.\u0275fac})}return r})();var F=[{path:"",loadComponent:()=>import("./chunk-5FAVAVOU.js").then(r=>r.UsersComponent),resolve:{homebridgeUsers:m}}],b=(()=>{class r{static \u0275fac=function(t){return new(t||r)};static \u0275mod=s({type:r});static \u0275inj=i({imports:[n.forChild(F),n]})}return r})();var Y=(()=>{class r{static \u0275fac=function(t){return new(t||r)};static \u0275mod=s({type:r});static \u0275inj=i({providers:[m],imports:[c,l,u,U.forChild(),d,b,$,j,y,C]})}return r})();export{Y as UsersModule};
1
+ import{a as C,b as y,c as $,d as j}from"./chunk-JZQGN6ID.js";import"./chunk-ANCTYTNR.js";import{q as d}from"./chunk-2EMPNH2X.js";import{A as u,z as l}from"./chunk-EJ3RNOUF.js";import{d as v,g as n}from"./chunk-ZOLUFCSO.js";import"./chunk-CVKLBLXM.js";import"./chunk-42N4BQBA.js";import{h as g,k as h}from"./chunk-3YAYVLRD.js";import"./chunk-FDPTBVVC.js";import{a as M,c as U}from"./chunk-GOW5VSYJ.js";import{ga as f,h as a,ha as i,kd as c,la as e,mb as s,w as p}from"./chunk-NR37MAXW.js";var m=(()=>{class r{$api=e(h);$router=e(v);$toastr=e(g);$translate=e(M);constructor(){}resolve(){return a(this,null,function*(){try{return yield p(this.$api.get("/users"))}catch(o){console.error(o),this.$toastr.error(o.message,this.$translate.instant("toast.title_error")),this.$router.navigate(["/"])}})}static \u0275fac=function(t){return new(t||r)};static \u0275prov=f({token:r,factory:r.\u0275fac})}return r})();var F=[{path:"",loadComponent:()=>import("./chunk-SVB7PE7C.js").then(r=>r.UsersComponent),resolve:{homebridgeUsers:m}}],b=(()=>{class r{static \u0275fac=function(t){return new(t||r)};static \u0275mod=s({type:r});static \u0275inj=i({imports:[n.forChild(F),n]})}return r})();var Y=(()=>{class r{static \u0275fac=function(t){return new(t||r)};static \u0275mod=s({type:r});static \u0275inj=i({providers:[m],imports:[c,l,u,U.forChild(),d,b,$,j,y,C]})}return r})();export{Y as UsersModule};
@@ -1 +1 @@
1
- import{a as ne}from"./chunk-ZCCLGLMW.js";import{g as O,m as G,n as te}from"./chunk-OHFVMRCL.js";import{A,b as Z,c as M,d as x,e as F,f as z,g as N,j as w,m as q,o as R,p as L,q as j,x as ee,z as V}from"./chunk-MMYB2ZMV.js";import{b as ie}from"./chunk-QY7HUYL5.js";import{c as Q}from"./chunk-G7HHAO4N.js";import{a as ce}from"./chunk-ML4NBLLV.js";import{h as U,k}from"./chunk-MMMJKCXE.js";import{a as S,b as $}from"./chunk-KPKQNEWS.js";import{$a as e,Ac as s,Bc as l,Cc as Y,Gb as u,Hb as g,Ib as h,Kb as K,Lb as W,Mb as X,Nb as f,Ob as i,Pb as n,Qb as p,Ub as D,Xb as b,Yb as v,bd as P,g as de,jc as m,kc as d,la as c,lb as E,lc as C,ra as B,sa as T,wc as I}from"./chunk-QSPBB6EE.js";function ue(r,y){r&1&&(i(0,"ngb-alert",13)(1,"p",20),m(2),s(3,"translate"),n()()),r&2&&(f("dismissible",!1),e(2),d(l(3,2,"login.invalid_password")))}var re=(()=>{class r{$activeModal=c(G);$api=c(k);$toastr=c(U);$translate=c(S);formGroup=new N({password:new w("",[x.required])});invalidCredentials=!1;constructor(){}disable2fa(){this.invalidCredentials=!1,this.$api.post("/users/otp/deactivate",this.formGroup.value).subscribe({next:()=>{this.$activeModal.close(),this.$toastr.success(this.$translate.instant("users.setup_2fa_disable_success"),this.$translate.instant("toast.title_success"))},error:()=>{this.formGroup.setValue({password:""}),this.invalidCredentials=!0}})}static \u0275fac=function(o){return new(o||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(o,a){o&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),m(3),s(4,"translate"),n(),i(5,"button",3),s(6,"translate"),b("click",function(){return a.$activeModal.dismiss("Dismiss")}),n()(),i(7,"div",4)(8,"div",5),p(9,"i",6),n(),i(10,"ul",7)(11,"li"),m(12),s(13,"translate"),n()(),i(14,"ul",8)(15,"li",9)(16,"label",10),m(17),s(18,"translate"),n(),i(19,"div",11),p(20,"input",12),s(21,"translate"),n()()(),g(22,ue,4,4,"ngb-alert",13),n(),i(23,"div",14)(24,"div",15)(25,"button",16),s(26,"translate"),b("click",function(){return a.$activeModal.dismiss("Dismiss")}),m(27),s(28,"translate"),n()(),p(29,"div",17),i(30,"div",18)(31,"button",19),b("click",function(){return a.disable2fa()}),m(32),s(33,"translate"),n()()()()),o&2&&(e(3),d(l(4,11,"users.setup_2fa_disable")),e(2),u("aria-label",l(6,13,"form.button_close")),e(7),d(l(13,15,"users.setup_2fa_disable_current_password")),e(5),d(l(18,17,"users.label_password")),e(3),f("formControl",a.formGroup.controls.password)("placeholder",l(21,19,"users.label_password")),e(2),h(a.invalidCredentials&&!a.formGroup.controls.password.value?22:-1),e(3),u("aria-label",l(26,21,"form.button_close")),e(2),C(" ",l(28,23,"form.button_close")," "),e(4),f("disabled",a.formGroup.invalid),e(),C(" ",l(33,25,"form.button_disable")," "))},dependencies:[V,M,F,A,R,$,O],encapsulation:2})}return r})();var ae=de(ce(),1);var fe=r=>({timeDiffError:r});function be(r,y){r&1&&(i(0,"li"),m(1),s(2,"translate"),n()),r&2&&(e(),d(l(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),s(3,"translate"),n(),i(4,"p",17),m(5),s(6,"translate"),n()()),r&2){let t=v();f("dismissible",!1),e(2),d(l(3,3,"users.setup_2fa_cannot_setup_2fa")),e(3),d(Y(6,5,"users.setup_2fa_server_time_out",I(8,fe,t.timeDiffError)))}}function ve(r,y){if(r&1&&(i(0,"ul",9)(1,"li",18)(2,"div",19),p(3,"app-qrcode",20),n()(),i(4,"li",21)(5,"label",22),m(6),s(7,"translate"),n(),i(8,"div",23),p(9,"input",24),n()()()),r&2){let t=v();e(3),f("data",t.otpString),e(3),d(l(7,3,"users.setup_2fa_enter_code")),e(3),f("formControl",t.formGroup.controls.code)}}function xe(r,y){if(r&1){let t=D();i(0,"button",25),s(1,"translate"),b("click",function(){B(t);let a=v();return T(a.$activeModal.dismiss("Dismiss"))}),m(2),s(3,"translate"),n()}r&2&&(u("aria-label",l(1,2,"form.button_close")),e(2),C(" ",l(3,4,"form.button_close")," "))}function we(r,y){if(r&1){let t=D();i(0,"button",25),s(1,"translate"),b("click",function(){B(t);let a=v();return T(a.$activeModal.dismiss("Dismiss"))}),m(2),s(3,"translate"),n()}r&2&&(u("aria-label",l(1,2,"form.button_close")),e(2),C(" ",l(3,4,"form.button_close")," "))}function Ce(r,y){if(r&1){let t=D();i(0,"button",26),b("click",function(){B(t);let a=v();return T(a.enable2fa())}),m(1),s(2,"translate"),n()}if(r&2){let t=v();f("disabled",t.formGroup.invalid),e(),C(" ",l(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 N({code:new w("",[x.required,x.minLength(6),x.maxLength(6)])});constructor(){}ngOnInit(){this.$api.post("/users/otp/setup",{}).subscribe({next:t=>{this.checkTimeDiff(t.timestamp),this.timeDiffError||(this.otpString=t.otpauth)},error:t=>{this.$activeModal.dismiss(),console.error(t),this.$toastr.error(this.$translate.instant("users.setup_2fa_enable_error"),this.$translate.instant("toast.title_error"))}})}checkTimeDiff(t){let o=(0,ae.default)(t).diff(new Date,"millisecond");o<-5e3||o>5e3?this.timeDiffError=o:this.timeDiffError=null}enable2fa(){this.$api.post("/users/otp/activate",this.formGroup.value).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("users.setup_2fa_enabled_success"),this.$translate.instant("toast.title_success")),this.$activeModal.close()},error:t=>{console.error(t),this.$toastr.error(this.$translate.instant("users.setup_2fa_activate_error"),this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(o){return new(o||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"],["formControlName","username","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(o,a){o&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),m(3),s(4,"translate"),n(),i(5,"button",3),s(6,"translate"),b("click",function(){return a.$activeModal.dismiss("Dismiss")}),n()(),i(7,"div",4)(8,"div",5),p(9,"i",6),n(),i(10,"ul",7)(11,"li"),m(12),s(13,"translate"),n(),g(14,be,3,3,"li"),n(),g(15,_e,7,10,"ngb-alert",8),g(16,ve,10,5,"ul",9),n(),i(17,"div",10)(18,"div",11),g(19,xe,4,6,"button",12),n(),i(20,"div",13),g(21,we,4,6,"button",12),n(),i(22,"div",14),g(23,Ce,3,4,"button",15),n()()()),o&2&&(e(3),d(l(4,9,"users.setup_2fa")),e(2),u("aria-label",l(6,11,"form.button_close")),e(7),d(l(13,13,"users.setup_2fa_warning")),e(2),h(a.timeDiffError?-1:14),e(),h(a.timeDiffError?15:-1),e(),h(a.timeDiffError?-1:16),e(3),h(a.timeDiffError?-1:19),e(2),h(a.timeDiffError?21:-1),e(2),h(a.timeDiffError?-1:23))},dependencies:[O,ne,V,M,F,ee,A,R,j,$],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 N({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);page={title:"users.title_add_user",save:"users.button_add_new_user",password:"users.label_password"};constructor(){}matchPassword(t){let o=t.get("password").value,a=t.get("passwordConfirm").value;if(o!==a)t.get("passwordConfirm").setErrors({matchPassword:!0});else return null}onSubmit({value:t}){this.$api.post("/users",t).subscribe({next:()=>{this.$activeModal.close(),this.$toastr.success(this.$translate.instant("users.toast_added_new_user"),this.$translate.instant("toast.title_success"))},error:o=>{this.$toastr.error(o.error.message||this.$translate.instant("users.toast_failed_to_add_user"),this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(o){return new(o||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(o,a){o&1&&(i(0,"div",0)(1,"form",1),b("ngSubmit",function(){return a.onSubmit(a.form)}),i(2,"div",2)(3,"h5",3),m(4),s(5,"translate"),n(),i(6,"button",4),s(7,"translate"),b("click",function(){return a.$activeModal.dismiss("Dismiss")}),n()(),i(8,"div",5)(9,"div",6),p(10,"i",7),n(),i(11,"ul",8)(12,"li",9)(13,"label",10),m(14),s(15,"translate"),n(),i(16,"div",11),p(17,"input",12),s(18,"translate"),n()(),i(19,"li",9)(20,"label",13),m(21),s(22,"translate"),n(),i(23,"div",11),p(24,"input",14),s(25,"translate"),n()(),i(26,"li",9)(27,"label",15),m(28),s(29,"translate"),n(),i(30,"div",11),p(31,"input",16),s(32,"translate"),n()(),i(33,"li",9)(34,"label",17),m(35),s(36,"translate"),n(),i(37,"div",11),p(38,"input",18),s(39,"translate"),n()(),i(40,"li",19)(41,"span",20),m(42),s(43,"translate"),n(),i(44,"div",21),p(45,"input",22),s(46,"translate"),p(47,"label",23),n()()()(),i(48,"div",24)(49,"div",20)(50,"button",25),b("click",function(){return a.$activeModal.dismiss("Dismiss")}),m(51),s(52,"translate"),n()(),p(53,"div",26),i(54,"div",27)(55,"button",28),m(56),s(57,"translate"),n()()()()()),o&2&&(e(),f("formGroup",a.form),e(3),d(l(5,18,"users.title_add_user")),e(2),u("aria-label",l(7,20,"form.button_close")),e(8),d(l(15,22,"users.label_username")),e(3),u("aria-label",l(18,24,"users.label_username")),e(4),d(l(22,26,"users.label_full_name")),e(3),u("aria-label",l(25,28,"users.label_full_name")),e(4),d(l(29,30,a.page.password)),e(3),f("ngClass",I(46,se,a.form.controls.password.dirty&&a.form.controls.password.errors)),u("aria-label",l(32,32,a.page.password)),e(4),d(l(36,34,"users.label_confirm_password")),e(3),f("ngClass",I(48,se,a.form.controls.passwordConfirm.dirty&&a.form.controls.passwordConfirm.errors)),u("aria-label",l(39,36,"users.label_confirm_password")),e(4),d(l(43,38,"users.label_admin_user")),e(3),u("aria-label",l(46,40,"users.label_admin_user")),e(6),C(" ",l(52,42,"form.button_close")," "),e(4),f("disabled",!a.form.valid),e(),C(" ",l(57,44,"form.button_save")," "))},dependencies:[V,q,M,F,z,A,L,j,P,$],encapsulation:2})}return r})();var me=r=>({"is-invalid":r});function ge(r,y){if(r&1&&(i(0,"li",9)(1,"label",27),m(2),s(3,"translate"),n(),i(4,"div",11),p(5,"input",28),s(6,"translate"),n()()),r&2){let t=v();e(2),d(l(3,3,"users.label_confirm_password")),e(3),f("ngClass",I(7,me,t.form.controls.passwordConfirm.dirty&&t.form.controls.passwordConfirm.errors)),u("aria-label",l(6,5,"users.label_confirm_password"))}}var pe=(()=>{class r{$activeModal=c(G);$api=c(k);$auth=c(Q);$toastr=c(U);$translate=c(S);user;form=new N({username:new w("",[x.required]),name:new w("",[x.required]),password:new w(""),passwordConfirm:new w(""),admin:new w(!0)},this.matchPassword);page={title:"users.title_edit_user",save:"form.button_save",password:"users.label_new_password"};isCurrentUser=!1;constructor(){}ngOnInit(){this.isCurrentUser=this.$auth.user.username===this.user.username,this.form.patchValue(this.user)}matchPassword(t){let o=t.get("password").value,a=t.get("passwordConfirm").value;if(o!==a)t.get("passwordConfirm").setErrors({matchPassword:!0});else return null}onSubmit({value:t}){this.$api.patch(`/users/${this.user.id}`,t).subscribe({next:()=>{this.$activeModal.close(),this.$toastr.success(this.$translate.instant("users.toast_updated_user"),this.$translate.instant("toast.title_success")),this.isCurrentUser&&t.username!==this.$auth.user.username&&this.$auth.logout()},error:o=>{console.error(o),this.$toastr.error(o.error.message||this.$translate.instant("users.toast_failed_to_add_user"),this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(o){return new(o||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(o,a){o&1&&(i(0,"div",0)(1,"form",1),b("ngSubmit",function(){return a.onSubmit(a.form)}),i(2,"div",2)(3,"h5",3),m(4),s(5,"translate"),n(),i(6,"button",4),s(7,"translate"),b("click",function(){return a.$activeModal.dismiss("Dismiss")}),n()(),i(8,"div",5)(9,"div",6),p(10,"i",7),n(),i(11,"ul",8)(12,"li",9)(13,"label",10),m(14),s(15,"translate"),n(),i(16,"div",11),p(17,"input",12),s(18,"translate"),n()(),i(19,"li",9)(20,"label",13),m(21),s(22,"translate"),n(),i(23,"div",11),p(24,"input",14),s(25,"translate"),n()(),i(26,"li",9)(27,"label",15),m(28),s(29,"translate"),n(),i(30,"div",11),p(31,"input",16),s(32,"translate"),n()(),g(33,ge,7,9,"li",9),i(34,"li",17)(35,"span",18),m(36),s(37,"translate"),n(),i(38,"div",19),p(39,"input",20),s(40,"translate"),p(41,"label",21),n()()()(),i(42,"div",22)(43,"div",18)(44,"button",23),b("click",function(){return a.$activeModal.dismiss("Dismiss")}),m(45),s(46,"translate"),n()(),p(47,"div",24),i(48,"div",25)(49,"button",26),m(50),s(51,"translate"),n()()()()()),o&2&&(e(),f("formGroup",a.form),e(3),d(l(5,16,"users.title_edit_user")),e(2),u("aria-label",l(7,18,"form.button_close")),e(8),d(l(15,20,"users.label_username")),e(3),u("aria-label",l(18,22,"users.label_username")),e(4),d(l(22,24,"users.label_full_name")),e(3),u("aria-label",l(25,26,"users.label_full_name")),e(4),d(l(29,28,a.page.password)),e(3),f("ngClass",I(40,me,a.form.controls.password.dirty&&a.form.controls.password.errors)),u("aria-label",l(32,30,a.page.password)),e(2),h(a.form.controls.password.value?33:-1),e(3),d(l(37,32,"users.label_admin_user")),e(3),u("aria-label",l(40,34,"users.label_admin_user")),e(6),C(" ",l(46,36,"form.button_close")," "),e(4),f("disabled",!a.form.valid),e(),C(" ",l(51,38,"form.button_save")," "))},dependencies:[V,q,M,Z,F,z,A,L,j,P,$],encapsulation:2})}return r})();function he(r,y){if(r&1){let t=D();i(0,"button",21),b("click",function(){B(t);let a=v().$implicit,_=v();return T(_.setup2fa(a))}),m(1),s(2,"translate"),n()}r&2&&(e(),d(l(2,1,"users.setup_2fa")))}function ye(r,y){if(r&1){let t=D();i(0,"button",17),b("click",function(){B(t);let a=v().$implicit,_=v();return T(_.disable2fa(a))}),m(1),s(2,"translate"),n()}r&2&&(e(),C(" ",l(2,1,"users.setup_2fa_disable")," "))}function Ee(r,y){if(r&1){let t=D();i(0,"div",7)(1,"div",8)(2,"div",9)(3,"div",10)(4,"span",11),p(5,"h4",12)(6,"h5",13),n()(),i(7,"div",14),g(8,he,3,3,"button",15),g(9,ye,3,3,"button",16),i(10,"div")(11,"button",17),s(12,"translate"),b("click",function(){let a=B(t).$implicit,_=v();return T(_.openEditUser(a))}),p(13,"i",18),n(),i(14,"button",19),s(15,"translate"),b("click",function(){let a=B(t).$implicit,_=v();return T(_.deleteUser(a.id))}),p(16,"i",20),n()()()()()()}if(r&2){let t=y.$implicit,o=v();e(5),f("innerText",t.name),e(),f("innerText",t.username),e(2),h(o.$auth.user.username===t.username&&!t.otpActive?8:-1),e(),h(o.$auth.user.username===t.username&&t.otpActive?9:-1),e(2),u("aria-label",l(12,7,"form.button_edit")),e(3),f("disabled",o.$auth.user.username===t.username),u("aria-label",l(15,9,"form.button_delete"))}}var gt=(()=>{class r{$api=c(k);$auth=c(Q);$modal=c(te);$route=c(ie);$toastr=c(U);$translate=c(S);homebridgeUsers;constructor(){}ngOnInit(){this.$route.data.subscribe(t=>{this.homebridgeUsers=t.homebridgeUsers})}reloadUsers(){return this.$api.get("/users").subscribe(t=>{this.homebridgeUsers=t})}openAddNewUser(){this.$modal.open(le,{size:"lg",backdrop:"static"}).result.finally(()=>{this.reloadUsers()})}openEditUser(t){let o=this.$modal.open(pe,{size:"lg",backdrop:"static"});o.componentInstance.user=t,o.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:o=>{console.error(o),this.$toastr.error(o.error.message||this.$translate.instant("users.toast_failed_to_delete_user"),this.$translate.instant("toast.title_error"))}})}setup2fa(t){let o=this.$modal.open(oe,{size:"lg",backdrop:"static"});o.componentInstance.user=t,o.result.finally(()=>{this.reloadUsers()})}disable2fa(t){let o=this.$modal.open(re,{size:"lg",backdrop:"static"});o.componentInstance.user=t,o.result.finally(()=>{this.reloadUsers()})}static \u0275fac=function(o){return new(o||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(o,a){o&1&&(i(0,"div",0)(1,"div",1)(2,"h3",2),m(3),s(4,"translate"),n()(),i(5,"div",3)(6,"button",4),s(7,"translate"),b("click",function(){return a.openAddNewUser()}),p(8,"i",5),n()()(),i(9,"div",6),W(10,Ee,17,11,"div",7,K),n()),o&2&&(e(3),d(l(4,2,"users.title_users")),e(3),u("aria-label",l(7,4,"users.button_add_user")),e(4),X(a.homebridgeUsers))},dependencies:[$],encapsulation:2})}return r})();export{re as a,oe as b,le as c,pe as d,gt as e};
1
+ import{a as ne}from"./chunk-ANCTYTNR.js";import{g as O,m as G,n as te}from"./chunk-2EMPNH2X.js";import{A,b as Z,c as M,d as x,e as F,f as z,g as N,j as w,m as q,o as R,p as L,q as j,x as ee,z as V}from"./chunk-EJ3RNOUF.js";import{b as ie}from"./chunk-ZOLUFCSO.js";import{c as Q}from"./chunk-CVKLBLXM.js";import{a as ce}from"./chunk-42N4BQBA.js";import{h as U,k}from"./chunk-3YAYVLRD.js";import{a as S,b as $}from"./chunk-GOW5VSYJ.js";import{$a as e,Ac as s,Bc as l,Cc as Y,Gb as u,Hb as g,Ib as h,Kb as K,Lb as W,Mb as X,Nb as f,Ob as i,Pb as n,Qb as p,Ub as D,Xb as b,Yb as v,bd as P,g as de,jc as m,kc as d,la as c,lb as E,lc as C,ra as B,sa as T,wc as I}from"./chunk-NR37MAXW.js";function ue(r,y){r&1&&(i(0,"ngb-alert",13)(1,"p",20),m(2),s(3,"translate"),n()()),r&2&&(f("dismissible",!1),e(2),d(l(3,2,"login.invalid_password")))}var re=(()=>{class r{$activeModal=c(G);$api=c(k);$toastr=c(U);$translate=c(S);formGroup=new N({password:new w("",[x.required])});invalidCredentials=!1;constructor(){}disable2fa(){this.invalidCredentials=!1,this.$api.post("/users/otp/deactivate",this.formGroup.value).subscribe({next:()=>{this.$activeModal.close(),this.$toastr.success(this.$translate.instant("users.setup_2fa_disable_success"),this.$translate.instant("toast.title_success"))},error:()=>{this.formGroup.setValue({password:""}),this.invalidCredentials=!0}})}static \u0275fac=function(o){return new(o||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(o,a){o&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),m(3),s(4,"translate"),n(),i(5,"button",3),s(6,"translate"),b("click",function(){return a.$activeModal.dismiss("Dismiss")}),n()(),i(7,"div",4)(8,"div",5),p(9,"i",6),n(),i(10,"ul",7)(11,"li"),m(12),s(13,"translate"),n()(),i(14,"ul",8)(15,"li",9)(16,"label",10),m(17),s(18,"translate"),n(),i(19,"div",11),p(20,"input",12),s(21,"translate"),n()()(),g(22,ue,4,4,"ngb-alert",13),n(),i(23,"div",14)(24,"div",15)(25,"button",16),s(26,"translate"),b("click",function(){return a.$activeModal.dismiss("Dismiss")}),m(27),s(28,"translate"),n()(),p(29,"div",17),i(30,"div",18)(31,"button",19),b("click",function(){return a.disable2fa()}),m(32),s(33,"translate"),n()()()()),o&2&&(e(3),d(l(4,11,"users.setup_2fa_disable")),e(2),u("aria-label",l(6,13,"form.button_close")),e(7),d(l(13,15,"users.setup_2fa_disable_current_password")),e(5),d(l(18,17,"users.label_password")),e(3),f("formControl",a.formGroup.controls.password)("placeholder",l(21,19,"users.label_password")),e(2),h(a.invalidCredentials&&!a.formGroup.controls.password.value?22:-1),e(3),u("aria-label",l(26,21,"form.button_close")),e(2),C(" ",l(28,23,"form.button_close")," "),e(4),f("disabled",a.formGroup.invalid),e(),C(" ",l(33,25,"form.button_disable")," "))},dependencies:[V,M,F,A,R,$,O],encapsulation:2})}return r})();var ae=de(ce(),1);var fe=r=>({timeDiffError:r});function be(r,y){r&1&&(i(0,"li"),m(1),s(2,"translate"),n()),r&2&&(e(),d(l(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),s(3,"translate"),n(),i(4,"p",17),m(5),s(6,"translate"),n()()),r&2){let t=v();f("dismissible",!1),e(2),d(l(3,3,"users.setup_2fa_cannot_setup_2fa")),e(3),d(Y(6,5,"users.setup_2fa_server_time_out",I(8,fe,t.timeDiffError)))}}function ve(r,y){if(r&1&&(i(0,"ul",9)(1,"li",18)(2,"div",19),p(3,"app-qrcode",20),n()(),i(4,"li",21)(5,"label",22),m(6),s(7,"translate"),n(),i(8,"div",23),p(9,"input",24),n()()()),r&2){let t=v();e(3),f("data",t.otpString),e(3),d(l(7,3,"users.setup_2fa_enter_code")),e(3),f("formControl",t.formGroup.controls.code)}}function xe(r,y){if(r&1){let t=D();i(0,"button",25),s(1,"translate"),b("click",function(){B(t);let a=v();return T(a.$activeModal.dismiss("Dismiss"))}),m(2),s(3,"translate"),n()}r&2&&(u("aria-label",l(1,2,"form.button_close")),e(2),C(" ",l(3,4,"form.button_close")," "))}function we(r,y){if(r&1){let t=D();i(0,"button",25),s(1,"translate"),b("click",function(){B(t);let a=v();return T(a.$activeModal.dismiss("Dismiss"))}),m(2),s(3,"translate"),n()}r&2&&(u("aria-label",l(1,2,"form.button_close")),e(2),C(" ",l(3,4,"form.button_close")," "))}function Ce(r,y){if(r&1){let t=D();i(0,"button",26),b("click",function(){B(t);let a=v();return T(a.enable2fa())}),m(1),s(2,"translate"),n()}if(r&2){let t=v();f("disabled",t.formGroup.invalid),e(),C(" ",l(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 N({code:new w("",[x.required,x.minLength(6),x.maxLength(6)])});constructor(){}ngOnInit(){this.$api.post("/users/otp/setup",{}).subscribe({next:t=>{this.checkTimeDiff(t.timestamp),this.timeDiffError||(this.otpString=t.otpauth)},error:t=>{this.$activeModal.dismiss(),console.error(t),this.$toastr.error(this.$translate.instant("users.setup_2fa_enable_error"),this.$translate.instant("toast.title_error"))}})}checkTimeDiff(t){let o=(0,ae.default)(t).diff(new Date,"millisecond");o<-5e3||o>5e3?this.timeDiffError=o:this.timeDiffError=null}enable2fa(){this.$api.post("/users/otp/activate",this.formGroup.value).subscribe({next:()=>{this.$toastr.success(this.$translate.instant("users.setup_2fa_enabled_success"),this.$translate.instant("toast.title_success")),this.$activeModal.close()},error:t=>{console.error(t),this.$toastr.error(this.$translate.instant("users.setup_2fa_activate_error"),this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(o){return new(o||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"],["formControlName","username","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(o,a){o&1&&(i(0,"div",0)(1,"div",1)(2,"h5",2),m(3),s(4,"translate"),n(),i(5,"button",3),s(6,"translate"),b("click",function(){return a.$activeModal.dismiss("Dismiss")}),n()(),i(7,"div",4)(8,"div",5),p(9,"i",6),n(),i(10,"ul",7)(11,"li"),m(12),s(13,"translate"),n(),g(14,be,3,3,"li"),n(),g(15,_e,7,10,"ngb-alert",8),g(16,ve,10,5,"ul",9),n(),i(17,"div",10)(18,"div",11),g(19,xe,4,6,"button",12),n(),i(20,"div",13),g(21,we,4,6,"button",12),n(),i(22,"div",14),g(23,Ce,3,4,"button",15),n()()()),o&2&&(e(3),d(l(4,9,"users.setup_2fa")),e(2),u("aria-label",l(6,11,"form.button_close")),e(7),d(l(13,13,"users.setup_2fa_warning")),e(2),h(a.timeDiffError?-1:14),e(),h(a.timeDiffError?15:-1),e(),h(a.timeDiffError?-1:16),e(3),h(a.timeDiffError?-1:19),e(2),h(a.timeDiffError?21:-1),e(2),h(a.timeDiffError?-1:23))},dependencies:[O,ne,V,M,F,ee,A,R,j,$],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 N({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);page={title:"users.title_add_user",save:"users.button_add_new_user",password:"users.label_password"};constructor(){}matchPassword(t){let o=t.get("password").value,a=t.get("passwordConfirm").value;if(o!==a)t.get("passwordConfirm").setErrors({matchPassword:!0});else return null}onSubmit({value:t}){this.$api.post("/users",t).subscribe({next:()=>{this.$activeModal.close(),this.$toastr.success(this.$translate.instant("users.toast_added_new_user"),this.$translate.instant("toast.title_success"))},error:o=>{this.$toastr.error(o.error.message||this.$translate.instant("users.toast_failed_to_add_user"),this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(o){return new(o||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(o,a){o&1&&(i(0,"div",0)(1,"form",1),b("ngSubmit",function(){return a.onSubmit(a.form)}),i(2,"div",2)(3,"h5",3),m(4),s(5,"translate"),n(),i(6,"button",4),s(7,"translate"),b("click",function(){return a.$activeModal.dismiss("Dismiss")}),n()(),i(8,"div",5)(9,"div",6),p(10,"i",7),n(),i(11,"ul",8)(12,"li",9)(13,"label",10),m(14),s(15,"translate"),n(),i(16,"div",11),p(17,"input",12),s(18,"translate"),n()(),i(19,"li",9)(20,"label",13),m(21),s(22,"translate"),n(),i(23,"div",11),p(24,"input",14),s(25,"translate"),n()(),i(26,"li",9)(27,"label",15),m(28),s(29,"translate"),n(),i(30,"div",11),p(31,"input",16),s(32,"translate"),n()(),i(33,"li",9)(34,"label",17),m(35),s(36,"translate"),n(),i(37,"div",11),p(38,"input",18),s(39,"translate"),n()(),i(40,"li",19)(41,"span",20),m(42),s(43,"translate"),n(),i(44,"div",21),p(45,"input",22),s(46,"translate"),p(47,"label",23),n()()()(),i(48,"div",24)(49,"div",20)(50,"button",25),b("click",function(){return a.$activeModal.dismiss("Dismiss")}),m(51),s(52,"translate"),n()(),p(53,"div",26),i(54,"div",27)(55,"button",28),m(56),s(57,"translate"),n()()()()()),o&2&&(e(),f("formGroup",a.form),e(3),d(l(5,18,"users.title_add_user")),e(2),u("aria-label",l(7,20,"form.button_close")),e(8),d(l(15,22,"users.label_username")),e(3),u("aria-label",l(18,24,"users.label_username")),e(4),d(l(22,26,"users.label_full_name")),e(3),u("aria-label",l(25,28,"users.label_full_name")),e(4),d(l(29,30,a.page.password)),e(3),f("ngClass",I(46,se,a.form.controls.password.dirty&&a.form.controls.password.errors)),u("aria-label",l(32,32,a.page.password)),e(4),d(l(36,34,"users.label_confirm_password")),e(3),f("ngClass",I(48,se,a.form.controls.passwordConfirm.dirty&&a.form.controls.passwordConfirm.errors)),u("aria-label",l(39,36,"users.label_confirm_password")),e(4),d(l(43,38,"users.label_admin_user")),e(3),u("aria-label",l(46,40,"users.label_admin_user")),e(6),C(" ",l(52,42,"form.button_close")," "),e(4),f("disabled",!a.form.valid),e(),C(" ",l(57,44,"form.button_save")," "))},dependencies:[V,q,M,F,z,A,L,j,P,$],encapsulation:2})}return r})();var me=r=>({"is-invalid":r});function ge(r,y){if(r&1&&(i(0,"li",9)(1,"label",27),m(2),s(3,"translate"),n(),i(4,"div",11),p(5,"input",28),s(6,"translate"),n()()),r&2){let t=v();e(2),d(l(3,3,"users.label_confirm_password")),e(3),f("ngClass",I(7,me,t.form.controls.passwordConfirm.dirty&&t.form.controls.passwordConfirm.errors)),u("aria-label",l(6,5,"users.label_confirm_password"))}}var pe=(()=>{class r{$activeModal=c(G);$api=c(k);$auth=c(Q);$toastr=c(U);$translate=c(S);user;form=new N({username:new w("",[x.required]),name:new w("",[x.required]),password:new w(""),passwordConfirm:new w(""),admin:new w(!0)},this.matchPassword);page={title:"users.title_edit_user",save:"form.button_save",password:"users.label_new_password"};isCurrentUser=!1;constructor(){}ngOnInit(){this.isCurrentUser=this.$auth.user.username===this.user.username,this.form.patchValue(this.user)}matchPassword(t){let o=t.get("password").value,a=t.get("passwordConfirm").value;if(o!==a)t.get("passwordConfirm").setErrors({matchPassword:!0});else return null}onSubmit({value:t}){this.$api.patch(`/users/${this.user.id}`,t).subscribe({next:()=>{this.$activeModal.close(),this.$toastr.success(this.$translate.instant("users.toast_updated_user"),this.$translate.instant("toast.title_success")),this.isCurrentUser&&t.username!==this.$auth.user.username&&this.$auth.logout()},error:o=>{console.error(o),this.$toastr.error(o.error.message||this.$translate.instant("users.toast_failed_to_add_user"),this.$translate.instant("toast.title_error"))}})}static \u0275fac=function(o){return new(o||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(o,a){o&1&&(i(0,"div",0)(1,"form",1),b("ngSubmit",function(){return a.onSubmit(a.form)}),i(2,"div",2)(3,"h5",3),m(4),s(5,"translate"),n(),i(6,"button",4),s(7,"translate"),b("click",function(){return a.$activeModal.dismiss("Dismiss")}),n()(),i(8,"div",5)(9,"div",6),p(10,"i",7),n(),i(11,"ul",8)(12,"li",9)(13,"label",10),m(14),s(15,"translate"),n(),i(16,"div",11),p(17,"input",12),s(18,"translate"),n()(),i(19,"li",9)(20,"label",13),m(21),s(22,"translate"),n(),i(23,"div",11),p(24,"input",14),s(25,"translate"),n()(),i(26,"li",9)(27,"label",15),m(28),s(29,"translate"),n(),i(30,"div",11),p(31,"input",16),s(32,"translate"),n()(),g(33,ge,7,9,"li",9),i(34,"li",17)(35,"span",18),m(36),s(37,"translate"),n(),i(38,"div",19),p(39,"input",20),s(40,"translate"),p(41,"label",21),n()()()(),i(42,"div",22)(43,"div",18)(44,"button",23),b("click",function(){return a.$activeModal.dismiss("Dismiss")}),m(45),s(46,"translate"),n()(),p(47,"div",24),i(48,"div",25)(49,"button",26),m(50),s(51,"translate"),n()()()()()),o&2&&(e(),f("formGroup",a.form),e(3),d(l(5,16,"users.title_edit_user")),e(2),u("aria-label",l(7,18,"form.button_close")),e(8),d(l(15,20,"users.label_username")),e(3),u("aria-label",l(18,22,"users.label_username")),e(4),d(l(22,24,"users.label_full_name")),e(3),u("aria-label",l(25,26,"users.label_full_name")),e(4),d(l(29,28,a.page.password)),e(3),f("ngClass",I(40,me,a.form.controls.password.dirty&&a.form.controls.password.errors)),u("aria-label",l(32,30,a.page.password)),e(2),h(a.form.controls.password.value?33:-1),e(3),d(l(37,32,"users.label_admin_user")),e(3),u("aria-label",l(40,34,"users.label_admin_user")),e(6),C(" ",l(46,36,"form.button_close")," "),e(4),f("disabled",!a.form.valid),e(),C(" ",l(51,38,"form.button_save")," "))},dependencies:[V,q,M,Z,F,z,A,L,j,P,$],encapsulation:2})}return r})();function he(r,y){if(r&1){let t=D();i(0,"button",21),b("click",function(){B(t);let a=v().$implicit,_=v();return T(_.setup2fa(a))}),m(1),s(2,"translate"),n()}r&2&&(e(),d(l(2,1,"users.setup_2fa")))}function ye(r,y){if(r&1){let t=D();i(0,"button",17),b("click",function(){B(t);let a=v().$implicit,_=v();return T(_.disable2fa(a))}),m(1),s(2,"translate"),n()}r&2&&(e(),C(" ",l(2,1,"users.setup_2fa_disable")," "))}function Ee(r,y){if(r&1){let t=D();i(0,"div",7)(1,"div",8)(2,"div",9)(3,"div",10)(4,"span",11),p(5,"h4",12)(6,"h5",13),n()(),i(7,"div",14),g(8,he,3,3,"button",15),g(9,ye,3,3,"button",16),i(10,"div")(11,"button",17),s(12,"translate"),b("click",function(){let a=B(t).$implicit,_=v();return T(_.openEditUser(a))}),p(13,"i",18),n(),i(14,"button",19),s(15,"translate"),b("click",function(){let a=B(t).$implicit,_=v();return T(_.deleteUser(a.id))}),p(16,"i",20),n()()()()()()}if(r&2){let t=y.$implicit,o=v();e(5),f("innerText",t.name),e(),f("innerText",t.username),e(2),h(o.$auth.user.username===t.username&&!t.otpActive?8:-1),e(),h(o.$auth.user.username===t.username&&t.otpActive?9:-1),e(2),u("aria-label",l(12,7,"form.button_edit")),e(3),f("disabled",o.$auth.user.username===t.username),u("aria-label",l(15,9,"form.button_delete"))}}var gt=(()=>{class r{$api=c(k);$auth=c(Q);$modal=c(te);$route=c(ie);$toastr=c(U);$translate=c(S);homebridgeUsers;constructor(){}ngOnInit(){this.$route.data.subscribe(t=>{this.homebridgeUsers=t.homebridgeUsers})}reloadUsers(){return this.$api.get("/users").subscribe(t=>{this.homebridgeUsers=t})}openAddNewUser(){this.$modal.open(le,{size:"lg",backdrop:"static"}).result.finally(()=>{this.reloadUsers()})}openEditUser(t){let o=this.$modal.open(pe,{size:"lg",backdrop:"static"});o.componentInstance.user=t,o.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:o=>{console.error(o),this.$toastr.error(o.error.message||this.$translate.instant("users.toast_failed_to_delete_user"),this.$translate.instant("toast.title_error"))}})}setup2fa(t){let o=this.$modal.open(oe,{size:"lg",backdrop:"static"});o.componentInstance.user=t,o.result.finally(()=>{this.reloadUsers()})}disable2fa(t){let o=this.$modal.open(re,{size:"lg",backdrop:"static"});o.componentInstance.user=t,o.result.finally(()=>{this.reloadUsers()})}static \u0275fac=function(o){return new(o||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(o,a){o&1&&(i(0,"div",0)(1,"div",1)(2,"h3",2),m(3),s(4,"translate"),n()(),i(5,"div",3)(6,"button",4),s(7,"translate"),b("click",function(){return a.openAddNewUser()}),p(8,"i",5),n()()(),i(9,"div",6),W(10,Ee,17,11,"div",7,K),n()),o&2&&(e(3),d(l(4,2,"users.title_users")),e(3),u("aria-label",l(7,4,"users.button_add_user")),e(4),X(a.homebridgeUsers))},dependencies:[$],encapsulation:2})}return r})();export{re as a,oe as b,le as c,pe as d,gt as e};
@@ -1,4 +1,4 @@
1
- import{a as P}from"./chunk-XJY7A24W.js";import{a as O}from"./chunk-6SEBWKRM.js";import{c as y,e as E,l as k,z as $}from"./chunk-MMYB2ZMV.js";import{b as D}from"./chunk-QY7HUYL5.js";import{b as L}from"./chunk-ML4NBLLV.js";import{h as I,k as H}from"./chunk-MMMJKCXE.js";import{a as T}from"./chunk-KPKQNEWS.js";import{$a as s,Hb as d,Ib as m,Nb as f,Ob as u,Pb as l,Qb as w,Ub as g,Xb as _,Yb as a,h as S,jc as v,la as r,lb as x,qc as b,ra as c,rc as M,sa as p,sc as V,w as C}from"./chunk-QSPBB6EE.js";function z(i,h){i&1&&w(0,"i",6)}function A(i,h){i&1&&w(0,"i",7)}function F(i,h){if(i&1){let t=g();u(0,"ngx-monaco-editor",10),_("onInit",function(e){c(t);let o=a();return p(o.onEditorInit(e))})("keydown.control.s",function(e){c(t);let o=a();return e.preventDefault(),p(o.onSave())})("keydown.meta.s",function(e){c(t);let o=a();return e.preventDefault(),p(o.onSave())}),l()}if(i&2){let t=a();f("options",t.editorOptions)("model",t.monacoEditorModel)}}function W(i,h){if(i&1){let t=g();u(0,"textarea",11),V("ngModelChange",function(e){c(t);let o=a();return M(o.startupScript,e)||(o.startupScript=e),p(e)}),v(1," "),l()}if(i&2){let t=a();b("ngModel",t.startupScript)}}var tt=(()=>{class i{$api=r(H);$md=r(O);$route=r(D);$settings=r(L);$toastr=r(I);$translate=r(T);startupScript;saveInProgress;isMobile=!1;options={printMargin:!1};monacoEditor;editorOptions;monacoEditorModel;lastHeight;visualViewPortEventCallback;constructor(){this.isMobile=this.$md.detect.mobile()}ngOnInit(){this.editorOptions={language:"shell",theme:this.$settings.actualLightingMode==="dark"?"vs-dark":"vs-light",automaticLayout:!0},this.visualViewPortEventCallback=()=>this.visualViewPortChanged(),this.lastHeight=window.innerHeight,window.visualViewport&&!this.isMobile&&(window.visualViewport.addEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.disableTouchMove()),this.$route.data.subscribe(t=>{this.startupScript=t.startupScript.script}),this.monacoEditorModel={value:"",language:"shell"}}onEditorInit(t){this.monacoEditor=t,this.monacoEditor.getModel().setValue(this.startupScript)}onSave(){return S(this,null,function*(){if(!this.saveInProgress){if(this.saveInProgress=!0,this.isMobile||(yield this.monacoEditor.getAction("editor.action.formatDocument").run(),this.startupScript=this.monacoEditor.getModel().getValue()),!["#!/bin/sh","#!/bin/bash"].includes(this.startupScript.split(`
1
+ import{a as P}from"./chunk-FIDKTTX5.js";import{a as O}from"./chunk-DQBVZWYJ.js";import{c as y,e as E,l as k,z as $}from"./chunk-EJ3RNOUF.js";import{b as D}from"./chunk-ZOLUFCSO.js";import{b as L}from"./chunk-42N4BQBA.js";import{h as I,k as H}from"./chunk-3YAYVLRD.js";import{a as T}from"./chunk-GOW5VSYJ.js";import{$a as s,Hb as d,Ib as m,Nb as f,Ob as u,Pb as l,Qb as w,Ub as g,Xb as _,Yb as a,h as S,jc as v,la as r,lb as x,qc as b,ra as c,rc as M,sa as p,sc as V,w as C}from"./chunk-NR37MAXW.js";function z(i,h){i&1&&w(0,"i",6)}function A(i,h){i&1&&w(0,"i",7)}function F(i,h){if(i&1){let t=g();u(0,"ngx-monaco-editor",10),_("onInit",function(e){c(t);let o=a();return p(o.onEditorInit(e))})("keydown.control.s",function(e){c(t);let o=a();return e.preventDefault(),p(o.onSave())})("keydown.meta.s",function(e){c(t);let o=a();return e.preventDefault(),p(o.onSave())}),l()}if(i&2){let t=a();f("options",t.editorOptions)("model",t.monacoEditorModel)}}function W(i,h){if(i&1){let t=g();u(0,"textarea",11),V("ngModelChange",function(e){c(t);let o=a();return M(o.startupScript,e)||(o.startupScript=e),p(e)}),v(1," "),l()}if(i&2){let t=a();b("ngModel",t.startupScript)}}var tt=(()=>{class i{$api=r(H);$md=r(O);$route=r(D);$settings=r(L);$toastr=r(I);$translate=r(T);startupScript;saveInProgress;isMobile=!1;options={printMargin:!1};monacoEditor;editorOptions;monacoEditorModel;lastHeight;visualViewPortEventCallback;constructor(){this.isMobile=this.$md.detect.mobile()}ngOnInit(){this.editorOptions={language:"shell",theme:this.$settings.actualLightingMode==="dark"?"vs-dark":"vs-light",automaticLayout:!0},this.visualViewPortEventCallback=()=>this.visualViewPortChanged(),this.lastHeight=window.innerHeight,window.visualViewport&&!this.isMobile&&(window.visualViewport.addEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.disableTouchMove()),this.$route.data.subscribe(t=>{this.startupScript=t.startupScript.script}),this.monacoEditorModel={value:"",language:"shell"}}onEditorInit(t){this.monacoEditor=t,this.monacoEditor.getModel().setValue(this.startupScript)}onSave(){return S(this,null,function*(){if(!this.saveInProgress){if(this.saveInProgress=!0,this.isMobile||(yield this.monacoEditor.getAction("editor.action.formatDocument").run(),this.startupScript=this.monacoEditor.getModel().getValue()),!["#!/bin/sh","#!/bin/bash"].includes(this.startupScript.split(`
2
2
  `)[0].trim())){this.$toastr.error(this.$translate.instant("platform.docker.must_use_hashbang"),this.$translate.instant("toast.title_error")),this.startupScript=`#!/bin/sh
3
3
 
4
4
  ${this.startupScript}`,this.isMobile||this.monacoEditor.getModel().setValue(this.startupScript),this.saveInProgress=!1;return}try{yield C(this.$api.put("/platform-tools/docker/startup-script",{script:this.startupScript})),this.$toastr.success(this.$translate.instant("platform.docker.restart_required"),this.$translate.instant("platform.docker.script_saved"))}catch(t){console.error(t),this.$toastr.error(t.message,this.$translate.instant("toast.title_error"))}this.saveInProgress=!1}})}visualViewPortChanged(){this.lastHeight<window.visualViewport.height&&document.activeElement.blur(),window.visualViewport.height<window.innerHeight?(this.$md.enableTouchMove(),this.lastHeight=window.visualViewport.height):window.visualViewport.height===window.innerHeight&&(this.$md.disableTouchMove(),this.lastHeight=window.visualViewport.height)}ngOnDestroy(){window.visualViewport&&(window.visualViewport.removeEventListener("resize",this.visualViewPortEventCallback,!0),this.$md.enableTouchMove()),this.monacoEditor&&this.monacoEditor.dispose()}static \u0275fac=function(n){return new(n||i)};static \u0275cmp=x({type:i,selectors:[["ng-component"]],decls:11,vars:5,consts:[[1,"flex-column","d-flex","align-items-stretch","h-100"],[1,"row","mb-3"],[1,"col-6"],[1,"primary-text","m-0","font-monospace"],[1,"col-6","text-end"],[1,"btn","btn-primary","waves-effect","m-0",3,"click","disabled"],[1,"fas","fa-fw","fa-floppy-disk"],[1,"fas","fa-fw","fa-spinner","fa-pulse"],[1,"flex-grow-1","h-100","w-100","my-2",3,"options","model"],["wrap","off","autocomplete","off","autocorrect","off","autocapitalize","off","spellcheck","false",1,"hb-plain-text-editor","align-self-end","h-100","w-100","my-2",3,"ngModel"],[1,"flex-grow-1","h-100","w-100","my-2",3,"onInit","keydown.control.s","keydown.meta.s","options","model"],["wrap","off","autocomplete","off","autocorrect","off","autocapitalize","off","spellcheck","false",1,"hb-plain-text-editor","align-self-end","h-100","w-100","my-2",3,"ngModelChange","ngModel"]],template:function(n,e){n&1&&(u(0,"div",0)(1,"div",1)(2,"div",2)(3,"h3",3),v(4,"startup.sh"),l()(),u(5,"div",4)(6,"button",5),_("click",function(){return e.onSave()}),d(7,z,1,0,"i",6),d(8,A,1,0,"i",7),l()()(),d(9,F,1,2,"ngx-monaco-editor",8),d(10,W,2,1,"textarea",9),l()),n&2&&(s(6),f("disabled",e.saveInProgress),s(),m(e.saveInProgress?-1:7),s(),m(e.saveInProgress?8:-1),s(),m(e.isMobile?-1:9),s(),m(e.isMobile?10:-1))},dependencies:[P,$,y,E,k],encapsulation:2})}return i})();export{tt as a};