@duplicati/ngclient 0.0.80 → 0.0.82

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 (46) hide show
  1. package/assets/spk.woff2 +0 -0
  2. package/chunk-2ILIMQUZ.js +1 -0
  3. package/{chunk-YUZINGR7.js → chunk-4NAKJMN4.js} +1 -1
  4. package/{chunk-EGT5S7A4.js → chunk-5UTMYMNZ.js} +1 -1
  5. package/{chunk-NHJBFOCX.js → chunk-6B27Y6JF.js} +1 -1
  6. package/chunk-6GXQ3OS3.js +1 -0
  7. package/{chunk-TFFQHLQK.js → chunk-6OAOHI5B.js} +1 -1
  8. package/{chunk-ZGTFPEDW.js → chunk-7FJJUDJ2.js} +1 -1
  9. package/{chunk-LPGLGZ3U.js → chunk-A3ZJDFD7.js} +1 -1
  10. package/{chunk-FZNTP67Z.js → chunk-ASP3TXLK.js} +1 -1
  11. package/{chunk-RABUX7PS.js → chunk-B3BR2XEK.js} +1 -1
  12. package/{chunk-76NKH7M2.js → chunk-BOZ57J4G.js} +1 -1
  13. package/{chunk-CZ3SCRNE.js → chunk-CEAE6DN3.js} +1 -1
  14. package/{chunk-7ZJVPVCQ.js → chunk-DGAZIN5K.js} +1 -1
  15. package/{chunk-BM4SNLLS.js → chunk-EGYSCZVC.js} +1 -1
  16. package/{chunk-JMQCQ5DN.js → chunk-EZZHN2WE.js} +1 -1
  17. package/{chunk-KAGR24YW.js → chunk-F2275265.js} +1 -1
  18. package/{chunk-CD2B55TH.js → chunk-FEV25ZWF.js} +1 -1
  19. package/{chunk-QFULFMSU.js → chunk-HCUGVK4R.js} +1 -1
  20. package/{chunk-WFFJ2OJB.js → chunk-HODSVG43.js} +1 -1
  21. package/{chunk-MWJ2FIZF.js → chunk-J2TD53K6.js} +1 -1
  22. package/{chunk-IZCX3KB3.js → chunk-JRAP2EKJ.js} +1 -1
  23. package/{chunk-K5WD7D64.js → chunk-JUHZJXZP.js} +1 -1
  24. package/{chunk-ZVCXBMGJ.js → chunk-KFOSQK3Z.js} +1 -1
  25. package/{chunk-S7IEXZZK.js → chunk-LPKATCNH.js} +1 -1
  26. package/{chunk-233ZLAAE.js → chunk-LY3JVR5S.js} +1 -1
  27. package/{chunk-2U3FDBUK.js → chunk-MI3YJO7L.js} +1 -1
  28. package/{chunk-XAAJBERP.js → chunk-NB6C6AWO.js} +1 -1
  29. package/{chunk-XCKJXWMS.js → chunk-PNBAXH5O.js} +1 -1
  30. package/{chunk-UBEY6W6N.js → chunk-R4OTX3ML.js} +1 -1
  31. package/{chunk-HX66OULG.js → chunk-RUM7HWLC.js} +1 -1
  32. package/{chunk-HSEKUB7W.js → chunk-UA3FQ7TU.js} +1 -1
  33. package/{chunk-YB5LG22R.js → chunk-UG4CSTXY.js} +1 -1
  34. package/{chunk-TQIMA3N7.js → chunk-UYV5TDBS.js} +1 -1
  35. package/{chunk-GTXOAJP6.js → chunk-V4FTPFKP.js} +1 -1
  36. package/{chunk-JZFEEATO.js → chunk-WKQNR623.js} +1 -1
  37. package/{chunk-ZSCSUQR3.js → chunk-X5LYBLNB.js} +1 -1
  38. package/{chunk-NRGTIGVX.js → chunk-XJ5AEEQO.js} +1 -1
  39. package/{chunk-XS2FYREZ.js → chunk-YRKXBPEN.js} +1 -1
  40. package/index.html +2 -2
  41. package/{main-2MESDK56.js → main-5RB7QQSV.js} +1 -1
  42. package/package.json +1 -1
  43. package/styles-2QJQOKUX.css +1 -0
  44. package/chunk-4YLHRMHU.js +0 -1
  45. package/chunk-XMGHFJW7.js +0 -1
  46. package/styles-KC6U2UBP.css +0 -1
@@ -1 +1 @@
1
- import{c as a,d as b,e as c}from"./chunk-RABUX7PS.js";import"./chunk-NRGTIGVX.js";import"./chunk-EGT5S7A4.js";import"./chunk-DNHLTHLR.js";import"./chunk-MHZPUJQF.js";import"./chunk-PTG2C2YJ.js";import"./chunk-XFRVNXF6.js";import"./chunk-LFQXDL42.js";import"./chunk-TQE7OBBP.js";import"./chunk-ZRPJ3QZT.js";import"./chunk-NVTD7IP4.js";import"./chunk-IZCX3KB3.js";import"./chunk-6SIZVSDW.js";import"./chunk-JOBMLOGZ.js";import"./chunk-QDAWQNBQ.js";import"./chunk-C6Q5SG76.js";export{a as createDestinationForm,b as createDestinationFormGroup,c as default};
1
+ import{c as a,d as b,e as c}from"./chunk-B3BR2XEK.js";import"./chunk-XJ5AEEQO.js";import"./chunk-5UTMYMNZ.js";import"./chunk-DNHLTHLR.js";import"./chunk-MHZPUJQF.js";import"./chunk-PTG2C2YJ.js";import"./chunk-XFRVNXF6.js";import"./chunk-LFQXDL42.js";import"./chunk-TQE7OBBP.js";import"./chunk-ZRPJ3QZT.js";import"./chunk-NVTD7IP4.js";import"./chunk-JRAP2EKJ.js";import"./chunk-6SIZVSDW.js";import"./chunk-JOBMLOGZ.js";import"./chunk-QDAWQNBQ.js";import"./chunk-C6Q5SG76.js";export{a as createDestinationForm,b as createDestinationFormGroup,c as default};
@@ -1 +1 @@
1
- import{b,d as $,e as h,h as G,l as P,o as B,p as v,r as L}from"./chunk-LFQXDL42.js";import{b as A}from"./chunk-TQE7OBBP.js";import{c as I,d as y}from"./chunk-ZRPJ3QZT.js";import"./chunk-NVTD7IP4.js";import{a as w,c as V,g as x,l as X,z as U}from"./chunk-IZCX3KB3.js";import"./chunk-6SIZVSDW.js";import"./chunk-JOBMLOGZ.js";import{Cb as i,Db as r,E as g,Eb as _,M as T,Ob as C,Pb as O,Qb as f,Ra as F,Tb as N,Ub as m,Y as u,eb as R,hc as M,kb as S,tb as c,tc as k,ua as p,vb as D,yb as E}from"./chunk-QDAWQNBQ.js";import"./chunk-C6Q5SG76.js";var j=()=>["/"];function z(l,e){l&1&&(i(0,"spk-form-field")(1,"label",11),f(2,2),r(),_(3,"input",12),r())}var a=new v,d=class l{#t=u(V);#e=u(A);#o=u(I);isRestoring=p(!1);isSecureFile=p(!1);importForm=a.group({config:a.control(""),cmdline:a.control(!1),importMetadata:a.control(!1),direct:a.control(!1),passphrase:a.control("")});selectedFile=p(null);onFileDropped(e){let t=e.target?.files?.item(0);if(t){let n=new FileReader;this.isSecureFile.set(t.type!=="application/json"),n.onload=this.#n.bind(this),n.readAsArrayBuffer(t)}}#n(e){let o=e.target?.result;this.importForm.patchValue({config:this.#r(o)})}#r(e){let o=new Uint8Array(e),t=o.byteLength,n="";for(let s=0;s<t;s++)n+=String.fromCharCode(o[s]);return btoa(n)}submit(){this.isRestoring.set(!0),this.#e.postApiV1BackupsImport({requestBody:this.importForm.value}).pipe(T(e=>this.#e.postApiV1Backups({requestBody:e.data,temporary:!0})),g(()=>this.isRestoring.set(!1))).subscribe({next:e=>{console.log("/restore-draft",e.ID),this.#o.navigate(["/restore-draft",e.ID])},error:e=>{this.#t.error(e.message)}})}static \u0275fac=function(o){return new(o||l)};static \u0275cmp=R({type:l,selectors:[["app-restore-from-config"]],decls:16,vars:7,consts:()=>{let e;e=$localize` Restore from config ${"\uFFFD#3\uFFFD"}:START_TAG_DIV:${"\uFFFD#4\uFFFD"}:START_TAG_BUTTON:${"[\uFFFD#5\uFFFD|\uFFFD#7\uFFFD]"}:START_TAG_SPK_ICON:arrow-left${"[\uFFFD/#5\uFFFD|\uFFFD/#7\uFFFD]"}:CLOSE_TAG_SPK_ICON: Back ${"[\uFFFD/#4\uFFFD|\uFFFD/#6\uFFFD]"}:CLOSE_TAG_BUTTON:${"\uFFFD#6\uFFFD"}:START_TAG_BUTTON_1:${"[\uFFFD#5\uFFFD|\uFFFD#7\uFFFD]"}:START_TAG_SPK_ICON:download-simple${"[\uFFFD/#5\uFFFD|\uFFFD/#7\uFFFD]"}:CLOSE_TAG_SPK_ICON: Restore ${"[\uFFFD/#4\uFFFD|\uFFFD/#6\uFFFD]"}:CLOSE_TAG_BUTTON:${"\uFFFD/#3\uFFFD"}:CLOSE_TAG_DIV:`,e=N(e);let o;o=$localize`Select a configuration file`;let t;return t=$localize`Passphrase`,[e,o,t,[1,"actions"],["spk-button","","type","button",1,"outlined",3,"routerLink"],["spk-button","","type","submit",1,"raised","primary",3,"click","disabled"],["autocomplete","off",3,"formGroup"],["spkDragDrop","",3,"fileDropped"],["for","file"],["type","file","accept",".json,.aes",3,"change"],["suffix",""],["for","passphrase"],["type","password","formControlName","passphrase"]]},template:function(o,t){o&1&&(i(0,"header")(1,"h3"),C(2,0),i(3,"div",3)(4,"button",4),_(5,"spk-icon"),r(),i(6,"button",5),m("click",function(){return t.submit()}),_(7,"spk-icon"),r()(),O(),r()(),i(8,"form",6)(9,"spk-form-field",7),m("fileDropped",function(s){return t.onFileDropped(s)}),i(10,"label",8),f(11,1),r(),i(12,"input",9),m("change",function(s){return t.onFileDropped(s)}),r(),i(13,"spk-icon",10),M(14,"upload"),r()(),S(15,z,4,0,"spk-form-field"),r()),o&2&&(F(4),c("routerLink",k(6,j)),F(2),D("loader",t.isRestoring()),c("disabled",t.isRestoring()),F(2),c("formGroup",t.importForm),F(7),E(t.isSecureFile()?15:-1))},dependencies:[L,G,b,$,h,P,B,y,U,X,w,x],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;gap:2rem;padding:3rem}h3[_ngcontent-%COMP%]{font:var(--title-30);display:flex;align-items:center;justify-content:space-between}.actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem;max-width:31.25rem}"],changeDetection:0})};export{d as default};
1
+ import{b,d as $,e as h,h as G,l as P,o as B,p as v,r as L}from"./chunk-LFQXDL42.js";import{b as A}from"./chunk-TQE7OBBP.js";import{c as I,d as y}from"./chunk-ZRPJ3QZT.js";import"./chunk-NVTD7IP4.js";import{a as w,c as V,g as x,l as X,z as U}from"./chunk-JRAP2EKJ.js";import"./chunk-6SIZVSDW.js";import"./chunk-JOBMLOGZ.js";import{Cb as i,Db as r,E as g,Eb as _,M as T,Ob as C,Pb as O,Qb as f,Ra as F,Tb as N,Ub as m,Y as u,eb as R,hc as M,kb as S,tb as c,tc as k,ua as p,vb as D,yb as E}from"./chunk-QDAWQNBQ.js";import"./chunk-C6Q5SG76.js";var j=()=>["/"];function z(l,e){l&1&&(i(0,"spk-form-field")(1,"label",11),f(2,2),r(),_(3,"input",12),r())}var a=new v,d=class l{#t=u(V);#e=u(A);#o=u(I);isRestoring=p(!1);isSecureFile=p(!1);importForm=a.group({config:a.control(""),cmdline:a.control(!1),importMetadata:a.control(!1),direct:a.control(!1),passphrase:a.control("")});selectedFile=p(null);onFileDropped(e){let t=e.target?.files?.item(0);if(t){let n=new FileReader;this.isSecureFile.set(t.type!=="application/json"),n.onload=this.#n.bind(this),n.readAsArrayBuffer(t)}}#n(e){let o=e.target?.result;this.importForm.patchValue({config:this.#r(o)})}#r(e){let o=new Uint8Array(e),t=o.byteLength,n="";for(let s=0;s<t;s++)n+=String.fromCharCode(o[s]);return btoa(n)}submit(){this.isRestoring.set(!0),this.#e.postApiV1BackupsImport({requestBody:this.importForm.value}).pipe(T(e=>this.#e.postApiV1Backups({requestBody:e.data,temporary:!0})),g(()=>this.isRestoring.set(!1))).subscribe({next:e=>{console.log("/restore-draft",e.ID),this.#o.navigate(["/restore-draft",e.ID])},error:e=>{this.#t.error(e.message)}})}static \u0275fac=function(o){return new(o||l)};static \u0275cmp=R({type:l,selectors:[["app-restore-from-config"]],decls:16,vars:7,consts:()=>{let e;e=$localize` Restore from config ${"\uFFFD#3\uFFFD"}:START_TAG_DIV:${"\uFFFD#4\uFFFD"}:START_TAG_BUTTON:${"[\uFFFD#5\uFFFD|\uFFFD#7\uFFFD]"}:START_TAG_SPK_ICON:arrow-left${"[\uFFFD/#5\uFFFD|\uFFFD/#7\uFFFD]"}:CLOSE_TAG_SPK_ICON: Back ${"[\uFFFD/#4\uFFFD|\uFFFD/#6\uFFFD]"}:CLOSE_TAG_BUTTON:${"\uFFFD#6\uFFFD"}:START_TAG_BUTTON_1:${"[\uFFFD#5\uFFFD|\uFFFD#7\uFFFD]"}:START_TAG_SPK_ICON:download-simple${"[\uFFFD/#5\uFFFD|\uFFFD/#7\uFFFD]"}:CLOSE_TAG_SPK_ICON: Restore ${"[\uFFFD/#4\uFFFD|\uFFFD/#6\uFFFD]"}:CLOSE_TAG_BUTTON:${"\uFFFD/#3\uFFFD"}:CLOSE_TAG_DIV:`,e=N(e);let o;o=$localize`Select a configuration file`;let t;return t=$localize`Passphrase`,[e,o,t,[1,"actions"],["spk-button","","type","button",1,"outlined",3,"routerLink"],["spk-button","","type","submit",1,"raised","primary",3,"click","disabled"],["autocomplete","off",3,"formGroup"],["spkDragDrop","",3,"fileDropped"],["for","file"],["type","file","accept",".json,.aes",3,"change"],["suffix",""],["for","passphrase"],["type","password","formControlName","passphrase"]]},template:function(o,t){o&1&&(i(0,"header")(1,"h3"),C(2,0),i(3,"div",3)(4,"button",4),_(5,"spk-icon"),r(),i(6,"button",5),m("click",function(){return t.submit()}),_(7,"spk-icon"),r()(),O(),r()(),i(8,"form",6)(9,"spk-form-field",7),m("fileDropped",function(s){return t.onFileDropped(s)}),i(10,"label",8),f(11,1),r(),i(12,"input",9),m("change",function(s){return t.onFileDropped(s)}),r(),i(13,"spk-icon",10),M(14,"upload"),r()(),S(15,z,4,0,"spk-form-field"),r()),o&2&&(F(4),c("routerLink",k(6,j)),F(2),D("loader",t.isRestoring()),c("disabled",t.isRestoring()),F(2),c("formGroup",t.importForm),F(7),E(t.isSecureFile()?15:-1))},dependencies:[L,G,b,$,h,P,B,y,U,X,w,x],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;gap:2rem;padding:3rem}h3[_ngcontent-%COMP%]{font:var(--title-30);display:flex;align-items:center;justify-content:space-between}.actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem;max-width:31.25rem}"],changeDetection:0})};export{d as default};
@@ -1 +1 @@
1
- import{b,c as L,d as N,e as M,h as k,l as v,o as P,p as O,r as x}from"./chunk-LFQXDL42.js";import{c as S}from"./chunk-2K3CR66C.js";import"./chunk-TQE7OBBP.js";import{c as y}from"./chunk-ZRPJ3QZT.js";import"./chunk-NVTD7IP4.js";import{a as E,b as F,g as G,l as T}from"./chunk-IZCX3KB3.js";import"./chunk-6SIZVSDW.js";import"./chunk-JOBMLOGZ.js";import{Cb as t,Db as i,E as c,Eb as p,Ra as m,Ub as w,Y as s,eb as g,hc as n,kb as f,tb as h,ua as l,vb as _,yb as C}from"./chunk-QDAWQNBQ.js";import"./chunk-C6Q5SG76.js";function A(r,e){r&1&&(t(0,"spk-alert",1),n(1," Remember to enter a password, if you can't remember the password open the duplicati client on the machine in question and make sure you open it through the tray icon then go into settings to change the password. "),i())}var u=new O,d=class r{#e=s(y);#t=s(S);failedLogin=l(!1);isLoading=l(!1);loginForm=u.group({user:u.control(""),pass:u.control("",L.required)});submit(){let e=this.loginForm.value.pass;this.loginForm.value.user||e&&(this.isLoading.set(!0),this.#t.login(e).pipe(c(()=>{this.isLoading.set(!1),this.failedLogin.set(!0)})).subscribe({next:()=>this.#e.navigate(["/"])}))}static \u0275fac=function(o){return new(o||r)};static \u0275cmp=g({type:r,selectors:[["app-login"]],decls:15,vars:4,consts:()=>{let e;return e=$localize`Enter your password`,[[3,"submit","formGroup"],["type","warning"],[1,"login-row"],["type","text","hidden","","autocomplete","off","name","username","formControlName","user"],["for","password"],["href","https://docs.duplicati.com/detailed-descriptions/duplicati-access-password","target","_blank","rel","noopener noreferrer"],["type","password","name","password","autocomplete","current-password","placeholder",e,"tabindex","1","formControlName","pass"],["spk-button","","type","submit",1,"raised","primary"]]},template:function(o,a){o&1&&(t(0,"form",0),w("submit",function(){return a.submit()}),f(1,A,2,0,"spk-alert",1),t(2,"div",2),p(3,"input",3),t(4,"spk-form-field")(5,"label",4),n(6," Password "),t(7,"a",5)(8,"spk-icon"),n(9,"question"),i()()(),p(10,"input",6),i(),t(11,"button",7),n(12," Login "),t(13,"spk-icon"),n(14,"arrow-right"),i()()()()),o&2&&(h("formGroup",a.loginForm),m(),C(a.failedLogin()?1:-1),m(10),_("loader",a.isLoading()))},dependencies:[x,k,b,N,M,v,P,T,E,G,F],styles:["[_nghost-%COMP%]{display:block}form[_ngcontent-%COMP%]{width:100vw;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem}spk-alert[_ngcontent-%COMP%]{max-width:20rem;margin:0 auto}h3[_ngcontent-%COMP%]{font:var(--title-30)}.login-row[_ngcontent-%COMP%]{display:flex;align-items:flex-end;gap:.5rem}"],changeDetection:0})};export{d as default};
1
+ import{b,c as L,d as N,e as M,h as k,l as v,o as P,p as O,r as x}from"./chunk-LFQXDL42.js";import{c as S}from"./chunk-2K3CR66C.js";import"./chunk-TQE7OBBP.js";import{c as y}from"./chunk-ZRPJ3QZT.js";import"./chunk-NVTD7IP4.js";import{a as E,b as F,g as G,l as T}from"./chunk-JRAP2EKJ.js";import"./chunk-6SIZVSDW.js";import"./chunk-JOBMLOGZ.js";import{Cb as t,Db as i,E as c,Eb as p,Ra as m,Ub as w,Y as s,eb as g,hc as n,kb as f,tb as h,ua as l,vb as _,yb as C}from"./chunk-QDAWQNBQ.js";import"./chunk-C6Q5SG76.js";function A(r,e){r&1&&(t(0,"spk-alert",1),n(1," Remember to enter a password, if you can't remember the password open the duplicati client on the machine in question and make sure you open it through the tray icon then go into settings to change the password. "),i())}var u=new O,d=class r{#e=s(y);#t=s(S);failedLogin=l(!1);isLoading=l(!1);loginForm=u.group({user:u.control(""),pass:u.control("",L.required)});submit(){let e=this.loginForm.value.pass;this.loginForm.value.user||e&&(this.isLoading.set(!0),this.#t.login(e).pipe(c(()=>{this.isLoading.set(!1),this.failedLogin.set(!0)})).subscribe({next:()=>this.#e.navigate(["/"])}))}static \u0275fac=function(o){return new(o||r)};static \u0275cmp=g({type:r,selectors:[["app-login"]],decls:15,vars:4,consts:()=>{let e;return e=$localize`Enter your password`,[[3,"submit","formGroup"],["type","warning"],[1,"login-row"],["type","text","hidden","","autocomplete","off","name","username","formControlName","user"],["for","password"],["href","https://docs.duplicati.com/detailed-descriptions/duplicati-access-password","target","_blank","rel","noopener noreferrer"],["type","password","name","password","autocomplete","current-password","placeholder",e,"tabindex","1","formControlName","pass"],["spk-button","","type","submit",1,"raised","primary"]]},template:function(o,a){o&1&&(t(0,"form",0),w("submit",function(){return a.submit()}),f(1,A,2,0,"spk-alert",1),t(2,"div",2),p(3,"input",3),t(4,"spk-form-field")(5,"label",4),n(6," Password "),t(7,"a",5)(8,"spk-icon"),n(9,"question"),i()()(),p(10,"input",6),i(),t(11,"button",7),n(12," Login "),t(13,"spk-icon"),n(14,"arrow-right"),i()()()()),o&2&&(h("formGroup",a.loginForm),m(),C(a.failedLogin()?1:-1),m(10),_("loader",a.isLoading()))},dependencies:[x,k,b,N,M,v,P,T,E,G,F],styles:["[_nghost-%COMP%]{display:block}form[_ngcontent-%COMP%]{width:100vw;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem}spk-alert[_ngcontent-%COMP%]{max-width:20rem;margin:0 auto}h3[_ngcontent-%COMP%]{font:var(--title-30)}.login-row[_ngcontent-%COMP%]{display:flex;align-items:flex-end;gap:.5rem}"],changeDetection:0})};export{d as default};
@@ -1 +1 @@
1
- import{e as a,f as b}from"./chunk-GTXOAJP6.js";import"./chunk-NRGTIGVX.js";import"./chunk-EGT5S7A4.js";import"./chunk-MHZPUJQF.js";import"./chunk-PTG2C2YJ.js";import"./chunk-LFQXDL42.js";import"./chunk-TQE7OBBP.js";import"./chunk-ZRPJ3QZT.js";import"./chunk-NVTD7IP4.js";import"./chunk-IZCX3KB3.js";import"./chunk-6SIZVSDW.js";import"./chunk-JOBMLOGZ.js";import"./chunk-QDAWQNBQ.js";import"./chunk-C6Q5SG76.js";export{a as createRestoreSelectFilesForm,b as default};
1
+ import{e as a,f as b}from"./chunk-V4FTPFKP.js";import"./chunk-XJ5AEEQO.js";import"./chunk-5UTMYMNZ.js";import"./chunk-MHZPUJQF.js";import"./chunk-PTG2C2YJ.js";import"./chunk-LFQXDL42.js";import"./chunk-TQE7OBBP.js";import"./chunk-ZRPJ3QZT.js";import"./chunk-NVTD7IP4.js";import"./chunk-JRAP2EKJ.js";import"./chunk-6SIZVSDW.js";import"./chunk-JOBMLOGZ.js";import"./chunk-QDAWQNBQ.js";import"./chunk-C6Q5SG76.js";export{a as createRestoreSelectFilesForm,b as default};
@@ -1,2 +1,2 @@
1
- import{b as B}from"./chunk-TQE7OBBP.js";import{a as D,v as U}from"./chunk-IZCX3KB3.js";import"./chunk-6SIZVSDW.js";import{pa as R}from"./chunk-JOBMLOGZ.js";import{Ab as x,Bb as I,Cb as o,Db as a,E as S,Eb as u,Ib as v,Oa as T,Qb as p,Ra as l,Ub as A,Vb as c,Y as O,da as M,ea as L,eb as f,hc as _,ic as g,kb as E,mc as $,nc as k,oc as y,tb as m,ua as d,ub as P,vb as h,xc as G,yb as b,zb as N,zc as w}from"./chunk-QDAWQNBQ.js";import"./chunk-C6Q5SG76.js";function X(s,n){if(s&1&&(o(0,"tr")(1,"td",10)(2,"code"),u(3,"ol",11),a()()()),s&2){let e=c().$implicit,t=c();l(),P("grid-column","1 / -1")("height","auto"),l(2),m("innerHTML",t.breakIntoLines(e.Exception),T)}}function z(s,n){if(s&1){let e=v();o(0,"tr",7),A("click",function(){let i=M(e).$index,r=c();return L(r.toggleRow(i))}),o(1,"td"),_(2),G(3,"date"),a(),o(4,"td",8),_(5),a(),o(6,"td"),_(7),a(),o(8,"td")(9,"button",9)(10,"spk-icon"),_(11,"caret-down"),a()()()(),E(12,X,4,5,"tr")}if(s&2){let e=n.$implicit,t=n.$index,i=c();l(2),g(w(3,6,e.Timestamp,"MMM dd. hh:mm")),l(3),g(e.BackupID>=0?e.BackupID:"-"),l(2),g(e.Message),l(2),h("rotated-icon",t===i.openRowIndex()),l(3),b(t===i.openRowIndex()?12:-1)}}var F=["BackupID","Timestamp","Message","actions"],C=class s{#e=O(B);displayedColumns=d(F);logsLoading=d(!0);openRowIndex=d(null);logs=d([]);ngOnInit(){this.init()}init(){this.#e.getApiV1LogdataLog().pipe(S(()=>this.logsLoading.set(!1))).subscribe({next:n=>{console.log(n),this.logs.set(n)}})}toggleRow(n){this.openRowIndex.set(n===this.openRowIndex()?null:n)}breakIntoLines(n){let e=n.split(`
1
+ import{b as B}from"./chunk-TQE7OBBP.js";import{a as D,v as U}from"./chunk-JRAP2EKJ.js";import"./chunk-6SIZVSDW.js";import{pa as R}from"./chunk-JOBMLOGZ.js";import{Ab as x,Bb as I,Cb as o,Db as a,E as S,Eb as u,Ib as v,Oa as T,Qb as p,Ra as l,Ub as A,Vb as c,Y as O,da as M,ea as L,eb as f,hc as _,ic as g,kb as E,mc as $,nc as k,oc as y,tb as m,ua as d,ub as P,vb as h,xc as G,yb as b,zb as N,zc as w}from"./chunk-QDAWQNBQ.js";import"./chunk-C6Q5SG76.js";function X(s,n){if(s&1&&(o(0,"tr")(1,"td",10)(2,"code"),u(3,"ol",11),a()()()),s&2){let e=c().$implicit,t=c();l(),P("grid-column","1 / -1")("height","auto"),l(2),m("innerHTML",t.breakIntoLines(e.Exception),T)}}function z(s,n){if(s&1){let e=v();o(0,"tr",7),A("click",function(){let i=M(e).$index,r=c();return L(r.toggleRow(i))}),o(1,"td"),_(2),G(3,"date"),a(),o(4,"td",8),_(5),a(),o(6,"td"),_(7),a(),o(8,"td")(9,"button",9)(10,"spk-icon"),_(11,"caret-down"),a()()()(),E(12,X,4,5,"tr")}if(s&2){let e=n.$implicit,t=n.$index,i=c();l(2),g(w(3,6,e.Timestamp,"MMM dd. hh:mm")),l(3),g(e.BackupID>=0?e.BackupID:"-"),l(2),g(e.Message),l(2),h("rotated-icon",t===i.openRowIndex()),l(3),b(t===i.openRowIndex()?12:-1)}}var F=["BackupID","Timestamp","Message","actions"],C=class s{#e=O(B);displayedColumns=d(F);logsLoading=d(!0);openRowIndex=d(null);logs=d([]);ngOnInit(){this.init()}init(){this.#e.getApiV1LogdataLog().pipe(S(()=>this.logsLoading.set(!1))).subscribe({next:n=>{console.log(n),this.logs.set(n)}})}toggleRow(n){this.openRowIndex.set(n===this.openRowIndex()?null:n)}breakIntoLines(n){let e=n.split(`
2
2
  `),t="";for(let i=0;i<e.length;i++)t+=`<li>${e[i]}</li>`;return t}static \u0275fac=function(e){return new(e||s)};static \u0275cmp=f({type:s,selectors:[["app-logs"]],decls:15,vars:2,consts:()=>{let n;n=$localize`Timestamp`;let e;e=$localize`Backup ID`;let t;t=$localize`Message`;let i;return i=$localize`No data available`,[n,e,t,i,[3,"dataChange","data","loading"],["table-header",""],["table-no-rows",""],[3,"click"],[1,"id"],["spk-button","","type","button",1,"outlined","small"],[2,"white-space","pre-wrap"],[1,"line-numbers-ol",3,"innerHTML"]]},template:function(e,t){e&1&&(o(0,"h3"),_(1,"Logs"),a(),o(2,"spk-table",4),y("dataChange",function(r){return k(t.logs,r)||(t.logs=r),r}),o(3,"tr",5)(4,"th"),p(5,0),a(),o(6,"th"),p(7,1),a(),o(8,"th"),p(9,2),a(),u(10,"th"),a(),x(11,z,13,9,null,null,N),o(13,"div",6),p(14,3),a()()),e&2&&(l(2),$("data",t.logs),m("loading",t.logsLoading()),l(9),I(t.logs()))},dependencies:[U,R,D],styles:["[_nghost-%COMP%]{display:block}h3[_ngcontent-%COMP%]{font:var(--title-30);margin:0 0 1.25rem}spk-table[_ngcontent-%COMP%]{--table-columns: auto auto 1fr auto}spk-table[_ngcontent-%COMP%] td.id[_ngcontent-%COMP%]{justify-content:center}spk-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:has(code){padding:1rem .75rem;overflow:hidden}spk-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:has(code) code[_ngcontent-%COMP%]{background-color:var(--grey-800);color:var(--grey-100);padding:2.5rem 2.5rem 2.5rem 1.5rem;border-radius:var(--shape-3);overflow:auto;white-space:pre}"],changeDetection:0})};export{C as default};
@@ -1 +1 @@
1
- import{a as ie}from"./chunk-Z5FVTSXP.js";import{b as oe,d as ae,g as se,i as le,q as b}from"./chunk-LFQXDL42.js";import{a as ne}from"./chunk-2K3CR66C.js";import{b as A}from"./chunk-TQE7OBBP.js";import{a as _e,b as re,e as pe,g as ue,i as v,l as ce,o as de,p as Se,r as Te,s as me}from"./chunk-IZCX3KB3.js";import{pa as te}from"./chunk-JOBMLOGZ.js";import{a as ge}from"./chunk-US4WRUST.js";import{Ab as P,Bb as N,Cb as l,Db as s,E,Eb as h,Ib as j,Mc as w,Ob as F,Pb as y,Qb as p,Ra as _,Tb as q,Ub as u,Vb as O,Y as c,da as K,ea as W,eb as C,hb as V,hc as m,ic as $,jc as Z,kb as G,kc as J,lc as Y,mc as M,nc as D,oc as R,pa as k,tb as T,ua as r,vb as d,xc as x,yb as U,yc as Q,zb as f,zc as ee}from"./chunk-QDAWQNBQ.js";var L=class o{#e=c(ge);transform(n,...t){return this.#e.locale(),this.#e(n).fromNow()}static \u0275fac=function(t){return new(t||o)};static \u0275pipe=V({name:"appRelativeTime",type:o,pure:!0})};function Pe(o,n){if(o&1){let t=j();l(0,"spk-radio",10),u("click",function(){let i=K(t).$implicit,a=O();return W(a.pauseOption.set(i.value))}),m(1),s()}if(o&2){let t=n.$implicit,e=O();d("active",e.pauseOption()===t.value),_(),Z(" ",t.label," ")}}var Ne=[{label:$localize`5 minuts`,value:"5m"},{label:$localize`10 minuts`,value:"10m"},{label:$localize`15 minuts`,value:"15m"},{label:$localize`30 minuts`,value:"30m"},{label:$localize`1 hour`,value:"1h"},{label:$localize`4 hours`,value:"4h"},{label:$localize`8 hours`,value:"8h"},{label:$localize`24 hours`,value:"24h"},{label:$localize`Until resumed`,value:void 0}],B=class o{#e=c(A);pauseOptions=r(Ne);closed=k();isSubmitting=r(!1);pauseTransfers=r(!1);pauseOption=r(void 0);submit(){this.isSubmitting.set(!0);let n=this.pauseTransfers()||null,t=this.pauseOption();this.#e.postApiV1ServerstatePause({duration:t,pauseTransfers:n}).pipe(E(()=>this.isSubmitting.set(!1))).subscribe({next:e=>{this.closed.emit()}})}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=C({type:o,selectors:[["app-pause-dialog"]],outputs:{closed:"closed"},decls:17,vars:4,consts:()=>{let n;n=$localize`Pause settings`;let t;t=$localize` Also pause transfers `;let e;e=$localize`If you pause transfers they could time out and cause retries or failures.`;let i;i=$localize`Cancel`;let a;return a=$localize` Update settings `,[n,t,e,i,a,["header",""],["content",""],[1,"radios"],[1,"primary","raised",3,"active"],[1,"check-wrap"],[1,"primary","raised",3,"click"],["type","warning"],["footer",""],["spk-button","",3,"click"],["spk-button","",1,"raised","primary",3,"click"]]},template:function(t,e){t&1&&(l(0,"header",5)(1,"h3"),p(2,0),s()(),l(3,"div",6)(4,"div",7),P(5,Pe,2,3,"spk-radio",8,f),s(),l(7,"div",9)(8,"spk-checkbox",10),u("click",function(){return e.pauseTransfers.set(!e.pauseTransfers())}),p(9,1),s(),l(10,"spk-alert",11),p(11,2),s()()(),l(12,"footer",12)(13,"button",13),u("click",function(){return e.closed.emit()}),p(14,3),s(),l(15,"button",14),u("click",function(){return e.submit()}),p(16,4),s()()),t&2&&(_(5),N(e.pauseOptions()),_(3),d("active",e.pauseTransfers()),_(7),d("loader",e.isSubmitting()))},dependencies:[b,Se,v,re],styles:["[_nghost-%COMP%]{--dialog-p: 1.5rem;display:block}h3[_ngcontent-%COMP%]{font:var(--title-30)}.radios[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.check-wrap[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;padding:2rem 0 0}"],changeDetection:0})};function Me(o,n){if(o&1&&(l(0,"spk-option",14),m(1),s()),o&2){let t=n.$implicit;T("value",t),_(),$(t)}}function De(o,n){if(o&1&&(l(0,"spk-option",14),m(1),s()),o&2){let t=n.$implicit;T("value",t),_(),$(t)}}var Re=["Byte/s","KByte/s","MByte/s","GByte/s","TByte/s","PByte/s"],X={Byte:"B",KByte:"KB",MByte:"MB",GByte:"GB",TByte:"TB",PByte:"PB"},Ce=Object.entries(X).reduce((o,[n,t])=>(o[t]=n,o),{}),I=class o{#e=c(A);closed=k();isSubmitting=r(!1);sizeOptions=r(Re);maxUploadActive=r(!1);maxDownloadActive=r(!1);maxUpload=r(0);maxDownload=r(0);maxUploadUnit=r("MByte/s");maxDownloadUnit=r("MByte/s");ngOnInit(){this.init()}init(){this.#e.getApiV1Serversettings().subscribe({next:n=>{let t=n?.["max-upload-speed"]?.split(/(\d+)/),e=n?.["max-download-speed"]?.split(/(\d+)/),i=t[1]??"",a=e[1]??"",S=t[2]??"MB",g=e[2]??"MB",Ae=i===""?10:parseInt(i),fe=a===""?10:parseInt(a);console.log(i),this.maxUploadUnit.set(Ce[S]+"/s"),this.maxDownloadUnit.set(Ce[g]+"/s"),this.maxUploadActive.set(i!==""),this.maxDownloadActive.set(a!==""),this.maxUpload.set(Ae),this.maxDownload.set(fe)}})}blockDecimalKeys(n){if([".",","].includes(n.key))return n.preventDefault()}cleanupInputAfterPasting(n){n.preventDefault();let t=n.clipboardData?.getData("text/plain");if(!t)return;let e=t.replaceAll(/[\.,]/g,"");n.target.value=e}submit(){this.isSubmitting.set(!0);let n=this.maxUploadActive()?`${this.maxUpload()}${X[this.maxUploadUnit().replace("/s","")]}`:"",t=this.maxDownloadActive()?`${this.maxDownload()}${X[this.maxDownloadUnit().replace("/s","")]}`:"";this.#e.patchApiV1Serversettings({requestBody:{"max-upload-speed":n,"max-download-speed":t}}).pipe(E(()=>this.isSubmitting.set(!1))).subscribe({next:e=>{this.closed.emit(!0)}})}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=C({type:o,selectors:[["app-throttle-settings-dialog"]],outputs:{closed:"closed"},decls:30,vars:14,consts:()=>{let n;n=$localize`Throttle network speed`;let t;t=$localize` Max upload speed `;let e;e=$localize` Max download speed `;let i;i=$localize` Note that speeds are entered in bytes, and line speeds are typically reported in bits. Use a factor of 8 to convert, such that an 8 mbit/s line is equivalent to 1 MByte/s. `;let a;a=$localize`Cancel`;let S;return S=$localize` Update settings `,[n,t,e,i,a,S,["header",""],["content",""],[1,"column"],[1,"field-row"],[1,"primary","raised",3,"click"],["type","number",3,"paste","keydown","ngModelChange","ngModel","disabled"],[3,"hideClearButton"],["type","text",3,"ngModelChange","ngModel"],[3,"value"],["footer",""],["spk-button","",3,"click"],["spk-button","",1,"raised","primary",3,"click"]]},template:function(t,e){t&1&&(l(0,"header",6)(1,"h3"),p(2,0),s()(),l(3,"div",7)(4,"div",8)(5,"div",9)(6,"spk-checkbox",10),u("click",function(){return e.maxUploadActive.set(!e.maxUploadActive())}),p(7,1),s(),l(8,"spk-form-field")(9,"input",11),u("paste",function(a){return e.cleanupInputAfterPasting(a)})("keydown",function(a){return e.blockDecimalKeys(a)}),R("ngModelChange",function(a){return D(e.maxUpload,a)||(e.maxUpload=a),a}),s()(),l(10,"spk-select",12)(11,"input",13),R("ngModelChange",function(a){return D(e.maxUploadUnit,a)||(e.maxUploadUnit=a),a}),s(),P(12,Me,2,2,"spk-option",14,f),s()(),l(14,"div",9)(15,"spk-checkbox",10),u("click",function(){return e.maxDownloadActive.set(!e.maxDownloadActive())}),p(16,2),s(),l(17,"spk-form-field")(18,"input",11),u("paste",function(a){return e.cleanupInputAfterPasting(a)})("keydown",function(a){return e.blockDecimalKeys(a)}),R("ngModelChange",function(a){return D(e.maxDownload,a)||(e.maxDownload=a),a}),s()(),l(19,"spk-select",12)(20,"input",13),R("ngModelChange",function(a){return D(e.maxDownloadUnit,a)||(e.maxDownloadUnit=a),a}),s(),P(21,De,2,2,"spk-option",14,f),s()(),l(23,"p"),p(24,3),s()()(),l(25,"footer",15)(26,"button",16),u("click",function(){return e.closed.emit(!1)}),p(27,4),s(),l(28,"button",17),u("click",function(){return e.submit()}),p(29,5),s()()),t&2&&(_(6),d("active",e.maxUploadActive()),_(3),M("ngModel",e.maxUpload),T("disabled",!e.maxUploadActive()),_(),T("hideClearButton",!0),_(),M("ngModel",e.maxUploadUnit),_(),N(e.sizeOptions()),_(3),d("active",e.maxDownloadActive()),_(3),M("ngModel",e.maxDownload),T("disabled",!e.maxDownloadActive()),_(),T("hideClearButton",!0),_(),M("ngModel",e.maxDownloadUnit),_(),N(e.sizeOptions()),_(7),d("loader",e.isSubmitting()))},dependencies:[b,oe,le,ae,se,me,Te,ce,v],styles:["[_nghost-%COMP%]{display:block}h3[_ngcontent-%COMP%]{font:var(--title-30)}.column[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.field-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;width:100%}"],changeDetection:0})};function Ie(o,n){if(o&1&&(l(0,"div"),m(1),s(),h(2,"spk-progress-bar",8)),o&2){let t=O();_(),J("",t.statusData().actionText," - ",t.statusData().statusText,""),_(),T("value",t.statusData().progress*100)}}function ke(o,n){if(o&1&&(l(0,"div",5),m(1),x(2,"appRelativeTime"),x(3,"date"),s()),o&2){let t,e=O();_(),Y(" ",(t=e.nextBackup().backup)==null||t.Backup==null?null:t.Backup.Name," - ",Q(2,3,e.nextBackup().time)," at ",ee(3,5,e.nextBackup().time,"shortTime")," ")}}function he(o,n){o&1&&(l(0,"div",5),p(1,1),s())}function Fe(o,n){o&1&&(l(0,"div",5),p(1,2),s())}function ye(o,n){o&1&&(F(0,0,1),h(1,"spk-icon"),y())}function be(o,n){o&1&&(F(0,0,2),h(1,"spk-icon"),y())}var Oe=new Date,H=class o{#e=c(A);#t=c(ie);#n=c(pe);#i=c(ne);minsAgo=Oe.setMinutes(Oe.getMinutes()-1);statusData=this.#t.statusData;serverState=this.#t.serverState;isRunning=w(()=>this.serverState()?.ProgramState==="Running");isResuming=r(!1);nextBackup=w(()=>({backup:this.serverState()?.ProposedSchedule?.[0]?.backup,time:this.serverState()?.ProposedSchedule?.[0]?.Item2}));openThrottleSettingsDialog(){this.#n.open(I,{maxWidth:"550px",width:"100%"})}openPauseDialog(){this.#n.open(B,{maxWidth:"550px",width:"100%"})}pauseResume(){if(this.isRunning()){this.openPauseDialog();return}this.isResuming.set(!0),this.#e.postApiV1ServerstateResume().pipe(E(()=>this.isResuming.set(!1))).subscribe()}ngAfterViewInit(){let n=this.#i.relayIsEnabled()?"longpoll":"websocket";this.#t.setConnectionMethod(n)}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=C({type:o,selectors:[["app-status-bar"]],decls:14,vars:4,consts:()=>{let n;n=$localize`${"\uFFFD*9:1\uFFFD"}:START_BLOCK_IF:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SPK_ICON:pause${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SPK_ICON: Pause ${"\uFFFD/*9:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*10:2\uFFFD"}:START_BLOCK_ELSE:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SPK_ICON:play${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SPK_ICON: Start ${"\uFFFD/*10:2\uFFFD"}:CLOSE_BLOCK_ELSE:`,n=q(n);let t;t=$localize`No scheduled tasks`;let e;return e=$localize`Loading...`,[n,t,e,[1,"current-backup"],[1,"current-backup-progress"],[1,"label"],[1,"current-backup-actions"],["spk-button","",3,"click"],[1,"raised","primary",3,"value"]]},template:function(t,e){if(t&1&&(l(0,"div",3)(1,"div",4),G(2,Ie,3,3)(3,ke,4,8,"div",5)(4,he,2,0,"div",5)(5,Fe,2,0,"div",5),s(),l(6,"div",6)(7,"button",7),u("click",function(){return e.pauseResume()}),F(8,0),G(9,ye,2,0)(10,be,2,0),y(),s(),l(11,"button",7),u("click",function(){return e.openThrottleSettingsDialog()}),l(12,"spk-icon"),m(13,"speedometer"),s()()()()),t&2){let i;_(2),U((i=e.serverState())!=null&&i.ActiveTask&&(!((i=e.statusData())==null||i.task==null)&&i.task.Status)&&((i=e.statusData())==null||i.task==null?null:i.task.Status)!=="Completed"?2:e.nextBackup().backup||e.nextBackup().time?3:(i=e.serverState())!=null&&i.ActiveTask?5:4),_(5),d("loader",e.isResuming()),_(2),U(e.isRunning()?9:10)}},dependencies:[de,L,te,_e,ue],styles:["[_nghost-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:1rem;min-height:3.875rem;border-bottom:1px solid var(--base-level-40)}.current-backup[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%;gap:.5rem}.current-backup-progress[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem;min-width:18.75rem}.current-backup-actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}"],changeDetection:0})};export{H as a};
1
+ import{a as ie}from"./chunk-Z5FVTSXP.js";import{b as oe,d as ae,g as se,i as le,q as b}from"./chunk-LFQXDL42.js";import{a as ne}from"./chunk-2K3CR66C.js";import{b as A}from"./chunk-TQE7OBBP.js";import{a as _e,b as re,e as pe,g as ue,i as v,l as ce,o as de,p as Se,r as Te,s as me}from"./chunk-JRAP2EKJ.js";import{pa as te}from"./chunk-JOBMLOGZ.js";import{a as ge}from"./chunk-US4WRUST.js";import{Ab as P,Bb as N,Cb as l,Db as s,E,Eb as h,Ib as j,Mc as w,Ob as F,Pb as y,Qb as p,Ra as _,Tb as q,Ub as u,Vb as O,Y as c,da as K,ea as W,eb as C,hb as V,hc as m,ic as $,jc as Z,kb as G,kc as J,lc as Y,mc as M,nc as D,oc as R,pa as k,tb as T,ua as r,vb as d,xc as x,yb as U,yc as Q,zb as f,zc as ee}from"./chunk-QDAWQNBQ.js";var L=class o{#e=c(ge);transform(n,...t){return this.#e.locale(),this.#e(n).fromNow()}static \u0275fac=function(t){return new(t||o)};static \u0275pipe=V({name:"appRelativeTime",type:o,pure:!0})};function Pe(o,n){if(o&1){let t=j();l(0,"spk-radio",10),u("click",function(){let i=K(t).$implicit,a=O();return W(a.pauseOption.set(i.value))}),m(1),s()}if(o&2){let t=n.$implicit,e=O();d("active",e.pauseOption()===t.value),_(),Z(" ",t.label," ")}}var Ne=[{label:$localize`5 minuts`,value:"5m"},{label:$localize`10 minuts`,value:"10m"},{label:$localize`15 minuts`,value:"15m"},{label:$localize`30 minuts`,value:"30m"},{label:$localize`1 hour`,value:"1h"},{label:$localize`4 hours`,value:"4h"},{label:$localize`8 hours`,value:"8h"},{label:$localize`24 hours`,value:"24h"},{label:$localize`Until resumed`,value:void 0}],B=class o{#e=c(A);pauseOptions=r(Ne);closed=k();isSubmitting=r(!1);pauseTransfers=r(!1);pauseOption=r(void 0);submit(){this.isSubmitting.set(!0);let n=this.pauseTransfers()||null,t=this.pauseOption();this.#e.postApiV1ServerstatePause({duration:t,pauseTransfers:n}).pipe(E(()=>this.isSubmitting.set(!1))).subscribe({next:e=>{this.closed.emit()}})}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=C({type:o,selectors:[["app-pause-dialog"]],outputs:{closed:"closed"},decls:17,vars:4,consts:()=>{let n;n=$localize`Pause settings`;let t;t=$localize` Also pause transfers `;let e;e=$localize`If you pause transfers they could time out and cause retries or failures.`;let i;i=$localize`Cancel`;let a;return a=$localize` Update settings `,[n,t,e,i,a,["header",""],["content",""],[1,"radios"],[1,"primary","raised",3,"active"],[1,"check-wrap"],[1,"primary","raised",3,"click"],["type","warning"],["footer",""],["spk-button","",3,"click"],["spk-button","",1,"raised","primary",3,"click"]]},template:function(t,e){t&1&&(l(0,"header",5)(1,"h3"),p(2,0),s()(),l(3,"div",6)(4,"div",7),P(5,Pe,2,3,"spk-radio",8,f),s(),l(7,"div",9)(8,"spk-checkbox",10),u("click",function(){return e.pauseTransfers.set(!e.pauseTransfers())}),p(9,1),s(),l(10,"spk-alert",11),p(11,2),s()()(),l(12,"footer",12)(13,"button",13),u("click",function(){return e.closed.emit()}),p(14,3),s(),l(15,"button",14),u("click",function(){return e.submit()}),p(16,4),s()()),t&2&&(_(5),N(e.pauseOptions()),_(3),d("active",e.pauseTransfers()),_(7),d("loader",e.isSubmitting()))},dependencies:[b,Se,v,re],styles:["[_nghost-%COMP%]{--dialog-p: 1.5rem;display:block}h3[_ngcontent-%COMP%]{font:var(--title-30)}.radios[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.check-wrap[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;padding:2rem 0 0}"],changeDetection:0})};function Me(o,n){if(o&1&&(l(0,"spk-option",14),m(1),s()),o&2){let t=n.$implicit;T("value",t),_(),$(t)}}function De(o,n){if(o&1&&(l(0,"spk-option",14),m(1),s()),o&2){let t=n.$implicit;T("value",t),_(),$(t)}}var Re=["Byte/s","KByte/s","MByte/s","GByte/s","TByte/s","PByte/s"],X={Byte:"B",KByte:"KB",MByte:"MB",GByte:"GB",TByte:"TB",PByte:"PB"},Ce=Object.entries(X).reduce((o,[n,t])=>(o[t]=n,o),{}),I=class o{#e=c(A);closed=k();isSubmitting=r(!1);sizeOptions=r(Re);maxUploadActive=r(!1);maxDownloadActive=r(!1);maxUpload=r(0);maxDownload=r(0);maxUploadUnit=r("MByte/s");maxDownloadUnit=r("MByte/s");ngOnInit(){this.init()}init(){this.#e.getApiV1Serversettings().subscribe({next:n=>{let t=n?.["max-upload-speed"]?.split(/(\d+)/),e=n?.["max-download-speed"]?.split(/(\d+)/),i=t[1]??"",a=e[1]??"",S=t[2]??"MB",g=e[2]??"MB",Ae=i===""?10:parseInt(i),fe=a===""?10:parseInt(a);console.log(i),this.maxUploadUnit.set(Ce[S]+"/s"),this.maxDownloadUnit.set(Ce[g]+"/s"),this.maxUploadActive.set(i!==""),this.maxDownloadActive.set(a!==""),this.maxUpload.set(Ae),this.maxDownload.set(fe)}})}blockDecimalKeys(n){if([".",","].includes(n.key))return n.preventDefault()}cleanupInputAfterPasting(n){n.preventDefault();let t=n.clipboardData?.getData("text/plain");if(!t)return;let e=t.replaceAll(/[\.,]/g,"");n.target.value=e}submit(){this.isSubmitting.set(!0);let n=this.maxUploadActive()?`${this.maxUpload()}${X[this.maxUploadUnit().replace("/s","")]}`:"",t=this.maxDownloadActive()?`${this.maxDownload()}${X[this.maxDownloadUnit().replace("/s","")]}`:"";this.#e.patchApiV1Serversettings({requestBody:{"max-upload-speed":n,"max-download-speed":t}}).pipe(E(()=>this.isSubmitting.set(!1))).subscribe({next:e=>{this.closed.emit(!0)}})}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=C({type:o,selectors:[["app-throttle-settings-dialog"]],outputs:{closed:"closed"},decls:30,vars:14,consts:()=>{let n;n=$localize`Throttle network speed`;let t;t=$localize` Max upload speed `;let e;e=$localize` Max download speed `;let i;i=$localize` Note that speeds are entered in bytes, and line speeds are typically reported in bits. Use a factor of 8 to convert, such that an 8 mbit/s line is equivalent to 1 MByte/s. `;let a;a=$localize`Cancel`;let S;return S=$localize` Update settings `,[n,t,e,i,a,S,["header",""],["content",""],[1,"column"],[1,"field-row"],[1,"primary","raised",3,"click"],["type","number",3,"paste","keydown","ngModelChange","ngModel","disabled"],[3,"hideClearButton"],["type","text",3,"ngModelChange","ngModel"],[3,"value"],["footer",""],["spk-button","",3,"click"],["spk-button","",1,"raised","primary",3,"click"]]},template:function(t,e){t&1&&(l(0,"header",6)(1,"h3"),p(2,0),s()(),l(3,"div",7)(4,"div",8)(5,"div",9)(6,"spk-checkbox",10),u("click",function(){return e.maxUploadActive.set(!e.maxUploadActive())}),p(7,1),s(),l(8,"spk-form-field")(9,"input",11),u("paste",function(a){return e.cleanupInputAfterPasting(a)})("keydown",function(a){return e.blockDecimalKeys(a)}),R("ngModelChange",function(a){return D(e.maxUpload,a)||(e.maxUpload=a),a}),s()(),l(10,"spk-select",12)(11,"input",13),R("ngModelChange",function(a){return D(e.maxUploadUnit,a)||(e.maxUploadUnit=a),a}),s(),P(12,Me,2,2,"spk-option",14,f),s()(),l(14,"div",9)(15,"spk-checkbox",10),u("click",function(){return e.maxDownloadActive.set(!e.maxDownloadActive())}),p(16,2),s(),l(17,"spk-form-field")(18,"input",11),u("paste",function(a){return e.cleanupInputAfterPasting(a)})("keydown",function(a){return e.blockDecimalKeys(a)}),R("ngModelChange",function(a){return D(e.maxDownload,a)||(e.maxDownload=a),a}),s()(),l(19,"spk-select",12)(20,"input",13),R("ngModelChange",function(a){return D(e.maxDownloadUnit,a)||(e.maxDownloadUnit=a),a}),s(),P(21,De,2,2,"spk-option",14,f),s()(),l(23,"p"),p(24,3),s()()(),l(25,"footer",15)(26,"button",16),u("click",function(){return e.closed.emit(!1)}),p(27,4),s(),l(28,"button",17),u("click",function(){return e.submit()}),p(29,5),s()()),t&2&&(_(6),d("active",e.maxUploadActive()),_(3),M("ngModel",e.maxUpload),T("disabled",!e.maxUploadActive()),_(),T("hideClearButton",!0),_(),M("ngModel",e.maxUploadUnit),_(),N(e.sizeOptions()),_(3),d("active",e.maxDownloadActive()),_(3),M("ngModel",e.maxDownload),T("disabled",!e.maxDownloadActive()),_(),T("hideClearButton",!0),_(),M("ngModel",e.maxDownloadUnit),_(),N(e.sizeOptions()),_(7),d("loader",e.isSubmitting()))},dependencies:[b,oe,le,ae,se,me,Te,ce,v],styles:["[_nghost-%COMP%]{display:block}h3[_ngcontent-%COMP%]{font:var(--title-30)}.column[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.field-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;width:100%}"],changeDetection:0})};function Ie(o,n){if(o&1&&(l(0,"div"),m(1),s(),h(2,"spk-progress-bar",8)),o&2){let t=O();_(),J("",t.statusData().actionText," - ",t.statusData().statusText,""),_(),T("value",t.statusData().progress*100)}}function ke(o,n){if(o&1&&(l(0,"div",5),m(1),x(2,"appRelativeTime"),x(3,"date"),s()),o&2){let t,e=O();_(),Y(" ",(t=e.nextBackup().backup)==null||t.Backup==null?null:t.Backup.Name," - ",Q(2,3,e.nextBackup().time)," at ",ee(3,5,e.nextBackup().time,"shortTime")," ")}}function he(o,n){o&1&&(l(0,"div",5),p(1,1),s())}function Fe(o,n){o&1&&(l(0,"div",5),p(1,2),s())}function ye(o,n){o&1&&(F(0,0,1),h(1,"spk-icon"),y())}function be(o,n){o&1&&(F(0,0,2),h(1,"spk-icon"),y())}var Oe=new Date,H=class o{#e=c(A);#t=c(ie);#n=c(pe);#i=c(ne);minsAgo=Oe.setMinutes(Oe.getMinutes()-1);statusData=this.#t.statusData;serverState=this.#t.serverState;isRunning=w(()=>this.serverState()?.ProgramState==="Running");isResuming=r(!1);nextBackup=w(()=>({backup:this.serverState()?.ProposedSchedule?.[0]?.backup,time:this.serverState()?.ProposedSchedule?.[0]?.Item2}));openThrottleSettingsDialog(){this.#n.open(I,{maxWidth:"550px",width:"100%"})}openPauseDialog(){this.#n.open(B,{maxWidth:"550px",width:"100%"})}pauseResume(){if(this.isRunning()){this.openPauseDialog();return}this.isResuming.set(!0),this.#e.postApiV1ServerstateResume().pipe(E(()=>this.isResuming.set(!1))).subscribe()}ngAfterViewInit(){let n=this.#i.relayIsEnabled()?"longpoll":"websocket";this.#t.setConnectionMethod(n)}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=C({type:o,selectors:[["app-status-bar"]],decls:14,vars:4,consts:()=>{let n;n=$localize`${"\uFFFD*9:1\uFFFD"}:START_BLOCK_IF:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SPK_ICON:pause${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SPK_ICON: Pause ${"\uFFFD/*9:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*10:2\uFFFD"}:START_BLOCK_ELSE:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SPK_ICON:play${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SPK_ICON: Start ${"\uFFFD/*10:2\uFFFD"}:CLOSE_BLOCK_ELSE:`,n=q(n);let t;t=$localize`No scheduled tasks`;let e;return e=$localize`Loading...`,[n,t,e,[1,"current-backup"],[1,"current-backup-progress"],[1,"label"],[1,"current-backup-actions"],["spk-button","",3,"click"],[1,"raised","primary",3,"value"]]},template:function(t,e){if(t&1&&(l(0,"div",3)(1,"div",4),G(2,Ie,3,3)(3,ke,4,8,"div",5)(4,he,2,0,"div",5)(5,Fe,2,0,"div",5),s(),l(6,"div",6)(7,"button",7),u("click",function(){return e.pauseResume()}),F(8,0),G(9,ye,2,0)(10,be,2,0),y(),s(),l(11,"button",7),u("click",function(){return e.openThrottleSettingsDialog()}),l(12,"spk-icon"),m(13,"speedometer"),s()()()()),t&2){let i;_(2),U((i=e.serverState())!=null&&i.ActiveTask&&(!((i=e.statusData())==null||i.task==null)&&i.task.Status)&&((i=e.statusData())==null||i.task==null?null:i.task.Status)!=="Completed"?2:e.nextBackup().backup||e.nextBackup().time?3:(i=e.serverState())!=null&&i.ActiveTask?5:4),_(5),d("loader",e.isResuming()),_(2),U(e.isRunning()?9:10)}},dependencies:[de,L,te,_e,ue],styles:["[_nghost-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:1rem;min-height:3.875rem;border-bottom:1px solid var(--base-level-40)}.current-backup[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%;gap:.5rem}.current-backup-progress[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem;min-width:18.75rem}.current-backup-actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}"],changeDetection:0})};export{H as a};
@@ -1 +1 @@
1
- import{a as j}from"./chunk-NRGTIGVX.js";import{a as he}from"./chunk-EGT5S7A4.js";import{b as U}from"./chunk-MHZPUJQF.js";import{a as Oe,b as h,d as M,e as k,h as L,j as de,l as $,o as y,p as D,r as A}from"./chunk-LFQXDL42.js";import{b as I}from"./chunk-TQE7OBBP.js";import{a as P,c as d}from"./chunk-ZRPJ3QZT.js";import{a as b,g as v,l as fe,o as Ce,p as Re,r as Ne,s as Pe,x as Ie}from"./chunk-IZCX3KB3.js";import{pa as K}from"./chunk-JOBMLOGZ.js";import{Ab as ce,Bb as ue,C as se,Cb as r,Db as a,E as O,Eb as l,Fb as X,Gb as z,I as ae,Ib as x,Ob as c,Oc as H,Pb as u,Qb as m,Ra as S,Rb as Se,S as le,Sb as Fe,Ub as T,Vb as B,Y as _,da as C,ea as R,eb as N,hc as Y,kb as V,kc as me,sc as Ee,tb as F,ua as p,v as re,vb as _e,xc as Te,yb as G,zb as pe,zc as ge}from"./chunk-QDAWQNBQ.js";var Me=new D,$e=()=>Me.group({passphrase:Me.control("")}),J=class n{#t=_(I);#e=_(f);#o=_(d);#i=_(P);encryptionForm=this.#e.encryptionForm;creatingTemporaryBackup=p(!1);next(){let t=this.#e.destinationTargetUrl();if(!t)throw new Error("No target URL");this.creatingTemporaryBackup.set(!0);let e=this.encryptionForm.value?.passphrase??null,o=[{Name:"--no-encryption",Value:"true"}];e&&(o=[{Name:"--passphrase",Value:e}]),this.#t.postApiV1Backups({requestBody:{Backup:{TargetURL:t,Settings:o}},temporary:!0}).pipe(O(()=>this.creatingTemporaryBackup.set(!1))).subscribe({next:i=>{let s=i.ID;this.#e.getBackup(s),this.#o.navigate([`/restore-draft/${s}`])},error:i=>{console.error(i)}})}back(){this.#e.isFileRestore()?this.#o.navigate(["encryption"],{relativeTo:this.#i.parent}):this.#e.exit()}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=N({type:n,selectors:[["app-restore-encryption"]],decls:12,vars:1,consts:()=>{let t;t=$localize`Enter backup passphrase if defined.`;let e;e=$localize`Password`;let o;o=$localize`${"\uFFFD#8\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#8\uFFFD"}:CLOSE_TAG_SPK_ICON: Back `;let i;return i=$localize`${"\uFFFD#11\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#11\uFFFD"}:CLOSE_TAG_SPK_ICON: Continue `,[e,o,i,[3,"submit","formGroup"],["for","password"],["type","password","id","password","placeholder",t,"formControlName","passphrase"],[1,"form-actions"],["spk-button","","type","button",3,"click"],["spk-button","","type","submit",1,"raised","primary"]]},template:function(e,o){e&1&&(r(0,"form",3),T("submit",function(){return o.next()}),r(1,"spk-form-field")(2,"label",4),m(3,0),a(),l(4,"input",5),a(),r(5,"div",6)(6,"button",7),T("click",function(){return o.back()}),c(7,1),l(8,"spk-icon"),u(),a(),r(9,"button",8),c(10,2),l(11,"spk-icon"),u(),a()()()),e&2&&F("formGroup",o.encryptionForm)},dependencies:[A,L,h,M,k,$,y,fe,b,v],styles:["[_nghost-%COMP%]{display:block}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"],changeDetection:0})};function Ae(n,t){n&1&&l(0,"spk-progress-bar",8)}function be(n,t){if(n&1&&(r(0,"spk-option",14),Y(1),Te(2,"date"),a()),n&2){let e=t.$implicit;F("value",e.Version),S(),me("",e.Version,": ",ge(2,3,e.Time,"medium"),"")}}function ve(n,t){if(n&1){let e=x();l(0,"spk-progress-bar",8),r(1,"button",10),T("click",function(){C(e);let i=B(2);return R(i.abortLoading())}),m(2,4),a()}}function we(n,t){if(n&1&&(r(0,"app-file-tree",15)(1,"label",16),m(2,5),a(),l(3,"input",17),a()),n&2){let e=B(3);F("rootPath",e.rootPath())("backupSettings",e.backupSettings())("multiSelect",!0)("showFiles",!0)}}function Ge(n,t){if(n&1&&V(0,we,4,4,"app-file-tree",15),n&2){let e=B(2);G((e.isDraft()&&!e.isRepairing()||!e.isDraft())&&e.backupSettings()?0:-1)}}function xe(n,t){if(n&1&&(r(0,"spk-select",12),l(1,"input",13),ce(2,be,3,6,"spk-option",14,pe),a(),V(4,ve,3,0)(5,Ge,1,1)),n&2){let e=B();F("displayFn",e.displayFn())("hideClearButton",!0),S(2),ue(e.versionOptions()),S(2),G(e.isDraft()&&e.isRepairing()||e.versionOptionsLoading()||e.loadingRootPath()?4:-1),S(),G(e.showFileTree()?5:-1)}}var q=new D,ye=()=>q.group({filesToRestore:q.control(""),selectedOption:q.control(null),passphrase:q.control(null)}),Z=class n{#t=_(I);#e=_(f);#o=_(d);#i=_(P);#n=_(K);selectFilesForm=this.#e.selectFilesForm;selectFilesFormSignal=this.#e.selectFilesFormSignal;selectOptionSignal=this.#e.selectOptionSignal;backupId=this.#e.backupId;versionOptionsLoading=this.#e.versionOptionsLoading;versionOptions=this.#e.versionOptions;isDraft=this.#e.isDraft;isFileRestore=this.#e.isFileRestore;showFileTree=p(!1);backupSettings=p(null);backupSettingsEffect=H(()=>{let t=this.backupId(),e=typeof this.selectOptionSignal()=="string"?parseInt(this.selectOptionSignal()):this.selectOptionSignal();if(typeof e!="number"||!t)return;let i=this.versionOptions()?.find(s=>s.Version===e)?.Time??null;i&&(this.showFileTree.set(!1),setTimeout(()=>{let s={id:t+"",time:i};this.backupSettings.set(s),this.getRootPath(s)}))});rootPath=p(void 0);loadingRootPath=p(!1);getRootPath(t){let e={id:t.id+"",time:t.time,prefixOnly:!0,folderContents:!1};this.loadingRootPath.set(!0),this.#t.getApiV1BackupByIdFiles(e).pipe(O(()=>{this.showFileTree.set(!0),this.loadingRootPath.set(!1)})).subscribe({next:o=>{let i=o.Files[0].Path;this.rootPath.set(i)}})}isRepairing=p(!1);repairEffect=H(()=>{let t=this.#e.isDraft(),e=this.selectOptionSignal();if(t&&e){let o=this.backupId();this.isRepairing.set(!0),this.#t.postApiV1BackupByIdRepairupdate({id:o,requestBody:{only_paths:!0,time:new Date().toISOString()}}).pipe(O(()=>this.isRepairing.set(!1))).subscribe()}});abortLoading(){this.selectFilesForm.controls.selectedOption.setValue(null)}displayFn(){let t=this.versionOptions();return e=>{if(!e)return"";let o=t?.find(i=>typeof i.Version=="number"&&i.Version.toString()===e);return o?`${o.Version}: ${this.#n.transform(o.Time,"medium")}`:""}}next(){this.#o.navigate(["options"],{relativeTo:this.#i.parent})}back(){this.#e.isFileRestore()?this.#o.navigate(["encryption"],{relativeTo:this.#i.parent}):this.#e.exit()}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=N({type:n,selectors:[["app-select-files"]],features:[Ee([K])],decls:13,vars:3,consts:()=>{let t;t=$localize`Select files`;let e;e=$localize`${"\uFFFD#9\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#9\uFFFD"}:CLOSE_TAG_SPK_ICON: ${"\uFFFD0\uFFFD"}:INTERPOLATION: `;let o;o=$localize`${"\uFFFD#12\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#12\uFFFD"}:CLOSE_TAG_SPK_ICON: Continue `;let i;i=$localize`Select an option...`;let s;s=$localize`Cancel`;let w;return w=$localize`Path`,[["formRef",""],t,e,o,s,w,[3,"submit","formGroup"],[1,"title-30"],[1,"indeterminate","primary"],[1,"form-actions"],["spk-button","","type","button",3,"click"],["spk-button","","type","submit",1,"raised","primary"],[3,"displayFn","hideClearButton"],["type","text","placeholder",i,"formControlName","selectedOption"],[3,"value"],[3,"rootPath","backupSettings","multiSelect","showFiles"],["for","path"],["type","text","id","path","formControlName","filesToRestore"]]},template:function(e,o){if(e&1){let i=x();r(0,"form",6,0),T("submit",function(){return C(i),R(o.next())}),r(2,"h3",7),m(3,1),a(),V(4,Ae,1,0,"spk-progress-bar",8)(5,xe,6,4),r(6,"div",9)(7,"button",10),T("click",function(){return C(i),R(o.back())}),c(8,2),l(9,"spk-icon"),u(),a(),r(10,"button",11),c(11,3),l(12,"spk-icon"),u(),a()()()}e&2&&(F("formGroup",o.selectFilesForm),S(4),G(o.versionOptionsLoading()?4:5),S(5),Se(o.isFileRestore()?"Back":"Exit"),Fe(8))},dependencies:[A,L,h,M,k,$,y,K,j,v,Ne,b,Pe,Ce],styles:["[_nghost-%COMP%]{display:block}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"],changeDetection:0})};var f=class n{#t=_(d);#e=_(I);backupId=p(null);backup=p(null);destinationTargetUrl=p(null);selectFilesForm=ye();optionsForm=De();encryptionForm=$e();optionsFormSignal=U(this.optionsForm.valueChanges);selectFilesFormSignal=U(this.selectFilesForm.valueChanges);selectOptionSignal=U(this.selectFilesForm.controls.selectedOption.valueChanges);versionOptionsLoading=p(!1);versionOptions=p([]);isSubmitting=p(!1);isDraft=p(!1);isFileRestore=p(!1);init(t,e=!1,o=!1){this.backupId.set(t),this.isFileRestore.set(e),this.isDraft.set(o),e&&this.#t.navigate(["/restore-from-files/destination"]),e||this.getBackup(t,!0)}updateTargetUrl(t){this.destinationTargetUrl.set(t)}submit(){this.isSubmitting.set(!0);let t=this.backupId(),e=this.optionsForm.value,o=this.selectFilesForm.value,i=this.versionOptions()?.find(s=>s.Version===o.selectedOption);this.#e.postApiV1BackupByIdRestore({id:t??"",requestBody:{paths:o.filesToRestore?.split("\0").map(s=>`${s}*`)??[],passphrase:o.passphrase??null,time:i?.Time,restore_path:e.restoreFromPath,overwrite:e.handleExisting==="overwrite",permissions:e.permissions,skip_metadata:!0}}).pipe(O(()=>this.isSubmitting.set(!1))).subscribe({next:()=>this.exit(),error:s=>{console.error("restore error",s)}})}exit(){this.#o(),this.#t.navigate(["/"])}getVersionOptions(){this.versionOptions()}getBackup(t,e=!1){this.versionOptionsLoading.set(!0),re([this.#e.getApiV1BackupById({id:t}),this.#e.getApiV1BackupByIdFilesets({id:t}).pipe(ae(3))]).pipe(se(1),O(()=>this.versionOptionsLoading.set(!1))).subscribe({next:([o,i])=>{this.versionOptions.set(i),this.backup.set(o)}})}#o(){this.selectFilesForm.reset(),this.optionsForm.reset()}static \u0275fac=function(e){return new(e||n)};static \u0275prov=le({token:n,factory:n.\u0275fac,providedIn:"root"})};var W=new D,De=()=>W.group({restoreFrom:W.control("orignal"),restoreFromPath:W.control(""),handleExisting:W.control("overwrite"),permissions:W.control(!1)}),ee=class n{#t=_(f);#e=_(d);#o=_(P);optionsForm=this.#t.optionsForm;optionsFormSignal=this.#t.optionsFormSignal;isSubmitting=this.#t.isSubmitting;goBack(){this.#e.navigate(["select-files"],{relativeTo:this.#o.parent})}submit(){this.#t.submit()}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=N({type:n,selectors:[["app-advanced-options-settings"]],decls:39,vars:6,consts:()=>{let t;t=$localize`Restore options`;let e;e=$localize`Where do you want to restore files from?`;let o;o=$localize` Original location ${"\uFFFD#9\uFFFD\uFFFD/#9\uFFFD"}:TAG_INPUT:`;let i;i=$localize` Pick location ${"\uFFFD#12\uFFFD\uFFFD/#12\uFFFD"}:TAG_INPUT:`;let s;s=$localize`How do you want to handle existing files?`;let w;w=$localize` Overwrite ${"\uFFFD#22\uFFFD\uFFFD/#22\uFFFD"}:TAG_INPUT:`;let g;g=$localize` Save different versions with timestamp in file name ${"\uFFFD#25\uFFFD\uFFFD/#25\uFFFD"}:TAG_INPUT:`;let te;te=$localize`Permissions`;let oe;oe=$localize` Restore read/write permissions ${"\uFFFD#31\uFFFD\uFFFD/#31\uFFFD"}:TAG_INPUT:`;let ie;ie=$localize`${"\uFFFD#35\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#35\uFFFD"}:CLOSE_TAG_SPK_ICON: Go back `;let ne;return ne=$localize`${"\uFFFD#38\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#38\uFFFD"}:CLOSE_TAG_SPK_ICON: Submit `,[["formRef",""],t,e,o,i,s,w,g,te,oe,ie,ne,[3,"submit","formGroup"],[1,"title-30"],[3,"disallowToggle"],["title",""],[1,"raised","primary"],["type","radio","name","restoreFrom","value","orignal","formControlName","restoreFrom"],["type","radio","name","restoreFrom","value","pickLocation","formControlName","restoreFrom"],[3,"disabled"],["for","path"],["type","text","id","path","formControlName","restoreFromPath"],["type","radio","name","handleExisting","value","overwrite","formControlName","handleExisting"],["type","radio","name","handleExisting","value","saveTimestamp","formControlName","handleExisting"],[1,"primary","raised"],["type","checkbox","formControlName","permissions"],[1,"form-actions"],["spk-button","","type","button",3,"click"],["spk-button","","type","submit",1,"raised","primary"]]},template:function(e,o){if(e&1){let i=x();r(0,"form",12,0),T("submit",function(){return C(i),R(o.submit())}),r(2,"h3",13),m(3,1),a(),r(4,"app-toggle-card",14),X(5,15),m(6,2),z(),r(7,"spk-radio",16),c(8,3),l(9,"input",17),u(),a(),r(10,"spk-radio",16),c(11,4),l(12,"input",18),u(),a(),r(13,"app-file-tree",19)(14,"label",20),Y(15,"Path"),a(),l(16,"input",21),a()(),r(17,"app-toggle-card",14),X(18,15),m(19,5),z(),r(20,"spk-radio",16),c(21,6),l(22,"input",22),u(),a(),r(23,"spk-radio",16),c(24,7),l(25,"input",23),u(),a()(),r(26,"app-toggle-card"),X(27,15),m(28,8),z(),r(29,"spk-toggle",24),c(30,9),l(31,"input",25),u(),a()(),r(32,"div",26)(33,"button",27),T("click",function(){return C(i),R(o.goBack())}),c(34,10),l(35,"spk-icon"),u(),a(),r(36,"button",28),c(37,11),l(38,"spk-icon"),u(),a()()()}if(e&2){let i;F("formGroup",o.optionsForm),S(4),F("disallowToggle",!0),S(9),F("disabled",((i=o.optionsFormSignal())==null?null:i.restoreFrom)!=="pickLocation"),S(4),F("disallowToggle",!0),S(19),_e("loader",o.isSubmitting())}},dependencies:[A,L,h,Oe,de,M,k,$,y,he,j,Ie,Re,v,b],styles:["[_nghost-%COMP%]{display:block}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"],changeDetection:0})};export{De as a,ee as b,$e as c,J as d,ye as e,Z as f,f as g};
1
+ import{a as j}from"./chunk-XJ5AEEQO.js";import{a as he}from"./chunk-5UTMYMNZ.js";import{b as U}from"./chunk-MHZPUJQF.js";import{a as Oe,b as h,d as M,e as k,h as L,j as de,l as $,o as y,p as D,r as A}from"./chunk-LFQXDL42.js";import{b as I}from"./chunk-TQE7OBBP.js";import{a as P,c as d}from"./chunk-ZRPJ3QZT.js";import{a as b,g as v,l as fe,o as Ce,p as Re,r as Ne,s as Pe,x as Ie}from"./chunk-JRAP2EKJ.js";import{pa as K}from"./chunk-JOBMLOGZ.js";import{Ab as ce,Bb as ue,C as se,Cb as r,Db as a,E as O,Eb as l,Fb as X,Gb as z,I as ae,Ib as x,Ob as c,Oc as H,Pb as u,Qb as m,Ra as S,Rb as Se,S as le,Sb as Fe,Ub as T,Vb as B,Y as _,da as C,ea as R,eb as N,hc as Y,kb as V,kc as me,sc as Ee,tb as F,ua as p,v as re,vb as _e,xc as Te,yb as G,zb as pe,zc as ge}from"./chunk-QDAWQNBQ.js";var Me=new D,$e=()=>Me.group({passphrase:Me.control("")}),J=class n{#t=_(I);#e=_(f);#o=_(d);#i=_(P);encryptionForm=this.#e.encryptionForm;creatingTemporaryBackup=p(!1);next(){let t=this.#e.destinationTargetUrl();if(!t)throw new Error("No target URL");this.creatingTemporaryBackup.set(!0);let e=this.encryptionForm.value?.passphrase??null,o=[{Name:"--no-encryption",Value:"true"}];e&&(o=[{Name:"--passphrase",Value:e}]),this.#t.postApiV1Backups({requestBody:{Backup:{TargetURL:t,Settings:o}},temporary:!0}).pipe(O(()=>this.creatingTemporaryBackup.set(!1))).subscribe({next:i=>{let s=i.ID;this.#e.getBackup(s),this.#o.navigate([`/restore-draft/${s}`])},error:i=>{console.error(i)}})}back(){this.#e.isFileRestore()?this.#o.navigate(["encryption"],{relativeTo:this.#i.parent}):this.#e.exit()}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=N({type:n,selectors:[["app-restore-encryption"]],decls:12,vars:1,consts:()=>{let t;t=$localize`Enter backup passphrase if defined.`;let e;e=$localize`Password`;let o;o=$localize`${"\uFFFD#8\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#8\uFFFD"}:CLOSE_TAG_SPK_ICON: Back `;let i;return i=$localize`${"\uFFFD#11\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#11\uFFFD"}:CLOSE_TAG_SPK_ICON: Continue `,[e,o,i,[3,"submit","formGroup"],["for","password"],["type","password","id","password","placeholder",t,"formControlName","passphrase"],[1,"form-actions"],["spk-button","","type","button",3,"click"],["spk-button","","type","submit",1,"raised","primary"]]},template:function(e,o){e&1&&(r(0,"form",3),T("submit",function(){return o.next()}),r(1,"spk-form-field")(2,"label",4),m(3,0),a(),l(4,"input",5),a(),r(5,"div",6)(6,"button",7),T("click",function(){return o.back()}),c(7,1),l(8,"spk-icon"),u(),a(),r(9,"button",8),c(10,2),l(11,"spk-icon"),u(),a()()()),e&2&&F("formGroup",o.encryptionForm)},dependencies:[A,L,h,M,k,$,y,fe,b,v],styles:["[_nghost-%COMP%]{display:block}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"],changeDetection:0})};function Ae(n,t){n&1&&l(0,"spk-progress-bar",8)}function be(n,t){if(n&1&&(r(0,"spk-option",14),Y(1),Te(2,"date"),a()),n&2){let e=t.$implicit;F("value",e.Version),S(),me("",e.Version,": ",ge(2,3,e.Time,"medium"),"")}}function ve(n,t){if(n&1){let e=x();l(0,"spk-progress-bar",8),r(1,"button",10),T("click",function(){C(e);let i=B(2);return R(i.abortLoading())}),m(2,4),a()}}function we(n,t){if(n&1&&(r(0,"app-file-tree",15)(1,"label",16),m(2,5),a(),l(3,"input",17),a()),n&2){let e=B(3);F("rootPath",e.rootPath())("backupSettings",e.backupSettings())("multiSelect",!0)("showFiles",!0)}}function Ge(n,t){if(n&1&&V(0,we,4,4,"app-file-tree",15),n&2){let e=B(2);G((e.isDraft()&&!e.isRepairing()||!e.isDraft())&&e.backupSettings()?0:-1)}}function xe(n,t){if(n&1&&(r(0,"spk-select",12),l(1,"input",13),ce(2,be,3,6,"spk-option",14,pe),a(),V(4,ve,3,0)(5,Ge,1,1)),n&2){let e=B();F("displayFn",e.displayFn())("hideClearButton",!0),S(2),ue(e.versionOptions()),S(2),G(e.isDraft()&&e.isRepairing()||e.versionOptionsLoading()||e.loadingRootPath()?4:-1),S(),G(e.showFileTree()?5:-1)}}var q=new D,ye=()=>q.group({filesToRestore:q.control(""),selectedOption:q.control(null),passphrase:q.control(null)}),Z=class n{#t=_(I);#e=_(f);#o=_(d);#i=_(P);#n=_(K);selectFilesForm=this.#e.selectFilesForm;selectFilesFormSignal=this.#e.selectFilesFormSignal;selectOptionSignal=this.#e.selectOptionSignal;backupId=this.#e.backupId;versionOptionsLoading=this.#e.versionOptionsLoading;versionOptions=this.#e.versionOptions;isDraft=this.#e.isDraft;isFileRestore=this.#e.isFileRestore;showFileTree=p(!1);backupSettings=p(null);backupSettingsEffect=H(()=>{let t=this.backupId(),e=typeof this.selectOptionSignal()=="string"?parseInt(this.selectOptionSignal()):this.selectOptionSignal();if(typeof e!="number"||!t)return;let i=this.versionOptions()?.find(s=>s.Version===e)?.Time??null;i&&(this.showFileTree.set(!1),setTimeout(()=>{let s={id:t+"",time:i};this.backupSettings.set(s),this.getRootPath(s)}))});rootPath=p(void 0);loadingRootPath=p(!1);getRootPath(t){let e={id:t.id+"",time:t.time,prefixOnly:!0,folderContents:!1};this.loadingRootPath.set(!0),this.#t.getApiV1BackupByIdFiles(e).pipe(O(()=>{this.showFileTree.set(!0),this.loadingRootPath.set(!1)})).subscribe({next:o=>{let i=o.Files[0].Path;this.rootPath.set(i)}})}isRepairing=p(!1);repairEffect=H(()=>{let t=this.#e.isDraft(),e=this.selectOptionSignal();if(t&&e){let o=this.backupId();this.isRepairing.set(!0),this.#t.postApiV1BackupByIdRepairupdate({id:o,requestBody:{only_paths:!0,time:new Date().toISOString()}}).pipe(O(()=>this.isRepairing.set(!1))).subscribe()}});abortLoading(){this.selectFilesForm.controls.selectedOption.setValue(null)}displayFn(){let t=this.versionOptions();return e=>{if(!e)return"";let o=t?.find(i=>typeof i.Version=="number"&&i.Version.toString()===e);return o?`${o.Version}: ${this.#n.transform(o.Time,"medium")}`:""}}next(){this.#o.navigate(["options"],{relativeTo:this.#i.parent})}back(){this.#e.isFileRestore()?this.#o.navigate(["encryption"],{relativeTo:this.#i.parent}):this.#e.exit()}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=N({type:n,selectors:[["app-select-files"]],features:[Ee([K])],decls:13,vars:3,consts:()=>{let t;t=$localize`Select files`;let e;e=$localize`${"\uFFFD#9\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#9\uFFFD"}:CLOSE_TAG_SPK_ICON: ${"\uFFFD0\uFFFD"}:INTERPOLATION: `;let o;o=$localize`${"\uFFFD#12\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#12\uFFFD"}:CLOSE_TAG_SPK_ICON: Continue `;let i;i=$localize`Select an option...`;let s;s=$localize`Cancel`;let w;return w=$localize`Path`,[["formRef",""],t,e,o,s,w,[3,"submit","formGroup"],[1,"title-30"],[1,"indeterminate","primary"],[1,"form-actions"],["spk-button","","type","button",3,"click"],["spk-button","","type","submit",1,"raised","primary"],[3,"displayFn","hideClearButton"],["type","text","placeholder",i,"formControlName","selectedOption"],[3,"value"],[3,"rootPath","backupSettings","multiSelect","showFiles"],["for","path"],["type","text","id","path","formControlName","filesToRestore"]]},template:function(e,o){if(e&1){let i=x();r(0,"form",6,0),T("submit",function(){return C(i),R(o.next())}),r(2,"h3",7),m(3,1),a(),V(4,Ae,1,0,"spk-progress-bar",8)(5,xe,6,4),r(6,"div",9)(7,"button",10),T("click",function(){return C(i),R(o.back())}),c(8,2),l(9,"spk-icon"),u(),a(),r(10,"button",11),c(11,3),l(12,"spk-icon"),u(),a()()()}e&2&&(F("formGroup",o.selectFilesForm),S(4),G(o.versionOptionsLoading()?4:5),S(5),Se(o.isFileRestore()?"Back":"Exit"),Fe(8))},dependencies:[A,L,h,M,k,$,y,K,j,v,Ne,b,Pe,Ce],styles:["[_nghost-%COMP%]{display:block}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"],changeDetection:0})};var f=class n{#t=_(d);#e=_(I);backupId=p(null);backup=p(null);destinationTargetUrl=p(null);selectFilesForm=ye();optionsForm=De();encryptionForm=$e();optionsFormSignal=U(this.optionsForm.valueChanges);selectFilesFormSignal=U(this.selectFilesForm.valueChanges);selectOptionSignal=U(this.selectFilesForm.controls.selectedOption.valueChanges);versionOptionsLoading=p(!1);versionOptions=p([]);isSubmitting=p(!1);isDraft=p(!1);isFileRestore=p(!1);init(t,e=!1,o=!1){this.backupId.set(t),this.isFileRestore.set(e),this.isDraft.set(o),e&&this.#t.navigate(["/restore-from-files/destination"]),e||this.getBackup(t,!0)}updateTargetUrl(t){this.destinationTargetUrl.set(t)}submit(){this.isSubmitting.set(!0);let t=this.backupId(),e=this.optionsForm.value,o=this.selectFilesForm.value,i=this.versionOptions()?.find(s=>s.Version===o.selectedOption);this.#e.postApiV1BackupByIdRestore({id:t??"",requestBody:{paths:o.filesToRestore?.split("\0").map(s=>`${s}*`)??[],passphrase:o.passphrase??null,time:i?.Time,restore_path:e.restoreFromPath,overwrite:e.handleExisting==="overwrite",permissions:e.permissions,skip_metadata:!0}}).pipe(O(()=>this.isSubmitting.set(!1))).subscribe({next:()=>this.exit(),error:s=>{console.error("restore error",s)}})}exit(){this.#o(),this.#t.navigate(["/"])}getVersionOptions(){this.versionOptions()}getBackup(t,e=!1){this.versionOptionsLoading.set(!0),re([this.#e.getApiV1BackupById({id:t}),this.#e.getApiV1BackupByIdFilesets({id:t}).pipe(ae(3))]).pipe(se(1),O(()=>this.versionOptionsLoading.set(!1))).subscribe({next:([o,i])=>{this.versionOptions.set(i),this.backup.set(o)}})}#o(){this.selectFilesForm.reset(),this.optionsForm.reset()}static \u0275fac=function(e){return new(e||n)};static \u0275prov=le({token:n,factory:n.\u0275fac,providedIn:"root"})};var W=new D,De=()=>W.group({restoreFrom:W.control("orignal"),restoreFromPath:W.control(""),handleExisting:W.control("overwrite"),permissions:W.control(!1)}),ee=class n{#t=_(f);#e=_(d);#o=_(P);optionsForm=this.#t.optionsForm;optionsFormSignal=this.#t.optionsFormSignal;isSubmitting=this.#t.isSubmitting;goBack(){this.#e.navigate(["select-files"],{relativeTo:this.#o.parent})}submit(){this.#t.submit()}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=N({type:n,selectors:[["app-advanced-options-settings"]],decls:39,vars:6,consts:()=>{let t;t=$localize`Restore options`;let e;e=$localize`Where do you want to restore files from?`;let o;o=$localize` Original location ${"\uFFFD#9\uFFFD\uFFFD/#9\uFFFD"}:TAG_INPUT:`;let i;i=$localize` Pick location ${"\uFFFD#12\uFFFD\uFFFD/#12\uFFFD"}:TAG_INPUT:`;let s;s=$localize`How do you want to handle existing files?`;let w;w=$localize` Overwrite ${"\uFFFD#22\uFFFD\uFFFD/#22\uFFFD"}:TAG_INPUT:`;let g;g=$localize` Save different versions with timestamp in file name ${"\uFFFD#25\uFFFD\uFFFD/#25\uFFFD"}:TAG_INPUT:`;let te;te=$localize`Permissions`;let oe;oe=$localize` Restore read/write permissions ${"\uFFFD#31\uFFFD\uFFFD/#31\uFFFD"}:TAG_INPUT:`;let ie;ie=$localize`${"\uFFFD#35\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#35\uFFFD"}:CLOSE_TAG_SPK_ICON: Go back `;let ne;return ne=$localize`${"\uFFFD#38\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#38\uFFFD"}:CLOSE_TAG_SPK_ICON: Submit `,[["formRef",""],t,e,o,i,s,w,g,te,oe,ie,ne,[3,"submit","formGroup"],[1,"title-30"],[3,"disallowToggle"],["title",""],[1,"raised","primary"],["type","radio","name","restoreFrom","value","orignal","formControlName","restoreFrom"],["type","radio","name","restoreFrom","value","pickLocation","formControlName","restoreFrom"],[3,"disabled"],["for","path"],["type","text","id","path","formControlName","restoreFromPath"],["type","radio","name","handleExisting","value","overwrite","formControlName","handleExisting"],["type","radio","name","handleExisting","value","saveTimestamp","formControlName","handleExisting"],[1,"primary","raised"],["type","checkbox","formControlName","permissions"],[1,"form-actions"],["spk-button","","type","button",3,"click"],["spk-button","","type","submit",1,"raised","primary"]]},template:function(e,o){if(e&1){let i=x();r(0,"form",12,0),T("submit",function(){return C(i),R(o.submit())}),r(2,"h3",13),m(3,1),a(),r(4,"app-toggle-card",14),X(5,15),m(6,2),z(),r(7,"spk-radio",16),c(8,3),l(9,"input",17),u(),a(),r(10,"spk-radio",16),c(11,4),l(12,"input",18),u(),a(),r(13,"app-file-tree",19)(14,"label",20),Y(15,"Path"),a(),l(16,"input",21),a()(),r(17,"app-toggle-card",14),X(18,15),m(19,5),z(),r(20,"spk-radio",16),c(21,6),l(22,"input",22),u(),a(),r(23,"spk-radio",16),c(24,7),l(25,"input",23),u(),a()(),r(26,"app-toggle-card"),X(27,15),m(28,8),z(),r(29,"spk-toggle",24),c(30,9),l(31,"input",25),u(),a()(),r(32,"div",26)(33,"button",27),T("click",function(){return C(i),R(o.goBack())}),c(34,10),l(35,"spk-icon"),u(),a(),r(36,"button",28),c(37,11),l(38,"spk-icon"),u(),a()()()}if(e&2){let i;F("formGroup",o.optionsForm),S(4),F("disallowToggle",!0),S(9),F("disabled",((i=o.optionsFormSignal())==null?null:i.restoreFrom)!=="pickLocation"),S(4),F("disallowToggle",!0),S(19),_e("loader",o.isSubmitting())}},dependencies:[A,L,h,Oe,de,M,k,$,y,he,j,Ie,Re,v,b],styles:["[_nghost-%COMP%]{display:block}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"],changeDetection:0})};export{De as a,ee as b,$e as c,J as d,ye as e,Z as f,f as g};
@@ -1 +1 @@
1
- import{m as a,n as b}from"./chunk-RABUX7PS.js";import"./chunk-NRGTIGVX.js";import"./chunk-EGT5S7A4.js";import"./chunk-DNHLTHLR.js";import"./chunk-MHZPUJQF.js";import"./chunk-PTG2C2YJ.js";import"./chunk-XFRVNXF6.js";import"./chunk-LFQXDL42.js";import"./chunk-TQE7OBBP.js";import"./chunk-ZRPJ3QZT.js";import"./chunk-NVTD7IP4.js";import"./chunk-IZCX3KB3.js";import"./chunk-6SIZVSDW.js";import"./chunk-JOBMLOGZ.js";import"./chunk-QDAWQNBQ.js";import"./chunk-C6Q5SG76.js";export{a as createSourceDataForm,b as default};
1
+ import{m as a,n as b}from"./chunk-B3BR2XEK.js";import"./chunk-XJ5AEEQO.js";import"./chunk-5UTMYMNZ.js";import"./chunk-DNHLTHLR.js";import"./chunk-MHZPUJQF.js";import"./chunk-PTG2C2YJ.js";import"./chunk-XFRVNXF6.js";import"./chunk-LFQXDL42.js";import"./chunk-TQE7OBBP.js";import"./chunk-ZRPJ3QZT.js";import"./chunk-NVTD7IP4.js";import"./chunk-JRAP2EKJ.js";import"./chunk-6SIZVSDW.js";import"./chunk-JOBMLOGZ.js";import"./chunk-QDAWQNBQ.js";import"./chunk-C6Q5SG76.js";export{a as createSourceDataForm,b as default};
@@ -1 +1 @@
1
- import{c as h}from"./chunk-2K3CR66C.js";import"./chunk-TQE7OBBP.js";import"./chunk-ZRPJ3QZT.js";import"./chunk-NVTD7IP4.js";import{g as M}from"./chunk-IZCX3KB3.js";import"./chunk-6SIZVSDW.js";import"./chunk-JOBMLOGZ.js";import{Cb as t,Db as i,Eb as g,Qb as l,Ra as u,Wb as C,Xb as c,Y as m,eb as s,hc as O,kb as _,yb as f}from"./chunk-QDAWQNBQ.js";import"./chunk-C6Q5SG76.js";var v=["*",[["","footer",""]]],T=["*","[footer]"],r=class n{static \u0275fac=function(e){return new(e||n)};static \u0275cmp=s({type:n,selectors:[["app-custom-card"]],ngContentSelectors:T,decls:11,vars:0,consts:[[1,"card"],["src","/assets/noise/auth-noise.svg",1,"noise"],[1,"header-title"],["src","/assets/duplicati/duplicati.svg","alt",""],[1,"bg"]],template:function(e,a){e&1&&(C(v),t(0,"div",0),g(1,"img",1),t(2,"header")(3,"div",2),g(4,"img",3),O(5," Duplicati "),i()(),t(6,"main"),c(7),t(8,"footer"),c(9,1),i()()(),g(10,"div",4))},styles:['[_nghost-%COMP%]{height:100vh;width:100vw;display:flex;align-items:center;justify-content:center;background-color:var(--base-level-20)}body.dark [_nghost-%COMP%] .card[_ngcontent-%COMP%]:before{background:radial-gradient(rgba(var(--primary-rgb-900),1),#0000 60%)}.card[_ngcontent-%COMP%]{max-width:480px;width:100%;position:relative;z-index:100;background-color:var(--base-level-10);border-radius:var(--shape-5);box-shadow:var(--box-shadow-40);border:1px solid var(--base-level-30);overflow:hidden}.card[_ngcontent-%COMP%]:before{content:"";position:absolute;height:480px;transform:translateY(-285px);left:0;right:0;z-index:-2;background:radial-gradient(rgba(var(--primary-rgb-100),1),#0000 60%)}.card[_ngcontent-%COMP%] img.noise[_ngcontent-%COMP%]{position:absolute;height:480px;width:100%;transform:translateY(-285px);left:0;right:0;z-index:-1;mask-image:radial-gradient(#000,#0000 60%)}header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;padding:2rem 2rem 0;gap:12px;position:relative;z-index:10}.header-title[_ngcontent-%COMP%]{font:var(--title-30);display:flex;align-items:center;gap:10px}.header-title[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:28px;filter:drop-shadow(0 2px 3px rgba(0,0,0,.3))}main[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;padding:2rem;gap:2.5rem;position:relative;z-index:10}main[_ngcontent-%COMP%] footer[_ngcontent-%COMP%]{font:var(--paragraph-40);color:var(--base-level-60R);text-align:center;text-wrap:balance}.bg[_ngcontent-%COMP%]{position:fixed;inset:0;width:100vw;height:100vh;background-image:url(/assets/backgrounds/base-bg.svg);background-size:cover;background-position:center;background-repeat:no-repeat}body.dark[_ngcontent-%COMP%] .bg[_ngcontent-%COMP%]{opacity:1}footer[_ngcontent-%COMP%]:empty{display:none}'],changeDetection:0})};function x(n,o){n&1&&(t(0,"h3"),l(1,0),i())}function y(n,o){n&1&&(t(0,"h3"),l(1,1),i(),t(2,"button",3),l(3,2),i())}var d=class n{#e=m(h);isLoggingOut=this.#e.isLoggingOut;ngOnInit(){this.#e.logout()}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=s({type:n,selectors:[["app-logout"]],decls:3,vars:1,consts:()=>{let o;o=$localize`Logging out...`;let e;e=$localize`You have successfully logged out your being redirected to login page.`;let a;return a=$localize`Go to login page`,[o,e,a,["spk-button","","routerLink","/",1,"raised","primary"]]},template:function(e,a){e&1&&(t(0,"app-custom-card"),_(1,x,2,0,"h3")(2,y,4,0),i()),e&2&&(u(),f(a.isLoggingOut()?1:2))},dependencies:[r,M],styles:["[_nghost-%COMP%]{display:block}"],changeDetection:0})};export{d as default};
1
+ import{c as h}from"./chunk-2K3CR66C.js";import"./chunk-TQE7OBBP.js";import"./chunk-ZRPJ3QZT.js";import"./chunk-NVTD7IP4.js";import{g as M}from"./chunk-JRAP2EKJ.js";import"./chunk-6SIZVSDW.js";import"./chunk-JOBMLOGZ.js";import{Cb as t,Db as i,Eb as g,Qb as l,Ra as u,Wb as C,Xb as c,Y as m,eb as s,hc as O,kb as _,yb as f}from"./chunk-QDAWQNBQ.js";import"./chunk-C6Q5SG76.js";var v=["*",[["","footer",""]]],T=["*","[footer]"],r=class n{static \u0275fac=function(e){return new(e||n)};static \u0275cmp=s({type:n,selectors:[["app-custom-card"]],ngContentSelectors:T,decls:11,vars:0,consts:[[1,"card"],["src","/assets/noise/auth-noise.svg",1,"noise"],[1,"header-title"],["src","/assets/duplicati/duplicati.svg","alt",""],[1,"bg"]],template:function(e,a){e&1&&(C(v),t(0,"div",0),g(1,"img",1),t(2,"header")(3,"div",2),g(4,"img",3),O(5," Duplicati "),i()(),t(6,"main"),c(7),t(8,"footer"),c(9,1),i()()(),g(10,"div",4))},styles:['[_nghost-%COMP%]{height:100vh;width:100vw;display:flex;align-items:center;justify-content:center;background-color:var(--base-level-20)}body.dark [_nghost-%COMP%] .card[_ngcontent-%COMP%]:before{background:radial-gradient(rgba(var(--primary-rgb-900),1),#0000 60%)}.card[_ngcontent-%COMP%]{max-width:480px;width:100%;position:relative;z-index:100;background-color:var(--base-level-10);border-radius:var(--shape-5);box-shadow:var(--box-shadow-40);border:1px solid var(--base-level-30);overflow:hidden}.card[_ngcontent-%COMP%]:before{content:"";position:absolute;height:480px;transform:translateY(-285px);left:0;right:0;z-index:-2;background:radial-gradient(rgba(var(--primary-rgb-100),1),#0000 60%)}.card[_ngcontent-%COMP%] img.noise[_ngcontent-%COMP%]{position:absolute;height:480px;width:100%;transform:translateY(-285px);left:0;right:0;z-index:-1;mask-image:radial-gradient(#000,#0000 60%)}header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;padding:2rem 2rem 0;gap:12px;position:relative;z-index:10}.header-title[_ngcontent-%COMP%]{font:var(--title-30);display:flex;align-items:center;gap:10px}.header-title[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:28px;filter:drop-shadow(0 2px 3px rgba(0,0,0,.3))}main[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;padding:2rem;gap:2.5rem;position:relative;z-index:10}main[_ngcontent-%COMP%] footer[_ngcontent-%COMP%]{font:var(--paragraph-40);color:var(--base-level-60R);text-align:center;text-wrap:balance}.bg[_ngcontent-%COMP%]{position:fixed;inset:0;width:100vw;height:100vh;background-image:url(/assets/backgrounds/base-bg.svg);background-size:cover;background-position:center;background-repeat:no-repeat}body.dark[_ngcontent-%COMP%] .bg[_ngcontent-%COMP%]{opacity:1}footer[_ngcontent-%COMP%]:empty{display:none}'],changeDetection:0})};function x(n,o){n&1&&(t(0,"h3"),l(1,0),i())}function y(n,o){n&1&&(t(0,"h3"),l(1,1),i(),t(2,"button",3),l(3,2),i())}var d=class n{#e=m(h);isLoggingOut=this.#e.isLoggingOut;ngOnInit(){this.#e.logout()}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=s({type:n,selectors:[["app-logout"]],decls:3,vars:1,consts:()=>{let o;o=$localize`Logging out...`;let e;e=$localize`You have successfully logged out your being redirected to login page.`;let a;return a=$localize`Go to login page`,[o,e,a,["spk-button","","routerLink","/",1,"raised","primary"]]},template:function(e,a){e&1&&(t(0,"app-custom-card"),_(1,x,2,0,"h3")(2,y,4,0),i()),e&2&&(u(),f(a.isLoggingOut()?1:2))},dependencies:[r,M],styles:["[_nghost-%COMP%]{display:block}"],changeDetection:0})};export{d as default};
@@ -1 +1 @@
1
- import{a as ce}from"./chunk-PTG2C2YJ.js";import{q as de}from"./chunk-LFQXDL42.js";import{b as ae}from"./chunk-TQE7OBBP.js";import{a as pe,f as ue,l as he,m as _e,o as fe,x as ge}from"./chunk-IZCX3KB3.js";import{ia as le}from"./chunk-JOBMLOGZ.js";import{Ab as J,Ac as se,Bb as Y,Cb as p,Db as h,E as B,Eb as Z,Hb as G,Ib as k,Mc as W,Oc as w,Qb as R,Ra as g,Rb as ee,Sb as te,Ub as y,Vb as u,Wb as ne,Xb as I,Y as D,Ya as H,da as F,ea as N,eb as K,ec as q,fc as ie,gc as X,hc as M,jc as re,kb as v,pa as V,qa as C,tb as j,ua as x,ub as U,uc as L,v as z,vb as E,vc as oe,yb as b}from"./chunk-QDAWQNBQ.js";import{a as A,b as $}from"./chunk-C6Q5SG76.js";var ve=["treeContainer"],Te=["formRef"],xe=[[["label"]],[["label"]],[["input"]]],be=["label","label","input"],Me=(o,t)=>t.id,Se=o=>({children:o,level:0}),me=o=>({$implicit:o}),Oe=(o,t)=>({children:o,level:t});function Fe(o,t){if(o&1){let e=k();p(0,"spk-button-group")(1,"button",13),y("click",function(){F(e);let s=u();return N(s.pathDiscoveryMethod.set("browse"))}),R(2,4),h(),p(3,"button",13),y("click",function(){F(e);let s=u();return N(s.pathDiscoveryMethod.set("path"))}),R(4,5),h()()}if(o&2){let e=u();g(),E("active",e.pathDiscoveryMethod()==="browse"),g(2),E("active",e.pathDiscoveryMethod()==="path")}}function Ne(o,t){o&1&&Z(0,"spk-progress-bar",9)}function ye(o,t){o&1&&(p(0,"spk-icon",18),M(1,"caret-down"),h(),p(2,"spk-icon",16),M(3,"folder-open"),h())}function we(o,t){o&1&&(p(0,"spk-icon"),M(1,"file"),h())}function ke(o,t){o&1&&(p(0,"spk-icon",18),M(1,"caret-right"),h(),p(2,"spk-icon",16),M(3,"folder"),h())}function Re(o,t){if(o&1&&v(0,ye,4,0)(1,we,2,0,"spk-icon")(2,ke,4,0),o&2){let e=u(2).$implicit;b(e.children.length?0:e.cls==="file"?1:2)}}function Ie(o,t){o&1&&(p(0,"spk-icon",16),M(1,"desktop-tower"),h())}function Le(o,t){o&1&&G(0)}function We(o,t){if(o&1&&v(0,Le,1,0,"ng-container",10),o&2){let e=u(2).$implicit,n=u().$implicit;u();let s=X(7);j("ngTemplateOutlet",s)("ngTemplateOutletContext",L(5,me,oe(2,Oe,e.children,n.level+1)))}}function Ae(o,t){if(o&1){let e=k();p(0,"div",14,3),y("click",function(){F(e);let s=u().$implicit,i=u(2);return N(i.toggleNode(s.id,s))}),p(2,"div",15),v(3,Re,3,1)(4,Ie,2,0,"spk-icon",16),h(),p(5,"div",17),y("click",function(s){F(e);let i=u().$implicit,r=u(2);return N(r.toggleSelectedNode(s,i))}),M(6),h()(),v(7,We,1,7,"ng-container")}if(o&2){let e=u().$implicit,n=u(2);E("accepted",e.accepted===!0)("active",e.evalState===n.TreeEvalEnum.Included)("indeterminate",e.isIndeterminate)("open",e.children.length)("usually-hidden",e.hidden),g(2),E("file",e.cls==="file"),g(),b(e.id!=="/"?3:4),g(3),re(" ",e.text," "),g(),b(e.children.length>0?7:-1)}}function $e(o,t){if(o&1&&v(0,Ae,8,15),o&2){let e=t.$implicit,n=u(2);b(e.hidden&&n._showHiddenNodes()||!e.hidden?0:-1)}}function Be(o,t){if(o&1&&(p(0,"spk-list"),J(1,$e,1,1,null,null,Me),h()),o&2){let e=t.$implicit;U("padding-left",e.level*.25,"rem"),g(),Y(e.children)}}function De(o,t){o&1&&G(0)}function Ve(o,t){if(o&1){let e=k();p(0,"spk-toggle",19),y("click",function(){F(e);let s=u();return N(s._showHiddenNodes.set(!s._showHiddenNodes()))}),R(1,6),h()}if(o&2){let e=u();E("active",e._showHiddenNodes()),g(),ee(e.showFiles()?"files":"folders"),te(1)}}var Ce=(i=>(i[i.ExcludedByParent=-2]="ExcludedByParent",i[i.Excluded=-1]="Excluded",i[i.None=0]="None",i[i.Included=1]="Included",i[i.IncludedByParent=2]="IncludedByParent",i))(Ce||{}),Q=class o{#t=D(ae);#o=D(ce);multiSelect=C(!1);disabled=C(!1);showFiles=C(!1);selectFiles=C(!1);accepts=C(null);startingPath=C(null);rootPath=C(void 0);backupSettings=C(null);pathRefreshTrigger=C(!1);showHiddenNodes=C(!1);hideShortcuts=C(!1);includes=V();excludes=V();_showHiddenNodes=x(!1);treeContainerRef=H("treeContainer");formRef=H("formRef");pathDiscoveryMethod=x("browse");isLoading=x(!1);currentPath=x("/");#e=x(null);treeSearchQuery=x("");treeNodes=x([]);filterGroups=this.#o.filterGroups();isByBackupSettings=W(()=>{let t=this.backupSettings();return!(t===void 0||t?.id===void 0||t?.time===void 0)});searchableTreeNodes=W(()=>{let t=this.treeSearchQuery();return t?this.treeNodes().filter(e=>e.text?.toLowerCase().includes(t.toLowerCase())):this.treeNodes()});TreeEvalEnum=Ce;treeStructure=W(()=>{let t=this.showHiddenNodes(),e=this.currentPath().split("\0").filter(a=>a!==""&&a!=="/"),n=structuredClone(e);for(let a=0;a<n.length;a++){let _=n[a].slice(1);if(_.startsWith("{")&&_.endsWith("}")){let f=_.slice(1,-1),d=this.filterGroups?.FilterGroups[f];if(d&&d.length){let T=d.map(P=>`-${P}`);n.splice(a,1,...T)}}}let s=this.searchableTreeNodes(),i=new Map,r=this.rootPath(),m=this.accepts(),l=r?{id:r,resolvedpath:r,text:r,parentPath:"",children:[],evalState:0,isIndeterminate:!1,cls:"folder"}:{id:"/",resolvedpath:"/",text:"Computer",parentPath:"",children:[],evalState:0,isIndeterminate:!1};m&&(l.accepted=!0),i.set("/",l);for(let a of s){let _=a.id.replace(r??"","").split("/").filter(Boolean),f="",d=l;for(let T of _){if(f+="/"+T,!i.has(f)){let P=a.hidden===!0&&t?0:this.#s(n,a.id,a.cls,d),S={id:a.id,isIndeterminate:this.isIndeterminate(n,a.id),evalState:P,parentPath:f,resolvedpath:a.id?.startsWith("%")?a.resolvedpath+"/":f,hidden:a.hidden,text:a.text,cls:a.cls,children:[]};m&&(S.accepted=this.matchAccepts(m,S)),i.set(f,S),d.children.push(S)}d=i.get(f)}}return[l]});#s(t,e,n,s){if(s.evalState===-1)return-2;let i=0,r=t.filter(l=>!l.startsWith("-")&&!l.startsWith("+")),m=t.filter(l=>l.startsWith("-")||l.startsWith("+"));if(r.length===0)return i;for(let l=0;l<r.length;l++){let a=r[l];if(e?.startsWith(a)){i=1;break}}if(m.length===0)return i;for(let l=0;l<m.length;l++){let a=m[l],c=a.slice(1),_=a.startsWith("-")?"exclude":"include";if(c.startsWith("/")&&c.endsWith("/")){if(n!=="folder")continue;if(e===c){i=_==="include"?1:-1;break}}if(c.startsWith("*")&&c.endsWith("*/")){if(n!=="folder")continue;let d=c.slice(1,-2);if(d==="")break;if(e?.includes(d+"/")){i=_==="include"?1:-1;break}}if(c.startsWith("[.*")&&c.endsWith("[^\\/]*]")){if(n!=="file")continue;let d=c.slice(3,-7);if(new RegExp(d).test(e)){i=_==="include"?1:-1;break}}if(c.startsWith("[")&&c.endsWith("]")){let d=c.slice(1,-1),T=this.translateCSharpRegex(d);if(new RegExp(`${T}`).test(e)){i=_==="include"?1:-1;break}}if(c.startsWith("*.")){if(n!=="file"||c.replace("*.","").length===0)continue;if(this.#n(e,c,!0)){i=_==="include"?1:-1;break}}if(c==="")continue;if(this.#n(e,c,!0)){i=_==="include"?1:-1;break}}return i}translateCSharpRegex(t){let e=t;e=e.replace(/^@/,"");let n=/\(\?<(?<name>\w+)>(?<pattern>[^)]+)\)/g;return e=e.replace(n,(s,i,r)=>`(${r})`),e=e.replace(/\\/g,"\\\\"),e}isIndeterminate(t,e){return t.some(n=>n.startsWith(e))}#n(t,e,n=!1){let s=e.replace(/\*/g,".*").replace(/\?/g,".").replace(/\[!([^\]]+)\]/g,"[^$1]");return new RegExp(`${s}${n?"$":""}`).test(t)}showHiddenNodesEffect=w(()=>this._showHiddenNodes.set(this.showHiddenNodes()));pathDiscoveryMethodEffect=w(()=>{let t=this.pathDiscoveryMethod(),e=this.#e();t==="browse"&&e&&this.currentPath.set(e.value)});matchAccepts(t,e){if(!t||e.cls==="folder"||e.id==="/")return!0;let n=t.split(",");if(n.length===0)return!0;let s="."+e.id.slice(e.id.indexOf("."));return s?n.some(i=>s.endsWith(i)):!1}currentPathEffect=w(()=>{let t=this.#e();t&&(t.value=this.currentPath(),t.dispatchEvent(new Event("input")))});inputValueChangeAbortController=null;inputRefEffect=w(()=>{let t=this.formRef()?.nativeElement?.querySelector("input");t&&(this.#a(t),this.inputValueChangeAbortController&&this.inputValueChangeAbortController.abort(),this.inputValueChangeAbortController=new AbortController,t.addEventListener("inputValueChanged",e=>{this.currentPath.set(e.detail.value)},{signal:this.inputValueChangeAbortController.signal}),this.#e.set(t),t.autocomplete="off")});ngOnInit(){let t=this.startingPath();t?(this.currentPath.set(t),this.#p(t)):this.#r(null,this.rootPath())}toggleSelectedNode(t,e){if(e.id==="/"||(t.stopPropagation(),e.evalState===-2))return;if(this.selectFiles()&&e.cls==="folder"){this.toggleNode(e.id,e);return}if(this.accepts()&&!e.accepted)return;let s=this.currentPath().split("\0").filter(r=>r!==""&&r!=="/"),i=this.isChildOfSelected(e)?`-${e.id}`:e.id;this.multiSelect()?s.includes(e.id)?this.currentPath.set(s.filter(r=>r!==e.id).join("\0")):s.some(r=>r.startsWith(i))?this.currentPath.set(s.filter(r=>r!==i).join("\0")):this.currentPath.set([...s,i].join("\0")):s.includes(e.id)?this.currentPath.set(s.filter(r=>r!==e.id).join("\0")):this.currentPath.set(e.id)}isChildOfSelected(t){return this.currentPath().split("\0").filter(n=>n!==""&&n!=="/").some(n=>t.id?.startsWith(n)||`-${t.id}`.startsWith(n))}toggleNode(t,e=null){e?.cls==="folder"&&(e?.children.length?this.treeNodes.update(n=>n.filter(s=>!s.id?.startsWith(e.id)||s.id===e.id)):this.#r(e,t))}#l(){setTimeout(()=>{let e=this.treeContainerRef()?.nativeElement?.querySelector(".active");e&&e.scrollIntoView({behavior:"smooth",block:"center"})},100)}#a(t){return Object.defineProperty(t,"value",{configurable:!0,get(){return Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value").get.call(this)},set(e){return Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value").set.call(this,e),this.dispatchEvent(new CustomEvent("inputValueChanged",{bubbles:!0,cancelable:!0,detail:{value:e}})),e}}),t}#c(t){return this.#t.postApiV1Filesystem({showHidden:!0,requestBody:{path:t},onlyFolders:!this.showFiles()})}#d(t){let e=this.backupSettings(),n={id:e.id+"",prefixOnly:!1,folderContents:!0,time:e.time,filter:t?"@"+t:void 0};return this.#t.getApiV1BackupByIdFiles(n)}#i(t){return this.isByBackupSettings()?this.#d(t):this.#c(t)}#p(t){let e=t.split("\0").filter(r=>r.startsWith("-")).map(r=>r.slice(1,-1)),n=t.split("\0").filter(r=>!r.startsWith("-")).filter(Boolean),s=n.map(r=>r.split("/").filter(Boolean)),i=[this.rootPath()??"/"];s.forEach(r=>{r.forEach((m,l)=>{let a=r.slice(0,l+1).join("/"),c=a.startsWith("%")?a:"/"+a;i.includes(c)||i.push(c)})}),this.isLoading.set(!0),z([...i.map(r=>this.#i(r))]).pipe(B(()=>this.isLoading.set(!1))).subscribe({next:r=>{this.treeNodes.update(m=>{let l=r.flatMap(c=>c.map(_=>{let f=_.id,d=f&&f.split("/").filter(Boolean).slice(0,-1).join("/"),P="/"+(f&&f.split("/").filter(Boolean).join("/")),S=n.findIndex(O=>this.multiSelect()?P.startsWith(O):P===O)>-1,Ee=n.findIndex(O=>O===f)>-1,Pe=e.findIndex(O=>O===P)>-1;return $(A({},_),{parentPath:d.startsWith("%")?d:"/"+d,isSelected:S&&!Pe||Ee})})),a=[...new Map([...m,...l].map(c=>[c.resolvedpath??c.id,c])).values()];return this.#l(),a})}})}#r(t=null,e="/"){this.isLoading.set(!0),this.#i(e).pipe(B(()=>this.isLoading.set(!1))).subscribe({next:n=>{let s=this.isByBackupSettings()?n.Files.map(i=>({text:i.Path.split("/").filter(r=>r!=="").pop(),id:i.Path,cls:i.Path.endsWith("/")?"folder":"file",leaf:t!==null,resolvedpath:i.Path,hidden:!1})):n;this.treeNodes.update(i=>{let r=s.map(l=>{let a=l.id.startsWith("%")&&l.id.endsWith("%")||l.id.endsWith("/")?"folder":"file";return $(A({},l),{cls:a,parentPath:e})}),m=[...new Map([...i,...r].map(l=>[l.resolvedpath??l.id,l])).values()];return this.hideShortcuts()?m.filter(l=>!l.id.startsWith("%")):m})}})}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=K({type:o,selectors:[["app-file-tree"]],viewQuery:function(e,n){e&1&&(q(n.treeContainerRef,ve,5),q(n.formRef,Te,5)),e&2&&ie(2)},hostVars:2,hostBindings:function(e,n){e&2&&E("disabled",n.disabled())},inputs:{multiSelect:[1,"multiSelect"],disabled:[1,"disabled"],showFiles:[1,"showFiles"],selectFiles:[1,"selectFiles"],accepts:[1,"accepts"],startingPath:[1,"startingPath"],rootPath:[1,"rootPath"],backupSettings:[1,"backupSettings"],pathRefreshTrigger:[1,"pathRefreshTrigger"],showHiddenNodes:[1,"showHiddenNodes"],hideShortcuts:[1,"hideShortcuts"]},outputs:{includes:"includes",excludes:"excludes"},ngContentSelectors:be,decls:15,vars:15,consts:()=>{let t;t=$localize` Browser path `;let e;e=$localize` Manually type path `;let n;return n=$localize` Show hidden ${"\uFFFD0\uFFFD"}:INTERPOLATION: `,[["treeContainer",""],["recursiveTree",""],["formRef",""],["treeNode",""],t,e,n,[1,"section"],[1,"browse-files"],[1,"indeterminate","primary"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"primary","raised","browse-files-toggle",3,"active"],[1,"form-field"],["type","button",3,"click"],["action","",3,"click"],[1,"icon"],[1,"spk-primary"],[1,"text",3,"click"],[1,"small"],[1,"primary","raised","browse-files-toggle",3,"click"]]},template:function(e,n){if(e&1&&(ne(xe),v(0,Fe,5,4,"spk-button-group"),p(1,"div",7),I(2,0,["ngProjectAs","label",5,["label"]]),p(3,"div",8,0),v(5,Ne,1,0,"spk-progress-bar",9)(6,Be,3,2,"ng-template",null,1,se)(8,De,1,0,"ng-container",10),h(),v(9,Ve,2,3,"spk-toggle",11),h(),p(10,"div",12,2)(12,"spk-form-field"),I(13,1,["ngProjectAs","label",5,["label"]]),I(14,2,["ngProjectAs","input",5,["input"]]),h()()),e&2){let s=X(7);b(n.multiSelect()?-1:0),g(),E("hidden",n.pathDiscoveryMethod()!=="browse"),g(2),E("visualize-accepted",n.accepts()),g(2),b(n.isLoading()?5:-1),g(3),j("ngTemplateOutlet",s)("ngTemplateOutletContext",L(13,me,L(11,Se,n.treeStructure()))),g(),b(n.accepts()?-1:9),g(),E("hidden",n.pathDiscoveryMethod()!=="path")}},dependencies:[ue,ge,pe,he,_e,fe,le,de],styles:['[_nghost-%COMP%]{display:flex;flex-direction:column;gap:1rem}.disabled[_nghost-%COMP%]{opacity:.5;-webkit-user-select:none;user-select:none;pointer-events:none;position:relative}.disabled[_nghost-%COMP%]:before{content:"";position:absolute;inset:0;background:transparent}.fill[_nghost-%COMP%]{height:auto;overflow:hidden;flex:1 0}.fill[_nghost-%COMP%] .section[_ngcontent-%COMP%]{height:auto;overflow:hidden;flex:1 0;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto 1fr;grid-template-areas:"label toggle" "tree tree"}.fill[_nghost-%COMP%] .browse-files[_ngcontent-%COMP%]{resize:none;height:initial;grid-area:tree}.fill[_nghost-%COMP%] label[_ngcontent-%COMP%]{grid-area:label}.fill[_nghost-%COMP%] spk-toggle[_ngcontent-%COMP%]{grid-area:toggle;flex-direction:row-reverse}.section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.form-field.hidden[_ngcontent-%COMP%]{display:none}.browse-files[_ngcontent-%COMP%]{display:flex;gap:.5rem;padding:.5rem 1rem;height:12.5rem;border:1px solid var(--base-level-40);border-radius:var(--shape-3);overflow:auto;resize:vertical;background:var(--base-level-10);position:relative}.browse-files[_ngcontent-%COMP%] spk-progress-bar[_ngcontent-%COMP%]{position:absolute;top:0;left:0;right:0}.browse-files.visualize-accepted[_ngcontent-%COMP%] [action][_ngcontent-%COMP%]:not(.accepted){opacity:.5}.browse-files.visualize-accepted[_ngcontent-%COMP%] [action].accepted[_ngcontent-%COMP%]{opacity:1}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%]{--list-active-bg: var(--base-level-30);gap:.125rem;padding:0;height:min-content;min-width:min-content}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action][_ngcontent-%COMP%]{padding:0;gap:0;border:1px solid transparent}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action].active[_ngcontent-%COMP%]{border-color:transparent;--list-active-bg: var(--primary-level-20)}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action].indeterminate[_ngcontent-%COMP%]{border-color:var(--primary-level-40)}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action].usually-hidden[_ngcontent-%COMP%]{opacity:.6}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action][_ngcontent-%COMP%] .text[_ngcontent-%COMP%]{flex:1 0;height:100%;width:max-content;display:flex;align-items:center}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action][_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{width:3rem;gap:.25rem;height:1.5rem;display:flex;align-items:center;justify-content:center;cursor:pointer}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action][_ngcontent-%COMP%] .icon.file[_ngcontent-%COMP%]{width:2rem;padding:0 .25rem}.browse-files-toggle[_ngcontent-%COMP%]{color:var(--base-level-60R)}.hidden[_ngcontent-%COMP%]{display:none}'],changeDetection:0})};export{Q as a};
1
+ import{a as ce}from"./chunk-PTG2C2YJ.js";import{q as de}from"./chunk-LFQXDL42.js";import{b as ae}from"./chunk-TQE7OBBP.js";import{a as pe,f as ue,l as he,m as _e,o as fe,x as ge}from"./chunk-JRAP2EKJ.js";import{ia as le}from"./chunk-JOBMLOGZ.js";import{Ab as J,Ac as se,Bb as Y,Cb as p,Db as h,E as B,Eb as Z,Hb as G,Ib as k,Mc as W,Oc as w,Qb as R,Ra as g,Rb as ee,Sb as te,Ub as y,Vb as u,Wb as ne,Xb as I,Y as D,Ya as H,da as F,ea as N,eb as K,ec as q,fc as ie,gc as X,hc as M,jc as re,kb as v,pa as V,qa as C,tb as j,ua as x,ub as U,uc as L,v as z,vb as E,vc as oe,yb as b}from"./chunk-QDAWQNBQ.js";import{a as A,b as $}from"./chunk-C6Q5SG76.js";var ve=["treeContainer"],Te=["formRef"],xe=[[["label"]],[["label"]],[["input"]]],be=["label","label","input"],Me=(o,t)=>t.id,Se=o=>({children:o,level:0}),me=o=>({$implicit:o}),Oe=(o,t)=>({children:o,level:t});function Fe(o,t){if(o&1){let e=k();p(0,"spk-button-group")(1,"button",13),y("click",function(){F(e);let s=u();return N(s.pathDiscoveryMethod.set("browse"))}),R(2,4),h(),p(3,"button",13),y("click",function(){F(e);let s=u();return N(s.pathDiscoveryMethod.set("path"))}),R(4,5),h()()}if(o&2){let e=u();g(),E("active",e.pathDiscoveryMethod()==="browse"),g(2),E("active",e.pathDiscoveryMethod()==="path")}}function Ne(o,t){o&1&&Z(0,"spk-progress-bar",9)}function ye(o,t){o&1&&(p(0,"spk-icon",18),M(1,"caret-down"),h(),p(2,"spk-icon",16),M(3,"folder-open"),h())}function we(o,t){o&1&&(p(0,"spk-icon"),M(1,"file"),h())}function ke(o,t){o&1&&(p(0,"spk-icon",18),M(1,"caret-right"),h(),p(2,"spk-icon",16),M(3,"folder"),h())}function Re(o,t){if(o&1&&v(0,ye,4,0)(1,we,2,0,"spk-icon")(2,ke,4,0),o&2){let e=u(2).$implicit;b(e.children.length?0:e.cls==="file"?1:2)}}function Ie(o,t){o&1&&(p(0,"spk-icon",16),M(1,"desktop-tower"),h())}function Le(o,t){o&1&&G(0)}function We(o,t){if(o&1&&v(0,Le,1,0,"ng-container",10),o&2){let e=u(2).$implicit,n=u().$implicit;u();let s=X(7);j("ngTemplateOutlet",s)("ngTemplateOutletContext",L(5,me,oe(2,Oe,e.children,n.level+1)))}}function Ae(o,t){if(o&1){let e=k();p(0,"div",14,3),y("click",function(){F(e);let s=u().$implicit,i=u(2);return N(i.toggleNode(s.id,s))}),p(2,"div",15),v(3,Re,3,1)(4,Ie,2,0,"spk-icon",16),h(),p(5,"div",17),y("click",function(s){F(e);let i=u().$implicit,r=u(2);return N(r.toggleSelectedNode(s,i))}),M(6),h()(),v(7,We,1,7,"ng-container")}if(o&2){let e=u().$implicit,n=u(2);E("accepted",e.accepted===!0)("active",e.evalState===n.TreeEvalEnum.Included)("indeterminate",e.isIndeterminate)("open",e.children.length)("usually-hidden",e.hidden),g(2),E("file",e.cls==="file"),g(),b(e.id!=="/"?3:4),g(3),re(" ",e.text," "),g(),b(e.children.length>0?7:-1)}}function $e(o,t){if(o&1&&v(0,Ae,8,15),o&2){let e=t.$implicit,n=u(2);b(e.hidden&&n._showHiddenNodes()||!e.hidden?0:-1)}}function Be(o,t){if(o&1&&(p(0,"spk-list"),J(1,$e,1,1,null,null,Me),h()),o&2){let e=t.$implicit;U("padding-left",e.level*.25,"rem"),g(),Y(e.children)}}function De(o,t){o&1&&G(0)}function Ve(o,t){if(o&1){let e=k();p(0,"spk-toggle",19),y("click",function(){F(e);let s=u();return N(s._showHiddenNodes.set(!s._showHiddenNodes()))}),R(1,6),h()}if(o&2){let e=u();E("active",e._showHiddenNodes()),g(),ee(e.showFiles()?"files":"folders"),te(1)}}var Ce=(i=>(i[i.ExcludedByParent=-2]="ExcludedByParent",i[i.Excluded=-1]="Excluded",i[i.None=0]="None",i[i.Included=1]="Included",i[i.IncludedByParent=2]="IncludedByParent",i))(Ce||{}),Q=class o{#t=D(ae);#o=D(ce);multiSelect=C(!1);disabled=C(!1);showFiles=C(!1);selectFiles=C(!1);accepts=C(null);startingPath=C(null);rootPath=C(void 0);backupSettings=C(null);pathRefreshTrigger=C(!1);showHiddenNodes=C(!1);hideShortcuts=C(!1);includes=V();excludes=V();_showHiddenNodes=x(!1);treeContainerRef=H("treeContainer");formRef=H("formRef");pathDiscoveryMethod=x("browse");isLoading=x(!1);currentPath=x("/");#e=x(null);treeSearchQuery=x("");treeNodes=x([]);filterGroups=this.#o.filterGroups();isByBackupSettings=W(()=>{let t=this.backupSettings();return!(t===void 0||t?.id===void 0||t?.time===void 0)});searchableTreeNodes=W(()=>{let t=this.treeSearchQuery();return t?this.treeNodes().filter(e=>e.text?.toLowerCase().includes(t.toLowerCase())):this.treeNodes()});TreeEvalEnum=Ce;treeStructure=W(()=>{let t=this.showHiddenNodes(),e=this.currentPath().split("\0").filter(a=>a!==""&&a!=="/"),n=structuredClone(e);for(let a=0;a<n.length;a++){let _=n[a].slice(1);if(_.startsWith("{")&&_.endsWith("}")){let f=_.slice(1,-1),d=this.filterGroups?.FilterGroups[f];if(d&&d.length){let T=d.map(P=>`-${P}`);n.splice(a,1,...T)}}}let s=this.searchableTreeNodes(),i=new Map,r=this.rootPath(),m=this.accepts(),l=r?{id:r,resolvedpath:r,text:r,parentPath:"",children:[],evalState:0,isIndeterminate:!1,cls:"folder"}:{id:"/",resolvedpath:"/",text:"Computer",parentPath:"",children:[],evalState:0,isIndeterminate:!1};m&&(l.accepted=!0),i.set("/",l);for(let a of s){let _=a.id.replace(r??"","").split("/").filter(Boolean),f="",d=l;for(let T of _){if(f+="/"+T,!i.has(f)){let P=a.hidden===!0&&t?0:this.#s(n,a.id,a.cls,d),S={id:a.id,isIndeterminate:this.isIndeterminate(n,a.id),evalState:P,parentPath:f,resolvedpath:a.id?.startsWith("%")?a.resolvedpath+"/":f,hidden:a.hidden,text:a.text,cls:a.cls,children:[]};m&&(S.accepted=this.matchAccepts(m,S)),i.set(f,S),d.children.push(S)}d=i.get(f)}}return[l]});#s(t,e,n,s){if(s.evalState===-1)return-2;let i=0,r=t.filter(l=>!l.startsWith("-")&&!l.startsWith("+")),m=t.filter(l=>l.startsWith("-")||l.startsWith("+"));if(r.length===0)return i;for(let l=0;l<r.length;l++){let a=r[l];if(e?.startsWith(a)){i=1;break}}if(m.length===0)return i;for(let l=0;l<m.length;l++){let a=m[l],c=a.slice(1),_=a.startsWith("-")?"exclude":"include";if(c.startsWith("/")&&c.endsWith("/")){if(n!=="folder")continue;if(e===c){i=_==="include"?1:-1;break}}if(c.startsWith("*")&&c.endsWith("*/")){if(n!=="folder")continue;let d=c.slice(1,-2);if(d==="")break;if(e?.includes(d+"/")){i=_==="include"?1:-1;break}}if(c.startsWith("[.*")&&c.endsWith("[^\\/]*]")){if(n!=="file")continue;let d=c.slice(3,-7);if(new RegExp(d).test(e)){i=_==="include"?1:-1;break}}if(c.startsWith("[")&&c.endsWith("]")){let d=c.slice(1,-1),T=this.translateCSharpRegex(d);if(new RegExp(`${T}`).test(e)){i=_==="include"?1:-1;break}}if(c.startsWith("*.")){if(n!=="file"||c.replace("*.","").length===0)continue;if(this.#n(e,c,!0)){i=_==="include"?1:-1;break}}if(c==="")continue;if(this.#n(e,c,!0)){i=_==="include"?1:-1;break}}return i}translateCSharpRegex(t){let e=t;e=e.replace(/^@/,"");let n=/\(\?<(?<name>\w+)>(?<pattern>[^)]+)\)/g;return e=e.replace(n,(s,i,r)=>`(${r})`),e=e.replace(/\\/g,"\\\\"),e}isIndeterminate(t,e){return t.some(n=>n.startsWith(e))}#n(t,e,n=!1){let s=e.replace(/\*/g,".*").replace(/\?/g,".").replace(/\[!([^\]]+)\]/g,"[^$1]");return new RegExp(`${s}${n?"$":""}`).test(t)}showHiddenNodesEffect=w(()=>this._showHiddenNodes.set(this.showHiddenNodes()));pathDiscoveryMethodEffect=w(()=>{let t=this.pathDiscoveryMethod(),e=this.#e();t==="browse"&&e&&this.currentPath.set(e.value)});matchAccepts(t,e){if(!t||e.cls==="folder"||e.id==="/")return!0;let n=t.split(",");if(n.length===0)return!0;let s="."+e.id.slice(e.id.indexOf("."));return s?n.some(i=>s.endsWith(i)):!1}currentPathEffect=w(()=>{let t=this.#e();t&&(t.value=this.currentPath(),t.dispatchEvent(new Event("input")))});inputValueChangeAbortController=null;inputRefEffect=w(()=>{let t=this.formRef()?.nativeElement?.querySelector("input");t&&(this.#a(t),this.inputValueChangeAbortController&&this.inputValueChangeAbortController.abort(),this.inputValueChangeAbortController=new AbortController,t.addEventListener("inputValueChanged",e=>{this.currentPath.set(e.detail.value)},{signal:this.inputValueChangeAbortController.signal}),this.#e.set(t),t.autocomplete="off")});ngOnInit(){let t=this.startingPath();t?(this.currentPath.set(t),this.#p(t)):this.#r(null,this.rootPath())}toggleSelectedNode(t,e){if(e.id==="/"||(t.stopPropagation(),e.evalState===-2))return;if(this.selectFiles()&&e.cls==="folder"){this.toggleNode(e.id,e);return}if(this.accepts()&&!e.accepted)return;let s=this.currentPath().split("\0").filter(r=>r!==""&&r!=="/"),i=this.isChildOfSelected(e)?`-${e.id}`:e.id;this.multiSelect()?s.includes(e.id)?this.currentPath.set(s.filter(r=>r!==e.id).join("\0")):s.some(r=>r.startsWith(i))?this.currentPath.set(s.filter(r=>r!==i).join("\0")):this.currentPath.set([...s,i].join("\0")):s.includes(e.id)?this.currentPath.set(s.filter(r=>r!==e.id).join("\0")):this.currentPath.set(e.id)}isChildOfSelected(t){return this.currentPath().split("\0").filter(n=>n!==""&&n!=="/").some(n=>t.id?.startsWith(n)||`-${t.id}`.startsWith(n))}toggleNode(t,e=null){e?.cls==="folder"&&(e?.children.length?this.treeNodes.update(n=>n.filter(s=>!s.id?.startsWith(e.id)||s.id===e.id)):this.#r(e,t))}#l(){setTimeout(()=>{let e=this.treeContainerRef()?.nativeElement?.querySelector(".active");e&&e.scrollIntoView({behavior:"smooth",block:"center"})},100)}#a(t){return Object.defineProperty(t,"value",{configurable:!0,get(){return Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value").get.call(this)},set(e){return Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value").set.call(this,e),this.dispatchEvent(new CustomEvent("inputValueChanged",{bubbles:!0,cancelable:!0,detail:{value:e}})),e}}),t}#c(t){return this.#t.postApiV1Filesystem({showHidden:!0,requestBody:{path:t},onlyFolders:!this.showFiles()})}#d(t){let e=this.backupSettings(),n={id:e.id+"",prefixOnly:!1,folderContents:!0,time:e.time,filter:t?"@"+t:void 0};return this.#t.getApiV1BackupByIdFiles(n)}#i(t){return this.isByBackupSettings()?this.#d(t):this.#c(t)}#p(t){let e=t.split("\0").filter(r=>r.startsWith("-")).map(r=>r.slice(1,-1)),n=t.split("\0").filter(r=>!r.startsWith("-")).filter(Boolean),s=n.map(r=>r.split("/").filter(Boolean)),i=[this.rootPath()??"/"];s.forEach(r=>{r.forEach((m,l)=>{let a=r.slice(0,l+1).join("/"),c=a.startsWith("%")?a:"/"+a;i.includes(c)||i.push(c)})}),this.isLoading.set(!0),z([...i.map(r=>this.#i(r))]).pipe(B(()=>this.isLoading.set(!1))).subscribe({next:r=>{this.treeNodes.update(m=>{let l=r.flatMap(c=>c.map(_=>{let f=_.id,d=f&&f.split("/").filter(Boolean).slice(0,-1).join("/"),P="/"+(f&&f.split("/").filter(Boolean).join("/")),S=n.findIndex(O=>this.multiSelect()?P.startsWith(O):P===O)>-1,Ee=n.findIndex(O=>O===f)>-1,Pe=e.findIndex(O=>O===P)>-1;return $(A({},_),{parentPath:d.startsWith("%")?d:"/"+d,isSelected:S&&!Pe||Ee})})),a=[...new Map([...m,...l].map(c=>[c.resolvedpath??c.id,c])).values()];return this.#l(),a})}})}#r(t=null,e="/"){this.isLoading.set(!0),this.#i(e).pipe(B(()=>this.isLoading.set(!1))).subscribe({next:n=>{let s=this.isByBackupSettings()?n.Files.map(i=>({text:i.Path.split("/").filter(r=>r!=="").pop(),id:i.Path,cls:i.Path.endsWith("/")?"folder":"file",leaf:t!==null,resolvedpath:i.Path,hidden:!1})):n;this.treeNodes.update(i=>{let r=s.map(l=>{let a=l.id.startsWith("%")&&l.id.endsWith("%")||l.id.endsWith("/")?"folder":"file";return $(A({},l),{cls:a,parentPath:e})}),m=[...new Map([...i,...r].map(l=>[l.resolvedpath??l.id,l])).values()];return this.hideShortcuts()?m.filter(l=>!l.id.startsWith("%")):m})}})}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=K({type:o,selectors:[["app-file-tree"]],viewQuery:function(e,n){e&1&&(q(n.treeContainerRef,ve,5),q(n.formRef,Te,5)),e&2&&ie(2)},hostVars:2,hostBindings:function(e,n){e&2&&E("disabled",n.disabled())},inputs:{multiSelect:[1,"multiSelect"],disabled:[1,"disabled"],showFiles:[1,"showFiles"],selectFiles:[1,"selectFiles"],accepts:[1,"accepts"],startingPath:[1,"startingPath"],rootPath:[1,"rootPath"],backupSettings:[1,"backupSettings"],pathRefreshTrigger:[1,"pathRefreshTrigger"],showHiddenNodes:[1,"showHiddenNodes"],hideShortcuts:[1,"hideShortcuts"]},outputs:{includes:"includes",excludes:"excludes"},ngContentSelectors:be,decls:15,vars:15,consts:()=>{let t;t=$localize` Browser path `;let e;e=$localize` Manually type path `;let n;return n=$localize` Show hidden ${"\uFFFD0\uFFFD"}:INTERPOLATION: `,[["treeContainer",""],["recursiveTree",""],["formRef",""],["treeNode",""],t,e,n,[1,"section"],[1,"browse-files"],[1,"indeterminate","primary"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"primary","raised","browse-files-toggle",3,"active"],[1,"form-field"],["type","button",3,"click"],["action","",3,"click"],[1,"icon"],[1,"spk-primary"],[1,"text",3,"click"],[1,"small"],[1,"primary","raised","browse-files-toggle",3,"click"]]},template:function(e,n){if(e&1&&(ne(xe),v(0,Fe,5,4,"spk-button-group"),p(1,"div",7),I(2,0,["ngProjectAs","label",5,["label"]]),p(3,"div",8,0),v(5,Ne,1,0,"spk-progress-bar",9)(6,Be,3,2,"ng-template",null,1,se)(8,De,1,0,"ng-container",10),h(),v(9,Ve,2,3,"spk-toggle",11),h(),p(10,"div",12,2)(12,"spk-form-field"),I(13,1,["ngProjectAs","label",5,["label"]]),I(14,2,["ngProjectAs","input",5,["input"]]),h()()),e&2){let s=X(7);b(n.multiSelect()?-1:0),g(),E("hidden",n.pathDiscoveryMethod()!=="browse"),g(2),E("visualize-accepted",n.accepts()),g(2),b(n.isLoading()?5:-1),g(3),j("ngTemplateOutlet",s)("ngTemplateOutletContext",L(13,me,L(11,Se,n.treeStructure()))),g(),b(n.accepts()?-1:9),g(),E("hidden",n.pathDiscoveryMethod()!=="path")}},dependencies:[ue,ge,pe,he,_e,fe,le,de],styles:['[_nghost-%COMP%]{display:flex;flex-direction:column;gap:1rem}.disabled[_nghost-%COMP%]{opacity:.5;-webkit-user-select:none;user-select:none;pointer-events:none;position:relative}.disabled[_nghost-%COMP%]:before{content:"";position:absolute;inset:0;background:transparent}.fill[_nghost-%COMP%]{height:auto;overflow:hidden;flex:1 0}.fill[_nghost-%COMP%] .section[_ngcontent-%COMP%]{height:auto;overflow:hidden;flex:1 0;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto 1fr;grid-template-areas:"label toggle" "tree tree"}.fill[_nghost-%COMP%] .browse-files[_ngcontent-%COMP%]{resize:none;height:initial;grid-area:tree}.fill[_nghost-%COMP%] label[_ngcontent-%COMP%]{grid-area:label}.fill[_nghost-%COMP%] spk-toggle[_ngcontent-%COMP%]{grid-area:toggle;flex-direction:row-reverse}.section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.form-field.hidden[_ngcontent-%COMP%]{display:none}.browse-files[_ngcontent-%COMP%]{display:flex;gap:.5rem;padding:.5rem 1rem;height:12.5rem;border:1px solid var(--base-level-40);border-radius:var(--shape-3);overflow:auto;resize:vertical;background:var(--base-level-10);position:relative}.browse-files[_ngcontent-%COMP%] spk-progress-bar[_ngcontent-%COMP%]{position:absolute;top:0;left:0;right:0}.browse-files.visualize-accepted[_ngcontent-%COMP%] [action][_ngcontent-%COMP%]:not(.accepted){opacity:.5}.browse-files.visualize-accepted[_ngcontent-%COMP%] [action].accepted[_ngcontent-%COMP%]{opacity:1}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%]{--list-active-bg: var(--base-level-30);gap:.125rem;padding:0;height:min-content;min-width:min-content}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action][_ngcontent-%COMP%]{padding:0;gap:0;border:1px solid transparent}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action].active[_ngcontent-%COMP%]{border-color:transparent;--list-active-bg: var(--primary-level-20)}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action].indeterminate[_ngcontent-%COMP%]{border-color:var(--primary-level-40)}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action].usually-hidden[_ngcontent-%COMP%]{opacity:.6}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action][_ngcontent-%COMP%] .text[_ngcontent-%COMP%]{flex:1 0;height:100%;width:max-content;display:flex;align-items:center}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action][_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{width:3rem;gap:.25rem;height:1.5rem;display:flex;align-items:center;justify-content:center;cursor:pointer}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action][_ngcontent-%COMP%] .icon.file[_ngcontent-%COMP%]{width:2rem;padding:0 .25rem}.browse-files-toggle[_ngcontent-%COMP%]{color:var(--base-level-60R)}.hidden[_ngcontent-%COMP%]{display:none}'],changeDetection:0})};export{Q as a};
@@ -1 +1 @@
1
- import{a as k}from"./chunk-TQIMA3N7.js";import"./chunk-Z5FVTSXP.js";import"./chunk-FOHDLUCC.js";import"./chunk-7KWOTSVE.js";import"./chunk-ZOMDTRAX.js";import"./chunk-LFQXDL42.js";import"./chunk-2K3CR66C.js";import"./chunk-TQE7OBBP.js";import{d as S}from"./chunk-ZRPJ3QZT.js";import"./chunk-NVTD7IP4.js";import{a as T,g as M,h as f}from"./chunk-IZCX3KB3.js";import"./chunk-6SIZVSDW.js";import"./chunk-JOBMLOGZ.js";import"./chunk-US4WRUST.js";import{Cb as e,Db as n,Eb as _,Ob as s,Pb as l,Qb as i,Ra as c,eb as D,tb as r,tc as d}from"./chunk-QDAWQNBQ.js";import"./chunk-C6Q5SG76.js";var E=()=>["/backup/new"],F=()=>["/backup/import"],u=class C{static \u0275fac=function(t){return new(t||C)};static \u0275cmp=D({type:C,selectors:[["app-add-backup"]],decls:23,vars:4,consts:()=>{let a;a=$localize`Add a new backup`;let t;t=$localize`New backup`;let p;p=$localize`Configure a new backup. Choose your destination, source data and schedule.`;let A;A=$localize` Add a new backup ${"\uFFFD#13\uFFFD"}:START_TAG_SPK_ICON:plus${"\uFFFD/#13\uFFFD"}:CLOSE_TAG_SPK_ICON:`;let g;g=$localize`Import from file`;let P;P=$localize`Import backup configuration from a file. During import you can adjust the setings.`;let m;return m=$localize` Import from file ${"\uFFFD#22\uFFFD"}:START_TAG_SPK_ICON:upload-simple${"\uFFFD/#22\uFFFD"}:CLOSE_TAG_SPK_ICON:`,[a,t,p,A,g,P,m,[1,"backup-types"],[1,"type-a"],["src","assets/images/new-backup.png"],["spk-button","",1,"raised","primary",3,"routerLink"]]},template:function(t,p){t&1&&(_(0,"app-status-bar"),e(1,"section")(2,"h2"),i(3,0),n(),e(4,"div",7)(5,"spk-card",8),_(6,"img",9),e(7,"h3"),i(8,1),n(),e(9,"p"),i(10,2),n(),e(11,"button",10),s(12,3),_(13,"spk-icon"),l(),n()(),e(14,"spk-card",8),_(15,"img",9),e(16,"h3"),i(17,4),n(),e(18,"p"),i(19,5),n(),e(20,"button",10),s(21,6),_(22,"spk-icon"),l(),n()()()()),t&2&&(c(11),r("routerLink",d(2,E)),c(9),r("routerLink",d(3,F)))},dependencies:[k,M,f,T,S],styles:["[_nghost-%COMP%]{display:block}section[_ngcontent-%COMP%]{display:flex;align-items:center;flex-direction:column;gap:2rem;padding:2rem 0}div.backup-types[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:1rem;max-width:700px}spk-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:1rem;padding-bottom:3rem}spk-card[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-width:300px}spk-card[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{text-wrap:balance;text-align:center;width:75%}"],changeDetection:0})};export{u as default};
1
+ import{a as k}from"./chunk-UYV5TDBS.js";import"./chunk-Z5FVTSXP.js";import"./chunk-FOHDLUCC.js";import"./chunk-7KWOTSVE.js";import"./chunk-ZOMDTRAX.js";import"./chunk-LFQXDL42.js";import"./chunk-2K3CR66C.js";import"./chunk-TQE7OBBP.js";import{d as S}from"./chunk-ZRPJ3QZT.js";import"./chunk-NVTD7IP4.js";import{a as T,g as M,h as f}from"./chunk-JRAP2EKJ.js";import"./chunk-6SIZVSDW.js";import"./chunk-JOBMLOGZ.js";import"./chunk-US4WRUST.js";import{Cb as e,Db as n,Eb as _,Ob as s,Pb as l,Qb as i,Ra as c,eb as D,tb as r,tc as d}from"./chunk-QDAWQNBQ.js";import"./chunk-C6Q5SG76.js";var E=()=>["/backup/new"],F=()=>["/backup/import"],u=class C{static \u0275fac=function(t){return new(t||C)};static \u0275cmp=D({type:C,selectors:[["app-add-backup"]],decls:23,vars:4,consts:()=>{let a;a=$localize`Add a new backup`;let t;t=$localize`New backup`;let p;p=$localize`Configure a new backup. Choose your destination, source data and schedule.`;let A;A=$localize` Add a new backup ${"\uFFFD#13\uFFFD"}:START_TAG_SPK_ICON:plus${"\uFFFD/#13\uFFFD"}:CLOSE_TAG_SPK_ICON:`;let g;g=$localize`Import from file`;let P;P=$localize`Import backup configuration from a file. During import you can adjust the setings.`;let m;return m=$localize` Import from file ${"\uFFFD#22\uFFFD"}:START_TAG_SPK_ICON:upload-simple${"\uFFFD/#22\uFFFD"}:CLOSE_TAG_SPK_ICON:`,[a,t,p,A,g,P,m,[1,"backup-types"],[1,"type-a"],["src","assets/images/new-backup.png"],["spk-button","",1,"raised","primary",3,"routerLink"]]},template:function(t,p){t&1&&(_(0,"app-status-bar"),e(1,"section")(2,"h2"),i(3,0),n(),e(4,"div",7)(5,"spk-card",8),_(6,"img",9),e(7,"h3"),i(8,1),n(),e(9,"p"),i(10,2),n(),e(11,"button",10),s(12,3),_(13,"spk-icon"),l(),n()(),e(14,"spk-card",8),_(15,"img",9),e(16,"h3"),i(17,4),n(),e(18,"p"),i(19,5),n(),e(20,"button",10),s(21,6),_(22,"spk-icon"),l(),n()()()()),t&2&&(c(11),r("routerLink",d(2,E)),c(9),r("routerLink",d(3,F)))},dependencies:[k,M,f,T,S],styles:["[_nghost-%COMP%]{display:block}section[_ngcontent-%COMP%]{display:flex;align-items:center;flex-direction:column;gap:2rem;padding:2rem 0}div.backup-types[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:1rem;max-width:700px}spk-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:1rem;padding-bottom:3rem}spk-card[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-width:300px}spk-card[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{text-wrap:balance;text-align:center;width:75%}"],changeDetection:0})};export{u as default};
package/index.html CHANGED
@@ -17,8 +17,8 @@
17
17
  font-style: normal;
18
18
  }
19
19
  </style>
20
- <style>:root{--font-size:16px;font-size:var(--font-size)}html body{--sparkle-light:initial;--sparkle-dark: ;color-scheme:light dark;--primary-50:#eff6ff;--primary-contrast-50:var(--dark-primary-text);--primary-100:#dbeafe;--primary-contrast-100:var(--dark-primary-text);--primary-200:#bfdbfe;--primary-contrast-200:var(--dark-primary-text);--primary-300:#93c5fd;--primary-contrast-300:var(--dark-primary-text);--primary-400:#60a5fa;--primary-contrast-400:var(--dark-primary-text);--primary-500:#3b82f6;--primary-contrast-500:var(--light-primary-text);--primary-600:#2563eb;--primary-contrast-600:var(--light-primary-text);--primary-700:#1d4ed8;--primary-contrast-700:var(--light-primary-text);--primary-800:#1e40af;--primary-contrast-800:var(--light-primary-text);--primary-900:#1e3a8a;--primary-contrast-900:var(--light-primary-text);--primary-950:#172554;--primary-contrast-950:var(--light-primary-text);--accent-50:#f5f3ff;--accent-contrast-50:var(--dark-primary-text);--accent-100:#ede9fe;--accent-contrast-100:var(--dark-primary-text);--accent-200:#ddd6fe;--accent-contrast-200:var(--dark-primary-text);--accent-300:#c4b5fd;--accent-contrast-300:var(--dark-primary-text);--accent-400:#a78bfa;--accent-contrast-400:var(--dark-primary-text);--accent-500:#8b5cf6;--accent-contrast-500:var(--light-primary-text);--accent-600:#7c3aed;--accent-contrast-600:var(--light-primary-text);--accent-700:#6d28d9;--accent-contrast-700:var(--light-primary-text);--accent-800:#5b21b6;--accent-contrast-800:var(--light-primary-text);--accent-900:#4c1d95;--accent-contrast-900:var(--light-primary-text);--accent-950:#2e1065;--accent-contrast-950:var(--light-primary-text);--warn-50:#fffbeb;--warn-contrast-50:var(--dark-primary-text);--warn-100:#fef3c7;--warn-contrast-100:var(--dark-primary-text);--warn-200:#fde68a;--warn-contrast-200:var(--dark-primary-text);--warn-300:#fcd34d;--warn-contrast-300:var(--dark-primary-text);--warn-400:#fbbf24;--warn-contrast-400:var(--light-primary-text);--warn-500:#f59e0b;--warn-contrast-500:var(--light-primary-text);--warn-600:#d97706;--warn-contrast-600:var(--light-primary-text);--warn-700:#b45309;--warn-contrast-700:var(--light-primary-text);--warn-800:#92400e;--warn-contrast-800:var(--light-primary-text);--warn-900:#78350f;--warn-contrast-900:var(--light-primary-text);--warn-950:#451a03;--warn-contrast-950:var(--light-primary-text);--error-50:#fef2f2;--error-contrast-50:var(--dark-primary-text);--error-100:#fee2e2;--error-contrast-100:var(--dark-primary-text);--error-200:#fecaca;--error-contrast-200:var(--dark-primary-text);--error-300:#fca5a5;--error-contrast-300:var(--dark-primary-text);--error-400:#f87171;--error-contrast-400:var(--light-primary-text);--error-500:#ef4444;--error-contrast-500:var(--light-primary-text);--error-600:#dc2626;--error-contrast-600:var(--light-primary-text);--error-700:#b91c1c;--error-contrast-700:var(--light-primary-text);--error-800:#991b1b;--error-contrast-800:var(--light-primary-text);--error-900:#7f1d1d;--error-contrast-900:var(--light-primary-text);--error-950:#450a0a;--error-contrast-950:var(--light-primary-text);--success-50:#ecfdf5;--success-contrast-50:var(--dark-primary-text);--success-100:#d1fae5;--success-contrast-100:var(--dark-primary-text);--success-200:#a7f3d0;--success-contrast-200:var(--dark-primary-text);--success-300:#6ee7b7;--success-contrast-300:var(--dark-primary-text);--success-400:#34d399;--success-contrast-400:var(--light-primary-text);--success-500:#10b981;--success-contrast-500:var(--light-primary-text);--success-600:#059669;--success-contrast-600:var(--light-primary-text);--success-700:#047857;--success-contrast-700:var(--light-primary-text);--success-800:#065f46;--success-contrast-800:var(--light-primary-text);--success-900:#064e3b;--success-contrast-900:var(--light-primary-text);--success-950:#022c22;--success-contrast-950:var(--light-primary-text);--grey-50:#fafafa;--grey-contrast-50:var(--dark-primary-text);--grey-100:#f4f4f5;--grey-contrast-100:var(--dark-primary-text);--grey-200:#e4e4e7;--grey-contrast-200:var(--dark-primary-text);--grey-300:#d4d4d8;--grey-contrast-300:var(--dark-primary-text);--grey-400:#a1a1aa;--grey-contrast-400:var(--dark-primary-text);--grey-500:#71717a;--grey-contrast-500:var(--light-primary-text);--grey-600:#52525b;--grey-contrast-600:var(--light-primary-text);--grey-700:#3f3f46;--grey-contrast-700:var(--light-primary-text);--grey-750:#2f2f31;--grey-contrast-750:var(--light-primary-text);--grey-800:#27272a;--grey-contrast-800:var(--light-primary-text);--grey-900:#18181b;--grey-contrast-900:var(--light-primary-text);--grey-950:#09090b;--grey-contrast-950:var(--light-primary-text);--display-10:600 5rem / normal Inter Tight, sans-serif;--display-20:600 4.5rem / normal Inter Tight, sans-serif;--display-30:600 4rem / normal Inter Tight, sans-serif;--display-40:600 3.5rem / normal Inter Tight, sans-serif;--display-50:600 3rem / normal Inter Tight, sans-serif;--title-10:500 2.5rem / normal Inter Tight, sans-serif;--title-20:500 2rem / normal Inter Tight, sans-serif;--title-30:500 1.5rem / normal Inter Tight, sans-serif;--title-10B:600 2.5rem / normal Inter Tight, sans-serif;--title-20B:600 2rem / normal Inter Tight, sans-serif;--title-30B:600 1.5rem / normal Inter Tight, sans-serif;--paragraph-10:500 1.125rem / normal Inter Tight, sans-serif;--paragraph-20:500 1rem / normal Inter Tight, sans-serif;--paragraph-30:500 .875rem / normal Inter Tight, sans-serif;--paragraph-40:500 .75rem / normal Inter Tight, sans-serif;--paragraph-10B:600 1.125rem / normal Inter Tight, sans-serif;--paragraph-20B:600 1rem / normal Inter Tight, sans-serif;--paragraph-30B:600 .875rem / normal Inter Tight, sans-serif;--paragraph-40B:600 .75rem / normal Inter Tight, sans-serif;--shape-1:.25rem;--shape-2:.5rem;--shape-3:.75rem;--shape-4:1rem;--shape-5:1.25rem;--box-shadow-10:0 1px 2px 0 rgba(18, 18, 23, .07);--box-shadow-20:0 1px 3px 0 rgba(18, 18, 23, .1);--box-shadow-30:0 1px 4px -1px rgba(18, 18, 23, .08);--box-shadow-35:0 4px 6px -1px rgba(18, 18, 23, .08);--box-shadow-40:0 10px 15px -3px rgba(18, 18, 23, .08);--box-shadow-50:0 20px 25px -5px rgba(18, 18, 23, .1);--box-shadow-60:0 25px 50px -12px rgba(18, 18, 23, .25);--base-level-10:var(--sparkle-light, #fff) var(--sparkle-dark, var(--grey-950));--base-level-20:var(--sparkle-light, var(--grey-50)) var(--sparkle-dark, var(--grey-900));--base-level-30:var(--sparkle-light, var(--grey-100)) var(--sparkle-dark, var(--grey-900));--base-level-30R:var(--sparkle-light, var(--grey-900)) var(--sparkle-dark, var(--grey-100));--base-level-40:var(--sparkle-light, var(--grey-200)) var(--sparkle-dark, var(--grey-700));--base-level-50:var(--sparkle-light, var(--grey-300)) var(--sparkle-dark, var(--grey-800));--base-level-60:var(--sparkle-light, var(--grey-500)) var(--sparkle-dark, var(--grey-400));--base-level-60R:var(--sparkle-light, var(--grey-400)) var(--sparkle-dark, var(--grey-500));--base-level-70:var(--sparkle-light, var(--grey-900)) var(--sparkle-dark, #fff);--base-level-70R:var(--sparkle-light, #fff) var(--sparkle-dark, var(--grey-900));--base-gradient-20:linear-gradient(180deg, var(--grey-400) 0%, var(--grey-500) 50%);--base-gradient-30:linear-gradient(180deg, var(--grey-300) 0%, var(--grey-500) 50%);--base-gradient-60:linear-gradient(180deg, var(--grey-700) 0%, var(--grey-900) 50%);--base-gradient-70:linear-gradient(180deg, var(--grey-600) 0%, var(--grey-900) 50%);--primary-level-20:var(--sparkle-light, var(--primary-50)) var(--sparkle-dark, var(--primary-950));--primary-level-30:var(--sparkle-light, var(--primary-100)) var(--sparkle-dark, var(--primary-900));--primary-level-40:var(--sparkle-light, var(--primary-200)) var(--sparkle-dark, var(--primary-800));--primary-level-50:var(--sparkle-light, var(--primary-300)) var(--sparkle-dark, var(--primary-800));--primary-level-50R:var(--sparkle-light, var(--primary-800)) var(--sparkle-dark, var(--primary-300));--primary-level-80:var(--sparkle-light, var(--primary-900)) var(--sparkle-dark, var(--primary-300));--primary-gradient-20:linear-gradient(180deg, var(--primary-400) 0%, var(--primary-500) 50%);--primary-gradient-30:linear-gradient(180deg, var(--primary-300) 0%, var(--primary-500) 50%);--accent-level-20:var(--sparkle-light, var(--accent-50)) var(--sparkle-dark, var(--accent-950));--accent-level-30:var(--sparkle-light, var(--accent-100)) var(--sparkle-dark, var(--accent-900));--accent-level-40:var(--sparkle-light, var(--accent-200)) var(--sparkle-dark, var(--accent-800));--accent-level-50:var(--sparkle-light, var(--accent-300)) var(--sparkle-dark, var(--accent-800));--accent-level-50R:var(--sparkle-light, var(--accent-800)) var(--sparkle-dark, var(--accent-300));--accent-level-80:var(--sparkle-light, var(--accent-900)) var(--sparkle-dark, var(--accent-300));--accent-gradient-20:linear-gradient(180deg, var(--accent-400) 0%, var(--accent-500) 50%);--accent-gradient-30:linear-gradient(180deg, var(--accent-300) 0%, var(--accent-500) 50%);--warn-level-20:var(--sparkle-light, var(--warn-50)) var(--sparkle-dark, var(--warn-950));--warn-level-30:var(--sparkle-light, var(--warn-100)) var(--sparkle-dark, var(--warn-900));--warn-level-40:var(--sparkle-light, var(--warn-200)) var(--sparkle-dark, var(--warn-800));--warn-level-50:var(--sparkle-light, var(--warn-300)) var(--sparkle-dark, var(--warn-800));--warn-level-50R:var(--sparkle-light, var(--warn-800)) var(--sparkle-dark, var(--warn-300));--warn-level-80:var(--sparkle-light, var(--warn-900)) var(--sparkle-dark, var(--warn-300));--warn-gradient-20:linear-gradient(180deg, var(--warn-400) 0%, var(--warn-500) 50%);--warn-gradient-30:linear-gradient(180deg, var(--warn-300) 0%, var(--warn-500) 50%);--error-level-20:var(--sparkle-light, var(--error-50)) var(--sparkle-dark, var(--error-950));--error-level-30:var(--sparkle-light, var(--error-100)) var(--sparkle-dark, var(--error-900));--error-level-40:var(--sparkle-light, var(--error-200)) var(--sparkle-dark, var(--error-800));--error-level-50:var(--sparkle-light, var(--error-300)) var(--sparkle-dark, var(--error-800));--error-level-50R:var(--sparkle-light, var(--error-800)) var(--sparkle-dark, var(--error-300));--error-level-80:var(--sparkle-light, var(--error-900)) var(--sparkle-dark, var(--error-300));--error-gradient-20:linear-gradient(180deg, var(--error-400) 0%, var(--error-500) 50%);--error-gradient-30:linear-gradient(180deg, var(--error-300) 0%, var(--error-500) 50%);--success-level-20:var(--sparkle-light, var(--success-50)) var(--sparkle-dark, var(--success-950));--success-level-30:var(--sparkle-light, var(--success-100)) var(--sparkle-dark, var(--success-900));--success-level-40:var(--sparkle-light, var(--success-200)) var(--sparkle-dark, var(--success-800));--success-level-50:var(--sparkle-light, var(--success-300)) var(--sparkle-dark, var(--success-800));--success-level-50R:var(--sparkle-light, var(--success-800)) var(--sparkle-dark, var(--success-300));--success-level-80:var(--sparkle-light, var(--success-900)) var(--sparkle-dark, var(--success-300));--success-gradient-20:linear-gradient(180deg, var(--success-400) 0%, var(--success-500) 50%);--success-gradient-30:linear-gradient(180deg, var(--success-300) 0%, var(--success-500) 50%);--dark-primary-text:var(--grey-900);--light-primary-text:#fff}*{box-sizing:border-box}html,body,app-root{width:100vw;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--base-level-20)}body{margin:0;font:var(--paragraph-30);color:var(--base-level-70)}</style><link rel="stylesheet" href="styles-KC6U2UBP.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-KC6U2UBP.css"></noscript></head>
20
+ <style>:root{--font-size:16px;font-size:var(--font-size)}html body{--sparkle-light:initial;--sparkle-dark: ;color-scheme:light dark;--primary-50:#eff6ff;--primary-contrast-50:var(--dark-primary-text);--primary-100:#dbeafe;--primary-contrast-100:var(--dark-primary-text);--primary-200:#bfdbfe;--primary-contrast-200:var(--dark-primary-text);--primary-300:#93c5fd;--primary-contrast-300:var(--dark-primary-text);--primary-400:#60a5fa;--primary-contrast-400:var(--dark-primary-text);--primary-500:#3b82f6;--primary-contrast-500:var(--light-primary-text);--primary-600:#2563eb;--primary-contrast-600:var(--light-primary-text);--primary-700:#1d4ed8;--primary-contrast-700:var(--light-primary-text);--primary-800:#1e40af;--primary-contrast-800:var(--light-primary-text);--primary-900:#1e3a8a;--primary-contrast-900:var(--light-primary-text);--primary-950:#172554;--primary-contrast-950:var(--light-primary-text);--accent-50:#f5f3ff;--accent-contrast-50:var(--dark-primary-text);--accent-100:#ede9fe;--accent-contrast-100:var(--dark-primary-text);--accent-200:#ddd6fe;--accent-contrast-200:var(--dark-primary-text);--accent-300:#c4b5fd;--accent-contrast-300:var(--dark-primary-text);--accent-400:#a78bfa;--accent-contrast-400:var(--dark-primary-text);--accent-500:#8b5cf6;--accent-contrast-500:var(--light-primary-text);--accent-600:#7c3aed;--accent-contrast-600:var(--light-primary-text);--accent-700:#6d28d9;--accent-contrast-700:var(--light-primary-text);--accent-800:#5b21b6;--accent-contrast-800:var(--light-primary-text);--accent-900:#4c1d95;--accent-contrast-900:var(--light-primary-text);--accent-950:#2e1065;--accent-contrast-950:var(--light-primary-text);--warn-50:#fffbeb;--warn-contrast-50:var(--dark-primary-text);--warn-100:#fef3c7;--warn-contrast-100:var(--dark-primary-text);--warn-200:#fde68a;--warn-contrast-200:var(--dark-primary-text);--warn-300:#fcd34d;--warn-contrast-300:var(--dark-primary-text);--warn-400:#fbbf24;--warn-contrast-400:var(--light-primary-text);--warn-500:#f59e0b;--warn-contrast-500:var(--light-primary-text);--warn-600:#d97706;--warn-contrast-600:var(--light-primary-text);--warn-700:#b45309;--warn-contrast-700:var(--light-primary-text);--warn-800:#92400e;--warn-contrast-800:var(--light-primary-text);--warn-900:#78350f;--warn-contrast-900:var(--light-primary-text);--warn-950:#451a03;--warn-contrast-950:var(--light-primary-text);--error-50:#fef2f2;--error-contrast-50:var(--dark-primary-text);--error-100:#fee2e2;--error-contrast-100:var(--dark-primary-text);--error-200:#fecaca;--error-contrast-200:var(--dark-primary-text);--error-300:#fca5a5;--error-contrast-300:var(--dark-primary-text);--error-400:#f87171;--error-contrast-400:var(--light-primary-text);--error-500:#ef4444;--error-contrast-500:var(--light-primary-text);--error-600:#dc2626;--error-contrast-600:var(--light-primary-text);--error-700:#b91c1c;--error-contrast-700:var(--light-primary-text);--error-800:#991b1b;--error-contrast-800:var(--light-primary-text);--error-900:#7f1d1d;--error-contrast-900:var(--light-primary-text);--error-950:#450a0a;--error-contrast-950:var(--light-primary-text);--success-50:#ecfdf5;--success-contrast-50:var(--dark-primary-text);--success-100:#d1fae5;--success-contrast-100:var(--dark-primary-text);--success-200:#a7f3d0;--success-contrast-200:var(--dark-primary-text);--success-300:#6ee7b7;--success-contrast-300:var(--dark-primary-text);--success-400:#34d399;--success-contrast-400:var(--light-primary-text);--success-500:#10b981;--success-contrast-500:var(--light-primary-text);--success-600:#059669;--success-contrast-600:var(--light-primary-text);--success-700:#047857;--success-contrast-700:var(--light-primary-text);--success-800:#065f46;--success-contrast-800:var(--light-primary-text);--success-900:#064e3b;--success-contrast-900:var(--light-primary-text);--success-950:#022c22;--success-contrast-950:var(--light-primary-text);--grey-50:#fafafa;--grey-contrast-50:var(--dark-primary-text);--grey-100:#f4f4f5;--grey-contrast-100:var(--dark-primary-text);--grey-200:#e4e4e7;--grey-contrast-200:var(--dark-primary-text);--grey-300:#d4d4d8;--grey-contrast-300:var(--dark-primary-text);--grey-400:#a1a1aa;--grey-contrast-400:var(--dark-primary-text);--grey-500:#71717a;--grey-contrast-500:var(--light-primary-text);--grey-600:#52525b;--grey-contrast-600:var(--light-primary-text);--grey-700:#3f3f46;--grey-contrast-700:var(--light-primary-text);--grey-750:#2f2f31;--grey-contrast-750:var(--light-primary-text);--grey-800:#27272a;--grey-contrast-800:var(--light-primary-text);--grey-900:#18181b;--grey-contrast-900:var(--light-primary-text);--grey-950:#09090b;--grey-contrast-950:var(--light-primary-text);--display-10:600 5rem / normal Inter Tight, sans-serif;--display-20:600 4.5rem / normal Inter Tight, sans-serif;--display-30:600 4rem / normal Inter Tight, sans-serif;--display-40:600 3.5rem / normal Inter Tight, sans-serif;--display-50:600 3rem / normal Inter Tight, sans-serif;--title-10:500 2.5rem / normal Inter Tight, sans-serif;--title-20:500 2rem / normal Inter Tight, sans-serif;--title-30:500 1.5rem / normal Inter Tight, sans-serif;--title-10B:600 2.5rem / normal Inter Tight, sans-serif;--title-20B:600 2rem / normal Inter Tight, sans-serif;--title-30B:600 1.5rem / normal Inter Tight, sans-serif;--paragraph-10:500 1.125rem / normal Inter Tight, sans-serif;--paragraph-20:500 1rem / normal Inter Tight, sans-serif;--paragraph-30:500 .875rem / normal Inter Tight, sans-serif;--paragraph-40:500 .75rem / normal Inter Tight, sans-serif;--paragraph-10B:600 1.125rem / normal Inter Tight, sans-serif;--paragraph-20B:600 1rem / normal Inter Tight, sans-serif;--paragraph-30B:600 .875rem / normal Inter Tight, sans-serif;--paragraph-40B:600 .75rem / normal Inter Tight, sans-serif;--shape-1:.25rem;--shape-2:.5rem;--shape-3:.75rem;--shape-4:1rem;--shape-5:1.25rem;--box-shadow-10:0 1px 2px 0 rgba(18, 18, 23, .07);--box-shadow-20:0 1px 3px 0 rgba(18, 18, 23, .1);--box-shadow-30:0 1px 4px -1px rgba(18, 18, 23, .08);--box-shadow-35:0 4px 6px -1px rgba(18, 18, 23, .08);--box-shadow-40:0 10px 15px -3px rgba(18, 18, 23, .08);--box-shadow-50:0 20px 25px -5px rgba(18, 18, 23, .1);--box-shadow-60:0 25px 50px -12px rgba(18, 18, 23, .25);--base-level-10:var(--sparkle-light, #fff) var(--sparkle-dark, var(--grey-950));--base-level-20:var(--sparkle-light, var(--grey-50)) var(--sparkle-dark, var(--grey-900));--base-level-30:var(--sparkle-light, var(--grey-100)) var(--sparkle-dark, var(--grey-900));--base-level-30R:var(--sparkle-light, var(--grey-900)) var(--sparkle-dark, var(--grey-100));--base-level-40:var(--sparkle-light, var(--grey-200)) var(--sparkle-dark, var(--grey-700));--base-level-50:var(--sparkle-light, var(--grey-300)) var(--sparkle-dark, var(--grey-800));--base-level-60:var(--sparkle-light, var(--grey-500)) var(--sparkle-dark, var(--grey-400));--base-level-60R:var(--sparkle-light, var(--grey-400)) var(--sparkle-dark, var(--grey-500));--base-level-70:var(--sparkle-light, var(--grey-900)) var(--sparkle-dark, #fff);--base-level-70R:var(--sparkle-light, #fff) var(--sparkle-dark, var(--grey-900));--base-gradient-20:linear-gradient(180deg, var(--grey-400) 0%, var(--grey-500) 50%);--base-gradient-30:linear-gradient(180deg, var(--grey-300) 0%, var(--grey-500) 50%);--base-gradient-60:linear-gradient(180deg, var(--grey-700) 0%, var(--grey-900) 50%);--base-gradient-70:linear-gradient(180deg, var(--grey-600) 0%, var(--grey-900) 50%);--primary-level-20:var(--sparkle-light, var(--primary-50)) var(--sparkle-dark, var(--primary-950));--primary-level-30:var(--sparkle-light, var(--primary-100)) var(--sparkle-dark, var(--primary-900));--primary-level-40:var(--sparkle-light, var(--primary-200)) var(--sparkle-dark, var(--primary-800));--primary-level-50:var(--sparkle-light, var(--primary-300)) var(--sparkle-dark, var(--primary-800));--primary-level-50R:var(--sparkle-light, var(--primary-800)) var(--sparkle-dark, var(--primary-300));--primary-level-80:var(--sparkle-light, var(--primary-900)) var(--sparkle-dark, var(--primary-300));--primary-gradient-20:linear-gradient(180deg, var(--primary-400) 0%, var(--primary-500) 50%);--primary-gradient-30:linear-gradient(180deg, var(--primary-300) 0%, var(--primary-500) 50%);--accent-level-20:var(--sparkle-light, var(--accent-50)) var(--sparkle-dark, var(--accent-950));--accent-level-30:var(--sparkle-light, var(--accent-100)) var(--sparkle-dark, var(--accent-900));--accent-level-40:var(--sparkle-light, var(--accent-200)) var(--sparkle-dark, var(--accent-800));--accent-level-50:var(--sparkle-light, var(--accent-300)) var(--sparkle-dark, var(--accent-800));--accent-level-50R:var(--sparkle-light, var(--accent-800)) var(--sparkle-dark, var(--accent-300));--accent-level-80:var(--sparkle-light, var(--accent-900)) var(--sparkle-dark, var(--accent-300));--accent-gradient-20:linear-gradient(180deg, var(--accent-400) 0%, var(--accent-500) 50%);--accent-gradient-30:linear-gradient(180deg, var(--accent-300) 0%, var(--accent-500) 50%);--warn-level-20:var(--sparkle-light, var(--warn-50)) var(--sparkle-dark, var(--warn-950));--warn-level-30:var(--sparkle-light, var(--warn-100)) var(--sparkle-dark, var(--warn-900));--warn-level-40:var(--sparkle-light, var(--warn-200)) var(--sparkle-dark, var(--warn-800));--warn-level-50:var(--sparkle-light, var(--warn-300)) var(--sparkle-dark, var(--warn-800));--warn-level-50R:var(--sparkle-light, var(--warn-800)) var(--sparkle-dark, var(--warn-300));--warn-level-80:var(--sparkle-light, var(--warn-900)) var(--sparkle-dark, var(--warn-300));--warn-gradient-20:linear-gradient(180deg, var(--warn-400) 0%, var(--warn-500) 50%);--warn-gradient-30:linear-gradient(180deg, var(--warn-300) 0%, var(--warn-500) 50%);--error-level-20:var(--sparkle-light, var(--error-50)) var(--sparkle-dark, var(--error-950));--error-level-30:var(--sparkle-light, var(--error-100)) var(--sparkle-dark, var(--error-900));--error-level-40:var(--sparkle-light, var(--error-200)) var(--sparkle-dark, var(--error-800));--error-level-50:var(--sparkle-light, var(--error-300)) var(--sparkle-dark, var(--error-800));--error-level-50R:var(--sparkle-light, var(--error-800)) var(--sparkle-dark, var(--error-300));--error-level-80:var(--sparkle-light, var(--error-900)) var(--sparkle-dark, var(--error-300));--error-gradient-20:linear-gradient(180deg, var(--error-400) 0%, var(--error-500) 50%);--error-gradient-30:linear-gradient(180deg, var(--error-300) 0%, var(--error-500) 50%);--success-level-20:var(--sparkle-light, var(--success-50)) var(--sparkle-dark, var(--success-950));--success-level-30:var(--sparkle-light, var(--success-100)) var(--sparkle-dark, var(--success-900));--success-level-40:var(--sparkle-light, var(--success-200)) var(--sparkle-dark, var(--success-800));--success-level-50:var(--sparkle-light, var(--success-300)) var(--sparkle-dark, var(--success-800));--success-level-50R:var(--sparkle-light, var(--success-800)) var(--sparkle-dark, var(--success-300));--success-level-80:var(--sparkle-light, var(--success-900)) var(--sparkle-dark, var(--success-300));--success-gradient-20:linear-gradient(180deg, var(--success-400) 0%, var(--success-500) 50%);--success-gradient-30:linear-gradient(180deg, var(--success-300) 0%, var(--success-500) 50%);--dark-primary-text:var(--grey-900);--light-primary-text:#fff}*{box-sizing:border-box}html,body,app-root{width:100vw;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--base-level-20)}body{margin:0;font:var(--paragraph-30);color:var(--base-level-70)}</style><link rel="stylesheet" href="styles-2QJQOKUX.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-2QJQOKUX.css"></noscript></head>
21
21
  <body>
22
22
  <app-root></app-root>
23
- <link rel="modulepreload" href="chunk-KPP5HW6S.js"><link rel="modulepreload" href="chunk-PTG2C2YJ.js"><link rel="modulepreload" href="chunk-7WKWA7QK.js"><link rel="modulepreload" href="chunk-SRMNNICE.js"><link rel="modulepreload" href="chunk-Z5FVTSXP.js"><link rel="modulepreload" href="chunk-FOHDLUCC.js"><link rel="modulepreload" href="chunk-7KWOTSVE.js"><link rel="modulepreload" href="chunk-ZOMDTRAX.js"><link rel="modulepreload" href="chunk-2K3CR66C.js"><link rel="modulepreload" href="chunk-TQE7OBBP.js"><script src="polyfills-BZ5XXHZK.js" type="module"></script><script src="main-2MESDK56.js" type="module"></script></body>
23
+ <link rel="modulepreload" href="chunk-KPP5HW6S.js"><link rel="modulepreload" href="chunk-PTG2C2YJ.js"><link rel="modulepreload" href="chunk-7WKWA7QK.js"><link rel="modulepreload" href="chunk-SRMNNICE.js"><link rel="modulepreload" href="chunk-Z5FVTSXP.js"><link rel="modulepreload" href="chunk-FOHDLUCC.js"><link rel="modulepreload" href="chunk-7KWOTSVE.js"><link rel="modulepreload" href="chunk-ZOMDTRAX.js"><link rel="modulepreload" href="chunk-2K3CR66C.js"><link rel="modulepreload" href="chunk-TQE7OBBP.js"><script src="polyfills-BZ5XXHZK.js" type="module"></script><script src="main-5RB7QQSV.js" type="module"></script></body>
24
24
  </html>
@@ -1 +1 @@
1
- import{b as le,c as me}from"./chunk-KPP5HW6S.js";import{a as L}from"./chunk-PTG2C2YJ.js";import{a as pe}from"./chunk-7WKWA7QK.js";import{a as y}from"./chunk-SRMNNICE.js";import{a as T}from"./chunk-Z5FVTSXP.js";import{a as se}from"./chunk-FOHDLUCC.js";import{a as f}from"./chunk-7KWOTSVE.js";import"./chunk-ZOMDTRAX.js";import{a as b,b as ie,c as w}from"./chunk-2K3CR66C.js";import{d as re}from"./chunk-TQE7OBBP.js";import{b as ee,c as te,f as oe,g as ne}from"./chunk-ZRPJ3QZT.js";import{a as Z}from"./chunk-NVTD7IP4.js";import{c as ae}from"./chunk-IZCX3KB3.js";import{a as z,b as q,d as X,e as Q,f as Y}from"./chunk-6SIZVSDW.js";import{ua as _}from"./chunk-JOBMLOGZ.js";import{b as ce}from"./chunk-US4WRUST.js";import{Dc as B,E as S,Eb as J,Ec as $,K as U,M as v,O as F,Oc as K,S as R,Y as s,d as V,eb as G,g as W,ia as D,l as j,m as E,p as O,ua as d,x as N,y as x}from"./chunk-QDAWQNBQ.js";import"./chunk-C6Q5SG76.js";var k=class o{#o=s(y);#s=s(b);ngOnInit(){this.#s.fetchConfig(),this.#o.clearAllNotCurrentVersion()}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=G({type:o,selectors:[["app-root"]],decls:1,vars:0,template:function(t,n){t&1&&J(0,"router-outlet")},dependencies:[ee],encapsulation:2})};var ue={production:!0,baseUrl:"/api",machineServerUrl:"${WS_URL}",defaultTimeout:3e4};var I=class o{#o=s(re);isLoaded=d(!1);webmodules=d(null);preload(e=!1){let t=this.#o.getApiV1Webmodules().pipe(F(n=>this.webmodules.set(n)),S(()=>this.isLoaded.set(!0)));if(e)return t;t.subscribe()}static \u0275fac=function(t){return new(t||o)};static \u0275prov=R({token:o,factory:o.\u0275fac,providedIn:"root"})};var Re=()=>{let o=s(w);return o.token()?!0:o.checkProxyAuthed().pipe(v(e=>e?j(!0):o.refreshToken().pipe(O(()=>!0))))},we=()=>{let o=s(b),e=s(T),t=s(D),n=o.relayIsEnabled()?"longpoll":"websocket",i=[t.get(L).preload(!0),t.get(L).preloadFilterGroups(!0),t.get(I).preload(!0)];return o.configLoaded===null?N(i).pipe(O(()=>n)):o.configLoaded?.pipe(v(()=>N(i)))},he=[{path:"",children:[{path:"login",canActivate:[],loadComponent:()=>import("./chunk-HX66OULG.js")},{path:"logout",loadComponent:()=>import("./chunk-ZSCSUQR3.js")},{path:"",canActivate:[Re],children:[{path:"",canActivate:[we],loadComponent:()=>import("./chunk-XAAJBERP.js"),children:[{path:"",loadComponent:()=>import("./chunk-NHJBFOCX.js")},{path:"add-backup",loadComponent:()=>import("./chunk-XS2FYREZ.js")},{path:"backup/:id/export",loadComponent:()=>import("./chunk-LPGLGZ3U.js")},{path:"backup/import",loadComponent:()=>import("./chunk-ZVCXBMGJ.js")},{path:"backup-draft/:id",loadComponent:()=>import("./chunk-QFULFMSU.js"),loadChildren:()=>import("./chunk-4YLHRMHU.js")},{path:"backup/:id",loadComponent:()=>import("./chunk-QFULFMSU.js"),loadChildren:()=>import("./chunk-4YLHRMHU.js")},{path:"backup/:id/log",loadComponent:()=>import("./chunk-TFFQHLQK.js")},{path:"backup/:id/database",loadComponent:()=>import("./chunk-MWJ2FIZF.js")},{path:"backup/:id/commandline",loadComponent:()=>import("./chunk-YUZINGR7.js")},{path:"backup/:id/commandline/:runId",loadComponent:()=>import("./chunk-2U3FDBUK.js")},{path:"restore",children:[{path:"",loadComponent:()=>import("./chunk-KAGR24YW.js")},{path:"from-config",loadComponent:()=>import("./chunk-UBEY6W6N.js")}]},{path:"restore-from-files",loadComponent:()=>import("./chunk-ZGTFPEDW.js"),loadChildren:()=>import("./chunk-XMGHFJW7.js")},{path:"restore-draft/:id",loadComponent:()=>import("./chunk-ZGTFPEDW.js"),loadChildren:()=>import("./chunk-XMGHFJW7.js")},{path:"restore/:id",loadComponent:()=>import("./chunk-ZGTFPEDW.js"),loadChildren:()=>import("./chunk-XMGHFJW7.js")},{path:"settings",loadComponent:()=>import("./chunk-233ZLAAE.js")},{path:"about",loadComponent:()=>import("./chunk-JMQCQ5DN.js"),children:[{path:"",redirectTo:"general",pathMatch:"full"},{path:"general",loadComponent:()=>import("./chunk-BM4SNLLS.js")},{path:"changelog",loadComponent:()=>import("./chunk-N4ZZA3JQ.js")},{path:"libraries",loadComponent:()=>import("./chunk-CZ3SCRNE.js")},{path:"system-info",loadComponent:()=>import("./chunk-K5WD7D64.js")},{path:"logs",loadComponent:()=>import("./chunk-YB5LG22R.js")}]}]}]}]}];var H=null,fe=(o,e)=>{let t=s(w),n=s(te),i=s(y),c=s(f),r=i.getItem("locale"),u=s(ae),a=le(r),p=o.url==="/api/v1/auth/login",m=o.url==="/api/v1/auth/refresh",C=o.url==="/api/v1/progressstate",h=t.token(),g=o,P=o.headers.has("custom-proxy-check")||h===ie;if(h&&o.url.startsWith(c.baseUrl)&&!P){let l=o.headers.set("Authorization",`Bearer ${h}`);r&&r!=="en-US"&&(l=l.set("X-Ui-Language",a)),g=o.clone({headers:l})}return e(g).pipe(x(l=>{if(!P&&(C&&l.status===404||u.error(l.message),m&&l.status===401&&(t.logout(),n.navigate(["/logout"])),!p&&!m&&l.status===401))return H??=t.refreshToken().pipe(U()),H.pipe(v(()=>e(o.clone({headers:o.headers.set("Authorization",`Bearer ${t.token()}`)}))),x(Se=>(n.navigate(["/logout"]),E(()=>Se))),S(()=>H=null));let ve=`Error Code: ${l.status}, Message: ${l.message}`;return E(()=>({error:l,message:ve}))}))};var Te="1.0.0",ge=`portal-proxy-client-${crypto.randomUUID()}`,ke=1,M=class o{#o=1e3;#s=s(f);#t=d("disconnected");#l=d(this.#o);#i=d(!1);#n=d(!1);#a=d(null);isConnectedToMachineServer=this.#n.asReadonly();wsState=this.#t.asReadonly();#p=[];#r={};#e=null;#m=new TextDecoder("utf-8");#c=null;#d=K(()=>{let e=this.#i(),t=this.#l(),n=this.#a();if(!n||!e||!t||t<this.#o){this.#c&&window.clearInterval(this.#c);return}this.#c=window.setInterval(()=>{this.connectToMachineServer(n)},t)});utf8Atob(e){let t=Uint8Array.from(atob(e),i=>i.charCodeAt(0)),n=this.#m.decode(t);return n?JSON.parse(n):null}connectToMachineServer(e,t){let n=t?.reconnect??!1,i=this.wsState();(i==="disconnected"||i==="error"||n)&&(this.#e?.close(),this.#e=null),!this.#e&&(this.#e=new WebSocket(this.#s.machineServerUrl),this.#t.set("connecting"),this.#e.onopen=()=>{this.#t.set("connect"),this.#n.set(!0),this.#i.set(!1),this.#a.set(null)},this.#e.onclose=()=>{this.#t.set("disconnected"),this.#n.set(!1),this.#a.set(e),this.#i.set(!0)},this.#e.onerror=()=>{this.#t.set("error")},this.#e.onmessage=c=>{let r=JSON.parse(c.data);if(this.wsState()==="connect"){if(r.type!=="welcome"){this.disconnectFromMachineServer(`Unexpected message type, expected 'welcome' but got '${r.type}'`);return}let a={token:e,publicKey:"",clientVersion:Te,protocolVersion:ke},p=this.createResponse(r,"authportal",a);this.#t.set("welcome"),this.#e?.send(p)}else if(this.wsState()==="welcome"){if(r.type!=="authportal"){this.disconnectFromMachineServer(`Unexpected message type, expected 'authportal' but got '${r.type}'`);return}var u=JSON.parse(r.payload??"");if(u.accepted===!1){this.disconnectFromMachineServer("Authentication failed");return}for(this.#t.set("authenticated"),this.#n.set(!0);this.#p.length>0;){let a=this.#p.pop();a&&this.#r[a.messageId]&&this.activateCommand(a)}}else if(this.wsState()==="authenticated"){if(r.type!=="command"){console.warn(`Unexpected message type, expected 'command' but got '${r.type}'`);return}let a=this.#r[r.messageId];if(a){if(r.errorMessage){a.reject(r.errorMessage);return}else{let p=JSON.parse(r.payload??"");p.body=p?.body==null?null:this.utf8Atob(p.body),a.resolve(p)}delete this.#r[r.messageId],window.clearTimeout(a.timer)}}})}disconnectFromMachineServer(e=null){e&&console.error(e),this.#e?.close(),this.#e=null,this.#t.set("disconnected"),this.#n.set(!1)}createResponse(e,t,n){let i={from:ge,to:e.from,type:t,messageId:e.messageId,payload:JSON.stringify(n)};return JSON.stringify(i)}sendCommand(e,t,n,i,c,r,u=5e3){return(this.wsState()==="disconnected"||this.wsState()==="error")&&this.connectToMachineServer(e),new Promise((a,p)=>{let m=crypto.randomUUID(),h={from:ge,to:t,type:"command",messageId:m,payload:JSON.stringify({method:n,path:i,body:c,headers:r})},g={resolve:a,reject:p,timer:window.setTimeout(()=>{let A=this.#r[m];A&&(delete this.#r[m],A.reject("Timeout"))},u)};this.#r[m]=g,this.#n()?this.activateCommand(h):this.#p.push(h)})}activateCommand(e){this.#e?.send(JSON.stringify(e))}static \u0275fac=function(t){return new(t||o)};static \u0275prov=R({token:o,factory:o.\u0275fac,providedIn:"root"})};function Ie(o){if(typeof o!="string")return null;let t=new TextEncoder().encode(o);return window.btoa(String.fromCharCode(...t))}function ye(o,e,t){let n=o.relayconfigState.config();if(n===null)return t(e);let i=Ie(e.body),c={};e.headers.keys().forEach(p=>{c[p]=e.headers.get(p)??""});let r=e.headers.get("timeout"),u=r!==null?parseInt(r):o.defaultTimeout;e.url.startsWith("/api/v1/serverstate")&&e.url.includes("longpoll=true")&&(u=1e3*99);let a=o.relayWebsocket.sendCommand(n.accessToken,n.clientId,e.method,e.url,i,c,u);return new V(p=>{a.then(m=>{let C=new z;c!=null&&Object.keys(c).forEach(g=>{C.set(g,c[g])});let h=new q({body:m.body,status:m.code,statusText:"OK",headers:C});p.next(h),p.complete()})})}var be=(o,e)=>{let t={relayconfigState:s(b),defaultTimeout:s(f).defaultTimeout,relayWebsocket:s(M)},n=t.relayconfigState.config();if(t.relayconfigState.configLoaded!==null&&n===null){let i=new W;return t.relayconfigState.configLoaded.subscribe(c=>{c&&ye(t,o,e).subscribe(i)}),i}return ye(t,o,e)};var Ce={providers:[B(),oe(he,ne()),X(Y(),Q([be,fe])),y,{provide:f,useValue:ue},{provide:$,useValue:me()},pe,T,ce,_,se]};Z(k,Ce);
1
+ import{b as le,c as me}from"./chunk-KPP5HW6S.js";import{a as L}from"./chunk-PTG2C2YJ.js";import{a as pe}from"./chunk-7WKWA7QK.js";import{a as y}from"./chunk-SRMNNICE.js";import{a as T}from"./chunk-Z5FVTSXP.js";import{a as se}from"./chunk-FOHDLUCC.js";import{a as f}from"./chunk-7KWOTSVE.js";import"./chunk-ZOMDTRAX.js";import{a as b,b as ie,c as w}from"./chunk-2K3CR66C.js";import{d as re}from"./chunk-TQE7OBBP.js";import{b as ee,c as te,f as oe,g as ne}from"./chunk-ZRPJ3QZT.js";import{a as Z}from"./chunk-NVTD7IP4.js";import{c as ae}from"./chunk-JRAP2EKJ.js";import{a as z,b as q,d as X,e as Q,f as Y}from"./chunk-6SIZVSDW.js";import{ua as _}from"./chunk-JOBMLOGZ.js";import{b as ce}from"./chunk-US4WRUST.js";import{Dc as B,E as S,Eb as J,Ec as $,K as U,M as v,O as F,Oc as K,S as R,Y as s,d as V,eb as G,g as W,ia as D,l as j,m as E,p as O,ua as d,x as N,y as x}from"./chunk-QDAWQNBQ.js";import"./chunk-C6Q5SG76.js";var k=class o{#o=s(y);#s=s(b);ngOnInit(){this.#s.fetchConfig(),this.#o.clearAllNotCurrentVersion()}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=G({type:o,selectors:[["app-root"]],decls:1,vars:0,template:function(t,n){t&1&&J(0,"router-outlet")},dependencies:[ee],encapsulation:2})};var ue={production:!0,baseUrl:"/api",machineServerUrl:"${WS_URL}",defaultTimeout:3e4};var I=class o{#o=s(re);isLoaded=d(!1);webmodules=d(null);preload(e=!1){let t=this.#o.getApiV1Webmodules().pipe(F(n=>this.webmodules.set(n)),S(()=>this.isLoaded.set(!0)));if(e)return t;t.subscribe()}static \u0275fac=function(t){return new(t||o)};static \u0275prov=R({token:o,factory:o.\u0275fac,providedIn:"root"})};var Re=()=>{let o=s(w);return o.token()?!0:o.checkProxyAuthed().pipe(v(e=>e?j(!0):o.refreshToken().pipe(O(()=>!0))))},we=()=>{let o=s(b),e=s(T),t=s(D),n=o.relayIsEnabled()?"longpoll":"websocket",i=[t.get(L).preload(!0),t.get(L).preloadFilterGroups(!0),t.get(I).preload(!0)];return o.configLoaded===null?N(i).pipe(O(()=>n)):o.configLoaded?.pipe(v(()=>N(i)))},he=[{path:"",children:[{path:"login",canActivate:[],loadComponent:()=>import("./chunk-RUM7HWLC.js")},{path:"logout",loadComponent:()=>import("./chunk-X5LYBLNB.js")},{path:"",canActivate:[Re],children:[{path:"",canActivate:[we],loadComponent:()=>import("./chunk-NB6C6AWO.js"),children:[{path:"",loadComponent:()=>import("./chunk-6B27Y6JF.js")},{path:"add-backup",loadComponent:()=>import("./chunk-YRKXBPEN.js")},{path:"backup/:id/export",loadComponent:()=>import("./chunk-A3ZJDFD7.js")},{path:"backup/import",loadComponent:()=>import("./chunk-KFOSQK3Z.js")},{path:"backup-draft/:id",loadComponent:()=>import("./chunk-HCUGVK4R.js"),loadChildren:()=>import("./chunk-6GXQ3OS3.js")},{path:"backup/:id",loadComponent:()=>import("./chunk-HCUGVK4R.js"),loadChildren:()=>import("./chunk-6GXQ3OS3.js")},{path:"backup/:id/log",loadComponent:()=>import("./chunk-6OAOHI5B.js")},{path:"backup/:id/database",loadComponent:()=>import("./chunk-J2TD53K6.js")},{path:"backup/:id/commandline",loadComponent:()=>import("./chunk-4NAKJMN4.js")},{path:"backup/:id/commandline/:runId",loadComponent:()=>import("./chunk-MI3YJO7L.js")},{path:"restore",children:[{path:"",loadComponent:()=>import("./chunk-F2275265.js")},{path:"from-config",loadComponent:()=>import("./chunk-R4OTX3ML.js")}]},{path:"restore-from-files",loadComponent:()=>import("./chunk-7FJJUDJ2.js"),loadChildren:()=>import("./chunk-2ILIMQUZ.js")},{path:"restore-draft/:id",loadComponent:()=>import("./chunk-7FJJUDJ2.js"),loadChildren:()=>import("./chunk-2ILIMQUZ.js")},{path:"restore/:id",loadComponent:()=>import("./chunk-7FJJUDJ2.js"),loadChildren:()=>import("./chunk-2ILIMQUZ.js")},{path:"settings",loadComponent:()=>import("./chunk-LY3JVR5S.js")},{path:"about",loadComponent:()=>import("./chunk-EZZHN2WE.js"),children:[{path:"",redirectTo:"general",pathMatch:"full"},{path:"general",loadComponent:()=>import("./chunk-EGYSCZVC.js")},{path:"changelog",loadComponent:()=>import("./chunk-N4ZZA3JQ.js")},{path:"libraries",loadComponent:()=>import("./chunk-CEAE6DN3.js")},{path:"system-info",loadComponent:()=>import("./chunk-JUHZJXZP.js")},{path:"logs",loadComponent:()=>import("./chunk-UG4CSTXY.js")}]}]}]}]}];var H=null,fe=(o,e)=>{let t=s(w),n=s(te),i=s(y),c=s(f),r=i.getItem("locale"),u=s(ae),a=le(r),p=o.url==="/api/v1/auth/login",m=o.url==="/api/v1/auth/refresh",C=o.url==="/api/v1/progressstate",h=t.token(),g=o,P=o.headers.has("custom-proxy-check")||h===ie;if(h&&o.url.startsWith(c.baseUrl)&&!P){let l=o.headers.set("Authorization",`Bearer ${h}`);r&&r!=="en-US"&&(l=l.set("X-Ui-Language",a)),g=o.clone({headers:l})}return e(g).pipe(x(l=>{if(!P&&(C&&l.status===404||u.error(l.message),m&&l.status===401&&(t.logout(),n.navigate(["/logout"])),!p&&!m&&l.status===401))return H??=t.refreshToken().pipe(U()),H.pipe(v(()=>e(o.clone({headers:o.headers.set("Authorization",`Bearer ${t.token()}`)}))),x(Se=>(n.navigate(["/logout"]),E(()=>Se))),S(()=>H=null));let ve=`Error Code: ${l.status}, Message: ${l.message}`;return E(()=>({error:l,message:ve}))}))};var Te="1.0.0",ge=`portal-proxy-client-${crypto.randomUUID()}`,ke=1,M=class o{#o=1e3;#s=s(f);#t=d("disconnected");#l=d(this.#o);#i=d(!1);#n=d(!1);#a=d(null);isConnectedToMachineServer=this.#n.asReadonly();wsState=this.#t.asReadonly();#p=[];#r={};#e=null;#m=new TextDecoder("utf-8");#c=null;#d=K(()=>{let e=this.#i(),t=this.#l(),n=this.#a();if(!n||!e||!t||t<this.#o){this.#c&&window.clearInterval(this.#c);return}this.#c=window.setInterval(()=>{this.connectToMachineServer(n)},t)});utf8Atob(e){let t=Uint8Array.from(atob(e),i=>i.charCodeAt(0)),n=this.#m.decode(t);return n?JSON.parse(n):null}connectToMachineServer(e,t){let n=t?.reconnect??!1,i=this.wsState();(i==="disconnected"||i==="error"||n)&&(this.#e?.close(),this.#e=null),!this.#e&&(this.#e=new WebSocket(this.#s.machineServerUrl),this.#t.set("connecting"),this.#e.onopen=()=>{this.#t.set("connect"),this.#n.set(!0),this.#i.set(!1),this.#a.set(null)},this.#e.onclose=()=>{this.#t.set("disconnected"),this.#n.set(!1),this.#a.set(e),this.#i.set(!0)},this.#e.onerror=()=>{this.#t.set("error")},this.#e.onmessage=c=>{let r=JSON.parse(c.data);if(this.wsState()==="connect"){if(r.type!=="welcome"){this.disconnectFromMachineServer(`Unexpected message type, expected 'welcome' but got '${r.type}'`);return}let a={token:e,publicKey:"",clientVersion:Te,protocolVersion:ke},p=this.createResponse(r,"authportal",a);this.#t.set("welcome"),this.#e?.send(p)}else if(this.wsState()==="welcome"){if(r.type!=="authportal"){this.disconnectFromMachineServer(`Unexpected message type, expected 'authportal' but got '${r.type}'`);return}var u=JSON.parse(r.payload??"");if(u.accepted===!1){this.disconnectFromMachineServer("Authentication failed");return}for(this.#t.set("authenticated"),this.#n.set(!0);this.#p.length>0;){let a=this.#p.pop();a&&this.#r[a.messageId]&&this.activateCommand(a)}}else if(this.wsState()==="authenticated"){if(r.type!=="command"){console.warn(`Unexpected message type, expected 'command' but got '${r.type}'`);return}let a=this.#r[r.messageId];if(a){if(r.errorMessage){a.reject(r.errorMessage);return}else{let p=JSON.parse(r.payload??"");p.body=p?.body==null?null:this.utf8Atob(p.body),a.resolve(p)}delete this.#r[r.messageId],window.clearTimeout(a.timer)}}})}disconnectFromMachineServer(e=null){e&&console.error(e),this.#e?.close(),this.#e=null,this.#t.set("disconnected"),this.#n.set(!1)}createResponse(e,t,n){let i={from:ge,to:e.from,type:t,messageId:e.messageId,payload:JSON.stringify(n)};return JSON.stringify(i)}sendCommand(e,t,n,i,c,r,u=5e3){return(this.wsState()==="disconnected"||this.wsState()==="error")&&this.connectToMachineServer(e),new Promise((a,p)=>{let m=crypto.randomUUID(),h={from:ge,to:t,type:"command",messageId:m,payload:JSON.stringify({method:n,path:i,body:c,headers:r})},g={resolve:a,reject:p,timer:window.setTimeout(()=>{let A=this.#r[m];A&&(delete this.#r[m],A.reject("Timeout"))},u)};this.#r[m]=g,this.#n()?this.activateCommand(h):this.#p.push(h)})}activateCommand(e){this.#e?.send(JSON.stringify(e))}static \u0275fac=function(t){return new(t||o)};static \u0275prov=R({token:o,factory:o.\u0275fac,providedIn:"root"})};function Ie(o){if(typeof o!="string")return null;let t=new TextEncoder().encode(o);return window.btoa(String.fromCharCode(...t))}function ye(o,e,t){let n=o.relayconfigState.config();if(n===null)return t(e);let i=Ie(e.body),c={};e.headers.keys().forEach(p=>{c[p]=e.headers.get(p)??""});let r=e.headers.get("timeout"),u=r!==null?parseInt(r):o.defaultTimeout;e.url.startsWith("/api/v1/serverstate")&&e.url.includes("longpoll=true")&&(u=1e3*99);let a=o.relayWebsocket.sendCommand(n.accessToken,n.clientId,e.method,e.url,i,c,u);return new V(p=>{a.then(m=>{let C=new z;c!=null&&Object.keys(c).forEach(g=>{C.set(g,c[g])});let h=new q({body:m.body,status:m.code,statusText:"OK",headers:C});p.next(h),p.complete()})})}var be=(o,e)=>{let t={relayconfigState:s(b),defaultTimeout:s(f).defaultTimeout,relayWebsocket:s(M)},n=t.relayconfigState.config();if(t.relayconfigState.configLoaded!==null&&n===null){let i=new W;return t.relayconfigState.configLoaded.subscribe(c=>{c&&ye(t,o,e).subscribe(i)}),i}return ye(t,o,e)};var Ce={providers:[B(),oe(he,ne()),X(Y(),Q([be,fe])),y,{provide:f,useValue:ue},{provide:$,useValue:me()},pe,T,ce,_,se]};Z(k,Ce);
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.0.80",
2
+ "version": "0.0.82",
3
3
  "name": "@duplicati/ngclient",
4
4
  "license": "MIT",
5
5
  "contributors": [