@duplicati/ngclient 0.0.157 → 0.0.159

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 (86) hide show
  1. package/assets/dest-icons/s3compat.png +0 -0
  2. package/assets/sh.woff2 +0 -0
  3. package/{chunk-PD73DDOS.js → chunk-2QJVTZ56.js} +2 -2
  4. package/chunk-2S6ABLBU.js +1 -0
  5. package/chunk-2WGW24ZH.js +1 -0
  6. package/chunk-2ZGJS4OW.js +7 -0
  7. package/chunk-33J6ZQYE.js +1 -0
  8. package/{chunk-LTQOZB7Q.js → chunk-3OCWLJKG.js} +1 -1
  9. package/{chunk-ZGC3K2EK.js → chunk-4IIDZXFC.js} +1 -1
  10. package/{chunk-COUIDDUK.js → chunk-4IXUXIXV.js} +1 -1
  11. package/{chunk-TJIZJNCK.js → chunk-4NBLWONL.js} +1 -1
  12. package/{chunk-ENNM55FS.js → chunk-5WDKKAXO.js} +1 -1
  13. package/{chunk-VRV52R6I.js → chunk-6YGURBW6.js} +1 -1
  14. package/{chunk-K3VDFIJM.js → chunk-72QJ345F.js} +1 -1
  15. package/{chunk-FPVRHFKW.js → chunk-7JHF4R5J.js} +1 -1
  16. package/{chunk-XVWOVBC4.js → chunk-7LYN2XHO.js} +1 -1
  17. package/chunk-A2LUC3NC.js +1 -0
  18. package/{chunk-VUKS2SJL.js → chunk-A5LNLNWR.js} +1 -1
  19. package/chunk-BQJICFF5.js +1 -0
  20. package/chunk-C6F6FP4R.js +2 -0
  21. package/{chunk-ZSZLXWN6.js → chunk-CCKT2GLS.js} +1 -1
  22. package/{chunk-UDF726AD.js → chunk-CHYEYO6L.js} +1 -1
  23. package/{chunk-EE5UMXWP.js → chunk-D4F7SID5.js} +1 -1
  24. package/{chunk-DBQGZZI2.js → chunk-D6KZSKI7.js} +1 -1
  25. package/{chunk-USX4C3JC.js → chunk-DTOILX4E.js} +1 -1
  26. package/{chunk-F7PHZYZX.js → chunk-DW7A6PHZ.js} +1 -1
  27. package/{chunk-CAJEHCFP.js → chunk-EBANXXYI.js} +1 -1
  28. package/{chunk-2KH32RMH.js → chunk-EMRD3UKA.js} +1 -1
  29. package/{chunk-UQY3P37P.js → chunk-F6ME3VE6.js} +1 -1
  30. package/{chunk-OX4HQVUD.js → chunk-FNJU5CD3.js} +1 -1
  31. package/{chunk-WXF4HUYT.js → chunk-GCCJSS4C.js} +1 -1
  32. package/{chunk-YC5FPDJH.js → chunk-GDQZEB3A.js} +1 -1
  33. package/{chunk-SKSEDWGR.js → chunk-GOVVHVP2.js} +1 -1
  34. package/{chunk-RDCD2W2C.js → chunk-GYDI67IZ.js} +1 -1
  35. package/chunk-H3UUJ5EW.js +1 -0
  36. package/chunk-K3ILN56U.js +1 -0
  37. package/{chunk-DILTD4XG.js → chunk-KAAYNQ7L.js} +1 -1
  38. package/{chunk-7FCBU2UO.js → chunk-KT7U3QIP.js} +1 -1
  39. package/{chunk-7TF7DTKJ.js → chunk-KXM6LF3X.js} +1 -1
  40. package/{chunk-3LVCVLMO.js → chunk-LSKF2B33.js} +1 -1
  41. package/{chunk-HKL7ZJV5.js → chunk-MGTRQOF6.js} +1 -1
  42. package/{chunk-TG2ZSU7H.js → chunk-NM7WJRU7.js} +1 -1
  43. package/chunk-OKDVOGSM.js +1 -0
  44. package/{chunk-3AYCMVTF.js → chunk-PHQBBCUL.js} +1 -1
  45. package/chunk-PQSZLHZR.js +1 -0
  46. package/{chunk-ISNV5CM5.js → chunk-PULERFBI.js} +1 -1
  47. package/{chunk-UXOJBG6Z.js → chunk-PUNIQ3JW.js} +1 -1
  48. package/chunk-Q65KFDJ5.js +1 -0
  49. package/chunk-QNM5CG4Z.js +1 -0
  50. package/{chunk-QWQKYLNR.js → chunk-QX3IRESN.js} +1 -1
  51. package/chunk-RUXUFB7C.js +1 -0
  52. package/chunk-RWPF5SQT.js +1 -0
  53. package/chunk-RZKDEJUP.js +1 -0
  54. package/{chunk-C2VSATF5.js → chunk-SWD3HS57.js} +1 -1
  55. package/chunk-U2Y2D6MA.js +1 -0
  56. package/{chunk-FIUF53BE.js → chunk-UST7PIBI.js} +1 -1
  57. package/{chunk-TPBZNCDW.js → chunk-VXRNST6C.js} +1 -1
  58. package/{chunk-VOLZIA33.js → chunk-W2CMPDWL.js} +1 -1
  59. package/{chunk-MTQKK2WN.js → chunk-XLDVUBTQ.js} +1 -1
  60. package/{chunk-2GCNISUZ.js → chunk-XUIDYG2O.js} +1 -1
  61. package/{chunk-EVJPCAZV.js → chunk-XX3WLO55.js} +1 -1
  62. package/{chunk-RIFNOGGK.js → chunk-ZDME3W57.js} +1 -1
  63. package/{chunk-BNWLPYK6.js → chunk-ZMTLDG46.js} +1 -1
  64. package/index.html +1 -1
  65. package/locale/messages.de.json +4 -4
  66. package/locale/messages.it.json +123 -3
  67. package/main-AK26L46R.js +1 -0
  68. package/package.json +1 -1
  69. package/chunk-2AVDJBM7.js +0 -1
  70. package/chunk-3F7ADWPY.js +0 -1
  71. package/chunk-3N6V4QBS.js +0 -1
  72. package/chunk-4NLJRM5D.js +0 -1
  73. package/chunk-6NY5MUS6.js +0 -1
  74. package/chunk-BSMAYTZR.js +0 -1
  75. package/chunk-E7Y6L3W6.js +0 -1
  76. package/chunk-GYDGMSUA.js +0 -1
  77. package/chunk-IB6ESS57.js +0 -1
  78. package/chunk-LYKQBVOC.js +0 -1
  79. package/chunk-NRUGLQRY.js +0 -1
  80. package/chunk-P4SN4J3W.js +0 -1
  81. package/chunk-Q3BXXS7G.js +0 -1
  82. package/chunk-SJ3V6DON.js +0 -2
  83. package/chunk-TWMGET5I.js +0 -7
  84. package/chunk-VVVEOA35.js +0 -1
  85. package/chunk-YZNZ5RQI.js +0 -1
  86. package/main-UHBWCAT4.js +0 -1
@@ -1 +1 @@
1
- import{a as Re,c as fe,d as B}from"./chunk-4VY6SMSL.js";import{b as he}from"./chunk-Z27IQRKV.js";import{a as Ne}from"./chunk-TJIZJNCK.js";import"./chunk-ZSZLXWN6.js";import"./chunk-6Q6SSTBK.js";import"./chunk-MTQKK2WN.js";import"./chunk-XVWOVBC4.js";import"./chunk-WXF4HUYT.js";import{b as te,d as ne,e as ie}from"./chunk-ABYM5HWA.js";import"./chunk-Z35OG2DV.js";import{A as Ce,B as Ee,G as Pe,K as Se,V as me,X as ge,b as re,c as se,d as g,e as ae,f as _e,j as le,o as ce,q as pe,r as Fe,t as de,u as ue,w as Te}from"./chunk-QF4DQYEP.js";import{c as oe,h as Oe}from"./chunk-PD73DDOS.js";import"./chunk-5ZSBXGHQ.js";import"./chunk-FPPZ4BUR.js";import{$b as u,Bc as ee,Cb as P,Db as a,Eb as r,Fb as l,H as A,Mb as M,P as Q,Qc as $,Rc as G,Sa as s,Tb as c,Ub as p,Vb as S,Wb as y,Xb as L,Yb as X,Zb as m,_ as C,cb as W,ea as w,fa as D,kc as h,nc as x,oc as Y,pa as E,qc as Z,xb as F,yb as d}from"./chunk-QONLYWYC.js";import"./chunk-EUDKD2JW.js";var Ie=()=>["/"];function we(t,o){t&1&&(a(0,"sh-toggle",23),c(1,5),l(2,"input",26),p(),r())}function De(t,o){t&1&&(a(0,"span",29),S(1,9),r())}function xe(t,o){if(t&1&&(a(0,"span",29),S(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),L(1)}}function $e(t,o){if(t&1&&l(0,"sh-progress-bar",36),t&2){let e=u(2);h("error",e.calculatePasswordStrength()===1)("warn",e.calculatePasswordStrength()===2)("primary",e.calculatePasswordStrength()===4)("success",e.calculatePasswordStrength()===5),P("value",e.calculatePasswordStrength()*(100/5))}}function Ae(t,o){t&1&&(a(0,"span",29),S(1,11),r())}function Me(t,o){t&1&&(a(0,"span",29),S(1,12),r())}function ye(t,o){if(t&1&&(a(0,"span",29),S(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),L(1)}}function Le(t,o){t&1&&(c(0,7,1),l(1,"sh-icon"),p())}function Xe(t,o){t&1&&(c(0,7,2),l(1,"sh-icon"),p())}function Ge(t,o){t&1&&(c(0,14,1),l(1,"sh-icon",38),p())}function Be(t,o){t&1&&(c(0,14,2),l(1,"sh-icon"),p())}function be(t,o){if(t&1){let e=M();a(0,"button",37),m("click",function(){w(e);let i=u(2);return D(i.copyPassword())}),c(1,14),F(2,Ge,2,0)(3,Be,2,0),p(),r()}if(t&2){let e=u(2);s(2),d(e.copiedPassword()?2:3)}}function ve(t,o){t&1&&(a(0,"sh-alert",35),S(1,15),r())}function ke(t,o){if(t&1){let e=M();a(0,"div",24)(1,"sh-form-field")(2,"label",27),c(3,6),l(4,"sup"),p(),r(),l(5,"input",28),F(6,De,2,0,"span",29)(7,xe,2,1,"span",29),r(),F(8,$e,1,9,"sh-progress-bar",30),a(9,"sh-form-field"),l(10,"input",31),F(11,Ae,2,0,"span",29)(12,Me,2,0,"span",29)(13,ye,2,1,"span",29),r(),a(14,"div",32)(15,"button",33),m("click",function(){w(e);let i=u();return D(i.showPassword.set(!i.showPassword()))}),c(16,7),F(17,Le,2,0)(18,Xe,2,0),p(),r(),a(19,"button",33),m("click",function(){w(e);let i=u();return D(i.generatePassword())}),c(20,8),l(21,"sh-icon"),p(),r(),F(22,be,4,1,"button",34),r(),F(23,ve,2,0,"sh-alert",35),r()}if(t&2){let e=u();s(5),P("type",e.showPassword()?"text":"password"),s(),d(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),d(e.exportForm.value.password?8:-1),s(2),P("type",e.showPassword()?"text":"password"),s(),d(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),d(e.showPassword()?17:18),s(5),d(e.showCopyPassword()?22:-1),s(),d(e.exportForm.value.password&&e.exportForm.value.password===e.exportForm.value.repeatPassword?23:-1)}}function Ue(t,o){if(t&1&&(a(0,"div",25)(1,"code"),x(2),r()()),t&2){let e=u();s(2),Y(e.exportedCmd())}}var R=new Fe,b=class t{#o=C(Re);#t=C(Oe);#e=C(te);#n=C(ne);#i=C(oe);#r=C(Ne);isExporting=E(!1);exportType=E("file");exportedCmd=E(null);exportForm=R.group({exportPasswords:R.control(!0),encryption:R.control(!1,[g.required,fe()]),password:R.control("",[B("encryption",!0,[g.required,g.minLength(3)])]),repeatPassword:R.control("",[B("encryption",!0,[g.required,g.minLength(3)])])});exportFormSignal=he(this.exportForm.valueChanges);encryptionFieldSignal=$(()=>(this.exportFormSignal()?.encryption??!1)&&this.exportType()==="file");activeBackup=$(()=>this.#r.backups().find(o=>o.Backup?.ID===this.#e.snapshot.params.id));showPassword=E(!1);copiedPassword=E(!1);showCopyPassword=E(!1);calculatePasswordStrength=$(()=>{let e=this.exportFormSignal()?.password??"";return this.#o.calculatePasswordStrength(e)});showPasswordEffect=G(()=>{this.showPassword()&&this.exportForm.updateValueAndValidity()});disablePasswordForCommandLine=G(()=>{this.exportType()==="cmd"&&this.exportForm.controls.encryption.setValue(!1)});submit(){this.isExporting.set(!0),this.exportType()==="file"?this.#t.postApiV1AuthIssuetokenByOperation({operation:"export"}).pipe(Q(o=>{let e=i=>{let O=Object.entries(i);return O?"?"+O.filter(([N,T])=>T!=null).map(([N,T])=>`${encodeURIComponent(N)}=${encodeURIComponent(T)}`).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"})}),A(()=>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(A(()=>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=W({type:t,selectors:[["app-export"]],decls:26,vars:15,consts:()=>{let o;o=$localize`Remember to copy the password`;let e;e=$localize`${"\uFFFD#6\uFFFD"}:START_TAG_SH_ICON:arrow-left${"\uFFFD/#6\uFFFD"}:CLOSE_TAG_SH_ICON: Back `;let n;n=$localize`${"\uFFFD#9\uFFFD"}:START_TAG_SH_ICON:export${"\uFFFD/#9\uFFFD"}:CLOSE_TAG_SH_ICON: Export `;let i;i=$localize`${"\uFFFD#16\uFFFD"}:START_TAG_SH_ICON:terminal-window${"\uFFFD/#16\uFFFD"}:CLOSE_TAG_SH_ICON: As command line `;let O;O=$localize`${"\uFFFD#19\uFFFD"}:START_TAG_SH_ICON:file${"\uFFFD/#19\uFFFD"}:CLOSE_TAG_SH_ICON: To file `;let N;N=$localize` Export passwords ${"\uFFFD#22\uFFFD\uFFFD/#22\uFFFD"}:TAG_INPUT:`;let T;T=$localize` Encrypt file ${"\uFFFD#2\uFFFD\uFFFD/#2\uFFFD"}:TAG_INPUT:`;let v;v=$localize`Password`;let k;k=$localize`Repeat password`;let U;U=$localize` Create a password ${"\uFFFD#4\uFFFD"}:START_SUPERSCRIPT:*${"\uFFFD/#4\uFFFD"}:CLOSE_SUPERSCRIPT:`;let f;f=$localize`${"\uFFFD*17:1\uFFFD"}:START_BLOCK_IF:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SH_ICON:eye-slash${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SH_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_SH_ICON:eye${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SH_ICON: show ${"\uFFFD/*18:2\uFFFD"}:CLOSE_BLOCK_ELSE:`,f=X(f);let K;K=$localize`${"\uFFFD#21\uFFFD"}:START_TAG_SH_ICON:password${"\uFFFD/#21\uFFFD"}:CLOSE_TAG_SH_ICON: Generate password `;let J;J=$localize`Passwords are required`;let z;z=$localize` Passwords must be at least ${"\uFFFD0\uFFFD"}:INTERPOLATION: characters long `;let H;H=$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 I;I=$localize`${"\uFFFD*2:1\uFFFD"}:START_BLOCK_IF:${"\uFFFD#1:1\uFFFD"}:START_TAG_SH_ICON:check${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SH_ICON: Copied password ${"\uFFFD/*2:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*3:2\uFFFD"}:START_BLOCK_ELSE:${"\uFFFD#1:2\uFFFD"}:START_TAG_SH_ICON_1:copy${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SH_ICON: Copy password ${"\uFFFD/*3:2\uFFFD"}:CLOSE_BLOCK_ELSE:`,I=X(I);let j;return j=$localize` Tip: Be sure to save your password. If you lose it, you will not be able to import the configuration. `,[e,n,i,O,N,T,U,f,K,J,z,H,V,q,I,j,[1,"actions"],["shButton","",1,"outlined",3,"routerLink"],["shButton","","shTooltip",o,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",v,"formControlName","password",3,"type"],["error",""],[1,"raised",3,"error","warn","primary","success","value"],["id","repeatPassword","tabindex","5","autocomplete","off","placeholder",k,"formControlName","repeatPassword",3,"type"],[1,"password-actions"],["shButton","","type","button",1,"small",3,"click"],["shButton","","type","button",1,"small","copy"],[1,"primary"],[1,"raised",3,"value"],["shButton","","type","button",1,"small","copy",3,"click"],[1,"sh-success"]]},template:function(e,n){if(e&1&&(a(0,"header")(1,"h3"),x(2," Export backup configuration "),a(3,"div",16)(4,"button",17),c(5,0),l(6,"sh-icon"),p(),r(),a(7,"button",18),m("click",function(){return n.submit()}),c(8,1),l(9,"sh-icon"),p(),r()()(),a(10,"p"),x(11),r()(),a(12,"form",19)(13,"sh-button-group")(14,"button",20),m("click",function(){return n.exportType.set("cmd")}),c(15,2),l(16,"sh-icon"),p(),r(),a(17,"button",20),m("click",function(){return n.exportType.set("file")}),c(18,3),l(19,"sh-icon"),p(),r()(),a(20,"sh-toggle",21),c(21,4),l(22,"input",22),p(),r(),F(23,we,3,0,"sh-toggle",23),F(24,ke,24,8,"div",24),F(25,Ue,3,1,"div",25),r()),e&2){let i;s(4),P("routerLink",ee(14,Ie)),s(3),h("loading",n.isExporting()),P("disabled",n.exportForm.invalid||n.showCopyPassword()&&!n.copiedPassword()||n.encryptionFieldSignal()&&n.exportForm.value.repeatPassword!==n.exportForm.value.password),s(4),Z("#",(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),h("active",n.exportType()==="cmd"),s(3),h("active",n.exportType()==="file"),s(6),d(n.exportType()==="file"?23:-1),s(),d(n.encryptionFieldSignal()?24:-1),s(),d(n.exportedCmd()?25:-1)}},dependencies:[de,le,se,re,ae,_e,ce,pe,ie,Ce,me,ue,Pe,Ee,Te,Se,ge],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%] sh-icon.sh-success[_ngcontent-%COMP%]{color:var(--success-8)}.hide[_ngcontent-%COMP%]{display:none}"],changeDetection:0})};export{b as default};
1
+ import{a as Re,c as fe,d as B}from"./chunk-4VY6SMSL.js";import{b as he}from"./chunk-Z27IQRKV.js";import{a as Ne}from"./chunk-4NBLWONL.js";import"./chunk-CCKT2GLS.js";import"./chunk-6Q6SSTBK.js";import"./chunk-XLDVUBTQ.js";import"./chunk-7LYN2XHO.js";import"./chunk-GCCJSS4C.js";import{b as te,d as ne,e as ie}from"./chunk-ABYM5HWA.js";import"./chunk-Z35OG2DV.js";import{A as Ce,B as Ee,G as Pe,K as Se,V as me,X as ge,b as re,c as se,d as g,e as ae,f as _e,j as le,o as ce,q as pe,r as Fe,t as de,u as ue,w as Te}from"./chunk-QF4DQYEP.js";import{c as oe,h as Oe}from"./chunk-2QJVTZ56.js";import"./chunk-5ZSBXGHQ.js";import"./chunk-FPPZ4BUR.js";import{$b as u,Bc as ee,Cb as P,Db as a,Eb as r,Fb as l,H as A,Mb as M,P as Q,Qc as $,Rc as G,Sa as s,Tb as c,Ub as p,Vb as S,Wb as y,Xb as L,Yb as X,Zb as m,_ as C,cb as W,ea as w,fa as D,kc as h,nc as x,oc as Y,pa as E,qc as Z,xb as F,yb as d}from"./chunk-QONLYWYC.js";import"./chunk-EUDKD2JW.js";var Ie=()=>["/"];function we(t,o){t&1&&(a(0,"sh-toggle",23),c(1,5),l(2,"input",26),p(),r())}function De(t,o){t&1&&(a(0,"span",29),S(1,9),r())}function xe(t,o){if(t&1&&(a(0,"span",29),S(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),L(1)}}function $e(t,o){if(t&1&&l(0,"sh-progress-bar",36),t&2){let e=u(2);h("error",e.calculatePasswordStrength()===1)("warn",e.calculatePasswordStrength()===2)("primary",e.calculatePasswordStrength()===4)("success",e.calculatePasswordStrength()===5),P("value",e.calculatePasswordStrength()*(100/5))}}function Ae(t,o){t&1&&(a(0,"span",29),S(1,11),r())}function Me(t,o){t&1&&(a(0,"span",29),S(1,12),r())}function ye(t,o){if(t&1&&(a(0,"span",29),S(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),L(1)}}function Le(t,o){t&1&&(c(0,7,1),l(1,"sh-icon"),p())}function Xe(t,o){t&1&&(c(0,7,2),l(1,"sh-icon"),p())}function Ge(t,o){t&1&&(c(0,14,1),l(1,"sh-icon",38),p())}function Be(t,o){t&1&&(c(0,14,2),l(1,"sh-icon"),p())}function be(t,o){if(t&1){let e=M();a(0,"button",37),m("click",function(){w(e);let i=u(2);return D(i.copyPassword())}),c(1,14),F(2,Ge,2,0)(3,Be,2,0),p(),r()}if(t&2){let e=u(2);s(2),d(e.copiedPassword()?2:3)}}function ve(t,o){t&1&&(a(0,"sh-alert",35),S(1,15),r())}function ke(t,o){if(t&1){let e=M();a(0,"div",24)(1,"sh-form-field")(2,"label",27),c(3,6),l(4,"sup"),p(),r(),l(5,"input",28),F(6,De,2,0,"span",29)(7,xe,2,1,"span",29),r(),F(8,$e,1,9,"sh-progress-bar",30),a(9,"sh-form-field"),l(10,"input",31),F(11,Ae,2,0,"span",29)(12,Me,2,0,"span",29)(13,ye,2,1,"span",29),r(),a(14,"div",32)(15,"button",33),m("click",function(){w(e);let i=u();return D(i.showPassword.set(!i.showPassword()))}),c(16,7),F(17,Le,2,0)(18,Xe,2,0),p(),r(),a(19,"button",33),m("click",function(){w(e);let i=u();return D(i.generatePassword())}),c(20,8),l(21,"sh-icon"),p(),r(),F(22,be,4,1,"button",34),r(),F(23,ve,2,0,"sh-alert",35),r()}if(t&2){let e=u();s(5),P("type",e.showPassword()?"text":"password"),s(),d(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),d(e.exportForm.value.password?8:-1),s(2),P("type",e.showPassword()?"text":"password"),s(),d(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),d(e.showPassword()?17:18),s(5),d(e.showCopyPassword()?22:-1),s(),d(e.exportForm.value.password&&e.exportForm.value.password===e.exportForm.value.repeatPassword?23:-1)}}function Ue(t,o){if(t&1&&(a(0,"div",25)(1,"code"),x(2),r()()),t&2){let e=u();s(2),Y(e.exportedCmd())}}var R=new Fe,b=class t{#o=C(Re);#t=C(Oe);#e=C(te);#n=C(ne);#i=C(oe);#r=C(Ne);isExporting=E(!1);exportType=E("file");exportedCmd=E(null);exportForm=R.group({exportPasswords:R.control(!0),encryption:R.control(!1,[g.required,fe()]),password:R.control("",[B("encryption",!0,[g.required,g.minLength(3)])]),repeatPassword:R.control("",[B("encryption",!0,[g.required,g.minLength(3)])])});exportFormSignal=he(this.exportForm.valueChanges);encryptionFieldSignal=$(()=>(this.exportFormSignal()?.encryption??!1)&&this.exportType()==="file");activeBackup=$(()=>this.#r.backups().find(o=>o.Backup?.ID===this.#e.snapshot.params.id));showPassword=E(!1);copiedPassword=E(!1);showCopyPassword=E(!1);calculatePasswordStrength=$(()=>{let e=this.exportFormSignal()?.password??"";return this.#o.calculatePasswordStrength(e)});showPasswordEffect=G(()=>{this.showPassword()&&this.exportForm.updateValueAndValidity()});disablePasswordForCommandLine=G(()=>{this.exportType()==="cmd"&&this.exportForm.controls.encryption.setValue(!1)});submit(){this.isExporting.set(!0),this.exportType()==="file"?this.#t.postApiV1AuthIssuetokenByOperation({operation:"export"}).pipe(Q(o=>{let e=i=>{let O=Object.entries(i);return O?"?"+O.filter(([N,T])=>T!=null).map(([N,T])=>`${encodeURIComponent(N)}=${encodeURIComponent(T)}`).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"})}),A(()=>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(A(()=>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=W({type:t,selectors:[["app-export"]],decls:26,vars:15,consts:()=>{let o;o=$localize`Remember to copy the password`;let e;e=$localize`${"\uFFFD#6\uFFFD"}:START_TAG_SH_ICON:arrow-left${"\uFFFD/#6\uFFFD"}:CLOSE_TAG_SH_ICON: Back `;let n;n=$localize`${"\uFFFD#9\uFFFD"}:START_TAG_SH_ICON:export${"\uFFFD/#9\uFFFD"}:CLOSE_TAG_SH_ICON: Export `;let i;i=$localize`${"\uFFFD#16\uFFFD"}:START_TAG_SH_ICON:terminal-window${"\uFFFD/#16\uFFFD"}:CLOSE_TAG_SH_ICON: As command line `;let O;O=$localize`${"\uFFFD#19\uFFFD"}:START_TAG_SH_ICON:file${"\uFFFD/#19\uFFFD"}:CLOSE_TAG_SH_ICON: To file `;let N;N=$localize` Export passwords ${"\uFFFD#22\uFFFD\uFFFD/#22\uFFFD"}:TAG_INPUT:`;let T;T=$localize` Encrypt file ${"\uFFFD#2\uFFFD\uFFFD/#2\uFFFD"}:TAG_INPUT:`;let v;v=$localize`Password`;let k;k=$localize`Repeat password`;let U;U=$localize` Create a password ${"\uFFFD#4\uFFFD"}:START_SUPERSCRIPT:*${"\uFFFD/#4\uFFFD"}:CLOSE_SUPERSCRIPT:`;let f;f=$localize`${"\uFFFD*17:1\uFFFD"}:START_BLOCK_IF:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SH_ICON:eye-slash${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SH_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_SH_ICON:eye${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SH_ICON: show ${"\uFFFD/*18:2\uFFFD"}:CLOSE_BLOCK_ELSE:`,f=X(f);let K;K=$localize`${"\uFFFD#21\uFFFD"}:START_TAG_SH_ICON:password${"\uFFFD/#21\uFFFD"}:CLOSE_TAG_SH_ICON: Generate password `;let J;J=$localize`Passwords are required`;let z;z=$localize` Passwords must be at least ${"\uFFFD0\uFFFD"}:INTERPOLATION: characters long `;let H;H=$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 I;I=$localize`${"\uFFFD*2:1\uFFFD"}:START_BLOCK_IF:${"\uFFFD#1:1\uFFFD"}:START_TAG_SH_ICON:check${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SH_ICON: Copied password ${"\uFFFD/*2:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*3:2\uFFFD"}:START_BLOCK_ELSE:${"\uFFFD#1:2\uFFFD"}:START_TAG_SH_ICON_1:copy${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SH_ICON: Copy password ${"\uFFFD/*3:2\uFFFD"}:CLOSE_BLOCK_ELSE:`,I=X(I);let j;return j=$localize` Tip: Be sure to save your password. If you lose it, you will not be able to import the configuration. `,[e,n,i,O,N,T,U,f,K,J,z,H,V,q,I,j,[1,"actions"],["shButton","",1,"outlined",3,"routerLink"],["shButton","","shTooltip",o,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",v,"formControlName","password",3,"type"],["error",""],[1,"raised",3,"error","warn","primary","success","value"],["id","repeatPassword","tabindex","5","autocomplete","off","placeholder",k,"formControlName","repeatPassword",3,"type"],[1,"password-actions"],["shButton","","type","button",1,"small",3,"click"],["shButton","","type","button",1,"small","copy"],[1,"primary"],[1,"raised",3,"value"],["shButton","","type","button",1,"small","copy",3,"click"],[1,"sh-success"]]},template:function(e,n){if(e&1&&(a(0,"header")(1,"h3"),x(2," Export backup configuration "),a(3,"div",16)(4,"button",17),c(5,0),l(6,"sh-icon"),p(),r(),a(7,"button",18),m("click",function(){return n.submit()}),c(8,1),l(9,"sh-icon"),p(),r()()(),a(10,"p"),x(11),r()(),a(12,"form",19)(13,"sh-button-group")(14,"button",20),m("click",function(){return n.exportType.set("cmd")}),c(15,2),l(16,"sh-icon"),p(),r(),a(17,"button",20),m("click",function(){return n.exportType.set("file")}),c(18,3),l(19,"sh-icon"),p(),r()(),a(20,"sh-toggle",21),c(21,4),l(22,"input",22),p(),r(),F(23,we,3,0,"sh-toggle",23),F(24,ke,24,8,"div",24),F(25,Ue,3,1,"div",25),r()),e&2){let i;s(4),P("routerLink",ee(14,Ie)),s(3),h("loading",n.isExporting()),P("disabled",n.exportForm.invalid||n.showCopyPassword()&&!n.copiedPassword()||n.encryptionFieldSignal()&&n.exportForm.value.repeatPassword!==n.exportForm.value.password),s(4),Z("#",(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),h("active",n.exportType()==="cmd"),s(3),h("active",n.exportType()==="file"),s(6),d(n.exportType()==="file"?23:-1),s(),d(n.encryptionFieldSignal()?24:-1),s(),d(n.exportedCmd()?25:-1)}},dependencies:[de,le,se,re,ae,_e,ce,pe,ie,Ce,me,ue,Pe,Ee,Te,Se,ge],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%] sh-icon.sh-success[_ngcontent-%COMP%]{color:var(--success-8)}.hide[_ngcontent-%COMP%]{display:none}"],changeDetection:0})};export{b as default};
@@ -1 +1 @@
1
- import{a as Pe}from"./chunk-RDCD2W2C.js";import{a as Ne}from"./chunk-TJIZJNCK.js";import{a as Oe}from"./chunk-ZSZLXWN6.js";import{a as Ee}from"./chunk-MTQKK2WN.js";import{b as oe}from"./chunk-WXF4HUYT.js";import{B as Te,D as pe,G as ce,K as de,L as me,N as ge,O as Ce,c as ae,e as se,i as le,k as _e,s as x,u as re,w as ue,z as Se}from"./chunk-QF4DQYEP.js";import{h as P}from"./chunk-PD73DDOS.js";import{a as fe}from"./chunk-I2LW33GO.js";import{la as ie}from"./chunk-5ZSBXGHQ.js";import{$b as d,Ab as Z,Bb as q,Cb as R,Db as s,Eb as l,Fb as C,Fc as H,Gc as te,H as U,Hc as ne,Mb as D,Qc as G,Sa as _,Tb as E,Ub as O,Vb as S,Vc as k,Yb as Q,Zb as T,_ as c,cb as N,ea as h,fa as M,jc as ee,kc as m,nc as g,pa as p,pc as v,qc as z,sc as b,tc as B,uc as L,xb as I,yb as F,zb as Y}from"./chunk-QONLYWYC.js";function De(a,n){if(a&1){let i=D();s(0,"sh-radio",10),T("click",function(){let t=h(i).$implicit,o=d();return M(o.pauseOption.set(t.value))}),g(1),l()}if(a&2){let i=n.$implicit,e=d();m("active",e.pauseOption()===i.value),_(),v(" ",i.label," ")}}var be=[{label:$localize`5 minutes`,value:"5m"},{label:$localize`10 minutes`,value:"10m"},{label:$localize`15 minutes`,value:"15m"},{label:$localize`30 minutes`,value:"30m"},{label:$localize`1 hour`,value:"1h"},{label:$localize`4 hours`,value:"4h"},{label:$localize`8 hours`,value:"8h"},{label:$localize`24 hours`,value:"24h"},{label:$localize`Until resumed`,value:void 0}],$=class a{#e=c(P);pauseOptions=p(be);closed=k();isSubmitting=p(!1);pauseTransfers=p(!1);pauseOption=p(void 0);submit(){this.isSubmitting.set(!0);let n=this.pauseTransfers()||null,i=this.pauseOption();this.#e.postApiV1ServerstatePause({duration:i,pauseTransfers:n}).pipe(U(()=>this.isSubmitting.set(!1))).subscribe({next:e=>{this.closed.emit()}})}static \u0275fac=function(i){return new(i||a)};static \u0275cmp=N({type:a,selectors:[["app-pause-dialog"]],outputs:{closed:"closed"},decls:17,vars:4,consts:()=>{let n;n=$localize`Pause settings`;let i;i=$localize` Also pause transfers `;let e;e=$localize`If you pause transfers they could time out and cause retries or failures.`;let t;t=$localize`Cancel`;let o;return o=$localize` Update settings `,[n,i,e,t,o,["header",""],["content",""],[1,"radios"],[1,"primary","raised",3,"active"],[1,"check-wrap"],[1,"primary","raised",3,"click"],["type","warning"],["footer",""],["shButton","",3,"click"],["shButton","",1,"raised","primary",3,"click"]]},template:function(i,e){i&1&&(s(0,"header",5)(1,"h3"),S(2,0),l()(),s(3,"div",6)(4,"div",7),Z(5,De,2,3,"sh-radio",8,Y),l(),s(7,"div",9)(8,"sh-checkbox",10),T("click",function(){return e.pauseTransfers.set(!e.pauseTransfers())}),S(9,1),l(),s(10,"sh-alert",11),S(11,2),l()()(),s(12,"footer",12)(13,"button",13),T("click",function(){return e.closed.emit()}),S(14,3),l(),s(15,"button",14),T("click",function(){return e.submit()}),S(16,4),l()()),i&2&&(_(5),q(e.pauseOptions()),_(3),m("active",e.pauseTransfers()),_(7),m("loader",e.isSubmitting()))},dependencies:[x,me,pe,ue],styles:["[_nghost-%COMP%]{--dialog-p: 1.5rem;display:block}h3[_ngcontent-%COMP%]{font:var(--title-30)}.radios[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.check-wrap[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;padding:2rem 0 0}"],changeDetection:0})};var Me={Byte:"B",KByte:"KB",MByte:"MB",GByte:"GB",TByte:"TB",PByte:"PB"},Be=["mbps","gbps"],Ie=8,V=1024,w=V*1024,W=w*1024,K=W*1024,Fe=K*1024,Le={B:1,KB:V,MB:w,GB:W,TB:K,PB:Fe},Ge=1e3,X=Ge*1e3,J=X*1e3,ye=[{threshold:Fe,unitPrefix:"PByte"},{threshold:K,unitPrefix:"TByte"},{threshold:W,unitPrefix:"GByte"},{threshold:w,unitPrefix:"MByte"},{threshold:V,unitPrefix:"KByte"},{threshold:1,unitPrefix:"Byte"}],y=class a{#e=c(P);closed=k();isSubmitting=p(!1);sizeOptions=p([...Be]);maxUpload=p(0);maxDownload=p(0);maxUploadUnit=p("mbps");maxDownloadUnit=p("mbps");ngOnInit(){this.init()}convertToBitsPerSecondUnits(n,i){let t=n*(Le[i.toUpperCase()]||w)*Ie;return t===0?{value:0,unit:"mbps"}:t>=J?{value:parseFloat((t/J).toFixed(2)),unit:"gbps"}:{value:parseFloat((t/X).toFixed(2)),unit:"mbps"}}convertFromBitsPerSecondUnits(n,i){let e=0;switch(i){case"gbps":e=n*J;break;case"mbps":e=n*X;break}let t=e/Ie;if(t===0)return{valueForApi:0,unitPrefixForApi:"Byte"};for(let{threshold:o,unitPrefix:r}of ye)if(t>=o)return{valueForApi:Math.round(t/o),unitPrefixForApi:r};return{valueForApi:Math.round(t),unitPrefixForApi:"Byte"}}init(){this.#e.getApiV1Serversettings().subscribe({next:n=>{let i=n?.["max-upload-speed"],e=n?.["max-download-speed"];if(i&&i!==""){let t=i.match(/^(\d+(?:\.\d+)?)([A-Za-z]+)$/);if(t){let o=parseFloat(t[1]),r=t[2],u=this.convertToBitsPerSecondUnits(o,r);this.maxUpload.set(u.value),this.maxUploadUnit.set(u.unit)}else console.warn("Unexpected max-upload-speed format from API:",i),this.resetUpload()}else this.resetUpload();if(e&&e!==""){let t=e.match(/^(\d+(?:\.\d+)?)([A-Za-z]+)$/);if(t){let o=parseFloat(t[1]),r=t[2],u=this.convertToBitsPerSecondUnits(o,r);this.maxDownload.set(u.value),this.maxDownloadUnit.set(u.unit)}else console.warn("Unexpected max-download-speed format from API:",e),this.resetDownload()}else this.resetDownload()},error:n=>{console.error("Failed to get server settings:",n),this.resetDownload(),this.resetUpload()}})}resetDownload(){this.maxDownload.set(0),this.maxDownloadUnit.set("mbps")}resetUpload(){this.maxUpload.set(0),this.maxUploadUnit.set("mbps")}blockDecimalKeys(n){if([".",","].includes(n.key))return n.preventDefault()}cleanupInputAfterPasting(n){n.preventDefault();let i=n.clipboardData?.getData("text/plain");if(!i)return;let e=i.replaceAll(/[\.,]/g,"");n.target.value=e}submit(){this.isSubmitting.set(!0);let n="",i="",e=this.maxUpload()??0,t=this.maxUploadUnit(),o=this.maxDownload()??0,r=this.maxDownloadUnit();if(e>0){let{valueForApi:u,unitPrefixForApi:f}=this.convertFromBitsPerSecondUnits(e,t),A=Me[f];A?n=`${u}${A}`:console.error(`Invalid unit prefix for API submission (upload): ${f}. Defaulting to empty string.`)}if(o){let{valueForApi:u,unitPrefixForApi:f}=this.convertFromBitsPerSecondUnits(o,r),A=Me[f];A?i=`${u}${A}`:console.error(`Invalid unit prefix for API submission (download): ${f}. Defaulting to empty string.`)}this.#e.patchApiV1Serversettings({requestBody:{"max-upload-speed":n,"max-download-speed":i}}).pipe(U(()=>this.isSubmitting.set(!1))).subscribe({next:()=>{this.closed.emit(!0)},error:u=>{console.error("Failed to submit throttle settings:",u)}})}static \u0275fac=function(i){return new(i||a)};static \u0275cmp=N({type:a,selectors:[["app-throttle-settings-dialog"]],outputs:{closed:"closed"},decls:26,vars:10,consts:()=>{let n;n=$localize`Throttle network speed`;let i;i=$localize`We will round bits to the nearest byte value.`;let e;e=$localize`Max upload speed`;let t;t=$localize`Max download speed`;let o;o=$localize`Cancel`;let r;return r=$localize` Update settings `,[n,i,e,t,o,r,["content",""],[1,"column"],[1,"field-row"],["type","number",3,"paste","keydown","ngModelChange","ngModel"],[3,"isClearable","options"],["type","text",3,"ngModelChange","ngModel"],["footer",""],["shButton","",3,"click"],["shButton","",1,"raised","primary",3,"click"]]},template:function(i,e){i&1&&(s(0,"header")(1,"h3"),S(2,0),l(),s(3,"p"),S(4,1),l()(),s(5,"div",6)(6,"div",7)(7,"div",8)(8,"label"),S(9,2),l(),s(10,"sh-form-field")(11,"input",9),T("paste",function(o){return e.cleanupInputAfterPasting(o)})("keydown",function(o){return e.blockDecimalKeys(o)}),L("ngModelChange",function(o){return B(e.maxUpload,o)||(e.maxUpload=o),o}),l()(),s(12,"sh-select",10)(13,"input",11),L("ngModelChange",function(o){return B(e.maxUploadUnit,o)||(e.maxUploadUnit=o),o}),l()()(),s(14,"div",8)(15,"label"),S(16,3),l(),s(17,"sh-form-field")(18,"input",9),T("paste",function(o){return e.cleanupInputAfterPasting(o)})("keydown",function(o){return e.blockDecimalKeys(o)}),L("ngModelChange",function(o){return B(e.maxDownload,o)||(e.maxDownload=o),o}),l()(),s(19,"sh-select",10)(20,"input",11),L("ngModelChange",function(o){return B(e.maxDownloadUnit,o)||(e.maxDownloadUnit=o),o}),l()()()()(),s(21,"footer",12)(22,"button",13),T("click",function(){return e.closed.emit(!1)}),S(23,4),l(),s(24,"button",14),T("click",function(){return e.submit()}),S(25,5),l()()),i&2&&(_(11),b("ngModel",e.maxUpload),_(),R("isClearable",!1)("options",e.sizeOptions()),_(),b("ngModel",e.maxUploadUnit),_(5),b("ngModel",e.maxDownload),_(),R("isClearable",!1)("options",e.sizeOptions()),_(),b("ngModel",e.maxDownloadUnit),_(4),m("loader",e.isSubmitting()))},dependencies:[x,ae,_e,se,le,ce,Ce],styles:['[_nghost-%COMP%]{display:block}h3[_ngcontent-%COMP%]{font:var(--title-30)}header[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;padding:1rem;gap:.5rem;margin-bottom:1rem}.column[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.field-row[_ngcontent-%COMP%]{display:grid;grid-template-areas:"label label" "input select";grid-template-columns:1fr auto;align-items:center;gap:.5rem;width:100%}.field-row[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{grid-area:label}.field-row[_ngcontent-%COMP%] sh-form-field[_ngcontent-%COMP%]{grid-area:input}.field-row[_ngcontent-%COMP%] sh-select[_ngcontent-%COMP%]{grid-area:select}'],changeDetection:0})};function Ue(a,n){if(a&1&&(s(0,"div"),g(1),l(),C(2,"sh-progress-bar",11)),a&2){let i=d();_(),z("",i.statusData().actionText," - ",i.statusData().statusText),_(),R("value",i.statusData().progress*100)}}function ve(a,n){if(a&1&&(s(0,"div",7),g(1),s(2,"sh-icon"),g(3,"clock"),l(),g(4),H(5,"relativeTime"),H(6,"date"),l()),a&2){let i,e=d();_(),v(" ",(i=e.nextBackup().backup)==null||i.Backup==null?null:i.Backup.Name," - "),_(3),z(" ",te(5,3,e.nextBackup().time)," at ",ne(6,5,e.nextBackup().time,"shortTime")," ")}}function ke(a,n){a&1&&(s(0,"div",7),S(1,1),l())}function xe(a,n){a&1&&(s(0,"div",8),E(1,2),C(2,"sh-spinner"),O(),l()),a&2&&(_(2),ee("--spinner-size","12px")("--spinner-thickness","2px"))}function $e(a,n){if(a&1){let i=D();s(0,"button",10),T("click",function(){h(i);let t=d(2);return M(t.abort())}),E(1,3),C(2,"sh-icon"),O(),l()}}function we(a,n){if(a&1){let i=D();s(0,"button",10),T("click",function(){h(i);let t=d(2);return M(t.stop())}),E(1,4),C(2,"sh-icon"),O(),l()}}function ze(a,n){if(a&1&&I(0,$e,3,0,"button",12)(1,we,3,0,"button",12),a&2){let i=d();F(i.isStopping()?0:1)}}function He(a,n){a&1&&(E(0,0,1),C(1,"sh-icon"),O())}function Je(a,n){a&1&&(E(0,0,2),C(1,"sh-icon"),O())}var Re=new Date,j=class a{#e=c(P);#t=c(Pe);#n=c(Se);#a=c(Ne);#s=c(oe);#l=c(Ee);#i=c(Oe);minsAgo=Re.setMinutes(Re.getMinutes()-1);statusData=this.#t.statusData;serverState=this.#t.serverState;clientIsRunning=this.#t.clientIsRunning;isResuming=this.#t.isResuming;runningTask=G(()=>this.#i.serverState()?.ActiveTask?.Item1);isStopping=G(()=>this.runningTask()==this.#o());#o=p(-1);pgState=G(()=>this.#i.serverState());nextBackup=G(()=>{let n=this.#a.backups();return{backup:this.serverState()?.ProposedSchedule?.[0]?.backup,time:this.serverState()?.ProposedSchedule?.[0]?.Item2}});openThrottleSettingsDialog(){this.#n.open(y,{maxWidth:"550px",width:"100%"})}openPauseDialog(){this.#n.open($,{maxWidth:"550px",width:"100%"})}pauseResume(){if(this.clientIsRunning()){this.openPauseDialog();return}this.#t.pauseResume().subscribe()}stop(){let n=this.runningTask();n&&(this.#o.set(n),this.#e.postApiV1TaskByTaskidStop({taskid:n}).subscribe())}abort(){let n=this.runningTask();n&&this.#e.postApiV1TaskByTaskidAbort({taskid:n}).subscribe()}ngAfterViewInit(){let n=this.#s.relayIsEnabled()||!this.#l.hasWebSocket()?"longpoll":"websocket";this.#t.setConnectionMethod(n)}static \u0275fac=function(i){return new(i||a)};static \u0275cmp=N({type:a,selectors:[["app-status-bar"]],decls:15,vars:5,consts:()=>{let n;n=$localize`${"\uFFFD*10:1\uFFFD"}:START_BLOCK_IF:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SH_ICON:pause${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SH_ICON: Pause ${"\uFFFD/*10:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*11:2\uFFFD"}:START_BLOCK_ELSE:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SH_ICON:play${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SH_ICON: Start ${"\uFFFD/*11:2\uFFFD"}:CLOSE_BLOCK_ELSE:`,n=Q(n);let i;i=$localize`No scheduled tasks`;let e;e=$localize` Loading ${"\uFFFD#2\uFFFD"}:START_TAG_SH_SPINNER:${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_SPINNER:`;let t;t=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SH_ICON:skull${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_ICON: Abort `;let o;return o=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SH_ICON:stop${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_ICON: Stop `,[n,i,e,t,o,[1,"current-backup"],[1,"current-backup-progress"],[1,"label"],[1,"label","label-loading"],[1,"current-backup-actions"],["shButton","",3,"click"],[1,"raised","primary",3,"value"],["shButton",""]]},template:function(i,e){if(i&1&&(s(0,"div",5)(1,"div",6),I(2,Ue,3,3)(3,ve,7,8,"div",7)(4,ke,2,0,"div",7)(5,xe,3,4,"div",8),l(),s(6,"div",9),I(7,ze,2,1),s(8,"button",10),T("click",function(){return e.pauseResume()}),E(9,0),I(10,He,2,0)(11,Je,2,0),O(),l(),s(12,"button",10),T("click",function(){return e.openThrottleSettingsDialog()}),s(13,"sh-icon"),g(14,"speedometer"),l()()()()),i&2){let t;_(2),F((t=e.serverState())!=null&&t.ActiveTask&&(!((t=e.statusData())==null||t.task==null)&&t.task.Status)&&((t=e.statusData())==null||t.task==null?null:t.task.Status)!=="Completed"?2:e.nextBackup().backup||e.nextBackup().time?3:(t=e.serverState())!=null&&t.ActiveTask?5:4),_(5),F(e.runningTask()?7:-1),_(),m("loader",e.isResuming()),_(2),F(e.clientIsRunning()?10:11)}},dependencies:[de,re,Te,ge,fe,ie],styles:["[_nghost-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:1rem;min-height:3.875rem;border-bottom:1px solid var(--base-4);position:sticky;top:0;z-index:2000;background:var(--base-1)}.current-backup[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%;gap:.5rem}.current-backup-progress[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem;min-width:18.75rem;flex:1 0}.current-backup-progress[_ngcontent-%COMP%] sh-progress-bar[_ngcontent-%COMP%]{max-width:18.75rem;width:100%}.current-backup-progress[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem}.current-backup-actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}.label-loading[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.25rem}"],changeDetection:0})};export{j as a};
1
+ import{a as Pe}from"./chunk-GYDI67IZ.js";import{a as Ne}from"./chunk-4NBLWONL.js";import{a as Oe}from"./chunk-CCKT2GLS.js";import{a as Ee}from"./chunk-XLDVUBTQ.js";import{b as oe}from"./chunk-GCCJSS4C.js";import{B as Te,D as pe,G as ce,K as de,L as me,N as ge,O as Ce,c as ae,e as se,i as le,k as _e,s as x,u as re,w as ue,z as Se}from"./chunk-QF4DQYEP.js";import{h as P}from"./chunk-2QJVTZ56.js";import{a as fe}from"./chunk-I2LW33GO.js";import{la as ie}from"./chunk-5ZSBXGHQ.js";import{$b as d,Ab as Z,Bb as q,Cb as R,Db as s,Eb as l,Fb as C,Fc as H,Gc as te,H as U,Hc as ne,Mb as D,Qc as G,Sa as _,Tb as E,Ub as O,Vb as S,Vc as k,Yb as Q,Zb as T,_ as c,cb as N,ea as h,fa as M,jc as ee,kc as m,nc as g,pa as p,pc as v,qc as z,sc as b,tc as B,uc as L,xb as I,yb as F,zb as Y}from"./chunk-QONLYWYC.js";function De(a,n){if(a&1){let i=D();s(0,"sh-radio",10),T("click",function(){let t=h(i).$implicit,o=d();return M(o.pauseOption.set(t.value))}),g(1),l()}if(a&2){let i=n.$implicit,e=d();m("active",e.pauseOption()===i.value),_(),v(" ",i.label," ")}}var be=[{label:$localize`5 minutes`,value:"5m"},{label:$localize`10 minutes`,value:"10m"},{label:$localize`15 minutes`,value:"15m"},{label:$localize`30 minutes`,value:"30m"},{label:$localize`1 hour`,value:"1h"},{label:$localize`4 hours`,value:"4h"},{label:$localize`8 hours`,value:"8h"},{label:$localize`24 hours`,value:"24h"},{label:$localize`Until resumed`,value:void 0}],$=class a{#e=c(P);pauseOptions=p(be);closed=k();isSubmitting=p(!1);pauseTransfers=p(!1);pauseOption=p(void 0);submit(){this.isSubmitting.set(!0);let n=this.pauseTransfers()||null,i=this.pauseOption();this.#e.postApiV1ServerstatePause({duration:i,pauseTransfers:n}).pipe(U(()=>this.isSubmitting.set(!1))).subscribe({next:e=>{this.closed.emit()}})}static \u0275fac=function(i){return new(i||a)};static \u0275cmp=N({type:a,selectors:[["app-pause-dialog"]],outputs:{closed:"closed"},decls:17,vars:4,consts:()=>{let n;n=$localize`Pause settings`;let i;i=$localize` Also pause transfers `;let e;e=$localize`If you pause transfers they could time out and cause retries or failures.`;let t;t=$localize`Cancel`;let o;return o=$localize` Update settings `,[n,i,e,t,o,["header",""],["content",""],[1,"radios"],[1,"primary","raised",3,"active"],[1,"check-wrap"],[1,"primary","raised",3,"click"],["type","warning"],["footer",""],["shButton","",3,"click"],["shButton","",1,"raised","primary",3,"click"]]},template:function(i,e){i&1&&(s(0,"header",5)(1,"h3"),S(2,0),l()(),s(3,"div",6)(4,"div",7),Z(5,De,2,3,"sh-radio",8,Y),l(),s(7,"div",9)(8,"sh-checkbox",10),T("click",function(){return e.pauseTransfers.set(!e.pauseTransfers())}),S(9,1),l(),s(10,"sh-alert",11),S(11,2),l()()(),s(12,"footer",12)(13,"button",13),T("click",function(){return e.closed.emit()}),S(14,3),l(),s(15,"button",14),T("click",function(){return e.submit()}),S(16,4),l()()),i&2&&(_(5),q(e.pauseOptions()),_(3),m("active",e.pauseTransfers()),_(7),m("loader",e.isSubmitting()))},dependencies:[x,me,pe,ue],styles:["[_nghost-%COMP%]{--dialog-p: 1.5rem;display:block}h3[_ngcontent-%COMP%]{font:var(--title-30)}.radios[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.check-wrap[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;padding:2rem 0 0}"],changeDetection:0})};var Me={Byte:"B",KByte:"KB",MByte:"MB",GByte:"GB",TByte:"TB",PByte:"PB"},Be=["mbps","gbps"],Ie=8,V=1024,w=V*1024,W=w*1024,K=W*1024,Fe=K*1024,Le={B:1,KB:V,MB:w,GB:W,TB:K,PB:Fe},Ge=1e3,X=Ge*1e3,J=X*1e3,ye=[{threshold:Fe,unitPrefix:"PByte"},{threshold:K,unitPrefix:"TByte"},{threshold:W,unitPrefix:"GByte"},{threshold:w,unitPrefix:"MByte"},{threshold:V,unitPrefix:"KByte"},{threshold:1,unitPrefix:"Byte"}],y=class a{#e=c(P);closed=k();isSubmitting=p(!1);sizeOptions=p([...Be]);maxUpload=p(0);maxDownload=p(0);maxUploadUnit=p("mbps");maxDownloadUnit=p("mbps");ngOnInit(){this.init()}convertToBitsPerSecondUnits(n,i){let t=n*(Le[i.toUpperCase()]||w)*Ie;return t===0?{value:0,unit:"mbps"}:t>=J?{value:parseFloat((t/J).toFixed(2)),unit:"gbps"}:{value:parseFloat((t/X).toFixed(2)),unit:"mbps"}}convertFromBitsPerSecondUnits(n,i){let e=0;switch(i){case"gbps":e=n*J;break;case"mbps":e=n*X;break}let t=e/Ie;if(t===0)return{valueForApi:0,unitPrefixForApi:"Byte"};for(let{threshold:o,unitPrefix:r}of ye)if(t>=o)return{valueForApi:Math.round(t/o),unitPrefixForApi:r};return{valueForApi:Math.round(t),unitPrefixForApi:"Byte"}}init(){this.#e.getApiV1Serversettings().subscribe({next:n=>{let i=n?.["max-upload-speed"],e=n?.["max-download-speed"];if(i&&i!==""){let t=i.match(/^(\d+(?:\.\d+)?)([A-Za-z]+)$/);if(t){let o=parseFloat(t[1]),r=t[2],u=this.convertToBitsPerSecondUnits(o,r);this.maxUpload.set(u.value),this.maxUploadUnit.set(u.unit)}else console.warn("Unexpected max-upload-speed format from API:",i),this.resetUpload()}else this.resetUpload();if(e&&e!==""){let t=e.match(/^(\d+(?:\.\d+)?)([A-Za-z]+)$/);if(t){let o=parseFloat(t[1]),r=t[2],u=this.convertToBitsPerSecondUnits(o,r);this.maxDownload.set(u.value),this.maxDownloadUnit.set(u.unit)}else console.warn("Unexpected max-download-speed format from API:",e),this.resetDownload()}else this.resetDownload()},error:n=>{console.error("Failed to get server settings:",n),this.resetDownload(),this.resetUpload()}})}resetDownload(){this.maxDownload.set(0),this.maxDownloadUnit.set("mbps")}resetUpload(){this.maxUpload.set(0),this.maxUploadUnit.set("mbps")}blockDecimalKeys(n){if([".",","].includes(n.key))return n.preventDefault()}cleanupInputAfterPasting(n){n.preventDefault();let i=n.clipboardData?.getData("text/plain");if(!i)return;let e=i.replaceAll(/[\.,]/g,"");n.target.value=e}submit(){this.isSubmitting.set(!0);let n="",i="",e=this.maxUpload()??0,t=this.maxUploadUnit(),o=this.maxDownload()??0,r=this.maxDownloadUnit();if(e>0){let{valueForApi:u,unitPrefixForApi:f}=this.convertFromBitsPerSecondUnits(e,t),A=Me[f];A?n=`${u}${A}`:console.error(`Invalid unit prefix for API submission (upload): ${f}. Defaulting to empty string.`)}if(o){let{valueForApi:u,unitPrefixForApi:f}=this.convertFromBitsPerSecondUnits(o,r),A=Me[f];A?i=`${u}${A}`:console.error(`Invalid unit prefix for API submission (download): ${f}. Defaulting to empty string.`)}this.#e.patchApiV1Serversettings({requestBody:{"max-upload-speed":n,"max-download-speed":i}}).pipe(U(()=>this.isSubmitting.set(!1))).subscribe({next:()=>{this.closed.emit(!0)},error:u=>{console.error("Failed to submit throttle settings:",u)}})}static \u0275fac=function(i){return new(i||a)};static \u0275cmp=N({type:a,selectors:[["app-throttle-settings-dialog"]],outputs:{closed:"closed"},decls:26,vars:10,consts:()=>{let n;n=$localize`Throttle network speed`;let i;i=$localize`We will round bits to the nearest byte value.`;let e;e=$localize`Max upload speed`;let t;t=$localize`Max download speed`;let o;o=$localize`Cancel`;let r;return r=$localize` Update settings `,[n,i,e,t,o,r,["content",""],[1,"column"],[1,"field-row"],["type","number",3,"paste","keydown","ngModelChange","ngModel"],[3,"isClearable","options"],["type","text",3,"ngModelChange","ngModel"],["footer",""],["shButton","",3,"click"],["shButton","",1,"raised","primary",3,"click"]]},template:function(i,e){i&1&&(s(0,"header")(1,"h3"),S(2,0),l(),s(3,"p"),S(4,1),l()(),s(5,"div",6)(6,"div",7)(7,"div",8)(8,"label"),S(9,2),l(),s(10,"sh-form-field")(11,"input",9),T("paste",function(o){return e.cleanupInputAfterPasting(o)})("keydown",function(o){return e.blockDecimalKeys(o)}),L("ngModelChange",function(o){return B(e.maxUpload,o)||(e.maxUpload=o),o}),l()(),s(12,"sh-select",10)(13,"input",11),L("ngModelChange",function(o){return B(e.maxUploadUnit,o)||(e.maxUploadUnit=o),o}),l()()(),s(14,"div",8)(15,"label"),S(16,3),l(),s(17,"sh-form-field")(18,"input",9),T("paste",function(o){return e.cleanupInputAfterPasting(o)})("keydown",function(o){return e.blockDecimalKeys(o)}),L("ngModelChange",function(o){return B(e.maxDownload,o)||(e.maxDownload=o),o}),l()(),s(19,"sh-select",10)(20,"input",11),L("ngModelChange",function(o){return B(e.maxDownloadUnit,o)||(e.maxDownloadUnit=o),o}),l()()()()(),s(21,"footer",12)(22,"button",13),T("click",function(){return e.closed.emit(!1)}),S(23,4),l(),s(24,"button",14),T("click",function(){return e.submit()}),S(25,5),l()()),i&2&&(_(11),b("ngModel",e.maxUpload),_(),R("isClearable",!1)("options",e.sizeOptions()),_(),b("ngModel",e.maxUploadUnit),_(5),b("ngModel",e.maxDownload),_(),R("isClearable",!1)("options",e.sizeOptions()),_(),b("ngModel",e.maxDownloadUnit),_(4),m("loader",e.isSubmitting()))},dependencies:[x,ae,_e,se,le,ce,Ce],styles:['[_nghost-%COMP%]{display:block}h3[_ngcontent-%COMP%]{font:var(--title-30)}header[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;padding:1rem;gap:.5rem;margin-bottom:1rem}.column[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.field-row[_ngcontent-%COMP%]{display:grid;grid-template-areas:"label label" "input select";grid-template-columns:1fr auto;align-items:center;gap:.5rem;width:100%}.field-row[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{grid-area:label}.field-row[_ngcontent-%COMP%] sh-form-field[_ngcontent-%COMP%]{grid-area:input}.field-row[_ngcontent-%COMP%] sh-select[_ngcontent-%COMP%]{grid-area:select}'],changeDetection:0})};function Ue(a,n){if(a&1&&(s(0,"div"),g(1),l(),C(2,"sh-progress-bar",11)),a&2){let i=d();_(),z("",i.statusData().actionText," - ",i.statusData().statusText),_(),R("value",i.statusData().progress*100)}}function ve(a,n){if(a&1&&(s(0,"div",7),g(1),s(2,"sh-icon"),g(3,"clock"),l(),g(4),H(5,"relativeTime"),H(6,"date"),l()),a&2){let i,e=d();_(),v(" ",(i=e.nextBackup().backup)==null||i.Backup==null?null:i.Backup.Name," - "),_(3),z(" ",te(5,3,e.nextBackup().time)," at ",ne(6,5,e.nextBackup().time,"shortTime")," ")}}function ke(a,n){a&1&&(s(0,"div",7),S(1,1),l())}function xe(a,n){a&1&&(s(0,"div",8),E(1,2),C(2,"sh-spinner"),O(),l()),a&2&&(_(2),ee("--spinner-size","12px")("--spinner-thickness","2px"))}function $e(a,n){if(a&1){let i=D();s(0,"button",10),T("click",function(){h(i);let t=d(2);return M(t.abort())}),E(1,3),C(2,"sh-icon"),O(),l()}}function we(a,n){if(a&1){let i=D();s(0,"button",10),T("click",function(){h(i);let t=d(2);return M(t.stop())}),E(1,4),C(2,"sh-icon"),O(),l()}}function ze(a,n){if(a&1&&I(0,$e,3,0,"button",12)(1,we,3,0,"button",12),a&2){let i=d();F(i.isStopping()?0:1)}}function He(a,n){a&1&&(E(0,0,1),C(1,"sh-icon"),O())}function Je(a,n){a&1&&(E(0,0,2),C(1,"sh-icon"),O())}var Re=new Date,j=class a{#e=c(P);#t=c(Pe);#n=c(Se);#a=c(Ne);#s=c(oe);#l=c(Ee);#i=c(Oe);minsAgo=Re.setMinutes(Re.getMinutes()-1);statusData=this.#t.statusData;serverState=this.#t.serverState;clientIsRunning=this.#t.clientIsRunning;isResuming=this.#t.isResuming;runningTask=G(()=>this.#i.serverState()?.ActiveTask?.Item1);isStopping=G(()=>this.runningTask()==this.#o());#o=p(-1);pgState=G(()=>this.#i.serverState());nextBackup=G(()=>{let n=this.#a.backups();return{backup:this.serverState()?.ProposedSchedule?.[0]?.backup,time:this.serverState()?.ProposedSchedule?.[0]?.Item2}});openThrottleSettingsDialog(){this.#n.open(y,{maxWidth:"550px",width:"100%"})}openPauseDialog(){this.#n.open($,{maxWidth:"550px",width:"100%"})}pauseResume(){if(this.clientIsRunning()){this.openPauseDialog();return}this.#t.pauseResume().subscribe()}stop(){let n=this.runningTask();n&&(this.#o.set(n),this.#e.postApiV1TaskByTaskidStop({taskid:n}).subscribe())}abort(){let n=this.runningTask();n&&this.#e.postApiV1TaskByTaskidAbort({taskid:n}).subscribe()}ngAfterViewInit(){let n=this.#s.relayIsEnabled()||!this.#l.hasWebSocket()?"longpoll":"websocket";this.#t.setConnectionMethod(n)}static \u0275fac=function(i){return new(i||a)};static \u0275cmp=N({type:a,selectors:[["app-status-bar"]],decls:15,vars:5,consts:()=>{let n;n=$localize`${"\uFFFD*10:1\uFFFD"}:START_BLOCK_IF:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SH_ICON:pause${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SH_ICON: Pause ${"\uFFFD/*10:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*11:2\uFFFD"}:START_BLOCK_ELSE:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SH_ICON:play${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SH_ICON: Start ${"\uFFFD/*11:2\uFFFD"}:CLOSE_BLOCK_ELSE:`,n=Q(n);let i;i=$localize`No scheduled tasks`;let e;e=$localize` Loading ${"\uFFFD#2\uFFFD"}:START_TAG_SH_SPINNER:${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_SPINNER:`;let t;t=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SH_ICON:skull${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_ICON: Abort `;let o;return o=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SH_ICON:stop${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_ICON: Stop `,[n,i,e,t,o,[1,"current-backup"],[1,"current-backup-progress"],[1,"label"],[1,"label","label-loading"],[1,"current-backup-actions"],["shButton","",3,"click"],[1,"raised","primary",3,"value"],["shButton",""]]},template:function(i,e){if(i&1&&(s(0,"div",5)(1,"div",6),I(2,Ue,3,3)(3,ve,7,8,"div",7)(4,ke,2,0,"div",7)(5,xe,3,4,"div",8),l(),s(6,"div",9),I(7,ze,2,1),s(8,"button",10),T("click",function(){return e.pauseResume()}),E(9,0),I(10,He,2,0)(11,Je,2,0),O(),l(),s(12,"button",10),T("click",function(){return e.openThrottleSettingsDialog()}),s(13,"sh-icon"),g(14,"speedometer"),l()()()()),i&2){let t;_(2),F((t=e.serverState())!=null&&t.ActiveTask&&(!((t=e.statusData())==null||t.task==null)&&t.task.Status)&&((t=e.statusData())==null||t.task==null?null:t.task.Status)!=="Completed"?2:e.nextBackup().backup||e.nextBackup().time?3:(t=e.serverState())!=null&&t.ActiveTask?5:4),_(5),F(e.runningTask()?7:-1),_(),m("loader",e.isResuming()),_(2),F(e.clientIsRunning()?10:11)}},dependencies:[de,re,Te,ge,fe,ie],styles:["[_nghost-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:1rem;min-height:3.875rem;border-bottom:1px solid var(--base-4);position:sticky;top:0;z-index:2000;background:var(--base-1)}.current-backup[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%;gap:.5rem}.current-backup-progress[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem;min-width:18.75rem;flex:1 0}.current-backup-progress[_ngcontent-%COMP%] sh-progress-bar[_ngcontent-%COMP%]{max-width:18.75rem;width:100%}.current-backup-progress[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem}.current-backup-actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}.label-loading[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.25rem}"],changeDetection:0})};export{j as a};
@@ -1 +1 @@
1
- import{d as a,e as b}from"./chunk-4NLJRM5D.js";import"./chunk-VUKS2SJL.js";import"./chunk-3NFAL4U4.js";import"./chunk-4VY6SMSL.js";import"./chunk-Z27IQRKV.js";import"./chunk-72HORZFV.js";import"./chunk-6Q6SSTBK.js";import"./chunk-MTQKK2WN.js";import"./chunk-ABYM5HWA.js";import"./chunk-Z35OG2DV.js";import"./chunk-QF4DQYEP.js";import"./chunk-PD73DDOS.js";import"./chunk-5ZSBXGHQ.js";import"./chunk-FPPZ4BUR.js";import"./chunk-QONLYWYC.js";import"./chunk-EUDKD2JW.js";export{a as SCHEDULE_FIELD_DEFAULTS,b as default};
1
+ import{d as a,e as b}from"./chunk-BQJICFF5.js";import"./chunk-A5LNLNWR.js";import"./chunk-3NFAL4U4.js";import"./chunk-4VY6SMSL.js";import"./chunk-Z27IQRKV.js";import"./chunk-72HORZFV.js";import"./chunk-6Q6SSTBK.js";import"./chunk-XLDVUBTQ.js";import"./chunk-ABYM5HWA.js";import"./chunk-Z35OG2DV.js";import"./chunk-QF4DQYEP.js";import"./chunk-2QJVTZ56.js";import"./chunk-5ZSBXGHQ.js";import"./chunk-FPPZ4BUR.js";import"./chunk-QONLYWYC.js";import"./chunk-EUDKD2JW.js";export{a as SCHEDULE_FIELD_DEFAULTS,b as default};
@@ -1 +1 @@
1
- import{h as l}from"./chunk-PD73DDOS.js";import{H as a,Qc as s,R as u,V as p,_ as d,pa as o}from"./chunk-QONLYWYC.js";var m=class r{#s=d(l);isLoaded=o(!1);systemInfo=o(null);filterGroups=o(null);backendModules=s(()=>this.systemInfo()?.BackendModules??[]);allOptionsGrouped=s(()=>{let e={displayName:"Default",options:this.systemInfo()?.Options?.map(this.#e)??[]},t=this.systemInfo()?.GenericModules?.map(n=>({displayName:n.DisplayName??n.Key,options:n.Options?.map(this.#e)??[]}))??[],i=this.systemInfo()?.CompressionModules?.map(n=>({displayName:n.DisplayName??n.Key,options:n.Options?.map(this.#e)??[]}))??[],c=this.systemInfo()?.EncryptionModules?.map(n=>({displayName:n.DisplayName??n.Key,options:n.Options?.map(this.#e)??[]}))??[];return[e,...t,...i,...c]});allOptions=s(()=>this.allOptionsGrouped().reduce((e,t)=>[...e,...t.options],[]));hasWebSocket=s(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:websocket"));hasV2ListOperations=s(()=>{let e=this.systemInfo()?.APIExtensions??[];return e.includes("v2:backup:list-filesets")&&e.includes("v2:backup:list-folder")});hasV2TestOperations=s(()=>(this.systemInfo()?.APIExtensions??[]).includes("v2:destination:test"));hasProgressSubscribeOption=s(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:subscribe:progress"));hasTaskSubscribeOption=s(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:subscribe:taskqueue"));hasTaskCompletedOption=s(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:subscribe:taskcompleted"));hasBackupListSubscribeOption=s(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:subscribe:backuplist"));hasWebSocketAuth=s(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:websocket:authenticate"));defaultOAuthUrl=s(()=>{let e=this.systemInfo()?.DefaultOAuthURL??"https://duplicati-oauth-handler.appspot.com/";return e.endsWith("/refresh")?e.slice(0,-8):e});defaultOAuthUrlV2=s(()=>{let e=this.systemInfo()?.DefaultOAuthURLv2??"https://oauth-service.duplicati.com/";return e.endsWith("/refresh")?e.slice(0,-8):e});preload(e=!1){let t=this.#s.getApiV1Systeminfo().pipe(u(i=>{this.systemInfo.set(i)}),a(()=>this.isLoaded.set(!0)));if(e)return t;t.subscribe()}preloadFilterGroups(e=!1){let t=this.#s.getApiV1SysteminfoFiltergroups().pipe(u(i=>{this.filterGroups.set(i)}),a(()=>this.isLoaded.set(!0)));if(e)return t;t.subscribe()}#e(e){return{name:e.Name,type:e.Type,shortDescription:e.ShortDescription??void 0,longDescription:e.LongDescription??void 0,deprecatedDescription:e.Deprecated??!1?e.DeprecationMessage??void 0:void 0,options:e.ValidValues,defaultValue:e.DefaultValue}}static \u0275fac=function(t){return new(t||r)};static \u0275prov=p({token:r,factory:r.\u0275fac,providedIn:"root"})};export{m as a};
1
+ import{h as l}from"./chunk-2QJVTZ56.js";import{H as a,Qc as s,R as u,V as p,_ as d,pa as o}from"./chunk-QONLYWYC.js";var m=class r{#s=d(l);isLoaded=o(!1);systemInfo=o(null);filterGroups=o(null);backendModules=s(()=>this.systemInfo()?.BackendModules??[]);allOptionsGrouped=s(()=>{let e={displayName:"Default",options:this.systemInfo()?.Options?.map(this.#e)??[]},t=this.systemInfo()?.GenericModules?.map(n=>({displayName:n.DisplayName??n.Key,options:n.Options?.map(this.#e)??[]}))??[],i=this.systemInfo()?.CompressionModules?.map(n=>({displayName:n.DisplayName??n.Key,options:n.Options?.map(this.#e)??[]}))??[],c=this.systemInfo()?.EncryptionModules?.map(n=>({displayName:n.DisplayName??n.Key,options:n.Options?.map(this.#e)??[]}))??[];return[e,...t,...i,...c]});allOptions=s(()=>this.allOptionsGrouped().reduce((e,t)=>[...e,...t.options],[]));hasWebSocket=s(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:websocket"));hasV2ListOperations=s(()=>{let e=this.systemInfo()?.APIExtensions??[];return e.includes("v2:backup:list-filesets")&&e.includes("v2:backup:list-folder")});hasV2TestOperations=s(()=>(this.systemInfo()?.APIExtensions??[]).includes("v2:destination:test"));hasProgressSubscribeOption=s(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:subscribe:progress"));hasTaskSubscribeOption=s(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:subscribe:taskqueue"));hasTaskCompletedOption=s(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:subscribe:taskcompleted"));hasBackupListSubscribeOption=s(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:subscribe:backuplist"));hasWebSocketAuth=s(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:websocket:authenticate"));defaultOAuthUrl=s(()=>{let e=this.systemInfo()?.DefaultOAuthURL??"https://duplicati-oauth-handler.appspot.com/";return e.endsWith("/refresh")?e.slice(0,-8):e});defaultOAuthUrlV2=s(()=>{let e=this.systemInfo()?.DefaultOAuthURLv2??"https://oauth-service.duplicati.com/";return e.endsWith("/refresh")?e.slice(0,-8):e});preload(e=!1){let t=this.#s.getApiV1Systeminfo().pipe(u(i=>{this.systemInfo.set(i)}),a(()=>this.isLoaded.set(!0)));if(e)return t;t.subscribe()}preloadFilterGroups(e=!1){let t=this.#s.getApiV1SysteminfoFiltergroups().pipe(u(i=>{this.filterGroups.set(i)}),a(()=>this.isLoaded.set(!0)));if(e)return t;t.subscribe()}#e(e){return{name:e.Name,type:e.Type,shortDescription:e.ShortDescription??void 0,longDescription:e.LongDescription??void 0,deprecatedDescription:e.Deprecated??!1?e.DeprecationMessage??void 0:void 0,options:e.ValidValues,defaultValue:e.DefaultValue}}static \u0275fac=function(t){return new(t||r)};static \u0275prov=p({token:r,factory:r.\u0275fac,providedIn:"root"})};export{m as a};
@@ -1 +1 @@
1
- import{g as C}from"./chunk-DBQGZZI2.js";import"./chunk-DILTD4XG.js";import"./chunk-ZBVBVQO7.js";import"./chunk-SJ3V6DON.js";import{a as w}from"./chunk-TPBZNCDW.js";import{h as k}from"./chunk-4NLJRM5D.js";import"./chunk-VUKS2SJL.js";import"./chunk-3NFAL4U4.js";import"./chunk-4VY6SMSL.js";import{b as u}from"./chunk-Z27IQRKV.js";import"./chunk-RDCD2W2C.js";import"./chunk-TJIZJNCK.js";import"./chunk-ZSZLXWN6.js";import"./chunk-72HORZFV.js";import"./chunk-6Q6SSTBK.js";import"./chunk-MTQKK2WN.js";import"./chunk-LN26XMBJ.js";import"./chunk-XVWOVBC4.js";import"./chunk-WXF4HUYT.js";import{a as A,b as $,c as M,d as I,e as G,f as W}from"./chunk-ABYM5HWA.js";import"./chunk-Z35OG2DV.js";import{L as v,Q as y}from"./chunk-QF4DQYEP.js";import"./chunk-PD73DDOS.js";import"./chunk-I2LW33GO.js";import"./chunk-5ZSBXGHQ.js";import"./chunk-FPPZ4BUR.js";import"./chunk-JYWOYPSQ.js";import{$b as O,Ac as N,Bc as R,Cb as _,Cc as p,Db as i,Eb as n,Fb as s,Rc as L,Sa as r,Tb as F,Ub as l,_ as c,cb as P,kc as D,pa as f,xb as E,yb as g}from"./chunk-QONLYWYC.js";import"./chunk-EUDKD2JW.js";var b=()=>["/restore-from-files/destination"],x=()=>["/restore-from-files/encryption"],H=()=>["/restore-from-files/select-files"],J=()=>["/restore-from-files/options"],X=t=>["/restore",t,"select-files"],z=t=>["/restore",t,"options"];function B(t,o){t&1&&(i(0,"div",7),F(1,0),s(2,"sh-radio"),l(),n(),i(3,"div",7),F(4,1),s(5,"sh-radio"),l(),n(),i(6,"div",7),F(7,2),s(8,"sh-radio"),l(),n(),i(9,"div",7),F(10,3),s(11,"sh-radio"),l(),n()),t&2&&(_("routerLink",R(4,b)),r(3),_("routerLink",R(5,x)),r(3),_("routerLink",R(6,H)),r(3),_("routerLink",R(7,J)))}function U(t,o){if(t&1&&(i(0,"div",7),F(1,4),s(2,"sh-radio"),l(),n(),i(3,"div",7),F(4,5),s(5,"sh-radio"),l(),n()),t&2){let e=O(2);_("routerLink",p(2,X,e.backupId())),r(3),_("routerLink",p(4,z,e.backupId()))}}function j(t,o){if(t&1&&(i(0,"sh-stepper",6),E(1,B,12,8)(2,U,6,6),n()),t&2){let e=O();r(),g(e.isFileRestore()?1:2)}}var h=class t{#e=c($);#o=c(I);#t=c(C);#i=u(this.#e.params);#n=u(this.#e.url);#s=u(this.#e.children[0].url);backupId=this.#t.backupId;isFileRestore=this.#t.isFileRestore;isProgressPage=f(!1);paramsChanged=L(()=>{let o=this.#s(),e=this.#i()?.id,a=!!this.#n()?.find(S=>S.path==="restore-from-files"),T=!!o?.find(S=>S.path==="progress");this.isProgressPage.set(T),this.#t.init(e,a)});ngOnInit(){this.#o.events.subscribe(o=>{if(o instanceof A){let e=o.urlAfterRedirects;this.isProgressPage.set(e.includes("progress"))}})}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=P({type:t,selectors:[["app-restore-flow"]],hostVars:2,hostBindings:function(e,a){e&2&&D("full-width",a.isProgressPage())},features:[N([C,k])],decls:4,vars:1,consts:()=>{let o;o=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SH_RADIO:${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_RADIO: Destination `;let e;e=$localize`${"\uFFFD#5\uFFFD"}:START_TAG_SH_RADIO:${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SH_RADIO: Encryption `;let a;a=$localize`${"\uFFFD#8\uFFFD"}:START_TAG_SH_RADIO:${"\uFFFD/#8\uFFFD"}:CLOSE_TAG_SH_RADIO: Select files `;let T;T=$localize`${"\uFFFD#11\uFFFD"}:START_TAG_SH_RADIO:${"\uFFFD/#11\uFFFD"}:CLOSE_TAG_SH_RADIO: Options `;let S;S=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SH_RADIO:${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_RADIO: Select files `;let m;return m=$localize`${"\uFFFD#5\uFFFD"}:START_TAG_SH_RADIO:${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SH_RADIO: Options `,[o,e,a,T,S,m,[1,"primary"],["step","","routerLinkActive","active",3,"routerLink"]]},template:function(e,a){e&1&&(s(0,"app-status-bar"),E(1,j,3,1,"sh-stepper",6),i(2,"section"),s(3,"router-outlet"),n()),e&2&&(r(),g(a.isProgressPage()?-1:1))},dependencies:[y,v,w,M,G,W],styles:["[_nghost-%COMP%]{display:block}.full-width[_nghost-%COMP%] section[_ngcontent-%COMP%]{max-width:62.5rem}sh-stepper[_ngcontent-%COMP%]{max-width:31.25rem;margin:2.5rem auto}section[_ngcontent-%COMP%]{max-width:31.25rem;margin:0 auto 2.5rem}"],changeDetection:0})};export{h as default};
1
+ import{g as C}from"./chunk-D6KZSKI7.js";import"./chunk-KAAYNQ7L.js";import"./chunk-ZBVBVQO7.js";import"./chunk-C6F6FP4R.js";import{a as w}from"./chunk-VXRNST6C.js";import{h as k}from"./chunk-BQJICFF5.js";import"./chunk-A5LNLNWR.js";import"./chunk-3NFAL4U4.js";import"./chunk-4VY6SMSL.js";import{b as u}from"./chunk-Z27IQRKV.js";import"./chunk-GYDI67IZ.js";import"./chunk-4NBLWONL.js";import"./chunk-CCKT2GLS.js";import"./chunk-72HORZFV.js";import"./chunk-6Q6SSTBK.js";import"./chunk-XLDVUBTQ.js";import"./chunk-LN26XMBJ.js";import"./chunk-7LYN2XHO.js";import"./chunk-GCCJSS4C.js";import{a as A,b as $,c as M,d as I,e as G,f as W}from"./chunk-ABYM5HWA.js";import"./chunk-Z35OG2DV.js";import{L as v,Q as y}from"./chunk-QF4DQYEP.js";import"./chunk-2QJVTZ56.js";import"./chunk-I2LW33GO.js";import"./chunk-5ZSBXGHQ.js";import"./chunk-FPPZ4BUR.js";import"./chunk-JYWOYPSQ.js";import{$b as O,Ac as N,Bc as R,Cb as _,Cc as p,Db as i,Eb as n,Fb as s,Rc as L,Sa as r,Tb as F,Ub as l,_ as c,cb as P,kc as D,pa as f,xb as E,yb as g}from"./chunk-QONLYWYC.js";import"./chunk-EUDKD2JW.js";var b=()=>["/restore-from-files/destination"],x=()=>["/restore-from-files/encryption"],H=()=>["/restore-from-files/select-files"],J=()=>["/restore-from-files/options"],X=t=>["/restore",t,"select-files"],z=t=>["/restore",t,"options"];function B(t,o){t&1&&(i(0,"div",7),F(1,0),s(2,"sh-radio"),l(),n(),i(3,"div",7),F(4,1),s(5,"sh-radio"),l(),n(),i(6,"div",7),F(7,2),s(8,"sh-radio"),l(),n(),i(9,"div",7),F(10,3),s(11,"sh-radio"),l(),n()),t&2&&(_("routerLink",R(4,b)),r(3),_("routerLink",R(5,x)),r(3),_("routerLink",R(6,H)),r(3),_("routerLink",R(7,J)))}function U(t,o){if(t&1&&(i(0,"div",7),F(1,4),s(2,"sh-radio"),l(),n(),i(3,"div",7),F(4,5),s(5,"sh-radio"),l(),n()),t&2){let e=O(2);_("routerLink",p(2,X,e.backupId())),r(3),_("routerLink",p(4,z,e.backupId()))}}function j(t,o){if(t&1&&(i(0,"sh-stepper",6),E(1,B,12,8)(2,U,6,6),n()),t&2){let e=O();r(),g(e.isFileRestore()?1:2)}}var h=class t{#e=c($);#o=c(I);#t=c(C);#i=u(this.#e.params);#n=u(this.#e.url);#s=u(this.#e.children[0].url);backupId=this.#t.backupId;isFileRestore=this.#t.isFileRestore;isProgressPage=f(!1);paramsChanged=L(()=>{let o=this.#s(),e=this.#i()?.id,a=!!this.#n()?.find(S=>S.path==="restore-from-files"),T=!!o?.find(S=>S.path==="progress");this.isProgressPage.set(T),this.#t.init(e,a)});ngOnInit(){this.#o.events.subscribe(o=>{if(o instanceof A){let e=o.urlAfterRedirects;this.isProgressPage.set(e.includes("progress"))}})}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=P({type:t,selectors:[["app-restore-flow"]],hostVars:2,hostBindings:function(e,a){e&2&&D("full-width",a.isProgressPage())},features:[N([C,k])],decls:4,vars:1,consts:()=>{let o;o=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SH_RADIO:${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_RADIO: Destination `;let e;e=$localize`${"\uFFFD#5\uFFFD"}:START_TAG_SH_RADIO:${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SH_RADIO: Encryption `;let a;a=$localize`${"\uFFFD#8\uFFFD"}:START_TAG_SH_RADIO:${"\uFFFD/#8\uFFFD"}:CLOSE_TAG_SH_RADIO: Select files `;let T;T=$localize`${"\uFFFD#11\uFFFD"}:START_TAG_SH_RADIO:${"\uFFFD/#11\uFFFD"}:CLOSE_TAG_SH_RADIO: Options `;let S;S=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SH_RADIO:${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_RADIO: Select files `;let m;return m=$localize`${"\uFFFD#5\uFFFD"}:START_TAG_SH_RADIO:${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SH_RADIO: Options `,[o,e,a,T,S,m,[1,"primary"],["step","","routerLinkActive","active",3,"routerLink"]]},template:function(e,a){e&1&&(s(0,"app-status-bar"),E(1,j,3,1,"sh-stepper",6),i(2,"section"),s(3,"router-outlet"),n()),e&2&&(r(),g(a.isProgressPage()?-1:1))},dependencies:[y,v,w,M,G,W],styles:["[_nghost-%COMP%]{display:block}.full-width[_nghost-%COMP%] section[_ngcontent-%COMP%]{max-width:62.5rem}sh-stepper[_ngcontent-%COMP%]{max-width:31.25rem;margin:2.5rem auto}section[_ngcontent-%COMP%]{max-width:31.25rem;margin:0 auto 2.5rem}"],changeDetection:0})};export{h as default};
@@ -1 +1 @@
1
- import{c as re}from"./chunk-Z27IQRKV.js";import{a as le}from"./chunk-TJIZJNCK.js";import"./chunk-ZSZLXWN6.js";import{a as _e}from"./chunk-72HORZFV.js";import"./chunk-6Q6SSTBK.js";import"./chunk-MTQKK2WN.js";import{a as ae}from"./chunk-LN26XMBJ.js";import"./chunk-XVWOVBC4.js";import"./chunk-WXF4HUYT.js";import{d as j,e as q}from"./chunk-ABYM5HWA.js";import"./chunk-Z35OG2DV.js";import{B as ne,D as ie,b as H,e as Q,i as Y,s as Z,u as ee,z as te}from"./chunk-QF4DQYEP.js";import{h as oe}from"./chunk-PD73DDOS.js";import"./chunk-5ZSBXGHQ.js";import"./chunk-FPPZ4BUR.js";import{$b as C,B as I,Bc as J,Cb as N,Cc as X,Db as i,Eb as o,Fc as z,H as K,Ic as V,Mb as g,Qc as M,Sa as r,Vb as c,Wb as A,Wc as W,Xb as L,Yb as F,Zb as $,_ as u,cb as y,ea as p,fa as P,kc as x,n as k,nc as E,pa as T,r as U,sc as S,tc as D,uc as h,vc as G,wc as w,xb as m,xc as v,yb as f}from"./chunk-QONLYWYC.js";import"./chunk-EUDKD2JW.js";var ce=l=>["/backup",l,"export"],se=()=>["/"];function Ee(l,_){if(l&1){let t=g();i(0,"section")(1,"h4"),c(2,4),o(),i(3,"p"),c(4,5),o(),i(5,"sh-checkbox",11),E(6," Delete local database "),i(7,"input",12),h("ngModelChange",function(e){p(t);let a=C();return D(a.deleteLocalDb,e)||(a.deleteLocalDb=e),P(e)}),o()()()}if(l&2){let t=C();r(7),S("ngModel",t.deleteLocalDb)}}function ue(l,_){if(l&1){let t=g();i(0,"section")(1,"h4"),c(2,6),o(),i(3,"p"),c(4,7),z(5,"bytes"),o(),i(6,"sh-checkbox",11),E(7," Delete remote files "),i(8,"input",12),h("ngModelChange",function(e){p(t);let a=C();return D(a.deleteRemoteFiles,e)||(a.deleteRemoteFiles=e),P(e)}),o()()()}if(l&2){let t=C(),n=v(0),e=(n==null||n.Backup==null||n.Backup.Metadata==null?null:n.Backup.Metadata.TargetFilesSize)??0;r(5),A(t.fileCount())(t.fileCount())(V(5,4,e,!0,!0)),L(4),r(3),S("ngModel",t.deleteRemoteFiles)}}var B=class l{#t=u(oe);#n=u(te);#e=u(le);#i=u(j);id=W.required();backup=M(()=>this.#e.getBackupById(this.id()));noLocalDbResource=re({params:()=>({dbPath:this.backup()?.Backup?.DBPath}),stream:({params:_})=>this.#t.postApiV1FilesystemValidate({requestBody:{path:_.dbPath}}).pipe(U(()=>!0),I(()=>k(!1)))});fileCount=M(()=>parseInt(this.backup()?.Backup?.Metadata?.TargetFilesCount??"0",10));deleteLocalDb=T(!1);deleteRemoteFiles=T(!1);isDeleting=T(!1);deleteBackup(){let _=this.id(),t=this.deleteLocalDb(),n=this.deleteRemoteFiles();this.isDeleting.set(!0),this.#n.open(_e,{data:{title:$localize`Confirm delete`,message:$localize`Are you sure you want to delete this backup?`,confirmText:$localize`Delete backup`,cancelText:$localize`Cancel`},closed:e=>{e&&this.#e.deleteBackup({id:_,deleteLocalDb:t,deleteRemoteFiles:n}).pipe(K(()=>this.isDeleting.set(!1))).subscribe({next:()=>{this.#i.navigate(["/"])}})}})}static \u0275fac=function(t){return new(t||l)};static \u0275cmp=y({type:l,selectors:[["app-delete-backup"]],inputs:{id:[1,"id"]},decls:19,vars:11,consts:()=>{let _;_=$localize`Delete backup: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let t;t=$localize`Export configuration`;let n;n=$localize`If you want to use the backup later, you can export the configuration before deleting it.`;let e;e=$localize`Cancel`;let a;a=$localize`Delete local database`;let b;b=$localize` Each backup has a local database associated with it, which stores information about the remote backup on the local machine. When deleting a backup, you can also delete the local database without affecting the ability to restore the remote files. If you are using the local database for backups from the commandline, you should keep the database. `;let R;R=$localize`Delete remote files`;let d;d=$localize`{VAR_PLURAL, plural, =1 {1 file} other {{INTERPOLATION} files}}`,d=F(d,{INTERPOLATION:"\uFFFD1\uFFFD",VAR_PLURAL:"\uFFFD0\uFFFD"});let O;return O=$localize` Delete ${d}:ICU@@2159106180826349718: (${"\uFFFD2\uFFFD"}:INTERPOLATION_1:) from the remote storage? `,[_,t,n,e,a,b,R,O,["shButton","",3,"routerLink"],[1,"actions"],["shButton","",1,"raised","error",3,"click"],[1,"primary","raised"],["type","checkbox",3,"ngModelChange","ngModel"]]},template:function(t,n){if(t&1){let e=g();G(0),i(1,"h3"),c(2,0),o(),m(3,Ee,8,1,"section"),i(4,"section")(5,"h4"),c(6,1),o(),i(7,"p"),c(8,2),o(),i(9,"button",8),E(10," Export configuration "),i(11,"sh-icon"),E(12,"caret-right"),o()()(),m(13,ue,9,8,"section"),i(14,"div",9)(15,"button",8),c(16,3),o(),i(17,"button",10),$("click",function(){return p(e),P(n.deleteBackup())}),E(18,"Delete backup"),o()()}if(t&2){let e=w(n.backup()),a=n.noLocalDbResource.value();r(2),A(e==null||e.Backup==null?null:e.Backup.Name),L(2),r(),f(a?3:-1),r(6),N("routerLink",X(8,ce,n.id())),r(4),f(a?13:-1),r(2),N("routerLink",J(10,se)),r(2),x("loader",n.isDeleting())}},dependencies:[ie,ne,ee,Z,H,Q,Y,q,ae],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;padding:2.5rem;max-width:43.75rem}section[_ngcontent-%COMP%]{padding:2rem 0;display:flex;align-items:flex-start;flex-direction:column}h3[_ngcontent-%COMP%]{font:var(--title-30);margin:0}h4[_ngcontent-%COMP%]{font:var(--paragraph-20);margin-bottom:.5rem}p[_ngcontent-%COMP%]{margin-bottom:1rem}.actions[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;gap:.5rem;padding:2rem 0}"],changeDetection:0})};export{B as default};
1
+ import{c as re}from"./chunk-Z27IQRKV.js";import{a as le}from"./chunk-4NBLWONL.js";import"./chunk-CCKT2GLS.js";import{a as _e}from"./chunk-72HORZFV.js";import"./chunk-6Q6SSTBK.js";import"./chunk-XLDVUBTQ.js";import{a as ae}from"./chunk-LN26XMBJ.js";import"./chunk-7LYN2XHO.js";import"./chunk-GCCJSS4C.js";import{d as j,e as q}from"./chunk-ABYM5HWA.js";import"./chunk-Z35OG2DV.js";import{B as ne,D as ie,b as H,e as Q,i as Y,s as Z,u as ee,z as te}from"./chunk-QF4DQYEP.js";import{h as oe}from"./chunk-2QJVTZ56.js";import"./chunk-5ZSBXGHQ.js";import"./chunk-FPPZ4BUR.js";import{$b as C,B as I,Bc as J,Cb as N,Cc as X,Db as i,Eb as o,Fc as z,H as K,Ic as V,Mb as g,Qc as M,Sa as r,Vb as c,Wb as A,Wc as W,Xb as L,Yb as F,Zb as $,_ as u,cb as y,ea as p,fa as P,kc as x,n as k,nc as E,pa as T,r as U,sc as S,tc as D,uc as h,vc as G,wc as w,xb as m,xc as v,yb as f}from"./chunk-QONLYWYC.js";import"./chunk-EUDKD2JW.js";var ce=l=>["/backup",l,"export"],se=()=>["/"];function Ee(l,_){if(l&1){let t=g();i(0,"section")(1,"h4"),c(2,4),o(),i(3,"p"),c(4,5),o(),i(5,"sh-checkbox",11),E(6," Delete local database "),i(7,"input",12),h("ngModelChange",function(e){p(t);let a=C();return D(a.deleteLocalDb,e)||(a.deleteLocalDb=e),P(e)}),o()()()}if(l&2){let t=C();r(7),S("ngModel",t.deleteLocalDb)}}function ue(l,_){if(l&1){let t=g();i(0,"section")(1,"h4"),c(2,6),o(),i(3,"p"),c(4,7),z(5,"bytes"),o(),i(6,"sh-checkbox",11),E(7," Delete remote files "),i(8,"input",12),h("ngModelChange",function(e){p(t);let a=C();return D(a.deleteRemoteFiles,e)||(a.deleteRemoteFiles=e),P(e)}),o()()()}if(l&2){let t=C(),n=v(0),e=(n==null||n.Backup==null||n.Backup.Metadata==null?null:n.Backup.Metadata.TargetFilesSize)??0;r(5),A(t.fileCount())(t.fileCount())(V(5,4,e,!0,!0)),L(4),r(3),S("ngModel",t.deleteRemoteFiles)}}var B=class l{#t=u(oe);#n=u(te);#e=u(le);#i=u(j);id=W.required();backup=M(()=>this.#e.getBackupById(this.id()));noLocalDbResource=re({params:()=>({dbPath:this.backup()?.Backup?.DBPath}),stream:({params:_})=>this.#t.postApiV1FilesystemValidate({requestBody:{path:_.dbPath}}).pipe(U(()=>!0),I(()=>k(!1)))});fileCount=M(()=>parseInt(this.backup()?.Backup?.Metadata?.TargetFilesCount??"0",10));deleteLocalDb=T(!1);deleteRemoteFiles=T(!1);isDeleting=T(!1);deleteBackup(){let _=this.id(),t=this.deleteLocalDb(),n=this.deleteRemoteFiles();this.isDeleting.set(!0),this.#n.open(_e,{data:{title:$localize`Confirm delete`,message:$localize`Are you sure you want to delete this backup?`,confirmText:$localize`Delete backup`,cancelText:$localize`Cancel`},closed:e=>{e&&this.#e.deleteBackup({id:_,deleteLocalDb:t,deleteRemoteFiles:n}).pipe(K(()=>this.isDeleting.set(!1))).subscribe({next:()=>{this.#i.navigate(["/"])}})}})}static \u0275fac=function(t){return new(t||l)};static \u0275cmp=y({type:l,selectors:[["app-delete-backup"]],inputs:{id:[1,"id"]},decls:19,vars:11,consts:()=>{let _;_=$localize`Delete backup: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let t;t=$localize`Export configuration`;let n;n=$localize`If you want to use the backup later, you can export the configuration before deleting it.`;let e;e=$localize`Cancel`;let a;a=$localize`Delete local database`;let b;b=$localize` Each backup has a local database associated with it, which stores information about the remote backup on the local machine. When deleting a backup, you can also delete the local database without affecting the ability to restore the remote files. If you are using the local database for backups from the commandline, you should keep the database. `;let R;R=$localize`Delete remote files`;let d;d=$localize`{VAR_PLURAL, plural, =1 {1 file} other {{INTERPOLATION} files}}`,d=F(d,{INTERPOLATION:"\uFFFD1\uFFFD",VAR_PLURAL:"\uFFFD0\uFFFD"});let O;return O=$localize` Delete ${d}:ICU@@2159106180826349718: (${"\uFFFD2\uFFFD"}:INTERPOLATION_1:) from the remote storage? `,[_,t,n,e,a,b,R,O,["shButton","",3,"routerLink"],[1,"actions"],["shButton","",1,"raised","error",3,"click"],[1,"primary","raised"],["type","checkbox",3,"ngModelChange","ngModel"]]},template:function(t,n){if(t&1){let e=g();G(0),i(1,"h3"),c(2,0),o(),m(3,Ee,8,1,"section"),i(4,"section")(5,"h4"),c(6,1),o(),i(7,"p"),c(8,2),o(),i(9,"button",8),E(10," Export configuration "),i(11,"sh-icon"),E(12,"caret-right"),o()()(),m(13,ue,9,8,"section"),i(14,"div",9)(15,"button",8),c(16,3),o(),i(17,"button",10),$("click",function(){return p(e),P(n.deleteBackup())}),E(18,"Delete backup"),o()()}if(t&2){let e=w(n.backup()),a=n.noLocalDbResource.value();r(2),A(e==null||e.Backup==null?null:e.Backup.Name),L(2),r(),f(a?3:-1),r(6),N("routerLink",X(8,ce,n.id())),r(4),f(a?13:-1),r(2),N("routerLink",J(10,se)),r(2),x("loader",n.isDeleting())}},dependencies:[ie,ne,ee,Z,H,Q,Y,q,ae],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;padding:2.5rem;max-width:43.75rem}section[_ngcontent-%COMP%]{padding:2rem 0;display:flex;align-items:flex-start;flex-direction:column}h3[_ngcontent-%COMP%]{font:var(--title-30);margin:0}h4[_ngcontent-%COMP%]{font:var(--paragraph-20);margin-bottom:.5rem}p[_ngcontent-%COMP%]{margin-bottom:1rem}.actions[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;gap:.5rem;padding:2rem 0}"],changeDetection:0})};export{B as default};
@@ -1 +1 @@
1
- import{a as M}from"./chunk-TPBZNCDW.js";import"./chunk-RDCD2W2C.js";import"./chunk-TJIZJNCK.js";import"./chunk-ZSZLXWN6.js";import"./chunk-72HORZFV.js";import"./chunk-6Q6SSTBK.js";import"./chunk-MTQKK2WN.js";import"./chunk-LN26XMBJ.js";import"./chunk-XVWOVBC4.js";import"./chunk-WXF4HUYT.js";import{e as m}from"./chunk-ABYM5HWA.js";import"./chunk-Z35OG2DV.js";import{B as D,C as N,u as E}from"./chunk-QF4DQYEP.js";import"./chunk-PD73DDOS.js";import"./chunk-I2LW33GO.js";import"./chunk-5ZSBXGHQ.js";import"./chunk-FPPZ4BUR.js";import"./chunk-JYWOYPSQ.js";import{Bc as d,Cb as s,Db as e,Eb as n,Fb as o,Sa as c,Tb as r,Ub as l,Vb as i,cb as T}from"./chunk-QONLYWYC.js";import"./chunk-EUDKD2JW.js";var f=()=>["/backup/new"],O=()=>["/backup/import"],u=class p{static \u0275fac=function(t){return new(t||p)};static \u0275cmp=T({type:p,selectors:[["app-add-backup"]],decls:23,vars:4,consts:()=>{let a;a=$localize`Add a new backup`;let t;t=$localize`New backup`;let C;C=$localize`Configure a new backup. Choose your destination, source data and schedule.`;let A;A=$localize` Add a new backup ${"\uFFFD#13\uFFFD"}:START_TAG_SH_ICON:plus${"\uFFFD/#13\uFFFD"}:CLOSE_TAG_SH_ICON:`;let g;g=$localize`Import from file`;let P;P=$localize`Import backup configuration from a file. During import, you can adjust the settings.`;let S;return S=$localize` Import from file ${"\uFFFD#22\uFFFD"}:START_TAG_SH_ICON:upload-simple${"\uFFFD/#22\uFFFD"}:CLOSE_TAG_SH_ICON:`,[a,t,C,A,g,P,S,[1,"backup-types"],[1,"type-a"],["src","assets/images/new-backup.png"],["shButton","",1,"raised","primary",3,"routerLink"]]},template:function(t,C){t&1&&(o(0,"app-status-bar"),e(1,"section")(2,"h2"),i(3,0),n(),e(4,"div",7)(5,"sh-card",8),o(6,"img",9),e(7,"h3"),i(8,1),n(),e(9,"p"),i(10,2),n(),e(11,"button",10),r(12,3),o(13,"sh-icon"),l(),n()(),e(14,"sh-card",8),o(15,"img",9),e(16,"h3"),i(17,4),n(),e(18,"p"),i(19,5),n(),e(20,"button",10),r(21,6),o(22,"sh-icon"),l(),n()()()()),t&2&&(c(11),s("routerLink",d(2,f)),c(9),s("routerLink",d(3,O)))},dependencies:[M,D,N,E,m],styles:["[_nghost-%COMP%]{display:block}section[_ngcontent-%COMP%]{display:flex;align-items:center;flex-direction:column;gap:2rem;padding:2rem 0}div.backup-types[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:1rem;max-width:43.75rem}sh-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:1rem;padding-bottom:3rem}sh-card[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-width:18.75rem}sh-card[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{text-wrap:balance;text-align:center;width:75%}"],changeDetection:0})};export{u as default};
1
+ import{a as M}from"./chunk-VXRNST6C.js";import"./chunk-GYDI67IZ.js";import"./chunk-4NBLWONL.js";import"./chunk-CCKT2GLS.js";import"./chunk-72HORZFV.js";import"./chunk-6Q6SSTBK.js";import"./chunk-XLDVUBTQ.js";import"./chunk-LN26XMBJ.js";import"./chunk-7LYN2XHO.js";import"./chunk-GCCJSS4C.js";import{e as m}from"./chunk-ABYM5HWA.js";import"./chunk-Z35OG2DV.js";import{B as D,C as N,u as E}from"./chunk-QF4DQYEP.js";import"./chunk-2QJVTZ56.js";import"./chunk-I2LW33GO.js";import"./chunk-5ZSBXGHQ.js";import"./chunk-FPPZ4BUR.js";import"./chunk-JYWOYPSQ.js";import{Bc as d,Cb as s,Db as e,Eb as n,Fb as o,Sa as c,Tb as r,Ub as l,Vb as i,cb as T}from"./chunk-QONLYWYC.js";import"./chunk-EUDKD2JW.js";var f=()=>["/backup/new"],O=()=>["/backup/import"],u=class p{static \u0275fac=function(t){return new(t||p)};static \u0275cmp=T({type:p,selectors:[["app-add-backup"]],decls:23,vars:4,consts:()=>{let a;a=$localize`Add a new backup`;let t;t=$localize`New backup`;let C;C=$localize`Configure a new backup. Choose your destination, source data and schedule.`;let A;A=$localize` Add a new backup ${"\uFFFD#13\uFFFD"}:START_TAG_SH_ICON:plus${"\uFFFD/#13\uFFFD"}:CLOSE_TAG_SH_ICON:`;let g;g=$localize`Import from file`;let P;P=$localize`Import backup configuration from a file. During import, you can adjust the settings.`;let S;return S=$localize` Import from file ${"\uFFFD#22\uFFFD"}:START_TAG_SH_ICON:upload-simple${"\uFFFD/#22\uFFFD"}:CLOSE_TAG_SH_ICON:`,[a,t,C,A,g,P,S,[1,"backup-types"],[1,"type-a"],["src","assets/images/new-backup.png"],["shButton","",1,"raised","primary",3,"routerLink"]]},template:function(t,C){t&1&&(o(0,"app-status-bar"),e(1,"section")(2,"h2"),i(3,0),n(),e(4,"div",7)(5,"sh-card",8),o(6,"img",9),e(7,"h3"),i(8,1),n(),e(9,"p"),i(10,2),n(),e(11,"button",10),r(12,3),o(13,"sh-icon"),l(),n()(),e(14,"sh-card",8),o(15,"img",9),e(16,"h3"),i(17,4),n(),e(18,"p"),i(19,5),n(),e(20,"button",10),r(21,6),o(22,"sh-icon"),l(),n()()()()),t&2&&(c(11),s("routerLink",d(2,f)),c(9),s("routerLink",d(3,O)))},dependencies:[M,D,N,E,m],styles:["[_nghost-%COMP%]{display:block}section[_ngcontent-%COMP%]{display:flex;align-items:center;flex-direction:column;gap:2rem;padding:2rem 0}div.backup-types[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:1rem;max-width:43.75rem}sh-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:1rem;padding-bottom:3rem}sh-card[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-width:18.75rem}sh-card[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{text-wrap:balance;text-align:center;width:75%}"],changeDetection:0})};export{u as default};
@@ -1,2 +1,2 @@
1
- import{a as F}from"./chunk-QWQKYLNR.js";import{I as A,S as D,u as k}from"./chunk-QF4DQYEP.js";import{la as $}from"./chunk-5ZSBXGHQ.js";import{$b as d,Ab as S,Bb as f,Cb as M,Db as o,Eb as i,Fb as P,Fc as R,Hc as y,Mb as N,Rc as v,Sa as l,Vb as m,Wc as C,Zb as G,_ as O,cb as x,ea as I,fa as h,jc as w,kc as E,nc as s,oc as L,pa as T,pc as _,xb as g,yb as p,zb as u}from"./chunk-QONLYWYC.js";function V(n,t){n&1&&(o(0,"div",4),m(1,0),i())}function B(n,t){if(n&1&&(o(0,"li"),s(1),i()),n&2){let e=t.$implicit;l(),L(e)}}function J(n,t){if(n&1&&(o(0,"code")(1,"ol",15),S(2,B,2,1,"li",null,u),i()()),n&2){let e=d(2).$implicit,a=d(2);l(2),f(a.breakIntoLines(e.Exception))}}function U(n,t){if(n&1&&(o(0,"li"),s(1),i()),n&2){let e=t.$implicit;l(),L(e)}}function X(n,t){if(n&1&&(o(0,"code")(1,"ol",15),S(2,U,2,1,"li",null,u),i()()),n&2){let e=d(2).$implicit,a=d(2);l(2),f(a.breakIntoLines(e.Message))}}function j(n,t){if(n&1&&(o(0,"tr")(1,"td",12)(2,"sh-list",13)(3,"div",14),s(4),i(),o(5,"div",14),s(6),i(),o(7,"div",14),s(8),i(),o(9,"div",14),s(10),i(),o(11,"div",14),s(12),i()(),g(13,J,4,0,"code"),g(14,X,4,0,"code"),i()()),n&2){let e=d().$implicit;l(4),_("ID: ",e.ID),l(2),_("Type: ",e.Type),l(2),_("Tag: ",e.Tag),l(2),_("TaskID: ",e.TaskID),l(2),_("MessageID: ",e.MessageID),l(),p(e.Exception?13:-1),l(),p(e.Message?14:-1)}}function z(n,t){if(n&1){let e=N();o(0,"tr",10),G("click",function(){let r=I(e).$index,c=d(2);return h(c.toggleRow(r))}),o(1,"td"),s(2),R(3,"date"),i(),o(4,"td"),s(5),i(),o(6,"td",8)(7,"button",11)(8,"sh-icon"),s(9,"caret-down"),i()()()(),g(10,j,15,7,"tr")}if(n&2){let e=t.$implicit,a=t.$index,r=d(2);l(2),L(y(3,5,e.When,"medium")),l(3),L(r.subStringMessage(e.Message)),l(2),E("rotated-icon",a===r.openRowIndex()),l(3),p(a===r.openRowIndex()?10:-1)}}function W(n,t){if(n&1&&(o(0,"sh-table",6)(1,"tr",7)(2,"th"),m(3,1),i(),o(4,"th"),m(5,2),i(),P(6,"th",8),i(),S(7,z,11,8,null,null,u),o(9,"div",9),m(10,3),i()()),n&2){let e=d();w("grid-template-columns","auto 1fr auto"),E("type-b",e.asSimpleList()),M("data",e.logs())("loading",e.logsLoading()),l(7),f(e.logs())}}var b=class n{#e=O(F);whenFilter=C();backupIdFilter=C();asSimpleList=C();polling=C();logLevel=this.#e.logLevel;logLevelByLabel=this.#e.logLevelByLabel;logs=this.#e.logs;logsLoading=this.#e.logsLoading;pollingEffect=v(()=>{let t=this.polling()??!1;this.#e.isPolling.set(t)});openRowIndex=T(null);whenEffect=v(()=>{let t=this.whenFilter()??null;this.#e.setWhenFilter(t),this.#e.logLevel.set(t?"Verbose":"Disabled")});backupIdEffect=v(()=>{let t=this.backupIdFilter()??null;this.#e.setBackupIdFilter(t),this.#e.logLevel.set(t?"Verbose":"Disabled")});toggleRow(t){this.openRowIndex.set(t===this.openRowIndex()?null:t)}breakIntoLines(t){return t?t.split(`
1
+ import{a as F}from"./chunk-QX3IRESN.js";import{I as A,S as D,u as k}from"./chunk-QF4DQYEP.js";import{la as $}from"./chunk-5ZSBXGHQ.js";import{$b as d,Ab as S,Bb as f,Cb as M,Db as o,Eb as i,Fb as P,Fc as R,Hc as y,Mb as N,Rc as v,Sa as l,Vb as m,Wc as C,Zb as G,_ as O,cb as x,ea as I,fa as h,jc as w,kc as E,nc as s,oc as L,pa as T,pc as _,xb as g,yb as p,zb as u}from"./chunk-QONLYWYC.js";function V(n,t){n&1&&(o(0,"div",4),m(1,0),i())}function B(n,t){if(n&1&&(o(0,"li"),s(1),i()),n&2){let e=t.$implicit;l(),L(e)}}function J(n,t){if(n&1&&(o(0,"code")(1,"ol",15),S(2,B,2,1,"li",null,u),i()()),n&2){let e=d(2).$implicit,a=d(2);l(2),f(a.breakIntoLines(e.Exception))}}function U(n,t){if(n&1&&(o(0,"li"),s(1),i()),n&2){let e=t.$implicit;l(),L(e)}}function X(n,t){if(n&1&&(o(0,"code")(1,"ol",15),S(2,U,2,1,"li",null,u),i()()),n&2){let e=d(2).$implicit,a=d(2);l(2),f(a.breakIntoLines(e.Message))}}function j(n,t){if(n&1&&(o(0,"tr")(1,"td",12)(2,"sh-list",13)(3,"div",14),s(4),i(),o(5,"div",14),s(6),i(),o(7,"div",14),s(8),i(),o(9,"div",14),s(10),i(),o(11,"div",14),s(12),i()(),g(13,J,4,0,"code"),g(14,X,4,0,"code"),i()()),n&2){let e=d().$implicit;l(4),_("ID: ",e.ID),l(2),_("Type: ",e.Type),l(2),_("Tag: ",e.Tag),l(2),_("TaskID: ",e.TaskID),l(2),_("MessageID: ",e.MessageID),l(),p(e.Exception?13:-1),l(),p(e.Message?14:-1)}}function z(n,t){if(n&1){let e=N();o(0,"tr",10),G("click",function(){let r=I(e).$index,c=d(2);return h(c.toggleRow(r))}),o(1,"td"),s(2),R(3,"date"),i(),o(4,"td"),s(5),i(),o(6,"td",8)(7,"button",11)(8,"sh-icon"),s(9,"caret-down"),i()()()(),g(10,j,15,7,"tr")}if(n&2){let e=t.$implicit,a=t.$index,r=d(2);l(2),L(y(3,5,e.When,"medium")),l(3),L(r.subStringMessage(e.Message)),l(2),E("rotated-icon",a===r.openRowIndex()),l(3),p(a===r.openRowIndex()?10:-1)}}function W(n,t){if(n&1&&(o(0,"sh-table",6)(1,"tr",7)(2,"th"),m(3,1),i(),o(4,"th"),m(5,2),i(),P(6,"th",8),i(),S(7,z,11,8,null,null,u),o(9,"div",9),m(10,3),i()()),n&2){let e=d();w("grid-template-columns","auto 1fr auto"),E("type-b",e.asSimpleList()),M("data",e.logs())("loading",e.logsLoading()),l(7),f(e.logs())}}var b=class n{#e=O(F);whenFilter=C();backupIdFilter=C();asSimpleList=C();polling=C();logLevel=this.#e.logLevel;logLevelByLabel=this.#e.logLevelByLabel;logs=this.#e.logs;logsLoading=this.#e.logsLoading;pollingEffect=v(()=>{let t=this.polling()??!1;this.#e.isPolling.set(t)});openRowIndex=T(null);whenEffect=v(()=>{let t=this.whenFilter()??null;this.#e.setWhenFilter(t),this.#e.logLevel.set(t?"Verbose":"Disabled")});backupIdEffect=v(()=>{let t=this.backupIdFilter()??null;this.#e.setBackupIdFilter(t),this.#e.logLevel.set(t?"Verbose":"Disabled")});toggleRow(t){this.openRowIndex.set(t===this.openRowIndex()?null:t)}breakIntoLines(t){return t?t.split(`
2
2
  `):[]}subStringMessage(t){return t?t.substring(0,80)+"...":""}ngOnDestroy(){this.#e.destroy()}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=x({type:n,selectors:[["app-logs-live"]],hostVars:2,hostBindings:function(e,a){e&2&&E("simple-list",a.asSimpleList())},inputs:{whenFilter:[1,"whenFilter"],backupIdFilter:[1,"backupIdFilter"],asSimpleList:[1,"asSimpleList"],polling:[1,"polling"]},decls:2,vars:1,consts:()=>{let t;t=$localize`Live logs are disabled`;let e;e=$localize`When`;let a;a=$localize`Message`;let r;return r=$localize`No data available`,[t,e,a,r,[1,"live-view-disabled"],[3,"type-b","data","loading","grid-template-columns"],[3,"data","loading"],["table-header",""],[1,"sticky-end"],["table-no-rows",""],[3,"click"],["shButton","","type","button",1,"outlined","small"],[1,"expanded-cell"],[1,"primary"],["item",""],[1,"line-numbers-ol"]]},template:function(e,a){e&1&&g(0,V,2,0,"div",4)(1,W,11,6,"sh-table",5),e&2&&p(a.logLevel()==="Disabled"?0:1)},dependencies:[D,k,A,$],styles:["[_nghost-%COMP%]{display:block;padding:0 2rem}.simple-list[_nghost-%COMP%] sh-table[_ngcontent-%COMP%]{--table-td-bg: var(--base-2);height:100%}.live-view-disabled[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;min-height:18.75rem;width:100%;background-color:var(--base-2);border:1px solid var(--base-3);border-radius:var(--shape-2);font:var(--paragraph-20)}.expanded-cell[_ngcontent-%COMP%]{height:auto;grid-column:1/-1;white-space:pre-wrap;display:flex;flex-direction:column}h3[_ngcontent-%COMP%]{font:var(--title-30);margin:0 0 1.25rem}sh-table[_ngcontent-%COMP%]{--table-columns: auto auto 1fr auto}sh-table[_ngcontent-%COMP%] td.id[_ngcontent-%COMP%]{justify-content:center}sh-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:has(code){padding:1rem .75rem;overflow:hidden}sh-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:has(code) code[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--base-8),#000 70%);color:#fff;padding:2.5rem 2.5rem 2.5rem 1.5rem;border-radius:var(--shape-3);overflow:auto;white-space:pre;max-width:100%}"],changeDetection:0})};export{b as a};
package/index.html CHANGED
@@ -83,5 +83,5 @@
83
83
  <body>
84
84
  <app-root></app-root>
85
85
  <div class="loading">Connecting ...</div>
86
- <link rel="modulepreload" href="chunk-YJPY33RI.js"><link rel="modulepreload" href="chunk-7FCBU2UO.js"><link rel="modulepreload" href="chunk-RDCD2W2C.js"><link rel="modulepreload" href="chunk-TJIZJNCK.js"><link rel="modulepreload" href="chunk-ZSZLXWN6.js"><link rel="modulepreload" href="chunk-72HORZFV.js"><link rel="modulepreload" href="chunk-6Q6SSTBK.js"><link rel="modulepreload" href="chunk-MTQKK2WN.js"><link rel="modulepreload" href="chunk-LN26XMBJ.js"><link rel="modulepreload" href="chunk-XVWOVBC4.js"><script src="polyfills-S663R3NQ.js" type="module"></script><script src="main-UHBWCAT4.js" type="module"></script></body>
86
+ <link rel="modulepreload" href="chunk-YJPY33RI.js"><link rel="modulepreload" href="chunk-KT7U3QIP.js"><link rel="modulepreload" href="chunk-GYDI67IZ.js"><link rel="modulepreload" href="chunk-4NBLWONL.js"><link rel="modulepreload" href="chunk-CCKT2GLS.js"><link rel="modulepreload" href="chunk-72HORZFV.js"><link rel="modulepreload" href="chunk-6Q6SSTBK.js"><link rel="modulepreload" href="chunk-XLDVUBTQ.js"><link rel="modulepreload" href="chunk-LN26XMBJ.js"><link rel="modulepreload" href="chunk-7LYN2XHO.js"><script src="polyfills-S663R3NQ.js" type="module"></script><script src="main-AK26L46R.js" type="module"></script></body>
87
87
  </html>
@@ -177,7 +177,7 @@
177
177
  "6620903652878498037": "IDrive e2",
178
178
  "5817791938505061739": "Speichert Sicherungen in IDrive e2.",
179
179
  "4055246236738746947": "Zugriffs-ID",
180
- "8206437921423261892": "Zugriffs-Geheimnis",
180
+ "8206437921423261892": "Zugriffs-Secret",
181
181
  "3690832063756455175": "Mega.nz",
182
182
  "7456819223000178588": "Speichert Sicherungen in Mega.nz.",
183
183
  "5248717555542428023": "Benutzername",
@@ -194,7 +194,7 @@
194
194
  "2153379598793229223": "Pfad auf dem entfernten Repository",
195
195
  "1640334719601029575": "OpenStack Object Storage",
196
196
  "5365065159713730999": "Speichert Sicherungen im OpenStack Object Storage.",
197
- "8720332287407681000": "Behälter",
197
+ "8720332287407681000": "Bucket",
198
198
  "715869236704033904": "Authentifikations-URL",
199
199
  "2724055831234181057": "Version",
200
200
  "4242845413151034495": "Domänenname",
@@ -233,7 +233,7 @@
233
233
  "7732296756511089144": "Storj API-Key",
234
234
  "520993283570669753": "Speichert Sicherungen in Storj API Key.",
235
235
  "8517109745758603034": "API-Schlüssel",
236
- "7896650584449704588": "Geheimnis",
236
+ "7896650584449704588": "Secret",
237
237
  "7386195554617540895": "Aliyun OSS",
238
238
  "7236053877128063351": "Speichert Sicherungen in Aliyun OSS",
239
239
  "4890321515347479714": "Pfad im Bucket",
@@ -316,7 +316,7 @@
316
316
  "4141282812307802268": "Das Hinzufügen dieser Option wird die entsprechende globale Option überschreiben",
317
317
  "8432562579042371182": "Optionen",
318
318
  "5270282788988984652": "Ziel-Volumen-Größe {$START_BLOCK_IF}{$START_TAG_SH_ICON}warning{$CLOSE_TAG_SH_ICON}{$CLOSE_BLOCK_IF}",
319
- "3661147142879652554": "Die gewählte Größe ist außerhalb des empfohlenen Bereichs. Die kann Performance-Einbußen, extrem große temporäre Dateien oder andere Probleme hervorrufen.",
319
+ "3661147142879652554": "Die gewählte Größe ist außerhalb des empfohlenen Bereichs. Dies kann Performance-Einbußen, extrem große temporäre Dateien oder andere Probleme hervorrufen.",
320
320
  "92438001090329017": "Die Sicherung wird in mehrere Dateien genannt Volumes geteilt. Hier kann die maximale Größe der individuellen Volume-Dateien gesetzt werden. {$START_LINK} Mehr lesen {$START_TAG_SH_ICON}arrow-square-out{$CLOSE_TAG_SH_ICON}{$CLOSE_LINK}",
321
321
  "3200173535986954809": "Sicherungsaufbewahrung",
322
322
  "3776830777548420252": "Es wird nichts gelöscht. Die Sicherungsgröße erhöht sich mit jeder Änderung.",