@duplicati/ngclient 0.0.105 → 0.0.106

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 (45) hide show
  1. package/chunk-2AA7RP36.js +1 -0
  2. package/{chunk-YWCTOOED.js → chunk-2OPFT5E4.js} +1 -1
  3. package/{chunk-4PUCRV6F.js → chunk-3LISV2IH.js} +1 -1
  4. package/{chunk-5LODOOQE.js → chunk-3X4E4YMJ.js} +1 -1
  5. package/{chunk-P5KOELKA.js → chunk-436PKZSE.js} +1 -1
  6. package/{chunk-SHOSAHEC.js → chunk-47JKJRCG.js} +1 -1
  7. package/{chunk-NTVLL6TO.js → chunk-4EIKPTJL.js} +1 -1
  8. package/{chunk-RVCYNHAQ.js → chunk-5MW7LJ7A.js} +1 -1
  9. package/{chunk-XG7KYN67.js → chunk-5YI264K5.js} +1 -1
  10. package/chunk-5ZRMELDO.js +1 -0
  11. package/{chunk-U2HORYSZ.js → chunk-6AFQMFMF.js} +1 -1
  12. package/{chunk-BEXTTKFK.js → chunk-6S3SP4UJ.js} +1 -1
  13. package/{chunk-WSFEYRKT.js → chunk-6V3OG3TZ.js} +1 -1
  14. package/{chunk-FROEBZRG.js → chunk-6WM5WVZV.js} +1 -1
  15. package/{chunk-YF5K7PNR.js → chunk-7RBLV255.js} +1 -1
  16. package/{chunk-O7DK2M4U.js → chunk-7YWZEP4G.js} +1 -1
  17. package/{chunk-JKOCS4GE.js → chunk-AXTJMPOA.js} +1 -1
  18. package/chunk-BRKXL7PY.js +1 -0
  19. package/chunk-DAPUSIR2.js +1 -0
  20. package/{chunk-E6VGAA7Q.js → chunk-ENVS53DP.js} +1 -1
  21. package/{chunk-SZ64OOBT.js → chunk-FEJAAP54.js} +1 -1
  22. package/{chunk-LD2OSURG.js → chunk-HWP66GX6.js} +1 -1
  23. package/{chunk-VAOJO535.js → chunk-IA2ZYSD7.js} +1 -1
  24. package/{chunk-SITZCHGF.js → chunk-IMFJPM7A.js} +1 -1
  25. package/chunk-M63ZRC6J.js +1 -0
  26. package/{chunk-HN4MKGHV.js → chunk-MFDCQK6M.js} +1 -1
  27. package/chunk-OAPBYB5L.js +8 -0
  28. package/{chunk-J4KNSP44.js → chunk-OJ3MWFKA.js} +1 -1
  29. package/{chunk-JLBV3QXT.js → chunk-P6BYDOQU.js} +1 -1
  30. package/{chunk-7UQE266G.js → chunk-UEZFRBEJ.js} +2 -2
  31. package/{chunk-NF5EQK5W.js → chunk-UKNGRIBK.js} +1 -1
  32. package/{chunk-6U42RKWI.js → chunk-UN45NEVN.js} +1 -1
  33. package/{chunk-M4YSJR2J.js → chunk-Y4K6X2Q2.js} +1 -1
  34. package/{chunk-L4CVN3UF.js → chunk-YC34F3JB.js} +1 -1
  35. package/chunk-ZTUAQHOT.js +1 -0
  36. package/index.html +1 -1
  37. package/{main-HT3PXURE.js → main-5B5JXI35.js} +1 -1
  38. package/package.json +1 -1
  39. package/chunk-2HUZWRPM.js +0 -1
  40. package/chunk-3MVGDMRL.js +0 -1
  41. package/chunk-4LYA3XAH.js +0 -1
  42. package/chunk-GOTRUTIB.js +0 -1
  43. package/chunk-QO6SPSAF.js +0 -8
  44. package/chunk-TQGG56ZZ.js +0 -1
  45. package/chunk-VOGYVLLM.js +0 -1
@@ -1 +1 @@
1
- import{a as ke,c as Re,d as B}from"./chunk-KSP3JQHY.js";import{a as Oe}from"./chunk-HTNYQE2B.js";import{a as ue}from"./chunk-VOGYVLLM.js";import"./chunk-RHW5QVAY.js";import{b as de,c as Pe,d as S,e as Te,f as Ce,i as me,n as Ee,q as Se,r as ge,t as fe}from"./chunk-T2OUHRUV.js";import"./chunk-I3C2AEHI.js";import{b as oe,d as te,e as ne}from"./chunk-QVIZK4WW.js";import"./chunk-WMTA6PZM.js";import{A as Fe,a as re,b as se,f as ae,g as le,l as pe,p as _e,z as ce}from"./chunk-WX7L7V6J.js";import{b as ie}from"./chunk-PTDSOPNK.js";import{c as ee}from"./chunk-MZ473NLM.js";import"./chunk-CKPICCFH.js";import{$b as A,Ac as N,Bc as Z,Cb as M,F as I,Gb as _,Hb as c,Ib as m,Jb as y,Kb as h,Lb as X,Mb as E,N as H,Nb as u,Qa as s,Y as T,ab as Q,ac as J,cc as W,da as x,ea as D,fb as d,lc as Y,nb as P,pb as f,sb as F,ua as C,wb as a,xb as r,yb as p}from"./chunk-W2F756OF.js";import"./chunk-7CGTOI24.js";var we=()=>["/"];function $e(t,o){t&1&&(a(0,"spk-toggle",24),_(1,5),p(2,"input",27),c(),r())}function xe(t,o){t&1&&(a(0,"span",30),m(1,9),r())}function De(t,o){if(t&1&&(a(0,"span",30),m(1,10),r()),t&2){let e=u(2);s(),y(e.exportForm.controls.password.errors==null?null:e.exportForm.controls.password.errors.minlength.requiredLength),h(1)}}function Ae(t,o){if(t&1&&p(0,"spk-progress-bar",37),t&2){let e=u(2);f("error",e.calculatePasswordStrength()===1)("warn",e.calculatePasswordStrength()===2)("primary",e.calculatePasswordStrength()===4)("success",e.calculatePasswordStrength()===5),P("value",e.calculatePasswordStrength()*(100/5))}}function Ne(t,o){t&1&&(a(0,"span",30),m(1,11),r())}function Ie(t,o){t&1&&(a(0,"span",30),m(1,12),r())}function Me(t,o){if(t&1&&(a(0,"span",30),m(1,13),r()),t&2){let e=u(2);s(),y(e.exportForm.controls.repeatPassword.errors==null?null:e.exportForm.controls.repeatPassword.errors.minlength.requiredLength),h(1)}}function ye(t,o){t&1&&(_(0,7,1),p(1,"spk-icon"),c())}function he(t,o){t&1&&(_(0,7,2),p(1,"spk-icon"),c())}function Xe(t,o){t&1&&(_(0,14,1),p(1,"spk-icon",39),c())}function Be(t,o){t&1&&(_(0,14,2),p(1,"spk-icon"),c())}function Le(t,o){if(t&1){let e=M();a(0,"button",38),E("click",function(){x(e);let i=u(2);return D(i.copyPassword())}),_(1,14),d(2,Xe,2,0)(3,Be,2,0),c(),r()}if(t&2){let e=u(2);s(2),F(e.copiedPassword()?2:3)}}function be(t,o){t&1&&(a(0,"spk-alert",36),m(1,15),r())}function ve(t,o){if(t&1){let e=M();a(0,"div",25)(1,"spk-form-field")(2,"label",28),_(3,6),p(4,"sup"),c(),r(),p(5,"input",29),d(6,xe,2,0,"span",30)(7,De,2,1,"span",30),r(),d(8,Ae,1,9,"spk-progress-bar",31),a(9,"spk-form-field"),p(10,"input",32),d(11,Ne,2,0,"span",30)(12,Ie,2,0,"span",30)(13,Me,2,1,"span",30),r(),a(14,"div",33)(15,"button",34),E("click",function(){x(e);let i=u();return D(i.showPassword.set(!i.showPassword()))}),_(16,7),d(17,ye,2,0)(18,he,2,0),c(),r(),a(19,"button",34),E("click",function(){x(e);let i=u();return D(i.generatePassword())}),_(20,8),p(21,"spk-icon"),c(),r(),d(22,Le,4,1,"button",35),r(),d(23,be,2,0,"spk-alert",36),r()}if(t&2){let e=u();s(5),P("type",e.showPassword()?"text":"password"),s(),F(e.exportForm.controls.password.errors!=null&&e.exportForm.controls.password.errors.required?6:e.exportForm.controls.password.errors!=null&&e.exportForm.controls.password.errors.minlength?7:-1),s(2),F(e.exportForm.value.password?8:-1),s(2),P("type",e.showPassword()?"text":"password"),s(),F(e.exportForm.value.repeatPassword&&e.exportForm.value.repeatPassword!==e.exportForm.value.password?11:e.exportForm.controls.repeatPassword.errors!=null&&e.exportForm.controls.repeatPassword.errors.required?12:e.exportForm.controls.repeatPassword.errors!=null&&e.exportForm.controls.repeatPassword.errors.minlength?13:-1),s(6),F(e.showPassword()?17:18),s(5),F(e.showCopyPassword()?22:-1),s(),F(e.exportForm.value.password&&e.exportForm.value.password===e.exportForm.value.repeatPassword?23:-1)}}function Ge(t,o){if(t&1&&(a(0,"div",26)(1,"code"),A(2),r()()),t&2){let e=u();s(2),J(e.exportedCmd())}}var O=new ge,L=class t{#o=T(ke);#t=T(ie);#e=T(oe);#n=T(te);#i=T(ee);#r=T(ue);isExporting=C(!1);exportType=C("file");exportedCmd=C(null);exportForm=O.group({exportPasswords:O.control(!0),encryption:O.control(!1,[S.required,Re()]),password:O.control("",[B("encryption",!0,[S.required,S.minLength(3)])]),repeatPassword:O.control("",[B("encryption",!0,[S.required,S.minLength(3)])])});exportFormSignal=Oe(this.exportForm.valueChanges);encryptionFieldSignal=N(()=>this.exportFormSignal()?.encryption??!1);activeBackup=N(()=>this.#r.backups().find(o=>o.Backup?.ID===this.#e.snapshot.params.id));showPassword=C(!1);copiedPassword=C(!1);showCopyPassword=C(!1);calculatePasswordStrength=N(()=>{let e=this.exportFormSignal()?.password??"";return this.#o.calculatePasswordStrength(e)});showPasswordEffect=Z(()=>{this.showPassword()&&this.exportForm.updateValueAndValidity()});submit(){this.isExporting.set(!0),this.exportType()==="file"?this.#t.postApiV1AuthIssuetokenByOperation({operation:"export"}).pipe(H(o=>{let e=i=>{let g=Object.entries(i);return g?"?"+g.map(([k,R])=>`${k}=${R}`).join("&"):""},n=this.exportFormSignal()?.password?.length?this.exportFormSignal()?.password:void 0;return this.#i.get(`/api/v1/backup/${this.#e.snapshot.params.id}/export${e({"export-passwords":this.exportFormSignal()?.exportPasswords??void 0,passphrase:n,token:o.Token})}`,{responseType:"blob"})}),I(()=>this.isExporting.set(!1))).subscribe({next:o=>{let n=this.activeBackup()?.Backup?.Name??"Backup",i=this.exportFormSignal()?.encryption?"aes":"json";this.downloadFile(o,`${n}-duplicati-config.${i}`),this.#n.navigate(["/"])},error:o=>{}}):this.#t.getApiV1BackupByIdExportCmdline({id:this.#e.snapshot.params.id,exportPasswords:this.exportFormSignal()?.exportPasswords??void 0,passphrase:this.exportFormSignal()?.password??void 0}).pipe(I(()=>this.isExporting.set(!1))).subscribe({next:o=>{this.exportedCmd.set(o.Command??null)},error:o=>{}})}downloadFile(o,e){let n=window.URL.createObjectURL(o),i=document.createElement("a");i.href=n,i.download=e,i.click(),window.URL.revokeObjectURL(n)}async copyPassword(){let o=this.exportForm.controls.password.value;await this.#s(o??""),this.copiedPassword.set(!0)}async#s(o){try{await navigator.clipboard.writeText(o)}catch{try{let n=document.createElement("textarea");n.value=o,document.body.appendChild(n),n.select(),document.execCommand("copy"),document.body.removeChild(n)}catch(n){console.error("Failed to copy text: ",n)}}}generatePassword(){this.copiedPassword.set(!1);let o=this.#o.generate(16);this.exportForm.controls.password.setValue(o),this.exportForm.controls.repeatPassword.setValue(o),this.showCopyPassword.set(!0)}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=Q({type:t,selectors:[["app-export"]],decls:27,vars:16,consts:()=>{let o;o=$localize`${"\uFFFD#6\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#6\uFFFD"}:CLOSE_TAG_SPK_ICON: Back `;let e;e=$localize`${"\uFFFD#10\uFFFD"}:START_TAG_SPK_ICON:export${"\uFFFD/#10\uFFFD"}:CLOSE_TAG_SPK_ICON: Export `;let n;n=$localize`${"\uFFFD#17\uFFFD"}:START_TAG_SPK_ICON:terminal-window${"\uFFFD/#17\uFFFD"}:CLOSE_TAG_SPK_ICON: As command line `;let i;i=$localize`${"\uFFFD#20\uFFFD"}:START_TAG_SPK_ICON:file${"\uFFFD/#20\uFFFD"}:CLOSE_TAG_SPK_ICON: To file `;let g;g=$localize` Export passwords ${"\uFFFD#23\uFFFD\uFFFD/#23\uFFFD"}:TAG_INPUT:`;let k;k=$localize` Encrypt file ${"\uFFFD#2\uFFFD\uFFFD/#2\uFFFD"}:TAG_INPUT:`;let R;R=$localize`Password`;let b;b=$localize`Repeat password`;let v;v=$localize` Create a password ${"\uFFFD#4\uFFFD"}:START_SUPERSCRIPT:*${"\uFFFD/#4\uFFFD"}:CLOSE_SUPERSCRIPT:`;let w;w=$localize`${"\uFFFD*17:1\uFFFD"}:START_BLOCK_IF:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SPK_ICON:eye-slash${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SPK_ICON: hide ${"\uFFFD/*17:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*18:2\uFFFD"}:START_BLOCK_ELSE:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SPK_ICON:eye${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SPK_ICON: show ${"\uFFFD/*18:2\uFFFD"}:CLOSE_BLOCK_ELSE:`,w=X(w);let G;G=$localize`${"\uFFFD#21\uFFFD"}:START_TAG_SPK_ICON:password${"\uFFFD/#21\uFFFD"}:CLOSE_TAG_SPK_ICON: Generate password `;let K;K=$localize`Passwords are required`;let U;U=$localize` Passwords must be at least ${"\uFFFD0\uFFFD"}:INTERPOLATION: characters long `;let z;z=$localize`Passwords do not match`;let V;V=$localize`Passwords are required`;let q;q=$localize` Passwords must be at least ${"\uFFFD0\uFFFD"}:INTERPOLATION: characters long `;let $;$=$localize`${"\uFFFD*2:1\uFFFD"}:START_BLOCK_IF:${"\uFFFD#1:1\uFFFD"}:START_TAG_SPK_ICON:check${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SPK_ICON: Copied password ${"\uFFFD/*2:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*3:2\uFFFD"}:START_BLOCK_ELSE:${"\uFFFD#1:2\uFFFD"}:START_TAG_SPK_ICON_1:copy${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SPK_ICON: Copy password ${"\uFFFD/*3:2\uFFFD"}:CLOSE_BLOCK_ELSE:`,$=X($);let j;return j=$localize` Tip: Be sure to save your password. If you loose it you will lose access to your backups. `,[o,e,n,i,g,k,v,w,G,K,U,z,V,q,$,j,[1,"actions"],["spk-button","",1,"outlined",3,"routerLink"],["message","Remember to copy the password",1,"primary",3,"disabled"],["spk-button","",1,"raised","primary",3,"click","disabled"],["autocomplete","off",3,"formGroup"],["type","button",3,"click"],[1,"raised","primary"],["type","checkbox","formControlName","exportPasswords"],[1,"primary","raised"],[1,"passwords"],[1,"cmd-output"],["type","checkbox","formControlName","encryption"],["for","password"],["id","password","tabindex","4","autocomplete","off","placeholder",R,"formControlName","password",3,"type"],["error",""],[1,"raised",3,"error","warn","primary","success","value"],["id","repeatPassword","tabindex","5","autocomplete","off","placeholder",b,"formControlName","repeatPassword",3,"type"],[1,"password-actions"],["spk-button","","type","button",1,"small",3,"click"],["spk-button","","type","button",1,"small","copy"],[1,"primary"],[1,"raised",3,"value"],["spk-button","","type","button",1,"small","copy",3,"click"],[1,"spk-success"]]},template:function(e,n){if(e&1&&(a(0,"header")(1,"h3"),A(2," Export backup configuration "),a(3,"div",16)(4,"button",17),_(5,0),p(6,"spk-icon"),c(),r(),a(7,"spk-tooltip",18)(8,"button",19),E("click",function(){return n.submit()}),_(9,1),p(10,"spk-icon"),c(),r()()()(),a(11,"p"),A(12),r()(),a(13,"form",20)(14,"spk-button-group")(15,"button",21),E("click",function(){return n.exportType.set("cmd")}),_(16,2),p(17,"spk-icon"),c(),r(),a(18,"button",21),E("click",function(){return n.exportType.set("file")}),_(19,3),p(20,"spk-icon"),c(),r()(),a(21,"spk-toggle",22),_(22,4),p(23,"input",23),c(),r(),d(24,$e,3,0,"spk-toggle",24)(25,ve,24,8,"div",25)(26,Ge,3,1,"div",26),r()),e&2){let i;s(4),P("routerLink",Y(15,we)),s(3),f("loading",n.isExporting()),P("disabled",!(n.showCopyPassword()&&!n.copiedPassword())),s(),P("disabled",n.exportForm.invalid||n.showCopyPassword()&&!n.copiedPassword()),s(4),W("#",(i=n.activeBackup())==null||i.Backup==null?null:i.Backup.ID,": ",(i=n.activeBackup())==null||i.Backup==null?null:i.Backup.Name,""),s(),P("formGroup",n.exportForm),s(2),f("active",n.exportType()==="cmd"),s(3),f("active",n.exportType()==="file"),s(6),F(n.exportType()==="file"?24:-1),s(),F(n.encryptionFieldSignal()?25:-1),s(),F(n.exportedCmd()?26:-1)}},dependencies:[fe,me,Pe,de,Te,Ce,Ee,Se,ne,ae,ce,re,pe,le,se,_e,Fe],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}.passwords[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.password-actions[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:center}.copy[_ngcontent-%COMP%] spk-icon.spk-success[_ngcontent-%COMP%]{color:var(--success-500)}.hide[_ngcontent-%COMP%]{display:none}"],changeDetection:0})};export{L as default};
1
+ import{a as ke,c as Re,d as B}from"./chunk-KSP3JQHY.js";import{a as Oe}from"./chunk-HTNYQE2B.js";import{a as ue}from"./chunk-2AA7RP36.js";import"./chunk-RHW5QVAY.js";import{b as de,c as Pe,d as S,e as Te,f as Ce,i as me,n as Ee,q as Se,r as ge,t as fe}from"./chunk-T2OUHRUV.js";import"./chunk-I3C2AEHI.js";import{b as oe,d as te,e as ne}from"./chunk-QVIZK4WW.js";import"./chunk-WMTA6PZM.js";import{A as Fe,a as re,b as se,f as ae,g as le,l as pe,p as _e,z as ce}from"./chunk-WX7L7V6J.js";import{b as ie}from"./chunk-PTDSOPNK.js";import{c as ee}from"./chunk-MZ473NLM.js";import"./chunk-CKPICCFH.js";import{$b as A,Ac as N,Bc as Z,Cb as M,F as I,Gb as _,Hb as c,Ib as m,Jb as y,Kb as h,Lb as X,Mb as E,N as H,Nb as u,Qa as s,Y as T,ab as Q,ac as J,cc as W,da as x,ea as D,fb as d,lc as Y,nb as P,pb as f,sb as F,ua as C,wb as a,xb as r,yb as p}from"./chunk-W2F756OF.js";import"./chunk-7CGTOI24.js";var we=()=>["/"];function $e(t,o){t&1&&(a(0,"spk-toggle",24),_(1,5),p(2,"input",27),c(),r())}function xe(t,o){t&1&&(a(0,"span",30),m(1,9),r())}function De(t,o){if(t&1&&(a(0,"span",30),m(1,10),r()),t&2){let e=u(2);s(),y(e.exportForm.controls.password.errors==null?null:e.exportForm.controls.password.errors.minlength.requiredLength),h(1)}}function Ae(t,o){if(t&1&&p(0,"spk-progress-bar",37),t&2){let e=u(2);f("error",e.calculatePasswordStrength()===1)("warn",e.calculatePasswordStrength()===2)("primary",e.calculatePasswordStrength()===4)("success",e.calculatePasswordStrength()===5),P("value",e.calculatePasswordStrength()*(100/5))}}function Ne(t,o){t&1&&(a(0,"span",30),m(1,11),r())}function Ie(t,o){t&1&&(a(0,"span",30),m(1,12),r())}function Me(t,o){if(t&1&&(a(0,"span",30),m(1,13),r()),t&2){let e=u(2);s(),y(e.exportForm.controls.repeatPassword.errors==null?null:e.exportForm.controls.repeatPassword.errors.minlength.requiredLength),h(1)}}function ye(t,o){t&1&&(_(0,7,1),p(1,"spk-icon"),c())}function he(t,o){t&1&&(_(0,7,2),p(1,"spk-icon"),c())}function Xe(t,o){t&1&&(_(0,14,1),p(1,"spk-icon",39),c())}function Be(t,o){t&1&&(_(0,14,2),p(1,"spk-icon"),c())}function Le(t,o){if(t&1){let e=M();a(0,"button",38),E("click",function(){x(e);let i=u(2);return D(i.copyPassword())}),_(1,14),d(2,Xe,2,0)(3,Be,2,0),c(),r()}if(t&2){let e=u(2);s(2),F(e.copiedPassword()?2:3)}}function be(t,o){t&1&&(a(0,"spk-alert",36),m(1,15),r())}function ve(t,o){if(t&1){let e=M();a(0,"div",25)(1,"spk-form-field")(2,"label",28),_(3,6),p(4,"sup"),c(),r(),p(5,"input",29),d(6,xe,2,0,"span",30)(7,De,2,1,"span",30),r(),d(8,Ae,1,9,"spk-progress-bar",31),a(9,"spk-form-field"),p(10,"input",32),d(11,Ne,2,0,"span",30)(12,Ie,2,0,"span",30)(13,Me,2,1,"span",30),r(),a(14,"div",33)(15,"button",34),E("click",function(){x(e);let i=u();return D(i.showPassword.set(!i.showPassword()))}),_(16,7),d(17,ye,2,0)(18,he,2,0),c(),r(),a(19,"button",34),E("click",function(){x(e);let i=u();return D(i.generatePassword())}),_(20,8),p(21,"spk-icon"),c(),r(),d(22,Le,4,1,"button",35),r(),d(23,be,2,0,"spk-alert",36),r()}if(t&2){let e=u();s(5),P("type",e.showPassword()?"text":"password"),s(),F(e.exportForm.controls.password.errors!=null&&e.exportForm.controls.password.errors.required?6:e.exportForm.controls.password.errors!=null&&e.exportForm.controls.password.errors.minlength?7:-1),s(2),F(e.exportForm.value.password?8:-1),s(2),P("type",e.showPassword()?"text":"password"),s(),F(e.exportForm.value.repeatPassword&&e.exportForm.value.repeatPassword!==e.exportForm.value.password?11:e.exportForm.controls.repeatPassword.errors!=null&&e.exportForm.controls.repeatPassword.errors.required?12:e.exportForm.controls.repeatPassword.errors!=null&&e.exportForm.controls.repeatPassword.errors.minlength?13:-1),s(6),F(e.showPassword()?17:18),s(5),F(e.showCopyPassword()?22:-1),s(),F(e.exportForm.value.password&&e.exportForm.value.password===e.exportForm.value.repeatPassword?23:-1)}}function Ge(t,o){if(t&1&&(a(0,"div",26)(1,"code"),A(2),r()()),t&2){let e=u();s(2),J(e.exportedCmd())}}var O=new ge,L=class t{#o=T(ke);#t=T(ie);#e=T(oe);#n=T(te);#i=T(ee);#r=T(ue);isExporting=C(!1);exportType=C("file");exportedCmd=C(null);exportForm=O.group({exportPasswords:O.control(!0),encryption:O.control(!1,[S.required,Re()]),password:O.control("",[B("encryption",!0,[S.required,S.minLength(3)])]),repeatPassword:O.control("",[B("encryption",!0,[S.required,S.minLength(3)])])});exportFormSignal=Oe(this.exportForm.valueChanges);encryptionFieldSignal=N(()=>this.exportFormSignal()?.encryption??!1);activeBackup=N(()=>this.#r.backups().find(o=>o.Backup?.ID===this.#e.snapshot.params.id));showPassword=C(!1);copiedPassword=C(!1);showCopyPassword=C(!1);calculatePasswordStrength=N(()=>{let e=this.exportFormSignal()?.password??"";return this.#o.calculatePasswordStrength(e)});showPasswordEffect=Z(()=>{this.showPassword()&&this.exportForm.updateValueAndValidity()});submit(){this.isExporting.set(!0),this.exportType()==="file"?this.#t.postApiV1AuthIssuetokenByOperation({operation:"export"}).pipe(H(o=>{let e=i=>{let g=Object.entries(i);return g?"?"+g.map(([k,R])=>`${k}=${R}`).join("&"):""},n=this.exportFormSignal()?.password?.length?this.exportFormSignal()?.password:void 0;return this.#i.get(`/api/v1/backup/${this.#e.snapshot.params.id}/export${e({"export-passwords":this.exportFormSignal()?.exportPasswords??void 0,passphrase:n,token:o.Token})}`,{responseType:"blob"})}),I(()=>this.isExporting.set(!1))).subscribe({next:o=>{let n=this.activeBackup()?.Backup?.Name??"Backup",i=this.exportFormSignal()?.encryption?"aes":"json";this.downloadFile(o,`${n}-duplicati-config.${i}`),this.#n.navigate(["/"])},error:o=>{}}):this.#t.getApiV1BackupByIdExportCmdline({id:this.#e.snapshot.params.id,exportPasswords:this.exportFormSignal()?.exportPasswords??void 0,passphrase:this.exportFormSignal()?.password??void 0}).pipe(I(()=>this.isExporting.set(!1))).subscribe({next:o=>{this.exportedCmd.set(o.Command??null)},error:o=>{}})}downloadFile(o,e){let n=window.URL.createObjectURL(o),i=document.createElement("a");i.href=n,i.download=e,i.click(),window.URL.revokeObjectURL(n)}async copyPassword(){let o=this.exportForm.controls.password.value;await this.#s(o??""),this.copiedPassword.set(!0)}async#s(o){try{await navigator.clipboard.writeText(o)}catch{try{let n=document.createElement("textarea");n.value=o,document.body.appendChild(n),n.select(),document.execCommand("copy"),document.body.removeChild(n)}catch(n){console.error("Failed to copy text: ",n)}}}generatePassword(){this.copiedPassword.set(!1);let o=this.#o.generate(16);this.exportForm.controls.password.setValue(o),this.exportForm.controls.repeatPassword.setValue(o),this.showCopyPassword.set(!0)}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=Q({type:t,selectors:[["app-export"]],decls:27,vars:16,consts:()=>{let o;o=$localize`${"\uFFFD#6\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#6\uFFFD"}:CLOSE_TAG_SPK_ICON: Back `;let e;e=$localize`${"\uFFFD#10\uFFFD"}:START_TAG_SPK_ICON:export${"\uFFFD/#10\uFFFD"}:CLOSE_TAG_SPK_ICON: Export `;let n;n=$localize`${"\uFFFD#17\uFFFD"}:START_TAG_SPK_ICON:terminal-window${"\uFFFD/#17\uFFFD"}:CLOSE_TAG_SPK_ICON: As command line `;let i;i=$localize`${"\uFFFD#20\uFFFD"}:START_TAG_SPK_ICON:file${"\uFFFD/#20\uFFFD"}:CLOSE_TAG_SPK_ICON: To file `;let g;g=$localize` Export passwords ${"\uFFFD#23\uFFFD\uFFFD/#23\uFFFD"}:TAG_INPUT:`;let k;k=$localize` Encrypt file ${"\uFFFD#2\uFFFD\uFFFD/#2\uFFFD"}:TAG_INPUT:`;let R;R=$localize`Password`;let b;b=$localize`Repeat password`;let v;v=$localize` Create a password ${"\uFFFD#4\uFFFD"}:START_SUPERSCRIPT:*${"\uFFFD/#4\uFFFD"}:CLOSE_SUPERSCRIPT:`;let w;w=$localize`${"\uFFFD*17:1\uFFFD"}:START_BLOCK_IF:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SPK_ICON:eye-slash${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SPK_ICON: hide ${"\uFFFD/*17:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*18:2\uFFFD"}:START_BLOCK_ELSE:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SPK_ICON:eye${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SPK_ICON: show ${"\uFFFD/*18:2\uFFFD"}:CLOSE_BLOCK_ELSE:`,w=X(w);let G;G=$localize`${"\uFFFD#21\uFFFD"}:START_TAG_SPK_ICON:password${"\uFFFD/#21\uFFFD"}:CLOSE_TAG_SPK_ICON: Generate password `;let K;K=$localize`Passwords are required`;let U;U=$localize` Passwords must be at least ${"\uFFFD0\uFFFD"}:INTERPOLATION: characters long `;let z;z=$localize`Passwords do not match`;let V;V=$localize`Passwords are required`;let q;q=$localize` Passwords must be at least ${"\uFFFD0\uFFFD"}:INTERPOLATION: characters long `;let $;$=$localize`${"\uFFFD*2:1\uFFFD"}:START_BLOCK_IF:${"\uFFFD#1:1\uFFFD"}:START_TAG_SPK_ICON:check${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SPK_ICON: Copied password ${"\uFFFD/*2:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*3:2\uFFFD"}:START_BLOCK_ELSE:${"\uFFFD#1:2\uFFFD"}:START_TAG_SPK_ICON_1:copy${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SPK_ICON: Copy password ${"\uFFFD/*3:2\uFFFD"}:CLOSE_BLOCK_ELSE:`,$=X($);let j;return j=$localize` Tip: Be sure to save your password. If you loose it you will lose access to your backups. `,[o,e,n,i,g,k,v,w,G,K,U,z,V,q,$,j,[1,"actions"],["spk-button","",1,"outlined",3,"routerLink"],["message","Remember to copy the password",1,"primary",3,"disabled"],["spk-button","",1,"raised","primary",3,"click","disabled"],["autocomplete","off",3,"formGroup"],["type","button",3,"click"],[1,"raised","primary"],["type","checkbox","formControlName","exportPasswords"],[1,"primary","raised"],[1,"passwords"],[1,"cmd-output"],["type","checkbox","formControlName","encryption"],["for","password"],["id","password","tabindex","4","autocomplete","off","placeholder",R,"formControlName","password",3,"type"],["error",""],[1,"raised",3,"error","warn","primary","success","value"],["id","repeatPassword","tabindex","5","autocomplete","off","placeholder",b,"formControlName","repeatPassword",3,"type"],[1,"password-actions"],["spk-button","","type","button",1,"small",3,"click"],["spk-button","","type","button",1,"small","copy"],[1,"primary"],[1,"raised",3,"value"],["spk-button","","type","button",1,"small","copy",3,"click"],[1,"spk-success"]]},template:function(e,n){if(e&1&&(a(0,"header")(1,"h3"),A(2," Export backup configuration "),a(3,"div",16)(4,"button",17),_(5,0),p(6,"spk-icon"),c(),r(),a(7,"spk-tooltip",18)(8,"button",19),E("click",function(){return n.submit()}),_(9,1),p(10,"spk-icon"),c(),r()()()(),a(11,"p"),A(12),r()(),a(13,"form",20)(14,"spk-button-group")(15,"button",21),E("click",function(){return n.exportType.set("cmd")}),_(16,2),p(17,"spk-icon"),c(),r(),a(18,"button",21),E("click",function(){return n.exportType.set("file")}),_(19,3),p(20,"spk-icon"),c(),r()(),a(21,"spk-toggle",22),_(22,4),p(23,"input",23),c(),r(),d(24,$e,3,0,"spk-toggle",24)(25,ve,24,8,"div",25)(26,Ge,3,1,"div",26),r()),e&2){let i;s(4),P("routerLink",Y(15,we)),s(3),f("loading",n.isExporting()),P("disabled",!(n.showCopyPassword()&&!n.copiedPassword())),s(),P("disabled",n.exportForm.invalid||n.showCopyPassword()&&!n.copiedPassword()),s(4),W("#",(i=n.activeBackup())==null||i.Backup==null?null:i.Backup.ID,": ",(i=n.activeBackup())==null||i.Backup==null?null:i.Backup.Name,""),s(),P("formGroup",n.exportForm),s(2),f("active",n.exportType()==="cmd"),s(3),f("active",n.exportType()==="file"),s(6),F(n.exportType()==="file"?24:-1),s(),F(n.encryptionFieldSignal()?25:-1),s(),F(n.exportedCmd()?26:-1)}},dependencies:[fe,me,Pe,de,Te,Ce,Ee,Se,ne,ae,ce,re,pe,le,se,_e,Fe],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}.passwords[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.password-actions[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:center}.copy[_ngcontent-%COMP%] spk-icon.spk-success[_ngcontent-%COMP%]{color:var(--success-500)}.hide[_ngcontent-%COMP%]{display:none}"],changeDetection:0})};export{L as default};
@@ -1 +1 @@
1
- import{a,b}from"./chunk-4LYA3XAH.js";import"./chunk-TQGG56ZZ.js";import"./chunk-VN7JM6M3.js";import"./chunk-HTNYQE2B.js";import"./chunk-SAVY3OEX.js";import"./chunk-7L42EO7J.js";import"./chunk-T2OUHRUV.js";import"./chunk-QVIZK4WW.js";import"./chunk-WMTA6PZM.js";import"./chunk-WX7L7V6J.js";import"./chunk-PTDSOPNK.js";import"./chunk-MZ473NLM.js";import"./chunk-CKPICCFH.js";import"./chunk-W2F756OF.js";import"./chunk-7CGTOI24.js";export{a as createRestoreOptionsForm,b as default};
1
+ import{a,b}from"./chunk-ZTUAQHOT.js";import"./chunk-DAPUSIR2.js";import"./chunk-VN7JM6M3.js";import"./chunk-HTNYQE2B.js";import"./chunk-SAVY3OEX.js";import"./chunk-7L42EO7J.js";import"./chunk-T2OUHRUV.js";import"./chunk-QVIZK4WW.js";import"./chunk-WMTA6PZM.js";import"./chunk-WX7L7V6J.js";import"./chunk-PTDSOPNK.js";import"./chunk-MZ473NLM.js";import"./chunk-CKPICCFH.js";import"./chunk-W2F756OF.js";import"./chunk-7CGTOI24.js";export{a as createRestoreOptionsForm,b as default};
@@ -1 +1 @@
1
- import{a as z}from"./chunk-VAOJO535.js";import"./chunk-SZ64OOBT.js";import{a as X}from"./chunk-VOGYVLLM.js";import"./chunk-RHW5QVAY.js";import"./chunk-O2YN63YI.js";import"./chunk-T2OUHRUV.js";import"./chunk-FSGJ5KIH.js";import"./chunk-I3C2AEHI.js";import{e as E}from"./chunk-QVIZK4WW.js";import"./chunk-WMTA6PZM.js";import{a as R,g as f,h as k,k as G,p as w}from"./chunk-WX7L7V6J.js";import{b as L}from"./chunk-PTDSOPNK.js";import"./chunk-MZ473NLM.js";import"./chunk-DE4NDI5F.js";import"./chunk-CKPICCFH.js";import"./chunk-PFYOWXZZ.js";import{$b as l,Ab as b,Gb as h,Hb as y,Ib as c,Jb as A,Kb as I,Nb as S,Qa as p,Y as d,ab as O,cc as B,fb as m,kb as M,lb as P,lc as g,mc as v,nb as u,sb as F,tb as N,ub as x,vb as $,wb as e,xb as i,yb as s,zb as D}from"./chunk-W2F756OF.js";import"./chunk-7CGTOI24.js";var W=()=>[k,f,R,E],j=()=>["/restore-from-files"],K=()=>["/restore/from-config"],q=t=>["/restore",t];function V(t,r){if(t&1&&(e(0,"spk-card",5),s(1,"img",10),e(2,"div",7)(3,"h3"),c(4,1),i(),e(5,"p"),l(6),i()(),e(7,"button",8),h(8,2),s(9,"spk-icon"),y(),i()()),t&2){let n,a,o=r.$implicit;p(4),A((n=o.Backup==null?null:o.Backup.Name)!==null&&n!==void 0?n:"Backup name missing"),I(4),p(2),B(" ",(a=o.Backup==null||o.Backup.Metadata==null?null:o.Backup.Metadata.SourceSizeString)!==null&&a!==void 0?a:"-"," / ",(a=o.Backup==null||o.Backup.Metadata==null?null:o.Backup.Metadata.BackupListCount)!==null&&a!==void 0?a:"-"," "),p(),u("routerLink",v(4,q,o.Backup==null?null:o.Backup.ID))}}function H(t,r){if(t&1&&x(0,V,10,6,"spk-card",5,N),t&2){let n=S(2);$(n.backups())}}function J(t,r){t&1&&(D(0),c(1,3),b())}function Q(t,r){if(t&1&&m(0,H,2,0)(1,J,2,0,"ng-container"),t&2){let n=S();F(n.backups().length?0:1)}}function U(t,r){t&1&&(e(0,"div",11),s(1,"spk-progress-bar",12),e(2,"div",7)(3,"h3"),c(4,4),i()()())}var C=class t{#e=d(X);#t=d(L);backups=this.#e.backups;backupsLoading=this.#e.backupsLoading;ngOnInit(){this.#e.getBackups(!0)}restoreNow(r){this.#t.postApiV1BackupByIdRestore({id:r.Backup?.ID,requestBody:{}})}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=O({type:t,selectors:[["app-restore"]],decls:32,vars:5,consts:()=>{let r;r=$localize`Where do you want to restore from?`;let n;n=$localize`Restore ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let a;a=$localize` Restore ${"\uFFFD#9\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#9\uFFFD"}:CLOSE_TAG_SPK_ICON:`;let o;o=$localize`No backups founds`;let T;return T=$localize`Loading backups...`,[r,n,a,o,T,[1,"type-a"],["src","assets/images/backup.png","alt","","width","48px"],[1,"text"],["spk-button","",3,"routerLink"],["src","assets/images/restore.png","alt","","width","48px"],["src","assets/images/folder.png","alt","","width","48px"],[1,"loading-list"],[1,"indeterminate","primary"]]},template:function(n,a){n&1&&(s(0,"app-status-bar"),e(1,"section")(2,"h2"),c(3,0),i(),e(4,"spk-card",5),s(5,"img",6),e(6,"div",7)(7,"h3"),l(8,"Direct restore from backup files"),i(),e(9,"p"),l(10,"Point to your backup files and restore from there."),i()(),e(11,"button",8),l(12," Start "),e(13,"spk-icon"),l(14,"play-circle"),i()()(),e(15,"spk-card",5),s(16,"img",9),e(17,"div",7)(18,"h3"),l(19,"Restore from configuration"),i(),e(20,"p"),l(21,"Load destination from an exported job or a storage provider"),i()(),e(22,"button",8),l(23," Start "),e(24,"spk-icon"),l(25,"play-circle"),i()()(),e(26,"spk-divider"),l(27,"Or existing"),i(),m(28,Q,2,1)(29,U,5,0),M(30,28,W,null,29),i()),n&2&&(p(11),u("routerLink",g(3,j)),p(11),u("routerLink",g(4,K)),p(8),P(!a.backupsLoading()))},dependencies:[z,k,f,G,R,w,E],styles:["[_nghost-%COMP%]{display:block}h2[_ngcontent-%COMP%]{font:var(--title-30);text-align:center;padding:2rem}section[_ngcontent-%COMP%]{max-width:43.75rem;margin:0 auto;padding:2rem 1rem;display:flex;flex-direction:column;gap:1rem}spk-divider[_ngcontent-%COMP%]{color:var(--base-level-60)}spk-card[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem;--card-padding: 2rem}spk-card[_ngcontent-%COMP%] .text[_ngcontent-%COMP%]{flex:1 0;display:flex;flex-direction:column;gap:.25rem}"],changeDetection:0})};export{C as default};
1
+ import{a as z}from"./chunk-IA2ZYSD7.js";import"./chunk-FEJAAP54.js";import{a as X}from"./chunk-2AA7RP36.js";import"./chunk-RHW5QVAY.js";import"./chunk-O2YN63YI.js";import"./chunk-T2OUHRUV.js";import"./chunk-FSGJ5KIH.js";import"./chunk-I3C2AEHI.js";import{e as E}from"./chunk-QVIZK4WW.js";import"./chunk-WMTA6PZM.js";import{a as R,g as f,h as k,k as G,p as w}from"./chunk-WX7L7V6J.js";import{b as L}from"./chunk-PTDSOPNK.js";import"./chunk-MZ473NLM.js";import"./chunk-DE4NDI5F.js";import"./chunk-CKPICCFH.js";import"./chunk-PFYOWXZZ.js";import{$b as l,Ab as b,Gb as h,Hb as y,Ib as c,Jb as A,Kb as I,Nb as S,Qa as p,Y as d,ab as O,cc as B,fb as m,kb as M,lb as P,lc as g,mc as v,nb as u,sb as F,tb as N,ub as x,vb as $,wb as e,xb as i,yb as s,zb as D}from"./chunk-W2F756OF.js";import"./chunk-7CGTOI24.js";var W=()=>[k,f,R,E],j=()=>["/restore-from-files"],K=()=>["/restore/from-config"],q=t=>["/restore",t];function V(t,r){if(t&1&&(e(0,"spk-card",5),s(1,"img",10),e(2,"div",7)(3,"h3"),c(4,1),i(),e(5,"p"),l(6),i()(),e(7,"button",8),h(8,2),s(9,"spk-icon"),y(),i()()),t&2){let n,a,o=r.$implicit;p(4),A((n=o.Backup==null?null:o.Backup.Name)!==null&&n!==void 0?n:"Backup name missing"),I(4),p(2),B(" ",(a=o.Backup==null||o.Backup.Metadata==null?null:o.Backup.Metadata.SourceSizeString)!==null&&a!==void 0?a:"-"," / ",(a=o.Backup==null||o.Backup.Metadata==null?null:o.Backup.Metadata.BackupListCount)!==null&&a!==void 0?a:"-"," "),p(),u("routerLink",v(4,q,o.Backup==null?null:o.Backup.ID))}}function H(t,r){if(t&1&&x(0,V,10,6,"spk-card",5,N),t&2){let n=S(2);$(n.backups())}}function J(t,r){t&1&&(D(0),c(1,3),b())}function Q(t,r){if(t&1&&m(0,H,2,0)(1,J,2,0,"ng-container"),t&2){let n=S();F(n.backups().length?0:1)}}function U(t,r){t&1&&(e(0,"div",11),s(1,"spk-progress-bar",12),e(2,"div",7)(3,"h3"),c(4,4),i()()())}var C=class t{#e=d(X);#t=d(L);backups=this.#e.backups;backupsLoading=this.#e.backupsLoading;ngOnInit(){this.#e.getBackups(!0)}restoreNow(r){this.#t.postApiV1BackupByIdRestore({id:r.Backup?.ID,requestBody:{}})}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=O({type:t,selectors:[["app-restore"]],decls:32,vars:5,consts:()=>{let r;r=$localize`Where do you want to restore from?`;let n;n=$localize`Restore ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let a;a=$localize` Restore ${"\uFFFD#9\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#9\uFFFD"}:CLOSE_TAG_SPK_ICON:`;let o;o=$localize`No backups founds`;let T;return T=$localize`Loading backups...`,[r,n,a,o,T,[1,"type-a"],["src","assets/images/backup.png","alt","","width","48px"],[1,"text"],["spk-button","",3,"routerLink"],["src","assets/images/restore.png","alt","","width","48px"],["src","assets/images/folder.png","alt","","width","48px"],[1,"loading-list"],[1,"indeterminate","primary"]]},template:function(n,a){n&1&&(s(0,"app-status-bar"),e(1,"section")(2,"h2"),c(3,0),i(),e(4,"spk-card",5),s(5,"img",6),e(6,"div",7)(7,"h3"),l(8,"Direct restore from backup files"),i(),e(9,"p"),l(10,"Point to your backup files and restore from there."),i()(),e(11,"button",8),l(12," Start "),e(13,"spk-icon"),l(14,"play-circle"),i()()(),e(15,"spk-card",5),s(16,"img",9),e(17,"div",7)(18,"h3"),l(19,"Restore from configuration"),i(),e(20,"p"),l(21,"Load destination from an exported job or a storage provider"),i()(),e(22,"button",8),l(23," Start "),e(24,"spk-icon"),l(25,"play-circle"),i()()(),e(26,"spk-divider"),l(27,"Or existing"),i(),m(28,Q,2,1)(29,U,5,0),M(30,28,W,null,29),i()),n&2&&(p(11),u("routerLink",g(3,j)),p(11),u("routerLink",g(4,K)),p(8),P(!a.backupsLoading()))},dependencies:[z,k,f,G,R,w,E],styles:["[_nghost-%COMP%]{display:block}h2[_ngcontent-%COMP%]{font:var(--title-30);text-align:center;padding:2rem}section[_ngcontent-%COMP%]{max-width:43.75rem;margin:0 auto;padding:2rem 1rem;display:flex;flex-direction:column;gap:1rem}spk-divider[_ngcontent-%COMP%]{color:var(--base-level-60)}spk-card[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem;--card-padding: 2rem}spk-card[_ngcontent-%COMP%] .text[_ngcontent-%COMP%]{flex:1 0;display:flex;flex-direction:column;gap:.25rem}"],changeDetection:0})};export{C as default};
@@ -0,0 +1 @@
1
+ import{a as Q}from"./chunk-DAPUSIR2.js";import{a as Ge}from"./chunk-VN7JM6M3.js";import{a as oe}from"./chunk-HTNYQE2B.js";import{a as J}from"./chunk-SAVY3OEX.js";import{a as te}from"./chunk-7L42EO7J.js";import{b as De,c as y,e as L,f as $,h as Ae,i as b,k as ve,n as D,q as A,r as v,s as we,t as w}from"./chunk-T2OUHRUV.js";import{b as R,d as N}from"./chunk-QVIZK4WW.js";import{a as k,e as ke,g as M,l as Me,p as ye,q as Le,t as $e,z as be}from"./chunk-WX7L7V6J.js";import{b as I}from"./chunk-PTDSOPNK.js";import{j as H}from"./chunk-CKPICCFH.js";import{$b as j,Ab as U,B as Fe,Bc as q,Cb as B,E as ee,F as T,Gb as u,Hb as F,Ib as E,J as me,Jb as Te,Kb as Ee,Mb as O,N as Se,Nb as x,O as X,Qa as m,S as de,Y as p,ab as h,cc as Oe,da as f,ea as C,ec as fe,fb as z,fc as Ce,gc as Re,i as _e,kc as Ne,lc as Pe,nb as S,o as ce,pb as ge,pc as he,rc as Ie,sb as Y,ua as _,wb as r,x as Z,xb as l,y as ue,yb as c,zb as K}from"./chunk-W2F756OF.js";var Be=new v,We=()=>Be.group({passphrase:Be.control("")}),ie=class a{#t=p(I);#e=p(P);#o=p(N);#n=p(R);encryptionForm=this.#e.encryptionForm;creatingTemporaryBackup=_(!1);next(){let i=this.#e.destinationTargetUrl();if(!i)throw new Error("No target URL");this.creatingTemporaryBackup.set(!0);let e=this.encryptionForm.value?.passphrase??null,t=[{Name:"--no-encryption",Value:"true"}];e&&(t=[{Name:"--passphrase",Value:e}]),this.#t.postApiV1Backups({requestBody:{Backup:{TargetURL:i,Settings:t}},temporary:!0}).pipe(T(()=>this.creatingTemporaryBackup.set(!1))).subscribe({next:o=>{let n=o.ID;this.#o.navigate([`/restore-draft/${n}`])},error:o=>{console.error(o)}})}back(){this.#e.isFileRestore()?this.#o.navigate(["encryption"],{relativeTo:this.#n.parent}):this.#e.exit()}static \u0275fac=function(e){return new(e||a)};static \u0275cmp=h({type:a,selectors:[["app-restore-encryption"]],decls:12,vars:1,consts:()=>{let i;i=$localize`Enter backup passphrase if defined.`;let e;e=$localize`Password`;let t;t=$localize`${"\uFFFD#8\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#8\uFFFD"}:CLOSE_TAG_SPK_ICON: Back `;let o;return o=$localize`${"\uFFFD#11\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#11\uFFFD"}:CLOSE_TAG_SPK_ICON: Continue `,[e,t,o,[3,"submit","formGroup"],["for","password"],["type","password","id","password","placeholder",i,"formControlName","passphrase"],[1,"form-actions"],["spk-button","","type","button",3,"click"],["spk-button","","type","submit",1,"raised","primary"]]},template:function(e,t){e&1&&(r(0,"form",3),O("submit",function(){return t.next()}),r(1,"spk-form-field")(2,"label",4),E(3,0),l(),c(4,"input",5),l(),r(5,"div",6)(6,"button",7),O("click",function(){return t.back()}),u(7,1),c(8,"spk-icon"),F(),l(),r(9,"button",8),u(10,2),c(11,"spk-icon"),F(),l()()()),e&2&&S("formGroup",t.encryptionForm)},dependencies:[w,b,y,L,$,D,A,Me,k,M],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 Ye=()=>({standalone:!0});function Ke(a,i){a&1&&c(0,"spk-progress-bar",7)}function Ue(a,i){if(a&1&&(r(0,"div",14),j(1),he(2,"date"),l()),a&2){let e=i.$implicit;m(),Oe("",e.Version,": ",Ie(2,2,e.Time,"medium"),"")}}function je(a,i){a&1&&c(0,"spk-progress-bar",7)}function qe(a,i){if(a&1&&(r(0,"app-file-tree",13)(1,"label",15),E(2,4),l(),c(3,"input",16),l()),a&2){let e=x(2);S("rootPaths",e.rootPaths())("backupSettings",e.backupSettings())("multiSelect",!0)("showFiles",!0)}}function He(a,i){if(a&1){let e=B();r(0,"spk-select",11),O("cleared",function(){f(e);let o=x();return C(o.abortLoading())}),r(1,"input",12),Re("ngModelChange",function(o){f(e);let n=x();return Ce(n.selectOption,o)||(n.selectOption=o),C(o)}),l(),z(2,Ue,3,5,"ng-template"),l(),z(3,je,1,0,"spk-progress-bar",7)(4,qe,4,4,"app-file-tree",13)}if(a&2){let e=x();S("options",e.versionOptions())("isClearable",!1),m(),fe("ngModel",e.selectOption),S("ngModelOptions",Pe(6,Ye)),m(2),Y(e.isDraft()||e.isRepairing()||e.versionOptionsLoading()||e.loadingRootPath()?3:-1),m(),Y(e.showFileTree()?4:-1)}}var se=new v,Xe=()=>se.group({filesToRestore:se.control(""),passphrase:se.control(null)}),re=class a{#t=p(I);#e=p(P);#o=p(J);#n=p(N);#i=p(R);#s=p(H);#r=null;#a=null;selectFilesForm=this.#e.selectFilesForm;selectFilesFormSignal=this.#e.selectFilesFormSignal;selectOption=this.#e.selectOption;backupId=this.#e.backupId;versionOptionsLoading=this.#e.versionOptionsLoading;versionOptions=this.#e.versionOptions;isDraft=this.#e.isDraft;isFileRestore=this.#e.isFileRestore;showFileTree=_(!1);backupSettings=_(null);rootPaths=_([]);loadingRootPath=_(!1);isRepairing=_(!1);loadingEffect=q(()=>{if(this.versionOptionsLoading())return;let e=this.versionOptions();if(e&&e?.length>0){let t=e[0].Version;this.selectOption.set(t.toString())}});backupSettingsEffect=q(()=>{let i=this.backupId(),e=this.isRepairing(),t=this.selectOption();if(!t||!i)return;let n=this.versionOptions()?.find(d=>d.Version===parseInt(t))?.Time??null;if(!n||e)return;let s={id:i+"",time:n};this.backupSettings.set(s),this.getRootPath(s)});repairEffect=q(()=>{let i=this.selectOption(),e=this.versionOptions();if(i){let t=e.find(s=>s.Version===parseInt(i));if(t===void 0)return;let o=this.backupId(),n=`${o}+${t.Time}`;if(this.#a===n)return;this.#a=n,this.isRepairing.set(!0),this.#t.postApiV1BackupByIdRepairupdate({id:o,requestBody:{only_paths:!0,time:t.Time}}).pipe(X(this.abortLoading$),T(()=>{this.#a=null})).subscribe(s=>{let d=s.ID;var G=window.setInterval(()=>{this.#t.getApiV1TaskByTaskid({taskid:d}).subscribe(W=>{W.Status==="Completed"&&(clearInterval(G),this.isRepairing.set(!1))})},1e3)})}});getRootPath(i){let e={id:i.id+"",time:i.time,prefixOnly:!0,folderContents:!1},t=i.id+"";this.isRepairing()||this.#r===t||(this.#r=t,this.loadingRootPath.set(!0),this.showFileTree.set(!1),this.#o.hasV2ListOperations()?this.#t.postApiV2BackupListFolder({requestBody:{BackupId:i.id,Time:i.time,Paths:null,PageSize:0,Page:0}}).pipe(X(this.abortLoading$),T(()=>{this.showFileTree.set(!0),this.loadingRootPath.set(!1),this.#r=null})).subscribe({next:o=>{let n=(o.Data??[]).map(s=>s.Path??"");n.length>0?this.rootPaths.set(n):this.rootPaths.set(["/"])}}):this.#t.getApiV1BackupByIdFiles(e).pipe(X(this.abortLoading$),T(()=>{console.log("hi"),this.showFileTree.set(!0),this.loadingRootPath.set(!1)})).subscribe({next:o=>{let n=o.Files.map(s=>s.Path??"");n.length>0?this.rootPaths.set(n):this.rootPaths.set(["/"])}}))}abortLoading$=new _e;abortLoading(){this.showFileTree.set(!1),this.loadingRootPath.set(!1),this.abortLoading$.next(!0)}displayFn(){let i=this.versionOptions();return e=>{if(!e)return"";let t=i?.find(o=>typeof o.Version=="number"&&o.Version.toString()===e);return t?`${t.Version}: ${this.#s.transform(t.Time,"medium")}`:""}}next(){this.#n.navigate(["options"],{relativeTo:this.#i.parent})}back(){this.#e.isFileRestore()?this.#n.navigate(["encryption"],{relativeTo:this.#i.parent}):this.#e.exit()}static \u0275fac=function(e){return new(e||a)};static \u0275cmp=h({type:a,selectors:[["app-select-files"]],features:[Ne([H])],decls:13,vars:3,consts:()=>{let i;i=$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 t;t=$localize`${"\uFFFD#12\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#12\uFFFD"}:CLOSE_TAG_SPK_ICON: Continue `;let o;o=$localize`Select an option...`;let n;return n=$localize`Path`,[["formRef",""],i,e,t,n,[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"],["value","Version",3,"cleared","options","isClearable"],["type","text","placeholder",o,3,"ngModelChange","ngModel","ngModelOptions"],[3,"rootPaths","backupSettings","multiSelect","showFiles"],[1,"custom-option"],["for","path"],["type","text","id","path","formControlName","filesToRestore"]]},template:function(e,t){if(e&1){let o=B();r(0,"form",5,0),O("submit",function(){return f(o),C(t.next())}),r(2,"h3",6),E(3,1),l(),z(4,Ke,1,0,"spk-progress-bar",7)(5,He,5,7),r(6,"div",8)(7,"button",9),O("click",function(){return f(o),C(t.back())}),u(8,2),c(9,"spk-icon"),F(),l(),r(10,"button",10),u(11,3),c(12,"spk-icon"),F(),l()()()}e&2&&(S("formGroup",t.selectFilesForm),m(4),Y(t.versionOptionsLoading()?4:5),m(5),Te(t.isFileRestore()?"Back":"Exit"),Ee(8))},dependencies:[we,b,y,L,$,Ae,w,D,A,H,Q,M,k,$e,ye],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 P=class a{#t=p(N);#e=p(R);#o=p(J);#n=p(ke);#i=p(I);backupId=_(null);backup=_(null);destinationTargetUrl=_(null);selectFilesForm=Xe();optionsForm=ze();encryptionForm=We();optionsFormSignal=oe(this.optionsForm.valueChanges);selectFilesFormSignal=oe(this.selectFilesForm.valueChanges);selectOption=_(null);versionOptionsLoading=_(!1);versionOptions=_([]);isSubmitting=_(!1);isDraft=_(!1);isFileRestore=_(!1);isFullWidthPage=_(!1);init(i,e=!1,t=!1){this.backupId.set(i),this.isFileRestore.set(e),this.isDraft.set(t),e&&this.#t.navigate(["/restore-from-files/destination"]),e||this.getBackup(!0)}updateTargetUrl(i){this.destinationTargetUrl.set(i)}submit(){this.isSubmitting.set(!0);let i=this.backupId(),e=this.optionsForm.value,t=this.selectFilesForm.value,o=this.selectOption(),n=this.versionOptions()?.find(s=>s.Version===(o&&parseInt(o)));this.#i.postApiV1BackupByIdRestore({id:i??"",requestBody:{paths:t.filesToRestore?.split("\0").map(s=>`${s}*`)??[],passphrase:t.passphrase??null,time:n?.Time,restore_path:e.restoreFromPath,overwrite:e.handleExisting==="overwrite",permissions:e.permissions,skip_metadata:!0}}).pipe(T(()=>this.isSubmitting.set(!1))).subscribe({next:()=>{this.#t.navigate(["./progress"],{relativeTo:this.#e})},error:s=>{console.error("restore error",s)}})}exit(){this.#n.open(te,{data:{title:$localize`Confirm exit?`,message:$localize`Are you sure you want to exit?`,confirmText:$localize`Yes`,cancelText:$localize`Cancel`},closed:i=>{i&&(this.#s(),this.#t.navigate(["/"]))}})}getVersionOptions(){this.versionOptions()}loadFilesetsWithRetryv2(i,e=2){return this.#i.postApiV2BackupListFilesets({requestBody:{BackupId:i}}).pipe(Fe(t=>{let o=t?.error?.body?.StatusCode==="EncryptedStorageNoPassphrase",n=t?.error?.body?.StatusCode==="FolderMissing",s=t?.error?.body?.StatusCode==="EmptyRemoteFolder";return o||n||s||e===0?ce(()=>t):ue(1e3).pipe(Se(()=>this.loadFilesetsWithRetryv2(i,e-1)))}))}getBackup(i=!1){let e=this.backupId();this.versionOptionsLoading.set(!0),this.#o.hasV2ListOperations()?Z([this.#i.getApiV1BackupById({id:e}),this.loadFilesetsWithRetryv2(e)]).pipe(ee(1),T(()=>this.versionOptionsLoading.set(!1))).subscribe({next:([t,o])=>{if(o.Error)throw new Error(o.Error);this.versionOptions.set((o.Data??[]).map(n=>({Version:n.Version??-1,IsFullBackup:n.IsFullBackup??void 0,Time:n.Time??"<missing>",FileCount:n.FileCount??void 0,FileSizes:n.FileSizes??void 0}))),this.backup.set(t)},error:t=>{let o=t?.error?.body?.StatusCode==="EncryptedStorageNoPassphrase",n=t?.error?.body?.StatusCode==="FolderMissing",s=t?.error?.body?.StatusCode==="EmptyRemoteFolder",d=$localize`An error occurred while loading the backup filesets: ${t.message}`;o&&(d=$localize`The remote storage is encrypted. Please enter the passphrase to access the backup.`),n&&(d=$localize`The backup storage folder was not found.`),s&&(d=$localize`The backup storage folder does not contain any filesets.`),this.#n.open(te,{data:{title:$localize`Failed to load backup filesets`,message:d,confirmText:$localize`OK`,cancelText:void 0},closed:G=>{this.#t.navigate([o?"/restore-from-files/encryption":"/restore-from-files/destination"])}})}}):Z([this.#i.getApiV1BackupById({id:e}),this.#i.getApiV1BackupByIdFilesets({id:e}).pipe(me(3))]).pipe(ee(1),T(()=>this.versionOptionsLoading.set(!1))).subscribe({next:([t,o])=>{this.versionOptions.set(o.map(n=>({Version:n.Version??-1,IsFullBackup:(n.IsFullBackup??1)==1,Time:n.Time??"<missing>",FileCount:n.FileCount??void 0,FileSizes:n.FileSizes??void 0}))),this.backup.set(t)}})}#s(){this.selectFilesForm.reset(),this.optionsForm.reset()}static \u0275fac=function(e){return new(e||a)};static \u0275prov=de({token:a,factory:a.\u0275fac,providedIn:"root"})};var V=new v,ze=()=>V.group({restoreFrom:V.control("orignal"),restoreFromPath:V.control(""),handleExisting:V.control("overwrite"),permissions:V.control(!1)}),ae=class a{#t=p(P);#e=p(N);#o=p(R);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||a)};static \u0275cmp=h({type:a,selectors:[["app-advanced-options-settings"]],decls:39,vars:6,consts:()=>{let i;i=$localize`Restore options`;let e;e=$localize`Where do you want to restore files to?`;let t;t=$localize` Original location ${"\uFFFD#9\uFFFD\uFFFD/#9\uFFFD"}:TAG_INPUT:`;let o;o=$localize` Pick location ${"\uFFFD#12\uFFFD\uFFFD/#12\uFFFD"}:TAG_INPUT:`;let n;n=$localize`How do you want to handle existing files?`;let s;s=$localize` Overwrite ${"\uFFFD#22\uFFFD\uFFFD/#22\uFFFD"}:TAG_INPUT:`;let d;d=$localize` Save different versions with timestamp in file name ${"\uFFFD#25\uFFFD\uFFFD/#25\uFFFD"}:TAG_INPUT:`;let G;G=$localize`Permissions`;let W;W=$localize` Restore read/write permissions ${"\uFFFD#31\uFFFD\uFFFD/#31\uFFFD"}:TAG_INPUT:`;let le;le=$localize`${"\uFFFD#35\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#35\uFFFD"}:CLOSE_TAG_SPK_ICON: Go back `;let pe;return pe=$localize`${"\uFFFD#38\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#38\uFFFD"}:CLOSE_TAG_SPK_ICON: Submit `,[["formRef",""],i,e,t,o,n,s,d,G,W,le,pe,[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,t){if(e&1){let o=B();r(0,"form",12,0),O("submit",function(){return f(o),C(t.submit())}),r(2,"h3",13),E(3,1),l(),r(4,"app-toggle-card",14),K(5,15),E(6,2),U(),r(7,"spk-radio",16),u(8,3),c(9,"input",17),F(),l(),r(10,"spk-radio",16),u(11,4),c(12,"input",18),F(),l(),r(13,"app-file-tree",19)(14,"label",20),j(15,"Path"),l(),c(16,"input",21),l()(),r(17,"app-toggle-card",14),K(18,15),E(19,5),U(),r(20,"spk-radio",16),u(21,6),c(22,"input",22),F(),l(),r(23,"spk-radio",16),u(24,7),c(25,"input",23),F(),l()(),r(26,"app-toggle-card"),K(27,15),E(28,8),U(),r(29,"spk-toggle",24),u(30,9),c(31,"input",25),F(),l()(),r(32,"div",26)(33,"button",27),O("click",function(){return f(o),C(t.goBack())}),u(34,10),c(35,"spk-icon"),F(),l(),r(36,"button",28),u(37,11),c(38,"spk-icon"),F(),l()()()}if(e&2){let o;S("formGroup",t.optionsForm),m(4),S("disallowToggle",!0),m(9),S("disabled",((o=t.optionsFormSignal())==null?null:o.restoreFrom)!=="pickLocation"),m(4),S("disallowToggle",!0),m(19),ge("loader",t.isSubmitting())}},dependencies:[w,b,y,De,ve,L,$,D,A,Ge,Q,be,Le,M,k],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{ze as a,ae as b,We as c,ie as d,Xe as e,re as f,P as g};
package/index.html CHANGED
@@ -36,5 +36,5 @@
36
36
  <body>
37
37
  <app-root></app-root>
38
38
  <div class="loading">Loading ...</div>
39
- <link rel="modulepreload" href="chunk-IXM6PMZU.js"><link rel="modulepreload" href="chunk-SAVY3OEX.js"><link rel="modulepreload" href="chunk-YWCTOOED.js"><link rel="modulepreload" href="chunk-TPWSQH24.js"><link rel="modulepreload" href="chunk-SZ64OOBT.js"><link rel="modulepreload" href="chunk-VOGYVLLM.js"><link rel="modulepreload" href="chunk-RHW5QVAY.js"><link rel="modulepreload" href="chunk-O2YN63YI.js"><link rel="modulepreload" href="chunk-FSGJ5KIH.js"><link rel="modulepreload" href="chunk-I3C2AEHI.js"><script src="polyfills-6QHLTIIN.js" type="module"></script><script src="main-HT3PXURE.js" type="module"></script></body>
39
+ <link rel="modulepreload" href="chunk-IXM6PMZU.js"><link rel="modulepreload" href="chunk-SAVY3OEX.js"><link rel="modulepreload" href="chunk-2OPFT5E4.js"><link rel="modulepreload" href="chunk-TPWSQH24.js"><link rel="modulepreload" href="chunk-FEJAAP54.js"><link rel="modulepreload" href="chunk-2AA7RP36.js"><link rel="modulepreload" href="chunk-RHW5QVAY.js"><link rel="modulepreload" href="chunk-O2YN63YI.js"><link rel="modulepreload" href="chunk-FSGJ5KIH.js"><link rel="modulepreload" href="chunk-I3C2AEHI.js"><script src="polyfills-6QHLTIIN.js" type="module"></script><script src="main-5B5JXI35.js" type="module"></script></body>
40
40
  </html>
@@ -1 +1 @@
1
- import{b as ye,c as be}from"./chunk-IXM6PMZU.js";import{a as L}from"./chunk-SAVY3OEX.js";import{a as ue}from"./chunk-YWCTOOED.js";import{a as ge}from"./chunk-TPWSQH24.js";import{a as I}from"./chunk-SZ64OOBT.js";import"./chunk-VOGYVLLM.js";import{a as x}from"./chunk-RHW5QVAY.js";import{a as le}from"./chunk-O2YN63YI.js";import{a as v,b as de,c as E}from"./chunk-FSGJ5KIH.js";import{a as C}from"./chunk-I3C2AEHI.js";import{c as se,d as ie,g as ae,h as pe}from"./chunk-QVIZK4WW.js";import{a as re}from"./chunk-WMTA6PZM.js";import{c as me}from"./chunk-WX7L7V6J.js";import{d as ce}from"./chunk-PTDSOPNK.js";import{a as Z,b as ee,d as te,e as oe,f as ne}from"./chunk-MZ473NLM.js";import{a as fe}from"./chunk-DE4NDI5F.js";import{j as Q,l as Y}from"./chunk-CKPICCFH.js";import{b as he}from"./chunk-PFYOWXZZ.js";import{A as N,B as F,Bc as X,F as w,L as G,N as T,P as J,S as k,V as B,Y as s,ab as K,f as W,i as j,ja as $,n as D,o as U,r as R,ua as d,uc as z,vc as q,yb as _}from"./chunk-W2F756OF.js";import"./chunk-7CGTOI24.js";var M=class t{#o=s(C);#s=s(v);ngOnInit(){this.#s.fetchConfig(),this.#o.clearAllNotCurrentVersion()}static \u0275fac=function(o){return new(o||t)};static \u0275cmp=K({type:t,selectors:[["app-root"]],decls:1,vars:0,template:function(o,n){o&1&&_(0,"router-outlet")},dependencies:[se],encapsulation:2})};var ve={production:!0,baseUrl:"/api",machineServerUrl:"${WS_URL}",defaultTimeout:3e4};var h=new B("ENVIRONMENT");var A=class t{#o=s(ce);isLoaded=d(!1);webmodules=d(null);preload(e=!1){let o=this.#o.getApiV1Webmodules().pipe(J(n=>this.webmodules.set(n)),w(()=>this.isLoaded.set(!0)));if(e)return o;o.subscribe()}static \u0275fac=function(o){return new(o||t)};static \u0275prov=k({token:t,factory:t.\u0275fac,providedIn:"root"})};var Ie=()=>{let t=s(E);return t.token()?!0:t.checkProxyAuthed().pipe(T(e=>e?D(!0):t.refreshToken().pipe(R(()=>!0))))},Me=()=>{let t=s(v),e=s(I),o=s($),n=t.relayIsEnabled()?"longpoll":"websocket",i=[o.get(L).preload(!0),o.get(L).preloadFilterGroups(!0),o.get(A).preload(!0)];return t.configLoaded===null?N(i).pipe(R(()=>n)):t.configLoaded?.pipe(T(()=>N(i)))},Se=[{path:"",children:[{path:"login",canActivate:[],loadComponent:()=>import("./chunk-W2VC37XO.js")},{path:"logout",loadComponent:()=>import("./chunk-JQPXZWKR.js")},{path:"",canActivate:[Ie],children:[{path:"",canActivate:[Me],loadComponent:()=>import("./chunk-BEXTTKFK.js"),children:[{path:"",loadComponent:()=>import("./chunk-GOTRUTIB.js")},{path:"add-backup",loadComponent:()=>import("./chunk-P5KOELKA.js")},{path:"backup/:id/export",loadComponent:()=>import("./chunk-6U42RKWI.js")},{path:"backup/import",loadComponent:()=>import("./chunk-RVCYNHAQ.js")},{path:"backup-draft/:id",loadComponent:()=>import("./chunk-YF5K7PNR.js"),loadChildren:()=>import("./chunk-2HUZWRPM.js")},{path:"backup/:id",loadComponent:()=>import("./chunk-YF5K7PNR.js"),loadChildren:()=>import("./chunk-2HUZWRPM.js")},{path:"backup/:id/log",loadComponent:()=>import("./chunk-5LODOOQE.js")},{path:"backup/:id/database",loadComponent:()=>import("./chunk-NF5EQK5W.js")},{path:"backup/:id/commandline",loadComponent:()=>import("./chunk-WSFEYRKT.js")},{path:"backup/:id/commandline/:runId",loadComponent:()=>import("./chunk-HN4MKGHV.js")},{path:"restore",children:[{path:"",loadComponent:()=>import("./chunk-L4CVN3UF.js")},{path:"from-config",loadComponent:()=>import("./chunk-JAYNAMCB.js")}]},{path:"restore-from-files",loadComponent:()=>import("./chunk-NTVLL6TO.js"),loadChildren:()=>import("./chunk-3MVGDMRL.js")},{path:"restore-draft/:id",loadComponent:()=>import("./chunk-NTVLL6TO.js"),loadChildren:()=>import("./chunk-3MVGDMRL.js")},{path:"restore/:id",loadComponent:()=>import("./chunk-NTVLL6TO.js"),loadChildren:()=>import("./chunk-3MVGDMRL.js")},{path:"settings",loadComponent:()=>import("./chunk-E6VGAA7Q.js")},{path:"about",loadComponent:()=>import("./chunk-2WMFHNHQ.js"),children:[{path:"",redirectTo:"general",pathMatch:"full"},{path:"general",loadComponent:()=>import("./chunk-JCXYUHPV.js")},{path:"changelog",loadComponent:()=>import("./chunk-47X3OGYT.js")},{path:"libraries",loadComponent:()=>import("./chunk-YDRXW35Y.js")},{path:"system-info",loadComponent:()=>import("./chunk-QWIDEDE7.js")},{path:"logs",loadChildren:()=>import("./chunk-WHVFYB7T.js")},{path:"crashlogs",loadComponent:()=>import("./chunk-5VR5J6BY.js")}]}]}]}]}];var P=null,Re=(t,e)=>{let o=s(E),n=s(ie),i=s(C),l=s(h),r=i.getItem("locale"),u=s(me),a=ye(r),p=t.url==="/api/v1/auth/login",m=t.url==="/api/v1/auth/refresh",S=t.url==="/api/v1/progressstate",g=t.url==="/api/v1/remoteoperation/test",y=t.url.startsWith("/api/v2/"),b=o.token(),H=t,V=t.headers.has("custom-proxy-check")||b===de;if(b&&t.url.startsWith(l.baseUrl)&&!V){let c=t.headers.set("Authorization",`Bearer ${b}`);r&&r!=="en-US"&&(c=c.set("X-Ui-Language",a)),H=t.clone({headers:c})}return e(H).pipe(R(c=>{if(c.type===4&&c.status===200&&y){let f=c.body;if(f?.Success===!1)throw{status:200,message:f?.Error??"Unknown error",error:{Error:f?.Error??"Unknown error"},body:f}}return c}),F(c=>{let f=c.error?.Error||`Error Code: ${c.status}, Message: ${c.message}`;return!V&&(S&&c.status===404||g||u.error(f),m&&c.status===401&&(o.logout(),n.navigate(["/logout"])),!p&&!m&&c.status===401)?(P??=o.refreshToken().pipe(G()),P.pipe(T(()=>e(t.clone({headers:t.headers.set("Authorization",`Bearer ${o.token()}`)}))),w(()=>P=null))):U(()=>({error:c,message:f}))}))};var Ae="1.0.0",Te=`portal-proxy-client-${x()}`,Oe=1,O=class t{#o=1e3;#s=s(h);#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=X(()=>{let e=this.#i(),o=this.#l(),n=this.#a();if(!n||!e||!o||o<this.#o){this.#c&&window.clearInterval(this.#c);return}this.#c=window.setInterval(()=>{this.connectToMachineServer(n)},o)});utf8Atob(e){let o=Uint8Array.from(atob(e),i=>i.charCodeAt(0)),n=this.#m.decode(o);return n?JSON.parse(n):null}connectToMachineServer(e,o){let n=o?.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=l=>{let r=JSON.parse(l.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:Ae,protocolVersion:Oe},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,o,n){let i={from:Te,to:e.from,type:o,messageId:e.messageId,payload:JSON.stringify(n)};return JSON.stringify(i)}sendCommand(e,o,n,i,l,r,u=5e3){return(this.wsState()==="disconnected"||this.wsState()==="error")&&this.connectToMachineServer(e),new Promise((a,p)=>{let m=x(),g={from:Te,to:o,type:"command",messageId:m,payload:JSON.stringify({method:n,path:i,body:l,headers:r})},y={resolve:a,reject:p,timer:window.setTimeout(()=>{let b=this.#r[m];b&&(delete this.#r[m],b.reject("Timeout"))},u)};this.#r[m]=y,this.#n()?this.activateCommand(g):this.#p.push(g)})}activateCommand(e){this.#e?.send(JSON.stringify(e))}static \u0275fac=function(o){return new(o||t)};static \u0275prov=k({token:t,factory:t.\u0275fac,providedIn:"root"})};function Ne(t){if(typeof t!="string")return null;let o=new TextEncoder().encode(t);return window.btoa(String.fromCharCode(...o))}function we(t,e,o){let n=t.relayconfigState.config();if(n===null)return o(e);let i=Ne(e.body),l={};e.headers.keys().forEach(p=>{l[p]=e.headers.get(p)??""});let r=e.headers.get("timeout"),u=r!==null?parseInt(r):t.defaultTimeout;e.url.startsWith("/api/v1/serverstate")&&e.url.includes("longpoll=true")&&(u=1e3*99);let a=t.relayWebsocket.sendCommand(n.accessToken,n.clientId,e.method,e.url,i,l,u);return new W(p=>{a.then(m=>{let S=new Z;l!=null&&Object.keys(l).forEach(y=>{S.set(y,l[y])});let g=new ee({body:m.body,status:m.code,statusText:"OK",headers:S});p.next(g),p.complete()})})}var ke=(t,e)=>{let o={relayconfigState:s(v),defaultTimeout:s(h).defaultTimeout,relayWebsocket:s(O)},n=o.relayconfigState.config();if(o.relayconfigState.configLoaded!==null&&n===null){let i=new j;return o.relayconfigState.configLoaded.subscribe(l=>{l&&we(o,t,e).subscribe(i)}),i}return we(o,t,e)};var Ee={providers:[z(),ae(Se,pe()),te(ne(),oe([ke,Re])),C,{provide:h,useValue:ve},{provide:q,useValue:be()},ue,I,he,Y,le,Q,fe,ge]};re(M,Ee);
1
+ import{b as ye,c as be}from"./chunk-IXM6PMZU.js";import{a as L}from"./chunk-SAVY3OEX.js";import{a as ue}from"./chunk-2OPFT5E4.js";import{a as ge}from"./chunk-TPWSQH24.js";import{a as I}from"./chunk-FEJAAP54.js";import"./chunk-2AA7RP36.js";import{a as x}from"./chunk-RHW5QVAY.js";import{a as le}from"./chunk-O2YN63YI.js";import{a as v,b as de,c as E}from"./chunk-FSGJ5KIH.js";import{a as C}from"./chunk-I3C2AEHI.js";import{c as se,d as ie,g as ae,h as pe}from"./chunk-QVIZK4WW.js";import{a as re}from"./chunk-WMTA6PZM.js";import{c as me}from"./chunk-WX7L7V6J.js";import{d as ce}from"./chunk-PTDSOPNK.js";import{a as Z,b as ee,d as te,e as oe,f as ne}from"./chunk-MZ473NLM.js";import{a as fe}from"./chunk-DE4NDI5F.js";import{j as Q,l as Y}from"./chunk-CKPICCFH.js";import{b as he}from"./chunk-PFYOWXZZ.js";import{A as N,B as F,Bc as X,F as w,L as G,N as T,P as J,S as k,V as B,Y as s,ab as K,f as W,i as j,ja as $,n as D,o as U,r as R,ua as d,uc as z,vc as q,yb as _}from"./chunk-W2F756OF.js";import"./chunk-7CGTOI24.js";var M=class t{#o=s(C);#s=s(v);ngOnInit(){this.#s.fetchConfig(),this.#o.clearAllNotCurrentVersion()}static \u0275fac=function(o){return new(o||t)};static \u0275cmp=K({type:t,selectors:[["app-root"]],decls:1,vars:0,template:function(o,n){o&1&&_(0,"router-outlet")},dependencies:[se],encapsulation:2})};var ve={production:!0,baseUrl:"/api",machineServerUrl:"${WS_URL}",defaultTimeout:3e4};var h=new B("ENVIRONMENT");var A=class t{#o=s(ce);isLoaded=d(!1);webmodules=d(null);preload(e=!1){let o=this.#o.getApiV1Webmodules().pipe(J(n=>this.webmodules.set(n)),w(()=>this.isLoaded.set(!0)));if(e)return o;o.subscribe()}static \u0275fac=function(o){return new(o||t)};static \u0275prov=k({token:t,factory:t.\u0275fac,providedIn:"root"})};var Ie=()=>{let t=s(E);return t.token()?!0:t.checkProxyAuthed().pipe(T(e=>e?D(!0):t.refreshToken().pipe(R(()=>!0))))},Me=()=>{let t=s(v),e=s(I),o=s($),n=t.relayIsEnabled()?"longpoll":"websocket",i=[o.get(L).preload(!0),o.get(L).preloadFilterGroups(!0),o.get(A).preload(!0)];return t.configLoaded===null?N(i).pipe(R(()=>n)):t.configLoaded?.pipe(T(()=>N(i)))},Se=[{path:"",children:[{path:"login",canActivate:[],loadComponent:()=>import("./chunk-W2VC37XO.js")},{path:"logout",loadComponent:()=>import("./chunk-JQPXZWKR.js")},{path:"",canActivate:[Ie],children:[{path:"",canActivate:[Me],loadComponent:()=>import("./chunk-6S3SP4UJ.js"),children:[{path:"",loadComponent:()=>import("./chunk-5ZRMELDO.js")},{path:"add-backup",loadComponent:()=>import("./chunk-436PKZSE.js")},{path:"backup/:id/export",loadComponent:()=>import("./chunk-UN45NEVN.js")},{path:"backup/import",loadComponent:()=>import("./chunk-5MW7LJ7A.js")},{path:"backup-draft/:id",loadComponent:()=>import("./chunk-7RBLV255.js"),loadChildren:()=>import("./chunk-M63ZRC6J.js")},{path:"backup/:id",loadComponent:()=>import("./chunk-7RBLV255.js"),loadChildren:()=>import("./chunk-M63ZRC6J.js")},{path:"backup/:id/log",loadComponent:()=>import("./chunk-3X4E4YMJ.js")},{path:"backup/:id/database",loadComponent:()=>import("./chunk-UKNGRIBK.js")},{path:"backup/:id/commandline",loadComponent:()=>import("./chunk-6V3OG3TZ.js")},{path:"backup/:id/commandline/:runId",loadComponent:()=>import("./chunk-MFDCQK6M.js")},{path:"restore",children:[{path:"",loadComponent:()=>import("./chunk-YC34F3JB.js")},{path:"from-config",loadComponent:()=>import("./chunk-JAYNAMCB.js")}]},{path:"restore-from-files",loadComponent:()=>import("./chunk-4EIKPTJL.js"),loadChildren:()=>import("./chunk-BRKXL7PY.js")},{path:"restore-draft/:id",loadComponent:()=>import("./chunk-4EIKPTJL.js"),loadChildren:()=>import("./chunk-BRKXL7PY.js")},{path:"restore/:id",loadComponent:()=>import("./chunk-4EIKPTJL.js"),loadChildren:()=>import("./chunk-BRKXL7PY.js")},{path:"settings",loadComponent:()=>import("./chunk-ENVS53DP.js")},{path:"about",loadComponent:()=>import("./chunk-2WMFHNHQ.js"),children:[{path:"",redirectTo:"general",pathMatch:"full"},{path:"general",loadComponent:()=>import("./chunk-JCXYUHPV.js")},{path:"changelog",loadComponent:()=>import("./chunk-47X3OGYT.js")},{path:"libraries",loadComponent:()=>import("./chunk-YDRXW35Y.js")},{path:"system-info",loadComponent:()=>import("./chunk-QWIDEDE7.js")},{path:"logs",loadChildren:()=>import("./chunk-WHVFYB7T.js")},{path:"crashlogs",loadComponent:()=>import("./chunk-5VR5J6BY.js")}]}]}]}]}];var P=null,Re=(t,e)=>{let o=s(E),n=s(ie),i=s(C),l=s(h),r=i.getItem("locale"),u=s(me),a=ye(r),p=t.url==="/api/v1/auth/login",m=t.url==="/api/v1/auth/refresh",S=t.url==="/api/v1/progressstate",g=t.url==="/api/v1/remoteoperation/test",y=t.url.startsWith("/api/v2/"),b=o.token(),H=t,V=t.headers.has("custom-proxy-check")||b===de;if(b&&t.url.startsWith(l.baseUrl)&&!V){let c=t.headers.set("Authorization",`Bearer ${b}`);r&&r!=="en-US"&&(c=c.set("X-Ui-Language",a)),H=t.clone({headers:c})}return e(H).pipe(R(c=>{if(c.type===4&&c.status===200&&y){let f=c.body;if(f?.Success===!1)throw{status:200,message:f?.Error??"Unknown error",error:{Error:f?.Error??"Unknown error"},body:f}}return c}),F(c=>{let f=c.error?.Error||`Error Code: ${c.status}, Message: ${c.message}`;return!V&&(S&&c.status===404||g||u.error(f),m&&c.status===401&&(o.logout(),n.navigate(["/logout"])),!p&&!m&&c.status===401)?(P??=o.refreshToken().pipe(G()),P.pipe(T(()=>e(t.clone({headers:t.headers.set("Authorization",`Bearer ${o.token()}`)}))),w(()=>P=null))):U(()=>({error:c,message:f}))}))};var Ae="1.0.0",Te=`portal-proxy-client-${x()}`,Oe=1,O=class t{#o=1e3;#s=s(h);#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=X(()=>{let e=this.#i(),o=this.#l(),n=this.#a();if(!n||!e||!o||o<this.#o){this.#c&&window.clearInterval(this.#c);return}this.#c=window.setInterval(()=>{this.connectToMachineServer(n)},o)});utf8Atob(e){let o=Uint8Array.from(atob(e),i=>i.charCodeAt(0)),n=this.#m.decode(o);return n?JSON.parse(n):null}connectToMachineServer(e,o){let n=o?.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=l=>{let r=JSON.parse(l.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:Ae,protocolVersion:Oe},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,o,n){let i={from:Te,to:e.from,type:o,messageId:e.messageId,payload:JSON.stringify(n)};return JSON.stringify(i)}sendCommand(e,o,n,i,l,r,u=5e3){return(this.wsState()==="disconnected"||this.wsState()==="error")&&this.connectToMachineServer(e),new Promise((a,p)=>{let m=x(),g={from:Te,to:o,type:"command",messageId:m,payload:JSON.stringify({method:n,path:i,body:l,headers:r})},y={resolve:a,reject:p,timer:window.setTimeout(()=>{let b=this.#r[m];b&&(delete this.#r[m],b.reject("Timeout"))},u)};this.#r[m]=y,this.#n()?this.activateCommand(g):this.#p.push(g)})}activateCommand(e){this.#e?.send(JSON.stringify(e))}static \u0275fac=function(o){return new(o||t)};static \u0275prov=k({token:t,factory:t.\u0275fac,providedIn:"root"})};function Ne(t){if(typeof t!="string")return null;let o=new TextEncoder().encode(t);return window.btoa(String.fromCharCode(...o))}function we(t,e,o){let n=t.relayconfigState.config();if(n===null)return o(e);let i=Ne(e.body),l={};e.headers.keys().forEach(p=>{l[p]=e.headers.get(p)??""});let r=e.headers.get("timeout"),u=r!==null?parseInt(r):t.defaultTimeout;e.url.startsWith("/api/v1/serverstate")&&e.url.includes("longpoll=true")&&(u=1e3*99);let a=t.relayWebsocket.sendCommand(n.accessToken,n.clientId,e.method,e.url,i,l,u);return new W(p=>{a.then(m=>{let S=new Z;l!=null&&Object.keys(l).forEach(y=>{S.set(y,l[y])});let g=new ee({body:m.body,status:m.code,statusText:"OK",headers:S});p.next(g),p.complete()})})}var ke=(t,e)=>{let o={relayconfigState:s(v),defaultTimeout:s(h).defaultTimeout,relayWebsocket:s(O)},n=o.relayconfigState.config();if(o.relayconfigState.configLoaded!==null&&n===null){let i=new j;return o.relayconfigState.configLoaded.subscribe(l=>{l&&we(o,t,e).subscribe(i)}),i}return we(o,t,e)};var Ee={providers:[z(),ae(Se,pe()),te(ne(),oe([ke,Re])),C,{provide:h,useValue:ve},{provide:q,useValue:be()},ue,I,he,Y,le,Q,fe,ge]};re(M,Ee);
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.0.105",
2
+ "version": "0.0.106",
3
3
  "name": "@duplicati/ngclient",
4
4
  "license": "MIT",
5
5
  "contributors": [
package/chunk-2HUZWRPM.js DELETED
@@ -1 +0,0 @@
1
- import"./chunk-7CGTOI24.js";var o=[{path:"",redirectTo:"general",pathMatch:"full"},{path:"general",loadComponent:()=>import("./chunk-O7DK2M4U.js")},{path:"destination",loadComponent:()=>import("./chunk-JKOCS4GE.js")},{path:"source-data",loadComponent:()=>import("./chunk-JLBV3QXT.js")},{path:"schedule",loadComponent:()=>import("./chunk-J4KNSP44.js")},{path:"options",loadComponent:()=>import("./chunk-U2HORYSZ.js")}];export{o as default};
package/chunk-3MVGDMRL.js DELETED
@@ -1 +0,0 @@
1
- import"./chunk-7CGTOI24.js";var o=[{path:"",redirectTo:"select-files",pathMatch:"full"},{path:"destination",loadComponent:()=>import("./chunk-7UQE266G.js")},{path:"encryption",loadComponent:()=>import("./chunk-XG7KYN67.js")},{path:"select-files",loadComponent:()=>import("./chunk-4PUCRV6F.js")},{path:"options",loadComponent:()=>import("./chunk-M4YSJR2J.js")},{path:"progress",loadComponent:()=>import("./chunk-SHOSAHEC.js")}],t=o;export{t as default};
package/chunk-4LYA3XAH.js DELETED
@@ -1 +0,0 @@
1
- import{a as ee}from"./chunk-TQGG56ZZ.js";import{a as be}from"./chunk-VN7JM6M3.js";import{a as Z}from"./chunk-HTNYQE2B.js";import{a as Q}from"./chunk-SAVY3OEX.js";import{a as ne}from"./chunk-7L42EO7J.js";import{b as Me,c as M,e as L,f as $,i as b,k as Le,n as D,q as A,r as v,s as $e,t as w}from"./chunk-T2OUHRUV.js";import{b as O,d as C}from"./chunk-QVIZK4WW.js";import{a as k,e as Ne,g as y,l as Pe,p as he,q as Ie,t as ke,z as ye}from"./chunk-WX7L7V6J.js";import{b as I}from"./chunk-PTDSOPNK.js";import{j as J}from"./chunk-CKPICCFH.js";import{$b as q,Ab as j,B as Fe,Bc as H,Cb as V,E as oe,F as T,Gb as u,Hb as F,Ib as E,J as me,Jb as Te,Kb as Ee,Mb as f,N as Se,Nb as W,O as K,Qa as S,S as de,Y as p,ab as h,cc as fe,da as N,ea as P,fb as x,i as _e,kc as Oe,nb as d,o as ce,pb as ge,pc as Ce,rc as Re,sb as B,ua as c,wb as r,x as ie,xb as a,y as ue,yb as _,zb as U}from"./chunk-W2F756OF.js";var De=new v,we=()=>De.group({passphrase:De.control("")}),se=class s{#t=p(I);#e=p(R);#i=p(C);#n=p(O);encryptionForm=this.#e.encryptionForm;creatingTemporaryBackup=c(!1);next(){let i=this.#e.destinationTargetUrl();if(!i)throw new Error("No target URL");this.creatingTemporaryBackup.set(!0);let e=this.encryptionForm.value?.passphrase??null,t=[{Name:"--no-encryption",Value:"true"}];e&&(t=[{Name:"--passphrase",Value:e}]),this.#t.postApiV1Backups({requestBody:{Backup:{TargetURL:i,Settings:t}},temporary:!0}).pipe(T(()=>this.creatingTemporaryBackup.set(!1))).subscribe({next:o=>{let n=o.ID;this.#i.navigate([`/restore-draft/${n}`])},error:o=>{console.error(o)}})}back(){this.#e.isFileRestore()?this.#i.navigate(["encryption"],{relativeTo:this.#n.parent}):this.#e.exit()}static \u0275fac=function(e){return new(e||s)};static \u0275cmp=h({type:s,selectors:[["app-restore-encryption"]],decls:12,vars:1,consts:()=>{let i;i=$localize`Enter backup passphrase if defined.`;let e;e=$localize`Password`;let t;t=$localize`${"\uFFFD#8\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#8\uFFFD"}:CLOSE_TAG_SPK_ICON: Back `;let o;return o=$localize`${"\uFFFD#11\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#11\uFFFD"}:CLOSE_TAG_SPK_ICON: Continue `,[e,t,o,[3,"submit","formGroup"],["for","password"],["type","password","id","password","placeholder",i,"formControlName","passphrase"],[1,"form-actions"],["spk-button","","type","button",3,"click"],["spk-button","","type","submit",1,"raised","primary"]]},template:function(e,t){e&1&&(r(0,"form",3),f("submit",function(){return t.next()}),r(1,"spk-form-field")(2,"label",4),E(3,0),a(),_(4,"input",5),a(),r(5,"div",6)(6,"button",7),f("click",function(){return t.back()}),u(7,1),_(8,"spk-icon"),F(),a(),r(9,"button",8),u(10,2),_(11,"spk-icon"),F(),a()()()),e&2&&d("formGroup",t.encryptionForm)},dependencies:[w,b,M,L,$,D,A,Pe,k,y],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 Be(s,i){s&1&&_(0,"spk-progress-bar",7)}function Ve(s,i){if(s&1&&(r(0,"div",13),q(1),Ce(2,"date"),a()),s&2){let e=i.$implicit;S(),fe("",e.Version,": ",Re(2,2,e.Time,"medium"),"")}}function We(s,i){s&1&&_(0,"spk-progress-bar",7)}function Xe(s,i){if(s&1&&(r(0,"app-file-tree",14)(1,"label",15),E(2,4),a(),_(3,"input",16),a()),s&2){let e=W(3);d("rootPath",e.rootPath())("backupSettings",e.backupSettings())("multiSelect",!0)("showFiles",!0)}}function ze(s,i){if(s&1&&x(0,Xe,4,4,"app-file-tree",14),s&2){let e=W(2);B((e.isDraft()&&!e.isRepairing()||!e.isDraft())&&e.backupSettings()?0:-1)}}function Ye(s,i){if(s&1){let e=V();r(0,"spk-select",11),f("cleared",function(){N(e);let o=W();return P(o.abortLoading())}),_(1,"input",12),x(2,Ve,3,5,"ng-template"),a(),x(3,We,1,0,"spk-progress-bar",7)(4,ze,1,1)}if(s&2){let e=W();d("options",e.versionOptions())("isClearable",!0),S(3),B(e.isDraft()&&e.isRepairing()||e.versionOptionsLoading()||e.loadingRootPath()?3:-1),S(),B(e.showFileTree()?4:-1)}}var te=new v,Ge=()=>te.group({filesToRestore:te.control(""),selectedOption:te.control(null),passphrase:te.control(null)}),ae=class s{#t=p(I);#e=p(R);#i=p(Q);#n=p(C);#o=p(O);#s=p(J);#r=null;#a=null;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=c(!1);backupSettings=c(null);rootPath=c(void 0);loadingRootPath=c(!1);isRepairing=c(!1);loadingEffect=H(()=>{if(this.versionOptionsLoading())return;let e=this.versionOptions();if(e&&e?.length>0){let t=e[0].Version;Number.isInteger(t)&&this.selectFilesForm.controls.selectedOption.setValue(t)}});backupSettingsEffect=H(()=>{let i=this.backupId(),e=this.isRepairing(),t=typeof this.selectOptionSignal()=="string"?parseInt(this.selectOptionSignal()):this.selectOptionSignal();if(typeof t!="number"||!i)return;let n=this.versionOptions()?.find(l=>l.Version===t)?.Time??null;!n||e||(this.showFileTree.set(!1),queueMicrotask(()=>{let l={id:i+"",time:n};this.backupSettings.set(l),this.getRootPath(l)}))});repairEffect=H(()=>{let i=this.#e.isDraft(),e=this.selectOptionSignal(),t=this.versionOptions();if(i&&e){let o=t.find(m=>m.Version===parseInt(e));if(o===void 0)return;let n=this.backupId(),l=`${n}+${o.Time}`;if(this.#a===l)return;this.#a=l,this.isRepairing.set(!0),this.#t.postApiV1BackupByIdRepairupdate({id:n,requestBody:{only_paths:!0,time:o.Time}}).pipe(K(this.abortLoading$),T(()=>{this.#a=null})).subscribe(m=>{let G=m.ID;var z=window.setInterval(()=>{this.#t.getApiV1TaskByTaskid({taskid:G}).subscribe(Y=>{Y.Status==="Completed"&&(clearInterval(z),this.isRepairing.set(!1))})},1e3)})}});getRootPath(i){let e={id:i.id+"",time:i.time,prefixOnly:!0,folderContents:!1},t=i.id+"";this.isRepairing()||this.#r===t||(this.#r=t,this.loadingRootPath.set(!0),this.#i.hasV2ListOperations()?this.#t.postApiV2BackupListFolder({requestBody:{BackupId:i.id,Time:i.time,Paths:null,PageSize:0,Page:0}}).pipe(K(this.abortLoading$),T(()=>{this.showFileTree.set(!0),this.loadingRootPath.set(!1),this.#r=null})).subscribe({next:o=>{let n=(o.Data??[]).map(l=>l.Path);n.length==1?this.rootPath.set(n[0]??"/"):this.rootPath.set("")}}):this.#t.getApiV1BackupByIdFiles(e).pipe(K(this.abortLoading$),T(()=>{this.showFileTree.set(!0),this.loadingRootPath.set(!1)})).subscribe({next:o=>{let n=o.Files.map(l=>l.Path);n.length==1?this.rootPath.set(n[0]??"/"):this.rootPath.set("")}}))}abortLoading$=new _e;abortLoading(){this.showFileTree.set(!1),this.loadingRootPath.set(!1),this.abortLoading$.next(!0)}displayFn(){let i=this.versionOptions();return e=>{if(!e)return"";let t=i?.find(o=>typeof o.Version=="number"&&o.Version.toString()===e);return t?`${t.Version}: ${this.#s.transform(t.Time,"medium")}`:""}}next(){this.#n.navigate(["options"],{relativeTo:this.#o.parent})}back(){this.#e.isFileRestore()?this.#n.navigate(["encryption"],{relativeTo:this.#o.parent}):this.#e.exit()}static \u0275fac=function(e){return new(e||s)};static \u0275cmp=h({type:s,selectors:[["app-select-files"]],features:[Oe([J])],decls:13,vars:3,consts:()=>{let i;i=$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 t;t=$localize`${"\uFFFD#12\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#12\uFFFD"}:CLOSE_TAG_SPK_ICON: Continue `;let o;o=$localize`Select an option...`;let n;return n=$localize`Path`,[["formRef",""],i,e,t,n,[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"],["value","Version",3,"cleared","options","isClearable"],["type","text","placeholder",o,"formControlName","selectedOption"],[1,"custom-option"],[3,"rootPath","backupSettings","multiSelect","showFiles"],["for","path"],["type","text","id","path","formControlName","filesToRestore"]]},template:function(e,t){if(e&1){let o=V();r(0,"form",5,0),f("submit",function(){return N(o),P(t.next())}),r(2,"h3",6),E(3,1),a(),x(4,Be,1,0,"spk-progress-bar",7)(5,Ye,5,4),r(6,"div",8)(7,"button",9),f("click",function(){return N(o),P(t.back())}),u(8,2),_(9,"spk-icon"),F(),a(),r(10,"button",10),u(11,3),_(12,"spk-icon"),F(),a()()()}e&2&&(d("formGroup",t.selectFilesForm),S(4),B(t.versionOptionsLoading()?4:5),S(5),Te(t.isFileRestore()?"Back":"Exit"),Ee(8))},dependencies:[$e,b,M,L,$,w,D,A,J,ee,y,k,ke,he],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 R=class s{#t=p(C);#e=p(O);#i=p(Q);#n=p(Ne);#o=p(I);backupId=c(null);backup=c(null);destinationTargetUrl=c(null);selectFilesForm=Ge();optionsForm=xe();encryptionForm=we();optionsFormSignal=Z(this.optionsForm.valueChanges);selectFilesFormSignal=Z(this.selectFilesForm.valueChanges);selectOptionSignal=Z(this.selectFilesForm.controls.selectedOption.valueChanges);versionOptionsLoading=c(!1);versionOptions=c([]);isSubmitting=c(!1);isDraft=c(!1);isFileRestore=c(!1);isFullWidthPage=c(!1);init(i,e=!1,t=!1){this.backupId.set(i),this.isFileRestore.set(e),this.isDraft.set(t),e&&this.#t.navigate(["/restore-from-files/destination"]),e||this.getBackup(!0)}updateTargetUrl(i){this.destinationTargetUrl.set(i)}submit(){this.isSubmitting.set(!0);let i=this.backupId(),e=this.optionsForm.value,t=this.selectFilesForm.value,o=this.versionOptions()?.find(n=>n.Version===t.selectedOption);this.#o.postApiV1BackupByIdRestore({id:i??"",requestBody:{paths:t.filesToRestore?.split("\0").map(n=>`${n}*`)??[],passphrase:t.passphrase??null,time:o?.Time,restore_path:e.restoreFromPath,overwrite:e.handleExisting==="overwrite",permissions:e.permissions,skip_metadata:!0}}).pipe(T(()=>this.isSubmitting.set(!1))).subscribe({next:()=>{this.#t.navigate(["./progress"],{relativeTo:this.#e})},error:n=>{console.error("restore error",n)}})}exit(){this.#n.open(ne,{data:{title:$localize`Confirm exit?`,message:$localize`Are you sure you want to exit?`,confirmText:$localize`Yes`,cancelText:$localize`Cancel`},closed:i=>{i&&(this.#s(),this.#t.navigate(["/"]))}})}getVersionOptions(){this.versionOptions()}loadFilesetsWithRetryv2(i,e=2){return this.#o.postApiV2BackupListFilesets({requestBody:{BackupId:i}}).pipe(Fe(t=>{let o=t?.error?.body?.StatusCode==="EncryptedStorageNoPassphrase",n=t?.error?.body?.StatusCode==="FolderMissing",l=t?.error?.body?.StatusCode==="EmptyRemoteFolder";return o||n||l||e===0?ce(()=>t):ue(1e3).pipe(Se(()=>this.loadFilesetsWithRetryv2(i,e-1)))}))}getBackup(i=!1){let e=this.backupId();this.versionOptionsLoading.set(!0),this.#i.hasV2ListOperations()?ie([this.#o.getApiV1BackupById({id:e}),this.loadFilesetsWithRetryv2(e)]).pipe(oe(1),T(()=>this.versionOptionsLoading.set(!1))).subscribe({next:([t,o])=>{if(o.Error)throw new Error(o.Error);this.versionOptions.set((o.Data??[]).map(n=>({Version:n.Version??-1,IsFullBackup:n.IsFullBackup??void 0,Time:n.Time??"<missing>",FileCount:n.FileCount??void 0,FileSizes:n.FileSizes??void 0}))),this.backup.set(t)},error:t=>{let o=t?.error?.body?.StatusCode==="EncryptedStorageNoPassphrase",n=t?.error?.body?.StatusCode==="FolderMissing",l=t?.error?.body?.StatusCode==="EmptyRemoteFolder",m=$localize`An error occurred while loading the backup filesets: ${t.message}`;o&&(m=$localize`The remote storage is encrypted. Please enter the passphrase to access the backup.`),n&&(m=$localize`The backup storage folder was not found.`),l&&(m=$localize`The backup storage folder does not contain any filesets.`),this.#n.open(ne,{data:{title:$localize`Failed to load backup filesets`,message:m,confirmText:$localize`OK`,cancelText:void 0},closed:G=>{this.#t.navigate([o?"/restore-from-files/encryption":"/restore-from-files/destination"])}})}}):ie([this.#o.getApiV1BackupById({id:e}),this.#o.getApiV1BackupByIdFilesets({id:e}).pipe(me(3))]).pipe(oe(1),T(()=>this.versionOptionsLoading.set(!1))).subscribe({next:([t,o])=>{this.versionOptions.set(o.map(n=>({Version:n.Version??-1,IsFullBackup:(n.IsFullBackup??1)==1,Time:n.Time??"<missing>",FileCount:n.FileCount??void 0,FileSizes:n.FileSizes??void 0}))),this.backup.set(t)}})}#s(){this.selectFilesForm.reset(),this.optionsForm.reset()}static \u0275fac=function(e){return new(e||s)};static \u0275prov=de({token:s,factory:s.\u0275fac,providedIn:"root"})};var X=new v,xe=()=>X.group({restoreFrom:X.control("orignal"),restoreFromPath:X.control(""),handleExisting:X.control("overwrite"),permissions:X.control(!1)}),le=class s{#t=p(R);#e=p(C);#i=p(O);optionsForm=this.#t.optionsForm;optionsFormSignal=this.#t.optionsFormSignal;isSubmitting=this.#t.isSubmitting;goBack(){this.#e.navigate(["select-files"],{relativeTo:this.#i.parent})}submit(){this.#t.submit()}static \u0275fac=function(e){return new(e||s)};static \u0275cmp=h({type:s,selectors:[["app-advanced-options-settings"]],decls:39,vars:6,consts:()=>{let i;i=$localize`Restore options`;let e;e=$localize`Where do you want to restore files to?`;let t;t=$localize` Original location ${"\uFFFD#9\uFFFD\uFFFD/#9\uFFFD"}:TAG_INPUT:`;let o;o=$localize` Pick location ${"\uFFFD#12\uFFFD\uFFFD/#12\uFFFD"}:TAG_INPUT:`;let n;n=$localize`How do you want to handle existing files?`;let l;l=$localize` Overwrite ${"\uFFFD#22\uFFFD\uFFFD/#22\uFFFD"}:TAG_INPUT:`;let m;m=$localize` Save different versions with timestamp in file name ${"\uFFFD#25\uFFFD\uFFFD/#25\uFFFD"}:TAG_INPUT:`;let G;G=$localize`Permissions`;let z;z=$localize` Restore read/write permissions ${"\uFFFD#31\uFFFD\uFFFD/#31\uFFFD"}:TAG_INPUT:`;let Y;Y=$localize`${"\uFFFD#35\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#35\uFFFD"}:CLOSE_TAG_SPK_ICON: Go back `;let pe;return pe=$localize`${"\uFFFD#38\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#38\uFFFD"}:CLOSE_TAG_SPK_ICON: Submit `,[["formRef",""],i,e,t,o,n,l,m,G,z,Y,pe,[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,t){if(e&1){let o=V();r(0,"form",12,0),f("submit",function(){return N(o),P(t.submit())}),r(2,"h3",13),E(3,1),a(),r(4,"app-toggle-card",14),U(5,15),E(6,2),j(),r(7,"spk-radio",16),u(8,3),_(9,"input",17),F(),a(),r(10,"spk-radio",16),u(11,4),_(12,"input",18),F(),a(),r(13,"app-file-tree",19)(14,"label",20),q(15,"Path"),a(),_(16,"input",21),a()(),r(17,"app-toggle-card",14),U(18,15),E(19,5),j(),r(20,"spk-radio",16),u(21,6),_(22,"input",22),F(),a(),r(23,"spk-radio",16),u(24,7),_(25,"input",23),F(),a()(),r(26,"app-toggle-card"),U(27,15),E(28,8),j(),r(29,"spk-toggle",24),u(30,9),_(31,"input",25),F(),a()(),r(32,"div",26)(33,"button",27),f("click",function(){return N(o),P(t.goBack())}),u(34,10),_(35,"spk-icon"),F(),a(),r(36,"button",28),u(37,11),_(38,"spk-icon"),F(),a()()()}if(e&2){let o;d("formGroup",t.optionsForm),S(4),d("disallowToggle",!0),S(9),d("disabled",((o=t.optionsFormSignal())==null?null:o.restoreFrom)!=="pickLocation"),S(4),d("disallowToggle",!0),S(19),ge("loader",t.isSubmitting())}},dependencies:[w,b,M,Me,Le,L,$,D,A,be,ee,ye,Ie,y,k],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{xe as a,le as b,we as c,se as d,Ge as e,ae as f,R as g};
package/chunk-GOTRUTIB.js DELETED
@@ -1 +0,0 @@
1
- import{a as Ie}from"./chunk-VAOJO535.js";import{a as fe}from"./chunk-7L42EO7J.js";import"./chunk-SZ64OOBT.js";import{a as $e}from"./chunk-VOGYVLLM.js";import"./chunk-RHW5QVAY.js";import"./chunk-O2YN63YI.js";import"./chunk-T2OUHRUV.js";import"./chunk-FSGJ5KIH.js";import"./chunk-I3C2AEHI.js";import{e as G}from"./chunk-QVIZK4WW.js";import"./chunk-WMTA6PZM.js";import{a as v,e as Oe,g as h,h as me,j as ke,k as Pe,o as X,p as Ne}from"./chunk-WX7L7V6J.js";import{b as Ce}from"./chunk-PTDSOPNK.js";import"./chunk-MZ473NLM.js";import"./chunk-DE4NDI5F.js";import"./chunk-CKPICCFH.js";import"./chunk-PFYOWXZZ.js";import{$b as d,Ab as T,Cb as b,Gb as u,Hb as F,Ib as s,Jb as $,Kb as f,Mb as M,Nb as p,Qa as c,Y as A,ab as Ee,bc as N,da as C,ea as O,fb as m,kb as Te,lb as Me,lc as L,mc as k,nb as g,pb as D,pc as I,qc as B,rc as x,sb as P,tb as R,ub as H,vb as y,wb as i,xb as o,yb as r,zb as E}from"./chunk-W2F756OF.js";import"./chunk-7CGTOI24.js";var Ae=()=>[G,h,v,ke,Pe,X,import("./chunk-G432CCD5.js").then(e=>e.DurationFormatPipe),import("./chunk-CETM57LL.js").then(e=>e.BytesPipe),import("./chunk-KFU7HSAL.js").then(e=>e.RelativeTimePipe)],De=()=>["/add-backup"],Re=()=>["/restore"],He=e=>["/backup",e],ye=e=>["/restore",e],be=e=>["/backup",e,"export"],Le=e=>["/backup",e,"database"],Be=e=>["/backup",e,"commandline"],xe=e=>["/backup",e,"log"];function Ge(e,_){if(e&1){let t=b();i(0,"button",42),M("click",function(){let l=C(t).$implicit,S=p();return O(S.setOrderBy(l.value))}),s(1,11),o()}if(e&2){let t=_.$implicit,n=p();D("active",n.orderBy()===t.value),c(),$(t.label),f(1)}}function ve(e,_){if(e&1&&(d(0),I(1,"durationFormat")),e&2){let t=p().$implicit,n=p(3);N(" ",x(1,1,t.Backup==null||t.Backup.Metadata==null?null:t.Backup.Metadata.LastBackupDuration,n.timeType()==="actual")," ")}}function he(e,_){e&1&&(E(0),s(1,26),T())}function Xe(e,_){if(e&1&&(d(0),I(1,"bytes")),e&2){let t=p().$implicit;N(" ",B(1,1,t.Backup==null||t.Backup.Metadata==null?null:t.Backup.Metadata.SourceFilesSize)," ")}}function ze(e,_){e&1&&(E(0),s(1,27),T())}function we(e,_){if(e&1&&(d(0),I(1,"bytes")),e&2){let t=p().$implicit;N(" ",B(1,1,t.Backup==null||t.Backup.Metadata==null?null:t.Backup.Metadata.TargetFilesSize)," ")}}function Ke(e,_){e&1&&(E(0),s(1,28),T())}function Ve(e,_){if(e&1&&(i(0,"spk-chip",46),s(1,29),o()),e&2){let t=p().$implicit;c(),$(t.Backup==null||t.Backup.Metadata==null?null:t.Backup.Metadata.BackupListCount),f(1)}}function je(e,_){e&1&&(i(0,"spk-chip",47),s(1,30),o())}function qe(e,_){if(e&1){let t=b();i(0,"div",45)(1,"div",35)(2,"h3"),d(3),i(4,"spk-icon"),d(5,"database"),o()(),i(6,"p")(7,"span"),s(8,12),o(),d(9),I(10,"relativeTime"),o(),i(11,"p")(12,"span"),s(13,13),o(),m(14,ve,2,4)(15,he,2,0,"ng-container"),o(),i(16,"p")(17,"span"),s(18,14),o(),m(19,Xe,2,3)(20,ze,2,0,"ng-container"),o(),i(21,"p")(22,"span"),s(23,15),o(),m(24,we,2,3)(25,Ke,2,0,"ng-container"),o()(),m(26,Ve,2,1,"spk-chip",46)(27,je,2,0,"spk-chip",47),i(28,"div",39)(29,"button",48),M("click",function(){let l=C(t).$implicit,S=p(3);return O(S.startBackup(l.Backup==null?null:l.Backup.ID))}),u(30,16),r(31,"spk-icon"),F(),o(),i(32,"button",49)(33,"spk-icon"),d(34,"pencil-simple"),o()(),i(35,"spk-menu",50)(36,"button",36)(37,"spk-icon"),d(38,"dots-three-vertical"),o()(),E(39,41),i(40,"h3",51),d(41,"Operations"),o(),i(42,"button",52),u(43,17),r(44,"spk-icon"),F(),o(),i(45,"button",52),u(46,18),r(47,"spk-icon"),F(),o(),i(48,"button",53),M("click",function(){let l=C(t).$implicit,S=p(3);return O(S.deleteBackup(l.Backup==null?null:l.Backup.ID))}),u(49,19),r(50,"spk-icon"),F(),o(),r(51,"spk-divider"),i(52,"h3",51),d(53,"Advanced"),o(),i(54,"button",52),u(55,20),r(56,"spk-icon"),F(),o(),i(57,"button",42),M("click",function(){let l=C(t).$implicit,S=p(3);return O(S.verifyFiles(l.Backup==null?null:l.Backup.ID))}),u(58,21),r(59,"spk-icon"),F(),o(),i(60,"button",42),M("click",function(){let l=C(t).$implicit,S=p(3);return O(S.compressBackup(l.Backup==null?null:l.Backup.ID))}),u(61,22),r(62,"spk-icon"),F(),o(),i(63,"button",52),u(64,23),r(65,"spk-icon"),F(),o(),r(66,"spk-divider"),i(67,"h3",51),d(68,"Reporting"),o(),i(69,"button",52),u(70,24),r(71,"spk-icon"),F(),o(),i(72,"button",42),M("click",function(){let l=C(t).$implicit,S=p(3);return O(S.createErrorReport(l.Backup==null?null:l.Backup.ID))}),u(73,25),r(74,"spk-icon"),F(),o(),T(),o()()()}if(e&2){let t,n=_.$implicit,l=p(3);c(3),N(" ",(t=n.Backup==null?null:n.Backup.Name)!==null&&t!==void 0?t:l.MISSING_BACKUP_NAME," "),c(6),N(" ",x(10,17,n.Backup==null||n.Backup.Metadata==null?null:n.Backup.Metadata.LastBackupDate,l.timeType()==="actual")," "),c(5),P(!(n.Backup==null||n.Backup.Metadata==null)&&n.Backup.Metadata.LastBackupDuration?14:15),c(5),P(!(n.Backup==null||n.Backup.Metadata==null)&&n.Backup.Metadata.SourceFilesSize?19:20),c(5),P(!(n.Backup==null||n.Backup.Metadata==null)&&n.Backup.Metadata.TargetFilesSize?24:25),c(2),P(!(n.Backup==null||n.Backup.Metadata==null)&&n.Backup.Metadata.BackupListCount?26:27),c(3),D("loader",l.startingBackup()),c(3),g("routerLink",k(20,He,n.Backup==null?null:n.Backup.ID)),c(3),g("right",!0),c(7),g("routerLink",k(22,ye,n.Backup==null?null:n.Backup.ID)),c(3),g("routerLink",k(24,be,n.Backup==null?null:n.Backup.ID)),c(3),D("loader",l.deletingBackup()===(n.Backup==null?null:n.Backup.ID)),c(6),g("routerLink",k(26,Le,n.Backup==null?null:n.Backup.ID)),c(9),g("routerLink",k(28,Be,n.Backup==null?null:n.Backup.ID)),c(6),g("routerLink",k(30,xe,n.Backup==null?null:n.Backup.ID))}}function Ue(e,_){if(e&1&&H(0,qe,75,32,"div",45,R),e&2){let t=p(2);y(t.backups())}}function We(e,_){e&1&&(E(0),s(1,31),T())}function Je(e,_){if(e&1&&m(0,Ue,2,0)(1,We,2,0,"ng-container"),e&2){let t=p();P(t.backups().length?0:1)}}function Qe(e,_){e&1&&(i(0,"div",54),r(1,"spk-progress-bar",55),i(2,"div",35)(3,"h3"),s(4,32),o()()())}var z=class e{#e=A($e);#t=A(Oe);#n=A(Ce);MISSING_BACKUP_NAME=$localize`Backup name missing`;sortOrderOptions=this.#e.orderByOptions;orderBy=this.#e.orderBy;backups=this.#e.backups;backupsLoading=this.#e.backupsLoading;startingBackup=this.#e.startingBackup;deletingBackup=this.#e.deletingBackup;timeType=this.#e.timeType;ngOnInit(){this.#e.getBackups(!0)}setOrderBy(_){this.#e.setOrderBy(_)}setTimeType(_){this.#e.setTimeType(_)}startBackup(_){this.#e.startBackup(_)}deleteBackup(_){this.#t.open(fe,{data:{title:$localize`Confirm delete`,message:$localize`Are you sure you want to delete this backup?`,confirmText:$localize`Delete backup`,cancelText:$localize`Cancel`},closed:t=>{t&&this.#e.deleteBackup(_)}})}verifyFiles(_){this.#n.postApiV1BackupByIdVerify({id:_}).subscribe()}compressBackup(_){this.#n.postApiV1BackupByIdCompact({id:_}).subscribe()}createErrorReport(_){this.#n.postApiV1BackupByIdCreatereport({id:_}).subscribe()}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=Ee({type:e,selectors:[["app-home"]],decls:51,vars:7,consts:()=>{let _;_=$localize`Backups`;let t;t=$localize`Backups are stored in the cloud and can be restored at any time.`;let n;n=$localize` Add ${"\uFFFD#12\uFFFD"}:START_TAG_SPK_ICON:plus${"\uFFFD/#12\uFFFD"}:CLOSE_TAG_SPK_ICON:`;let l;l=$localize`Restores`;let S;S=$localize`Restores allow you to restore your data from the cloud.`;let w;w=$localize` Start ${"\uFFFD#22\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#22\uFFFD"}:CLOSE_TAG_SPK_ICON:`;let K;K=$localize`My backups`;let V;V=$localize` Time: ${"\uFFFD#31\uFFFD"}:START_TAG_STRONG:${"\uFFFD0\uFFFD"}:INTERPOLATION:${"\uFFFD/#31\uFFFD"}:CLOSE_TAG_STRONG:${"\uFFFD#32\uFFFD"}:START_TAG_SPK_ICON:clock${"\uFFFD/#32\uFFFD"}:CLOSE_TAG_SPK_ICON:`;let j;j=$localize`Relative time`;let q;q=$localize`Actual time`;let U;U=$localize` Order by: ${"\uFFFD#41\uFFFD"}:START_TAG_STRONG:${"\uFFFD0\uFFFD"}:INTERPOLATION:${"\uFFFD/#41\uFFFD"}:CLOSE_TAG_STRONG:${"\uFFFD#42\uFFFD"}:START_TAG_SPK_ICON:arrows-down-up${"\uFFFD/#42\uFFFD"}:CLOSE_TAG_SPK_ICON:`;let W;W=$localize` ${"\uFFFD0\uFFFD"}:INTERPOLATION: `;let J;J=$localize`Last successful backup:`;let Q;Q=$localize`Duration:`;let Y;Y=$localize`Source:`;let Z;Z=$localize`Destination:`;let ee;ee=$localize`${"\uFFFD#31\uFFFD"}:START_TAG_SPK_ICON:play-circle${"\uFFFD/#31\uFFFD"}:CLOSE_TAG_SPK_ICON: Start `;let ne;ne=$localize`${"\uFFFD#44\uFFFD"}:START_TAG_SPK_ICON:clock-counter-clockwise${"\uFFFD/#44\uFFFD"}:CLOSE_TAG_SPK_ICON: Restore `;let te;te=$localize`${"\uFFFD#47\uFFFD"}:START_TAG_SPK_ICON:export${"\uFFFD/#47\uFFFD"}:CLOSE_TAG_SPK_ICON: Export `;let oe;oe=$localize`${"\uFFFD#50\uFFFD"}:START_TAG_SPK_ICON:x-circle${"\uFFFD/#50\uFFFD"}:CLOSE_TAG_SPK_ICON: Delete `;let ie;ie=$localize`${"\uFFFD#56\uFFFD"}:START_TAG_SPK_ICON:database${"\uFFFD/#56\uFFFD"}:CLOSE_TAG_SPK_ICON: Database `;let _e;_e=$localize`${"\uFFFD#59\uFFFD"}:START_TAG_SPK_ICON:check-square-offset${"\uFFFD/#59\uFFFD"}:CLOSE_TAG_SPK_ICON: Verify files `;let ae;ae=$localize`${"\uFFFD#62\uFFFD"}:START_TAG_SPK_ICON:file-archive${"\uFFFD/#62\uFFFD"}:CLOSE_TAG_SPK_ICON: Compress now `;let le;le=$localize`${"\uFFFD#65\uFFFD"}:START_TAG_SPK_ICON:terminal-window${"\uFFFD/#65\uFFFD"}:CLOSE_TAG_SPK_ICON: Commandline `;let ce;ce=$localize`${"\uFFFD#71\uFFFD"}:START_TAG_SPK_ICON:notepad${"\uFFFD/#71\uFFFD"}:CLOSE_TAG_SPK_ICON: Log `;let re;re=$localize`${"\uFFFD#74\uFFFD"}:START_TAG_SPK_ICON:file-plus${"\uFFFD/#74\uFFFD"}:CLOSE_TAG_SPK_ICON: Create error report `;let se;se=$localize`N/A`;let pe;pe=$localize`N/A`;let ue;ue=$localize`N/A`;let Fe;Fe=$localize` ${"\uFFFD0\uFFFD"}:INTERPOLATION: Version `;let Se;Se=$localize`No version yet`;let de;de=$localize`No backups founds`;let ge;return ge=$localize`Loading backups...`,[_,t,n,l,S,w,K,V,j,q,U,W,J,Q,Y,Z,ee,ne,te,oe,ie,_e,ae,le,ce,re,se,pe,ue,Fe,Se,de,ge,[1,"type-a",3,"routerLink"],["src","assets/images/backup.png","alt","","width","48px"],[1,"text"],["type","button","spk-button",""],["src","assets/images/restore.png","alt","","width","48px"],[1,"content"],[1,"actions"],["type","button","spk-button","",1,"small"],["menu",""],["type","button",3,"click"],["type","button",3,"active"],[1,"backups"],[1,"backup"],[1,"simple","success"],[1,"simple"],["spk-button","",3,"click"],["type","button","spk-button","",3,"routerLink"],[3,"right"],["title",""],["type","button",3,"routerLink"],[3,"click"],[1,"loading-list"],[1,"indeterminate","primary"]]},template:function(t,n){t&1&&(r(0,"app-status-bar"),i(1,"section")(2,"header")(3,"spk-card",33),r(4,"img",34),i(5,"div",35)(6,"h3"),s(7,0),o(),i(8,"p"),s(9,1),o()(),i(10,"button",36),u(11,2),r(12,"spk-icon"),F(),o()(),i(13,"spk-card",33),r(14,"img",37),i(15,"div",35)(16,"h3"),s(17,3),o(),i(18,"p"),s(19,4),o()(),i(20,"button",36),u(21,5),r(22,"spk-icon"),F(),o()()(),i(23,"div",38)(24,"h2"),E(25),s(26,6),T(),i(27,"div",39)(28,"spk-menu")(29,"button",40),u(30,7),r(31,"strong")(32,"spk-icon"),F(),o(),E(33,41),i(34,"button",42),M("click",function(){return n.setTimeType("relative")}),s(35,8),o(),i(36,"button",42),M("click",function(){return n.setTimeType("actual")}),s(37,9),o(),T(),o(),i(38,"spk-menu")(39,"button",40),u(40,10),r(41,"strong")(42,"spk-icon"),F(),o(),E(43,41),H(44,Ge,2,3,"button",43,R),T(),o()()(),i(46,"div",44),m(47,Je,2,1)(48,Qe,5,0),Te(49,47,Ae,null,48),o()()()),t&2&&(c(3),g("routerLink",L(5,De)),c(10),g("routerLink",L(6,Re)),c(19),$(n.timeType()),f(30),c(10),$(n.orderBy()),f(40),c(2),y(n.sortOrderOptions()),c(5),Me(!n.backupsLoading()))},dependencies:[G,Ie,me,h,v,X,Ne],styles:["[_nghost-%COMP%]{display:block}h2[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between}section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;padding:2rem 0}header[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;padding:0 2rem;gap:1rem}spk-card[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem}spk-card[_ngcontent-%COMP%] .text[_ngcontent-%COMP%]{flex:1 0;display:flex;flex-direction:column;gap:.25rem}.content[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding:0 2rem;gap:1rem}.backups[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.backup[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:2rem;gap:1rem;border:1px solid var(--base-level-40);border-radius:var(--shape-3);box-shadow:var(--shadow-1)}.backup[_ngcontent-%COMP%] .text[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;width:100%;max-width:40%}.backup[_ngcontent-%COMP%] .text[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem}.backup[_ngcontent-%COMP%] .text[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] spk-icon[_ngcontent-%COMP%]{color:var(--base-level-60)}.backup[_ngcontent-%COMP%] .text[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{font:var(--paragraph-30);color:var(--base-level-60)}.backup[_ngcontent-%COMP%] .text[_ngcontent-%COMP%] p[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--base-level-70)}.actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}"],changeDetection:0})};export{z as default};