@duplicati/ngclient 0.0.223 → 0.0.225

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 (107) hide show
  1. package/{chunk-TPKKLIFK.js → chunk-2EX5HS5X.js} +1 -1
  2. package/{chunk-ZKIZ7IIA.js → chunk-35FMFK4I.js} +1 -1
  3. package/{chunk-UOMUNAOT.js → chunk-3DHD6GQL.js} +1 -1
  4. package/{chunk-YKF5ZW55.js → chunk-3HYQMG65.js} +1 -1
  5. package/{chunk-YFA6MJ2B.js → chunk-3PARK7B7.js} +1 -1
  6. package/chunk-3V25RAVK.js +1 -0
  7. package/{chunk-CWBB6FON.js → chunk-4ISFDBI3.js} +1 -1
  8. package/chunk-5FQ7HESA.js +1 -0
  9. package/{chunk-O5RZGVMD.js → chunk-5QGFYH2A.js} +1 -1
  10. package/{chunk-GBSP3YAH.js → chunk-5UJN5SN4.js} +1 -1
  11. package/{chunk-ZTENLO77.js → chunk-6DX35WDO.js} +1 -1
  12. package/{chunk-KI2HT2TI.js → chunk-6WX2UOAN.js} +1 -1
  13. package/{chunk-LNKXSLIG.js → chunk-7VQ67PEZ.js} +1 -1
  14. package/{chunk-WKQ3ICDB.js → chunk-A23UTI46.js} +1 -1
  15. package/chunk-AR5SEBWX.js +1 -0
  16. package/{chunk-AXLO5KWF.js → chunk-E4CYVUYG.js} +1 -1
  17. package/chunk-EBKOJDCT.js +1 -0
  18. package/{chunk-X5W2K6AN.js → chunk-EVEI25GQ.js} +1 -1
  19. package/{chunk-JB26UVQP.js → chunk-EXAZ4QZR.js} +1 -1
  20. package/{chunk-4J64RICN.js → chunk-G7TNRWOU.js} +1 -1
  21. package/chunk-GKAMSAN5.js +1 -0
  22. package/chunk-HS3UDQIJ.js +1 -0
  23. package/chunk-IDJ52K34.js +1 -0
  24. package/chunk-ITN4L52Q.js +1 -0
  25. package/chunk-J7GH3G72.js +1 -0
  26. package/chunk-JBX7YYME.js +1 -0
  27. package/chunk-JCXT6U5P.js +1 -0
  28. package/{chunk-3BIHFX4H.js → chunk-JNZJE3GC.js} +1 -1
  29. package/chunk-KGK4RY3J.js +1 -0
  30. package/{chunk-5E3B4AEF.js → chunk-KNSQLQC6.js} +1 -1
  31. package/chunk-KUNX5APQ.js +1 -0
  32. package/chunk-KX3UP3HV.js +1 -0
  33. package/chunk-KZYRTI62.js +1 -0
  34. package/chunk-LXTSZI4K.js +1 -0
  35. package/chunk-MKI54WTC.js +1 -0
  36. package/chunk-MSIH2OJ5.js +1 -0
  37. package/{chunk-SZLRIYOM.js → chunk-N5XYG3QW.js} +1 -1
  38. package/{chunk-UXIWNORE.js → chunk-NE255HQN.js} +1 -1
  39. package/chunk-NQAD2FBX.js +1 -0
  40. package/{chunk-JYRKUYG6.js → chunk-NUV5LHQV.js} +1 -1
  41. package/{chunk-N3TVNDVH.js → chunk-O2HQIEE4.js} +1 -1
  42. package/chunk-O2L2FRYE.js +11 -0
  43. package/chunk-OP7MDR2B.js +1 -0
  44. package/chunk-OSGHJCUU.js +1 -0
  45. package/chunk-OYU6OBKA.js +1 -0
  46. package/{chunk-TOV6NJCD.js → chunk-P2EIEVFT.js} +1 -1
  47. package/{chunk-VNXFTYQQ.js → chunk-PDZNQW6F.js} +1 -1
  48. package/chunk-PMF4FTBF.js +1 -0
  49. package/{chunk-EAVDZEBJ.js → chunk-PNRFCYAE.js} +1 -1
  50. package/{chunk-GBUTPGY5.js → chunk-POVWDK74.js} +1 -1
  51. package/chunk-QW23XWNE.js +1 -0
  52. package/chunk-T7RMSUHE.js +1 -0
  53. package/chunk-TSVSMVY4.js +1 -0
  54. package/chunk-TV7OB7Y4.js +1 -0
  55. package/{chunk-FQINMZH2.js → chunk-TWWAK5M6.js} +1 -1
  56. package/{chunk-XXXS73XL.js → chunk-TXCVGOPN.js} +1 -1
  57. package/{chunk-AXG7WHBS.js → chunk-UIVZWXBK.js} +1 -1
  58. package/chunk-UNQKMTFM.js +1 -0
  59. package/{chunk-7AXKIK5Z.js → chunk-VOXTAZLZ.js} +1 -1
  60. package/{chunk-F5RBSCC2.js → chunk-VQLI7RDY.js} +1 -1
  61. package/chunk-VTOEFKZG.js +1 -0
  62. package/chunk-VZNLMGYP.js +2 -0
  63. package/chunk-XUCXLLB4.js +1 -0
  64. package/chunk-Y47NRSCA.js +1 -0
  65. package/{chunk-5W4BSVZJ.js → chunk-YS4B2B5N.js} +1 -1
  66. package/{chunk-RDT3GMNM.js → chunk-ZGQ2WCM2.js} +1 -1
  67. package/chunk-ZSAEIKEB.js +1 -0
  68. package/chunk-ZXBKGNJU.js +1 -0
  69. package/index.html +1 -1
  70. package/{main-NENDDABN.js → main-S64CL44W.js} +1 -1
  71. package/package.json +1 -1
  72. package/chunk-22JSUCD3.js +0 -1
  73. package/chunk-2CKH2RVA.js +0 -1
  74. package/chunk-2VLJLCTO.js +0 -1
  75. package/chunk-35ZRBDWM.js +0 -1
  76. package/chunk-3D6EL52D.js +0 -1
  77. package/chunk-4IRGFIAU.js +0 -1
  78. package/chunk-6JGOGUIX.js +0 -1
  79. package/chunk-6RIKNAXD.js +0 -1
  80. package/chunk-6V4CDRLK.js +0 -1
  81. package/chunk-7SP45FHP.js +0 -1
  82. package/chunk-AFHEXZUZ.js +0 -1
  83. package/chunk-CEDH3C4K.js +0 -1
  84. package/chunk-CUYURNCQ.js +0 -1
  85. package/chunk-DT3A5ZZG.js +0 -1
  86. package/chunk-FNWC6U3F.js +0 -1
  87. package/chunk-FXBX5QMR.js +0 -1
  88. package/chunk-HDGXP6C6.js +0 -1
  89. package/chunk-JLANSXSK.js +0 -1
  90. package/chunk-MJPEKJ3T.js +0 -2
  91. package/chunk-NDOIWI7D.js +0 -1
  92. package/chunk-NFATJ2CP.js +0 -1
  93. package/chunk-OETM3ZQK.js +0 -1
  94. package/chunk-OQGMZ5Z4.js +0 -1
  95. package/chunk-PDGW22XJ.js +0 -1
  96. package/chunk-PVSB5UU6.js +0 -1
  97. package/chunk-QGAOYLQU.js +0 -1
  98. package/chunk-QLW7KAXY.js +0 -1
  99. package/chunk-QZEIAQ3M.js +0 -1
  100. package/chunk-R6FKSUPU.js +0 -1
  101. package/chunk-RM2KGG7J.js +0 -1
  102. package/chunk-RTGUYIWH.js +0 -11
  103. package/chunk-SL34UKL5.js +0 -1
  104. package/chunk-TI76HSL2.js +0 -1
  105. package/chunk-WJVFREPL.js +0 -1
  106. package/chunk-WULWYGYR.js +0 -1
  107. package/chunk-ZYYLNYSK.js +0 -1
@@ -0,0 +1 @@
1
+ import{a as $e,b as He}from"./chunk-3PARK7B7.js";import{a as we}from"./chunk-6DX35WDO.js";import{a as X}from"./chunk-NE255HQN.js";import"./chunk-UIVZWXBK.js";import{a as ye}from"./chunk-E4CYVUYG.js";import"./chunk-6Q6SSTBK.js";import"./chunk-COEGVUM3.js";import{a as ve}from"./chunk-SKLSR5GH.js";import"./chunk-YS4B2B5N.js";import{b as be}from"./chunk-KZYRTI62.js";import{a as Ge}from"./chunk-TSVSMVY4.js";import"./chunk-2KD757N6.js";import"./chunk-OP7MDR2B.js";import"./chunk-PEOYNJJM.js";import{a as Me}from"./chunk-NUV5LHQV.js";import{c as Se,e as Re}from"./chunk-PDZNQW6F.js";import{B as R,G as Ne,H as fe,J as Pe,Q as Ie,Y as De,c as ge,d as Ce,e as Te,i as me,r as he,s as Fe,t as Ee,v as M,w as J,x as Ae,z as Oe}from"./chunk-CJKZ27FM.js";import{d as Le}from"./chunk-KNSQLQC6.js";import{c as ce,d as ue,e as de,f as pe}from"./chunk-CQJRBQ6I.js";import"./chunk-V2UO7ES2.js";import"./chunk-HDDAGHHE.js";import"./chunk-YF6JHIN5.js";import"./chunk-2YUSBRXY.js";import{$ as u,$c as Q,Bb as ee,Bc as re,Cb as te,Db as F,Eb as a,Fb as o,G as j,Gb as _,Nb as N,Rc as Y,Ta as r,Ub as p,Vb as S,Wb as f,Wc as le,Yc as _e,Zb as v,_b as T,ac as c,ea as A,fa as O,hb as L,hc as ne,ic as ie,lc as B,nc as D,oc as d,pc as q,qa as h,qc as $,sa as b,tc as H,uc as w,vc as x,wc as oe,xb as g,xc as ae,yb as C,yc as k,zb as Z,zc as se}from"./chunk-K5XGRFWJ.js";import{a as z,b as W}from"./chunk-7CGTOI24.js";var Be=["scroller"];function Ye(i,t){i&1&&(a(0,"sh-icon"),d(1,"bell-ringing"),o())}function Je(i,t){i&1&&(a(0,"sh-icon"),d(1,"bell"),o())}function Xe(i,t){if(i&1&&_(0,"app-notification",8),i&2){c(2);let e=k(6);F("index",0)("notification",e.content)}}function Ve(i,t){if(i&1&&(a(0,"div",11),d(1),o()),i&2){c(3);let e=k(6);r(),$(" ",e.content.content," ")}}function ze(i,t){if(i&1&&(a(0,"sh-alert")(1,"div",10),d(2),o(),g(3,Ve,2,1,"div",11),o()),i&2){c(2);let e=k(6);D(e.content.type||"error"),r(2),q(e.content.title),r(),C(e.content.content?3:-1)}}function We(i,t){if(i&1&&(a(0,"div",6),g(1,Xe,1,2,"app-notification",8)(2,ze,4,4,"sh-alert",9),o()),i&2){c();let e=k(6);r(),C(e.type==="notification"?1:2)}}function je(i,t){if(i&1){let e=N();a(0,"div",7)(1,"div",12)(2,"h6",13),p(3,2),a(4,"button",5),T("click",function(){A(e);let s=c();return O(s.toggleNotifications())}),_(5,"sh-icon"),o(),S(),o(),a(6,"div",14,0)(8,"div",15),_(9,"app-notifications"),o()()()()}}function qe(i,t){if(i&1&&(a(0,"div",20),d(1),o()),i&2){let e=c().$implicit;r(),$(" ",e.content," ")}}function Qe(i,t){if(i&1){let e=N();a(0,"sh-alert",18,1),T("click",function(){let s=A(e).$implicit,l=c(2);return O(l.deleteAlertByIndex(s.id))}),a(2,"div",19),d(3),o(),g(4,qe,2,1,"div",20),o()}if(i&2){let e=t.$implicit;D(e.type),F("id",e.id),r(3),q(e.title),r(),C(e.content?4:-1)}}function Ke(i,t){i&1&&(a(0,"p",17),f(1,4),o())}function Ze(i,t){if(i&1){let e=N();a(0,"div",7)(1,"div",12)(2,"h6",13),p(3,3),a(4,"button",5),T("click",function(){A(e);let s=c();return O(s.toggleAlerts())}),_(5,"sh-icon"),o(),S(),o(),a(6,"div",14,0)(8,"div",15),ee(9,Qe,5,5,"sh-alert",16,Z,!1,Ke,2,0,"p",17),o()()()()}if(i&2){let e=c();r(9),te(e.alertHistory())}}var xe=new he,U=class i{#e=u(Ae);#n=u(X);isSubmitting=h(!1);messageSent=h(!1);form=xe.group({message:xe.control("",[Ce.required])});notifications=this.#n.notifications;shownMessage=h(null);shownMessageInterval=null;alertHistory=this.#e.alertHistory;alertHistoryIsOpen=this.#e.alertHistoryIsOpen;alertHistoryIsHidden=this.#e.alertHistoryIsHidden;numberOfOpenAlerts=Y(()=>this.alertHistory().filter(t=>t.isOpen).length);scroller=_e("scroller");isAlertsOpen=Q(!1);isNotificationsOpen=Q(!1);previousHistoryCount=h(null);previousNotificationsCount=h(null);constructor(){b(()=>{let t=this.alertHistory(),e=this.notifications();if(e.length===0){this.shownMessage.set(null);return}e.length&&this.previousHistoryCount()!==t.length&&!this.isNotificationsOpen()?(this.shownMessage.set({content:e[0],countDown:3,type:"notification"}),this.previousHistoryCount.set(t.length),this.shownMessageInterval=setInterval(()=>{let n=this.shownMessage();if(n?.countDown===0){this.shownMessage.set(null),this.shownMessageInterval=null;return}n!==null&&this.shownMessage.update(s=>W(z({},s),{countDown:s.countDown-1}))},1e3)):t.length&&this.previousHistoryCount()!==t.length&&!this.isAlertsOpen()&&(this.shownMessage.set({content:t[0],countDown:3,type:"alert"}),this.previousHistoryCount.set(t.length),this.shownMessageInterval=setInterval(()=>{let n=this.shownMessage();if(n?.countDown===0){this.shownMessage.set(null),this.shownMessageInterval=null;return}n!==null&&this.shownMessage.update(s=>W(z({},s),{countDown:s.countDown-1}))},1e3))}),b(()=>{this.alertHistoryIsOpen(),this.scrollToBottom()})}resetPreviewMessage(){this.shownMessage.set(null),this.shownMessageInterval=null}toggleAlerts(){this.isAlertsOpen()?this.isAlertsOpen.set(!1):(this.isAlertsOpen.set(!0),this.isNotificationsOpen.set(!1),this.resetPreviewMessage())}toggleNotifications(){this.isNotificationsOpen.set(!this.isNotificationsOpen()),this.isAlertsOpen()&&this.isAlertsOpen.set(!1)}deleteAlertByIndex(t){this.#e.removeAlert(t)}scrollToBottom(){this.scroller()&&this.scroller()?.nativeElement&&this.scroller().nativeElement.scrollTo(0,this.scroller().nativeElement.scrollHeight)}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=L({type:i,selectors:[["app-service-hub"]],viewQuery:function(e,n){e&1&&ne(n.scroller,Be,5),e&2&&ie()},inputs:{isAlertsOpen:[1,"isAlertsOpen"],isNotificationsOpen:[1,"isNotificationsOpen"]},outputs:{isAlertsOpen:"isAlertsOpenChange",isNotificationsOpen:"isNotificationsOpenChange"},decls:10,vars:9,consts:()=>{let t;t=$localize` Notifications ${"\uFFFD#4\uFFFD"}:START_TAG_BUTTON:${"\uFFFD#5\uFFFD"}:START_TAG_SH_ICON:x-circle${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SH_ICON:${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_BUTTON:`;let e;e=$localize` Alerts ${"\uFFFD#4\uFFFD"}:START_TAG_BUTTON:${"\uFFFD#5\uFFFD"}:START_TAG_SH_ICON:x-circle${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SH_ICON:${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_BUTTON:`;let n;return n=$localize`No alerts yet`,[["scroller",""],["alerts",""],t,e,n,["shButton","",3,"click"],[1,"preview-alert-wrap"],[1,"alert-stream-modal"],[3,"index","notification"],[3,"class"],["ship-alert-title",""],["ship-alert-content",""],[1,"alert-stream-modal-content"],[1,"paragraph-20"],[1,"alert-stream-modal-list-scroller"],[1,"alert-stream-modal-list"],[3,"class","id"],[1,"no-alerts"],[3,"click","id"],["title",""],["content",""]]},template:function(e,n){if(e&1&&(a(0,"button",5),T("click",function(){return n.toggleAlerts()}),a(1,"sh-icon"),d(2,"info"),o()(),a(3,"button",5),T("click",function(){return n.toggleNotifications()}),g(4,Ye,2,0,"sh-icon")(5,Je,2,0,"sh-icon"),o(),oe(6),g(7,We,3,1,"div",6),g(8,je,10,0,"div",7),g(9,Ze,12,1,"div",7)),e&2){D(n.alertHistory().length?"error":""),r(3),D(n.notifications().length?"error":""),r(),C(n.notifications().length?4:5),r(2);let s=ae(n.shownMessage());r(),C(s?7:-1),r(),C(n.isNotificationsOpen()?8:-1),r(),C(n.isAlertsOpen()?9:-1)}},dependencies:[Ee,J,M,R,He,$e],styles:["[_nghost-%COMP%]{display:flex;position:fixed;gap:.5rem;bottom:1.5rem;right:1.5rem;z-index:5000}@media only screen and (max-width:768px){[_nghost-%COMP%]{bottom:1rem;right:1rem}}[_nghost-%COMP%] h6[_ngcontent-%COMP%]{margin:0}.preview-alert-wrap[_ngcontent-%COMP%]{position:absolute;bottom:2.6875rem;right:0;display:flex;flex-direction:column;min-width:15.625rem}.helpdesk-modal[_ngcontent-%COMP%]{position:absolute;bottom:2.6875rem;right:0;display:flex;flex-direction:column}@media only screen and (max-width:768px){.helpdesk-modal[_ngcontent-%COMP%]{bottom:2.6875rem}}.helpdesk-modal-content[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;gap:1rem;min-width:20rem;border:1px solid var(--base-4);background-color:var(--base-1);border-radius:var(--shape-2)}.helpdesk-modal-content[_ngcontent-%COMP%] .message-sent[_ngcontent-%COMP%]{padding:0 1rem 1rem;text-wrap:pretty}.helpdesk-modal-content[_ngcontent-%COMP%] h6[_ngcontent-%COMP%]{padding:1rem;border-bottom:1px solid var(--base-4);display:flex;align-items:center;justify-content:space-between}.helpdesk-modal-content[_ngcontent-%COMP%] form[_ngcontent-%COMP%]{padding:0 1rem 1rem;display:flex;flex-direction:column;align-items:flex-end;gap:1rem}.helpdesk-modal-content[_ngcontent-%COMP%] form[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{width:100%;text-wrap:pretty}.helpdesk-modal-content[_ngcontent-%COMP%] form[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:100%}.alert-stream-modal[_ngcontent-%COMP%]{position:absolute;bottom:2.6875rem;right:0;display:flex;flex-direction:column}@media only screen and (max-width:768px){.alert-stream-modal[_ngcontent-%COMP%]{bottom:2.6875rem}}.alert-stream-modal-list-scroller[_ngcontent-%COMP%]{overflow-y:auto;max-height:18.75rem}.alert-stream-modal-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;padding:1rem;border-radius:var(--shape-2)}.alert-stream-modal-content[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;min-width:20rem;border:1px solid var(--base-4);background-color:var(--base-1);border-radius:var(--shape-2)}.alert-stream-modal-content[_ngcontent-%COMP%] h6[_ngcontent-%COMP%]{padding:1rem;border-bottom:1px solid var(--base-4);display:flex;align-items:center;justify-content:space-between}.no-alerts[_ngcontent-%COMP%]{padding:1rem;display:flex;flex-direction:column;gap:1rem;text-align:center}"],changeDetection:0})};function et(i,t){i&1&&(a(0,"sh-icon",14),d(1,"check"),o())}function tt(i,t){i&1&&(a(0,"sh-icon",15),d(1,"prohibit"),o())}function nt(i,t){if(i&1){let e=N();a(0,"button",20),T("click",function(){A(e);let s=c();return O(s.updatePassphrase())}),f(1,5),o()}if(i&2){let e=c();B("loading",e.isUpdating())}}function it(i,t){if(i&1){let e=N();a(0,"button",21),T("click",function(){A(e);let s=c();return O(s.updatePassphrase())}),f(1,6),o()}if(i&2){let e=c();B("loading",e.isUpdating()),F("disabled",!0)}}var V=class i{#e=u(Le);closed=le();isUpdating=h(!1);passphrase=h("");repeatPassphrase=h("");updatePassphrase(){this.passphrase()===this.repeatPassphrase()&&(this.isUpdating.set(!0),this.#e.patchApiV1Serversettings({requestBody:{"server-passphrase":this.passphrase()}}).pipe(j(()=>this.isUpdating.set(!1))).subscribe({next:()=>this.closed.emit()}))}cancel(){this.isUpdating.set(!0),this.#e.patchApiV1Serversettings({requestBody:{"has-asked-for-password-change":"True"}}).pipe(j(()=>this.isUpdating.set(!1))).subscribe({next:()=>this.closed.emit()})}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=L({type:i,selectors:[["app-change-passphrase-alert-dialog"]],outputs:{closed:"closed"},decls:23,vars:7,consts:()=>{let t;t=$localize`Enter new password`;let e;e=$localize`Repeat password`;let n;n=$localize`Password have to be filled and have to match`;let s;s=$localize`Change passphrase`;let l;l=$localize` Duplicati needs to be secured with a passphrase and a random passphrase has been generated for you. ${"[\uFFFD#6\uFFFD\uFFFD/#6\uFFFD|\uFFFD#7\uFFFD\uFFFD/#7\uFFFD]"}:LINE_BREAK:${"[\uFFFD#6\uFFFD\uFFFD/#6\uFFFD|\uFFFD#7\uFFFD\uFFFD/#7\uFFFD]"}:LINE_BREAK: If you open Duplicati from the tray icon, you do not need a passphrase, but if you plan to open it from another location you need to set a passphrase you know. Do you want to set a passphrase now? `,l=v(l);let y;y=$localize`Passphrase`;let P;P=$localize`Repeat passphrase`;let I;I=$localize`Not now thanks`;let G;G=$localize` Yes, update passphrase now `;let m;return m=$localize` Yes, update passphrase now `,[s,l,y,P,I,G,m,["header",""],["content",""],["type","warning"],["for","password"],["type","password","name","password","autocomplete","disabled","placeholder",t,"tabindex","1",3,"ngModelChange","ngModel"],["for","repeatPassword"],["type","password","name","repeatPassword","autocomplete","disabled","placeholder",e,"tabindex","2",3,"ngModelChange","disabled","ngModel"],["suffix","",1,"sh-success"],["suffix",""],["footer",""],["shButton","",3,"click"],["shButton","",1,"raised","primary",3,"loading"],["shButton","","shTooltip",n,1,"raised","primary",3,"loading","disabled"],["shButton","",1,"raised","primary",3,"click"],["shButton","","shTooltip",n,1,"raised","primary",3,"click","disabled"]]},template:function(e,n){e&1&&(a(0,"header",7)(1,"h3"),f(2,0),o()(),a(3,"div",8)(4,"sh-alert",9),p(5,1),_(6,"br")(7,"br"),S(),o(),a(8,"sh-form-field")(9,"label",10),f(10,2),o(),a(11,"input",11),x("ngModelChange",function(l){return w(n.passphrase,l)||(n.passphrase=l),l}),o()(),a(12,"sh-form-field")(13,"label",12),f(14,3),o(),a(15,"input",13),x("ngModelChange",function(l){return w(n.repeatPassphrase,l)||(n.repeatPassphrase=l),l}),o(),g(16,et,2,0,"sh-icon",14)(17,tt,2,0,"sh-icon",15),o()(),a(18,"footer",16)(19,"button",17),T("click",function(){return n.cancel()}),f(20,4),o(),g(21,nt,2,2,"button",18)(22,it,2,3,"button",19),o()),e&2&&(r(11),H("ngModel",n.passphrase),r(4),F("disabled",n.passphrase().length===0),H("ngModel",n.repeatPassphrase),r(),C(n.passphrase().length!==0&&n.passphrase()===n.repeatPassphrase()?16:17),r(3),B("loading",n.isUpdating()),r(2),C(n.passphrase().length!==0&&n.passphrase()===n.repeatPassphrase()?21:22))},dependencies:[Fe,ge,Te,me,J,fe,M,De,R],styles:["[_nghost-%COMP%]{display:block;--dialog-p: 1.5rem}[content][_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}"],changeDetection:0})};var ot=()=>({exact:!0});function at(i,t){i&1&&(a(0,"sh-icon"),d(1,"sun"),o())}function st(i,t){i&1&&(a(0,"sh-icon"),d(1,"moon"),o())}function rt(i,t){if(i&1){let e=N();a(0,"button",26),T("click",function(){A(e);let s=c();return O(s.logout())}),p(1,8),_(2,"sh-icon"),S(),o()}}var K=class i{#e=u(we);#n=u(ye);#o=u(Se);#a=u(Oe);#s=u(X);#r=u(Re);#t=u(Ge);#i=u(Me);#l=u(ue);#_=u(be);relayIsEnabled=this.#o.relayIsEnabled;isDarkMode=this.#e.isDarkMode;isNavOpen=this.#e.isNavOpen;sidenavType=this.#e.sidenavType;hasShownPasswordDialog=!1;machineName=Y(()=>{let t=this.#t.serverSettings();if(t&&t["--machine-name"])return t["--machine-name"];if(t&&t["machine-name"])return t["machine-name"];let e=this.#i.allOptions().find(n=>n.name==="machine-name");return e&&e.defaultValue?e.defaultValue:this.#i.systemInfo()?.MachineName??"Unknown"});ngOnInit(){this.#s.init(),this.#n.getBackups(!0)}serverSettingsEffect=b(()=>{if(!this.hasShownPasswordDialog&&(this.#t.askForInitialPasswordConfig()&&(this.hasShownPasswordDialog=!0,this.#a.open(V,{maxWidth:"500px"})),this.#t.showWelcomePage())){let t=this.#_.state();t=="inactive"?this.#l.navigate(["/welcome"]):t!="unknown"&&this.#t.setShownWelcomePage()}});toggleBodyClass(){this.#e.toggleBodyClass()}changeDefaultClientTo(t){this.#c(t),window.location.replace(`/${t}`)}logout(){this.#r.logout()}#c(t){var e=new Date;e.setTime(e.getTime()+2160*60*60*1e3),document.cookie="default-client="+t+"; expires="+e.toUTCString()+"; path=/"}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=L({type:i,selectors:[["app-layout"]],decls:44,vars:11,consts:()=>{let t;t=$localize`${"\uFFFD#10\uFFFD"}:START_TAG_SH_ICON:house${"\uFFFD/#10\uFFFD"}:CLOSE_TAG_SH_ICON: Home `;let e;e=$localize`${"\uFFFD#13\uFFFD"}:START_TAG_SH_ICON:database${"\uFFFD/#13\uFFFD"}:CLOSE_TAG_SH_ICON: Add backup `;let n;n=$localize`${"\uFFFD#16\uFFFD"}:START_TAG_SH_ICON:clock-counter-clockwise${"\uFFFD/#16\uFFFD"}:CLOSE_TAG_SH_ICON: Restore `;let s;s=$localize`${"\uFFFD#19\uFFFD"}:START_TAG_SH_ICON:link-simple${"\uFFFD/#19\uFFFD"}:CLOSE_TAG_SH_ICON: Destinations `;let l;l=$localize`${"\uFFFD#22\uFFFD"}:START_TAG_SH_ICON:gear${"\uFFFD/#22\uFFFD"}:CLOSE_TAG_SH_ICON: Settings `;let y;y=$localize`${"\uFFFD#32\uFFFD"}:START_TAG_SH_ICON:info${"\uFFFD/#32\uFFFD"}:CLOSE_TAG_SH_ICON: About Duplicati `;let P;P=$localize`${"\uFFFD#35\uFFFD"}:START_TAG_SH_ICON:files${"[\uFFFD/#35\uFFFD|\uFFFD/#36\uFFFD]"}:CLOSE_TAG_SH_ICON: Documentation ${"\uFFFD#36\uFFFD"}:START_TAG_SH_ICON_1:arrow-square-out${"[\uFFFD/#35\uFFFD|\uFFFD/#36\uFFFD]"}:CLOSE_TAG_SH_ICON:`,P=v(P);let I;I=$localize`${"\uFFFD#39\uFFFD"}:START_TAG_SH_ICON:chats-circle${"[\uFFFD/#39\uFFFD|\uFFFD/#40\uFFFD]"}:CLOSE_TAG_SH_ICON: Visit forum ${"\uFFFD#40\uFFFD"}:START_TAG_SH_ICON_1:arrow-square-out${"[\uFFFD/#39\uFFFD|\uFFFD/#40\uFFFD]"}:CLOSE_TAG_SH_ICON:`,I=v(I);let G;return G=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SH_ICON:sign-out${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_ICON: Log out `,[t,e,n,s,l,y,P,I,G,[3,"isOpenChange","isOpen","disableDrag"],["sidenav",""],["shButton","",1,"icon","small",3,"click"],[1,"base-1","primary"],["action","","routerLink","/","routerLinkActive","active",3,"routerLinkActiveOptions"],["action","","routerLink","/add-backup","routerLinkActive","active"],["action","","routerLink","/restore","routerLinkActive","active"],["action","","routerLink","/destinations","routerLinkActive","active"],["action","","routerLink","/settings","routerLinkActive","active"],[1,"spacer"],[1,"base-1l","primary"],["action","",1,"machine-name",3,"title"],["action","","routerLink","/about","routerLinkActive","active"],["href","https://docs.duplicati.com","target","_blank","action",""],["suffix",""],["href","https://forum.duplicati.com","target","_blank","action",""],["action",""],["action","",3,"click"]]},template:function(e,n){e&1&&(a(0,"sh-sidenav",9),x("isOpenChange",function(l){return w(n.isNavOpen,l)||(n.isNavOpen=l),l}),a(1,"div",10)(2,"header"),_(3,"app-logo"),a(4,"button",11),T("click",function(){return n.toggleBodyClass()}),g(5,at,2,0,"sh-icon")(6,st,2,0,"sh-icon"),o()(),a(7,"sh-list",12)(8,"button",13),p(9,0),_(10,"sh-icon"),S(),o(),a(11,"button",14),p(12,1),_(13,"sh-icon"),S(),o(),a(14,"button",15),p(15,2),_(16,"sh-icon"),S(),o(),a(17,"button",16),p(18,3),_(19,"sh-icon"),S(),o(),a(20,"button",17),p(21,4),_(22,"sh-icon"),S(),o()(),_(23,"div",18),a(24,"sh-list",19)(25,"div",20)(26,"sh-icon"),d(27,"desktop"),o(),d(28),o(),_(29,"sh-divider"),a(30,"button",21),p(31,5),_(32,"sh-icon"),S(),o(),a(33,"a",22),p(34,6),_(35,"sh-icon")(36,"sh-icon",23),S(),o(),a(37,"a",24),p(38,7),_(39,"sh-icon")(40,"sh-icon",23),S(),o(),g(41,rt,3,0,"button",25),o()(),_(42,"router-outlet")(43,"app-service-hub"),o()),e&2&&(D(n.sidenavType()),H("isOpen",n.isNavOpen),F("disableDrag",!0),r(5),C(n.isDarkMode()?5:6),r(3),F("routerLinkActiveOptions",re(10,ot)),r(17),F("title",se(n.machineName())),r(3),$(" ",n.machineName()," "),r(13),C(n.relayIsEnabled()?-1:41))},dependencies:[ce,de,pe,Ie,M,Pe,R,Ne,U,ve],styles:["[_nghost-%COMP%]{height:100vh;width:100%;overflow:hidden}header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:1.25rem;gap:.75rem}h3[title][_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between}div[sidenav][_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100vh}.machine-name[_ngcontent-%COMP%]{margin:0;cursor:default}"],changeDetection:0})};export{K as default};
package/index.html CHANGED
@@ -124,5 +124,5 @@
124
124
  <body>
125
125
  <app-root></app-root>
126
126
  <div class="loading">Connecting ...</div>
127
- <link rel="modulepreload" href="chunk-GA3CAVSK.js"><link rel="modulepreload" href="chunk-UXIWNORE.js"><link rel="modulepreload" href="chunk-B4QFOJXL.js"><link rel="modulepreload" href="chunk-AXG7WHBS.js"><link rel="modulepreload" href="chunk-AXLO5KWF.js"><link rel="modulepreload" href="chunk-BPHX6VXP.js"><link rel="modulepreload" href="chunk-XWML36YQ.js"><link rel="modulepreload" href="chunk-6Q6SSTBK.js"><link rel="modulepreload" href="chunk-COEGVUM3.js"><link rel="modulepreload" href="chunk-PEOYNJJM.js"><script src="polyfills-7RKI4BGK.js" type="module"></script><script src="main-NENDDABN.js" type="module"></script></body>
127
+ <link rel="modulepreload" href="chunk-GA3CAVSK.js"><link rel="modulepreload" href="chunk-NE255HQN.js"><link rel="modulepreload" href="chunk-B4QFOJXL.js"><link rel="modulepreload" href="chunk-UIVZWXBK.js"><link rel="modulepreload" href="chunk-E4CYVUYG.js"><link rel="modulepreload" href="chunk-BPHX6VXP.js"><link rel="modulepreload" href="chunk-XWML36YQ.js"><link rel="modulepreload" href="chunk-6Q6SSTBK.js"><link rel="modulepreload" href="chunk-COEGVUM3.js"><link rel="modulepreload" href="chunk-YS4B2B5N.js"><script src="polyfills-7RKI4BGK.js" type="module"></script><script src="main-S64CL44W.js" type="module"></script></body>
128
128
  </html>
@@ -1 +1 @@
1
- import{b as Ie,c as ke}from"./chunk-GA3CAVSK.js";import{a as we}from"./chunk-UXIWNORE.js";import{a as Ee}from"./chunk-B4QFOJXL.js";import{b as I}from"./chunk-AXG7WHBS.js";import"./chunk-AXLO5KWF.js";import{a as Me}from"./chunk-BPHX6VXP.js";import{b as Te}from"./chunk-XWML36YQ.js";import{a as V}from"./chunk-6Q6SSTBK.js";import{a as Se}from"./chunk-COEGVUM3.js";import"./chunk-PEOYNJJM.js";import"./chunk-5W4BSVZJ.js";import"./chunk-AFHEXZUZ.js";import{a as H}from"./chunk-JYRKUYG6.js";import{a as h,b as ye,c as v,d as Re,e as E}from"./chunk-VNXFTYQQ.js";import{u as be,x as Ce}from"./chunk-CJKZ27FM.js";import{a as ge,e as ve}from"./chunk-5E3B4AEF.js";import{c as le,d as me,g as de,h as ue,i as he,j as fe}from"./chunk-CQJRBQ6I.js";import{a as ne}from"./chunk-V2UO7ES2.js";import{a as re,b as se,c as ie,e as ae,f as pe,g as ce}from"./chunk-HDDAGHHE.js";import{ha as te,ma as oe}from"./chunk-YF6JHIN5.js";import"./chunk-2YUSBRXY.js";import{$ as s,A as P,B,G as J,Gb as Y,M as T,Mc as Z,Nc as ee,O as K,W as C,Z as _,f as F,g as W,hb as Q,ia as q,ja as z,l as $,m as G,q as w,qa as d,sa as X}from"./chunk-K5XGRFWJ.js";import"./chunk-7CGTOI24.js";var k=class e{#e=s(h);#d=s(v);ngOnInit(){ye(),this.#d.fetchConfig(),this.#e.clearAllNotCurrentVersion()}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=Q({type:e,selectors:[["app-root"]],decls:1,vars:0,template:function(t,n){t&1&&Y(0,"router-outlet")},dependencies:[le],encapsulation:2})};var Ae={production:!0,baseUrl:"/api",machineServerUrl:"${WS_URL}",defaultTimeout:3e4};var f=new _("ENVIRONMENT");var A=class e{#e=s(ve);isLoaded=d(!1);webmodules=d(null);preload(o=!1){let t=this.#e.getApiV1Webmodules().pipe(K(n=>this.webmodules.set(n)),J(()=>this.isLoaded.set(!0)));if(o)return t;t.subscribe()}static \u0275fac=function(t){return new(t||e)};static \u0275prov=C({token:e,factory:e.\u0275fac,providedIn:"root"})};var Ue=()=>{let e=s(E);return e.token()?!0:e.checkProxyAuthed().pipe(T(o=>o?$(!0):e.refreshToken().pipe(w(()=>!0))))},je=()=>{let e=s(v),o=s(I),t=s(q),n=e.relayIsEnabled()?"longpoll":"websocket",i=[t.get(H).preload(!0),t.get(H).preloadFilterGroups(!0),t.get(A).preload(!0)];return e.configLoaded===null?P(i).pipe(w(()=>n)):e.configLoaded?.pipe(T(()=>P(i)))},Fe=()=>!0,Ne={path:"connect/:typeParam",loadComponent:()=>import("./chunk-WULWYGYR.js")},We=()=>{let e=s(h);return!e.getItem("locale")&&navigator.language&&e.setItem("locale",navigator.language),!0},Oe=[{path:"",children:[{path:"login",canActivate:[],loadComponent:()=>import("./chunk-WJVFREPL.js")},{path:"logout",loadComponent:()=>import("./chunk-RDT3GMNM.js")},{path:"",canActivate:[Ue],children:[{path:"",canActivate:[je,Fe,We],children:[{path:"welcome",loadComponent:()=>import("./chunk-GNKCBZMS.js"),children:[{path:"",redirectTo:"select",pathMatch:"full"},{path:"select",loadComponent:()=>import("./chunk-2VLJLCTO.js")},Ne]},{path:"",loadComponent:()=>import("./chunk-CUYURNCQ.js"),children:[{path:"",loadComponent:()=>import("./chunk-QLW7KAXY.js")},Ne,{path:"destinations",loadComponent:()=>import("./chunk-35ZRBDWM.js")},{path:"add-backup",loadComponent:()=>import("./chunk-SL34UKL5.js")},{path:"backup/:id/export",loadComponent:()=>import("./chunk-6V4CDRLK.js")},{path:"backup/import",loadComponent:()=>import("./chunk-WKQ3ICDB.js")},{path:"backup-draft/:id",loadComponent:()=>import("./chunk-FXBX5QMR.js"),loadChildren:()=>import("./chunk-JLANSXSK.js")},{path:"backup/:id",loadComponent:()=>import("./chunk-FXBX5QMR.js"),loadChildren:()=>import("./chunk-JLANSXSK.js")},{path:"backup/:id/log",loadComponent:()=>import("./chunk-FNWC6U3F.js")},{path:"backup/:id/database",loadComponent:()=>import("./chunk-7SP45FHP.js")},{path:"backup/:id/commandline",loadComponent:()=>import("./chunk-O5RZGVMD.js")},{path:"backup/:id/commandline/:runId",loadComponent:()=>import("./chunk-HDGXP6C6.js")},{path:"backup/:id/delete",loadComponent:()=>import("./chunk-GBUTPGY5.js")},{path:"restore",children:[{path:"",loadComponent:()=>import("./chunk-DT3A5ZZG.js")},{path:"from-config",loadComponent:()=>import("./chunk-UOMUNAOT.js")}]},{path:"restore-from-files",loadComponent:()=>import("./chunk-CEDH3C4K.js"),loadChildren:()=>import("./chunk-R6FKSUPU.js")},{path:"restore-draft/:id",loadComponent:()=>import("./chunk-CEDH3C4K.js"),loadChildren:()=>import("./chunk-R6FKSUPU.js")},{path:"restore/:id",loadComponent:()=>import("./chunk-CEDH3C4K.js"),loadChildren:()=>import("./chunk-R6FKSUPU.js")},{path:"status",loadComponent:()=>import("./chunk-SZLRIYOM.js")},{path:"settings",loadComponent:()=>import("./chunk-GBSP3YAH.js")},{path:"about",loadComponent:()=>import("./chunk-22JSUCD3.js"),children:[{path:"",redirectTo:"general",pathMatch:"full"},{path:"general",loadComponent:()=>import("./chunk-7AXKIK5Z.js")},{path:"changelog",loadComponent:()=>import("./chunk-F5RBSCC2.js")},{path:"libraries",loadComponent:()=>import("./chunk-EAVDZEBJ.js")},{path:"system-info",loadComponent:()=>import("./chunk-LNKXSLIG.js")},{path:"server-settings",loadComponent:()=>import("./chunk-3BIHFX4H.js")},{path:"logs",loadChildren:()=>import("./chunk-OQGMZ5Z4.js")},{path:"crashlogs",loadComponent:()=>import("./chunk-XXXS73XL.js")}]}]}]}]}]}];var xe=(e,o)=>{let t=s(E),n=s(me),i=s(h),p=s(f),m=i.getItem("locale"),a=s(Ce),g=Ie(m),r=ge.BASE||"",c=e.url===`${r}/api/v1/auth/login`,u=e.url===`${r}/api/v1/auth/logout`,S=e.url===`${r}/api/v1/auth/refresh`,y=e.url===`${r}/api/v1/progressstate`,x=e.url===`${r}/api/v1/remoteoperation/test`,M=e.url===`${r}/api/v1/filesystem/validate`,De=e.url.startsWith(`${r}/api/v2/`),L=t.token(),U=e,j=e.headers.has("custom-proxy-check")||L===Re;if(L&&e.url.startsWith(r+p.baseUrl)&&!j){let l=e.headers.set("Authorization",`Bearer ${L}`);m&&m!=="en-US"&&(l=l.set("X-Ui-Language",g)),U=e.clone({headers:l})}return o(U).pipe(w(l=>{if(l.type===4&&l.status===200&&De){let b=l.body;if(b?.Success===!1)throw{status:200,message:b?.Error??"Unknown error",error:{Error:b?.Error??"Unknown error"},requestBody:b}}return l}),B(l=>{let b=l.error?.Error||`Error Code: ${l.status}, Message: ${l.message}`;if(!j){let R=!0;if((y&&l.status===404||x||M)&&(R=!1),S&&l.status===401&&(R=!1,t.logout(),n.navigate(["/logout"])),!c&&!S&&!u&&l.status===401)return R=!1,t.refreshToken().pipe(T(()=>o(e.clone({headers:e.headers.set("Authorization",`Bearer ${t.token()}`)}))));R&&a.error(b)}return G(()=>({error:l,message:b}))}))};var N=class e{#e=s(z);showError(o){let t=this.#e.querySelector("body > .loading");if(!t)return;t.classList.add("has-error"),t.innerHTML="";let n=this.#e.createElement("div");n.classList.add("loading-title"),n.textContent="Unable to connect";let i=this.#e.createElement("div");i.classList.add("loading-error"),i.textContent=o||"Unknown error";let p=this.#e.createElement("button");p.type="button",p.classList.add("retry-button"),p.textContent="Retry",p.addEventListener("click",()=>{this.#e.defaultView?.location.reload()}),t.append(n,i,p)}static \u0275fac=function(t){return new(t||e)};static \u0275prov=C({token:e,factory:e.\u0275fac,providedIn:"root"})};var $e="1.0.0",Le=`portal-proxy-client-${V()}`,Ge=1,O=class e{#e=1e3;#d=s(f);#u=s(N);#o=d("disconnected");#h=d(this.#e);#a=d(!1);#n=d(!1);#p=d(null);#c=d(null);#s=!1;isConnectedToMachineServer=this.#n.asReadonly();wsState=this.#o.asReadonly();#l=[];#r={};#t=null;#f=new TextDecoder("utf-8");#m=null;#y=X(()=>{let o=this.#a(),t=this.#h(),n=this.#p(),i=this.#c();if(!n||!i||!o||!t||t<this.#e){this.#m&&window.clearInterval(this.#m);return}this.#m=window.setInterval(()=>{this.connectToMachineServer(n,i)},t)});#i(o){this.#s||(this.#s=!0,this.#u.showError(o||"Unable to connect to the server."))}#g(){this.#s||(this.#s=!0)}utf8Atob(o){let t=Uint8Array.from(atob(o),i=>i.charCodeAt(0)),n=this.#f.decode(t);return n?JSON.parse(n):null}connectToMachineServer(o,t,n){let i=n?.reconnect??!1,p=this.wsState();(p==="disconnected"||p==="error"||i)&&(this.#t?.close(),this.#t=null),!this.#t&&(this.#s=!1,this.#t=new WebSocket(t),this.#o.set("connecting"),this.#t.onopen=()=>{this.#o.set("connect"),this.#n.set(!0),this.#a.set(!1),this.#p.set(null),this.#c.set(null)},this.#t.onclose=()=>{this.#o.set("disconnected"),this.#n.set(!1),this.#p.set(o),this.#c.set(t),this.#a.set(!0)},this.#t.onerror=()=>{this.#o.set("error")},this.#t.onmessage=m=>{let a=JSON.parse(m.data);if(this.wsState()==="connect"){if(a.type!=="welcome"){this.disconnectFromMachineServer(`Unexpected message type, expected 'welcome' but got '${a.type}'`);return}let r={token:o,publicKey:"",clientVersion:$e,protocolVersion:Ge},c=this.createResponse(a,"authportal",r);this.#o.set("welcome"),this.#t?.send(c)}else if(this.wsState()==="welcome"){if(a.type!=="authportal"){this.disconnectFromMachineServer(`Unexpected message type, expected 'authportal' but got '${a.type}'`);return}var g=JSON.parse(a.payload??"");if(g.accepted===!1){this.#i("Authentication failed"),this.disconnectFromMachineServer("Authentication failed");return}for(this.#o.set("authenticated"),this.#n.set(!0);this.#l.length>0;){let r=this.#l.pop();r&&this.#r[r.messageId]&&this.activateCommand(r)}}else if(this.wsState()==="authenticated"){if(a.type!=="command"){console.warn(`Unexpected message type, expected 'command' but got '${a.type}'`);return}let r=this.#r[a.messageId];if(r){if(a.errorMessage)this.#i(a.errorMessage),r.reject(a.errorMessage);else{let c=JSON.parse(a.payload??"");c.statusCode>=400?this.#i(c.body||`Initial request failed with status code ${c.statusCode}`):this.#g(),c.body=c?.body==null?null:this.utf8Atob(c.body),r.resolve(c)}delete this.#r[a.messageId],window.clearTimeout(r.timer)}}})}disconnectFromMachineServer(o=null){o&&console.error(o),this.#t?.close(),this.#t=null,this.#o.set("disconnected"),this.#n.set(!1)}createResponse(o,t,n){let i={from:Le,to:o.from,type:t,messageId:o.messageId,payload:JSON.stringify(n)};return JSON.stringify(i)}sendCommand(o,t,n,i,p,m,a,g=5e3){return(this.wsState()==="disconnected"||this.wsState()==="error")&&this.connectToMachineServer(o,n),new Promise((r,c)=>{let u=V(),y={from:Le,to:t,type:"command",messageId:u,payload:JSON.stringify({method:i,path:p,body:m,headers:a})},x={resolve:r,reject:c,timer:window.setTimeout(()=>{let M=this.#r[u];M&&(delete this.#r[u],this.#i("The request timed out before receiving a response."),M.reject("Timeout"))},g)};this.#r[u]=x,this.#n()?this.activateCommand(y):this.#l.push(y)})}activateCommand(o){this.#t?.send(JSON.stringify(o))}static \u0275fac=function(t){return new(t||e)};static \u0275prov=C({token:e,factory:e.\u0275fac,providedIn:"root"})};function Be(e){if(typeof e!="string")return null;let t=new TextEncoder().encode(e);return window.btoa(String.fromCharCode(...t))}function Pe(e,o,t){let n=e.relayconfigState.config();if(n===null)return t(o);let i=Be(o.body),p={};o.headers.keys().forEach(r=>{p[r]=o.headers.get(r)??""});let m=o.headers.get("timeout"),a=m!==null?parseInt(m):e.defaultTimeout;o.url.startsWith("/api/v1/serverstate")&&o.url.includes("longpoll=true")&&(a=1e3*99);let g=e.relayWebsocket.sendCommand(n.accessToken,n.clientId,n.machineServerUrl,o.method,o.url,i,p,a);return new F(r=>{g.then(c=>{let u=new re;p!=null&&Object.keys(p).forEach(y=>{u.set(y,p[y])});let S=new se({body:c.body,status:c.statusCode,statusText:"OK",headers:u});r.next(S),r.complete()}).catch(c=>{r.error(new ie({error:c??"Unknown error",status:0,statusText:c??"Unknown error"}))})})}var He=(e,o)=>{let t={relayconfigState:s(v),defaultTimeout:s(f).defaultTimeout,relayWebsocket:s(O)},n=t.relayconfigState.config();if(t.relayconfigState.configLoaded!==null&&n===null){let i=new W;return t.relayconfigState.configLoaded.subscribe(p=>{p&&Pe(t,e,o).subscribe(i)}),i}return Pe(t,e,o)};var Ve={providers:[Z(),ue(Oe,fe(),he(de)),ae(ce(),pe([He,xe])),h,{provide:f,useValue:Ae},{provide:ee,useValue:ke()},{provide:be,useValue:{alertVariant:"simple"}},we,I,Te,oe,Se,te,Me,Ee]};ne(k,Ve);
1
+ import{b as Ie,c as ke}from"./chunk-GA3CAVSK.js";import{a as we}from"./chunk-NE255HQN.js";import{a as Ee}from"./chunk-B4QFOJXL.js";import{b as I}from"./chunk-UIVZWXBK.js";import"./chunk-E4CYVUYG.js";import{a as Me}from"./chunk-BPHX6VXP.js";import{b as Te}from"./chunk-XWML36YQ.js";import{a as V}from"./chunk-6Q6SSTBK.js";import{a as Se}from"./chunk-COEGVUM3.js";import"./chunk-YS4B2B5N.js";import"./chunk-OP7MDR2B.js";import"./chunk-PEOYNJJM.js";import{a as H}from"./chunk-NUV5LHQV.js";import{a as h,b as ye,c as v,d as Re,e as E}from"./chunk-PDZNQW6F.js";import{u as be,x as Ce}from"./chunk-CJKZ27FM.js";import{a as ge,e as ve}from"./chunk-KNSQLQC6.js";import{c as le,d as me,g as de,h as ue,i as he,j as fe}from"./chunk-CQJRBQ6I.js";import{a as ne}from"./chunk-V2UO7ES2.js";import{a as re,b as se,c as ie,e as ae,f as pe,g as ce}from"./chunk-HDDAGHHE.js";import{ha as te,ma as oe}from"./chunk-YF6JHIN5.js";import"./chunk-2YUSBRXY.js";import{$ as s,A as P,B,G as J,Gb as Y,M as T,Mc as Z,Nc as ee,O as K,W as C,Z as _,f as F,g as W,hb as Q,ia as q,ja as z,l as $,m as G,q as w,qa as d,sa as X}from"./chunk-K5XGRFWJ.js";import"./chunk-7CGTOI24.js";var k=class e{#e=s(h);#d=s(v);ngOnInit(){ye(),this.#d.fetchConfig(),this.#e.clearAllNotCurrentVersion()}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=Q({type:e,selectors:[["app-root"]],decls:1,vars:0,template:function(t,n){t&1&&Y(0,"router-outlet")},dependencies:[le],encapsulation:2})};var Ae={production:!0,baseUrl:"/api",machineServerUrl:"${WS_URL}",defaultTimeout:3e4};var f=new _("ENVIRONMENT");var A=class e{#e=s(ve);isLoaded=d(!1);webmodules=d(null);preload(o=!1){let t=this.#e.getApiV1Webmodules().pipe(K(n=>this.webmodules.set(n)),J(()=>this.isLoaded.set(!0)));if(o)return t;t.subscribe()}static \u0275fac=function(t){return new(t||e)};static \u0275prov=C({token:e,factory:e.\u0275fac,providedIn:"root"})};var Ue=()=>{let e=s(E);return e.token()?!0:e.checkProxyAuthed().pipe(T(o=>o?$(!0):e.refreshToken().pipe(w(()=>!0))))},je=()=>{let e=s(v),o=s(I),t=s(q),n=e.relayIsEnabled()?"longpoll":"websocket",i=[t.get(H).preload(!0),t.get(H).preloadFilterGroups(!0),t.get(A).preload(!0)];return e.configLoaded===null?P(i).pipe(w(()=>n)):e.configLoaded?.pipe(T(()=>P(i)))},Fe=()=>!0,Ne={path:"connect/:typeParam",loadComponent:()=>import("./chunk-MSIH2OJ5.js")},We=()=>{let e=s(h);return!e.getItem("locale")&&navigator.language&&e.setItem("locale",navigator.language),!0},Oe=[{path:"",children:[{path:"login",canActivate:[],loadComponent:()=>import("./chunk-PMF4FTBF.js")},{path:"logout",loadComponent:()=>import("./chunk-ZGQ2WCM2.js")},{path:"",canActivate:[Ue],children:[{path:"",canActivate:[je,Fe,We],children:[{path:"welcome",loadComponent:()=>import("./chunk-GNKCBZMS.js"),children:[{path:"",redirectTo:"select",pathMatch:"full"},{path:"select",loadComponent:()=>import("./chunk-AR5SEBWX.js")},Ne]},{path:"",loadComponent:()=>import("./chunk-ZXBKGNJU.js"),children:[{path:"",loadComponent:()=>import("./chunk-TV7OB7Y4.js")},Ne,{path:"destinations",loadComponent:()=>import("./chunk-T7RMSUHE.js")},{path:"add-backup",loadComponent:()=>import("./chunk-J7GH3G72.js")},{path:"backup/:id/export",loadComponent:()=>import("./chunk-VTOEFKZG.js")},{path:"backup/import",loadComponent:()=>import("./chunk-A23UTI46.js")},{path:"backup-draft/:id",loadComponent:()=>import("./chunk-3V25RAVK.js"),loadChildren:()=>import("./chunk-MKI54WTC.js")},{path:"backup/:id",loadComponent:()=>import("./chunk-3V25RAVK.js"),loadChildren:()=>import("./chunk-MKI54WTC.js")},{path:"backup/:id/log",loadComponent:()=>import("./chunk-EBKOJDCT.js")},{path:"backup/:id/database",loadComponent:()=>import("./chunk-JCXT6U5P.js")},{path:"backup/:id/commandline",loadComponent:()=>import("./chunk-5QGFYH2A.js")},{path:"backup/:id/commandline/:runId",loadComponent:()=>import("./chunk-KX3UP3HV.js")},{path:"backup/:id/delete",loadComponent:()=>import("./chunk-POVWDK74.js")},{path:"restore",children:[{path:"",loadComponent:()=>import("./chunk-XUCXLLB4.js")},{path:"from-config",loadComponent:()=>import("./chunk-3DHD6GQL.js")}]},{path:"restore-from-files",loadComponent:()=>import("./chunk-QW23XWNE.js"),loadChildren:()=>import("./chunk-HS3UDQIJ.js")},{path:"restore-draft/:id",loadComponent:()=>import("./chunk-QW23XWNE.js"),loadChildren:()=>import("./chunk-HS3UDQIJ.js")},{path:"restore/:id",loadComponent:()=>import("./chunk-QW23XWNE.js"),loadChildren:()=>import("./chunk-HS3UDQIJ.js")},{path:"status",loadComponent:()=>import("./chunk-N5XYG3QW.js")},{path:"settings",loadComponent:()=>import("./chunk-5UJN5SN4.js")},{path:"about",loadComponent:()=>import("./chunk-NQAD2FBX.js"),children:[{path:"",redirectTo:"general",pathMatch:"full"},{path:"general",loadComponent:()=>import("./chunk-VOXTAZLZ.js")},{path:"changelog",loadComponent:()=>import("./chunk-VQLI7RDY.js")},{path:"libraries",loadComponent:()=>import("./chunk-PNRFCYAE.js")},{path:"system-info",loadComponent:()=>import("./chunk-7VQ67PEZ.js")},{path:"server-settings",loadComponent:()=>import("./chunk-JNZJE3GC.js")},{path:"logs",loadChildren:()=>import("./chunk-UNQKMTFM.js")},{path:"crashlogs",loadComponent:()=>import("./chunk-TXCVGOPN.js")}]}]}]}]}]}];var xe=(e,o)=>{let t=s(E),n=s(me),i=s(h),p=s(f),m=i.getItem("locale"),a=s(Ce),g=Ie(m),r=ge.BASE||"",c=e.url===`${r}/api/v1/auth/login`,u=e.url===`${r}/api/v1/auth/logout`,S=e.url===`${r}/api/v1/auth/refresh`,y=e.url===`${r}/api/v1/progressstate`,x=e.url===`${r}/api/v1/remoteoperation/test`,M=e.url===`${r}/api/v1/filesystem/validate`,De=e.url.startsWith(`${r}/api/v2/`),L=t.token(),U=e,j=e.headers.has("custom-proxy-check")||L===Re;if(L&&e.url.startsWith(r+p.baseUrl)&&!j){let l=e.headers.set("Authorization",`Bearer ${L}`);m&&m!=="en-US"&&(l=l.set("X-Ui-Language",g)),U=e.clone({headers:l})}return o(U).pipe(w(l=>{if(l.type===4&&l.status===200&&De){let b=l.body;if(b?.Success===!1)throw{status:200,message:b?.Error??"Unknown error",error:{Error:b?.Error??"Unknown error"},requestBody:b}}return l}),B(l=>{let b=l.error?.Error||`Error Code: ${l.status}, Message: ${l.message}`;if(!j){let R=!0;if((y&&l.status===404||x||M)&&(R=!1),S&&l.status===401&&(R=!1,t.logout(),n.navigate(["/logout"])),!c&&!S&&!u&&l.status===401)return R=!1,t.refreshToken().pipe(T(()=>o(e.clone({headers:e.headers.set("Authorization",`Bearer ${t.token()}`)}))));R&&a.error(b)}return G(()=>({error:l,message:b}))}))};var N=class e{#e=s(z);showError(o){let t=this.#e.querySelector("body > .loading");if(!t)return;t.classList.add("has-error"),t.innerHTML="";let n=this.#e.createElement("div");n.classList.add("loading-title"),n.textContent="Unable to connect";let i=this.#e.createElement("div");i.classList.add("loading-error"),i.textContent=o||"Unknown error";let p=this.#e.createElement("button");p.type="button",p.classList.add("retry-button"),p.textContent="Retry",p.addEventListener("click",()=>{this.#e.defaultView?.location.reload()}),t.append(n,i,p)}static \u0275fac=function(t){return new(t||e)};static \u0275prov=C({token:e,factory:e.\u0275fac,providedIn:"root"})};var $e="1.0.0",Le=`portal-proxy-client-${V()}`,Ge=1,O=class e{#e=1e3;#d=s(f);#u=s(N);#o=d("disconnected");#h=d(this.#e);#a=d(!1);#n=d(!1);#p=d(null);#c=d(null);#s=!1;isConnectedToMachineServer=this.#n.asReadonly();wsState=this.#o.asReadonly();#l=[];#r={};#t=null;#f=new TextDecoder("utf-8");#m=null;#y=X(()=>{let o=this.#a(),t=this.#h(),n=this.#p(),i=this.#c();if(!n||!i||!o||!t||t<this.#e){this.#m&&window.clearInterval(this.#m);return}this.#m=window.setInterval(()=>{this.connectToMachineServer(n,i)},t)});#i(o){this.#s||(this.#s=!0,this.#u.showError(o||"Unable to connect to the server."))}#g(){this.#s||(this.#s=!0)}utf8Atob(o){let t=Uint8Array.from(atob(o),i=>i.charCodeAt(0)),n=this.#f.decode(t);return n?JSON.parse(n):null}connectToMachineServer(o,t,n){let i=n?.reconnect??!1,p=this.wsState();(p==="disconnected"||p==="error"||i)&&(this.#t?.close(),this.#t=null),!this.#t&&(this.#s=!1,this.#t=new WebSocket(t),this.#o.set("connecting"),this.#t.onopen=()=>{this.#o.set("connect"),this.#n.set(!0),this.#a.set(!1),this.#p.set(null),this.#c.set(null)},this.#t.onclose=()=>{this.#o.set("disconnected"),this.#n.set(!1),this.#p.set(o),this.#c.set(t),this.#a.set(!0)},this.#t.onerror=()=>{this.#o.set("error")},this.#t.onmessage=m=>{let a=JSON.parse(m.data);if(this.wsState()==="connect"){if(a.type!=="welcome"){this.disconnectFromMachineServer(`Unexpected message type, expected 'welcome' but got '${a.type}'`);return}let r={token:o,publicKey:"",clientVersion:$e,protocolVersion:Ge},c=this.createResponse(a,"authportal",r);this.#o.set("welcome"),this.#t?.send(c)}else if(this.wsState()==="welcome"){if(a.type!=="authportal"){this.disconnectFromMachineServer(`Unexpected message type, expected 'authportal' but got '${a.type}'`);return}var g=JSON.parse(a.payload??"");if(g.accepted===!1){this.#i("Authentication failed"),this.disconnectFromMachineServer("Authentication failed");return}for(this.#o.set("authenticated"),this.#n.set(!0);this.#l.length>0;){let r=this.#l.pop();r&&this.#r[r.messageId]&&this.activateCommand(r)}}else if(this.wsState()==="authenticated"){if(a.type!=="command"){console.warn(`Unexpected message type, expected 'command' but got '${a.type}'`);return}let r=this.#r[a.messageId];if(r){if(a.errorMessage)this.#i(a.errorMessage),r.reject(a.errorMessage);else{let c=JSON.parse(a.payload??"");c.statusCode>=400?this.#i(c.body||`Initial request failed with status code ${c.statusCode}`):this.#g(),c.body=c?.body==null?null:this.utf8Atob(c.body),r.resolve(c)}delete this.#r[a.messageId],window.clearTimeout(r.timer)}}})}disconnectFromMachineServer(o=null){o&&console.error(o),this.#t?.close(),this.#t=null,this.#o.set("disconnected"),this.#n.set(!1)}createResponse(o,t,n){let i={from:Le,to:o.from,type:t,messageId:o.messageId,payload:JSON.stringify(n)};return JSON.stringify(i)}sendCommand(o,t,n,i,p,m,a,g=5e3){return(this.wsState()==="disconnected"||this.wsState()==="error")&&this.connectToMachineServer(o,n),new Promise((r,c)=>{let u=V(),y={from:Le,to:t,type:"command",messageId:u,payload:JSON.stringify({method:i,path:p,body:m,headers:a})},x={resolve:r,reject:c,timer:window.setTimeout(()=>{let M=this.#r[u];M&&(delete this.#r[u],this.#i("The request timed out before receiving a response."),M.reject("Timeout"))},g)};this.#r[u]=x,this.#n()?this.activateCommand(y):this.#l.push(y)})}activateCommand(o){this.#t?.send(JSON.stringify(o))}static \u0275fac=function(t){return new(t||e)};static \u0275prov=C({token:e,factory:e.\u0275fac,providedIn:"root"})};function Be(e){if(typeof e!="string")return null;let t=new TextEncoder().encode(e);return window.btoa(String.fromCharCode(...t))}function Pe(e,o,t){let n=e.relayconfigState.config();if(n===null)return t(o);let i=Be(o.body),p={};o.headers.keys().forEach(r=>{p[r]=o.headers.get(r)??""});let m=o.headers.get("timeout"),a=m!==null?parseInt(m):e.defaultTimeout;o.url.startsWith("/api/v1/serverstate")&&o.url.includes("longpoll=true")&&(a=1e3*99);let g=e.relayWebsocket.sendCommand(n.accessToken,n.clientId,n.machineServerUrl,o.method,o.url,i,p,a);return new F(r=>{g.then(c=>{let u=new re;p!=null&&Object.keys(p).forEach(y=>{u.set(y,p[y])});let S=new se({body:c.body,status:c.statusCode,statusText:"OK",headers:u});r.next(S),r.complete()}).catch(c=>{r.error(new ie({error:c??"Unknown error",status:0,statusText:c??"Unknown error"}))})})}var He=(e,o)=>{let t={relayconfigState:s(v),defaultTimeout:s(f).defaultTimeout,relayWebsocket:s(O)},n=t.relayconfigState.config();if(t.relayconfigState.configLoaded!==null&&n===null){let i=new W;return t.relayconfigState.configLoaded.subscribe(p=>{p&&Pe(t,e,o).subscribe(i)}),i}return Pe(t,e,o)};var Ve={providers:[Z(),ue(Oe,fe(),he(de)),ae(ce(),pe([He,xe])),h,{provide:f,useValue:Ae},{provide:ee,useValue:ke()},{provide:be,useValue:{alertVariant:"simple"}},we,I,Te,oe,Se,te,Me,Ee]};ne(k,Ve);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duplicati/ngclient",
3
- "version": "0.0.223",
3
+ "version": "0.0.225",
4
4
  "license": "MIT",
5
5
  "contributors": [
6
6
  "sp90",
package/chunk-22JSUCD3.js DELETED
@@ -1 +0,0 @@
1
- import{a as A}from"./chunk-JB26UVQP.js";import"./chunk-FQINMZH2.js";import"./chunk-ZTENLO77.js";import"./chunk-ZKIZ7IIA.js";import"./chunk-AXG7WHBS.js";import"./chunk-AXLO5KWF.js";import"./chunk-BPHX6VXP.js";import"./chunk-XWML36YQ.js";import"./chunk-6Q6SSTBK.js";import"./chunk-COEGVUM3.js";import"./chunk-QGAOYLQU.js";import"./chunk-RM2KGG7J.js";import"./chunk-PEOYNJJM.js";import"./chunk-5W4BSVZJ.js";import"./chunk-QZEIAQ3M.js";import"./chunk-2KD757N6.js";import"./chunk-AFHEXZUZ.js";import"./chunk-JYRKUYG6.js";import"./chunk-VNXFTYQQ.js";import{U as S}from"./chunk-CJKZ27FM.js";import"./chunk-5E3B4AEF.js";import{c as u,e as N,f as c}from"./chunk-CQJRBQ6I.js";import"./chunk-V2UO7ES2.js";import"./chunk-HDDAGHHE.js";import"./chunk-YF6JHIN5.js";import"./chunk-2YUSBRXY.js";import{Eb as e,Fb as t,Gb as T,Wb as n,hb as g}from"./chunk-K5XGRFWJ.js";import"./chunk-7CGTOI24.js";var l=class s{static \u0275fac=function(o){return new(o||s)};static \u0275cmp=g({type:s,selectors:[["app-about"]],decls:19,vars:0,consts:()=>{let i;i=$localize`General`;let o;o=$localize`Changelog`;let r;r=$localize`Libraries`;let a;a=$localize`System info`;let C;C=$localize`Server settings`;let E;E=$localize`Logs`;let O;return O=$localize`Crash log`,[i,o,r,a,C,E,O,[1,"content"],[1,"primary"],["tab","","routerLink","/about/general","routerLinkActive","active"],["tab","","routerLink","/about/changelog","routerLinkActive","active"],["tab","","routerLink","/about/libraries","routerLinkActive","active"],["tab","","routerLink","/about/system-info","routerLinkActive","active"],["tab","","routerLink","/about/server-settings","routerLinkActive","active"],["tab","","routerLink","/about/logs","routerLinkActive","active"],["tab","","routerLink","/about/crashlogs","routerLinkActive","active"]]},template:function(o,r){o&1&&(T(0,"app-status-bar"),e(1,"div",7)(2,"sh-tabs",8)(3,"button",9),n(4,0),t(),e(5,"button",10),n(6,1),t(),e(7,"button",11),n(8,2),t(),e(9,"button",12),n(10,3),t(),e(11,"button",13),n(12,4),t(),e(13,"button",14),n(14,5),t(),e(15,"button",15),n(16,6),t()(),e(17,"section"),T(18,"router-outlet"),t()())},dependencies:[A,S,u,N,c],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;gap:0}.content[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding:1rem 0}.content[_ngcontent-%COMP%] sh-tabs[_ngcontent-%COMP%]{margin:0 2rem 2rem}.content[_ngcontent-%COMP%] section[_ngcontent-%COMP%]{padding:0}section[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding:2rem}"],changeDetection:0})};export{l as default};
package/chunk-2CKH2RVA.js DELETED
@@ -1 +0,0 @@
1
- import{a as wt,b as Ut,c as $t,m as bt,q as Lt,r as Rt}from"./chunk-RTGUYIWH.js";import"./chunk-PNQ5BDQN.js";import"./chunk-TPKKLIFK.js";import{b as Mt,c as yt,d as Ft}from"./chunk-X5W2K6AN.js";import"./chunk-6Q6SSTBK.js";import"./chunk-COEGVUM3.js";import"./chunk-QGAOYLQU.js";import"./chunk-RM2KGG7J.js";import"./chunk-PEOYNJJM.js";import"./chunk-QZEIAQ3M.js";import"./chunk-2KD757N6.js";import"./chunk-AFHEXZUZ.js";import"./chunk-JYRKUYG6.js";import"./chunk-VNXFTYQQ.js";import{B as ht,C as It,G as ft,H as Ot,K as Dt,L as Pt,V as xt,W as At,c as ct,e as dt,f as Ct,g as gt,i as ut,j as Tt,r as mt,s as pt,v as St,w as Nt,y as Et}from"./chunk-CJKZ27FM.js";import"./chunk-5E3B4AEF.js";import{b as _t,d as lt}from"./chunk-CQJRBQ6I.js";import"./chunk-V2UO7ES2.js";import"./chunk-HDDAGHHE.js";import"./chunk-YF6JHIN5.js";import"./chunk-2YUSBRXY.js";import{$ as P,Bb as M,Bc as rt,Cb as y,Db as E,Eb as a,Fb as r,Gb as h,Kb as v,Lb as G,Nb as N,Rc as $,Ta as l,Ub as f,Vb as O,Wb as S,Zc as st,_b as C,ac as s,ea as c,fa as d,hb as et,hc as nt,ia as tt,ic as it,lc as ot,oc as g,pc as D,qa as I,sa as R,tc as F,uc as w,vc as U,wc as at,xb as T,xc as k,yb as m,yc as x,zb as A}from"./chunk-K5XGRFWJ.js";import"./chunk-7CGTOI24.js";var vt=["testUrl"],Gt=()=>({maxWidth:"700px",width:"100%"});function kt(o,n){if(o&1){let t=N();a(0,"sh-card",30)(1,"div",32)(2,"h3"),S(3,4),r(),a(4,"button",33),C("click",function(){c(t);let i=s(3);return d(i.closeCustomList())}),g(5," Cancel "),a(6,"sh-icon"),g(7,"x-bold"),r()()(),a(8,"app-destination-list",34),C("setDestination",function(i){c(t);let _=s(3);return d(_.setDestination(i))}),r()()}}function Bt(o,n){if(o&1){let t=N();a(0,"div",40)(1,"sh-toggle",43),U("checkedChange",function(i){c(t);let _=s(2).$implicit;return w(_.save,i)||(_.save=i),d(i)}),a(2,"span",44),S(3,8),r()()()}if(o&2){let t=s(2).$implicit;l(),E("color","primary")("variant","raised"),F("checked",t.save)}}function Vt(o,n){if(o&1){let t=N();a(0,"sh-toggle-card",31),v(1,35),a(2,"app-destination-list-item",36)(3,"button",33),C("click",function(){c(t);let i=s().$index,_=s(2);return d(_.changeDestination(i))}),g(4,"Change"),r(),a(5,"sh-menu",37),C("click",function(i){return i.stopPropagation()}),a(6,"button",38)(7,"sh-icon"),g(8,"dots-three-vertical"),r()(),v(9,39),a(10,"button",33),C("click",function(){c(t);let i=s().$index,_=s(2);return d(_.openTargetUrlDialog(i))}),f(11,5),h(12,"sh-icon"),O(),r(),a(13,"button",33),C("click",function(){c(t);let i=s().$index,_=s(2);return d(_.copyTargetUrl(i))}),f(14,6),h(15,"sh-icon"),O(),r(),a(16,"button",33),C("click",function(){c(t);let i=s().$index,_=s(2);return d(_.removeDestination(i))}),f(17,7),h(18,"sh-icon"),O(),r(),G(),r()(),G(),T(19,Bt,4,3,"div",40),a(20,"app-test-url",41,1),C("targetUrlChange",function(i){c(t);let _=s().$index,p=s(2);return d(p.updateTargetUrl(_,i))})("testSignalChange",function(i){c(t);let _=s().$index,p=s(2);return d(p.updateTestState(_,i))}),r(),a(22,"app-single-destination",42),C("targetUrlChange",function(i){c(t);let _=s().$index,p=s(2);return d(p.updateTargetUrl(_,i))}),r()()}if(o&2){let t=s(),e=t.$implicit,i=t.$index,_=s(2);E("disableToggle",!0)("isActive",!0),l(2),E("targetUrl",e.url)("connectionStringId",e.connectionStringId),l(17),m(e.connectionStringId?-1:19),l(),E("targetUrl",e.url)("testSignal",_.testStates()[i]||null)("backupId",_.backupId())("connectionStringId",e.connectionStringId)("sourcePrefix",null)("suppressErrorDialogs",!1)("askToCreate",!0)("testExpectation",_.isNew()?"destinationEmpty":"any")("moduleType","Backend"),l(2),E("targetUrl",e.url)("useBackupState",!0)}}function Kt(o,n){if(o&1&&T(0,kt,9,0,"sh-card",30)(1,Vt,23,16,"sh-toggle-card",31),o&2){let t=n.$index,e=s(2);m(e.showCustomList()&&e.currentEditingIndex()===t?0:1)}}function Jt(o,n){if(o&1&&M(0,Kt,2,1,null,null,A),o&2){s();let t=x(0);y(t)}}function Xt(o,n){o&1&&(a(0,"div",45),h(1,"sh-progress-bar",46),a(2,"div",47)(3,"h3"),S(4,9),r()()())}function zt(o,n){o&1&&(a(0,"sh-divider"),S(1,12),r())}function Ht(o,n){if(o&1&&(a(0,"p",52),g(1),r()),o&2){let t=s().$implicit;l(),D(t.Description)}}function Wt(o,n){if(o&1&&(a(0,"p",52),g(1),r()),o&2){let t=s().$implicit,e=s(4);l(),D(e.getSimplePath(t.BaseUrl))}}function jt(o,n){if(o&1){let t=N();a(0,"app-destination-list-item",50),C("click",function(){let i=c(t).$implicit,_=s(4);return d(_.selectSavedDestination(i))})("keydown.enter",function(i){return i.target.click()})("keydown.space",function(i){return i.target.click()}),a(1,"h3",51),g(2),r(),T(3,Ht,2,1,"p",52)(4,Wt,2,1,"p",52),r()}if(o&2){let t=n.$implicit;E("targetUrl",t.BaseUrl),l(2),D(t.Name||t.BaseUrl),l(),m(t.Description?3:4)}}function Qt(o,n){if(o&1){let t=N();a(0,"sh-card",48),C("click",function(){c(t);let i=s(3);return d(i.toggleCustomList())})("keydown.enter",function(i){return i.target.click()})("keydown.space",function(i){return i.target.click()}),a(1,"sh-icon"),g(2,"plus-circle"),r(),a(3,"div",47)(4,"h3"),S(5,10),r(),a(6,"p"),S(7,11),r()()(),T(8,zt,2,0,"sh-divider"),M(9,jt,5,3,"app-destination-list-item",49,A)}if(o&2){let t=s(3);l(8),m(t.destinations().length>0?8:-1),l(),y(t.destinations())}}function qt(o,n){if(o&1&&T(0,Xt,5,0,"div",45)(1,Qt,11,1),o&2){let t=s(2);m(t.isLoadingDestinations()?0:1)}}function Yt(o,n){o&1&&(a(0,"sh-divider"),S(1,15),r())}function Zt(o,n){if(o&1&&(a(0,"p",52),g(1),r()),o&2){let t=s().$implicit;l(),D(t.Description)}}function te(o,n){if(o&1&&(a(0,"p",52),g(1),r()),o&2){let t=s().$implicit,e=s(3);l(),D(e.getSimplePath(t.BaseUrl))}}function ee(o,n){if(o&1){let t=N();a(0,"app-destination-list-item",57),C("click",function(){let i=c(t).$implicit,_=s(3);return d(_.selectSavedDestination(i))}),a(1,"h3",51),g(2),r(),T(3,Zt,2,1,"p",52)(4,te,2,1,"p",52),r()}if(o&2){let t=n.$implicit;E("targetUrl",t.BaseUrl),l(2),D(t.Name||t.BaseUrl),l(),m(t.Description?3:4)}}function ne(o,n){if(o&1){let t=N();a(0,"div",53)(1,"button",54),C("click",function(){c(t);let i=s(2);return d(i.closeCustomList())}),a(2,"sh-icon"),g(3,"arrow-left"),r(),g(4," Back "),r()(),a(5,"sh-card",55),C("click",function(){c(t);let i=s(2);return d(i.toggleCustomList())}),a(6,"sh-icon"),g(7,"plus-circle"),r(),a(8,"div",47)(9,"h3"),S(10,13),r(),a(11,"p"),S(12,14),r()()(),T(13,Yt,2,0,"sh-divider"),M(14,ee,5,3,"app-destination-list-item",56,A)}if(o&2){let t=s(2);l(13),m(t.destinations().length>0?13:-1),l(),y(t.destinations())}}function ie(o,n){if(o&1){let t=N();a(0,"div",53)(1,"button",54),C("click",function(){c(t);let i=s(3);return d(i.closeCustomList())}),a(2,"sh-icon"),g(3,"arrow-left"),r()(),a(4,"h3"),S(5,16),r()()}}function oe(o,n){if(o&1){let t=N();T(0,ie,6,0,"div",53),a(1,"app-destination-list",34),C("setDestination",function(i){c(t);let _=s(2);return d(_.setDestination(i))}),r()}if(o&2){let t=s(2),e=x(0);m(t.destinations().length>0||e.length>0?0:-1)}}function ae(o,n){if(o&1&&T(0,qt,2,1)(1,ne,16,1)(2,oe,2,1),o&2){let t=s(),e=x(1);m(!t.showCustomList()&&!e&&!t.isAddingNew()?0:t.isAddingNew()&&!t.showCustomList()?1:2)}}function re(o,n){if(o&1){let t=N();a(0,"div",25)(1,"button",58),C("click",function(){c(t);let i=s();return d(i.startAddingNew())}),a(2,"sh-icon"),g(3,"plus"),r(),g(4," Add another destination "),r()()}}function se(o,n){o&1&&(a(0,"h2"),S(1,19),r())}function _e(o,n){o&1&&(a(0,"h2"),S(1,20),r())}function le(o,n){if(o&1){let t=N();a(0,"sh-dialog",59),U("isOpenChange",function(i){c(t);let _=s();return w(_.targetUrlDialogOpen,i)||(_.targetUrlDialogOpen=i),d(i)}),a(1,"header",60)(2,"div",61),T(3,se,2,0,"h2")(4,_e,2,0,"h2"),a(5,"sh-alert",62),S(6,17),r()()(),a(7,"div",63)(8,"sh-form-field")(9,"textarea",64),U("ngModelChange",function(i){c(t);let _=s();return w(_.targetUrlCtrl,i)||(_.targetUrlCtrl=i),d(i)}),r()()(),a(10,"footer",65)(11,"button",27),C("click",function(){c(t);let i=s();return d(i.closeTargetUrlDialog(!1))}),g(12,"Cancel"),r(),a(13,"button",66),C("click",function(){c(t);let i=s();return d(i.closeTargetUrlDialog(!0))}),f(14,18),h(15,"sh-icon"),O(),r()()()}if(o&2){let t=s(),e=x(1);F("isOpen",t.targetUrlDialogOpen),E("options",rt(4,Gt)),l(3),m(e?4:3),l(6),F("ngModel",t.targetUrlCtrl)}}var b=new mt,Ae=(o={destinations:[]})=>b.group({destinations:b.array(o.destinations)}),Me=({key:o,customGroup:n,dynamicGroup:t,advancedGroup:e})=>b.group({destinationType:b.control(o),custom:n,dynamic:t,advanced:e}),B=class o{#n=P(lt);#i=P(_t);#t=P(Lt);#e=P(wt);injector=P(tt);testUrlComponents=st("testUrl");testStates=I([]);targetUrls=this.#t.targetUrls;targetUrlModel=$(()=>this.targetUrls()[0]?.url??null);targetUrlCtrl=I(null);targetUrlInitial=I(null);currentEditingIndex=I(null);targetUrlDialogOpen=I(!1);showCustomList=I(!1);isConnectionStringSaved=this.#t.isConnectionStringSaved;destinations=this.#e.destinations;isLoadingDestinations=this.#e.resourceDestinations.isLoading;isNew=this.#t.isNew;backupId=this.#t.backupId;selectedDestinationType=$(()=>{let n=this.targetUrlModel();return n?yt(n)??null:null});isLoadingDestinationEffect=R(()=>{let n=this.isLoadingDestinations(),t=this.destinations(),e=this.targetUrls();!n&&t.length==0&&e.length==0&&this.toggleCustomList()});selectedDestinationTypeOption=$(()=>{let n=this.selectedDestinationType();return n?{key:n.customKey??n.key,customKey:n.customKey??null,displayName:n.displayName,description:n.description,icon:n.icon}:null});getConnectionString(n){let t=this.#e.destinations().find(e=>e.ID===n);return console.log("connection",t),t}getSimplePath(n){return n?Mt(n):""}copyTargetUrl(n=0){let t=this.targetUrls()[n]?.url;t&&navigator.clipboard.writeText(t)}openTargetUrlDialog(n=0){let t=this.targetUrls()[n]?.url??null;this.targetUrlCtrl.set(t),this.targetUrlInitial.set(t),this.currentEditingIndex.set(n),this.targetUrlDialogOpen.set(!0)}closeTargetUrlDialog(n=!1){this.targetUrlDialogOpen.set(!1);let t=this.targetUrlCtrl(),e=this.targetUrlInitial();if(!n||t===e||!t)return;let i=this.currentEditingIndex();if(i!==null){let _=this.targetUrls()[i]?.connectionStringId??null,p=this.targetUrls()[i]?.urlKey??null;this.#t.updateTargetUrl(i,t,_,p)}else this.#t.setTargetUrl(t);this.currentEditingIndex.set(null)}setDestination(n){let t=Ft(n??"");if(!t)return;let e=t.mapper.default?t.mapper.default(this.#t.backupName()??""):`${n}://`;if(this.currentEditingIndex()!==null){this.#t.updateTargetUrl(this.currentEditingIndex(),e,null,null),this.updateTestState(this.currentEditingIndex(),null),this.currentEditingIndex.set(null),this.showCustomList.set(!1);return}this.showCustomList()?(this.#t.addTargetUrl(e,null,null),this.showCustomList.set(!1),this.isAddingNew.set(!1)):(this.#t.addTargetUrl(e,null,null),this.showCustomList.set(!1),this.isAddingNew.set(!1))}targetUrlsEffect=R(()=>{let n=this.targetUrls();this.testStates.update(t=>{if(t.length===n.length)return t;let e=[...t];if(e.length<n.length)for(let i=e.length;i<n.length;i++)e.push(null);else e.length=n.length;return e})});selectSavedDestination(n){n.BaseUrl&&n.BaseUrl&&(this.targetUrls().length===0?this.#t.setTargetUrl(n.BaseUrl,!0,n.ID,null):(this.#t.addTargetUrl(n.BaseUrl,n.ID,null),this.showCustomList.set(!1),this.isAddingNew.set(!1)))}toggleCustomList(){this.currentEditingIndex.set(null),this.showCustomList.set(!0)}isAddingNew=I(!1);startAddingNew(){this.isAddingNew.set(!0),this.destinations().length===0&&this.showCustomList.set(!0)}changeDestination(n){this.currentEditingIndex.set(n),this.showCustomList.set(!0)}closeCustomList(){this.showCustomList.set(!1),this.currentEditingIndex.set(null),this.isAddingNew.set(!1)}removeDestination(n){this.#t.removeTargetUrl(n)}updateTargetUrl(n,t){if(!t)return;let e=this.targetUrls()[n]?.connectionStringId??null,i=this.targetUrls()[n]?.urlKey??null;this.#t.updateTargetUrl(n,t,e,i),this.updateTestState(n,null)}updateTestState(n,t){this.testStates.update(e=>{let i=[...e];return i[n]=t,i})}toggleSave(n){this.#t.toggleSaveConnectionString(n)}goBack(){this.#n.navigate(["general"],{relativeTo:this.#i.parent})}async next(){if(!this.#t.isNew()){this.#o();return}let t=this.testUrlComponents(),e=this.testStates();for(let i=0;i<t.length;i++){let _=t[i],p=this.testStates()[i];if(p&&typeof p!="string"&&p.action==="success")continue;if((await _.testDestination(!1))?.action!=="success")return}this.#o()}#o(){this.#t.shouldAutoSave()&&this.#t.submit(!0),this.#n.navigate(["source-data"],{relativeTo:this.#i.parent})}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=et({type:o,selectors:[["app-destination"]],viewQuery:function(t,e){t&1&&nt(e.testUrlComponents,vt,5),t&2&&it()},decls:19,vars:9,consts:()=>{let n;n=$localize`${"\uFFFD#14\uFFFD"}:START_TAG_SH_ICON:arrow-left${"\uFFFD/#14\uFFFD"}:CLOSE_TAG_SH_ICON: Go back `;let t;t=$localize`${"\uFFFD#17\uFFFD"}:START_TAG_SH_ICON:arrow-right${"\uFFFD/#17\uFFFD"}:CLOSE_TAG_SH_ICON: Continue `;let e;e=$localize`Change destination type`;let i;i=$localize`${"\uFFFD#12\uFFFD"}:START_TAG_SH_ICON:link${"\uFFFD/#12\uFFFD"}:CLOSE_TAG_SH_ICON: Edit target URL `;let _;_=$localize`${"\uFFFD#15\uFFFD"}:START_TAG_SH_ICON:copy${"\uFFFD/#15\uFFFD"}:CLOSE_TAG_SH_ICON: Copy URL to clipboard `;let p;p=$localize`${"\uFFFD#18\uFFFD"}:START_TAG_SH_ICON:trash${"\uFFFD/#18\uFFFD"}:CLOSE_TAG_SH_ICON: Remove `;let L;L=$localize`Save as connection string`;let V;V=$localize`Loading destinations...`;let K;K=$localize`Configure a new destination`;let J;J=$localize`Configure a one-off or new storage location.`;let X;X=$localize`Or select a saved destination`;let z;z=$localize`Configure a new destination`;let H;H=$localize`Configure a one-off or new storage location.`;let W;W=$localize`Or select a saved destination`;let j;j=$localize`Select storage type`;let Q;Q=$localize`Be careful, this will overwrite everything you have in your destination.`;let q;q=$localize` Override target URL ${"\uFFFD#15\uFFFD"}:START_TAG_SH_ICON:swap${"\uFFFD/#15\uFFFD"}:CLOSE_TAG_SH_ICON:`;let Y;Y=$localize`Set target URL`;let Z;return Z=$localize`Edit target URL`,[["formRef",""],["testUrl",""],n,t,e,i,_,p,L,V,K,J,X,z,H,W,j,Q,q,Y,Z,["autocomplete","off",3,"submit"],[2,"position","absolute","left","-9999px","width","1px","height","1px","overflow","hidden"],["type","text","name","fake_email","tabindex","-1"],["type","password","name","fake_password","tabindex","-1"],[1,"add-destination-container"],[1,"form-actions"],["shButton","","type","button",3,"click"],["shButton","","type","submit",1,"raised","primary",3,"disabled"],[3,"isOpen","options"],[1,"destination-card","type-c","editing"],[1,"destination-card","type-a",3,"disableToggle","isActive"],[1,"editing-header"],["shButton","","type","button",1,"small",3,"click"],[3,"setDestination"],["title",""],[3,"targetUrl","connectionStringId"],[1,"actions",3,"click"],["shButton","","type","button",1,"small","icon-only"],["menu",""],[1,"options-row",2,"margin","0 1rem 1rem 1rem"],[3,"targetUrlChange","testSignalChange","targetUrl","testSignal","backupId","connectionStringId","sourcePrefix","suppressErrorDialogs","askToCreate","testExpectation","moduleType"],[3,"targetUrlChange","targetUrl","useBackupState"],[3,"checkedChange","color","variant","checked"],["label",""],[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","tabindex","0",1,"actionable",3,"targetUrl"],["variant","type-a","tabindex","0",1,"actionable",3,"click","keydown.enter","keydown.space","targetUrl"],["displayName",""],["description",""],[1,"custom-list-header"],["shButton","","iconOnly","","type","button",1,"ghost",3,"click"],[1,"type-a","actionable","add-new",3,"click"],["variant","type-a",1,"actionable",3,"targetUrl"],["variant","type-a",1,"actionable",3,"click","targetUrl"],["shButton","","type","button",1,"secondary",3,"click"],[3,"isOpenChange","isOpen","options"],["header",""],[1,"target-dialog-header"],[1,"warn"],["content",""],["id","targetUrl","autocomplete","off",3,"ngModelChange","ngModel"],["footer",""],["shButton","","type","submit",1,"raised","primary",3,"click"]]},template:function(t,e){if(t&1&&(at(0)(1),a(2,"form",21,0),C("submit",function(){return e.next()}),a(4,"div",22),h(5,"input",23)(6,"input",24),r(),a(7,"header"),T(8,Jt,2,0),r(),T(9,ae,3,1),T(10,re,5,0,"div",25),a(11,"div",26)(12,"button",27),C("click",function(){return e.goBack()}),f(13,2),h(14,"sh-icon"),O(),r(),a(15,"button",28),f(16,3),h(17,"sh-icon"),O(),r()()(),T(18,le,16,5,"sh-dialog",29)),t&2){let i=k(e.targetUrls());l();let _=k(i.length>0);l(7),m(e.currentEditingIndex()!==null||!e.showCustomList()&&!e.isAddingNew()?8:-1),l(),m((!_||e.showCustomList()||e.isAddingNew())&&e.currentEditingIndex()===null?9:-1),l(),m(_&&!e.showCustomList()&&!e.isAddingNew()?10:-1),l(5),ot("loading",e.isNew()&&e.testStates().length>0&&e.testStates()[0]==="testing"),E("disabled",!_),l(3),m(e.targetUrlDialogOpen()?18:-1)}},dependencies:[Rt,$t,Ut,bt,pt,Tt,ct,dt,Ct,ut,gt,ht,Ot,Dt,St,Et,Nt,It,ft,Pt,xt,At],styles:["[_nghost-%COMP%]{display:block;width:100%;max-width:40rem;padding:2.5rem 2.5rem 0}header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%], header[_ngcontent-%COMP%] sh-alert[_ngcontent-%COMP%]{width:100%}header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;gap:.5rem}header[_ngcontent-%COMP%] p[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{cursor:pointer;text-decoration:underline}header[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem;height:100%;padding:0 0 2.5rem}.current-destination[_ngcontent-%COMP%]{margin:1rem 0 0}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between;padding-bottom:1.5rem}.most-common-destinations[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.most-common-destinations[_ngcontent-%COMP%] .tile[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;padding:1rem;border:1px solid var(--base-4);border-radius:var(--shape-3);box-shadow:var(--box-shadow-10);background-color:var(--base-2);cursor:pointer}.most-common-destinations[_ngcontent-%COMP%] .tile[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{font:var(--paragraph-10);margin:0}.target-dialog-header[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:.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}.add-new[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1.5rem;padding:3rem 1.5rem;background:var(--base-1);color:var(--primary-8);cursor:pointer}.add-new[_ngcontent-%COMP%] sh-icon[_ngcontent-%COMP%]{font-size:2.5rem;opacity:.8}.actionable[_ngcontent-%COMP%]{cursor:pointer}.actionable[_ngcontent-%COMP%]:hover{--card-shp: 0}.custom-list-header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem;margin-bottom:.5rem}.save-connection-string[_ngcontent-%COMP%]{margin:1rem 0}sh-card.destination-card[_ngcontent-%COMP%]{padding:1.5rem}.destination-card[_ngcontent-%COMP%]{position:relative;overflow:visible}.destination-card[_ngcontent-%COMP%] app-destination-list-item[_ngcontent-%COMP%]{width:100%}.destination-card[_ngcontent-%COMP%] .card-header-content[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%}.destination-card[_ngcontent-%COMP%] .card-header-content[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{font:var(--title-30);margin:0}.destination-card[_ngcontent-%COMP%] .card-header-content[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%]{position:static;transform:none}.destination-card[_ngcontent-%COMP%] .editing-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.destination-card[_ngcontent-%COMP%] .editing-header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{font:var(--paragraph-10);margin:0}.destination-card[_ngcontent-%COMP%] sh-toggle-card[_ngcontent-%COMP%] .header{width:100%}.actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}"],changeDetection:0})};export{Ae as createDestinationForm,Me as createDestinationFormGroup,B as default};
package/chunk-2VLJLCTO.js DELETED
@@ -1 +0,0 @@
1
- import{a as T}from"./chunk-QZEIAQ3M.js";import"./chunk-2KD757N6.js";import"./chunk-AFHEXZUZ.js";import"./chunk-JYRKUYG6.js";import"./chunk-VNXFTYQQ.js";import{B as f,G as M}from"./chunk-CJKZ27FM.js";import"./chunk-5E3B4AEF.js";import{d as p,e as h}from"./chunk-CQJRBQ6I.js";import"./chunk-V2UO7ES2.js";import"./chunk-HDDAGHHE.js";import"./chunk-YF6JHIN5.js";import"./chunk-2YUSBRXY.js";import{$ as a,Eb as e,Fb as t,Gb as _,Ta as E,Wb as r,_b as c,hb as u,lc as S,oc as g,qa as d}from"./chunk-K5XGRFWJ.js";import"./chunk-7CGTOI24.js";var m=class C{#e=a(T);#n=a(p);hoveringConnect=d(!1);setWelcomeShown(){this.#e.setShownWelcomePage().subscribe(()=>{this.#n.navigate([""])})}static \u0275fac=function(o){return new(o||C)};static \u0275cmp=u({type:C,selectors:[["app-select"]],decls:21,vars:2,consts:()=>{let l;l=$localize`Connect to console`;let o;o=$localize`Consolidate all your backup reports in one place.`;let n;n=$localize`Connection link`;let i;return i=$localize`For enterprises that are onboarding many machines.`,[l,o,n,i,[1,"left"],[1,"actionables"],["shButton","","routerLink","/welcome/connect/logon",1,"connect","outlined","primary",3,"mouseenter","mouseleave"],[1,"action"],["shButton","","routerLink","/welcome/connect/link",1,"connect","outlined",3,"mouseenter","mouseleave"],[1,"space"],[1,"without-connecting",3,"click"],[1,"right"],["src","/assets/images/console.avif","alt",""]]},template:function(o,n){o&1&&(e(0,"section",4)(1,"div",5)(2,"button",6),c("mouseenter",function(){return n.hoveringConnect.set(!0)})("mouseleave",function(){return n.hoveringConnect.set(!1)}),e(3,"div",7)(4,"h2"),r(5,0),t(),e(6,"p"),r(7,1),t()()(),e(8,"sh-divider"),g(9,"or"),t(),e(10,"button",8),c("mouseenter",function(){return n.hoveringConnect.set(!0)})("mouseleave",function(){return n.hoveringConnect.set(!1)}),e(11,"div",7)(12,"h2"),r(13,2),t(),e(14,"p"),r(15,3),t()()(),_(16,"div",9),e(17,"p",10),c("click",function(){return n.setWelcomeShown()}),g(18,"Proceed without connecting to console"),t()()(),e(19,"section",11),_(20,"img",12),t()),o&2&&(E(19),S("hovering",n.hoveringConnect()))},dependencies:[h,M,f],styles:["[_nghost-%COMP%]{display:grid;grid-template-columns:1fr 2fr;grid-template-rows:1fr;height:100vh;overflow:hidden;padding:2rem}@media only screen and (max-width:768px){[_nghost-%COMP%]{display:flex;flex-direction:column-reverse;height:auto;padding:4rem 1rem;gap:2rem}}.left[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-end;justify-content:center}@media only screen and (max-width:768px){.left[_ngcontent-%COMP%]{align-items:flex-start}}.left[_ngcontent-%COMP%] .actionables[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:1rem}@media only screen and (max-width:768px){.left[_ngcontent-%COMP%] .actionables[_ngcontent-%COMP%]{width:100%}}.left[_ngcontent-%COMP%] .actionables[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{width:100%}.left[_ngcontent-%COMP%] .actionables[_ngcontent-%COMP%] sh-divider[_ngcontent-%COMP%]{width:100%}.left[_ngcontent-%COMP%] .actionables[_ngcontent-%COMP%] .space[_ngcontent-%COMP%]{width:100%;height:2.5rem}.right[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;padding:2rem 2rem 2rem 0}.right.hovering[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{border-color:var(--primary-8)}.right[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-width:90%;max-height:90%;object-fit:contain;border:1px solid var(--base-3);border-radius:var(--shape-2);box-shadow:var(--box-shadow-20);transition:border-color .2s ease-in-out}.connect[_ngcontent-%COMP%]{height:auto;padding:2rem}.without-connecting[_ngcontent-%COMP%]{text-decoration:underline;cursor:pointer}.without-connecting[_ngcontent-%COMP%]:hover{color:var(--primary-8)}"],changeDetection:0})};export{m as default};
package/chunk-35ZRBDWM.js DELETED
@@ -1 +0,0 @@
1
- import{a as Se}from"./chunk-JB26UVQP.js";import"./chunk-FQINMZH2.js";import"./chunk-ZTENLO77.js";import"./chunk-ZKIZ7IIA.js";import{a as Ce,b as pe,c as me,m as k,r as Te}from"./chunk-RTGUYIWH.js";import"./chunk-PNQ5BDQN.js";import"./chunk-TPKKLIFK.js";import{b as de,c as ue,d as ge}from"./chunk-X5W2K6AN.js";import"./chunk-AXG7WHBS.js";import{a as ce}from"./chunk-AXLO5KWF.js";import"./chunk-BPHX6VXP.js";import"./chunk-XWML36YQ.js";import"./chunk-6Q6SSTBK.js";import"./chunk-COEGVUM3.js";import"./chunk-QGAOYLQU.js";import"./chunk-RM2KGG7J.js";import{a as $}from"./chunk-PEOYNJJM.js";import"./chunk-5W4BSVZJ.js";import"./chunk-QZEIAQ3M.js";import"./chunk-2KD757N6.js";import"./chunk-AFHEXZUZ.js";import"./chunk-JYRKUYG6.js";import"./chunk-VNXFTYQQ.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-CJKZ27FM.js";import"./chunk-5E3B4AEF.js";import"./chunk-CQJRBQ6I.js";import"./chunk-V2UO7ES2.js";import"./chunk-HDDAGHHE.js";import"./chunk-YF6JHIN5.js";import"./chunk-2YUSBRXY.js";import{$ as O,Bb as J,Cb as X,Db as E,Eb as a,Fb as _,Gb as x,Nb as T,Rc as b,Ta as c,Ub as y,Vb as B,Wb as d,Xb as K,Yb as W,Yc as Y,Zb as j,_b as m,ac as r,ea as u,fa as g,hb as V,hc as Q,ic as q,lc as H,oc as D,pc as P,qa as f,sa as G,tc as A,uc as N,vc as M,xb as C,yb as p,zb as z}from"./chunk-K5XGRFWJ.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};
package/chunk-3D6EL52D.js DELETED
@@ -1 +0,0 @@
1
- import{a,b}from"./chunk-KI2HT2TI.js";import"./chunk-MJPEKJ3T.js";import"./chunk-RTGUYIWH.js";import"./chunk-PNQ5BDQN.js";import"./chunk-TPKKLIFK.js";import"./chunk-X5W2K6AN.js";import"./chunk-6Q6SSTBK.js";import"./chunk-COEGVUM3.js";import"./chunk-QGAOYLQU.js";import"./chunk-RM2KGG7J.js";import"./chunk-PEOYNJJM.js";import"./chunk-QZEIAQ3M.js";import"./chunk-2KD757N6.js";import"./chunk-AFHEXZUZ.js";import"./chunk-JYRKUYG6.js";import"./chunk-VNXFTYQQ.js";import"./chunk-CJKZ27FM.js";import"./chunk-5E3B4AEF.js";import"./chunk-CQJRBQ6I.js";import"./chunk-V2UO7ES2.js";import"./chunk-HDDAGHHE.js";import"./chunk-YF6JHIN5.js";import"./chunk-2YUSBRXY.js";import"./chunk-K5XGRFWJ.js";import"./chunk-7CGTOI24.js";export{a as createRestoreOptionsForm,b as default};
package/chunk-4IRGFIAU.js DELETED
@@ -1 +0,0 @@
1
- import{g as a,h as b,i as c,j as d}from"./chunk-RTGUYIWH.js";import"./chunk-PNQ5BDQN.js";import"./chunk-TPKKLIFK.js";import"./chunk-X5W2K6AN.js";import"./chunk-6Q6SSTBK.js";import"./chunk-COEGVUM3.js";import"./chunk-QGAOYLQU.js";import"./chunk-RM2KGG7J.js";import"./chunk-PEOYNJJM.js";import"./chunk-QZEIAQ3M.js";import"./chunk-2KD757N6.js";import"./chunk-AFHEXZUZ.js";import"./chunk-JYRKUYG6.js";import"./chunk-VNXFTYQQ.js";import"./chunk-CJKZ27FM.js";import"./chunk-5E3B4AEF.js";import"./chunk-CQJRBQ6I.js";import"./chunk-V2UO7ES2.js";import"./chunk-HDDAGHHE.js";import"./chunk-YF6JHIN5.js";import"./chunk-2YUSBRXY.js";import"./chunk-K5XGRFWJ.js";import"./chunk-7CGTOI24.js";export{a as SCHEDULE_DEFAULT_OPTIONS,c as SCHEDULE_FIELD_DEFAULTS,d as default,b as scheduleOptionToSchedule};
package/chunk-6JGOGUIX.js DELETED
@@ -1 +0,0 @@
1
- import{c as a,d as b}from"./chunk-KI2HT2TI.js";import"./chunk-MJPEKJ3T.js";import"./chunk-RTGUYIWH.js";import"./chunk-PNQ5BDQN.js";import"./chunk-TPKKLIFK.js";import"./chunk-X5W2K6AN.js";import"./chunk-6Q6SSTBK.js";import"./chunk-COEGVUM3.js";import"./chunk-QGAOYLQU.js";import"./chunk-RM2KGG7J.js";import"./chunk-PEOYNJJM.js";import"./chunk-QZEIAQ3M.js";import"./chunk-2KD757N6.js";import"./chunk-AFHEXZUZ.js";import"./chunk-JYRKUYG6.js";import"./chunk-VNXFTYQQ.js";import"./chunk-CJKZ27FM.js";import"./chunk-5E3B4AEF.js";import"./chunk-CQJRBQ6I.js";import"./chunk-V2UO7ES2.js";import"./chunk-HDDAGHHE.js";import"./chunk-YF6JHIN5.js";import"./chunk-2YUSBRXY.js";import"./chunk-K5XGRFWJ.js";import"./chunk-7CGTOI24.js";export{a as createEncryptionForm,b as default};
package/chunk-6RIKNAXD.js DELETED
@@ -1 +0,0 @@
1
- import{d as a,e as b,f as c}from"./chunk-RTGUYIWH.js";import"./chunk-PNQ5BDQN.js";import"./chunk-TPKKLIFK.js";import"./chunk-X5W2K6AN.js";import"./chunk-6Q6SSTBK.js";import"./chunk-COEGVUM3.js";import"./chunk-QGAOYLQU.js";import"./chunk-RM2KGG7J.js";import"./chunk-PEOYNJJM.js";import"./chunk-QZEIAQ3M.js";import"./chunk-2KD757N6.js";import"./chunk-AFHEXZUZ.js";import"./chunk-JYRKUYG6.js";import"./chunk-VNXFTYQQ.js";import"./chunk-CJKZ27FM.js";import"./chunk-5E3B4AEF.js";import"./chunk-CQJRBQ6I.js";import"./chunk-V2UO7ES2.js";import"./chunk-HDDAGHHE.js";import"./chunk-YF6JHIN5.js";import"./chunk-2YUSBRXY.js";import"./chunk-K5XGRFWJ.js";import"./chunk-7CGTOI24.js";export{b as NONE_OPTION,a as createGeneralForm,c as default};
package/chunk-6V4CDRLK.js DELETED
@@ -1 +0,0 @@
1
- import{a as xe,c as Ae,d as v}from"./chunk-PNQ5BDQN.js";import{a as we}from"./chunk-AXLO5KWF.js";import"./chunk-6Q6SSTBK.js";import"./chunk-5W4BSVZJ.js";import{b as De}from"./chunk-2KD757N6.js";import"./chunk-AFHEXZUZ.js";import"./chunk-JYRKUYG6.js";import"./chunk-VNXFTYQQ.js";import{A as ge,B as Oe,H as Ne,L as he,W as fe,Y as Re,b as ce,c as pe,d as g,e as Fe,f as de,j as ue,p as Te,q as Ce,r as Ee,t as Pe,v as Se,w as me}from"./chunk-CJKZ27FM.js";import{a as b,d as Ie}from"./chunk-5E3B4AEF.js";import{b as ae,d as le,e as _e}from"./chunk-CQJRBQ6I.js";import"./chunk-V2UO7ES2.js";import{a as re,d as se}from"./chunk-HDDAGHHE.js";import"./chunk-YF6JHIN5.js";import"./chunk-2YUSBRXY.js";import{$ as E,Bc as ie,Db as S,Eb as s,Fb as r,G as $,Gb as _,M as Q,Nb as y,Rc as A,Ta as a,Ub as c,Vb as p,Wb as m,Xb as L,Yb as X,Zb as G,_b as h,ac as u,ea as w,fa as D,hb as Y,lc as B,oc as x,pc as Z,qa as P,rc as ee,sa as M,tc as oe,uc as te,vc as ne,xb as F,yb as d}from"./chunk-K5XGRFWJ.js";import{a as W}from"./chunk-7CGTOI24.js";var $e=()=>["/"];function Me(t,o){t&1&&(s(0,"sh-toggle",25),c(1,5),_(2,"input",28),p(),r())}function ye(t,o){t&1&&(s(0,"span",31),m(1,9),r())}function Le(t,o){if(t&1&&(s(0,"span",31),m(1,10),r()),t&2){let e=u(2);a(),L(e.exportForm.controls.password.errors==null?null:e.exportForm.controls.password.errors.minlength.requiredLength),X(1)}}function Xe(t,o){if(t&1&&_(0,"sh-progress-bar",38),t&2){let e=u(2);B("error",e.calculatePasswordStrength()===1)("warn",e.calculatePasswordStrength()===2)("primary",e.calculatePasswordStrength()===4)("success",e.calculatePasswordStrength()===5),S("value",e.calculatePasswordStrength()*(100/5))}}function Ge(t,o){t&1&&(s(0,"span",31),m(1,11),r())}function Be(t,o){t&1&&(s(0,"span",31),m(1,12),r())}function be(t,o){if(t&1&&(s(0,"span",31),m(1,13),r()),t&2){let e=u(2);a(),L(e.exportForm.controls.repeatPassword.errors==null?null:e.exportForm.controls.repeatPassword.errors.minlength.requiredLength),X(1)}}function ve(t,o){t&1&&(c(0,7,1),_(1,"sh-icon"),p())}function ke(t,o){t&1&&(c(0,7,2),_(1,"sh-icon"),p())}function Ue(t,o){t&1&&(c(0,14,1),_(1,"sh-icon",40),p())}function Ke(t,o){t&1&&(c(0,14,2),_(1,"sh-icon"),p())}function Je(t,o){if(t&1){let e=y();s(0,"button",39),h("click",function(){w(e);let i=u(2);return D(i.copyPassword())}),c(1,14),F(2,Ue,2,0)(3,Ke,2,0),p(),r()}if(t&2){let e=u(2);a(2),d(e.copiedPassword()?2:3)}}function He(t,o){t&1&&(s(0,"sh-alert",37),m(1,15),r())}function ze(t,o){if(t&1){let e=y();s(0,"div",26)(1,"sh-form-field")(2,"label",29),c(3,6),_(4,"sup"),p(),r(),_(5,"input",30),F(6,ye,2,0,"span",31)(7,Le,2,1,"span",31),r(),F(8,Xe,1,9,"sh-progress-bar",32),s(9,"sh-form-field"),_(10,"input",33),F(11,Ge,2,0,"span",31)(12,Be,2,0,"span",31)(13,be,2,1,"span",31),r(),s(14,"div",34)(15,"button",35),h("click",function(){w(e);let i=u();return D(i.showPassword.set(!i.showPassword()))}),c(16,7),F(17,ve,2,0)(18,ke,2,0),p(),r(),s(19,"button",35),h("click",function(){w(e);let i=u();return D(i.generatePassword())}),c(20,8),_(21,"sh-icon"),p(),r(),F(22,Je,4,1,"button",36),r(),F(23,He,2,0,"sh-alert",37),r()}if(t&2){let e=u();a(5),S("type",e.showPassword()?"text":"password"),a(),d(e.exportForm.controls.password.errors!=null&&e.exportForm.controls.password.errors.required?6:e.exportForm.controls.password.errors!=null&&e.exportForm.controls.password.errors.minlength?7:-1),a(2),d(e.exportForm.value.password?8:-1),a(2),S("type",e.showPassword()?"text":"password"),a(),d(e.exportForm.value.repeatPassword&&e.exportForm.value.repeatPassword!==e.exportForm.value.password?11:e.exportForm.controls.repeatPassword.errors!=null&&e.exportForm.controls.repeatPassword.errors.required?12:e.exportForm.controls.repeatPassword.errors!=null&&e.exportForm.controls.repeatPassword.errors.minlength?13:-1),a(6),d(e.showPassword()?17:18),a(5),d(e.showCopyPassword()?22:-1),a(),d(e.exportForm.value.password&&e.exportForm.value.password===e.exportForm.value.repeatPassword?23:-1)}}function Ve(t,o){if(t&1&&(s(0,"div",27)(1,"code"),x(2),r()()),t&2){let e=u();a(2),Z(e.exportedCmd())}}var f=new Ee,k=class t{#o=E(xe);#t=E(Ie);#e=E(ae);#n=E(le);#i=E(se);#r=E(we);isExporting=P(!1);exportType=P("file");exportedCmd=P(null);exportForm=f.group({exportPasswords:f.control(!0),encryption:f.control(!1,[g.required,Ae()]),password:f.control("",[v("encryption",!0,[g.required,g.minLength(3)])]),repeatPassword:f.control("",[v("encryption",!0,[g.required,g.minLength(3)])])});exportFormSignal=De(this.exportForm.valueChanges);encryptionFieldSignal=A(()=>(this.exportFormSignal()?.encryption??!1)&&this.exportType()==="file");activeBackup=A(()=>this.#r.backups().find(o=>o.Backup?.ID===this.#e.snapshot.params.id));showPassword=P(!1);copiedPassword=P(!1);showCopyPassword=P(!1);calculatePasswordStrength=A(()=>{let e=this.exportFormSignal()?.password??"";return this.#o.calculatePasswordStrength(e)});showPasswordEffect=M(()=>{this.showPassword()&&this.exportForm.updateValueAndValidity()});disablePasswordForCommandLine=M(()=>{this.exportType()==="cmd"&&this.exportForm.controls.encryption.setValue(!1)});submit(){this.isExporting.set(!0),this.exportType()==="file"?this.#t.postApiV1AuthIssuetokenByOperation({operation:"export"}).pipe(Q(o=>{let e=T=>{let O=Object.entries(T);return O?"?"+O.filter(([N,C])=>C!=null).map(([N,C])=>`${encodeURIComponent(N)}=${encodeURIComponent(C)}`).join("&"):""},n=this.exportFormSignal()?.password?.length?this.exportFormSignal()?.password:void 0,i=b.BASE||"";return this.#i.get(`${i}/api/v1/backup/${this.#e.snapshot.params.id}/export${e({"export-passwords":this.exportFormSignal()?.exportPasswords??void 0,passphrase:n,token:o.Token})}`,{responseType:"blob",headers:new re(W({},b.HEADERS??{}))})}),$(()=>this.isExporting.set(!1))).subscribe({next:o=>{let n=this.activeBackup()?.Backup?.Name??"Backup",i=this.exportFormSignal()?.encryption?"aes":"json";this.downloadFile(o,`${n}-duplicati-config.${i}`),this.#n.navigate(["/"])},error:o=>{}}):this.#t.getApiV1BackupByIdExportCmdline({id:this.#e.snapshot.params.id,exportPasswords:this.exportFormSignal()?.exportPasswords??void 0,passphrase:this.exportFormSignal()?.password??void 0}).pipe($(()=>this.isExporting.set(!1))).subscribe({next:o=>{this.exportedCmd.set(o.Command??null)},error:o=>{}})}downloadFile(o,e){let n=window.URL.createObjectURL(o),i=document.createElement("a");i.href=n,i.download=e,i.click(),window.URL.revokeObjectURL(n)}async copyPassword(){let o=this.exportForm.controls.password.value;await this.#s(o??""),this.copiedPassword.set(!0)}async#s(o){try{await navigator.clipboard.writeText(o)}catch{try{let n=document.createElement("textarea");n.value=o,document.body.appendChild(n),n.select(),document.execCommand("copy"),document.body.removeChild(n)}catch(n){console.error("Failed to copy text: ",n)}}}generatePassword(){this.copiedPassword.set(!1);let o=this.#o.generate(16);this.exportForm.controls.password.setValue(o),this.exportForm.controls.repeatPassword.setValue(o),this.showCopyPassword.set(!0)}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=Y({type:t,selectors:[["app-export"]],decls:26,vars:13,consts:()=>{let o;o=$localize`${"\uFFFD#6\uFFFD"}:START_TAG_SH_ICON:arrow-left${"\uFFFD/#6\uFFFD"}:CLOSE_TAG_SH_ICON: Back `;let e;e=$localize`${"\uFFFD#9\uFFFD"}:START_TAG_SH_ICON:export${"\uFFFD/#9\uFFFD"}:CLOSE_TAG_SH_ICON: Export `;let n;n=$localize`${"\uFFFD#16\uFFFD"}:START_TAG_SH_ICON:terminal-window${"\uFFFD/#16\uFFFD"}:CLOSE_TAG_SH_ICON: As command line `;let i;i=$localize`${"\uFFFD#19\uFFFD"}:START_TAG_SH_ICON:file${"\uFFFD/#19\uFFFD"}:CLOSE_TAG_SH_ICON: To file `;let T;T=$localize` Export passwords ${"\uFFFD#22\uFFFD\uFFFD/#22\uFFFD"}:TAG_INPUT:`;let O;O=$localize` Encrypt file ${"\uFFFD#2\uFFFD\uFFFD/#2\uFFFD"}:TAG_INPUT:`;let N;N=$localize`Password`;let C;C=$localize`Repeat password`;let U;U=$localize` Create a password ${"\uFFFD#4\uFFFD"}:START_SUPERSCRIPT:*${"\uFFFD/#4\uFFFD"}:CLOSE_SUPERSCRIPT:`;let R;R=$localize`${"\uFFFD*17:1\uFFFD"}:START_BLOCK_IF:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SH_ICON:eye-slash${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SH_ICON: Hide ${"\uFFFD/*17:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*18:2\uFFFD"}:START_BLOCK_ELSE:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SH_ICON:eye${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SH_ICON: Show ${"\uFFFD/*18:2\uFFFD"}:CLOSE_BLOCK_ELSE:`,R=G(R);let K;K=$localize`${"\uFFFD#21\uFFFD"}:START_TAG_SH_ICON:password${"\uFFFD/#21\uFFFD"}:CLOSE_TAG_SH_ICON: Generate password `;let J;J=$localize`Passwords are required`;let H;H=$localize` Passwords must be at least ${"\uFFFD0\uFFFD"}:INTERPOLATION: characters long `;let z;z=$localize`Passwords do not match`;let V;V=$localize`Passwords are required`;let q;q=$localize` Passwords must be at least ${"\uFFFD0\uFFFD"}:INTERPOLATION: characters long `;let I;I=$localize`${"\uFFFD*2:1\uFFFD"}:START_BLOCK_IF:${"\uFFFD#1:1\uFFFD"}:START_TAG_SH_ICON:check${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SH_ICON: Copied password ${"\uFFFD/*2:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*3:2\uFFFD"}:START_BLOCK_ELSE:${"\uFFFD#1:2\uFFFD"}:START_TAG_SH_ICON_1:copy${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SH_ICON: Copy password ${"\uFFFD/*3:2\uFFFD"}:CLOSE_BLOCK_ELSE:`,I=G(I);let j;return j=$localize` Tip: Be sure to save your password. If you lose it, you will not be able to import the configuration. `,[o,e,n,i,T,O,U,R,K,J,H,z,V,q,I,j,[1,"actions"],["shButton","",1,"outlined",3,"routerLink"],["shButton","",1,"raised","primary",3,"click","shTooltip","disabled"],["autocomplete","off",3,"formGroup"],[1,"type-b",3,"valueChange","value"],["value","cmd"],["value","file"],[1,"raised","primary"],["type","checkbox","formControlName","exportPasswords"],[1,"primary","raised"],[1,"passwords"],[1,"cmd-output"],["type","checkbox","formControlName","encryption"],["for","password"],["id","password","tabindex","4","autocomplete","off","placeholder",N,"formControlName","password",3,"type"],["error",""],[1,"raised",3,"error","warn","primary","success","value"],["id","repeatPassword","tabindex","5","autocomplete","off","placeholder",C,"formControlName","repeatPassword",3,"type"],[1,"password-actions"],["shButton","","type","button",1,"small",3,"click"],["shButton","","type","button",1,"small","copy"],[1,"primary"],[1,"raised",3,"value"],["shButton","","type","button",1,"small","copy",3,"click"],[1,"sh-success"]]},template:function(e,n){if(e&1&&(s(0,"header")(1,"h3"),x(2," Export backup configuration "),s(3,"div",16)(4,"button",17),c(5,0),_(6,"sh-icon"),p(),r(),s(7,"button",18),h("click",function(){return n.submit()}),c(8,1),_(9,"sh-icon"),p(),r()()(),s(10,"p"),x(11),r()(),s(12,"form",19)(13,"sh-button-group",20),ne("valueChange",function(T){return te(n.exportType,T)||(n.exportType=T),T}),s(14,"button",21),c(15,2),_(16,"sh-icon"),p(),r(),s(17,"button",22),c(18,3),_(19,"sh-icon"),p(),r()(),s(20,"sh-toggle",23),c(21,4),_(22,"input",24),p(),r(),F(23,Me,3,0,"sh-toggle",25),F(24,ze,24,8,"div",26),F(25,Ve,3,1,"div",27),r()),e&2){let i;a(4),S("routerLink",ie(12,$e)),a(3),B("loading",n.isExporting()),S("shTooltip",n.encryptionFieldSignal()?"Remember to copy the password":"")("disabled",n.exportForm.invalid||n.showCopyPassword()&&!n.copiedPassword()||n.encryptionFieldSignal()&&n.exportForm.value.repeatPassword!==n.exportForm.value.password),a(4),ee("#",(i=n.activeBackup())==null||i.Backup==null?null:i.Backup.ID,": ",(i=n.activeBackup())==null||i.Backup==null?null:i.Backup.Name),a(),S("formGroup",n.exportForm),a(),oe("value",n.exportType),a(10),d(n.exportType()==="file"?23:-1),a(),d(n.encryptionFieldSignal()?24:-1),a(),d(n.exportedCmd()?25:-1)}},dependencies:[Pe,ue,pe,ce,Fe,de,Ce,Te,_e,ge,fe,Se,Ne,Oe,me,he,Re],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;gap:2rem;padding:3rem}h3[_ngcontent-%COMP%]{font:var(--title-30);display:flex;align-items:center;justify-content:space-between}.actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem;max-width:31.25rem}.passwords[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.password-actions[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:center}.copy[_ngcontent-%COMP%] sh-icon.sh-success[_ngcontent-%COMP%]{color:var(--success-8)}.hide[_ngcontent-%COMP%]{display:none}"],changeDetection:0})};export{k as default};
package/chunk-7SP45FHP.js DELETED
@@ -1 +0,0 @@
1
- import{a as _e}from"./chunk-JB26UVQP.js";import"./chunk-FQINMZH2.js";import"./chunk-ZTENLO77.js";import"./chunk-ZKIZ7IIA.js";import"./chunk-AXG7WHBS.js";import{a as se}from"./chunk-AXLO5KWF.js";import"./chunk-BPHX6VXP.js";import"./chunk-XWML36YQ.js";import"./chunk-6Q6SSTBK.js";import"./chunk-COEGVUM3.js";import"./chunk-QGAOYLQU.js";import"./chunk-RM2KGG7J.js";import{a as b}from"./chunk-PEOYNJJM.js";import"./chunk-5W4BSVZJ.js";import"./chunk-QZEIAQ3M.js";import{a as le,b as m}from"./chunk-2KD757N6.js";import"./chunk-AFHEXZUZ.js";import"./chunk-JYRKUYG6.js";import"./chunk-VNXFTYQQ.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-CJKZ27FM.js";import{d as oe}from"./chunk-5E3B4AEF.js";import{b as q,e as j}from"./chunk-CQJRBQ6I.js";import"./chunk-V2UO7ES2.js";import"./chunk-HDDAGHHE.js";import"./chunk-YF6JHIN5.js";import"./chunk-2YUSBRXY.js";import{$ as F,D as G,Db as d,E as g,Eb as n,F as L,Fb as i,G as p,Gb as c,Rc as E,Ta as _,Ub as u,Vb as h,Wb as A,Xb as H,Yb as J,_b as T,hb as V,lc as C,nc as K,oc as D,q as y,qa as s,sa as P,tc as X,uc as z,vc as W,xb as w,yb as U}from"./chunk-K5XGRFWJ.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};
package/chunk-AFHEXZUZ.js DELETED
@@ -1 +0,0 @@
1
- import{a as D}from"./chunk-JYRKUYG6.js";import{c as j,e as V}from"./chunk-VNXFTYQQ.js";import{z as b}from"./chunk-CJKZ27FM.js";import{a as x,d as v}from"./chunk-5E3B4AEF.js";import{ma as L}from"./chunk-YF6JHIN5.js";import{$ as a,Gc as W,Hb as N,Ib as C,Ic as $,Jb as _,N as R,Rc as p,Ta as M,Ub as A,Vb as w,W as h,Wb as P,Xb as F,Yb as G,f as m,g as y,hb as I,qa as n,sa as O}from"./chunk-K5XGRFWJ.js";var S=class r{reconnectTimer=n(15e3);countdown=n(0);connectTimerEffect=O(()=>{let e=this.reconnectTimer();this.countdown.set(e/1e3)});interval=setInterval(()=>{if(this.countdown()<=1){this.countdown.set(this.reconnectTimer()/1e3);return}this.countdown.set(this.countdown()-1)},1e3);ngOnDestroy(){clearInterval(this.interval)}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=I({type:r,selectors:[["app-disconnected-dialog"]],decls:8,vars:4,consts:()=>{let e;e=$localize`Reconnecting...`;let t;return t=$localize` The connection to the server is lost, attempting again in ${"\uFFFD#6\uFFFD"}:START_TAG_STRONG:0:${"\uFFFD0\uFFFD"}:INTERPOLATION:${"\uFFFD/#6\uFFFD"}:CLOSE_TAG_STRONG:`,[e,t,["header",""],["content",""]]},template:function(t,s){t&1&&(N(0,"header",2)(1,"h3"),P(2,0),C()(),N(3,"div",3)(4,"p"),A(5,1),_(6,"strong"),W(7,"number"),w(),C()()),t&2&&(M(7),F($(7,1,s.countdown(),"2.0-0")),G(5))},dependencies:[L],styles:["[_nghost-%COMP%]{display:block;padding:1rem}"],changeDetection:0})};var T=class r{dialog=a(b);#e=a(v);#n=n("disconnected");#s=n(null);#t=n(-1);#i=n(0);#a=n(!1);#u=new y;connectionStatus=this.#n.asReadonly();serverState=this.#s.asReadonly();#o=void 0;duration=a(j).relayIsEnabled()?"94s":"299s";start(){this.#a.set(!0),this.#u=new y,this.#r()}stop(){this.#u.next(),this.#u.complete(),this.#a.set(!1)}reconnect(){this.stop(),this.start()}reconnectIfNeeded(){this.#a()||this.reconnect()}#r(){this.#n.set("connecting"),this.#e.getApiV1Serverstate({lastEventId:this.#t(),longpoll:this.#t()>=0,duration:this.duration}).pipe(R(this.#u)).subscribe({next:e=>{e&&this.#d(e),this.#c()},error:e=>{let s=this.#i()+1,u=Math.min(5e3*s,3e4);this.#i.set(s),s>3&&this.#n.set("disconnected"),this.#o||(this.#o=this.dialog.open(S,{closeOnButton:!1,closeOnEsc:!1,closeOnOutsideClick:!1})),this.#o.component.reconnectTimer.set(u),setTimeout(()=>{this.#r()},u)}})}#d(e){this.#n.set("connected"),this.#s.set(e),this.#t.set(e.LastEventID??-1),this.#i.set(0)}#c(){this.#a()&&this.#r()}static \u0275fac=function(t){return new(t||r)};static \u0275prov=h({token:r,factory:r.\u0275fac,providedIn:"root"})};var l=!1,k=class r{#e=a(V);#n=a(D);dialog=a(b);#s=null;#t=n("disconnected");#i=n(null);#a=n(null);#u=n(null);#o=n(null);#r=n(null);#d=n(null);#c=n(null);#h=void 0;#l=n({legacystatus:!0});shouldConnect=n(!0);connectionStatus=this.#t.asReadonly();serverState=this.#i.asReadonly();serverProgress=this.#a.asReadonly();serverSettings=this.#u.asReadonly();subscriptions=this.#l.asReadonly();serverTaskQueue=this.#o.asReadonly();backupListState=this.#r.asReadonly();notificationState=this.#d.asReadonly();remoteControlState=this.#c.asReadonly();#S=null;taskCompleted=new m(e=>{this.#S=e});#f=0;#p=null;start(){this.shouldConnect.set(!0),this.#m()}#m(){this.#p&&(clearTimeout(this.#p),this.#p=null);let e=this.#e.token();if(!e){console.error("No access token available");return}let t=window.location.protocol==="https:"?"wss:":"ws:",s=window.location.port?`:${window.location.port}`:"";window.location.port==="4200"&&(s=":8200");let u=window.location.hostname,g=x.BASE||"",f=this.#e.xsrfQueryParam(),Q=this.#n.hasWebSocketAuth()?`${t}//${u}${s}${g}/notifications${f?`?${f}`:""}`:`${t}//${u}${s}${g}/notifications?token=${e}${f?`&${f}`:""}`;this.#t.set("connecting"),this.#s=new WebSocket(Q),this.#s.onopen=()=>{l&&console.log("WebSocket connection established"),this.#n.hasWebSocketAuth()?(this.#t.set("authenticating"),this.#s?.send(JSON.stringify({Version:1,Token:e,Action:"auth"}))):this.#g()},this.#s.onmessage=d=>{if(this.#t()==="authenticating")try{let i=JSON.parse(d.data);if(i.Success){l&&console.log("WebSocket authentication successful"),this.#g();return}else if(i?.Type==="legacystatus")l&&console.log("WebSocket authentication successful"),this.#g();else{console.error("WebSocket authentication failed:",i.Message),this.#t.set("disconnected"),this.#e.refreshToken().subscribe({next:()=>{this.reconnect()},error:o=>{console.error("Error refreshing token after WebSocket auth failed",o)}});return}}catch(i){console.error("Error parsing WebSocket authentication reply",i),this.#t.set("disconnected");return}try{let i=JSON.parse(d.data),c=i?.Type;if(c==="legacystatus"||c==null)l&&console.log("Received legacy status update:",i),this.#i.set(i);else if(c==="reply"){let o=i;o.Success||console.error("WebSocket reply error:",o.Message)}else if(c==="progress"){let o=i;l&&console.log("Received progress update:",o.Data),this.#a.set(o.Data)}else if(c==="serversettings"){let o=i;l&&console.log("Received server settings update:",o.Data),this.#u.set(o.Data)}else if(c==="taskqueue"){let o=i;l&&console.log("Received task update:",o.Data),this.#o.set(o.Data)}else if(c==="taskcompleted"){let o=i;l&&console.log("Received task completed:",o.Data),this.#S?.next(o.Data)}else if(c==="backuplist"){let o=i;l&&console.log("Received backup list update:",o.Data),this.#r.set(o.Data)}else if(c==="notifications"){let o=i;l&&console.log("Received notification update:",o.Data),this.#d.set(o.Data)}else if(c==="remotecontrol"){let o=i;l&&console.log("Received remote control update:",o.Data),this.#c.set(o.Data)}else console.warn("Unknown WebSocket message type:",c)}catch(i){console.error("Error parsing WebSocket message",i)}},this.#s.onclose=d=>{l&&console.log("WebSocket connection closed",d),this.#t.set("disconnected");var i=d.code===4401;i&&this.#e.refreshToken().subscribe({next:()=>{this.reconnect()},error:c=>{console.error("Error refreshing token",c)}}),this.shouldConnect()&&(this.#h||(this.#h=this.dialog.open(S,{closeOnButton:!1,closeOnEsc:!1,closeOnOutsideClick:!1}),this.#h.component.reconnectTimer.set(15e3)),this.#p&&clearTimeout(this.#p),this.#p=setTimeout(()=>this.#m(),5e3))},this.#s.onerror=d=>{console.error("WebSocket error",d),this.#t.set("disconnected")}}#g(){this.#t.set("connected");let e=this.#l();Object.keys(e).length>0&&Object.entries(e).forEach(([t,s])=>{s!=null&&this.sendSubscribeRequest(t,s)}),this.#h&&this.#h.close()}stop(){this.shouldConnect.set(!1),this.#s?.close()}reconnect(){this.#s?.close(),this.start()}reconnectIfNeeded(){this.#s?.readyState!==WebSocket.OPEN&&this.reconnect()}sendSubscribeRequest(e,t){this.#s?.send(JSON.stringify({Version:1,Id:`req-${++this.#f}`,Action:"sub",Service:e,Data:t||null}))}subscribe(e,t=void 0){let s=this.#l(),u=s[e];(!u||JSON.stringify(u)!==JSON.stringify(t||!0))&&(s[e]=t||!0,this.#l.set(s),this.#t()=="connected"&&this.sendSubscribeRequest(e,t))}unsubscribe(e){let t=this.#l();t[e]&&(delete t[e],this.#l.set(t),this.#t()=="connected"&&this.#s?.send(JSON.stringify({Version:1,Id:`req-${++this.#f}`,Action:"unsub",Service:e})))}static \u0275fac=function(t){return new(t||r)};static \u0275prov=h({token:r,factory:r.\u0275fac,providedIn:"root"})};var q=10,J=class r{#e=a(k);#n=a(T);#s=a(v);#t=a(D);#i=n("longpoll");#a=n(!1);#u=p(()=>this.#t.hasTaskCompletedOption()&&this.#i()==="websocket");#o={};#r=null;#d=!1;#c=[];constructor(){this.#e.subscribe("taskcompleted"),this.#e.taskCompleted.subscribe(e=>{if(this.#c.unshift(e),this.#c.length>q&&this.#c.pop(),!e.ID)return;let t=this.#o[e.ID];t&&(t.forEach(s=>{s.next(e),s.complete()}),delete this.#o[e.ID])})}connectionStatus=p(()=>this.#i()==="websocket"?this.#e.connectionStatus():this.#n.connectionStatus());isConnectionMethodSet=this.#a.asReadonly();serverState=p(()=>this.#i()==="websocket"?this.#e.serverState():this.#n.serverState());progressState=this.#e.serverProgress;taskQueueState=this.#e.serverTaskQueue;activeTaskQueueState=p(()=>this.#i()==="websocket"?this.#e.serverTaskQueue()?.map(t=>t.ID).filter(t=>t)??[]:(this.#n.serverState()?.SchedulerQueueIds??[]).map(t=>t.Item1).filter(t=>t));backupListState=p(()=>this.#e.backupListState());setConnectionMethod(e){e==="websocket"?(this.#e.reconnectIfNeeded(),this.#n.stop()):(this.#n.reconnectIfNeeded(),this.#e.stop()),this.#i.set(e),this.#a.set(!0)}getConnectionMethod(){return this.#i()}subscribe(e,t=null){this.#e.subscribe(e,t)}unsubscribe(e){this.#e.unsubscribe(e)}waitForTaskToComplete(e){return new m(t=>{let s=this.#c.find(u=>u.ID===e);if(s){t.next(s),t.complete();return}this.#o[e]=this.#o[e]||[],this.#o[e].push(t),this.#h()})}#h(){this.#d||this.#u()||(this.#d=!0,this.#l())}#l(){let e=Object.keys(this.#o).map(s=>parseInt(s,10));if(e.length===0){this.#S();return}let t=Math.min(...e);this.#s.getApiV1TaskByTaskid({taskid:t}).subscribe({next:s=>{s.TaskFinished!=null&&(this.#c.unshift(s),this.#c.length>q&&this.#c.pop(),this.#o[t].forEach(g=>{g.next(s),g.complete()}),delete this.#o[t])},complete:()=>{this.#r=window.setTimeout(()=>{this.#l()},1e3)},error:s=>{this.#r=window.setTimeout(()=>{this.#l()},3e3)}})}#S(){this.#r!==null&&(clearTimeout(this.#r),this.#r=null),this.#d=!1}static \u0275fac=function(t){return new(t||r)};static \u0275prov=h({token:r,factory:r.\u0275fac,providedIn:"root"})};export{k as a,J as b};
package/chunk-CEDH3C4K.js DELETED
@@ -1 +0,0 @@
1
- import{g}from"./chunk-KI2HT2TI.js";import"./chunk-MJPEKJ3T.js";import{a as G}from"./chunk-JB26UVQP.js";import"./chunk-FQINMZH2.js";import"./chunk-ZTENLO77.js";import"./chunk-ZKIZ7IIA.js";import{q as b}from"./chunk-RTGUYIWH.js";import"./chunk-PNQ5BDQN.js";import"./chunk-TPKKLIFK.js";import"./chunk-X5W2K6AN.js";import"./chunk-AXG7WHBS.js";import"./chunk-AXLO5KWF.js";import"./chunk-BPHX6VXP.js";import"./chunk-XWML36YQ.js";import"./chunk-6Q6SSTBK.js";import"./chunk-COEGVUM3.js";import"./chunk-QGAOYLQU.js";import"./chunk-RM2KGG7J.js";import"./chunk-PEOYNJJM.js";import"./chunk-5W4BSVZJ.js";import"./chunk-QZEIAQ3M.js";import{b as u}from"./chunk-2KD757N6.js";import"./chunk-AFHEXZUZ.js";import"./chunk-JYRKUYG6.js";import"./chunk-VNXFTYQQ.js";import{R as v}from"./chunk-CJKZ27FM.js";import"./chunk-5E3B4AEF.js";import{a as h,b as y,c as I,d as W,e as $,f as A}from"./chunk-CQJRBQ6I.js";import"./chunk-V2UO7ES2.js";import"./chunk-HDDAGHHE.js";import"./chunk-YF6JHIN5.js";import"./chunk-2YUSBRXY.js";import{$ as p,Ac as F,Bc as E,Cc as m,Db as l,Eb as i,Fb as o,Gb as C,Ta as _,Wb as a,ac as T,hb as L,lc as M,qa as P,sa as N,xb as O,yb as S}from"./chunk-K5XGRFWJ.js";import"./chunk-7CGTOI24.js";var w=()=>["/restore-from-files/destination"],k=()=>["/restore-from-files/encryption"],x=()=>["/restore-from-files/select-files"],J=()=>["/restore-from-files/options"],X=t=>["/restore",t,"select-files"],D=t=>["/restore",t,"options"];function z(t,n){t&1&&(i(0,"div",7),a(1,0),o(),i(2,"div",7),a(3,1),o(),i(4,"div",8),a(5,2),o(),i(6,"div",8),a(7,3),o()),t&2&&(l("routerLink",E(4,w)),_(2),l("routerLink",E(5,k)),_(2),l("routerLink",E(6,x)),_(2),l("routerLink",E(7,J)))}function B(t,n){if(t&1&&(i(0,"div",7),a(1,4),o(),i(2,"div",7),a(3,5),o()),t&2){let e=T(2);l("routerLink",m(2,X,e.backupId())),_(2),l("routerLink",m(4,D,e.backupId()))}}function U(t,n){if(t&1&&(i(0,"sh-stepper",6),O(1,z,8,8)(2,B,4,6),o()),t&2){let e=T();_(),S(e.isFileRestore()?1:2)}}var f=class t{#e=p(y);#n=p(W);#t=p(g);#i=u(this.#e.params);#o=u(this.#e.url);#r=u(this.#e.children[0].url);backupId=this.#t.backupId;isFileRestore=this.#t.isFileRestore;isFullWidthPage=P(!1);paramsChanged=N(()=>{let n=this.#r(),e=this.#i()?.id,r=!!this.#o()?.find(s=>s.path==="restore-from-files"),d=!!n?.find(s=>s.path==="select-files"),R=!!n?.find(s=>s.path==="progress");this.isFullWidthPage.set(R||d),this.#t.init(e,r)});ngOnInit(){this.#n.events.subscribe(n=>{if(n instanceof h){let e=n.urlAfterRedirects;this.isFullWidthPage.set(e.includes("progress")||e.includes("select-files"))}})}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=L({type:t,selectors:[["app-restore-flow"]],hostVars:2,hostBindings:function(e,r){e&2&&M("full-width",r.isFullWidthPage())},features:[F([g,b])],decls:4,vars:1,consts:()=>{let n;n=$localize` Destination `;let e;e=$localize` Encryption `;let r;r=$localize` Select files `;let d;d=$localize` Options `;let R;R=$localize` Select files `;let s;return s=$localize`Options`,[n,e,r,d,R,s,[1,"primary"],["tabindex","-1","routerLinkActive","active",3,"routerLink"],["tabindex","-1","routerLinkActive","active",1,"inactive",3,"routerLink"]]},template:function(e,r){e&1&&(C(0,"app-status-bar"),O(1,U,3,1,"sh-stepper",6),i(2,"section"),C(3,"router-outlet"),o()),e&2&&(_(),S(r.isFullWidthPage()?-1:1))},dependencies:[v,G,I,$,A],styles:["[_nghost-%COMP%]{display:block}.full-width[_nghost-%COMP%] section[_ngcontent-%COMP%]{max-width:62.5rem}sh-stepper[_ngcontent-%COMP%]{margin:2.5rem 2rem;width:calc(100% - 4rem)}section[_ngcontent-%COMP%]{max-width:31.25rem;margin:0 auto 2.5rem}@media only screen and (max-width:768px){section[_ngcontent-%COMP%]{padding:0 2rem}}.inactive[_ngcontent-%COMP%]{pointer-events:none;opacity:.5}"],changeDetection:0})};export{f as default};
package/chunk-CUYURNCQ.js DELETED
@@ -1 +0,0 @@
1
- import{a as be,b as ve}from"./chunk-YFA6MJ2B.js";import{a as $e}from"./chunk-ZTENLO77.js";import{a as V}from"./chunk-UXIWNORE.js";import"./chunk-AXG7WHBS.js";import{a as Re}from"./chunk-AXLO5KWF.js";import"./chunk-6Q6SSTBK.js";import"./chunk-COEGVUM3.js";import"./chunk-RM2KGG7J.js";import"./chunk-PEOYNJJM.js";import{a as Ge}from"./chunk-SKLSR5GH.js";import"./chunk-5W4BSVZJ.js";import{a as ye}from"./chunk-QZEIAQ3M.js";import"./chunk-2KD757N6.js";import"./chunk-AFHEXZUZ.js";import{a as Le}from"./chunk-JYRKUYG6.js";import{c as Se,e as Me}from"./chunk-VNXFTYQQ.js";import{B as R,G as Ne,H as fe,J as Pe,Q as Ie,Y as De,c as ge,d as Ce,e as Te,i as me,r as he,s as Fe,t as Ee,v as M,w as J,x as Ae,z as Oe}from"./chunk-CJKZ27FM.js";import{d as X}from"./chunk-5E3B4AEF.js";import{c as ue,e as de,f as pe}from"./chunk-CQJRBQ6I.js";import"./chunk-V2UO7ES2.js";import"./chunk-HDDAGHHE.js";import"./chunk-YF6JHIN5.js";import"./chunk-2YUSBRXY.js";import{$ as d,$c as K,Bb as te,Bc as le,Cb as ne,Db as F,Eb as a,Fb as o,G as q,Gb as _,Nb as N,Rc as Y,Ta as r,Ub as p,Vb as S,Wb as f,Wc as _e,Yc as ce,Zb as v,_b as T,ac as c,ea as A,fa as O,hb as L,hc as ie,ic as oe,lc as B,nc as D,oc as u,pc as Q,qa as h,qc as $,sa as b,tc as H,uc as w,vc as x,wc as ae,xb as g,xc as se,yb as C,yc as k,zb as ee,zc as re}from"./chunk-K5XGRFWJ.js";import{a as W,b as j}from"./chunk-7CGTOI24.js";var ke=["scroller"];function Ue(i,n){i&1&&(a(0,"sh-icon"),u(1,"bell-ringing"),o())}function Be(i,n){i&1&&(a(0,"sh-icon"),u(1,"bell"),o())}function Ye(i,n){if(i&1&&_(0,"app-notification",8),i&2){c(2);let e=k(6);F("index",0)("notification",e.content)}}function Je(i,n){if(i&1&&(a(0,"div",11),u(1),o()),i&2){c(3);let e=k(6);r(),$(" ",e.content.content," ")}}function Xe(i,n){if(i&1&&(a(0,"sh-alert")(1,"div",10),u(2),o(),g(3,Je,2,1,"div",11),o()),i&2){c(2);let e=k(6);D(e.content.type||"error"),r(2),Q(e.content.title),r(),C(e.content.content?3:-1)}}function Ve(i,n){if(i&1&&(a(0,"div",6),g(1,Ye,1,2,"app-notification",8)(2,Xe,4,4,"sh-alert",9),o()),i&2){c();let e=k(6);r(),C(e.type==="notification"?1:2)}}function ze(i,n){if(i&1){let e=N();a(0,"div",7)(1,"div",12)(2,"h6",13),p(3,2),a(4,"button",5),T("click",function(){A(e);let s=c();return O(s.toggleNotifications())}),_(5,"sh-icon"),o(),S(),o(),a(6,"div",14,0)(8,"div",15),_(9,"app-notifications"),o()()()()}}function We(i,n){if(i&1&&(a(0,"div",20),u(1),o()),i&2){let e=c().$implicit;r(),$(" ",e.content," ")}}function je(i,n){if(i&1){let e=N();a(0,"sh-alert",18,1),T("click",function(){let s=A(e).$implicit,l=c(2);return O(l.deleteAlertByIndex(s.id))}),a(2,"div",19),u(3),o(),g(4,We,2,1,"div",20),o()}if(i&2){let e=n.$implicit;D(e.type),F("id",e.id),r(3),Q(e.title),r(),C(e.content?4:-1)}}function qe(i,n){i&1&&(a(0,"p",17),f(1,4),o())}function Qe(i,n){if(i&1){let e=N();a(0,"div",7)(1,"div",12)(2,"h6",13),p(3,3),a(4,"button",5),T("click",function(){A(e);let s=c();return O(s.toggleAlerts())}),_(5,"sh-icon"),o(),S(),o(),a(6,"div",14,0)(8,"div",15),te(9,je,5,5,"sh-alert",16,ee,!1,qe,2,0,"p",17),o()()()()}if(i&2){let e=c();r(9),ne(e.alertHistory())}}var He=new he,U=class i{#e=d(Ae);#t=d(V);isSubmitting=h(!1);messageSent=h(!1);form=He.group({message:He.control("",[Ce.required])});notifications=this.#t.notifications;shownMessage=h(null);shownMessageInterval=null;alertHistory=this.#e.alertHistory;alertHistoryIsOpen=this.#e.alertHistoryIsOpen;alertHistoryIsHidden=this.#e.alertHistoryIsHidden;numberOfOpenAlerts=Y(()=>this.alertHistory().filter(n=>n.isOpen).length);scroller=ce("scroller");isAlertsOpen=K(!1);isNotificationsOpen=K(!1);previousHistoryCount=h(null);previousNotificationsCount=h(null);constructor(){b(()=>{let n=this.alertHistory(),e=this.notifications();if(e.length===0){this.shownMessage.set(null);return}e.length&&this.previousHistoryCount()!==n.length&&!this.isNotificationsOpen()?(this.shownMessage.set({content:e[0],countDown:3,type:"notification"}),this.previousHistoryCount.set(n.length),this.shownMessageInterval=setInterval(()=>{let t=this.shownMessage();if(t?.countDown===0){this.shownMessage.set(null),this.shownMessageInterval=null;return}t!==null&&this.shownMessage.update(s=>j(W({},s),{countDown:s.countDown-1}))},1e3)):n.length&&this.previousHistoryCount()!==n.length&&!this.isAlertsOpen()&&(this.shownMessage.set({content:n[0],countDown:3,type:"alert"}),this.previousHistoryCount.set(n.length),this.shownMessageInterval=setInterval(()=>{let t=this.shownMessage();if(t?.countDown===0){this.shownMessage.set(null),this.shownMessageInterval=null;return}t!==null&&this.shownMessage.update(s=>j(W({},s),{countDown:s.countDown-1}))},1e3))}),b(()=>{this.alertHistoryIsOpen(),this.scrollToBottom()})}resetPreviewMessage(){this.shownMessage.set(null),this.shownMessageInterval=null}toggleAlerts(){this.isAlertsOpen()?this.isAlertsOpen.set(!1):(this.isAlertsOpen.set(!0),this.isNotificationsOpen.set(!1),this.resetPreviewMessage())}toggleNotifications(){this.isNotificationsOpen.set(!this.isNotificationsOpen()),this.isAlertsOpen()&&this.isAlertsOpen.set(!1)}deleteAlertByIndex(n){this.#e.removeAlert(n)}scrollToBottom(){this.scroller()&&this.scroller()?.nativeElement&&this.scroller().nativeElement.scrollTo(0,this.scroller().nativeElement.scrollHeight)}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=L({type:i,selectors:[["app-service-hub"]],viewQuery:function(e,t){e&1&&ie(t.scroller,ke,5),e&2&&oe()},inputs:{isAlertsOpen:[1,"isAlertsOpen"],isNotificationsOpen:[1,"isNotificationsOpen"]},outputs:{isAlertsOpen:"isAlertsOpenChange",isNotificationsOpen:"isNotificationsOpenChange"},decls:10,vars:9,consts:()=>{let n;n=$localize` Notifications ${"\uFFFD#4\uFFFD"}:START_TAG_BUTTON:${"\uFFFD#5\uFFFD"}:START_TAG_SH_ICON:x-circle${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SH_ICON:${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_BUTTON:`;let e;e=$localize` Alerts ${"\uFFFD#4\uFFFD"}:START_TAG_BUTTON:${"\uFFFD#5\uFFFD"}:START_TAG_SH_ICON:x-circle${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SH_ICON:${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_BUTTON:`;let t;return t=$localize`No alerts yet`,[["scroller",""],["alerts",""],n,e,t,["shButton","",3,"click"],[1,"preview-alert-wrap"],[1,"alert-stream-modal"],[3,"index","notification"],[3,"class"],["ship-alert-title",""],["ship-alert-content",""],[1,"alert-stream-modal-content"],[1,"paragraph-20"],[1,"alert-stream-modal-list-scroller"],[1,"alert-stream-modal-list"],[3,"class","id"],[1,"no-alerts"],[3,"click","id"],["title",""],["content",""]]},template:function(e,t){if(e&1&&(a(0,"button",5),T("click",function(){return t.toggleAlerts()}),a(1,"sh-icon"),u(2,"info"),o()(),a(3,"button",5),T("click",function(){return t.toggleNotifications()}),g(4,Ue,2,0,"sh-icon")(5,Be,2,0,"sh-icon"),o(),ae(6),g(7,Ve,3,1,"div",6),g(8,ze,10,0,"div",7),g(9,Qe,12,1,"div",7)),e&2){D(t.alertHistory().length?"error":""),r(3),D(t.notifications().length?"error":""),r(),C(t.notifications().length?4:5),r(2);let s=se(t.shownMessage());r(),C(s?7:-1),r(),C(t.isNotificationsOpen()?8:-1),r(),C(t.isAlertsOpen()?9:-1)}},dependencies:[Ee,J,M,R,ve,be],styles:["[_nghost-%COMP%]{display:flex;position:fixed;gap:.5rem;bottom:1.5rem;right:1.5rem;z-index:5000}@media only screen and (max-width:768px){[_nghost-%COMP%]{bottom:1rem;right:1rem}}[_nghost-%COMP%] h6[_ngcontent-%COMP%]{margin:0}.preview-alert-wrap[_ngcontent-%COMP%]{position:absolute;bottom:2.6875rem;right:0;display:flex;flex-direction:column;min-width:15.625rem}.helpdesk-modal[_ngcontent-%COMP%]{position:absolute;bottom:2.6875rem;right:0;display:flex;flex-direction:column}@media only screen and (max-width:768px){.helpdesk-modal[_ngcontent-%COMP%]{bottom:2.6875rem}}.helpdesk-modal-content[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;gap:1rem;min-width:20rem;border:1px solid var(--base-4);background-color:var(--base-1);border-radius:var(--shape-2)}.helpdesk-modal-content[_ngcontent-%COMP%] .message-sent[_ngcontent-%COMP%]{padding:0 1rem 1rem;text-wrap:pretty}.helpdesk-modal-content[_ngcontent-%COMP%] h6[_ngcontent-%COMP%]{padding:1rem;border-bottom:1px solid var(--base-4);display:flex;align-items:center;justify-content:space-between}.helpdesk-modal-content[_ngcontent-%COMP%] form[_ngcontent-%COMP%]{padding:0 1rem 1rem;display:flex;flex-direction:column;align-items:flex-end;gap:1rem}.helpdesk-modal-content[_ngcontent-%COMP%] form[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{width:100%;text-wrap:pretty}.helpdesk-modal-content[_ngcontent-%COMP%] form[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:100%}.alert-stream-modal[_ngcontent-%COMP%]{position:absolute;bottom:2.6875rem;right:0;display:flex;flex-direction:column}@media only screen and (max-width:768px){.alert-stream-modal[_ngcontent-%COMP%]{bottom:2.6875rem}}.alert-stream-modal-list-scroller[_ngcontent-%COMP%]{overflow-y:auto;max-height:18.75rem}.alert-stream-modal-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;padding:1rem;border-radius:var(--shape-2)}.alert-stream-modal-content[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;min-width:20rem;border:1px solid var(--base-4);background-color:var(--base-1);border-radius:var(--shape-2)}.alert-stream-modal-content[_ngcontent-%COMP%] h6[_ngcontent-%COMP%]{padding:1rem;border-bottom:1px solid var(--base-4);display:flex;align-items:center;justify-content:space-between}.no-alerts[_ngcontent-%COMP%]{padding:1rem;display:flex;flex-direction:column;gap:1rem;text-align:center}"],changeDetection:0})};function Ke(i,n){i&1&&(a(0,"sh-icon",14),u(1,"check"),o())}function Ze(i,n){i&1&&(a(0,"sh-icon",15),u(1,"prohibit"),o())}function et(i,n){if(i&1){let e=N();a(0,"button",20),T("click",function(){A(e);let s=c();return O(s.updatePassphrase())}),f(1,5),o()}if(i&2){let e=c();B("loading",e.isUpdating())}}function tt(i,n){if(i&1){let e=N();a(0,"button",21),T("click",function(){A(e);let s=c();return O(s.updatePassphrase())}),f(1,6),o()}if(i&2){let e=c();B("loading",e.isUpdating()),F("disabled",!0)}}var z=class i{#e=d(X);closed=_e();isUpdating=h(!1);passphrase=h("");repeatPassphrase=h("");updatePassphrase(){this.passphrase()===this.repeatPassphrase()&&(this.isUpdating.set(!0),this.#e.patchApiV1Serversettings({requestBody:{"server-passphrase":this.passphrase()}}).pipe(q(()=>this.isUpdating.set(!1))).subscribe({next:()=>this.closed.emit()}))}cancel(){this.isUpdating.set(!0),this.#e.patchApiV1Serversettings({requestBody:{"has-asked-for-password-change":"True"}}).pipe(q(()=>this.isUpdating.set(!1))).subscribe({next:()=>this.closed.emit()})}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=L({type:i,selectors:[["app-change-passphrase-alert-dialog"]],outputs:{closed:"closed"},decls:23,vars:7,consts:()=>{let n;n=$localize`Enter new password`;let e;e=$localize`Repeat password`;let t;t=$localize`Password have to be filled and have to match`;let s;s=$localize`Change passphrase`;let l;l=$localize` Duplicati needs to be secured with a passphrase and a random passphrase has been generated for you. ${"[\uFFFD#6\uFFFD\uFFFD/#6\uFFFD|\uFFFD#7\uFFFD\uFFFD/#7\uFFFD]"}:LINE_BREAK:${"[\uFFFD#6\uFFFD\uFFFD/#6\uFFFD|\uFFFD#7\uFFFD\uFFFD/#7\uFFFD]"}:LINE_BREAK: If you open Duplicati from the tray icon, you do not need a passphrase, but if you plan to open it from another location you need to set a passphrase you know. Do you want to set a passphrase now? `,l=v(l);let y;y=$localize`Passphrase`;let P;P=$localize`Repeat passphrase`;let I;I=$localize`Not now thanks`;let G;G=$localize` Yes, update passphrase now `;let m;return m=$localize` Yes, update passphrase now `,[s,l,y,P,I,G,m,["header",""],["content",""],["type","warning"],["for","password"],["type","password","name","password","autocomplete","disabled","placeholder",n,"tabindex","1",3,"ngModelChange","ngModel"],["for","repeatPassword"],["type","password","name","repeatPassword","autocomplete","disabled","placeholder",e,"tabindex","2",3,"ngModelChange","disabled","ngModel"],["suffix","",1,"sh-success"],["suffix",""],["footer",""],["shButton","",3,"click"],["shButton","",1,"raised","primary",3,"loading"],["shButton","","shTooltip",t,1,"raised","primary",3,"loading","disabled"],["shButton","",1,"raised","primary",3,"click"],["shButton","","shTooltip",t,1,"raised","primary",3,"click","disabled"]]},template:function(e,t){e&1&&(a(0,"header",7)(1,"h3"),f(2,0),o()(),a(3,"div",8)(4,"sh-alert",9),p(5,1),_(6,"br")(7,"br"),S(),o(),a(8,"sh-form-field")(9,"label",10),f(10,2),o(),a(11,"input",11),x("ngModelChange",function(l){return w(t.passphrase,l)||(t.passphrase=l),l}),o()(),a(12,"sh-form-field")(13,"label",12),f(14,3),o(),a(15,"input",13),x("ngModelChange",function(l){return w(t.repeatPassphrase,l)||(t.repeatPassphrase=l),l}),o(),g(16,Ke,2,0,"sh-icon",14)(17,Ze,2,0,"sh-icon",15),o()(),a(18,"footer",16)(19,"button",17),T("click",function(){return t.cancel()}),f(20,4),o(),g(21,et,2,2,"button",18)(22,tt,2,3,"button",19),o()),e&2&&(r(11),H("ngModel",t.passphrase),r(4),F("disabled",t.passphrase().length===0),H("ngModel",t.repeatPassphrase),r(),C(t.passphrase().length!==0&&t.passphrase()===t.repeatPassphrase()?16:17),r(3),B("loading",t.isUpdating()),r(2),C(t.passphrase().length!==0&&t.passphrase()===t.repeatPassphrase()?21:22))},dependencies:[Fe,ge,Te,me,J,fe,M,De,R],styles:["[_nghost-%COMP%]{display:block;--dialog-p: 1.5rem}[content][_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}"],changeDetection:0})};var nt=()=>({exact:!0});function it(i,n){i&1&&(a(0,"sh-icon"),u(1,"sun"),o())}function ot(i,n){i&1&&(a(0,"sh-icon"),u(1,"moon"),o())}function at(i,n){if(i&1){let e=N();a(0,"button",26),T("click",function(){A(e);let s=c();return O(s.logout())}),p(1,8),_(2,"sh-icon"),S(),o()}}var Z=class i{#e=d($e);#t=d(X);#o=d(Re);#a=d(Se);#s=d(Oe);#r=d(V);#l=d(Me);#n=d(ye);#i=d(Le);relayIsEnabled=this.#a.relayIsEnabled;isDarkMode=this.#e.isDarkMode;isNavOpen=this.#e.isNavOpen;sidenavType=this.#e.sidenavType;hasShownPasswordDialog=!1;machineName=Y(()=>{let n=this.#n.serverSettings();if(n&&n["--machine-name"])return n["--machine-name"];if(n&&n["machine-name"])return n["machine-name"];let e=this.#i.allOptions().find(t=>t.name==="machine-name");return e&&e.defaultValue?e.defaultValue:this.#i.systemInfo()?.MachineName??"Unknown"});ngOnInit(){this.#r.init(),this.#o.getBackups(!0)}serverSettingsEffect=b(()=>{if(this.hasShownPasswordDialog)return;let n=this.#n.serverSettings();if(!n)return;let e=n["autogenerated-passphrase"]==="True",t=n["has-asked-for-password-change"]==="True";e&&!t&&(this.hasShownPasswordDialog=!0,this.#s.open(z,{maxWidth:"500px"}))});toggleBodyClass(){this.#e.toggleBodyClass()}changeDefaultClientTo(n){this.#_(n),window.location.replace(`/${n}`)}logout(){this.#l.logout()}#_(n){var e=new Date;e.setTime(e.getTime()+2160*60*60*1e3),document.cookie="default-client="+n+"; expires="+e.toUTCString()+"; path=/"}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=L({type:i,selectors:[["app-layout"]],decls:44,vars:11,consts:()=>{let n;n=$localize`${"\uFFFD#10\uFFFD"}:START_TAG_SH_ICON:house${"\uFFFD/#10\uFFFD"}:CLOSE_TAG_SH_ICON: Home `;let e;e=$localize`${"\uFFFD#13\uFFFD"}:START_TAG_SH_ICON:database${"\uFFFD/#13\uFFFD"}:CLOSE_TAG_SH_ICON: Add backup `;let t;t=$localize`${"\uFFFD#16\uFFFD"}:START_TAG_SH_ICON:clock-counter-clockwise${"\uFFFD/#16\uFFFD"}:CLOSE_TAG_SH_ICON: Restore `;let s;s=$localize`${"\uFFFD#19\uFFFD"}:START_TAG_SH_ICON:link-simple${"\uFFFD/#19\uFFFD"}:CLOSE_TAG_SH_ICON: Destinations `;let l;l=$localize`${"\uFFFD#22\uFFFD"}:START_TAG_SH_ICON:gear${"\uFFFD/#22\uFFFD"}:CLOSE_TAG_SH_ICON: Settings `;let y;y=$localize`${"\uFFFD#32\uFFFD"}:START_TAG_SH_ICON:info${"\uFFFD/#32\uFFFD"}:CLOSE_TAG_SH_ICON: About Duplicati `;let P;P=$localize`${"\uFFFD#35\uFFFD"}:START_TAG_SH_ICON:files${"[\uFFFD/#35\uFFFD|\uFFFD/#36\uFFFD]"}:CLOSE_TAG_SH_ICON: Documentation ${"\uFFFD#36\uFFFD"}:START_TAG_SH_ICON_1:arrow-square-out${"[\uFFFD/#35\uFFFD|\uFFFD/#36\uFFFD]"}:CLOSE_TAG_SH_ICON:`,P=v(P);let I;I=$localize`${"\uFFFD#39\uFFFD"}:START_TAG_SH_ICON:chats-circle${"[\uFFFD/#39\uFFFD|\uFFFD/#40\uFFFD]"}:CLOSE_TAG_SH_ICON: Visit forum ${"\uFFFD#40\uFFFD"}:START_TAG_SH_ICON_1:arrow-square-out${"[\uFFFD/#39\uFFFD|\uFFFD/#40\uFFFD]"}:CLOSE_TAG_SH_ICON:`,I=v(I);let G;return G=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SH_ICON:sign-out${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_ICON: Log out `,[n,e,t,s,l,y,P,I,G,[3,"isOpenChange","isOpen","disableDrag"],["sidenav",""],["shButton","",1,"icon","small",3,"click"],[1,"base-1","primary"],["action","","routerLink","/","routerLinkActive","active",3,"routerLinkActiveOptions"],["action","","routerLink","/add-backup","routerLinkActive","active"],["action","","routerLink","/restore","routerLinkActive","active"],["action","","routerLink","/destinations","routerLinkActive","active"],["action","","routerLink","/settings","routerLinkActive","active"],[1,"spacer"],[1,"base-1l","primary"],["action","",1,"machine-name",3,"title"],["action","","routerLink","/about","routerLinkActive","active"],["href","https://docs.duplicati.com","target","_blank","action",""],["suffix",""],["href","https://forum.duplicati.com","target","_blank","action",""],["action",""],["action","",3,"click"]]},template:function(e,t){e&1&&(a(0,"sh-sidenav",9),x("isOpenChange",function(l){return w(t.isNavOpen,l)||(t.isNavOpen=l),l}),a(1,"div",10)(2,"header"),_(3,"app-logo"),a(4,"button",11),T("click",function(){return t.toggleBodyClass()}),g(5,it,2,0,"sh-icon")(6,ot,2,0,"sh-icon"),o()(),a(7,"sh-list",12)(8,"button",13),p(9,0),_(10,"sh-icon"),S(),o(),a(11,"button",14),p(12,1),_(13,"sh-icon"),S(),o(),a(14,"button",15),p(15,2),_(16,"sh-icon"),S(),o(),a(17,"button",16),p(18,3),_(19,"sh-icon"),S(),o(),a(20,"button",17),p(21,4),_(22,"sh-icon"),S(),o()(),_(23,"div",18),a(24,"sh-list",19)(25,"div",20)(26,"sh-icon"),u(27,"desktop"),o(),u(28),o(),_(29,"sh-divider"),a(30,"button",21),p(31,5),_(32,"sh-icon"),S(),o(),a(33,"a",22),p(34,6),_(35,"sh-icon")(36,"sh-icon",23),S(),o(),a(37,"a",24),p(38,7),_(39,"sh-icon")(40,"sh-icon",23),S(),o(),g(41,at,3,0,"button",25),o()(),_(42,"router-outlet")(43,"app-service-hub"),o()),e&2&&(D(t.sidenavType()),H("isOpen",t.isNavOpen),F("disableDrag",!0),r(5),C(t.isDarkMode()?5:6),r(3),F("routerLinkActiveOptions",le(10,nt)),r(17),F("title",re(t.machineName())),r(3),$(" ",t.machineName()," "),r(13),C(t.relayIsEnabled()?-1:41))},dependencies:[ue,de,pe,Ie,M,Pe,R,Ne,U,Ge],styles:["[_nghost-%COMP%]{height:100vh;width:100%;overflow:hidden}header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:1.25rem;gap:.75rem}h3[title][_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between}div[sidenav][_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100vh}.machine-name[_ngcontent-%COMP%]{margin:0;cursor:default}"],changeDetection:0})};export{Z as default};
package/chunk-DT3A5ZZG.js DELETED
@@ -1 +0,0 @@
1
- import{a as q}from"./chunk-JB26UVQP.js";import"./chunk-FQINMZH2.js";import"./chunk-ZTENLO77.js";import"./chunk-ZKIZ7IIA.js";import"./chunk-AXG7WHBS.js";import{a as W}from"./chunk-AXLO5KWF.js";import"./chunk-BPHX6VXP.js";import"./chunk-XWML36YQ.js";import"./chunk-6Q6SSTBK.js";import"./chunk-COEGVUM3.js";import"./chunk-QGAOYLQU.js";import"./chunk-RM2KGG7J.js";import"./chunk-PEOYNJJM.js";import"./chunk-5W4BSVZJ.js";import"./chunk-QZEIAQ3M.js";import"./chunk-2KD757N6.js";import"./chunk-AFHEXZUZ.js";import"./chunk-JYRKUYG6.js";import"./chunk-VNXFTYQQ.js";import{B as P,C as F,G as z,L as H,v as f}from"./chunk-CJKZ27FM.js";import{d as j}from"./chunk-5E3B4AEF.js";import{e as N}from"./chunk-CQJRBQ6I.js";import"./chunk-V2UO7ES2.js";import"./chunk-HDDAGHHE.js";import"./chunk-YF6JHIN5.js";import"./chunk-2YUSBRXY.js";import{$ as p,Bb as x,Bc as O,Cb as w,Cc as X,Db as S,Eb as t,Fb as o,Gb as s,Ta as l,Ub as T,Vb as d,Wb as c,Xb as v,Yb as B,_b as u,ac as g,hb as L,nb as A,oc as m,rc as J,ub as D,vb as G,xb as R,yb as C,zb as b}from"./chunk-K5XGRFWJ.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};