@duplicati/ngclient 0.0.214 → 0.0.219

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 (136) hide show
  1. package/assets/sh-bold.woff2 +0 -0
  2. package/assets/sh.woff2 +0 -0
  3. package/assets/ship.css +0 -2
  4. package/{chunk-XAYG4QT7.js → chunk-22AR7ES3.js} +1 -1
  5. package/{chunk-3XCT4PYH.js → chunk-23SRH7FI.js} +1 -1
  6. package/{chunk-QRLREAIK.js → chunk-2J2554EV.js} +1 -1
  7. package/chunk-37ODVJFS.js +1 -0
  8. package/chunk-3RCF6UT4.js +1 -0
  9. package/{chunk-S3FBC24H.js → chunk-4E7D5F6K.js} +1 -1
  10. package/chunk-4J6L5OV3.js +1 -0
  11. package/chunk-4OA2FFS5.js +1 -0
  12. package/chunk-4OJPTRZJ.js +1 -0
  13. package/{chunk-YGHS3INE.js → chunk-5KJPC3V5.js} +1 -1
  14. package/{chunk-EGTYGTQI.js → chunk-5RNU5BNO.js} +1 -1
  15. package/{chunk-AZRNX5LU.js → chunk-6JS7B4FW.js} +1 -1
  16. package/chunk-7C2YZVSQ.js +1 -0
  17. package/chunk-ACTATISC.js +1 -0
  18. package/chunk-ACTJSKQZ.js +2 -0
  19. package/{chunk-XZNYCTQB.js → chunk-AIAUP7OE.js} +1 -1
  20. package/{chunk-LU7TIW3P.js → chunk-ANSV4G2K.js} +1 -1
  21. package/{chunk-YMUS7QSB.js → chunk-BACKG7KA.js} +1 -1
  22. package/{chunk-J6WVOYQ6.js → chunk-BKEJZADV.js} +2 -2
  23. package/{chunk-FMDSOHVR.js → chunk-BLSV7CNZ.js} +1 -1
  24. package/{chunk-PBYZZEYM.js → chunk-BZXBH4CN.js} +1 -1
  25. package/chunk-C3PQFWVO.js +1 -0
  26. package/{chunk-R6TFME5I.js → chunk-C6PICAXB.js} +1 -1
  27. package/{chunk-5L2OOKRZ.js → chunk-CAQ3XMFP.js} +1 -1
  28. package/chunk-DJXLNIMV.js +11 -0
  29. package/{chunk-QAQMMCTH.js → chunk-DSYNIXJF.js} +1 -1
  30. package/chunk-DSZ644JT.js +1 -0
  31. package/chunk-EADZVBRA.js +1 -0
  32. package/{chunk-CQYKOCGO.js → chunk-EDLHTWBA.js} +1 -1
  33. package/{chunk-KHFOQETZ.js → chunk-EKVZKEQJ.js} +1 -1
  34. package/{chunk-CYY7RVDE.js → chunk-ELCA5MKF.js} +2 -2
  35. package/chunk-EPIYGHPM.js +1 -0
  36. package/{chunk-J5TWEZOP.js → chunk-EXMYBMGI.js} +1 -1
  37. package/{chunk-OZEGNE5W.js → chunk-FBU3EBFO.js} +1 -1
  38. package/{chunk-APAWDC4O.js → chunk-FD5CKX3J.js} +1 -1
  39. package/{chunk-22PELS6R.js → chunk-GKGMP6VF.js} +1 -1
  40. package/chunk-GN7AO4B6.js +1 -0
  41. package/{chunk-TZEOQBIX.js → chunk-GRE6GKVP.js} +2 -2
  42. package/chunk-I6MIXWIT.js +1 -0
  43. package/{chunk-ZK3S23CJ.js → chunk-IFSZJSGH.js} +1 -1
  44. package/{chunk-AMSFSVKQ.js → chunk-IG7XUEED.js} +1 -1
  45. package/chunk-IMQUTGIK.js +1 -0
  46. package/{chunk-ZXQSQRKN.js → chunk-IQL3REGJ.js} +1 -1
  47. package/chunk-IRT2UBDI.js +2 -0
  48. package/{chunk-GE3DHZ5E.js → chunk-JPCUISZG.js} +1 -1
  49. package/{chunk-3PUCEFO5.js → chunk-KDV2OE64.js} +1 -1
  50. package/{chunk-VGBTP4QP.js → chunk-KZTFESBJ.js} +1 -1
  51. package/{chunk-7PYUNUEY.js → chunk-M3PW6DLD.js} +1 -1
  52. package/{chunk-BRL4YYWO.js → chunk-N2AU7VKX.js} +1 -1
  53. package/chunk-N3NJW75G.js +1 -0
  54. package/{chunk-VI7MBIGT.js → chunk-NHS6CQO2.js} +1 -1
  55. package/{chunk-V7UJAXBT.js → chunk-NKUA7I47.js} +2 -2
  56. package/chunk-NPFPMA4P.js +1 -0
  57. package/{chunk-WALKMFYR.js → chunk-NX35OQ3V.js} +1 -1
  58. package/{chunk-L2QOWZDR.js → chunk-O2SMJYPC.js} +1 -1
  59. package/{chunk-7FDLOZXV.js → chunk-OHYENIPP.js} +1 -1
  60. package/{chunk-FSHBOASN.js → chunk-OPHQNXYO.js} +1 -1
  61. package/chunk-P4R3ERID.js +1 -0
  62. package/chunk-PG4G4RLP.js +1 -0
  63. package/{chunk-QQLV7J6T.js → chunk-PIGMTUUT.js} +1 -1
  64. package/chunk-PXI3UZ4R.js +1 -0
  65. package/chunk-QDDVZ4CR.js +1 -0
  66. package/{chunk-CW43F6WE.js → chunk-QOWXL7ZL.js} +1 -1
  67. package/chunk-QZQS7M3D.js +1 -0
  68. package/{chunk-HHDCI6IF.js → chunk-RGFJ5UMA.js} +1 -1
  69. package/{chunk-I625OICV.js → chunk-RJ2JM7C7.js} +1 -1
  70. package/{chunk-JMLM4A3C.js → chunk-RLWICOKH.js} +1 -1
  71. package/chunk-RRDLQLTM.js +1 -0
  72. package/{chunk-ADB5QRUO.js → chunk-TCXCC5BM.js} +1 -1
  73. package/chunk-TQTOIWBK.js +4 -0
  74. package/{chunk-EQNDYV43.js → chunk-UTXZPAY6.js} +1 -1
  75. package/chunk-VC55KFAX.js +1 -0
  76. package/chunk-VKQQDCUN.js +1 -0
  77. package/{chunk-XCVBN7EK.js → chunk-WOKYULBU.js} +1 -1
  78. package/{chunk-5FQ5SDPZ.js → chunk-X276XFCH.js} +1 -1
  79. package/chunk-X4BDJA6L.js +3 -0
  80. package/{chunk-B7CQXYTS.js → chunk-XDBSTUYC.js} +1 -1
  81. package/chunk-XEG3CP74.js +1 -0
  82. package/chunk-XWTB7XRI.js +1 -0
  83. package/chunk-XXVDL5TR.js +1 -0
  84. package/{chunk-MRSBKQQM.js → chunk-YCJYEQF7.js} +1 -1
  85. package/chunk-YWBZLU6M.js +1 -0
  86. package/chunk-YWUUX3S6.js +1 -0
  87. package/{chunk-BDQJFOCO.js → chunk-ZC23RK4J.js} +1 -1
  88. package/{chunk-OBF6ZSYT.js → chunk-ZEFSBETQ.js} +1 -1
  89. package/chunk-ZHQI6LYB.js +1 -0
  90. package/chunk-ZNYN6ES6.js +1 -0
  91. package/chunk-ZNYRWXQR.js +1 -0
  92. package/{chunk-VCIINZCU.js → chunk-ZP3QZ43W.js} +1 -1
  93. package/{chunk-WIE7KXIC.js → chunk-ZYRB2TUK.js} +1 -1
  94. package/index.html +2 -2
  95. package/{main-7HIGYDD6.js → main-JR6IVB6K.js} +1 -1
  96. package/package.json +1 -1
  97. package/ship-ui-assets/mcp/components.json +2907 -2456
  98. package/styles-S2CJL4OY.css +1 -0
  99. package/chunk-22YUDKKU.js +0 -1
  100. package/chunk-2E5PWPGZ.js +0 -1
  101. package/chunk-2NLWVJNK.js +0 -1
  102. package/chunk-35APLYI4.js +0 -1
  103. package/chunk-522J6R6I.js +0 -1
  104. package/chunk-7ED2GUWQ.js +0 -1
  105. package/chunk-7WOSHJ7G.js +0 -1
  106. package/chunk-7YSKL3IG.js +0 -1
  107. package/chunk-AJZA5YWT.js +0 -1
  108. package/chunk-B3T2NEGO.js +0 -1
  109. package/chunk-BME6TJIR.js +0 -1
  110. package/chunk-BP66ERTI.js +0 -1
  111. package/chunk-C2NKW2QW.js +0 -1
  112. package/chunk-DTIGWCAE.js +0 -2
  113. package/chunk-EU6N52DH.js +0 -1
  114. package/chunk-GCYBVLSX.js +0 -3
  115. package/chunk-GO22QPW4.js +0 -1
  116. package/chunk-HO6FQWDR.js +0 -1
  117. package/chunk-HYYZB4AS.js +0 -1
  118. package/chunk-IJHPC43D.js +0 -1
  119. package/chunk-KHZ5AXGT.js +0 -1
  120. package/chunk-LOFKRPRH.js +0 -1
  121. package/chunk-M5RTYP7N.js +0 -2
  122. package/chunk-NBKLLQQO.js +0 -1
  123. package/chunk-NCXKMSRH.js +0 -1
  124. package/chunk-OO32MPRQ.js +0 -1
  125. package/chunk-QUXPHHDZ.js +0 -1
  126. package/chunk-R5OX4JTJ.js +0 -1
  127. package/chunk-T2X5J6MQ.js +0 -1
  128. package/chunk-TJNL6F5S.js +0 -1
  129. package/chunk-U34FLIYL.js +0 -1
  130. package/chunk-U3A754M6.js +0 -1
  131. package/chunk-UH2E7MMT.js +0 -4
  132. package/chunk-VDHWNNO7.js +0 -1
  133. package/chunk-Y3BYCXUX.js +0 -1
  134. package/chunk-Y3YNTMT5.js +0 -11
  135. package/chunk-YPWKWP5H.js +0 -1
  136. package/styles-43GHZ572.css +0 -1
@@ -0,0 +1 @@
1
+ import{a as q}from"./chunk-IFSZJSGH.js";import"./chunk-QDDVZ4CR.js";import"./chunk-BLSV7CNZ.js";import"./chunk-I6MIXWIT.js";import"./chunk-RJ2JM7C7.js";import{a as W}from"./chunk-WOKYULBU.js";import"./chunk-TCXCC5BM.js";import"./chunk-GKGMP6VF.js";import"./chunk-6Q6SSTBK.js";import"./chunk-YCJYEQF7.js";import"./chunk-OHYENIPP.js";import"./chunk-UTXZPAY6.js";import"./chunk-IMQUTGIK.js";import"./chunk-ANSV4G2K.js";import"./chunk-BACKG7KA.js";import"./chunk-IQL3REGJ.js";import"./chunk-AIAUP7OE.js";import"./chunk-C6PICAXB.js";import"./chunk-6JS7B4FW.js";import{B as P,C as F,G as z,L as H,v as f}from"./chunk-VKQQDCUN.js";import{d as j}from"./chunk-DSYNIXJF.js";import{e as N}from"./chunk-NPFPMA4P.js";import"./chunk-O2SMJYPC.js";import"./chunk-N2AU7VKX.js";import"./chunk-ZC23RK4J.js";import"./chunk-OPHQNXYO.js";import{$b as g,Ab as x,Ac as O,Bb as w,Bc as X,Cb as S,Db as t,Eb as o,Fb as s,Sa as l,Tb as T,Ub as d,Vb as c,Wb as v,Xb as B,Zb as u,_ as p,gb as L,mb as A,nc as m,qc as J,tb as D,ub as G,wb as R,xb as C,yb as b}from"./chunk-TQTOIWBK.js";import"./chunk-7CGTOI24.js";var V=()=>[F,P,f,N],K=()=>["/restore-from-files"],Q=()=>["/restore/from-config"],U=n=>["/restore",n];function Y(n,i){if(n&1&&(t(0,"sh-card",10),u("keydown.enter",function(r){return r.target.click()})("keydown.space",function(r){return r.target.click()}),s(1,"img",16),t(2,"div",12)(3,"h3"),c(4,7),o(),t(5,"p"),m(6),o()(),t(7,"button",13),T(8,8),s(9,"sh-icon"),d(),o()()),n&2){let e=i.$implicit;S("routerLink",X(4,U,e.Backup.ID)),l(4),v(e.Backup.Name??"Backup name missing"),B(4),l(2),J(" ",(e.Backup.Metadata==null?null:e.Backup.Metadata.SourceSizeString)??"-"," / ",(e.Backup.Metadata==null?null:e.Backup.Metadata.BackupListCount)??"-"," ")}}function Z(n,i){if(n&1&&x(0,Y,10,6,"sh-card",15,b),n&2){let e=g(2);w(e.backups())}}function ee(n,i){if(n&1&&R(0,Z,2,0),n&2){let e=g();C(e.backups().length?0:-1)}}function ne(n,i){n&1&&(t(0,"div",17),s(1,"sh-progress-bar",18),t(2,"div",12)(3,"h3"),c(4,9),o()()())}function te(n,i){n&1&&(t(0,"sh-divider"),m(1,"Or without a local configuration"),o())}var M=class n{#e=p(W);#n=p(j);backups=this.#e.backups;backupsLoading=this.#e.backupsLoading;ngOnInit(){this.#e.getBackups(!0)}restoreNow(i){this.#n.postApiV1BackupByIdRestore({id:i.Backup?.ID,requestBody:{}})}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=L({type:n,selectors:[["app-restore"]],decls:29,vars:6,consts:()=>{let i;i=$localize`Where do you want to restore from?`;let e;e=$localize`Direct restore from backup files`;let r;r=$localize`Point to your backup files and restore from there.`;let E;E=$localize` Start ${"\uFFFD#18\uFFFD"}:START_TAG_SH_ICON:play-circle${"\uFFFD/#18\uFFFD"}:CLOSE_TAG_SH_ICON:`;let _;_=$localize`Restore from configuration`;let h;h=$localize`Load destination from an exported job`;let I;I=$localize` Start ${"\uFFFD#28\uFFFD"}:START_TAG_SH_ICON:play-circle${"\uFFFD/#28\uFFFD"}:CLOSE_TAG_SH_ICON:`;let y;y=$localize`${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let $;$=$localize` Restore ${"\uFFFD#9\uFFFD"}:START_TAG_SH_ICON:arrow-right${"\uFFFD/#9\uFFFD"}:CLOSE_TAG_SH_ICON:`;let k;return k=$localize`Loading backups...`,[i,e,r,E,_,h,I,y,$,k,[1,"type-a","actionable",3,"keydown.enter","keydown.space","routerLink"],["src","assets/images/backup.png","alt","","width","48px"],[1,"text"],["shButton","","tabindex","-1"],["src","assets/images/restore.png","alt","","width","48px"],[1,"type-a","actionable",3,"routerLink"],["src","assets/images/folder.png","alt","","width","48px"],[1,"loading-list"],[1,"indeterminate","primary"]]},template:function(e,r){e&1&&(s(0,"app-status-bar"),t(1,"section")(2,"h2"),c(3,0),o(),A(4,ee,1,1)(5,ne,5,0),D(6,4,V,null,5),R(8,te,2,0,"sh-divider"),t(9,"sh-card",10),u("keydown.enter",function(_){return _.target.click()})("keydown.space",function(_){return _.target.click()}),s(10,"img",11),t(11,"div",12)(12,"h3"),c(13,1),o(),t(14,"p"),c(15,2),o()(),t(16,"button",13),T(17,3),s(18,"sh-icon"),d(),o()(),t(19,"sh-card",10),u("keydown.enter",function(_){return _.target.click()})("keydown.space",function(_){return _.target.click()}),s(20,"img",14),t(21,"div",12)(22,"h3"),c(23,4),o(),t(24,"p"),c(25,5),o()(),t(26,"button",13),T(27,6),s(28,"sh-icon"),d(),o()()()),e&2&&(l(6),G(!r.backupsLoading()),l(2),C(r.backups().length?8:-1),l(),S("routerLink",O(4,K)),l(10),S("routerLink",O(5,Q)))},dependencies:[q,F,P,z,f,H,N],styles:["[_nghost-%COMP%]{display:block}h2[_ngcontent-%COMP%]{font:var(--title-30);text-align:center;padding:2rem}section[_ngcontent-%COMP%]{max-width:43.75rem;margin:0 auto;padding:2rem 1rem;display:flex;flex-direction:column;gap:1rem}sh-divider[_ngcontent-%COMP%]{color:var(--base-8)}sh-card[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem;--card-padding: 2rem}sh-card[_ngcontent-%COMP%] .text[_ngcontent-%COMP%]{flex:1 0;display:flex;flex-direction:column;gap:.25rem}.actionable[_ngcontent-%COMP%]{cursor:pointer}.actionable[_ngcontent-%COMP%]:after{transition:inset .1s linear}.actionable[_ngcontent-%COMP%]:hover{--card-shp: 0}"],changeDetection:0})};export{M as default};
@@ -0,0 +1 @@
1
+ import{B as U,D as $,M as y,s as b,w as D}from"./chunk-VKQQDCUN.js";import{d as v}from"./chunk-DSYNIXJF.js";import{$b as p,Ab as m,Bb as A,Cb as g,Db as o,Eb as _,F as d,Mb as N,Sa as u,Vb as s,Vc as G,Zb as S,_ as C,da as E,ea as T,gb as O,kc as f,nc as M,pa as r,pc as h,sc as R,tc as I,uc as L,yb as P}from"./chunk-TQTOIWBK.js";function z(l,t){if(l&1){let e=N();o(0,"sh-radio",10),S("checkedChange",function(){let a=E(e).$implicit,i=p();return T(i.pauseOption.set(a.value))}),M(1),_()}if(l&2){let e=t.$implicit,n=p();g("checked",n.pauseOption()===e.value),u(),h(" ",e.label," ")}}var B=[{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}],k=class l{#e=C(v);pauseOptions=r(B);closed=G();isSubmitting=r(!1);pauseTransfers=r(!1);pauseOption=r(void 0);submit(){this.isSubmitting.set(!0);let t=this.pauseTransfers()||null,e=this.pauseOption();this.#e.postApiV1ServerstatePause({duration:e,pauseTransfers:t}).pipe(d(()=>this.isSubmitting.set(!1))).subscribe({next:n=>{this.closed.emit()}})}static \u0275fac=function(e){return new(e||l)};static \u0275cmp=O({type:l,selectors:[["app-pause-dialog"]],outputs:{closed:"closed"},decls:17,vars:3,consts:()=>{let t;t=$localize`Pause settings`;let e;e=$localize`Also pause transfers`;let n;n=$localize`If you pause transfers they could time out and cause retries or failures.`;let a;a=$localize`Cancel`;let i;return i=$localize` Update settings `,[t,e,n,a,i,["header",""],["content",""],[1,"radios"],[1,"primary","raised",3,"checked"],[1,"check-wrap"],[1,"primary","raised",3,"checkedChange","checked"],["type","warning"],["footer",""],["shButton","",3,"click"],["shButton","",1,"raised","primary",3,"click"]]},template:function(e,n){e&1&&(o(0,"header",5)(1,"h3"),s(2,0),_()(),o(3,"div",6)(4,"div",7),m(5,z,2,2,"sh-radio",8,P),_(),o(7,"div",9)(8,"sh-checkbox",10),L("checkedChange",function(i){return I(n.pauseTransfers,i)||(n.pauseTransfers=i),i}),s(9,1),_(),o(10,"sh-alert",11),s(11,2),_()()(),o(12,"footer",12)(13,"button",13),S("click",function(){return n.closed.emit()}),s(14,3),_(),o(15,"button",14),S("click",function(){return n.submit()}),s(16,4),_()()),e&2&&(u(5),A(n.pauseOptions()),u(3),R("checked",n.pauseTransfers),u(7),f("loading",n.isSubmitting()))},dependencies:[b,y,$,D,U],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})};export{k as a};
@@ -1 +1 @@
1
- import{a as dn}from"./chunk-ZK3S23CJ.js";import{a as Tn}from"./chunk-GO22QPW4.js";import"./chunk-FMDSOHVR.js";import"./chunk-NBKLLQQO.js";import{c as _e,l as Cn}from"./chunk-OBF6ZSYT.js";import{b as un}from"./chunk-I625OICV.js";import{a as sn}from"./chunk-XCVBN7EK.js";import"./chunk-ADB5QRUO.js";import"./chunk-22PELS6R.js";import"./chunk-6Q6SSTBK.js";import"./chunk-MRSBKQQM.js";import{a as Fn}from"./chunk-7FDLOZXV.js";import"./chunk-EQNDYV43.js";import"./chunk-35APLYI4.js";import{a as rn}from"./chunk-LU7TIW3P.js";import"./chunk-YMUS7QSB.js";import"./chunk-ZXQSQRKN.js";import"./chunk-XZNYCTQB.js";import"./chunk-R6TFME5I.js";import"./chunk-AZRNX5LU.js";import{A as Ze,B as oe,C as en,E as nn,G as tn,K as on,L as _n,S as an,T as ln,v as ie,z as Ye}from"./chunk-NCXKMSRH.js";import{d as cn}from"./chunk-QAQMMCTH.js";import{e as te}from"./chunk-KHZ5AXGT.js";import"./chunk-L2QOWZDR.js";import"./chunk-BRL4YYWO.js";import"./chunk-BDQJFOCO.js";import"./chunk-FSHBOASN.js";import{$b as l,Ab as V,Bb as U,Bc as j,Cb as E,Cc as $,Db as o,Eb as i,F as q,Fb as C,Gc as D,Hc as G,Ic as A,Jb as N,Kb as M,Kc as ee,Lb as f,Mb as R,Pa as J,Rc as ne,Sa as a,Tb as s,Ub as u,Vb as d,Wb as x,Xb as H,Yb as K,Zb as I,_ as L,da as m,ea as O,gb as We,ic as W,kc as h,lb as P,mb as je,nc as T,pa as k,pc as S,ra as Ke,sc as Q,tb as qe,tc as Y,ub as Qe,uc as Z,wb as p,xb as g,yb as z}from"./chunk-UH2E7MMT.js";import"./chunk-7CGTOI24.js";var pn=()=>[te,import("./chunk-VGBTP4QP.js").then(e=>e.NgTemplateOutlet),oe,ie,nn,ln,an,import("./chunk-YPWKWP5H.js").then(e=>e.BackupProgressComponent),import("./chunk-TJNL6F5S.js").then(e=>e.DurationFormatPipe),import("./chunk-QUXPHHDZ.js").then(e=>e.BytesPipe),import("./chunk-Y3BYCXUX.js").then(e=>e.RelativeTimePipe)],gn=()=>["/add-backup"],Sn=()=>["/restore"],En=e=>({$implicit:e}),mn=()=>["/backup/new"],On=e=>["/backup",e],Nn=e=>["/restore",e],Mn=e=>["/backup",e,"export"],In=e=>["/backup",e,"delete"],Pn=e=>["/backup",e,"database"],Dn=e=>["/backup",e,"commandline"],fn=e=>["/backup",e,"log"];function $n(e,t){e&1&&d(0,11,1)}function Rn(e,t){e&1&&d(0,11,2)}function hn(e,t){if(e&1&&d(0,11,3),e&2){let n=l(2);x(n.timeType()),H(0)}}function An(e,t){if(e&1){let n=R();o(0,"button",64),I("click",function(){let r=m(n).$implicit,F=l(3);return O(F.sortByColumn.set(r.value))}),d(1,15),i()}if(e&2){let n=t.$implicit,_=l(3);h("active",_.orderBy()===n.value),a(),x(n.label),H(1)}}function Ln(e,t){if(e&1&&(o(0,"sh-menu",61)(1,"button",62),s(2,14),C(3,"strong")(4,"sh-icon"),u(),i(),N(5,63),V(6,An,2,3,"button",65,z),M(),i()),e&2){let n=l(2);a(4),x(n.orderBy()),H(2),a(2),U(n.sortOrderOptions())}}function xn(e,t){if(e&1){let n=R();o(0,"div",57)(1,"sh-button-group",58),Z("valueChange",function(r){m(n);let F=l();return Y(F.viewMode,r)||(F.viewMode=r),O(r)}),o(2,"button",59),s(3,9),C(4,"sh-icon"),u(),i(),o(5,"button",60),s(6,10),C(7,"sh-icon"),u(),i()(),o(8,"sh-menu",61)(9,"button",62),s(10,11),o(11,"strong"),p(12,$n,1,0)(13,Rn,1,0)(14,hn,1,1),i(),C(15,"sh-icon"),u(),i(),N(16,63),o(17,"button",64),I("click",function(){m(n);let r=l();return O(r.setTimeType("relative"))}),d(18,12),i(),o(19,"button",64),I("click",function(){m(n);let r=l();return O(r.setTimeType("actual"))}),d(20,13),i(),M(),i(),p(21,Ln,8,1,"sh-menu",61),i()}if(e&2){let n=l();a(),Q("value",n.viewMode),a(11),g(n.timeType()=="relative"?12:n.timeType()=="actual"?13:14),a(9),g(n.viewMode()==="list"?21:-1)}}function Hn(e,t){if(e&1){let n=R();o(0,"div",70)(1,"div",53)(2,"h3"),T(3),o(4,"sh-chip"),C(5,"img",72),T(6),i()()(),o(7,"div",73)(8,"sh-chip",74),d(9,16),i()(),o(10,"div",57)(11,"button",75),I("click",function(){m(n);let r=l().$implicit,F=l(4);return O(F.openInConsole(r))}),s(12,17),C(13,"sh-icon"),u(),i()(),C(14,"app-backup-progress",76),i()}if(e&2){let n=l().$implicit,_=l(4);a(3),S(" ",n.Backup.Name??_.MISSING_BACKUP_NAME," "),a(2),E("src",_.getBackendIcon(n.Backup.TargetURL),J),a(),S(" ",_.getBackendType(n.Backup.TargetURL)," "),a(8),E("backupId",n.Backup.ID)}}function kn(e,t){if(e&1&&(o(0,"p")(1,"span"),d(2,23),i(),T(3),D(4,"relativeTime"),i()),e&2){let n=l(3).$implicit,_=l(4);a(3),S(" ",A(4,1,n.Schedule.Time,_.timeType()==="actual")," ")}}function Gn(e,t){if(e&1&&(T(0),D(1,"durationFormat")),e&2){let n=l(3).$implicit,_=l(4);S(" ",A(1,1,n.Backup.Metadata==null?null:n.Backup.Metadata.LastBackupDuration,_.timeType()==="actual")," ")}}function yn(e,t){e&1&&(N(0),T(1,"-"),M())}function Bn(e,t){if(e&1&&(T(0),D(1,"bytes")),e&2){let n=l(3).$implicit;S(" ",G(1,1,n.Backup.Metadata==null?null:n.Backup.Metadata.SourceFilesSize)," ")}}function bn(e,t){e&1&&(N(0),T(1,"-"),M())}function vn(e,t){if(e&1&&(T(0),D(1,"bytes")),e&2){let n=l(3).$implicit;S(" ",G(1,1,n.Backup.Metadata==null?null:n.Backup.Metadata.TargetFilesSize)," ")}}function wn(e,t){e&1&&(N(0),T(1,"-"),M())}function Xn(e,t){if(e&1&&(o(0,"p")(1,"span"),d(2,19),i(),T(3),D(4,"relativeTime"),i(),p(5,kn,5,4,"p"),o(6,"p")(7,"span"),d(8,20),i(),p(9,Gn,2,4)(10,yn,2,0,"ng-container"),i(),o(11,"p")(12,"span"),d(13,21),i(),p(14,Bn,2,3)(15,bn,2,0,"ng-container"),i(),o(16,"p")(17,"span"),d(18,22),i(),p(19,vn,2,3)(20,wn,2,0,"ng-container"),i()),e&2){let n=l(2).$implicit,_=l(4);a(3),S(" ",A(4,5,n.Backup.Metadata==null?null:n.Backup.Metadata.LastBackupFinished,_.timeType()==="actual")," "),a(2),g(!(n==null||n.Schedule==null)&&n.Schedule.Time?5:-1),a(4),g(n.Backup.Metadata!=null&&n.Backup.Metadata.LastBackupDuration?9:10),a(5),g(n.Backup.Metadata!=null&&n.Backup.Metadata.SourceFilesSize?14:15),a(5),g(n.Backup.Metadata!=null&&n.Backup.Metadata.TargetFilesSize?19:20)}}function Jn(e,t){if(e&1&&C(0,"app-backup-progress",76),e&2){let n=l(2).$implicit;E("backupId",n.Backup.ID)}}function zn(e,t){e&1&&(o(0,"sh-chip",74),d(1,24),i())}function Vn(e,t){e&1&&f(0)}function Un(e,t){if(e&1&&(o(0,"div",71)(1,"div",53)(2,"h3"),T(3),o(4,"sh-chip"),C(5,"img",72),T(6),i()(),p(7,Xn,21,8)(8,Jn,1,1,"app-backup-progress",76),i(),o(9,"div",73)(10,"sh-chip",77),d(11,18),i(),p(12,zn,2,0,"sh-chip",74),i(),o(13,"div",57),P(14,Vn,1,0,"ng-container",78),i()()),e&2){let n=l().$implicit,_=l(4),r=W(33);a(3),S(" ",n.Backup.Name??_.MISSING_BACKUP_NAME," "),a(2),E("src",_.getBackendIcon(n.Backup.TargetURL),J),a(),S(" ",_.getBackendType(n.Backup.TargetURL)," "),a(),g(_.runningBackupId()!==n.Backup.ID?7:8);let F=_.getBackupVersionCount(n);a(4),x(F)(F),H(11),a(),g(n.Backup.ExternalID?12:-1),a(2),E("ngTemplateOutlet",r)("ngTemplateOutletContext",$(9,En,n))}}function Kn(e,t){if(e&1&&p(0,Hn,15,4,"div",70)(1,Un,15,11,"div",71),e&2){let n=t.$implicit;g(n.Backup.ExternalID?0:1)}}function Wn(e,t){if(e&1&&V(0,Kn,2,1,null,null,z),e&2){let n=l(3);U(n.backups())}}function jn(e,t){e&1&&(o(0,"div",69),s(1,25),o(2,"button",79),C(3,"sh-icon"),i(),u(),i()),e&2&&(a(2),E("routerLink",j(1,mn)))}function qn(e,t){if(e&1&&(o(0,"div",68),p(1,Wn,2,0)(2,jn,4,2,"div",69),i()),e&2){let n=l(2);h("fallback",n.backups().length===0),a(),g(n.backups().length?1:2)}}function Qn(e,t){e&1&&(s(0,26,1),f(1),u())}function Yn(e,t){e&1&&(s(0,27,1),f(1),u())}function Zn(e,t){e&1&&(s(0,28,1),f(1),u())}function et(e,t){e&1&&(s(0,29,1),f(1),u())}function nt(e,t){e&1&&(s(0,30,1),f(1),u())}function tt(e,t){e&1&&(s(0,31,1),f(1),u())}function it(e,t){e&1&&(s(0,32,1),f(1),u())}function ot(e,t){if(e&1&&(T(0),D(1,"relativeTime")),e&2){let n=l().$implicit,_=l(3);S(" ",A(1,1,n.Backup.Metadata==null?null:n.Backup.Metadata.LastBackupDate,_.timeType()==="actual")," ")}}function _t(e,t){e&1&&(N(0),T(1,"-"),M())}function at(e,t){if(e&1&&(T(0),D(1,"relativeTime")),e&2){let n=l().$implicit,_=l(3);S(" ",A(1,1,n.Schedule.Time,_.timeType()==="actual")," ")}}function lt(e,t){e&1&&(N(0),T(1,"-"),M())}function ct(e,t){if(e&1&&(T(0),D(1,"durationFormat")),e&2){let n=l().$implicit,_=l(3);S(" ",A(1,1,n.Backup.Metadata==null?null:n.Backup.Metadata.LastBackupDuration,_.timeType()==="actual")," ")}}function rt(e,t){e&1&&(N(0),T(1,"-"),M())}function st(e,t){if(e&1&&(T(0),D(1,"bytes")),e&2){let n=l().$implicit;S(" ",G(1,1,n.Backup.Metadata==null?null:n.Backup.Metadata.SourceFilesSize)," ")}}function ut(e,t){e&1&&(N(0),T(1,"-"),M())}function Ft(e,t){if(e&1&&(T(0),D(1,"bytes")),e&2){let n=l().$implicit;S(" ",G(1,1,n.Backup.Metadata==null?null:n.Backup.Metadata.TargetFilesSize)," ")}}function Ct(e,t){e&1&&(N(0),T(1,"-"),M())}function Tt(e,t){e&1&&f(0)}function dt(e,t){if(e&1&&(o(0,"tr")(1,"td"),T(2),i(),o(3,"td")(4,"sh-chip",90),C(5,"img",72),T(6),i()(),o(7,"td"),p(8,ot,2,4)(9,_t,2,0,"ng-container"),i(),o(10,"td"),p(11,at,2,4)(12,lt,2,0,"ng-container"),i(),o(13,"td"),p(14,ct,2,4)(15,rt,2,0,"ng-container"),i(),o(16,"td"),p(17,st,2,3)(18,ut,2,0,"ng-container"),i(),o(19,"td"),p(20,Ft,2,3)(21,Ct,2,0,"ng-container"),i(),o(22,"td")(23,"span"),d(24,35),i()(),o(25,"td"),P(26,Tt,1,0,"ng-container",78),i()()),e&2){let n=t.$implicit,_=l(3),r=W(33);a(2),S(" ",n.Backup.Name??_.MISSING_BACKUP_NAME," "),a(3),E("src",_.getBackendIcon(n.Backup.TargetURL),J),a(),S(" ",_.getBackendType(n.Backup.TargetURL)," "),a(2),g(n.Backup.Metadata!=null&&n.Backup.Metadata.LastBackupDate?8:9),a(3),g(!(n==null||n.Schedule==null)&&n.Schedule.Time?11:12),a(3),g(n.Backup.Metadata!=null&&n.Backup.Metadata.LastBackupDuration?14:15),a(3),g(n.Backup.Metadata!=null&&n.Backup.Metadata.SourceFilesSize?17:18),a(3),g(n.Backup.Metadata!=null&&n.Backup.Metadata.TargetFilesSize?20:21);let F=_.getBackupVersionCount(n);a(4),x(F)(F),H(24),a(2),E("ngTemplateOutlet",r)("ngTemplateOutletContext",$(12,En,n))}}function Et(e,t){if(e&1){let n=R();o(0,"sh-table",80),Z("sortByColumnChange",function(r){m(n);let F=l(2);return Y(F.sortByColumn,r)||(F.sortByColumn=r),O(r)}),o(1,"tr",81)(2,"th",82),s(3,26),P(4,Qn,2,0,"ng-container",83),u(),i(),o(5,"th",84),s(6,27),P(7,Yn,2,0,"ng-container",83),u(),i(),o(8,"th",85),s(9,28),P(10,Zn,2,0,"ng-container",83),u(),i(),o(11,"th",86),s(12,29),P(13,et,2,0,"ng-container",83),u(),i(),o(14,"th",87),s(15,30),P(16,nt,2,0,"ng-container",83),u(),i(),o(17,"th",88),s(18,31),P(19,tt,2,0,"ng-container",83),u(),i(),o(20,"th",89),s(21,32),P(22,it,2,0,"ng-container",83),u(),i(),o(23,"th"),d(24,33),i(),o(25,"th"),d(26,34),i()(),V(27,dt,27,14,"tr",null,z),i()}if(e&2){let n=l(2),_=W(35);E("data",n.backups())("loading",n.backupsLoading()),Q("sortByColumn",n.sortByColumn),a(4),E("ngTemplateOutlet",_),a(3),E("ngTemplateOutlet",_),a(3),E("ngTemplateOutlet",_),a(3),E("ngTemplateOutlet",_),a(3),E("ngTemplateOutlet",_),a(3),E("ngTemplateOutlet",_),a(3),E("ngTemplateOutlet",_),a(5),U(n.backups())}}function pt(e,t){if(e&1&&p(0,qn,3,3,"div",66)(1,Et,29,10,"sh-table",67),e&2){let n=l();g(n.viewMode()==="list"?0:n.viewMode()==="details"?1:-1)}}function gt(e,t){e&1&&(o(0,"div",91),C(1,"sh-progress-bar",92),o(2,"div",53)(3,"h3"),d(4,36),i()()())}function St(e,t){if(e&1){let n=R();o(0,"button",94),I("click",function(){m(n);let r=l(3);return O(r.abort())}),s(1,38),C(2,"sh-icon"),u(),i()}if(e&2){let n=l(3);h("small",n.viewMode()==="details")}}function mt(e,t){if(e&1){let n=R();o(0,"button",94),I("click",function(){m(n);let r=l(3);return O(r.stop())}),s(1,39),C(2,"sh-icon"),u(),i()}if(e&2){let n=l(3);h("small",n.viewMode()==="details")}}function Ot(e,t){e&1&&(s(0,37,1),C(1,"sh-icon"),u())}function Nt(e,t){e&1&&(s(0,37,2),C(1,"sh-icon"),u())}function Mt(e,t){if(e&1){let n=R();p(0,St,3,2,"button",93)(1,mt,3,2,"button",93),o(2,"button",94),I("click",function(){m(n);let r=l(2);return O(r.pauseResume())}),s(3,37),p(4,Ot,2,0)(5,Nt,2,0),u(),i()}if(e&2){let n=l(2);g(n.isStopping()?0:1),a(2),h("small",n.viewMode()==="details")("loading",n.isResuming()),a(2),g(n.clientIsRunning()?4:5)}}function It(e,t){e&1&&d(0,40,1)}function Pt(e,t){e&1&&(o(0,"sh-icon"),T(1,"check"),i())}function Dt(e,t){e&1&&(o(0,"sh-icon"),T(1,"dots-three-vertical"),i())}function ft(e,t){if(e&1){let n=R();o(0,"button",94),I("click",function(){m(n);let r=l().$implicit,F=l();return O(F.startBackup(r.Backup.ID))}),s(1,40),C(2,"sh-icon"),p(3,It,1,0),u(),i(),o(4,"button",95)(5,"sh-icon"),T(6,"pencil-simple"),i()(),o(7,"sh-menu")(8,"button",96),p(9,Pt,2,0,"sh-icon")(10,Dt,2,0,"sh-icon"),i(),N(11,63),o(12,"h3",97),T(13,"Operations"),i(),o(14,"button",98),s(15,41),C(16,"sh-icon"),u(),i(),o(17,"button",98),s(18,42),C(19,"sh-icon"),u(),i(),o(20,"button",98),s(21,43),C(22,"sh-icon"),u(),i(),C(23,"sh-divider"),o(24,"h3",97),d(25,44),i(),o(26,"button",98),s(27,45),C(28,"sh-icon"),u(),i(),o(29,"button",64),I("click",function(){m(n);let r=l().$implicit,F=l();return O(F.verifyFiles(r.Backup.ID))}),s(30,46),C(31,"sh-icon"),u(),i(),o(32,"button",64),I("click",function(){m(n);let r=l().$implicit,F=l();return O(F.compressBackup(r.Backup.ID))}),s(33,47),C(34,"sh-icon"),u(),i(),o(35,"button",98),s(36,48),C(37,"sh-icon"),u(),i(),C(38,"sh-divider"),o(39,"h3",97),d(40,49),i(),o(41,"button",98),s(42,50),C(43,"sh-icon"),u(),i(),M(),i()}if(e&2){let n=l().$implicit,_=l();h("loading",_.startingBackup()===n.Backup.ID),a(3),g(_.viewMode()==="list"?3:-1),a(),E("routerLink",$(15,On,n.Backup.ID)),a(4),h("loading",_.loadingId()===n.Backup.ID)("success",_.successId()===n.Backup.ID),a(),g(_.successId()===n.Backup.ID?9:10),a(5),E("routerLink",$(17,Nn,n.Backup.ID)),a(3),E("routerLink",$(19,Mn,n.Backup.ID)),a(3),E("routerLink",$(21,In,n.Backup.ID)),a(6),E("routerLink",$(23,Pn,n.Backup.ID)),a(9),E("routerLink",$(25,Dn,n.Backup.ID)),a(6),E("routerLink",$(27,fn,n.Backup.ID))}}function $t(e,t){if(e&1&&p(0,Mt,6,6)(1,ft,44,29),e&2){let n=t.$implicit,_=l();g(_.runningBackupId()===n.Backup.ID?0:1)}}function Rt(e,t){e&1&&(o(0,"sh-icon",99),T(1,"funnel-simple"),i(),o(2,"sh-icon",100),T(3,"sort-ascending"),i(),o(4,"sh-icon",101),T(5,"sort-descending"),i())}var ht={file:{Display:$localize`Local`,Icon:null}},ae=class e{#t=L(cn);#n=L(un);#e=L(sn);#o=L(Fn);#_=L(Ye);MISSING_BACKUP_NAME=$localize`Backup name missing`;sortOrderOptions=this.#e.orderByOptions;orderBy=this.#e.orderBy;backups=this.#e.backups;backupsLoading=this.#e.backupsLoading;startingBackup=this.#e.startingBackup;deletingBackup=this.#e.deletingBackup;runningBackupId=this.#n.runningBackupId;timeType=this.#e.timeType;clientIsRunning=this.#n.clientIsRunning;isResuming=this.#n.isResuming;runningTask=ne(()=>this.#n.serverState()?.ActiveTask?.Item1);isStopping=ne(()=>this.runningTask()==this.#i());#i=k(-1);viewMode=rn("viewMode","list");sortByColumn=k(this.#e.orderBy());loadingId=k(null);successId=k(null);sortEffect=Ke(()=>this.#e.setOrderBy(this.sortByColumn()));ngOnInit(){this.#e.getBackups(!0)}openInConsole(t){let n=t.Backup.ExternalID?.split(":")[1];if(!n){console.error("Backup does not have an external ID");return}this.#o.openConsole("/app/machines/configurations/"+n)}setOrderBy(t){this.#e.setOrderBy(t)}setTimeType(t){this.#e.setTimeType(t)}startBackup(t){this.#n.resumeDialogCheck(()=>this.#e.startBackup(t))}openPauseDialog(){this.#_.open(Tn,{maxWidth:"550px",width:"100%"})}pauseResume(){if(this.clientIsRunning()){this.openPauseDialog();return}this.#n.pauseResume().subscribe()}stop(){let t=this.runningTask();t&&(this.#i.set(t),this.#t.postApiV1TaskByTaskidStop({taskid:t}).subscribe())}abort(){let t=this.runningTask();t&&this.#t.postApiV1TaskByTaskidAbort({taskid:t}).subscribe()}getBackendIcon(t){return t?_e(t).icon??"database":""}getBackendType(t){if(!t)return"";let n=_e(t);if(!n)return"";let _=ht[n.key];if(_?.Display)return _.Display;if(n.key==="s3"){let r="http://null?"+t.split("?")[1],y=new URL(r).searchParams.get("s3-server-name")?.toLowerCase()??"";for(let[B,b]of Object.entries(Cn))if(y.endsWith(B))return b}return n.displayName}getBackupVersionCount(t){return parseInt(t?.Backup?.Metadata?.BackupListCount??"",10)||0}verifyFiles(t){this.loadingId.set(t),this.#t.postApiV1BackupByIdVerify({id:t}).pipe(q(()=>this.loadingId.set(null))).subscribe({next:()=>{this.successId.set(t),setTimeout(()=>this.successId.set(null),2e3)}})}compressBackup(t){this.loadingId.set(t),this.#t.postApiV1BackupByIdCompact({id:t}).pipe(q(()=>this.loadingId.set(null))).subscribe({next:()=>{this.successId.set(t),setTimeout(()=>this.successId.set(null),2e3)}})}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=We({type:e,selectors:[["app-home"]],decls:36,vars:6,consts:()=>{let t;t=$localize`Backups`;let n;n=$localize`Keep your data safe at your chosen destination.`;let _;_=$localize` Create ${"\uFFFD#12\uFFFD"}:START_TAG_SH_ICON:plus${"\uFFFD/#12\uFFFD"}:CLOSE_TAG_SH_ICON:`;let r;r=$localize`Restores`;let F;F=$localize`Recover your files from any backup set.`;let y;y=$localize` Start ${"\uFFFD#22\uFFFD"}:START_TAG_SH_ICON:arrow-right${"\uFFFD/#22\uFFFD"}:CLOSE_TAG_SH_ICON:`;let B;B=$localize`My backups`;let b;b=$localize`${"\uFFFD#4\uFFFD"}:START_TAG_SH_ICON:rows${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_SH_ICON: List `;let le;le=$localize`${"\uFFFD#7\uFFFD"}:START_TAG_SH_ICON:list${"\uFFFD/#7\uFFFD"}:CLOSE_TAG_SH_ICON: Details `;let ce;ce=$localize` Time: ${"\uFFFD#11\uFFFD"}:START_TAG_STRONG:${"\uFFFD*12:1\uFFFD"}:START_BLOCK_IF: Relative ${"\uFFFD/*12:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*13:2\uFFFD"}:START_BLOCK_ELSE_IF: Actual ${"\uFFFD/*13:2\uFFFD"}:CLOSE_BLOCK_ELSE_IF:${"\uFFFD*14:3\uFFFD"}:START_BLOCK_ELSE: ${"\uFFFD0:3\uFFFD"}:INTERPOLATION: ${"\uFFFD/*14:3\uFFFD"}:CLOSE_BLOCK_ELSE:${"\uFFFD/#11\uFFFD"}:CLOSE_TAG_STRONG:${"\uFFFD#15\uFFFD"}:START_TAG_SH_ICON:clock${"\uFFFD/#15\uFFFD"}:CLOSE_TAG_SH_ICON:`;let re;re=$localize`Relative time`;let se;se=$localize`Actual time`;let ue;ue=$localize` Order by: ${"\uFFFD#3\uFFFD"}:START_TAG_STRONG:${"\uFFFD0\uFFFD"}:INTERPOLATION:${"\uFFFD/#3\uFFFD"}:CLOSE_TAG_STRONG:${"\uFFFD#4\uFFFD"}:START_TAG_SH_ICON:arrows-down-up${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_SH_ICON:`;let Fe;Fe=$localize` ${"\uFFFD0\uFFFD"}:INTERPOLATION: `;let Ce;Ce=$localize`Externally managed`;let Te;Te=$localize` Edit in console ${"\uFFFD#13\uFFFD"}:START_TAG_SH_ICON:arrow-up-right${"\uFFFD/#13\uFFFD"}:CLOSE_TAG_SH_ICON:`;let v;v=$localize`{VAR_PLURAL, plural, =0 {No version yet} =1 {1 Version} other {{INTERPOLATION} Versions}}`,v=K(v,{INTERPOLATION:"\uFFFD1\uFFFD",VAR_PLURAL:"\uFFFD0\uFFFD"});let de;de=$localize` ${v}:ICU@@6502601490918455200: `;let Ee;Ee=$localize`Last successful backup:`;let pe;pe=$localize`Duration:`;let ge;ge=$localize`Source:`;let Se;Se=$localize`Destination:`;let me;me=$localize`Next scheduled run:`;let Oe;Oe=$localize`Externally managed`;let Ne;Ne=$localize` No backups found ${"\uFFFD#2\uFFFD"}:START_TAG_BUTTON: Click to create one now ${"\uFFFD#3\uFFFD"}:START_TAG_SH_ICON:plus${"\uFFFD/#3\uFFFD"}:CLOSE_TAG_SH_ICON:${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_BUTTON:`;let Me;Me=$localize` Backup ${"\uFFFD*4:1\uFFFD\uFFFD#1:1\uFFFD"}:START_TAG_NG_CONTAINER:${"\uFFFD/#1:1\uFFFD\uFFFD/*4:1\uFFFD"}:CLOSE_TAG_NG_CONTAINER:`;let Ie;Ie=$localize` Type ${"\uFFFD*7:1\uFFFD\uFFFD#1:1\uFFFD"}:START_TAG_NG_CONTAINER:${"\uFFFD/#1:1\uFFFD\uFFFD/*7:1\uFFFD"}:CLOSE_TAG_NG_CONTAINER:`;let Pe;Pe=$localize` Last backup ${"\uFFFD*10:1\uFFFD\uFFFD#1:1\uFFFD"}:START_TAG_NG_CONTAINER:${"\uFFFD/#1:1\uFFFD\uFFFD/*10:1\uFFFD"}:CLOSE_TAG_NG_CONTAINER:`;let De;De=$localize` Next run ${"\uFFFD*13:1\uFFFD\uFFFD#1:1\uFFFD"}:START_TAG_NG_CONTAINER:${"\uFFFD/#1:1\uFFFD\uFFFD/*13:1\uFFFD"}:CLOSE_TAG_NG_CONTAINER:`;let fe;fe=$localize` Duration ${"\uFFFD*16:1\uFFFD\uFFFD#1:1\uFFFD"}:START_TAG_NG_CONTAINER:${"\uFFFD/#1:1\uFFFD\uFFFD/*16:1\uFFFD"}:CLOSE_TAG_NG_CONTAINER:`;let $e;$e=$localize` Source ${"\uFFFD*19:1\uFFFD\uFFFD#1:1\uFFFD"}:START_TAG_NG_CONTAINER:${"\uFFFD/#1:1\uFFFD\uFFFD/*19:1\uFFFD"}:CLOSE_TAG_NG_CONTAINER:`;let Re;Re=$localize` Destination ${"\uFFFD*22:1\uFFFD\uFFFD#1:1\uFFFD"}:START_TAG_NG_CONTAINER:${"\uFFFD/#1:1\uFFFD\uFFFD/*22:1\uFFFD"}:CLOSE_TAG_NG_CONTAINER:`;let he;he=$localize`Version`;let Ae;Ae=$localize`Actions`;let w;w=$localize`{VAR_PLURAL, plural, =0 {No versions} =1 {1 Version} other {{INTERPOLATION} Versions}}`,w=K(w,{INTERPOLATION:"\uFFFD1\uFFFD",VAR_PLURAL:"\uFFFD0\uFFFD"});let Le;Le=$localize` ${w}:ICU@@3521773141017690117: `;let xe;xe=$localize`Loading backups...`;let X;X=$localize`${"\uFFFD*4: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/*4:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*5: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: Resume ${"\uFFFD/*5:2\uFFFD"}:CLOSE_BLOCK_ELSE:`,X=K(X);let He;He=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SH_ICON:skull${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_ICON: Abort `;let ke;ke=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SH_ICON:stop${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_ICON: Stop `;let Ge;Ge=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SH_ICON:play-circle${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_ICON:${"\uFFFD*3:1\uFFFD"}:START_BLOCK_IF: Start ${"\uFFFD/*3:1\uFFFD"}:CLOSE_BLOCK_IF:`;let ye;ye=$localize`${"\uFFFD#16\uFFFD"}:START_TAG_SH_ICON:clock-counter-clockwise${"\uFFFD/#16\uFFFD"}:CLOSE_TAG_SH_ICON: Restore `;let Be;Be=$localize`${"\uFFFD#19\uFFFD"}:START_TAG_SH_ICON:export${"\uFFFD/#19\uFFFD"}:CLOSE_TAG_SH_ICON: Export `;let be;be=$localize`${"\uFFFD#22\uFFFD"}:START_TAG_SH_ICON:x-circle${"\uFFFD/#22\uFFFD"}:CLOSE_TAG_SH_ICON: Delete `;let ve;ve=$localize`Advanced`;let we;we=$localize`${"\uFFFD#28\uFFFD"}:START_TAG_SH_ICON:database${"\uFFFD/#28\uFFFD"}:CLOSE_TAG_SH_ICON: Database `;let Xe;Xe=$localize`${"\uFFFD#31\uFFFD"}:START_TAG_SH_ICON:check-square-offset${"\uFFFD/#31\uFFFD"}:CLOSE_TAG_SH_ICON: Verify files `;let Je;Je=$localize`${"\uFFFD#34\uFFFD"}:START_TAG_SH_ICON:file-archive${"\uFFFD/#34\uFFFD"}:CLOSE_TAG_SH_ICON: Compress now `;let ze;ze=$localize`${"\uFFFD#37\uFFFD"}:START_TAG_SH_ICON:terminal-window${"\uFFFD/#37\uFFFD"}:CLOSE_TAG_SH_ICON: Commandline `;let Ve;Ve=$localize`Reporting`;let Ue;return Ue=$localize`${"\uFFFD#43\uFFFD"}:START_TAG_SH_ICON:notepad${"\uFFFD/#43\uFFFD"}:CLOSE_TAG_SH_ICON: Log `,[["actions",""],["sortIcons",""],t,n,_,r,F,y,B,b,le,ce,re,se,ue,Fe,Ce,Te,de,Ee,pe,ge,Se,me,Oe,Ne,Me,Ie,Pe,De,fe,$e,Re,he,Ae,Le,xe,X,He,ke,Ge,ye,Be,be,ve,we,Xe,Je,ze,Ve,Ue,[1,"type-a","actionable",3,"keydown.enter","keydown.space","routerLink"],["src","assets/images/backup.png","alt","","width","48px"],[1,"text"],["type","button","tabindex","-1","shButton",""],["src","assets/images/restore.png","alt","","width","48px"],[1,"content"],[1,"actions"],[1,"small","type-b",3,"valueChange","value"],["value","list"],["value","details"],[1,"table-overview"],["type","button","shButton","",1,"small"],["menu",""],["type","button",3,"click"],["type","button",3,"active"],[1,"backups",3,"fallback"],[1,"type-b",3,"data","loading","sortByColumn"],[1,"backups"],[1,"no-backups"],[1,"backup","externaly-managed"],[1,"backup"],["alt","",1,"provider-icon",3,"src"],[1,"tags"],[1,"simple","primary"],["type","button","shButton","",3,"click"],[3,"backupId"],[1,"simple","success"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],["shButton","",1,"primary","raised",3,"routerLink"],[1,"type-b",3,"sortByColumnChange","data","loading","sortByColumn"],["thead",""],["shSort","name"],[4,"ngTemplateOutlet"],["shSort","type"],["shSort","lastrun"],["shSort","nextrun"],["shSort","duration"],["shSort","sourcesize"],["shSort","destinationsize"],[1,"small"],[1,"loading-list"],[1,"indeterminate","primary"],["shButton","",3,"small"],["shButton","",3,"click"],["type","button","shButton","",3,"routerLink"],["type","button","shButton",""],["title",""],["type","button",3,"routerLink"],[1,"filter"],[1,"asc"],[1,"desc"]]},template:function(n,_){n&1&&(C(0,"app-status-bar"),o(1,"section")(2,"header")(3,"sh-card",51),I("keydown.enter",function(F){return F.target.click()})("keydown.space",function(F){return F.target.click()}),C(4,"img",52),o(5,"div",53)(6,"h3"),d(7,2),i(),o(8,"p"),d(9,3),i()(),o(10,"button",54),s(11,4),C(12,"sh-icon"),u(),i()(),o(13,"sh-card",51),I("keydown.enter",function(F){return F.target.click()})("keydown.space",function(F){return F.target.click()}),C(14,"img",55),o(15,"div",53)(16,"h3"),d(17,5),i(),o(18,"p"),d(19,6),i()(),o(20,"button",54),s(21,7),C(22,"sh-icon"),u(),i()()(),o(23,"div",56)(24,"h2"),N(25),d(26,8),M(),p(27,xn,22,3,"div",57),i(),je(28,pt,2,1)(29,gt,5,0),qe(30,28,pn,null,29),i()(),P(32,$t,2,1,"ng-template",null,0,ee)(34,Rt,6,0,"ng-template",null,1,ee)),n&2&&(a(3),E("routerLink",j(4,gn)),a(10),E("routerLink",j(5,Sn)),a(14),g(_.backups().length>0?27:-1),a(3),Qe(!_.backupsLoading()))},dependencies:[te,dn,en,oe,ie,tn,on,_n,Ze],styles:["[_nghost-%COMP%]{display:block}h2[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between}section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;padding:2rem 0}header[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;padding:0 2rem;gap:1rem}@media only screen and (max-width:768px){header[_ngcontent-%COMP%]{grid-template-columns:1fr}}sh-card[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem}sh-card[_ngcontent-%COMP%] .text[_ngcontent-%COMP%]{flex:1 0;display:flex;flex-direction:column;gap:.25rem}.content[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.content[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{padding:0 2rem}@media only screen and (max-width:768px){.content[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem}}sh-menu[_ngcontent-%COMP%]{color:red}.backups[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding:0 2rem;gap:.5rem}.backups.fallback[_ngcontent-%COMP%]{justify-content:center;align-items:center;padding:4rem;border:1px solid var(--base-4);background:var(--base-2);border-radius:var(--shape-2);width:calc(100% - 4rem);margin:0 auto}.no-backups[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;align-items:center}.backup[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:2rem;gap:1rem;border:1px solid var(--base-4);border-radius:var(--shape-3);box-shadow:var(--box-shadow-10)}@media only screen and (max-width:768px){.backup[_ngcontent-%COMP%]{flex-direction:column;align-items:flex-start}}.backup[_ngcontent-%COMP%] .text[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;width:100%;max-width:40%}@media only screen and (max-width:768px){.backup[_ngcontent-%COMP%] .text[_ngcontent-%COMP%]{max-width:initial}}.backup[_ngcontent-%COMP%] .text[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem}.backup[_ngcontent-%COMP%] .text[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] sh-icon[_ngcontent-%COMP%]{color:var(--base-8)}.backup[_ngcontent-%COMP%] .text[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{font:var(--paragraph-30);color:var(--base-8)}.backup[_ngcontent-%COMP%] .text[_ngcontent-%COMP%] p[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--base-12)}.backup[_ngcontent-%COMP%] .tags[_ngcontent-%COMP%]{display:flex;align-items:center;flex-direction:column;gap:.5rem}.provider-icon[_ngcontent-%COMP%]{width:1.25rem;height:1.25rem}.actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem}.sortable[_ngcontent-%COMP%]{-webkit-user-select:none;user-select:none}.sortable[_ngcontent-%COMP%] sh-icon[_ngcontent-%COMP%]{margin-left:.5rem;font-size:1rem;justify-self:flex-end;display:none}.sortable[_ngcontent-%COMP%]:not(.sort-asc):not(.sort-desc) sh-icon.filter[_ngcontent-%COMP%]{display:block}.sortable.sort-asc[_ngcontent-%COMP%] sh-icon.asc[_ngcontent-%COMP%]{display:block;color:var(--base-12)}.sortable.sort-desc[_ngcontent-%COMP%] sh-icon.desc[_ngcontent-%COMP%]{display:block;color:var(--base-12)}.actionable[_ngcontent-%COMP%]{cursor:pointer}.actionable[_ngcontent-%COMP%]:after{transition:inset .1s linear}.actionable[_ngcontent-%COMP%]:hover{--card-shp: 0}"],changeDetection:0})};export{ae as default};
1
+ import{a as dn}from"./chunk-IFSZJSGH.js";import{a as Tn}from"./chunk-QDDVZ4CR.js";import"./chunk-BLSV7CNZ.js";import"./chunk-I6MIXWIT.js";import{c as _e,l as Cn}from"./chunk-ZEFSBETQ.js";import{b as un}from"./chunk-RJ2JM7C7.js";import{a as sn}from"./chunk-WOKYULBU.js";import"./chunk-TCXCC5BM.js";import"./chunk-GKGMP6VF.js";import"./chunk-6Q6SSTBK.js";import"./chunk-YCJYEQF7.js";import{a as Fn}from"./chunk-OHYENIPP.js";import"./chunk-UTXZPAY6.js";import"./chunk-IMQUTGIK.js";import{a as cn}from"./chunk-ANSV4G2K.js";import"./chunk-BACKG7KA.js";import"./chunk-IQL3REGJ.js";import"./chunk-AIAUP7OE.js";import"./chunk-C6PICAXB.js";import"./chunk-6JS7B4FW.js";import{A as Ze,B as oe,C as en,E as nn,G as tn,K as on,L as _n,S as an,T as ln,v as ie,z as Ye}from"./chunk-VKQQDCUN.js";import{d as rn}from"./chunk-DSYNIXJF.js";import{e as te}from"./chunk-NPFPMA4P.js";import"./chunk-O2SMJYPC.js";import"./chunk-N2AU7VKX.js";import"./chunk-ZC23RK4J.js";import"./chunk-OPHQNXYO.js";import{$b as l,Ab as V,Ac as j,Bb as U,Bc as $,Cb as E,Db as o,Eb as i,F as q,Fb as C,Fc as D,Gc as k,Hc as A,Jb as N,Jc as ee,Kb as M,Lb as f,Mb as R,Pa as J,Qc as ne,Sa as a,Tb as s,Ub as u,Vb as d,Wb as x,Xb as y,Yb as K,Zb as I,_ as L,da as m,ea as O,gb as We,ic as W,kc as h,lb as P,mb as je,nc as T,pa as H,pc as S,ra as Ke,sc as Q,tb as qe,tc as Y,ub as Qe,uc as Z,wb as p,xb as g,yb as z}from"./chunk-TQTOIWBK.js";import"./chunk-7CGTOI24.js";var pn=()=>[te,import("./chunk-KZTFESBJ.js").then(e=>e.NgTemplateOutlet),oe,ie,nn,ln,an,import("./chunk-3RCF6UT4.js").then(e=>e.BackupProgressComponent),import("./chunk-XWTB7XRI.js").then(e=>e.DurationFormatPipe),import("./chunk-ZNYN6ES6.js").then(e=>e.BytesPipe),import("./chunk-ACTATISC.js").then(e=>e.RelativeTimePipe)],gn=()=>["/add-backup"],Sn=()=>["/restore"],En=e=>({$implicit:e}),mn=()=>["/backup/new"],On=e=>["/backup",e],Nn=e=>["/restore",e],Mn=e=>["/backup",e,"export"],In=e=>["/backup",e,"delete"],Pn=e=>["/backup",e,"database"],Dn=e=>["/backup",e,"commandline"],fn=e=>["/backup",e,"log"];function $n(e,t){e&1&&d(0,11,1)}function Rn(e,t){e&1&&d(0,11,2)}function hn(e,t){if(e&1&&d(0,11,3),e&2){let n=l(2);x(n.timeType()),y(0)}}function An(e,t){if(e&1){let n=R();o(0,"button",64),I("click",function(){let c=m(n).$implicit,F=l(3);return O(F.sortByColumn.set(c.value))}),d(1,15),i()}if(e&2){let n=t.$implicit,_=l(3);h("active",_.orderBy()===n.value),a(),x(n.label),y(1)}}function Ln(e,t){if(e&1&&(o(0,"sh-menu",61)(1,"button",62),s(2,14),C(3,"strong")(4,"sh-icon"),u(),i(),N(5,63),V(6,An,2,3,"button",65,z),M(),i()),e&2){let n=l(2);a(4),x(n.orderBy()),y(2),a(2),U(n.sortOrderOptions())}}function xn(e,t){if(e&1){let n=R();o(0,"div",57)(1,"sh-button-group",58),Z("valueChange",function(c){m(n);let F=l();return Y(F.viewMode,c)||(F.viewMode=c),O(c)}),o(2,"button",59),s(3,9),C(4,"sh-icon"),u(),i(),o(5,"button",60),s(6,10),C(7,"sh-icon"),u(),i()(),o(8,"sh-menu",61)(9,"button",62),s(10,11),o(11,"strong"),p(12,$n,1,0)(13,Rn,1,0)(14,hn,1,1),i(),C(15,"sh-icon"),u(),i(),N(16,63),o(17,"button",64),I("click",function(){m(n);let c=l();return O(c.setTimeType("relative"))}),d(18,12),i(),o(19,"button",64),I("click",function(){m(n);let c=l();return O(c.setTimeType("actual"))}),d(20,13),i(),M(),i(),p(21,Ln,8,1,"sh-menu",61),i()}if(e&2){let n=l();a(),Q("value",n.viewMode),a(11),g(n.timeType()=="relative"?12:n.timeType()=="actual"?13:14),a(9),g(n.viewMode()==="list"?21:-1)}}function yn(e,t){if(e&1){let n=R();o(0,"div",70)(1,"div",53)(2,"h3"),T(3),o(4,"sh-chip"),C(5,"img",72),T(6),i()()(),o(7,"div",73)(8,"sh-chip",74),d(9,16),i()(),o(10,"div",57)(11,"button",75),I("click",function(){m(n);let c=l().$implicit,F=l(4);return O(F.openInConsole(c))}),s(12,17),C(13,"sh-icon"),u(),i()(),C(14,"app-backup-progress",76),i()}if(e&2){let n=l().$implicit,_=l(4);a(3),S(" ",n.Backup.Name??_.MISSING_BACKUP_NAME," "),a(2),E("src",_.getBackendIcon(n.Backup.TargetURL),J),a(),S(" ",_.getBackendType(n.Backup.TargetURL)," "),a(8),E("backupId",n.Backup.ID)}}function Hn(e,t){if(e&1&&(o(0,"p")(1,"span"),d(2,23),i(),T(3),D(4,"relativeTime"),i()),e&2){let n=l(3).$implicit,_=l(4);a(3),S(" ",A(4,1,n.Schedule.Time,_.timeType()==="actual")," ")}}function kn(e,t){if(e&1&&(T(0),D(1,"durationFormat")),e&2){let n=l(3).$implicit,_=l(4);S(" ",A(1,1,n.Backup.Metadata==null?null:n.Backup.Metadata.LastBackupDuration,_.timeType()==="actual")," ")}}function Gn(e,t){e&1&&(N(0),T(1,"-"),M())}function bn(e,t){if(e&1&&(T(0),D(1,"bytes")),e&2){let n=l(3).$implicit;S(" ",k(1,1,n.Backup.Metadata==null?null:n.Backup.Metadata.SourceFilesSize)," ")}}function Bn(e,t){e&1&&(N(0),T(1,"-"),M())}function vn(e,t){if(e&1&&(T(0),D(1,"bytes")),e&2){let n=l(3).$implicit;S(" ",k(1,1,n.Backup.Metadata==null?null:n.Backup.Metadata.TargetFilesSize)," ")}}function wn(e,t){e&1&&(N(0),T(1,"-"),M())}function Xn(e,t){if(e&1&&(o(0,"p")(1,"span"),d(2,19),i(),T(3),D(4,"relativeTime"),i(),p(5,Hn,5,4,"p"),o(6,"p")(7,"span"),d(8,20),i(),p(9,kn,2,4)(10,Gn,2,0,"ng-container"),i(),o(11,"p")(12,"span"),d(13,21),i(),p(14,bn,2,3)(15,Bn,2,0,"ng-container"),i(),o(16,"p")(17,"span"),d(18,22),i(),p(19,vn,2,3)(20,wn,2,0,"ng-container"),i()),e&2){let n=l(2).$implicit,_=l(4);a(3),S(" ",A(4,5,n.Backup.Metadata==null?null:n.Backup.Metadata.LastBackupFinished,_.timeType()==="actual")," "),a(2),g(!(n==null||n.Schedule==null)&&n.Schedule.Time?5:-1),a(4),g(n.Backup.Metadata!=null&&n.Backup.Metadata.LastBackupDuration?9:10),a(5),g(n.Backup.Metadata!=null&&n.Backup.Metadata.SourceFilesSize?14:15),a(5),g(n.Backup.Metadata!=null&&n.Backup.Metadata.TargetFilesSize?19:20)}}function Jn(e,t){if(e&1&&C(0,"app-backup-progress",76),e&2){let n=l(2).$implicit;E("backupId",n.Backup.ID)}}function zn(e,t){e&1&&(o(0,"sh-chip",74),d(1,24),i())}function Vn(e,t){e&1&&f(0)}function Un(e,t){if(e&1&&(o(0,"div",71)(1,"div",53)(2,"h3"),T(3),o(4,"sh-chip"),C(5,"img",72),T(6),i()(),p(7,Xn,21,8)(8,Jn,1,1,"app-backup-progress",76),i(),o(9,"div",73)(10,"sh-chip",77),d(11,18),i(),p(12,zn,2,0,"sh-chip",74),i(),o(13,"div",57),P(14,Vn,1,0,"ng-container",78),i()()),e&2){let n=l().$implicit,_=l(4),c=W(33);a(3),S(" ",n.Backup.Name??_.MISSING_BACKUP_NAME," "),a(2),E("src",_.getBackendIcon(n.Backup.TargetURL),J),a(),S(" ",_.getBackendType(n.Backup.TargetURL)," "),a(),g(_.runningBackupId()!==n.Backup.ID?7:8);let F=_.getBackupVersionCount(n);a(4),x(F)(F),y(11),a(),g(n.Backup.ExternalID?12:-1),a(2),E("ngTemplateOutlet",c)("ngTemplateOutletContext",$(9,En,n))}}function Kn(e,t){if(e&1&&p(0,yn,15,4,"div",70)(1,Un,15,11,"div",71),e&2){let n=t.$implicit;g(n.Backup.ExternalID?0:1)}}function Wn(e,t){if(e&1&&V(0,Kn,2,1,null,null,z),e&2){let n=l(3);U(n.backups())}}function jn(e,t){e&1&&(o(0,"div",69),s(1,25),o(2,"button",79),C(3,"sh-icon"),i(),u(),i()),e&2&&(a(2),E("routerLink",j(1,mn)))}function qn(e,t){if(e&1&&(o(0,"div",68),p(1,Wn,2,0)(2,jn,4,2,"div",69),i()),e&2){let n=l(2);h("fallback",n.backups().length===0),a(),g(n.backups().length?1:2)}}function Qn(e,t){e&1&&(s(0,26,1),f(1),u())}function Yn(e,t){e&1&&(s(0,27,1),f(1),u())}function Zn(e,t){e&1&&(s(0,28,1),f(1),u())}function et(e,t){e&1&&(s(0,29,1),f(1),u())}function nt(e,t){e&1&&(s(0,30,1),f(1),u())}function tt(e,t){e&1&&(s(0,31,1),f(1),u())}function it(e,t){e&1&&(s(0,32,1),f(1),u())}function ot(e,t){if(e&1&&(T(0),D(1,"relativeTime")),e&2){let n=l().$implicit,_=l(3);S(" ",A(1,1,n.Backup.Metadata==null?null:n.Backup.Metadata.LastBackupDate,_.timeType()==="actual")," ")}}function _t(e,t){e&1&&(N(0),T(1,"-"),M())}function at(e,t){if(e&1&&(T(0),D(1,"relativeTime")),e&2){let n=l().$implicit,_=l(3);S(" ",A(1,1,n.Schedule.Time,_.timeType()==="actual")," ")}}function lt(e,t){e&1&&(N(0),T(1,"-"),M())}function rt(e,t){if(e&1&&(T(0),D(1,"durationFormat")),e&2){let n=l().$implicit,_=l(3);S(" ",A(1,1,n.Backup.Metadata==null?null:n.Backup.Metadata.LastBackupDuration,_.timeType()==="actual")," ")}}function ct(e,t){e&1&&(N(0),T(1,"-"),M())}function st(e,t){if(e&1&&(T(0),D(1,"bytes")),e&2){let n=l().$implicit;S(" ",k(1,1,n.Backup.Metadata==null?null:n.Backup.Metadata.SourceFilesSize)," ")}}function ut(e,t){e&1&&(N(0),T(1,"-"),M())}function Ft(e,t){if(e&1&&(T(0),D(1,"bytes")),e&2){let n=l().$implicit;S(" ",k(1,1,n.Backup.Metadata==null?null:n.Backup.Metadata.TargetFilesSize)," ")}}function Ct(e,t){e&1&&(N(0),T(1,"-"),M())}function Tt(e,t){e&1&&f(0)}function dt(e,t){if(e&1&&(o(0,"tr")(1,"td"),T(2),i(),o(3,"td")(4,"sh-chip",90),C(5,"img",72),T(6),i()(),o(7,"td"),p(8,ot,2,4)(9,_t,2,0,"ng-container"),i(),o(10,"td"),p(11,at,2,4)(12,lt,2,0,"ng-container"),i(),o(13,"td"),p(14,rt,2,4)(15,ct,2,0,"ng-container"),i(),o(16,"td"),p(17,st,2,3)(18,ut,2,0,"ng-container"),i(),o(19,"td"),p(20,Ft,2,3)(21,Ct,2,0,"ng-container"),i(),o(22,"td")(23,"span"),d(24,35),i()(),o(25,"td"),P(26,Tt,1,0,"ng-container",78),i()()),e&2){let n=t.$implicit,_=l(3),c=W(33);a(2),S(" ",n.Backup.Name??_.MISSING_BACKUP_NAME," "),a(3),E("src",_.getBackendIcon(n.Backup.TargetURL),J),a(),S(" ",_.getBackendType(n.Backup.TargetURL)," "),a(2),g(n.Backup.Metadata!=null&&n.Backup.Metadata.LastBackupDate?8:9),a(3),g(!(n==null||n.Schedule==null)&&n.Schedule.Time?11:12),a(3),g(n.Backup.Metadata!=null&&n.Backup.Metadata.LastBackupDuration?14:15),a(3),g(n.Backup.Metadata!=null&&n.Backup.Metadata.SourceFilesSize?17:18),a(3),g(n.Backup.Metadata!=null&&n.Backup.Metadata.TargetFilesSize?20:21);let F=_.getBackupVersionCount(n);a(4),x(F)(F),y(24),a(2),E("ngTemplateOutlet",c)("ngTemplateOutletContext",$(12,En,n))}}function Et(e,t){if(e&1){let n=R();o(0,"sh-table",80),Z("sortByColumnChange",function(c){m(n);let F=l(2);return Y(F.sortByColumn,c)||(F.sortByColumn=c),O(c)}),o(1,"tr",81)(2,"th",82),s(3,26),P(4,Qn,2,0,"ng-container",83),u(),i(),o(5,"th",84),s(6,27),P(7,Yn,2,0,"ng-container",83),u(),i(),o(8,"th",85),s(9,28),P(10,Zn,2,0,"ng-container",83),u(),i(),o(11,"th",86),s(12,29),P(13,et,2,0,"ng-container",83),u(),i(),o(14,"th",87),s(15,30),P(16,nt,2,0,"ng-container",83),u(),i(),o(17,"th",88),s(18,31),P(19,tt,2,0,"ng-container",83),u(),i(),o(20,"th",89),s(21,32),P(22,it,2,0,"ng-container",83),u(),i(),o(23,"th"),d(24,33),i(),o(25,"th"),d(26,34),i()(),V(27,dt,27,14,"tr",null,z),i()}if(e&2){let n=l(2),_=W(35);E("data",n.backups())("loading",n.backupsLoading()),Q("sortByColumn",n.sortByColumn),a(4),E("ngTemplateOutlet",_),a(3),E("ngTemplateOutlet",_),a(3),E("ngTemplateOutlet",_),a(3),E("ngTemplateOutlet",_),a(3),E("ngTemplateOutlet",_),a(3),E("ngTemplateOutlet",_),a(3),E("ngTemplateOutlet",_),a(5),U(n.backups())}}function pt(e,t){if(e&1&&p(0,qn,3,3,"div",66)(1,Et,29,10,"sh-table",67),e&2){let n=l();g(n.viewMode()==="list"?0:n.viewMode()==="details"?1:-1)}}function gt(e,t){e&1&&(o(0,"div",91),C(1,"sh-progress-bar",92),o(2,"div",53)(3,"h3"),d(4,36),i()()())}function St(e,t){if(e&1){let n=R();o(0,"button",94),I("click",function(){m(n);let c=l(3);return O(c.abort())}),s(1,38),C(2,"sh-icon"),u(),i()}if(e&2){let n=l(3);h("small",n.viewMode()==="details")}}function mt(e,t){if(e&1){let n=R();o(0,"button",94),I("click",function(){m(n);let c=l(3);return O(c.stop())}),s(1,39),C(2,"sh-icon"),u(),i()}if(e&2){let n=l(3);h("small",n.viewMode()==="details")}}function Ot(e,t){e&1&&(s(0,37,1),C(1,"sh-icon"),u())}function Nt(e,t){e&1&&(s(0,37,2),C(1,"sh-icon"),u())}function Mt(e,t){if(e&1){let n=R();p(0,St,3,2,"button",93)(1,mt,3,2,"button",93),o(2,"button",94),I("click",function(){m(n);let c=l(2);return O(c.pauseResume())}),s(3,37),p(4,Ot,2,0)(5,Nt,2,0),u(),i()}if(e&2){let n=l(2);g(n.isStopping()?0:1),a(2),h("small",n.viewMode()==="details")("loading",n.isResuming()),a(2),g(n.clientIsRunning()?4:5)}}function It(e,t){e&1&&d(0,40,1)}function Pt(e,t){e&1&&(o(0,"sh-icon"),T(1,"check"),i())}function Dt(e,t){e&1&&(o(0,"sh-icon"),T(1,"dots-three-vertical"),i())}function ft(e,t){if(e&1){let n=R();o(0,"button",94),I("click",function(){m(n);let c=l().$implicit,F=l();return O(F.startBackup(c.Backup.ID))}),s(1,40),C(2,"sh-icon"),p(3,It,1,0),u(),i(),o(4,"button",95)(5,"sh-icon"),T(6,"pencil-simple"),i()(),o(7,"sh-menu")(8,"button",96),p(9,Pt,2,0,"sh-icon")(10,Dt,2,0,"sh-icon"),i(),N(11,63),o(12,"h3",97),T(13,"Operations"),i(),o(14,"button",98),s(15,41),C(16,"sh-icon"),u(),i(),o(17,"button",98),s(18,42),C(19,"sh-icon"),u(),i(),o(20,"button",98),s(21,43),C(22,"sh-icon"),u(),i(),C(23,"sh-divider"),o(24,"h3",97),d(25,44),i(),o(26,"button",98),s(27,45),C(28,"sh-icon"),u(),i(),o(29,"button",64),I("click",function(){m(n);let c=l().$implicit,F=l();return O(F.verifyFiles(c.Backup.ID))}),s(30,46),C(31,"sh-icon"),u(),i(),o(32,"button",64),I("click",function(){m(n);let c=l().$implicit,F=l();return O(F.compressBackup(c.Backup.ID))}),s(33,47),C(34,"sh-icon"),u(),i(),o(35,"button",98),s(36,48),C(37,"sh-icon"),u(),i(),C(38,"sh-divider"),o(39,"h3",97),d(40,49),i(),o(41,"button",98),s(42,50),C(43,"sh-icon"),u(),i(),M(),i()}if(e&2){let n=l().$implicit,_=l();h("loading",_.startingBackup()===n.Backup.ID),a(3),g(_.viewMode()==="list"?3:-1),a(),E("routerLink",$(15,On,n.Backup.ID)),a(4),h("loading",_.loadingId()===n.Backup.ID)("success",_.successId()===n.Backup.ID),a(),g(_.successId()===n.Backup.ID?9:10),a(5),E("routerLink",$(17,Nn,n.Backup.ID)),a(3),E("routerLink",$(19,Mn,n.Backup.ID)),a(3),E("routerLink",$(21,In,n.Backup.ID)),a(6),E("routerLink",$(23,Pn,n.Backup.ID)),a(9),E("routerLink",$(25,Dn,n.Backup.ID)),a(6),E("routerLink",$(27,fn,n.Backup.ID))}}function $t(e,t){if(e&1&&p(0,Mt,6,6)(1,ft,44,29),e&2){let n=t.$implicit,_=l();g(_.runningBackupId()===n.Backup.ID?0:1)}}function Rt(e,t){e&1&&(o(0,"sh-icon",99),T(1,"funnel-simple"),i(),o(2,"sh-icon",100),T(3,"sort-ascending"),i(),o(4,"sh-icon",101),T(5,"sort-descending"),i())}var ht={file:{Display:$localize`Local`,Icon:null}},ae=class e{#t=L(rn);#n=L(un);#e=L(sn);#o=L(Fn);#_=L(Ye);MISSING_BACKUP_NAME=$localize`Backup name missing`;sortOrderOptions=this.#e.orderByOptions;orderBy=this.#e.orderBy;backups=this.#e.backups;backupsLoading=this.#e.backupsLoading;startingBackup=this.#e.startingBackup;deletingBackup=this.#e.deletingBackup;runningBackupId=this.#n.runningBackupId;timeType=this.#e.timeType;clientIsRunning=this.#n.clientIsRunning;isResuming=this.#n.isResuming;runningTask=ne(()=>this.#n.serverState()?.ActiveTask?.Item1);isStopping=ne(()=>this.runningTask()==this.#i());#i=H(-1);viewMode=cn("viewMode","list");sortByColumn=H(this.#e.orderBy());loadingId=H(null);successId=H(null);sortEffect=Ke(()=>this.#e.setOrderBy(this.sortByColumn()));ngOnInit(){this.#e.getBackups(!0)}openInConsole(t){let n=t.Backup.ExternalID?.split(":")[1];if(!n){console.error("Backup does not have an external ID");return}this.#o.openConsole("/app/machines/configurations/"+n)}setOrderBy(t){this.#e.setOrderBy(t)}setTimeType(t){this.#e.setTimeType(t)}startBackup(t){this.#n.resumeDialogCheck(()=>this.#e.startBackup(t))}openPauseDialog(){this.#_.open(Tn,{maxWidth:"550px",width:"100%"})}pauseResume(){if(this.clientIsRunning()){this.openPauseDialog();return}this.#n.pauseResume().subscribe()}stop(){let t=this.runningTask();t&&(this.#i.set(t),this.#t.postApiV1TaskByTaskidStop({taskid:t}).subscribe())}abort(){let t=this.runningTask();t&&this.#t.postApiV1TaskByTaskidAbort({taskid:t}).subscribe()}getBackendIcon(t){return t?_e(t).icon??"database":""}getBackendType(t){if(!t)return"";let n=_e(t);if(!n)return"";let _=ht[n.key];if(_?.Display)return _.Display;if(n.key==="s3"){let c="http://null?"+t.split("?")[1],G=new URL(c).searchParams.get("s3-server-name")?.toLowerCase()??"";for(let[b,B]of Object.entries(Cn))if(G.endsWith(b))return B}return n.displayName}getBackupVersionCount(t){return parseInt(t?.Backup?.Metadata?.BackupListCount??"",10)||0}verifyFiles(t){this.loadingId.set(t),this.#t.postApiV1BackupByIdVerify({id:t}).pipe(q(()=>this.loadingId.set(null))).subscribe({next:()=>{this.successId.set(t),setTimeout(()=>this.successId.set(null),2e3)}})}compressBackup(t){this.loadingId.set(t),this.#t.postApiV1BackupByIdCompact({id:t}).pipe(q(()=>this.loadingId.set(null))).subscribe({next:()=>{this.successId.set(t),setTimeout(()=>this.successId.set(null),2e3)}})}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=We({type:e,selectors:[["app-home"]],decls:36,vars:6,consts:()=>{let t;t=$localize`Backups`;let n;n=$localize`Keep your data safe at your chosen destination.`;let _;_=$localize` Create ${"\uFFFD#12\uFFFD"}:START_TAG_SH_ICON:plus${"\uFFFD/#12\uFFFD"}:CLOSE_TAG_SH_ICON:`;let c;c=$localize`Restores`;let F;F=$localize`Recover your files from any backup set.`;let G;G=$localize` Start ${"\uFFFD#22\uFFFD"}:START_TAG_SH_ICON:arrow-right${"\uFFFD/#22\uFFFD"}:CLOSE_TAG_SH_ICON:`;let b;b=$localize`My backups`;let B;B=$localize`${"\uFFFD#4\uFFFD"}:START_TAG_SH_ICON:rows${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_SH_ICON: List `;let le;le=$localize`${"\uFFFD#7\uFFFD"}:START_TAG_SH_ICON:list${"\uFFFD/#7\uFFFD"}:CLOSE_TAG_SH_ICON: Details `;let re;re=$localize` Time: ${"\uFFFD#11\uFFFD"}:START_TAG_STRONG:${"\uFFFD*12:1\uFFFD"}:START_BLOCK_IF: Relative ${"\uFFFD/*12:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*13:2\uFFFD"}:START_BLOCK_ELSE_IF: Actual ${"\uFFFD/*13:2\uFFFD"}:CLOSE_BLOCK_ELSE_IF:${"\uFFFD*14:3\uFFFD"}:START_BLOCK_ELSE: ${"\uFFFD0:3\uFFFD"}:INTERPOLATION: ${"\uFFFD/*14:3\uFFFD"}:CLOSE_BLOCK_ELSE:${"\uFFFD/#11\uFFFD"}:CLOSE_TAG_STRONG:${"\uFFFD#15\uFFFD"}:START_TAG_SH_ICON:clock${"\uFFFD/#15\uFFFD"}:CLOSE_TAG_SH_ICON:`;let ce;ce=$localize`Relative time`;let se;se=$localize`Actual time`;let ue;ue=$localize` Order by: ${"\uFFFD#3\uFFFD"}:START_TAG_STRONG:${"\uFFFD0\uFFFD"}:INTERPOLATION:${"\uFFFD/#3\uFFFD"}:CLOSE_TAG_STRONG:${"\uFFFD#4\uFFFD"}:START_TAG_SH_ICON:arrows-down-up${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_SH_ICON:`;let Fe;Fe=$localize` ${"\uFFFD0\uFFFD"}:INTERPOLATION: `;let Ce;Ce=$localize`Externally managed`;let Te;Te=$localize` Edit in console ${"\uFFFD#13\uFFFD"}:START_TAG_SH_ICON:arrow-up-right${"\uFFFD/#13\uFFFD"}:CLOSE_TAG_SH_ICON:`;let v;v=$localize`{VAR_PLURAL, plural, =0 {No version yet} =1 {1 Version} other {{INTERPOLATION} Versions}}`,v=K(v,{INTERPOLATION:"\uFFFD1\uFFFD",VAR_PLURAL:"\uFFFD0\uFFFD"});let de;de=$localize` ${v}:ICU@@6502601490918455200: `;let Ee;Ee=$localize`Last successful backup:`;let pe;pe=$localize`Duration:`;let ge;ge=$localize`Source:`;let Se;Se=$localize`Destination:`;let me;me=$localize`Next scheduled run:`;let Oe;Oe=$localize`Externally managed`;let Ne;Ne=$localize` No backups found ${"\uFFFD#2\uFFFD"}:START_TAG_BUTTON: Click to create one now ${"\uFFFD#3\uFFFD"}:START_TAG_SH_ICON:plus${"\uFFFD/#3\uFFFD"}:CLOSE_TAG_SH_ICON:${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_BUTTON:`;let Me;Me=$localize` Backup ${"\uFFFD*4:1\uFFFD\uFFFD#1:1\uFFFD"}:START_TAG_NG_CONTAINER:${"\uFFFD/#1:1\uFFFD\uFFFD/*4:1\uFFFD"}:CLOSE_TAG_NG_CONTAINER:`;let Ie;Ie=$localize` Type ${"\uFFFD*7:1\uFFFD\uFFFD#1:1\uFFFD"}:START_TAG_NG_CONTAINER:${"\uFFFD/#1:1\uFFFD\uFFFD/*7:1\uFFFD"}:CLOSE_TAG_NG_CONTAINER:`;let Pe;Pe=$localize` Last backup ${"\uFFFD*10:1\uFFFD\uFFFD#1:1\uFFFD"}:START_TAG_NG_CONTAINER:${"\uFFFD/#1:1\uFFFD\uFFFD/*10:1\uFFFD"}:CLOSE_TAG_NG_CONTAINER:`;let De;De=$localize` Next run ${"\uFFFD*13:1\uFFFD\uFFFD#1:1\uFFFD"}:START_TAG_NG_CONTAINER:${"\uFFFD/#1:1\uFFFD\uFFFD/*13:1\uFFFD"}:CLOSE_TAG_NG_CONTAINER:`;let fe;fe=$localize` Duration ${"\uFFFD*16:1\uFFFD\uFFFD#1:1\uFFFD"}:START_TAG_NG_CONTAINER:${"\uFFFD/#1:1\uFFFD\uFFFD/*16:1\uFFFD"}:CLOSE_TAG_NG_CONTAINER:`;let $e;$e=$localize` Source ${"\uFFFD*19:1\uFFFD\uFFFD#1:1\uFFFD"}:START_TAG_NG_CONTAINER:${"\uFFFD/#1:1\uFFFD\uFFFD/*19:1\uFFFD"}:CLOSE_TAG_NG_CONTAINER:`;let Re;Re=$localize` Destination ${"\uFFFD*22:1\uFFFD\uFFFD#1:1\uFFFD"}:START_TAG_NG_CONTAINER:${"\uFFFD/#1:1\uFFFD\uFFFD/*22:1\uFFFD"}:CLOSE_TAG_NG_CONTAINER:`;let he;he=$localize`Version`;let Ae;Ae=$localize`Actions`;let w;w=$localize`{VAR_PLURAL, plural, =0 {No versions} =1 {1 Version} other {{INTERPOLATION} Versions}}`,w=K(w,{INTERPOLATION:"\uFFFD1\uFFFD",VAR_PLURAL:"\uFFFD0\uFFFD"});let Le;Le=$localize` ${w}:ICU@@3521773141017690117: `;let xe;xe=$localize`Loading backups...`;let X;X=$localize`${"\uFFFD*4: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/*4:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*5: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: Resume ${"\uFFFD/*5:2\uFFFD"}:CLOSE_BLOCK_ELSE:`,X=K(X);let ye;ye=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SH_ICON:skull${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_ICON: Abort `;let He;He=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SH_ICON:stop${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_ICON: Stop `;let ke;ke=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SH_ICON:play-circle${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_ICON:${"\uFFFD*3:1\uFFFD"}:START_BLOCK_IF: Start ${"\uFFFD/*3:1\uFFFD"}:CLOSE_BLOCK_IF:`;let Ge;Ge=$localize`${"\uFFFD#16\uFFFD"}:START_TAG_SH_ICON:clock-counter-clockwise${"\uFFFD/#16\uFFFD"}:CLOSE_TAG_SH_ICON: Restore `;let be;be=$localize`${"\uFFFD#19\uFFFD"}:START_TAG_SH_ICON:export${"\uFFFD/#19\uFFFD"}:CLOSE_TAG_SH_ICON: Export `;let Be;Be=$localize`${"\uFFFD#22\uFFFD"}:START_TAG_SH_ICON:x-circle${"\uFFFD/#22\uFFFD"}:CLOSE_TAG_SH_ICON: Delete `;let ve;ve=$localize`Advanced`;let we;we=$localize`${"\uFFFD#28\uFFFD"}:START_TAG_SH_ICON:database${"\uFFFD/#28\uFFFD"}:CLOSE_TAG_SH_ICON: Database `;let Xe;Xe=$localize`${"\uFFFD#31\uFFFD"}:START_TAG_SH_ICON:check-square-offset${"\uFFFD/#31\uFFFD"}:CLOSE_TAG_SH_ICON: Verify files `;let Je;Je=$localize`${"\uFFFD#34\uFFFD"}:START_TAG_SH_ICON:file-archive${"\uFFFD/#34\uFFFD"}:CLOSE_TAG_SH_ICON: Compress now `;let ze;ze=$localize`${"\uFFFD#37\uFFFD"}:START_TAG_SH_ICON:terminal-window${"\uFFFD/#37\uFFFD"}:CLOSE_TAG_SH_ICON: Commandline `;let Ve;Ve=$localize`Reporting`;let Ue;return Ue=$localize`${"\uFFFD#43\uFFFD"}:START_TAG_SH_ICON:notepad${"\uFFFD/#43\uFFFD"}:CLOSE_TAG_SH_ICON: Log `,[["actions",""],["sortIcons",""],t,n,_,c,F,G,b,B,le,re,ce,se,ue,Fe,Ce,Te,de,Ee,pe,ge,Se,me,Oe,Ne,Me,Ie,Pe,De,fe,$e,Re,he,Ae,Le,xe,X,ye,He,ke,Ge,be,Be,ve,we,Xe,Je,ze,Ve,Ue,[1,"type-a","actionable",3,"keydown.enter","keydown.space","routerLink"],["src","assets/images/backup.png","alt","","width","48px"],[1,"text"],["type","button","tabindex","-1","shButton",""],["src","assets/images/restore.png","alt","","width","48px"],[1,"content"],[1,"actions"],[1,"small","type-b",3,"valueChange","value"],["value","list"],["value","details"],[1,"table-overview"],["type","button","shButton","",1,"small"],["menu",""],["type","button",3,"click"],["type","button",3,"active"],[1,"backups",3,"fallback"],[1,"type-b",3,"data","loading","sortByColumn"],[1,"backups"],[1,"no-backups"],[1,"backup","externaly-managed"],[1,"backup"],["alt","",1,"provider-icon",3,"src"],[1,"tags"],[1,"simple","primary"],["type","button","shButton","",3,"click"],[3,"backupId"],[1,"simple","success"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],["shButton","",1,"primary","raised",3,"routerLink"],[1,"type-b",3,"sortByColumnChange","data","loading","sortByColumn"],["thead",""],["shSort","name"],[4,"ngTemplateOutlet"],["shSort","type"],["shSort","lastrun"],["shSort","nextrun"],["shSort","duration"],["shSort","sourcesize"],["shSort","destinationsize"],[1,"small"],[1,"loading-list"],[1,"indeterminate","primary"],["shButton","",3,"small"],["shButton","",3,"click"],["type","button","shButton","",3,"routerLink"],["type","button","shButton",""],["title",""],["type","button",3,"routerLink"],[1,"filter"],[1,"asc"],[1,"desc"]]},template:function(n,_){n&1&&(C(0,"app-status-bar"),o(1,"section")(2,"header")(3,"sh-card",51),I("keydown.enter",function(F){return F.target.click()})("keydown.space",function(F){return F.target.click()}),C(4,"img",52),o(5,"div",53)(6,"h3"),d(7,2),i(),o(8,"p"),d(9,3),i()(),o(10,"button",54),s(11,4),C(12,"sh-icon"),u(),i()(),o(13,"sh-card",51),I("keydown.enter",function(F){return F.target.click()})("keydown.space",function(F){return F.target.click()}),C(14,"img",55),o(15,"div",53)(16,"h3"),d(17,5),i(),o(18,"p"),d(19,6),i()(),o(20,"button",54),s(21,7),C(22,"sh-icon"),u(),i()()(),o(23,"div",56)(24,"h2"),N(25),d(26,8),M(),p(27,xn,22,3,"div",57),i(),je(28,pt,2,1)(29,gt,5,0),qe(30,28,pn,null,29),i()(),P(32,$t,2,1,"ng-template",null,0,ee)(34,Rt,6,0,"ng-template",null,1,ee)),n&2&&(a(3),E("routerLink",j(4,gn)),a(10),E("routerLink",j(5,Sn)),a(14),g(_.backups().length>0?27:-1),a(3),Qe(!_.backupsLoading()))},dependencies:[te,dn,en,oe,ie,tn,on,_n,Ze],styles:["[_nghost-%COMP%]{display:block}h2[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between}section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;padding:2rem 0}header[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;padding:0 2rem;gap:1rem}@media only screen and (max-width:768px){header[_ngcontent-%COMP%]{grid-template-columns:1fr}}sh-card[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem}sh-card[_ngcontent-%COMP%] .text[_ngcontent-%COMP%]{flex:1 0;display:flex;flex-direction:column;gap:.25rem}.content[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.content[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{padding:0 2rem}@media only screen and (max-width:768px){.content[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:.5rem}}sh-menu[_ngcontent-%COMP%]{color:red}.backups[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding:0 2rem;gap:.5rem}.backups.fallback[_ngcontent-%COMP%]{justify-content:center;align-items:center;padding:4rem;border:1px solid var(--base-4);background:var(--base-2);border-radius:var(--shape-2);width:calc(100% - 4rem);margin:0 auto}.no-backups[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;align-items:center}.backup[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:2rem;gap:1rem;border:1px solid var(--base-4);border-radius:var(--shape-3);box-shadow:var(--box-shadow-10)}@media only screen and (max-width:768px){.backup[_ngcontent-%COMP%]{flex-direction:column;align-items:flex-start}}.backup[_ngcontent-%COMP%] .text[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;width:100%;max-width:40%}@media only screen and (max-width:768px){.backup[_ngcontent-%COMP%] .text[_ngcontent-%COMP%]{max-width:initial}}.backup[_ngcontent-%COMP%] .text[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem}.backup[_ngcontent-%COMP%] .text[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] sh-icon[_ngcontent-%COMP%]{color:var(--base-8)}.backup[_ngcontent-%COMP%] .text[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{font:var(--paragraph-30);color:var(--base-8)}.backup[_ngcontent-%COMP%] .text[_ngcontent-%COMP%] p[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--base-12)}.backup[_ngcontent-%COMP%] .tags[_ngcontent-%COMP%]{display:flex;align-items:center;flex-direction:column;gap:.5rem}.provider-icon[_ngcontent-%COMP%]{width:1.25rem;height:1.25rem}.actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem}.sortable[_ngcontent-%COMP%]{-webkit-user-select:none;user-select:none}.sortable[_ngcontent-%COMP%] sh-icon[_ngcontent-%COMP%]{margin-left:.5rem;font-size:1rem;justify-self:flex-end;display:none}.sortable[_ngcontent-%COMP%]:not(.sort-asc):not(.sort-desc) sh-icon.filter[_ngcontent-%COMP%]{display:block}.sortable.sort-asc[_ngcontent-%COMP%] sh-icon.asc[_ngcontent-%COMP%]{display:block;color:var(--base-12)}.sortable.sort-desc[_ngcontent-%COMP%] sh-icon.desc[_ngcontent-%COMP%]{display:block;color:var(--base-12)}.actionable[_ngcontent-%COMP%]{cursor:pointer}.actionable[_ngcontent-%COMP%]:after{transition:inset .1s linear}.actionable[_ngcontent-%COMP%]:hover{--card-shp: 0}"],changeDetection:0})};export{ae as default};
@@ -0,0 +1 @@
1
+ import{c as a,d as b}from"./chunk-XXVDL5TR.js";import"./chunk-GRE6GKVP.js";import"./chunk-DJXLNIMV.js";import"./chunk-CAQ3XMFP.js";import"./chunk-VC55KFAX.js";import"./chunk-ZEFSBETQ.js";import"./chunk-6Q6SSTBK.js";import"./chunk-YCJYEQF7.js";import"./chunk-OHYENIPP.js";import"./chunk-UTXZPAY6.js";import"./chunk-IMQUTGIK.js";import"./chunk-BACKG7KA.js";import"./chunk-IQL3REGJ.js";import"./chunk-AIAUP7OE.js";import"./chunk-C6PICAXB.js";import"./chunk-6JS7B4FW.js";import"./chunk-VKQQDCUN.js";import"./chunk-DSYNIXJF.js";import"./chunk-NPFPMA4P.js";import"./chunk-O2SMJYPC.js";import"./chunk-N2AU7VKX.js";import"./chunk-ZC23RK4J.js";import"./chunk-OPHQNXYO.js";import"./chunk-TQTOIWBK.js";import"./chunk-7CGTOI24.js";export{a as createEncryptionForm,b as default};
@@ -1 +1 @@
1
- import{d}from"./chunk-QAQMMCTH.js";import{F as o,Rc as s,V as n,_ as r,pa as l,ra as g}from"./chunk-UH2E7MMT.js";var u=[{value:"Disabled",label:$localize`Disabled`},{value:"Verbose",label:$localize`Verbose`},{value:"ExplicitOnly",label:$localize`Explicit only`},{value:"Profiling",label:$localize`Profiling`},{value:"Retry",label:$localize`Retry`},{value:"Information",label:$localize`Information`},{value:"DryRun",label:$localize`Dry run`},{value:"Warning",label:$localize`Warning`},{value:"Error",label:$localize`Error`}],v=class a{#l=r(d);#e=l([]);LOG_LEVELS=u;logLevel=l("Disabled");logLevelByLabel=s(()=>u.find(e=>e.value===this.logLevel())?.label);whenFilter=l(null);backupIdFilter=l(null);id=l(0);logs=s(()=>this.whenFilter()&&this.backupIdFilter()?this.#e().filter(e=>e.BackupID===this.backupIdFilter()&&new Date(e.When).getTime()>=this.whenFilter()&&e.BackupID===this.backupIdFilter()):this.#e());timerInterval;logsLoading=l(!1);isPolling=l(!1);pagination=l({offset:0,pagesize:100});logLevelEffect=g(()=>{this.isPolling()?(this.#e.set([]),this.id.set(0),queueMicrotask(()=>this.loadLogs()),this.timerInterval&&clearInterval(this.timerInterval),this.timerInterval=setInterval(()=>{this.loadLogs()},3e3)):this.clearPolling()});setWhenFilter(e){this.whenFilter.set(e)}setBackupIdFilter(e){this.backupIdFilter.set(e)}loadLogs(){this.logsLoading.set(!0),this.#l.getApiV1LogdataPoll({id:this.id(),level:this.logLevel(),pagesize:this.pagination().pagesize}).pipe(o(()=>this.logsLoading.set(!1))).subscribe({next:e=>{let i=e.reverse(),t=this.#i(i);t>0&&this.id.set(t),this.#e.set([...i,...this.#e()])}})}updateLogLevel(e){this.logLevel.set(e),e==="Disabled"&&this.clearPolling()}#i(e){return e.reduce((i,t)=>Math.max(i,t.ID),0)}destroy(){this.logLevel.set("Disabled"),this.clearPolling()}clearPolling(){this.timerInterval&&clearInterval(this.timerInterval),this.timerInterval=void 0}static \u0275fac=function(i){return new(i||a)};static \u0275prov=n({token:a,factory:a.\u0275fac,providedIn:"root"})};export{v as a};
1
+ import{d}from"./chunk-DSYNIXJF.js";import{F as n,Qc as s,V as o,_ as r,pa as l,ra as g}from"./chunk-TQTOIWBK.js";var u=[{value:"Disabled",label:$localize`Disabled`},{value:"Verbose",label:$localize`Verbose`},{value:"ExplicitOnly",label:$localize`Explicit only`},{value:"Profiling",label:$localize`Profiling`},{value:"Retry",label:$localize`Retry`},{value:"Information",label:$localize`Information`},{value:"DryRun",label:$localize`Dry run`},{value:"Warning",label:$localize`Warning`},{value:"Error",label:$localize`Error`}],v=class a{#l=r(d);#e=l([]);LOG_LEVELS=u;logLevel=l("Disabled");logLevelByLabel=s(()=>u.find(e=>e.value===this.logLevel())?.label);whenFilter=l(null);backupIdFilter=l(null);id=l(0);logs=s(()=>this.whenFilter()&&this.backupIdFilter()?this.#e().filter(e=>e.BackupID===this.backupIdFilter()&&new Date(e.When).getTime()>=this.whenFilter()&&e.BackupID===this.backupIdFilter()):this.#e());timerInterval;logsLoading=l(!1);isPolling=l(!1);pagination=l({offset:0,pagesize:100});logLevelEffect=g(()=>{this.isPolling()?(this.#e.set([]),this.id.set(0),queueMicrotask(()=>this.loadLogs()),this.timerInterval&&clearInterval(this.timerInterval),this.timerInterval=setInterval(()=>{this.loadLogs()},3e3)):this.clearPolling()});setWhenFilter(e){this.whenFilter.set(e)}setBackupIdFilter(e){this.backupIdFilter.set(e)}loadLogs(){this.logsLoading.set(!0),this.#l.getApiV1LogdataPoll({id:this.id(),level:this.logLevel(),pagesize:this.pagination().pagesize}).pipe(n(()=>this.logsLoading.set(!1))).subscribe({next:e=>{let i=e.reverse(),t=this.#i(i);t>0&&this.id.set(t),this.#e.set([...i,...this.#e()])}})}updateLogLevel(e){this.logLevel.set(e),e==="Disabled"&&this.clearPolling()}#i(e){return e.reduce((i,t)=>Math.max(i,t.ID),0)}destroy(){this.logLevel.set("Disabled"),this.clearPolling()}clearPolling(){this.timerInterval&&clearInterval(this.timerInterval),this.timerInterval=void 0}static \u0275fac=function(i){return new(i||a)};static \u0275prov=o({token:a,factory:a.\u0275fac,providedIn:"root"})};export{v as a};
@@ -1 +1 @@
1
- import{a as F}from"./chunk-XCVBN7EK.js";import{a as _}from"./chunk-MRSBKQQM.js";import{a as C}from"./chunk-35APLYI4.js";import{b as B}from"./chunk-XZNYCTQB.js";import{a as R}from"./chunk-R6TFME5I.js";import{z}from"./chunk-NCXKMSRH.js";import{d as $}from"./chunk-QAQMMCTH.js";import{F as f,L as S,Rc as c,V as P,_ as a,l as h,pa as g,q as k,ra as d}from"./chunk-UH2E7MMT.js";import{a as n,b as r}from"./chunk-7CGTOI24.js";var m={Starting_Operation:$localize`Starting operation …`,Backup_Begin:$localize`Starting backup …`,Backup_PreBackupVerify:$localize`Verifying backend data …`,Backup_PostBackupTest:$localize`Verifying remote data …`,Backup_PreviousBackupFinalize:$localize`Completing previous backup …`,Backup_ProcessingFiles:$localize`Processing files to backup …`,Backup_Finalize:$localize`Completing backup …`,Backup_WaitForUpload:$localize`Waiting for upload to finish …`,Backup_Delete:$localize`Deleting unwanted files …`,Backup_Compact:$localize`Compacting remote data …`,Backup_VerificationUpload:$localize`Uploading verification file …`,Backup_PostBackupVerify:$localize`Verifying backend data …`,Backup_Lock:$localize`Locking remote data …`,Backup_Complete:$localize`Backup complete!`,Backup_RemoteSynchronization:$localize`Synchronizing secondary destination(s) …`,Restore_Begin:$localize`Starting restore …`,Restore_RecreateDatabase:$localize`Rebuilding local database …`,Restore_PreRestoreVerify:$localize`Verifying remote data …`,Restore_CreateFileList:$localize`Building list of files to restore …`,Restore_CreateTargetFolders:$localize`Creating target folders …`,Restore_ScanForExistingFiles:$localize`Scanning existing files …`,Restore_ScanForLocalBlocks:$localize`Scanning for local blocks …`,Restore_PatchWithLocalBlocks:$localize`Patching files with local blocks …`,Restore_Download:$localize`Downloading files …`,Restore_PatchWithRemoteFiles:$localize`Patching files with remote data …`,Restore_VerifyRestoredFiles:$localize`Verifying restored files …`,Restore_Finaluze:$localize`Finalizing restore …`,Restore_Complete:$localize`Restore complete!`,Recreate_Begin:$localize`Starting database recreate …`,Recreate_Delete:$localize`Deleting old database …`,Recreate_Create:$localize`Creating new database …`,Recreate_Download:$localize`Downloading files …`,Recreate_Process:$localize`Processing files …`,Recreate_Complete:$localize`Database recreate complete!`,Verify_Begin:$localize`Starting verification …`,Verify_Download:$localize`Downloading files …`,Verify_Process:$localize`Processing files …`,Verify_Complete:$localize`Verification complete!`,BugReport_Begin:$localize`Starting bug report …`,BugReport_Gathering:$localize`Gathering information …`,BugReport_Complete:$localize`Bug report complete!`,List_Begin:$localize`Starting list …`,List_Download:$localize`Downloading files …`,List_Process:$localize`Processing files …`,List_Complete:$localize`List complete!`,Delete_Begin:$localize`Starting delete …`,Delete_Download:$localize`Downloading files …`,Delete_Process:$localize`Processing files …`,Delete_Complete:$localize`Delete complete!`,Compact_Begin:$localize`Starting compact …`,Compact_Download:$localize`Downloading files …`,Compact_Process:$localize`Processing files …`,Compact_Complete:$localize`Compact complete!`,Restore_DownloadingRemoteFiles:$localize`Downloading files …`,Restore_PostRestoreVerify:$localize`Verifying restored files …`,Recreate_Running:$localize`Recreating database …`,Vacuum_Running:$localize`Vacuuming database …`,Repair_Running:$localize`Repairing database …`,Verify_Running:$localize`Verifying files …`,BugReport_Running:$localize`Creating bug report …`,Delete_Listing:$localize`Listing remote files …`,Delete_Deleting:$localize`Deleting remote files …`,PurgeFiles_Begin:$localize`Listing remote files for purge …`,PurgeFiles_Process:$localize`Purging files …`,PurgeFiles_Compact:$localize`Compacting remote data …`,PurgeFiles_Complete:$localize`Purging files complete!`,ReadLockInfo_Running:$localize`Reading lock info …`,Error:$localize`Error!`};var b=class p{#i=a(_);#t=a($);#o=a(F);#e=a(B);#c=a(z);#g=a(R);#l=g(!1);#s=g(null);statusData=this.#s.asReadonly();lastState=null;serverState=c(()=>{let e=this.#e.serverState();return e?(e.ProposedSchedule=e.ProposedSchedule?.map(i=>r(n({},i),{backup:i.Item1?this.#o.getBackupById(i.Item1):null}))??null,this.lastState=e,e):this.lastState});hasProgressOnWebsocket=c(()=>this.#g.hasProgressSubscribeOption()&&this.#e.getConnectionMethod()==="websocket");clientIsRunning=c(()=>this.serverState()?.ProgramState==="Running");runningBackupId=c(()=>{let e=this.statusData();return!!(this.serverState()?.ActiveTask&&e?.task?.Status&&e?.task?.Status!=="Completed")?e?.BackupID??null:null});isResuming=g(!1);isFetching=this.#l.asReadonly();connectionStatus=this.#e.connectionStatus;pollingInterval;#m=d(()=>{let e=this.#e.serverState();e?.ActiveTask||this.#o.getBackups(!0),this.hasProgressOnWebsocket()&&(this.#e.subscribe("progress"),this.#e.subscribe("taskqueue")),e?.ActiveTask&&this.pollingInterval===void 0?this.startPollingProgress():e?.ActiveTask||this.stopPollingProgress()});#h=d(()=>{let e=this.#e.progressState(),i=this.#e.taskQueueState();if(e){let t=i?.find(o=>o.ID===e.TaskID)??null;this.#r(r(n({},e),{task:t}))}});setConnectionMethod(e){this.#e.setConnectionMethod(e)}startPollingProgress(){this.hasProgressOnWebsocket()?this.#e.subscribe("progress"):this.pollingInterval=setInterval(()=>{this.#n()},1e3)}stopPollingProgress(){clearInterval(this.pollingInterval)}fetchProgressState(){this.#n()}pauseResume(){return this.isResuming.set(!0),this.#t.postApiV1ServerstateResume().pipe(f(()=>this.isResuming.set(!1)))}resumeDialogCheck(e){if(!this.clientIsRunning()){this.#c.open(C,{data:{title:$localize`Server paused`,message:$localize`Server is currently paused. Do you want to resume now?`,confirmText:$localize`Resume`,cancelText:$localize`No, I'll resume later`},closed:i=>{i&&this.pauseResume().subscribe({next:()=>{e()}})}});return}e()}#n(){this.#l.set(!0),this.#t.getApiV1Progressstate().pipe(S(e=>{let i=e.TaskID??null;return i===null?h(e):this.#t.getApiV1TaskByTaskid({taskid:i}).pipe(k(t=>r(n({},e),{task:t??null})))}),f(()=>this.#l.set(!1))).subscribe({next:e=>{this.#r(e),this.serverState()?.ActiveTask==null&&this.stopPollingProgress()},error:e=>{e.status===404&&this.stopPollingProgress()}})}#r(e){let i=e.TaskID??null,t=e.BackupID??null;i!==null&&t!==null&&(e.backup=this.#o.getBackupById(t)),this.#s.set(r(n({},e),{progress:this.#p(e),statusText:this.#d(e),fileStatusText:this.#u(e),fileCountProgressText:this.#f(e),actionText:e.backup?.Backup?.Name??$localize`Running task`}))}#p(e){let i=-1;if(e.task&&e)if(e.Phase==="Backup_ProcessingFiles"||e.Phase==="Restore_DownloadingRemoteFiles")if(e.StillCounting)i=0;else{let t=e.CurrentFilecomplete?0:e.CurrentFileoffset,o=e.TotalFileCount-e.ProcessedFileCount,l=e.TotalFileSize-e.ProcessedFileSize-t;i=(e.ProcessedFileSize+t)/e.TotalFileSize,e.ProcessedFileCount===0?i=0:i>=.9&&(i=.9)}else e.Phase==="Backup_Finalize"||e.Phase==="Backup_WaitForUpload"?i=.9:e.Phase==="Backup_Delete"||e.Phase==="Backup_Compact"?i=.95:e.Phase==="Backup_VerificationUpload"||e.Phase==="Backup_PostBackupVerify"?i=.98:e.Phase==="Backup_Complete"?i=1:e.Phase==="Backup_RemoteSynchronization"?i=e.OverallProgress>0?e.OverallProgress:0:e.OverallProgress>0&&(i=e.OverallProgress);return i}#a(e){let i=(e.ActiveTransfers??[]).map(o=>o.BackendSpeed).reduce((o,l)=>(o??0)+(l??0),0)??-1,t=i<=0?e.BackendSpeed:i;return(t??-1)<0?"":` at ${this.#i.transform(t)}/s`}#u(e){let i=(["Backup_WaitForUpload","Backup_ProcessingFiles"].includes(e.Phase)?e?.BackendFileProgress:e.CurrentFileoffset)??0,t=(["Backup_WaitForUpload","Backup_ProcessingFiles"].includes(e.Phase)?e?.BackendFileSize:e.CurrentFilesize)??0;if(!e.CurrentFilename)return"";let o=e.CurrentFilename.length>42?"..."+e.CurrentFilename.slice(-42):e.CurrentFilename,l=(i/t*100).toFixed(1);return $localize`${o} | File processed: ${this.#i.transform(i)}/${this.#i.transform(t)} - ${l}%`}#f(e){return $localize`Files processed ${e.ProcessedFileCount}/${e.TotalFileCount}`}#d(e){let i="Running \u2026";if(e.task&&e){if(i=e.Phase?m[e.Phase]??e.Phase:"Running \u2026",e.TotalFileCount===0)return i;if(e.Phase==="Backup_ProcessingFiles"||e.Phase==="Restore_DownloadingRemoteFiles")if(e.StillCounting)i=`Counting (${e.TotalFileCount} files found, ${this.#i.transform(e.TotalFileSize)})`;else{let t=e.CurrentFilecomplete?0:e.CurrentFileoffset,o=e.TotalFileCount-e.ProcessedFileCount,l=e.TotalFileSize-e.ProcessedFileSize-t,u=e.Phase==="Restore_DownloadingRemoteFiles"?"Restoring: ":"",s=this.#a(e);e.Phase==="Backup_ProcessingFiles"&&o===0?i=`Completing upload ${s}`:e.BackendIsBlocking??!1?i=`Waiting for transfers ${s}`:i=`${u}${o} files (${this.#i.transform(l)}) to go ${s}`}else if(e.Phase==="Backup_WaitForUpload"){let t=this.#a(e);t!==""&&(i=`Waiting for upload to finish ${t}`)}else if(e.Phase==="Backup_RemoteSynchronization"){let t=e.RemoteSyncDestinationCount??0,o=e.RemoteSyncDestinationIndex??0,l=t>1?` (${o}/${t})`:"";if(e.TotalFileCount>0){let u=e.TotalFileCount-e.ProcessedFileCount,s=e.TotalFileSize-e.ProcessedFileSize,D=this.#a(e);i=`Synchronizing secondary destination${l}: ${u} files (${this.#i.transform(s)}) to go ${D}`}else l&&(i=`${m[e.Phase]}`.replace("\u2026",`${l} \u2026`))}}return i}static \u0275fac=function(i){return new(i||p)};static \u0275prov=P({token:p,factory:p.\u0275fac,providedIn:"root"})};export{m as a,b};
1
+ import{a as F}from"./chunk-WOKYULBU.js";import{a as _}from"./chunk-YCJYEQF7.js";import{a as C}from"./chunk-IMQUTGIK.js";import{b as B}from"./chunk-AIAUP7OE.js";import{a as R}from"./chunk-C6PICAXB.js";import{z}from"./chunk-VKQQDCUN.js";import{d as $}from"./chunk-DSYNIXJF.js";import{F as f,L as S,Qc as c,V as P,_ as a,l as h,pa as g,q as k,ra as d}from"./chunk-TQTOIWBK.js";import{a as n,b as r}from"./chunk-7CGTOI24.js";var m={Starting_Operation:$localize`Starting operation …`,Backup_Begin:$localize`Starting backup …`,Backup_PreBackupVerify:$localize`Verifying backend data …`,Backup_PostBackupTest:$localize`Verifying remote data …`,Backup_PreviousBackupFinalize:$localize`Completing previous backup …`,Backup_ProcessingFiles:$localize`Processing files to backup …`,Backup_Finalize:$localize`Completing backup …`,Backup_WaitForUpload:$localize`Waiting for upload to finish …`,Backup_Delete:$localize`Deleting unwanted files …`,Backup_Compact:$localize`Compacting remote data …`,Backup_VerificationUpload:$localize`Uploading verification file …`,Backup_PostBackupVerify:$localize`Verifying backend data …`,Backup_Lock:$localize`Locking remote data …`,Backup_Complete:$localize`Backup complete!`,Backup_RemoteSynchronization:$localize`Synchronizing secondary destination(s) …`,Restore_Begin:$localize`Starting restore …`,Restore_RecreateDatabase:$localize`Rebuilding local database …`,Restore_PreRestoreVerify:$localize`Verifying remote data …`,Restore_CreateFileList:$localize`Building list of files to restore …`,Restore_CreateTargetFolders:$localize`Creating target folders …`,Restore_ScanForExistingFiles:$localize`Scanning existing files …`,Restore_ScanForLocalBlocks:$localize`Scanning for local blocks …`,Restore_PatchWithLocalBlocks:$localize`Patching files with local blocks …`,Restore_Download:$localize`Downloading files …`,Restore_PatchWithRemoteFiles:$localize`Patching files with remote data …`,Restore_VerifyRestoredFiles:$localize`Verifying restored files …`,Restore_Finaluze:$localize`Finalizing restore …`,Restore_Complete:$localize`Restore complete!`,Recreate_Begin:$localize`Starting database recreate …`,Recreate_Delete:$localize`Deleting old database …`,Recreate_Create:$localize`Creating new database …`,Recreate_Download:$localize`Downloading files …`,Recreate_Process:$localize`Processing files …`,Recreate_Complete:$localize`Database recreate complete!`,Verify_Begin:$localize`Starting verification …`,Verify_Download:$localize`Downloading files …`,Verify_Process:$localize`Processing files …`,Verify_Complete:$localize`Verification complete!`,BugReport_Begin:$localize`Starting bug report …`,BugReport_Gathering:$localize`Gathering information …`,BugReport_Complete:$localize`Bug report complete!`,List_Begin:$localize`Starting list …`,List_Download:$localize`Downloading files …`,List_Process:$localize`Processing files …`,List_Complete:$localize`List complete!`,Delete_Begin:$localize`Starting delete …`,Delete_Download:$localize`Downloading files …`,Delete_Process:$localize`Processing files …`,Delete_Complete:$localize`Delete complete!`,Compact_Begin:$localize`Starting compact …`,Compact_Download:$localize`Downloading files …`,Compact_Process:$localize`Processing files …`,Compact_Complete:$localize`Compact complete!`,Restore_DownloadingRemoteFiles:$localize`Downloading files …`,Restore_PostRestoreVerify:$localize`Verifying restored files …`,Recreate_Running:$localize`Recreating database …`,Vacuum_Running:$localize`Vacuuming database …`,Repair_Running:$localize`Repairing database …`,Verify_Running:$localize`Verifying files …`,BugReport_Running:$localize`Creating bug report …`,Delete_Listing:$localize`Listing remote files …`,Delete_Deleting:$localize`Deleting remote files …`,PurgeFiles_Begin:$localize`Listing remote files for purge …`,PurgeFiles_Process:$localize`Purging files …`,PurgeFiles_Compact:$localize`Compacting remote data …`,PurgeFiles_Complete:$localize`Purging files complete!`,ReadLockInfo_Running:$localize`Reading lock info …`,Error:$localize`Error!`};var b=class p{#i=a(_);#t=a($);#o=a(F);#e=a(B);#c=a(z);#g=a(R);#l=g(!1);#s=g(null);statusData=this.#s.asReadonly();lastState=null;serverState=c(()=>{let e=this.#e.serverState();return e?(e.ProposedSchedule=e.ProposedSchedule?.map(i=>r(n({},i),{backup:i.Item1?this.#o.getBackupById(i.Item1):null}))??null,this.lastState=e,e):this.lastState});hasProgressOnWebsocket=c(()=>this.#g.hasProgressSubscribeOption()&&this.#e.getConnectionMethod()==="websocket");clientIsRunning=c(()=>this.serverState()?.ProgramState==="Running");runningBackupId=c(()=>{let e=this.statusData();return!!(this.serverState()?.ActiveTask&&e?.task?.Status&&e?.task?.Status!=="Completed")?e?.BackupID??null:null});isResuming=g(!1);isFetching=this.#l.asReadonly();connectionStatus=this.#e.connectionStatus;pollingInterval;#m=d(()=>{let e=this.#e.serverState();e?.ActiveTask||this.#o.getBackups(!0),this.hasProgressOnWebsocket()&&(this.#e.subscribe("progress"),this.#e.subscribe("taskqueue")),e?.ActiveTask&&this.pollingInterval===void 0?this.startPollingProgress():e?.ActiveTask||this.stopPollingProgress()});#h=d(()=>{let e=this.#e.progressState(),i=this.#e.taskQueueState();if(e){let t=i?.find(o=>o.ID===e.TaskID)??null;this.#r(r(n({},e),{task:t}))}});setConnectionMethod(e){this.#e.setConnectionMethod(e)}startPollingProgress(){this.hasProgressOnWebsocket()?this.#e.subscribe("progress"):this.pollingInterval=setInterval(()=>{this.#n()},1e3)}stopPollingProgress(){clearInterval(this.pollingInterval)}fetchProgressState(){this.#n()}pauseResume(){return this.isResuming.set(!0),this.#t.postApiV1ServerstateResume().pipe(f(()=>this.isResuming.set(!1)))}resumeDialogCheck(e){if(!this.clientIsRunning()){this.#c.open(C,{data:{title:$localize`Server paused`,message:$localize`Server is currently paused. Do you want to resume now?`,confirmText:$localize`Resume`,cancelText:$localize`No, I'll resume later`},closed:i=>{i&&this.pauseResume().subscribe({next:()=>{e()}})}});return}e()}#n(){this.#l.set(!0),this.#t.getApiV1Progressstate().pipe(S(e=>{let i=e.TaskID??null;return i===null?h(e):this.#t.getApiV1TaskByTaskid({taskid:i}).pipe(k(t=>r(n({},e),{task:t??null})))}),f(()=>this.#l.set(!1))).subscribe({next:e=>{this.#r(e),this.serverState()?.ActiveTask==null&&this.stopPollingProgress()},error:e=>{e.status===404&&this.stopPollingProgress()}})}#r(e){let i=e.TaskID??null,t=e.BackupID??null;i!==null&&t!==null&&(e.backup=this.#o.getBackupById(t)),this.#s.set(r(n({},e),{progress:this.#p(e),statusText:this.#d(e),fileStatusText:this.#u(e),fileCountProgressText:this.#f(e),actionText:e.backup?.Backup?.Name??$localize`Running task`}))}#p(e){let i=-1;if(e.task&&e)if(e.Phase==="Backup_ProcessingFiles"||e.Phase==="Restore_DownloadingRemoteFiles")if(e.StillCounting)i=0;else{let t=e.CurrentFilecomplete?0:e.CurrentFileoffset,o=e.TotalFileCount-e.ProcessedFileCount,l=e.TotalFileSize-e.ProcessedFileSize-t;i=(e.ProcessedFileSize+t)/e.TotalFileSize,e.ProcessedFileCount===0?i=0:i>=.9&&(i=.9)}else e.Phase==="Backup_Finalize"||e.Phase==="Backup_WaitForUpload"?i=.9:e.Phase==="Backup_Delete"||e.Phase==="Backup_Compact"?i=.95:e.Phase==="Backup_VerificationUpload"||e.Phase==="Backup_PostBackupVerify"?i=.98:e.Phase==="Backup_Complete"?i=1:e.Phase==="Backup_RemoteSynchronization"?i=e.OverallProgress>0?e.OverallProgress:0:e.OverallProgress>0&&(i=e.OverallProgress);return i}#a(e){let i=(e.ActiveTransfers??[]).map(o=>o.BackendSpeed).reduce((o,l)=>(o??0)+(l??0),0)??-1,t=i<=0?e.BackendSpeed:i;return(t??-1)<0?"":` at ${this.#i.transform(t)}/s`}#u(e){let i=(["Backup_WaitForUpload","Backup_ProcessingFiles"].includes(e.Phase)?e?.BackendFileProgress:e.CurrentFileoffset)??0,t=(["Backup_WaitForUpload","Backup_ProcessingFiles"].includes(e.Phase)?e?.BackendFileSize:e.CurrentFilesize)??0;if(!e.CurrentFilename)return"";let o=e.CurrentFilename.length>42?"..."+e.CurrentFilename.slice(-42):e.CurrentFilename,l=(i/t*100).toFixed(1);return $localize`${o} | File processed: ${this.#i.transform(i)}/${this.#i.transform(t)} - ${l}%`}#f(e){return $localize`Files processed ${e.ProcessedFileCount}/${e.TotalFileCount}`}#d(e){let i="Running \u2026";if(e.task&&e){if(i=e.Phase?m[e.Phase]??e.Phase:"Running \u2026",e.TotalFileCount===0)return i;if(e.Phase==="Backup_ProcessingFiles"||e.Phase==="Restore_DownloadingRemoteFiles")if(e.StillCounting)i=`Counting (${e.TotalFileCount} files found, ${this.#i.transform(e.TotalFileSize)})`;else{let t=e.CurrentFilecomplete?0:e.CurrentFileoffset,o=e.TotalFileCount-e.ProcessedFileCount,l=e.TotalFileSize-e.ProcessedFileSize-t,u=e.Phase==="Restore_DownloadingRemoteFiles"?"Restoring: ":"",s=this.#a(e);e.Phase==="Backup_ProcessingFiles"&&o===0?i=`Completing upload ${s}`:e.BackendIsBlocking??!1?i=`Waiting for transfers ${s}`:i=`${u}${o} files (${this.#i.transform(l)}) to go ${s}`}else if(e.Phase==="Backup_WaitForUpload"){let t=this.#a(e);t!==""&&(i=`Waiting for upload to finish ${t}`)}else if(e.Phase==="Backup_RemoteSynchronization"){let t=e.RemoteSyncDestinationCount??0,o=e.RemoteSyncDestinationIndex??0,l=t>1?` (${o}/${t})`:"";if(e.TotalFileCount>0){let u=e.TotalFileCount-e.ProcessedFileCount,s=e.TotalFileSize-e.ProcessedFileSize,D=this.#a(e);i=`Synchronizing secondary destination${l}: ${u} files (${this.#i.transform(s)}) to go ${D}`}else l&&(i=`${m[e.Phase]}`.replace("\u2026",`${l} \u2026`))}}return i}static \u0275fac=function(i){return new(i||p)};static \u0275prov=P({token:p,factory:p.\u0275fac,providedIn:"root"})};export{m as a,b};
@@ -1 +1 @@
1
- import{a as _e}from"./chunk-ZK3S23CJ.js";import"./chunk-GO22QPW4.js";import"./chunk-FMDSOHVR.js";import"./chunk-NBKLLQQO.js";import"./chunk-I625OICV.js";import{a as se}from"./chunk-XCVBN7EK.js";import"./chunk-ADB5QRUO.js";import"./chunk-22PELS6R.js";import"./chunk-6Q6SSTBK.js";import"./chunk-MRSBKQQM.js";import"./chunk-7FDLOZXV.js";import"./chunk-EQNDYV43.js";import{a as b}from"./chunk-35APLYI4.js";import"./chunk-LU7TIW3P.js";import"./chunk-YMUS7QSB.js";import{a as le,b as m}from"./chunk-ZXQSQRKN.js";import"./chunk-XZNYCTQB.js";import"./chunk-R6TFME5I.js";import"./chunk-AZRNX5LU.js";import{B as ae,H as ie,Y as ne,c as Q,e as Y,i as Z,s as x,v as ee,z as te}from"./chunk-NCXKMSRH.js";import{d as oe}from"./chunk-QAQMMCTH.js";import{b as q,e as j}from"./chunk-KHZ5AXGT.js";import"./chunk-L2QOWZDR.js";import"./chunk-BRL4YYWO.js";import"./chunk-BDQJFOCO.js";import"./chunk-FSHBOASN.js";import{C as G,Cb as d,D as g,Db as n,E as L,Eb as i,F as p,Fb as c,Rc as E,Sa as _,Tb as u,Ub as h,Vb as A,Wb as H,Xb as J,Zb as T,_ as F,gb as V,kc as C,mc as K,nc as D,pa as s,q as y,ra as P,sc as X,tc as z,uc as W,wb as w,xb as U}from"./chunk-UH2E7MMT.js";import"./chunk-7CGTOI24.js";function re(r,t){r&1&&(n(0,"sh-icon",19),D(1,"spinner"),i())}function ce(r,t){r&1&&(n(0,"sh-icon",20),D(1,"check"),i())}function de(r,t){r&1&&(n(0,"sh-icon",21),D(1,"warning"),i()),r&2&&d("shTooltip","File not found")}function ue(r,t){let a=le(r).pipe(G(t),L());return m(a,{initialValue:r()})}var N=class r{#o=F(q);#s=F(se);#e=F(oe);#a=F(te);#t=s("");backupId=m(this.#o.params.pipe(y(t=>t.id)));activeBackup=E(()=>this.#s.backups().find(t=>t.Backup?.ID===this.backupId()));backupFilePath=s("");lastValidatedPath=s("");isValidatedPath=E(()=>this.lastValidatedPath()===this.backupFilePath());pathHasChanged=E(()=>this.backupFilePath()!==this.#t());isValidatingPath=s(!1);#i=ue(this.backupFilePath,500);#n=s(!1);isWaitingForValidation=E(()=>this.#i()!=this.backupFilePath()||this.isValidatingPath());backupFilePathEffect=P(()=>{let t=this.#i(),a=this.activeBackup(),e=this.#n();t!==""&&(this.isValidatingPath.set(!0),this.#e.postApiV1FilesystemValidate({requestBody:{path:t}}).pipe(g(1),p(()=>this.isValidatingPath.set(!1))).subscribe(()=>this.lastValidatedPath.set(t)))});isRestoring=s(!1);isRepairing=s(!1);isDeleting=s(!1);isSavingDbPath=s(!1);isSavingAndRepairing=s(!1);isMovingDb=s(!1);isCreatingBugReport=s(!1);createdReport=s(!1);activeBackupEffect=P(()=>{let t=this.activeBackup();if(!t)return;let a=t.Backup?.DBPath??"";this.backupFilePath.set(a),this.#t.set(a)});repairDatabase(){this.isRepairing.set(!0),this.#e.postApiV1BackupByIdRepair({id:this.backupId()}).pipe(g(1),p(()=>this.isRepairing.set(!1))).subscribe()}deleteDatabase(t=null){this.isValidatedPath()?this.#a.open(b,{data:{title:$localize`Confirm delete?`,message:$localize`Do you really want to delete the database for ${this.activeBackup()?.Backup?.Name}?`,confirmText:$localize`Delete database`,cancelText:$localize`Cancel`},closed:a=>{a&&this.doDeleteDatabase(t)}}):this.doDeleteDatabase(t)}doDeleteDatabase(t=null){this.isDeleting.set(!0),this.#e.postApiV1BackupByIdDeletedb({id:this.backupId()}).pipe(g(1),p(()=>this.isDeleting.set(!1))).subscribe(()=>{this.lastValidatedPath.set(""),t?.()})}restoreDatabase(){this.isValidatedPath()?this.deleteDatabase(()=>{this.doRepairDatabase()}):this.doRepairDatabase()}doRepairDatabase(){this.isRestoring.set(!0),this.#e.postApiV1BackupByIdRepair({id:this.backupId(),requestBody:{refresh_lock_info:!0}}).pipe(g(1),p(()=>this.isRestoring.set(!1))).subscribe()}resetDatabasePath(){this.backupFilePath.set(this.#t())}saveDatabasePath(t=null){this.isValidatedPath()?this.#a.open(b,{data:{title:$localize`Confirm reassign?`,message:$localize`The target database path already exists and may belong to another backup. Are you sure you want to assign this backup to an existing database?`,confirmText:$localize`Assign existing database`,cancelText:$localize`Cancel`},closed:a=>{a&&this.doSaveDatabasePath(t)}}):this.doSaveDatabasePath(t)}doSaveDatabasePath(t=null){this.isSavingDbPath.set(!0);let a=this.backupFilePath();this.#e.postApiV1BackupByIdUpdatedb({id:this.backupId(),requestBody:{path:a}}).pipe(p(()=>this.isSavingDbPath.set(!1))).subscribe(()=>{this.#t.set(a),t?.()})}saveAndRepairDatabasePath(){this.saveDatabasePath(()=>(this.isSavingAndRepairing.set(!0),this.#e.postApiV1BackupByIdRepair({id:this.backupId()}).pipe(g(1),p(()=>this.isSavingAndRepairing.set(!1))).subscribe()))}moveDatabasePath(){this.isMovingDb.set(!0);let t=this.backupFilePath();this.#e.postApiV1BackupByIdMovedb({id:this.backupId(),requestBody:{path:t}}).pipe(p(()=>this.isMovingDb.set(!1))).subscribe(()=>{this.#n.update(a=>!a),this.#t.set(t)})}createErrorReport(){this.isCreatingBugReport.set(!0),this.#e.postApiV1BackupByIdCreatereport({id:this.backupId()}).pipe(p(()=>this.isCreatingBugReport.set(!1))).subscribe({next:()=>{this.createdReport.set(!0),window.setTimeout(()=>this.createdReport.set(!1),3e3)}})}static \u0275fac=function(a){return new(a||r)};static \u0275cmp=V({type:r,selectors:[["app-database"]],decls:50,vars:21,consts:()=>{let t;t=$localize`${"\uFFFD#5\uFFFD"}:START_TAG_SH_ICON:arrow-left${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SH_ICON: Back `;let a;a=$localize`Local database for ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let e;e=$localize` Each backup has a local database associated with it, which stores information about the remote backup on the local machine. This makes it faster to perform many operations, and reduces the amount of data that needs to be downloaded for each operation. `;let o;o=$localize`Maintenance`;let S;S=$localize` If the backup and the remote storage is out of sync, Duplicati will require that you perform a repair operation to synchronize the database. If the repair is unsuccessful, you can delete the local database and re-generate. The bug report button can be used to create a copy of the database with path information removed. This should only be used if a developer requests to investigate an issue with your database. `;let f;f=$localize`${"\uFFFD#19\uFFFD"}:START_TAG_SH_ICON:wrench${"\uFFFD/#19\uFFFD"}:CLOSE_TAG_SH_ICON: Repair `;let I;I=$localize`${"\uFFFD#22\uFFFD"}:START_TAG_SH_ICON:trash${"\uFFFD/#22\uFFFD"}:CLOSE_TAG_SH_ICON: Delete `;let M;M=$localize`${"\uFFFD#25\uFFFD"}:START_TAG_SH_ICON:clock-counter-clockwise${"\uFFFD/#25\uFFFD"}:CLOSE_TAG_SH_ICON: Recreate (delete and repair) `;let R;R=$localize`${"\uFFFD#28\uFFFD"}:START_TAG_SH_ICON:file-plus${"\uFFFD/#28\uFFFD"}:CLOSE_TAG_SH_ICON: Create bug report database `;let B;B=$localize`Placement`;let O;O=$localize`${"\uFFFD#40\uFFFD"}:START_TAG_SH_ICON:backspace${"\uFFFD/#40\uFFFD"}:CLOSE_TAG_SH_ICON: Reset `;let $;$=$localize`${"\uFFFD#43\uFFFD"}:START_TAG_SH_ICON:floppy-disk${"\uFFFD/#43\uFFFD"}:CLOSE_TAG_SH_ICON: Save `;let v;v=$localize`${"\uFFFD#46\uFFFD"}:START_TAG_SH_ICON:wrench${"\uFFFD/#46\uFFFD"}:CLOSE_TAG_SH_ICON: Save & Repair `;let k;return k=$localize`${"\uFFFD#49\uFFFD"}:START_TAG_SH_ICON:flow-arrow${"\uFFFD/#49\uFFFD"}:CLOSE_TAG_SH_ICON: Move existing database `,[t,a,e,o,S,f,I,M,R,B,O,$,v,k,[1,"back"],["type","button","shButton","","routerLink","/",1,"small"],[1,"actions","maintenance"],["shButton","",3,"click","disabled"],["type","text",3,"ngModelChange","ngModel"],["prefix","",1,"primary"],["prefix",""],["prefix","",3,"shTooltip"],[1,"actions","placement"]]},template:function(a,e){if(a&1&&(c(0,"app-status-bar"),n(1,"section")(2,"div",14)(3,"button",15),u(4,0),c(5,"sh-icon"),h(),i()(),n(6,"article")(7,"h1"),A(8,1),i(),n(9,"p"),A(10,2),i()(),n(11,"article")(12,"h2"),A(13,3),i(),n(14,"p"),A(15,4),i(),n(16,"div",16)(17,"button",17),T("click",function(){return e.repairDatabase()}),u(18,5),c(19,"sh-icon"),h(),i(),n(20,"button",17),T("click",function(){return e.deleteDatabase()}),u(21,6),c(22,"sh-icon"),h(),i(),n(23,"button",17),T("click",function(){return e.restoreDatabase()}),u(24,7),c(25,"sh-icon"),h(),i(),n(26,"button",17),T("click",function(){return e.createErrorReport()}),u(27,8),c(28,"sh-icon"),h(),i()()(),n(29,"article")(30,"h2"),A(31,9),i(),n(32,"sh-form-field")(33,"input",18),W("ngModelChange",function(S){return z(e.backupFilePath,S)||(e.backupFilePath=S),S}),i(),w(34,re,2,0,"sh-icon",19)(35,ce,2,0,"sh-icon",20)(36,de,2,1,"sh-icon",21),i(),n(37,"div",22)(38,"button",17),T("click",function(){return e.resetDatabasePath()}),u(39,10),c(40,"sh-icon"),h(),i(),n(41,"button",17),T("click",function(){return e.saveDatabasePath()}),u(42,11),c(43,"sh-icon"),h(),i(),n(44,"button",17),T("click",function(){return e.saveAndRepairDatabasePath()}),u(45,12),c(46,"sh-icon"),h(),i(),n(47,"button",17),T("click",function(){return e.moveDatabasePath()}),u(48,13),c(49,"sh-icon"),h(),i()()()()),a&2){let o;_(8),H((o=e.activeBackup())==null||o.Backup==null?null:o.Backup.Name),J(8),_(9),C("loading",e.isRepairing()),d("disabled",!e.isValidatedPath()||e.pathHasChanged()),_(3),C("loading",e.isDeleting()),d("disabled",!e.isValidatedPath()||e.pathHasChanged()),_(3),C("loading",e.isRestoring()),d("disabled",e.pathHasChanged()),_(3),C("loading",e.isCreatingBugReport()),d("disabled",e.isCreatingBugReport()||!e.isValidatedPath()||e.pathHasChanged()),_(6),K(e.isValidatedPath()?"success":"error"),_(),X("ngModel",e.backupFilePath),_(),U(e.isWaitingForValidation()?34:e.isValidatedPath()?35:36),_(4),d("disabled",!e.pathHasChanged()),_(3),d("disabled",!e.pathHasChanged()||e.isWaitingForValidation()),_(3),d("disabled",!e.pathHasChanged()||e.isWaitingForValidation()),_(3),d("disabled",!e.pathHasChanged()||e.isValidatedPath()||e.isWaitingForValidation())}},dependencies:[x,Q,Y,Z,_e,ae,ie,ee,ne,j],styles:["[_nghost-%COMP%]{display:block}section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;padding:2rem}article[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}h1[_ngcontent-%COMP%]{font:var(--title-20)}h2[_ngcontent-%COMP%]{font:var(--title-30)}.actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}"],changeDetection:0})};export{N as default};
1
+ import{a as _e}from"./chunk-IFSZJSGH.js";import"./chunk-QDDVZ4CR.js";import"./chunk-BLSV7CNZ.js";import"./chunk-I6MIXWIT.js";import"./chunk-RJ2JM7C7.js";import{a as se}from"./chunk-WOKYULBU.js";import"./chunk-TCXCC5BM.js";import"./chunk-GKGMP6VF.js";import"./chunk-6Q6SSTBK.js";import"./chunk-YCJYEQF7.js";import"./chunk-OHYENIPP.js";import"./chunk-UTXZPAY6.js";import{a as b}from"./chunk-IMQUTGIK.js";import"./chunk-ANSV4G2K.js";import"./chunk-BACKG7KA.js";import{a as le,b as m}from"./chunk-IQL3REGJ.js";import"./chunk-AIAUP7OE.js";import"./chunk-C6PICAXB.js";import"./chunk-6JS7B4FW.js";import{B as ae,H as ie,Y as ne,c as Q,e as Y,i as Z,s as x,v as ee,z as te}from"./chunk-VKQQDCUN.js";import{d as oe}from"./chunk-DSYNIXJF.js";import{b as q,e as j}from"./chunk-NPFPMA4P.js";import"./chunk-O2SMJYPC.js";import"./chunk-N2AU7VKX.js";import"./chunk-ZC23RK4J.js";import"./chunk-OPHQNXYO.js";import{C as G,Cb as d,D as g,Db as n,E as L,Eb as i,F as p,Fb as c,Qc as E,Sa as _,Tb as u,Ub as h,Vb as A,Wb as H,Xb as J,Zb as T,_ as F,gb as V,kc as C,mc as K,nc as D,pa as s,q as y,ra as P,sc as X,tc as z,uc as W,wb as w,xb as U}from"./chunk-TQTOIWBK.js";import"./chunk-7CGTOI24.js";function re(r,t){r&1&&(n(0,"sh-icon",19),D(1,"spinner"),i())}function ce(r,t){r&1&&(n(0,"sh-icon",20),D(1,"check"),i())}function de(r,t){r&1&&(n(0,"sh-icon",21),D(1,"warning"),i()),r&2&&d("shTooltip","File not found")}function ue(r,t){let a=le(r).pipe(G(t),L());return m(a,{initialValue:r()})}var N=class r{#o=F(q);#s=F(se);#e=F(oe);#a=F(te);#t=s("");backupId=m(this.#o.params.pipe(y(t=>t.id)));activeBackup=E(()=>this.#s.backups().find(t=>t.Backup?.ID===this.backupId()));backupFilePath=s("");lastValidatedPath=s("");isValidatedPath=E(()=>this.lastValidatedPath()===this.backupFilePath());pathHasChanged=E(()=>this.backupFilePath()!==this.#t());isValidatingPath=s(!1);#i=ue(this.backupFilePath,500);#n=s(!1);isWaitingForValidation=E(()=>this.#i()!=this.backupFilePath()||this.isValidatingPath());backupFilePathEffect=P(()=>{let t=this.#i(),a=this.activeBackup(),e=this.#n();t!==""&&(this.isValidatingPath.set(!0),this.#e.postApiV1FilesystemValidate({requestBody:{path:t}}).pipe(g(1),p(()=>this.isValidatingPath.set(!1))).subscribe(()=>this.lastValidatedPath.set(t)))});isRestoring=s(!1);isRepairing=s(!1);isDeleting=s(!1);isSavingDbPath=s(!1);isSavingAndRepairing=s(!1);isMovingDb=s(!1);isCreatingBugReport=s(!1);createdReport=s(!1);activeBackupEffect=P(()=>{let t=this.activeBackup();if(!t)return;let a=t.Backup?.DBPath??"";this.backupFilePath.set(a),this.#t.set(a)});repairDatabase(){this.isRepairing.set(!0),this.#e.postApiV1BackupByIdRepair({id:this.backupId()}).pipe(g(1),p(()=>this.isRepairing.set(!1))).subscribe()}deleteDatabase(t=null){this.isValidatedPath()?this.#a.open(b,{data:{title:$localize`Confirm delete?`,message:$localize`Do you really want to delete the database for ${this.activeBackup()?.Backup?.Name}?`,confirmText:$localize`Delete database`,cancelText:$localize`Cancel`},closed:a=>{a&&this.doDeleteDatabase(t)}}):this.doDeleteDatabase(t)}doDeleteDatabase(t=null){this.isDeleting.set(!0),this.#e.postApiV1BackupByIdDeletedb({id:this.backupId()}).pipe(g(1),p(()=>this.isDeleting.set(!1))).subscribe(()=>{this.lastValidatedPath.set(""),t?.()})}restoreDatabase(){this.isValidatedPath()?this.deleteDatabase(()=>{this.doRepairDatabase()}):this.doRepairDatabase()}doRepairDatabase(){this.isRestoring.set(!0),this.#e.postApiV1BackupByIdRepair({id:this.backupId(),requestBody:{refresh_lock_info:!0}}).pipe(g(1),p(()=>this.isRestoring.set(!1))).subscribe()}resetDatabasePath(){this.backupFilePath.set(this.#t())}saveDatabasePath(t=null){this.isValidatedPath()?this.#a.open(b,{data:{title:$localize`Confirm reassign?`,message:$localize`The target database path already exists and may belong to another backup. Are you sure you want to assign this backup to an existing database?`,confirmText:$localize`Assign existing database`,cancelText:$localize`Cancel`},closed:a=>{a&&this.doSaveDatabasePath(t)}}):this.doSaveDatabasePath(t)}doSaveDatabasePath(t=null){this.isSavingDbPath.set(!0);let a=this.backupFilePath();this.#e.postApiV1BackupByIdUpdatedb({id:this.backupId(),requestBody:{path:a}}).pipe(p(()=>this.isSavingDbPath.set(!1))).subscribe(()=>{this.#t.set(a),t?.()})}saveAndRepairDatabasePath(){this.saveDatabasePath(()=>(this.isSavingAndRepairing.set(!0),this.#e.postApiV1BackupByIdRepair({id:this.backupId()}).pipe(g(1),p(()=>this.isSavingAndRepairing.set(!1))).subscribe()))}moveDatabasePath(){this.isMovingDb.set(!0);let t=this.backupFilePath();this.#e.postApiV1BackupByIdMovedb({id:this.backupId(),requestBody:{path:t}}).pipe(p(()=>this.isMovingDb.set(!1))).subscribe(()=>{this.#n.update(a=>!a),this.#t.set(t)})}createErrorReport(){this.isCreatingBugReport.set(!0),this.#e.postApiV1BackupByIdCreatereport({id:this.backupId()}).pipe(p(()=>this.isCreatingBugReport.set(!1))).subscribe({next:()=>{this.createdReport.set(!0),window.setTimeout(()=>this.createdReport.set(!1),3e3)}})}static \u0275fac=function(a){return new(a||r)};static \u0275cmp=V({type:r,selectors:[["app-database"]],decls:50,vars:21,consts:()=>{let t;t=$localize`${"\uFFFD#5\uFFFD"}:START_TAG_SH_ICON:arrow-left${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SH_ICON: Back `;let a;a=$localize`Local database for ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let e;e=$localize` Each backup has a local database associated with it, which stores information about the remote backup on the local machine. This makes it faster to perform many operations, and reduces the amount of data that needs to be downloaded for each operation. `;let o;o=$localize`Maintenance`;let S;S=$localize` If the backup and the remote storage is out of sync, Duplicati will require that you perform a repair operation to synchronize the database. If the repair is unsuccessful, you can delete the local database and re-generate. The bug report button can be used to create a copy of the database with path information removed. This should only be used if a developer requests to investigate an issue with your database. `;let f;f=$localize`${"\uFFFD#19\uFFFD"}:START_TAG_SH_ICON:wrench${"\uFFFD/#19\uFFFD"}:CLOSE_TAG_SH_ICON: Repair `;let I;I=$localize`${"\uFFFD#22\uFFFD"}:START_TAG_SH_ICON:trash${"\uFFFD/#22\uFFFD"}:CLOSE_TAG_SH_ICON: Delete `;let M;M=$localize`${"\uFFFD#25\uFFFD"}:START_TAG_SH_ICON:clock-counter-clockwise${"\uFFFD/#25\uFFFD"}:CLOSE_TAG_SH_ICON: Recreate (delete and repair) `;let R;R=$localize`${"\uFFFD#28\uFFFD"}:START_TAG_SH_ICON:file-plus${"\uFFFD/#28\uFFFD"}:CLOSE_TAG_SH_ICON: Create bug report database `;let B;B=$localize`Placement`;let O;O=$localize`${"\uFFFD#40\uFFFD"}:START_TAG_SH_ICON:backspace${"\uFFFD/#40\uFFFD"}:CLOSE_TAG_SH_ICON: Reset `;let $;$=$localize`${"\uFFFD#43\uFFFD"}:START_TAG_SH_ICON:floppy-disk${"\uFFFD/#43\uFFFD"}:CLOSE_TAG_SH_ICON: Save `;let v;v=$localize`${"\uFFFD#46\uFFFD"}:START_TAG_SH_ICON:wrench${"\uFFFD/#46\uFFFD"}:CLOSE_TAG_SH_ICON: Save & Repair `;let k;return k=$localize`${"\uFFFD#49\uFFFD"}:START_TAG_SH_ICON:flow-arrow${"\uFFFD/#49\uFFFD"}:CLOSE_TAG_SH_ICON: Move existing database `,[t,a,e,o,S,f,I,M,R,B,O,$,v,k,[1,"back"],["type","button","shButton","","routerLink","/",1,"small"],[1,"actions","maintenance"],["shButton","",3,"click","disabled"],["type","text",3,"ngModelChange","ngModel"],["prefix","",1,"primary"],["prefix",""],["prefix","",3,"shTooltip"],[1,"actions","placement"]]},template:function(a,e){if(a&1&&(c(0,"app-status-bar"),n(1,"section")(2,"div",14)(3,"button",15),u(4,0),c(5,"sh-icon"),h(),i()(),n(6,"article")(7,"h1"),A(8,1),i(),n(9,"p"),A(10,2),i()(),n(11,"article")(12,"h2"),A(13,3),i(),n(14,"p"),A(15,4),i(),n(16,"div",16)(17,"button",17),T("click",function(){return e.repairDatabase()}),u(18,5),c(19,"sh-icon"),h(),i(),n(20,"button",17),T("click",function(){return e.deleteDatabase()}),u(21,6),c(22,"sh-icon"),h(),i(),n(23,"button",17),T("click",function(){return e.restoreDatabase()}),u(24,7),c(25,"sh-icon"),h(),i(),n(26,"button",17),T("click",function(){return e.createErrorReport()}),u(27,8),c(28,"sh-icon"),h(),i()()(),n(29,"article")(30,"h2"),A(31,9),i(),n(32,"sh-form-field")(33,"input",18),W("ngModelChange",function(S){return z(e.backupFilePath,S)||(e.backupFilePath=S),S}),i(),w(34,re,2,0,"sh-icon",19)(35,ce,2,0,"sh-icon",20)(36,de,2,1,"sh-icon",21),i(),n(37,"div",22)(38,"button",17),T("click",function(){return e.resetDatabasePath()}),u(39,10),c(40,"sh-icon"),h(),i(),n(41,"button",17),T("click",function(){return e.saveDatabasePath()}),u(42,11),c(43,"sh-icon"),h(),i(),n(44,"button",17),T("click",function(){return e.saveAndRepairDatabasePath()}),u(45,12),c(46,"sh-icon"),h(),i(),n(47,"button",17),T("click",function(){return e.moveDatabasePath()}),u(48,13),c(49,"sh-icon"),h(),i()()()()),a&2){let o;_(8),H((o=e.activeBackup())==null||o.Backup==null?null:o.Backup.Name),J(8),_(9),C("loading",e.isRepairing()),d("disabled",!e.isValidatedPath()||e.pathHasChanged()),_(3),C("loading",e.isDeleting()),d("disabled",!e.isValidatedPath()||e.pathHasChanged()),_(3),C("loading",e.isRestoring()),d("disabled",e.pathHasChanged()),_(3),C("loading",e.isCreatingBugReport()),d("disabled",e.isCreatingBugReport()||!e.isValidatedPath()||e.pathHasChanged()),_(6),K(e.isValidatedPath()?"success":"error"),_(),X("ngModel",e.backupFilePath),_(),U(e.isWaitingForValidation()?34:e.isValidatedPath()?35:36),_(4),d("disabled",!e.pathHasChanged()),_(3),d("disabled",!e.pathHasChanged()||e.isWaitingForValidation()),_(3),d("disabled",!e.pathHasChanged()||e.isWaitingForValidation()),_(3),d("disabled",!e.pathHasChanged()||e.isValidatedPath()||e.isWaitingForValidation())}},dependencies:[x,Q,Y,Z,_e,ae,ie,ee,ne,j],styles:["[_nghost-%COMP%]{display:block}section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;padding:2rem}article[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}h1[_ngcontent-%COMP%]{font:var(--title-20)}h2[_ngcontent-%COMP%]{font:var(--title-30)}.actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}"],changeDetection:0})};export{N as default};
@@ -0,0 +1 @@
1
+ import{a as Se}from"./chunk-IFSZJSGH.js";import"./chunk-QDDVZ4CR.js";import"./chunk-BLSV7CNZ.js";import"./chunk-I6MIXWIT.js";import{a as Ce,b as pe,c as me,m as k,r as Te}from"./chunk-DJXLNIMV.js";import"./chunk-CAQ3XMFP.js";import"./chunk-VC55KFAX.js";import{b as de,c as ue,d as ge}from"./chunk-ZEFSBETQ.js";import"./chunk-RJ2JM7C7.js";import{a as ce}from"./chunk-WOKYULBU.js";import"./chunk-TCXCC5BM.js";import"./chunk-GKGMP6VF.js";import"./chunk-6Q6SSTBK.js";import"./chunk-YCJYEQF7.js";import"./chunk-OHYENIPP.js";import"./chunk-UTXZPAY6.js";import{a as $}from"./chunk-IMQUTGIK.js";import"./chunk-ANSV4G2K.js";import"./chunk-BACKG7KA.js";import"./chunk-IQL3REGJ.js";import"./chunk-AIAUP7OE.js";import"./chunk-C6PICAXB.js";import"./chunk-6JS7B4FW.js";import{B as se,C as ae,G as le,H as re,L as _e,c as Z,e as ee,i as te,s as ne,v as ie,z as oe}from"./chunk-VKQQDCUN.js";import"./chunk-DSYNIXJF.js";import"./chunk-NPFPMA4P.js";import"./chunk-O2SMJYPC.js";import"./chunk-N2AU7VKX.js";import"./chunk-ZC23RK4J.js";import"./chunk-OPHQNXYO.js";import{$b as r,Ab as J,Bb as X,Cb as E,Db as a,Eb as _,Fb as x,Mb as T,Qc as b,Sa as c,Tb as y,Ub as B,Vb as d,Wb as K,Xb as W,Xc as Y,Yb as j,Zb as m,_ as O,da as u,ea as g,gb as V,gc as Q,hc as q,kc as H,nc as D,oc as P,pa as f,ra as G,sc as A,tc as N,uc as M,wb as C,xb as p,yb as z}from"./chunk-TQTOIWBK.js";import"./chunk-7CGTOI24.js";function De(i,t){i&1&&(a(0,"div",13),x(1,"sh-progress-bar",14),a(2,"div",15)(3,"h3"),d(4,2),_()()())}function fe(i,t){i&1&&(a(0,"sh-divider"),d(1,5),_())}function Ee(i,t){if(i&1&&(a(0,"p",20),D(1),_()),i&2){let e=r().$implicit;c(),P(e.Description)}}function Fe(i,t){if(i&1&&(a(0,"p",20),D(1),_()),i&2){let e=r().$implicit,o=r(3);c(),P(o.getSimplePath(e.BaseUrl))}}function Ie(i,t){if(i&1){let e=T();a(0,"button",25),m("click",function(n){u(e);let s=r().$implicit,l=r(3);return g(l.updateBackupsSync(s,n))}),D(1," Update backups "),_()}if(i&2){let e=r(4);E("disabled",e.isSaving())}}function Ne(i,t){if(i&1){let e=T();a(0,"app-destination-list-item",18),m("click",function(){let n=u(e).$implicit,s=r(3);return g(s.selectDestination(n))}),a(1,"h3",19),D(2),_(),C(3,Ee,2,1,"p",20)(4,Fe,2,1,"p",20),a(5,"div",21),C(6,Ie,2,1,"button",22),a(7,"button",23),m("click",function(n){let s=u(e).$implicit,l=r(3);return g(l.deleteDestination(s.ID,n))}),a(8,"sh-icon"),D(9,"trash"),_()(),a(10,"button",24),y(11,6),x(12,"sh-icon"),B(),_()()()}if(i&2){let e=t.$implicit,o=r(3);E("targetUrl",e.BaseUrl),c(2),P(e.Name||e.BaseUrl),c(),p(e.Description?3:4),c(3),p(o.isOutOfSync(e)?6:-1)}}function he(i,t){if(i&1){let e=T();a(0,"sh-card",16),m("click",function(){u(e);let n=r(2);return g(n.selectDestination("new"))})("keydown.enter",function(n){return n.target.click()})("keydown.space",function(n){return n.target.click()}),a(1,"sh-icon"),D(2,"plus-circle"),_(),a(3,"div",15)(4,"h3"),d(5,3),_(),a(6,"p"),d(7,4),_()()(),C(8,fe,2,0,"sh-divider"),J(9,Ne,13,4,"app-destination-list-item",17,z)}if(i&2){let e=r(2);c(8),p(e.destinations().length>0?8:-1),c(),X(e.destinations())}}function Oe(i,t){if(i&1&&(a(0,"h2"),d(1,1),_(),C(2,De,5,0,"div",13)(3,he,11,1)),i&2){let e=r();c(2),p(e.isLoading()?2:3)}}function xe(i,t){i&1&&d(0,10,1)}function ye(i,t){i&1&&d(0,10,2)}function Be(i,t){i&1&&d(0,10,3)}function Pe(i,t){if(i&1){let e=T();a(0,"button",37),m("click",function(){u(e);let n=r(2);return g(n.testDestination())}),y(1,10),C(2,xe,1,0)(3,ye,1,0)(4,Be,1,0),B(),_()}if(i&2){let e,o=r(2);E("disabled",o.testSignal()=="testing"),c(2),p(o.testSignal()=="testing"?2:((e=o.testResponse())==null?null:e.action)==="success"?3:4)}}function Ae(i,t){if(i&1){let e=T();a(0,"div",32)(1,"sh-form-field")(2,"label"),d(3,11),_(),a(4,"input",38),M("ngModelChange",function(n){u(e);let s=r(2);return N(s.editName,n)||(s.editName=n),g(n)}),_()()()}if(i&2){let e=r(2);c(4),A("ngModel",e.editName)}}function Me(i,t){if(i&1){let e=T();a(0,"app-test-url",39,0),M("targetUrlChange",function(n){u(e);let s=r(2);return N(s.editBaseUrl,n)||(s.editBaseUrl=n),g(n)})("testSignalChange",function(n){u(e);let s=r(2);return N(s.testSignal,n)||(s.testSignal=n),g(n)}),_()}if(i&2){let e=r(2);A("targetUrl",e.editBaseUrl)("testSignal",e.testSignal),E("connectionStringId",e.selectedDestinationId())("backupId",null)("sourcePrefix",null)("suppressErrorDialogs",!0)("askToCreate",!0)("testExpectation","any")("moduleType","Backend")}}function be(i,t){if(i&1){let e=T();a(0,"app-destination-list-item",40)(1,"button",41),m("click",function(){u(e);let n=r(2);return g(n.removeDestination())}),d(2,12),_()(),a(3,"app-single-destination",42),M("targetUrlChange",function(n){u(e);let s=r(2);return N(s.editBaseUrl,n)||(s.editBaseUrl=n),g(n)}),_()}if(i&2){let e=r(2);E("targetUrl",e.editBaseUrl()),c(3),A("targetUrl",e.editBaseUrl)}}function $e(i,t){if(i&1){let e=T();a(0,"app-destination-list",43),m("setDestination",function(n){u(e);let s=r(2);return g(s.setDestination(n))}),_()}}function ke(i,t){i&1&&d(0,9,1)}function Re(i,t){i&1&&d(0,9,2)}function Le(i,t){i&1&&d(0,9,3)}function we(i,t){i&1&&d(0,9,4)}function Ue(i,t){if(i&1){let e=T();a(0,"header",26)(1,"button",23),m("click",function(){u(e);let n=r();return g(n.cancelEdit())}),a(2,"sh-icon"),D(3,"arrow-left"),_()()(),a(4,"div",27)(5,"sh-card",28)(6,"header",29)(7,"h3"),d(8,7),_(),a(9,"div",30),C(10,Pe,5,2,"button",31),_()(),C(11,Ae,5,1,"div",32),C(12,Me,2,9,"app-test-url",33),C(13,be,4,2)(14,$e,1,0,"app-destination-list"),_(),a(15,"div",34)(16,"button",35),m("click",function(){u(e);let n=r();return g(n.cancelEdit())}),d(17,8),_(),a(18,"button",36),m("click",function(){let n;u(e);let s=r();return g(((n=s.testResponse())==null?null:n.action)==="success"||((n=s.testResponse())==null?null:n.action)==="missing-folder"||!s.isUrlChanged()?s.save():s.testDestination())}),y(19,9),C(20,ke,1,0)(21,Re,1,0)(22,Le,1,0)(23,we,1,0),B(),_()()()}if(i&2){let e,o,n,s,l=r();c(8),K(l.selectedDestination()==="new"?"New Destination":"Edit Destination"),W(8),c(2),p(l.editBaseUrl()?10:-1),c(),p(l.selectedDestination()!=="new"?11:-1),c(),p(l.editBaseUrl()?12:-1),c(),p(l.editBaseUrl()?13:14),c(5),H("primary",((e=l.testResponse())==null?null:e.action)==="success"||!l.isUrlChanged())("warn",l.isUrlChanged()&&l.testSignal()===null||l.testSignal()==="testing"||((o=l.testResponse())==null?null:o.action)==="missing-folder")("error",l.testResponse()&&((n=l.testResponse())==null?null:n.action)!=="success"&&((n=l.testResponse())==null?null:n.action)!=="missing-folder"),E("disabled",!l.editBaseUrl()||l.isSaving()||l.testSignal()==="testing"),c(2),p(l.isSaving()?20:l.testSignal()==="testing"?21:((s=l.testResponse())==null?null:s.action)==="success"||((s=l.testResponse())==null?null:s.action)==="missing-folder"||!l.isUrlChanged()?22:23)}}var R=class i{#e=O(Ce);#t=O(ce);#n=O(oe);getSimplePath=de;backups=this.#t.backups;constructor(){this.#t.getBackups()}isSaving=this.#e.isSaving;destinations=this.#e.destinations;isLoading=this.#e.resourceDestinations.isLoading;testUrl=Y(k);selectedDestination=f(null);selectedDestinationId=b(()=>this.selectedDestination()!=="new"?this.selectedDestination().ID:null);editName=f(null);editDescription=f(null);editBaseUrl=f(null);initialBaseUrl=f(null);isUrlChanged=b(()=>{let t=this.editBaseUrl(),e=this.initialBaseUrl();return this.selectedDestination()==="new"?!0:t!==e});testSignal=f(null);testResponse=b(()=>{let t=this.testSignal();return t&&typeof t!="string"?t:null});getOutOfSyncBackupIds(t){if(!t.Backups)return[];let e=new Map(this.backups().map(o=>[o.Backup?.ID,o.Backup]));return t.Backups.filter(o=>{let n=e.get(o.ID);return n&&n.TargetURL!==t.BaseUrl}).map(o=>o.ID).filter(o=>!!o)}isOutOfSync(t){return this.getOutOfSyncBackupIds(t).length>0}#i=G(()=>{this.editBaseUrl(),this.testSignal.set(null)});selectDestination(t){this.selectedDestination.set(t),this.testSignal.set(null),t==="new"?(this.editName.set(null),this.editDescription.set(null),this.editBaseUrl.set(null),this.initialBaseUrl.set(null)):(this.editName.set(t.Name),this.editDescription.set(t.Description),this.editBaseUrl.set(t.BaseUrl),this.initialBaseUrl.set(t.BaseUrl),this.#e.getById(t.ID).subscribe(e=>{e.Data&&(this.editName.set(e.Data.Name),this.editDescription.set(e.Data.Description),this.editBaseUrl.set(e.Data.BaseUrl??null),this.initialBaseUrl.set(e.Data.BaseUrl??null))}))}cancelEdit(){this.selectedDestination.set(null)}setDestination(t){let e=ge(t??"");if(e){if(e.mapper.default){let o=e.mapper.default("");this.editBaseUrl.set(o);return}this.editBaseUrl.set(`${t}://`)}}removeDestination(){this.editBaseUrl.set(null)}async testDestination(){(await this.testUrl()?.testDestination(!1))?.action==="missing-folder"&&this.promptCreateFolder()}promptCreateFolder(){this.#n.open($,{data:{title:$localize`Folder missing`,message:$localize`The specified folder does not exist. Would you like to create it now?`,confirmText:$localize`Create Folder`,cancelText:$localize`Dismiss`},closed:t=>{t&&this.testUrl()?.createFolder()}})}save(){let t=this.selectedDestination();t&&this.performSave(t)}performSave(t){let e=this.editName(),o=this.editDescription(),n=this.editBaseUrl();if(t==="new"){let I=ue(n??"")?.displayName??"Destination",h=this.destinations().filter(F=>F.Name?.startsWith(I)).length;e=`${I} #${h+1}`,o=null}let s={Name:e,Description:o,BaseUrl:n};this.#e.save(t,s).subscribe(()=>{this.selectedDestination.set(null),this.#e.reload(),this.#t.getBackups(!0)})}updateBackupsSync(t,e){e.stopPropagation();let o=this.getOutOfSyncBackupIds(t);this.#n.open($,{data:{title:$localize`Update backups`,message:$localize`Are you sure you want to update ${o.length} backup(s) to use the current connection string?`,confirmText:$localize`Update`,cancelText:$localize`Cancel`},closed:n=>{n&&this.#e.updateBackups(t.ID,o).subscribe(()=>{this.#e.reload(),this.#t.getBackups(!0)})}})}deleteDestination(t,e){e.stopPropagation(),this.#n.open($,{data:{title:$localize`Delete destination`,message:$localize`Are you sure you want to delete this destination?`,confirmText:$localize`Delete`,confirmVariant:"error",cancelText:$localize`Cancel`},closed:o=>{o&&this.#e.delete(t).subscribe(()=>{this.#e.reload()})}})}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=V({type:i,selectors:[["app-destinations"]],viewQuery:function(e,o){e&1&&Q(o.testUrl,k,5),e&2&&q()},decls:4,vars:1,consts:()=>{let t;t=$localize`Destinations`;let e;e=$localize`Loading destinations...`;let o;o=$localize`Add new destination`;let n;n=$localize`Configure a new storage location.`;let s;s=$localize`Or manage your saved destinations`;let l;l=$localize` Manage ${"\uFFFD#12\uFFFD"}:START_TAG_SH_ICON:arrow-right${"\uFFFD/#12\uFFFD"}:CLOSE_TAG_SH_ICON:`;let I;I=$localize`${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let h;h=$localize`Cancel`;let F;F=$localize`${"\uFFFD*20:1\uFFFD"}:START_BLOCK_IF: Saving... ${"\uFFFD/*20:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*21:2\uFFFD"}:START_BLOCK_ELSE_IF: Testing... ${"[\uFFFD/*21:2\uFFFD|\uFFFD/*22:3\uFFFD]"}:CLOSE_BLOCK_ELSE_IF:${"\uFFFD*22:3\uFFFD"}:START_BLOCK_ELSE_IF_1: Save Destination ${"[\uFFFD/*21:2\uFFFD|\uFFFD/*22:3\uFFFD]"}:CLOSE_BLOCK_ELSE_IF:${"\uFFFD*23:4\uFFFD"}:START_BLOCK_ELSE: Test & Save ${"\uFFFD/*23:4\uFFFD"}:CLOSE_BLOCK_ELSE:`,F=j(F);let L;L=$localize`${"\uFFFD*2:1\uFFFD"}:START_BLOCK_IF: Testing... ${"\uFFFD/*2:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*3:2\uFFFD"}:START_BLOCK_ELSE_IF: Retry test ${"\uFFFD/*3:2\uFFFD"}:CLOSE_BLOCK_ELSE_IF:${"\uFFFD*4:3\uFFFD"}:START_BLOCK_ELSE: Test destination ${"\uFFFD/*4:3\uFFFD"}:CLOSE_BLOCK_ELSE:`;let w;w=$localize`Name`;let U;U=$localize`Name`;let v;return v=$localize`Change`,[["testUrl",""],t,e,o,n,s,l,I,h,F,L,U,v,[1,"loading-list"],[1,"indeterminate","primary"],[1,"text"],["tabindex","0",1,"type-a","actionable","add-new",3,"click","keydown.enter","keydown.space"],["variant","type-a",1,"actionable",3,"targetUrl"],["variant","type-a",1,"actionable",3,"click","targetUrl"],["displayName",""],["description",""],[1,"manage-actions"],["shButton","","type","button",1,"small","raised","primary",3,"disabled"],["shButton","","iconOnly","","type","button",1,"ghost",3,"click"],["shButton","","type","button",1,"manage-btn"],["shButton","","type","button",1,"small","raised","primary",3,"click","disabled"],[1,"edit-header"],[1,"edit-form"],[1,"config-section","type-c"],[1,"dest-config-header"],[1,"actions"],["shButton","","type","button",1,"small","ghost",3,"disabled"],[1,"form-row"],[3,"targetUrl","testSignal","connectionStringId","backupId","sourcePrefix","suppressErrorDialogs","askToCreate","testExpectation","moduleType"],[1,"form-footer"],["shButton","","type","button",3,"click"],["shButton","","type","button",1,"raised",3,"click","disabled"],["shButton","","type","button",1,"small","ghost",3,"click","disabled"],["placeholder",w,3,"ngModelChange","ngModel"],[3,"targetUrlChange","testSignalChange","targetUrl","testSignal","connectionStringId","backupId","sourcePrefix","suppressErrorDialogs","askToCreate","testExpectation","moduleType"],[1,"selected-backend",3,"targetUrl"],["shButton","","type","button",1,"ghost",3,"click"],[3,"targetUrlChange","targetUrl"],[3,"setDestination"]]},template:function(e,o){e&1&&(x(0,"app-status-bar"),a(1,"section"),C(2,Oe,4,1)(3,Ue,24,13),_()),e&2&&(c(2),p(o.selectedDestination()===null?2:3))},dependencies:[pe,me,Te,Se,_e,se,ie,ae,re,le,k,ne,Z,ee,te],styles:["[_nghost-%COMP%]{display:block}section[_ngcontent-%COMP%]{max-width:43.75rem;margin:0 auto;padding:2rem 1rem;display:flex;flex-direction:column;gap:1rem}h2[_ngcontent-%COMP%]{font:var(--title-30);text-align:center;padding:2rem}h3[_ngcontent-%COMP%]{font:var(--paragraph-10)}.actionable[_ngcontent-%COMP%]{cursor:pointer}.actionable[_ngcontent-%COMP%]:after{transition:inset .1s linear}.actionable[_ngcontent-%COMP%]:hover{--card-shp: 0}.custom-info[_ngcontent-%COMP%]{flex:1}.custom-info[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{font:var(--body-10);color:var(--base-7);margin:.25rem 0 0}.manage-actions[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:center}@media(max-width:600px){.manage-actions[_ngcontent-%COMP%] .manage-btn[_ngcontent-%COMP%]{display:none}}.add-new[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1.5rem;padding:1.5rem;background:var(--base-1);color:var(--primary-8)}.add-new[_ngcontent-%COMP%] sh-icon[_ngcontent-%COMP%]{font-size:2.5rem;opacity:.8}.edit-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem;margin-bottom:.5rem}.edit-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.edit-form[_ngcontent-%COMP%] .form-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr;gap:1rem;margin-bottom:1.5rem}@media(max-width:600px){.edit-form[_ngcontent-%COMP%] .form-row[_ngcontent-%COMP%]{grid-template-columns:1fr}}.edit-form[_ngcontent-%COMP%] .config-section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem;padding:1.5rem}.edit-form[_ngcontent-%COMP%] .config-section[_ngcontent-%COMP%] .dest-config-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center}.edit-form[_ngcontent-%COMP%] .form-footer[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;gap:1rem;margin-top:1rem;padding-top:1.5rem;border-top:1px solid var(--base-3)}.selected-backend[_ngcontent-%COMP%]{margin-bottom:.5rem}.loading-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;align-items:center;padding:4rem}.loading-list[_ngcontent-%COMP%] .text[_ngcontent-%COMP%]{text-align:center}"],changeDetection:0})};export{R as default};
@@ -1 +1 @@
1
- import{a as s}from"./chunk-22PELS6R.js";import{ha as o}from"./chunk-BDQJFOCO.js";import{_ as e,jb as n}from"./chunk-UH2E7MMT.js";var m=class i{#t=e(s);#r=e(o);convertTimestamp(t){let r=/^(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})Z$/.exec(t);if(r){let[a,p,f,c,d,u,h]=r;return`${p}-${f}-${c}T${d}:${u}:${h}Z`}return t}transform(t,r=!1,...a){return t?r?this.#r.transform(t,"short"):(this.#t.locale(),typeof t=="string"&&(t=this.convertTimestamp(t)),this.#t(t).fromNow()):"N/A"}static \u0275fac=function(r){return new(r||i)};static \u0275pipe=n({name:"relativeTime",type:i,pure:!0})};export{m as a};
1
+ import{a as s}from"./chunk-GKGMP6VF.js";import{ha as o}from"./chunk-ZC23RK4J.js";import{_ as e,jb as i}from"./chunk-TQTOIWBK.js";var m=class n{#t=e(s);#r=e(o);convertTimestamp(t){let r=/^(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})(\d{2})Z$/.exec(t);if(r){let[a,p,f,c,d,u,h]=r;return`${p}-${f}-${c}T${d}:${u}:${h}Z`}return t}transform(t,r=!1,...a){return t?r?this.#r.transform(t,"short"):(this.#t.locale(),typeof t=="string"&&(t=this.convertTimestamp(t)),this.#t(t).fromNow()):"N/A"}static \u0275fac=function(r){return new(r||n)};static \u0275pipe=i({name:"relativeTime",type:n,pure:!0})};export{m as a};