@duplicati/ngclient 0.0.124 → 0.0.130
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.
- package/assets/spk.woff2 +0 -0
- package/{chunk-SIHNMW2E.js → chunk-4PFSFVY6.js} +1 -1
- package/{chunk-SPAJFGWZ.js → chunk-5FTLFTEB.js} +1 -1
- package/{chunk-ONV552SH.js → chunk-5LL2GNEZ.js} +1 -1
- package/{chunk-ERHGJIOQ.js → chunk-5S46PDX2.js} +1 -1
- package/chunk-74DADXEI.js +1 -0
- package/chunk-77O3NTSI.js +1 -0
- package/chunk-7XUQAQXF.js +1 -0
- package/chunk-A2ITER5E.js +1 -0
- package/{chunk-M5RL4LRX.js → chunk-A6RETV76.js} +1 -1
- package/chunk-AACOYUOE.js +1 -0
- package/chunk-AIKD43P2.js +1 -0
- package/chunk-AOXPIWSW.js +1 -0
- package/chunk-APVPH7MJ.js +1 -0
- package/chunk-B37C3RGG.js +1 -0
- package/{chunk-URJQR7VG.js → chunk-BI4O7WRG.js} +1 -1
- package/chunk-BMMOMXWX.js +6 -0
- package/chunk-BRR5YAJ3.js +1 -0
- package/chunk-BUZTB5NB.js +1 -0
- package/chunk-BZCM226U.js +1 -0
- package/chunk-C44Q3YIF.js +1 -0
- package/{chunk-PSVKQSIF.js → chunk-CTTB3CC2.js} +1 -1
- package/chunk-CZATLVNN.js +1 -0
- package/chunk-DSS4UZWD.js +1 -0
- package/chunk-DUQHFE6L.js +1 -0
- package/chunk-DWAT342U.js +1 -0
- package/chunk-FEYAUW6J.js +1 -0
- package/{chunk-43BIRTPL.js → chunk-GQCUCL25.js} +1 -1
- package/{chunk-ESAGJOZZ.js → chunk-H5MGVT7B.js} +1 -1
- package/{chunk-VZBWK3XF.js → chunk-HAATVFD4.js} +1 -1
- package/chunk-HBYWSSYK.js +1 -0
- package/{chunk-EPDVUHOD.js → chunk-HTTPTGMU.js} +1 -1
- package/chunk-HZQEM2P7.js +1 -0
- package/chunk-IQTQJ64J.js +2 -0
- package/{chunk-65ZYAFPI.js → chunk-JMQGVDAK.js} +1 -1
- package/chunk-LWIINXS7.js +1 -0
- package/chunk-LZXYGCPQ.js +1 -0
- package/{chunk-6EWRKJSC.js → chunk-M7A6IY7W.js} +1 -1
- package/chunk-MES3HY3J.js +1 -0
- package/{chunk-5C7A7QU6.js → chunk-MNE4XQ7S.js} +1 -1
- package/{chunk-V7XW25LT.js → chunk-MZZJNTYI.js} +1 -1
- package/chunk-NZXQIYE5.js +4 -0
- package/chunk-PFZ7N6QO.js +1 -0
- package/chunk-PG4O7JZ2.js +1 -0
- package/{chunk-S5G6POQS.js → chunk-QLHQ5NDE.js} +1 -1
- package/chunk-QNXSBZTY.js +1 -0
- package/chunk-QQAATZNB.js +1 -0
- package/chunk-SF5ML7OT.js +1 -0
- package/chunk-T3WJQ544.js +1 -0
- package/{chunk-4DR45FFH.js → chunk-VAR5LIG7.js} +1 -1
- package/chunk-VN4TP2ED.js +1 -0
- package/chunk-WBCTOQOO.js +1 -0
- package/chunk-X4XF46C3.js +1 -0
- package/chunk-ZQ4ACNVT.js +3 -0
- package/chunk-ZWC5VRTB.js +1 -0
- package/{chunk-TH7CWIA2.js → chunk-ZY4E4VC3.js} +1 -1
- package/index.html +2 -2
- package/locale/messages.cs.json +4 -2
- package/locale/messages.da.json +5 -2
- package/locale/messages.de.json +48 -8
- package/locale/messages.en_GB.json +4 -2
- package/locale/messages.es.json +4 -2
- package/locale/messages.fi.json +7 -2
- package/locale/messages.fr.json +7 -2
- package/locale/messages.hu.json +6 -2
- package/locale/messages.it.json +32 -21
- package/locale/messages.ja_JP.json +8 -2
- package/locale/messages.nl_NL.json +53 -21
- package/locale/messages.pl.json +9 -2
- package/locale/messages.pt.json +8 -2
- package/locale/messages.pt_BR.json +10 -3
- package/locale/messages.ru.json +8 -2
- package/locale/messages.sr_RS.json +9 -2
- package/locale/messages.sv_SE.json +9 -2
- package/locale/messages.zh_CN.json +376 -48
- package/locale/messages.zh_TW.json +9 -2
- package/main-WENCV2S5.js +1 -0
- package/package.json +1 -1
- package/{styles-P2AEFLUS.css → styles-6RBLRF5E.css} +1 -1
- package/chunk-25II37TZ.js +0 -1
- package/chunk-2CXHZS6X.js +0 -1
- package/chunk-3UPH6V5C.js +0 -1
- package/chunk-65U4B3NQ.js +0 -2
- package/chunk-6DNRCK5D.js +0 -1
- package/chunk-6V7W7EKR.js +0 -1
- package/chunk-7733YRW4.js +0 -1
- package/chunk-7BATQNXR.js +0 -1
- package/chunk-7V4TPS4B.js +0 -1
- package/chunk-BTZEFBCF.js +0 -1
- package/chunk-CZDE5P4F.js +0 -1
- package/chunk-ED7PHXLX.js +0 -1
- package/chunk-FP6LM56A.js +0 -1
- package/chunk-FQ55IACT.js +0 -1
- package/chunk-FSKPPAVO.js +0 -1
- package/chunk-FWQNZX5S.js +0 -1
- package/chunk-J52HAQJB.js +0 -1
- package/chunk-KAFLAM3J.js +0 -1
- package/chunk-O7TLFEOP.js +0 -1
- package/chunk-OAWADV5X.js +0 -1
- package/chunk-PDODLSPH.js +0 -1
- package/chunk-QXUYK52Y.js +0 -1
- package/chunk-RODUXVVT.js +0 -1
- package/chunk-SX2OA5DO.js +0 -1
- package/chunk-T5WAKBP3.js +0 -1
- package/chunk-U4XTHU5I.js +0 -1
- package/chunk-UI4M5G5W.js +0 -1
- package/chunk-VPTXHYYV.js +0 -6
- package/chunk-VTTBYFSH.js +0 -1
- package/chunk-VYAA7G37.js +0 -1
- package/chunk-W66AXGSW.js +0 -1
- package/chunk-WOTGLW6Y.js +0 -4
- package/chunk-XATCN7MB.js +0 -1
- package/chunk-XHPURHO2.js +0 -1
- package/chunk-YUZKJZ22.js +0 -1
- package/chunk-YZDNOP4R.js +0 -1
- package/chunk-Z2TE5POZ.js +0 -1
- package/chunk-ZMLGDPCK.js +0 -3
- package/main-JBXUJPKQ.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as M}from"./chunk-
|
|
1
|
+
import{a as M}from"./chunk-T3WJQ544.js";import"./chunk-WBCTOQOO.js";import"./chunk-SF5ML7OT.js";import"./chunk-HZQEM2P7.js";import"./chunk-LUKUBN2Z.js";import"./chunk-RHW5QVAY.js";import"./chunk-LWIINXS7.js";import"./chunk-DLJSVAM2.js";import"./chunk-ABANCAM5.js";import"./chunk-B37C3RGG.js";import{c as O,e as C,f as S}from"./chunk-WRKRV6RQ.js";import"./chunk-DYTQQHMA.js";import{y as d}from"./chunk-H5MGVT7B.js";import"./chunk-N5FH4YAX.js";import"./chunk-GQGMGFDX.js";import"./chunk-EBXJGPRA.js";import"./chunk-QUOBR5MG.js";import{Db as e,Eb as t,Fb as l,Rb as n,gb as c}from"./chunk-4KE2I7OA.js";import"./chunk-7CGTOI24.js";var s=class a{static \u0275fac=function(o){return new(o||a)};static \u0275cmp=c({type:a,selectors:[["app-about"]],decls:19,vars:0,consts:()=>{let _;_=$localize`General`;let o;o=$localize`Changelog`;let r;r=$localize`Libraries`;let u;u=$localize`System info`;let g;g=$localize`Server settings`;let T;T=$localize`Logs`;let A;return A=$localize`Crash log`,[_,o,r,u,g,T,A,[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&&(l(0,"app-status-bar"),e(1,"div",7)(2,"spk-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"),l(18,"router-outlet"),t()())},dependencies:[M,d,O,C,S],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;gap:0}.content[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding:1rem 0}.content[_ngcontent-%COMP%] spk-tabs[_ngcontent-%COMP%]{margin:0 2rem}section[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding:2rem 0}"],changeDetection:0})};export{s as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as G}from"./chunk-LWIINXS7.js";import{b as P,d as $}from"./chunk-B37C3RGG.js";import{e as g}from"./chunk-H5MGVT7B.js";import{h as W}from"./chunk-N5FH4YAX.js";import{ua as M}from"./chunk-EBXJGPRA.js";import{Bc as F,Db as D,Eb as v,Fb as E,O as k,Pb as O,Qb as R,Qc as h,Rb as N,Rc as w,Sb as _,T as d,Tb as I,Ua as T,Z as r,gb as C,i as m,va as n,zc as A}from"./chunk-4KE2I7OA.js";var S=class s{reconnectTimer=n(15e3);countdown=n(0);connectTimerEffect=w(()=>{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||s)};static \u0275cmp=C({type:s,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,o){t&1&&(D(0,"header",2)(1,"h3"),N(2,0),v()(),D(3,"div",3)(4,"p"),O(5,1),E(6,"strong"),A(7,"number"),R(),v()()),t&2&&(T(7),_(F(7,1,o.countdown(),"2.0-0")),I(5))},dependencies:[M],styles:["[_nghost-%COMP%]{display:block;padding:1rem}"],changeDetection:0})};var f=class s{dialog=r(g);#n=r(W);#o=n("disconnected");#e=n(null);#t=n(-1);#a=n(0);#c=n(!1);#r=new m;connectionStatus=this.#o.asReadonly();serverState=this.#e.asReadonly();#l=void 0;duration=r(P).relayIsEnabled()?"94s":"299s";start(){this.#c.set(!0),this.#r=new m,this.#s()}stop(){this.#r.next(),this.#r.complete(),this.#c.set(!1)}reconnect(){this.stop(),this.start()}reconnectIfNeeded(){this.#c()||this.reconnect()}#s(){this.#o.set("connecting"),this.#n.getApiV1Serverstate({lastEventId:this.#t(),longpoll:this.#t()>=0,duration:this.duration}).pipe(k(this.#r)).subscribe({next:e=>{e&&this.#i(e),this.#u()},error:e=>{let o=this.#a()+1,a=Math.min(5e3*o,3e4);this.#a.set(o),o>3&&this.#o.set("disconnected"),this.#l||(this.#l=this.dialog.open(S,{closeOnButton:!1,closeOnEsc:!1,closeOnOutsideClick:!1})),this.#l.component.reconnectTimer.set(a),setTimeout(()=>{this.#s()},a)}})}#i(e){this.#o.set("connected"),this.#e.set(e),this.#t.set(e.LastEventID??-1),this.#a.set(0)}#u(){this.#c()&&this.#s()}static \u0275fac=function(t){return new(t||s)};static \u0275prov=d({token:s,factory:s.\u0275fac,providedIn:"root"})};var u=!1,b=class s{#n=r($);#o=r(G);dialog=r(g);#e=null;#t=n("disconnected");#a=n(null);#c=n(null);#r=n(null);#l=n(null);#s=void 0;#i=n({legacystatus:!0});shouldConnect=n(!0);connectionStatus=this.#t.asReadonly();serverState=this.#a.asReadonly();serverProgress=this.#c.asReadonly();subscriptions=this.#i.asReadonly();serverTaskQueue=this.#r.asReadonly();backupListState=this.#l.asReadonly();#u=0;start(){this.#p(),this.shouldConnect.set(!0)}#p(){let e=this.#n.token();if(!e){console.error("No access token available");return}let t=window.location.protocol==="https:"?"wss:":"ws:",o=window.location.port?`:${window.location.port}`:"";window.location.port==="4200"&&(o=":8200");let a=window.location.hostname,j=this.#o.hasWebSocketAuth()?`${t}//${a}${o}/notifications`:`${t}//${a}${o}/notifications?token=${e}`;this.#t.set("connecting"),this.#e=new WebSocket(j),this.#e.onopen=()=>{u&&console.log("WebSocket connection established"),this.#o.hasWebSocketAuth()?(this.#t.set("authenticating"),this.#e?.send(JSON.stringify({Version:1,Token:e}))):this.#d()},this.#e.onmessage=p=>{if(this.#t()==="authenticating")try{let i=JSON.parse(p.data);i.Success?(u&&console.log("WebSocket authentication successful"),this.#d()):(console.error("WebSocket authentication failed:",i.Message),this.#t.set("disconnected"));return}catch(i){console.error("Error parsing WebSocket authentication reply",i),this.#t.set("disconnected");return}try{let i=JSON.parse(p.data),l=i?.Type;if(l==="legacystatus"||l==null)u&&console.log("Received legacy status update:",i),this.#a.set(i);else if(l==="reply"){let c=i;c.Success||console.error("WebSocket reply error:",c.Message)}else if(l==="progress"){let c=i;u&&console.log("Received progress update:",c.Data),this.#c.set(c.Data)}else if(l==="taskqueue"){let c=i;u&&console.log("Received task update:",c.Data),this.#r.set(c.Data)}else if(l==="backuplist"){let c=i;u&&console.log("Received backup list update:",c.Data),this.#l.set(c.Data)}else console.warn("Unknown WebSocket message type:",l)}catch(i){console.error("Error parsing WebSocket message",i)}},this.#e.onclose=p=>{u&&console.log("WebSocket connection closed",p),this.#t.set("disconnected"),this.shouldConnect()&&(this.#s||(this.#s=this.dialog.open(S,{closeOnButton:!1,closeOnEsc:!1,closeOnOutsideClick:!1}),this.#s.component.reconnectTimer.set(15e3)),setTimeout(()=>this.#p(),5e3))},this.#e.onerror=p=>{console.error("WebSocket error",p),this.#t.set("disconnected")}}#d(){this.#t.set("connected");let e=this.#i();Object.keys(e).length>0&&Object.entries(e).forEach(([t,o])=>{o!=null&&this.sendSubscribeRequest(t,o)}),this.#s&&this.#s.close()}stop(){this.shouldConnect.set(!1),this.#e?.close()}reconnect(){this.#e?.close(),this.start()}reconnectIfNeeded(){this.#e?.readyState!==WebSocket.OPEN&&this.reconnect()}sendSubscribeRequest(e,t){this.#e?.send(JSON.stringify({Version:1,Id:`req-${++this.#u}`,Action:"sub",Service:e,Data:t||null}))}subscribe(e,t=void 0){let o=this.#i(),a=o[e];(!a||JSON.stringify(a)!==JSON.stringify(t))&&(o[e]=t||!0,this.#i.set(o),this.#t()=="connected"&&this.sendSubscribeRequest(e,t))}unsubscribe(e){let t=this.#i();t[e]&&(delete t[e],this.#i.set(t),this.#t()=="connected"&&this.#e?.send(JSON.stringify({Version:1,Id:`req-${++this.#u}`,Action:"unsub",Service:e})))}static \u0275fac=function(t){return new(t||s)};static \u0275prov=d({token:s,factory:s.\u0275fac,providedIn:"root"})};var L=class s{#n=r(b);#o=r(f);#e=n("longpoll");#t=n(!1);connectionStatus=h(()=>this.#e()==="websocket"?this.#n.connectionStatus():this.#o.connectionStatus());isConnectionMethodSet=this.#t.asReadonly();serverState=h(()=>this.#e()==="websocket"?this.#n.serverState():this.#o.serverState());progressState=h(()=>this.#n.serverProgress());taskQueueState=h(()=>this.#n.serverTaskQueue());backupListState=h(()=>this.#n.backupListState());setConnectionMethod(e){e==="websocket"?(this.#n.reconnectIfNeeded(),this.#o.stop()):(this.#o.reconnectIfNeeded(),this.#n.stop()),this.#e.set(e),this.#t.set(!0)}getConnectionMethod(){return this.#e()}subscribe(e,t=null){this.#n.subscribe(e,t)}unsubscribe(e){this.#n.unsubscribe(e)}static \u0275fac=function(t){return new(t||s)};static \u0275prov=d({token:s,factory:s.\u0275fac,providedIn:"root"})};export{L as a};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{a as U,g as z,x as X}from"./chunk-H5MGVT7B.js";import{h as V}from"./chunk-N5FH4YAX.js";import{pa as w}from"./chunk-EBXJGPRA.js";import{Ab as C,Bb as L,Bc as v,Cb as M,Db as a,Eb as s,F as k,Fb as N,Jb as F,Pb as B,Qb as h,Rb as _,Rc as y,Ua as i,Vb as I,Wb as p,Z as G,ea as S,fa as u,gb as $,jc as d,kc as g,lb as O,rc as x,ub as f,va as r,vb as T,wb as b,zb as E,zc as A}from"./chunk-4KE2I7OA.js";import{a as P,b as R}from"./chunk-7CGTOI24.js";function K(o,e){if(o&1&&(a(0,"li"),d(1),s()),o&2){let t=e.$implicit;i(),g(t)}}function j(o,e){if(o&1&&(a(0,"tr")(1,"td",12)(2,"code")(3,"ol",13),L(4,K,2,1,"li",null,C),s()()()()),o&2){let t=p().$implicit,n=p();i(),T("grid-column","1 / -1")("height","auto"),i(3),M(n.breakIntoLines(t.Exception))}}function q(o,e){if(o&1){let t=F();a(0,"tr",9),I("click",function(){let l=S(t).$index,c=p();return u(c.toggleRow(l))}),a(1,"td"),d(2),A(3,"date"),s(),a(4,"td",10),d(5),s(),a(6,"td"),d(7),s(),a(8,"td")(9,"button",11)(10,"spk-icon"),d(11,"caret-down"),s()()()(),O(12,j,6,4,"tr")}if(o&2){let t=e.$implicit,n=e.$index,l=p();i(2),g(v(3,6,t.Timestamp,"MMM dd. hh:mm")),i(3),g(t.BackupID>=0?t.BackupID:"-"),i(2),g(t.Message),i(2),b("rotated-icon",n===l.openRowIndex()),i(3),E(n===l.openRowIndex()?12:-1)}}function H(o,e){o&1&&_(0,4,1)}function J(o,e){o&1&&_(0,4,2)}var Q=["BackupID","Timestamp","Message","actions"],D=class o{#e=G(V);displayedColumns=r(Q);openRowIndex=r(null);noMoreItems=r(!1);logsIsLoading=r(!1);logs=r([]);pagination=r({offsetTime:void 0,pagesize:10});paginationEffect=y(()=>{let e=this.pagination();this.getLogs()});ngOnInit(){this.getLogs()}getLogs(){this.logsIsLoading.set(!0);let e=this.pagination();this.#e.getApiV1LogdataLog({pagesize:e.pagesize,offset:e.offsetTime}).pipe(k(()=>this.logsIsLoading.set(!1))).subscribe({next:t=>{t.length===0&&this.noMoreItems.set(!0),this.logs.update(n=>[...n,...t])}})}toggleRow(e){this.openRowIndex.set(e===this.openRowIndex()?null:e)}breakIntoLines(e){return e?e.split(`
|
|
2
|
+
`):[]}loadMore(){let e=this.logs().at(-1)?.Timestamp;this.pagination.update(t=>R(P({},t),{offsetTime:e}))}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=$({type:o,selectors:[["app-logs-stored"]],decls:19,vars:6,consts:()=>{let e;e=$localize`Timestamp`;let t;t=$localize`Backup ID`;let n;n=$localize`Message`;let l;l=$localize`No data available`;let c;return c=$localize`${"\uFFFD*17:1\uFFFD"}:START_BLOCK_IF: No more items ${"\uFFFD/*17:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*18:2\uFFFD"}:START_BLOCK_ELSE: Load more ${"\uFFFD/*18:2\uFFFD"}:CLOSE_BLOCK_ELSE:`,[e,t,n,l,c,[1,"type-b",3,"data","loading"],["table-header",""],["table-no-rows",""],["spk-button","",1,"primary","raised",3,"click","disabled"],[3,"click"],[1,"id"],["spk-button","","type","button",1,"outlined","small"],[2,"white-space","pre-wrap"],[1,"line-numbers-ol"]]},template:function(t,n){if(t&1){let l=F();x(0),a(1,"spk-table",5)(2,"tr",6)(3,"th"),_(4,0),s(),a(5,"th"),_(6,1),s(),a(7,"th"),_(8,2),s(),N(9,"th"),s(),L(10,q,13,9,null,null,C),a(12,"div",7),_(13,3),s()(),a(14,"footer")(15,"button",8),I("click",function(){return S(l),u(n.loadMore())}),B(16,4),O(17,H,1,0)(18,J,1,0),h(),s()()}if(t&2){let l=n.logs();i(),T("grid-template-columns","1fr 1fr 1fr auto"),f("data",l)("loading",n.logsIsLoading()),i(9),M(l),i(5),f("disabled",n.logsIsLoading()||n.noMoreItems()),i(2),E(n.noMoreItems()?17:18)}},dependencies:[X,w,U,z],styles:["[_nghost-%COMP%]{display:block}h3[_ngcontent-%COMP%]{font:var(--title-30);margin:0 0 1.25rem}spk-table[_ngcontent-%COMP%]{--table-columns: auto auto 1fr auto}spk-table[_ngcontent-%COMP%] td.id[_ngcontent-%COMP%]{justify-content:center}spk-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:has(code){padding:1rem .75rem;overflow:hidden}spk-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:has(code) code[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--base-8),#000 70%);color:#fff;padding:2.5rem 2.5rem 2.5rem 1.5rem;border-radius:var(--shape-3);overflow:auto;white-space:pre}footer[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;padding:2rem 0 0}"],changeDetection:0})};export{D as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as $}from"./chunk-
|
|
1
|
+
import{a as $}from"./chunk-T3WJQ544.js";import{a as R}from"./chunk-UEYPJIJG.js";import"./chunk-WBCTOQOO.js";import"./chunk-SF5ML7OT.js";import"./chunk-HZQEM2P7.js";import"./chunk-LUKUBN2Z.js";import"./chunk-RHW5QVAY.js";import"./chunk-LWIINXS7.js";import"./chunk-DLJSVAM2.js";import"./chunk-ABANCAM5.js";import"./chunk-B37C3RGG.js";import{b as A,e as N}from"./chunk-WRKRV6RQ.js";import"./chunk-DYTQQHMA.js";import{a as k,g as B}from"./chunk-H5MGVT7B.js";import{h as O}from"./chunk-N5FH4YAX.js";import"./chunk-GQGMGFDX.js";import"./chunk-EBXJGPRA.js";import"./chunk-QUOBR5MG.js";import{Ab as f,Bb as S,Cb as T,Db as F,Eb as a,Fb as r,Pb as _,Qb as c,Qc as M,Rb as u,Ua as i,Ub as g,Vb as I,Z as m,gb as C,jc as E,lb as p,lc as L,va as l,zb as s}from"./chunk-4KE2I7OA.js";import"./chunk-7CGTOI24.js";function b(e,t){e&1&&u(0,2,1)}function P(e,t){e&1&&u(0,2,2)}function h(e,t){e&1&&u(0,2,3)}function v(e,t){e&1&&u(0,2,4)}function U(e,t){if(e&1&&(E(0),r(1,"br")),e&2){let n=t.$implicit;L(" ",n," ")}}var D=class e{#t=m(O);#e=m(A);#n=R(this.#e.params);runId=M(()=>this.#n()?.runId);offset=l(0);status=l("starting");messageLog=l([]);interval=setInterval(()=>{this.#t.getApiV1CommandlineByRunid({runid:this.runId(),offset:this.offset(),pagesize:100}).subscribe(t=>{this.offset.set(t.Count),this.evalStatus(t),this.messageLog.update(n=>[...n,...t.Items])})},1e3);evalStatus(t){t.Started===!0&&t.Finished===!0&&(this.status.set("finished"),clearInterval(this.interval)),t.Started===!0&&t.Finished===!1&&this.status.set("started")}abort(){this.#t.postApiV1CommandlineByRunidAbort({runid:this.runId()}).subscribe({next:t=>{this.status.set("aborted"),clearInterval(this.interval)}})}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=C({type:e,selectors:[["app-commandline-result"]],decls:18,vars:4,consts:()=>{let t;t=$localize`${"\uFFFD#5\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_ICON: Back `;let n;n=$localize` Running commandline task... ${"\uFFFD#8\uFFFD"}:START_TAG_BUTTON:Abort${"\uFFFD/#8\uFFFD"}:CLOSE_TAG_BUTTON:`;let o;return o=$localize`${"\uFFFD*11:1\uFFFD"}:START_BLOCK_IF: Starting... ${"[\uFFFD/*11:1\uFFFD|\uFFFD/*12:2\uFFFD|\uFFFD/*13:3\uFFFD|\uFFFD/*14:4\uFFFD]"}:CLOSE_BLOCK_IF:${"\uFFFD*12:2\uFFFD"}:START_BLOCK_IF_1: Started! ${"[\uFFFD/*11:1\uFFFD|\uFFFD/*12:2\uFFFD|\uFFFD/*13:3\uFFFD|\uFFFD/*14:4\uFFFD]"}:CLOSE_BLOCK_IF:${"\uFFFD*13:3\uFFFD"}:START_BLOCK_IF_2: Finished! ${"[\uFFFD/*11:1\uFFFD|\uFFFD/*12:2\uFFFD|\uFFFD/*13:3\uFFFD|\uFFFD/*14:4\uFFFD]"}:CLOSE_BLOCK_IF:${"\uFFFD*14:4\uFFFD"}:START_BLOCK_IF_3: Aborted! ${"[\uFFFD/*11:1\uFFFD|\uFFFD/*12:2\uFFFD|\uFFFD/*13:3\uFFFD|\uFFFD/*14:4\uFFFD]"}:CLOSE_BLOCK_IF:`,o=g(o),[t,n,o,[1,"back"],["type","button","spk-button","","routerLink","../",1,"small"],["type","button","spk-button","",1,"small",3,"click"],[1,"status"]]},template:function(n,o){n&1&&(r(0,"app-status-bar"),F(1,"section")(2,"div",3)(3,"button",4),_(4,0),r(5,"spk-icon"),c(),a()(),F(6,"h3"),_(7,1),F(8,"button",5),I("click",function(){return o.abort()}),a(),c(),a(),F(9,"div",6),_(10,2),p(11,b,1,0)(12,P,1,0)(13,h,1,0)(14,v,1,0),c(),a(),F(15,"code"),S(16,U,2,1,null,null,f),a()()),n&2&&(i(11),s(o.status()==="starting"?11:-1),i(),s(o.status()==="started"?12:-1),i(),s(o.status()==="finished"?13:-1),i(),s(o.status()==="aborted"?14:-1),i(2),T(o.messageLog()))},dependencies:[$,k,B,N],styles:["[_nghost-%COMP%]{display:block}section[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%;padding:2.5rem;gap:1.25rem}code[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--base-8),#000 70%);color:#fff;padding:2.5rem 2.5rem 2.5rem 1.5rem;border-radius:var(--shape-3);overflow:auto;white-space:pre}"],changeDetection:0})};export{D as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{h as c}from"./chunk-N5FH4YAX.js";import{F as a,P as p,Qc as i,T as u,Z as l,va as o}from"./chunk-4KE2I7OA.js";var m=class r{#e=l(c);isLoaded=o(!1);systemInfo=o(null);filterGroups=o(null);backendModules=i(()=>this.systemInfo()?.BackendModules??[]);allOptionsGrouped=i(()=>{let s={displayName:"Default",options:this.systemInfo()?.Options?.map(this.#s)??[]},e=this.systemInfo()?.GenericModules?.map(t=>({displayName:t.DisplayName??t.Key,options:t.Options?.map(this.#s)??[]}))??[],n=this.systemInfo()?.CompressionModules?.map(t=>({displayName:t.DisplayName??t.Key,options:t.Options?.map(this.#s)??[]}))??[],d=this.systemInfo()?.EncryptionModules?.map(t=>({displayName:t.DisplayName??t.Key,options:t.Options?.map(this.#s)??[]}))??[];return[s,...e,...n,...d]});allOptions=i(()=>this.allOptionsGrouped().reduce((s,e)=>[...s,...e.options],[]));hasWebSocket=i(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:websocket"));hasV2ListOperations=i(()=>{let s=this.systemInfo()?.APIExtensions??[];return s.includes("v2:backup:list-filesets")&&s.includes("v2:backup:list-folder")});hasV2TestOperations=i(()=>(this.systemInfo()?.APIExtensions??[]).includes("v2:destination:test"));hasProgressSubscribeOption=i(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:subscribe:progress"));hasTaskSubscribeOption=i(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:subscribe:taskqueue"));hasBackupListSubscribeOption=i(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:subscribe:backuplist"));hasWebSocketAuth=i(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:websocket:authenticate"));preload(s=!1){let e=this.#e.getApiV1Systeminfo().pipe(p(n=>{this.systemInfo.set(n)}),a(()=>this.isLoaded.set(!0)));if(s)return e;e.subscribe()}preloadFilterGroups(s=!1){let e=this.#e.getApiV1SysteminfoFiltergroups().pipe(p(n=>{this.filterGroups.set(n)}),a(()=>this.isLoaded.set(!0)));if(s)return e;e.subscribe()}#s(s){return{name:s.Name,type:s.Type,shortDescription:s.ShortDescription??void 0,longDescription:s.LongDescription??void 0,deprecatedDescription:s.Deprecated??!1?s.DeprecationMessage??void 0:void 0,options:s.ValidValues,defaultValue:s.DefaultValue}}static \u0275fac=function(e){return new(e||r)};static \u0275prov=u({token:r,factory:r.\u0275fac,providedIn:"root"})};export{m as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as a,c as b,d as c}from"./chunk-BMMOMXWX.js";import"./chunk-GQCUCL25.js";import"./chunk-74DADXEI.js";import"./chunk-A6RETV76.js";import"./chunk-HIW2CN45.js";import"./chunk-4V45XF67.js";import"./chunk-UEYPJIJG.js";import"./chunk-LUKUBN2Z.js";import"./chunk-RHW5QVAY.js";import"./chunk-LWIINXS7.js";import"./chunk-ABANCAM5.js";import"./chunk-WRKRV6RQ.js";import"./chunk-DYTQQHMA.js";import"./chunk-H5MGVT7B.js";import"./chunk-N5FH4YAX.js";import"./chunk-EBXJGPRA.js";import"./chunk-4KE2I7OA.js";import"./chunk-7CGTOI24.js";export{a as createDestinationForm,b as createDestinationFormGroup,c as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as m}from"./chunk-
|
|
1
|
+
import{a as m}from"./chunk-WBCTOQOO.js";import{h as u}from"./chunk-N5FH4YAX.js";import{B as h,E as s,F as p,P as d,Rc as N,T as l,Z as r,n as c,va as o,x as f}from"./chunk-4KE2I7OA.js";var b=class a{#e=r(u);#s=r(m);serverState=this.#s.serverState;serverStateEffect=N(()=>{let t=this.#s.serverState();t?.LastNotificationUpdateID&&this.updateLastNotificationEventId(t?.LastNotificationUpdateID)});#o=-1;#a=o(!1);#t=o([]);#i=o([]);notifications=this.#t.asReadonly();init(){this.notifications().length===0&&this.getNotifications()}updateLastNotificationEventId(t){this.#o!==t&&(this.#o=t,this.getNotifications())}getNotifications(){this.#a.set(!0),this.#e.getApiV1Notifications().pipe(s(1),d(t=>this.#t.set(t)),p(()=>this.#a.set(!1))).subscribe()}getNofication(t){this.#e.getApiV1NotificationById({id:t}).pipe(s(1)).subscribe()}deleteNotification(t){let i=this.#t(),e=i[t];this.#i.set(i),i.splice(t,1),this.#t.set(i),this.#e.deleteApiV1NotificationById({id:e.ID}).pipe(s(1)).subscribe({error:()=>{this.#t.set(this.#i()),this.#i.set([])}})}deleteAllNotifications(){let t=this.#t();this.#i.set(t),this.#t.set([]);let i=t.map(e=>this.#e.deleteApiV1NotificationById({id:e.ID}).pipe(h(()=>c(e))));f(i).pipe(s(1)).subscribe({next:e=>{let v=e.filter(n=>n!=null&&"ID"in n);this.#t.set(v),this.#i.set([])},error:()=>{this.#t.set(this.#i()),this.#i.set([])}})}static \u0275fac=function(i){return new(i||a)};static \u0275prov=l({token:a,factory:a.\u0275fac,providedIn:"root"})};export{b as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./chunk-7CGTOI24.js";var o=[{path:"",redirectTo:"general",pathMatch:"full"},{path:"general",loadComponent:()=>import("./chunk-AACOYUOE.js")},{path:"destination",loadComponent:()=>import("./chunk-LZXYGCPQ.js")},{path:"source-data",loadComponent:()=>import("./chunk-X4XF46C3.js")},{path:"schedule",loadComponent:()=>import("./chunk-DUQHFE6L.js")},{path:"options",loadComponent:()=>import("./chunk-PFZ7N6QO.js")}];export{o as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as z}from"./chunk-XUPWJEL7.js";import{a as x,c as w,d as B,e as U,f as X}from"./chunk-WRKRV6RQ.js";import"./chunk-DYTQQHMA.js";import{a as K,f as V,o as h}from"./chunk-
|
|
1
|
+
import{a as z}from"./chunk-XUPWJEL7.js";import{a as x,c as w,d as B,e as U,f as X}from"./chunk-WRKRV6RQ.js";import"./chunk-DYTQQHMA.js";import{a as K,f as V,o as h}from"./chunk-H5MGVT7B.js";import"./chunk-N5FH4YAX.js";import"./chunk-EBXJGPRA.js";import{Db as i,Eb as t,Fb as _,Gb as M,Hb as f,Jb as R,Pb as l,Qb as s,Rb as b,Sb as y,Tb as v,Ua as p,Vb as u,Wb as c,Z as T,ea as a,fa as S,gb as D,lb as P,ub as N,va as $,zb as G}from"./chunk-4KE2I7OA.js";import"./chunk-7CGTOI24.js";function W(g,F){if(g&1){let n=R();i(0,"spk-menu",15)(1,"button",16),b(2,2),t(),M(3,17),i(4,"button",18),u("click",function(){a(n);let e=c();return S(e.updateLogLevel("Disabled"))}),l(5,3),_(6,"spk-icon"),s(),t(),i(7,"button",18),u("click",function(){a(n);let e=c();return S(e.updateLogLevel("Verbose"))}),l(8,4),_(9,"spk-icon"),s(),t(),i(10,"button",18),u("click",function(){a(n);let e=c();return S(e.updateLogLevel("ExplicitOnly"))}),l(11,5),_(12,"spk-icon"),s(),t(),i(13,"button",18),u("click",function(){a(n);let e=c();return S(e.updateLogLevel("Profiling"))}),l(14,6),_(15,"spk-icon"),s(),t(),i(16,"button",18),u("click",function(){a(n);let e=c();return S(e.updateLogLevel("Retry"))}),l(17,7),_(18,"spk-icon"),s(),t(),i(19,"button",18),u("click",function(){a(n);let e=c();return S(e.updateLogLevel("Information"))}),l(20,8),_(21,"spk-icon"),s(),t(),i(22,"button",18),u("click",function(){a(n);let e=c();return S(e.updateLogLevel("DryRun"))}),l(23,9),_(24,"spk-icon"),s(),t(),i(25,"button",18),u("click",function(){a(n);let e=c();return S(e.updateLogLevel("Warning"))}),l(26,10),_(27,"spk-icon"),s(),t(),i(28,"button",18),u("click",function(){a(n);let e=c();return S(e.updateLogLevel("Error"))}),l(29,11),_(30,"spk-icon"),s(),t(),f(),t()}if(g&2){let n=c();N("openIndicator",!0),p(2),y(n.logLevelByLabel()),v(2)}}var O=class g{#n=T(B);#e=T(z);logLevel=this.#e.logLevel;logLevelByLabel=this.#e.logLevelByLabel;currentUrl=$(this.#n.url);constructor(){this.#n.events.subscribe(F=>{F instanceof x&&this.currentUrl.set(F.urlAfterRedirects)})}updateLogLevel(F){this.#e.isPolling.set(!0),this.#e.updateLogLevel(F)}static \u0275fac=function(n){return new(n||g)};static \u0275cmp=D({type:g,selectors:[["app-logs"]],decls:10,vars:1,consts:()=>{let F;F=$localize`${"\uFFFD#4\uFFFD"}:START_TAG_SPK_ICON:archive${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_SPK_ICON: Stored `;let n;n=$localize`${"\uFFFD#7\uFFFD"}:START_TAG_SPK_ICON:play${"\uFFFD/#7\uFFFD"}:CLOSE_TAG_SPK_ICON: Live `;let o;o=$localize`Log level: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let e;e=$localize`${"\uFFFD#6\uFFFD"}:START_TAG_SPK_ICON:bell-simple-slash${"\uFFFD/#6\uFFFD"}:CLOSE_TAG_SPK_ICON: Disabled `;let C;C=$localize`${"\uFFFD#9\uFFFD"}:START_TAG_SPK_ICON:megaphone-simple${"\uFFFD/#9\uFFFD"}:CLOSE_TAG_SPK_ICON: Verbose `;let L;L=$localize`${"\uFFFD#12\uFFFD"}:START_TAG_SPK_ICON:flow-arrow${"\uFFFD/#12\uFFFD"}:CLOSE_TAG_SPK_ICON: Explicit only `;let d;d=$localize`${"\uFFFD#15\uFFFD"}:START_TAG_SPK_ICON:speedometer${"\uFFFD/#15\uFFFD"}:CLOSE_TAG_SPK_ICON: Profiling `;let k;k=$localize`${"\uFFFD#18\uFFFD"}:START_TAG_SPK_ICON:arrow-arc-left${"\uFFFD/#18\uFFFD"}:CLOSE_TAG_SPK_ICON: Retry `;let I;I=$localize`${"\uFFFD#21\uFFFD"}:START_TAG_SPK_ICON:info${"\uFFFD/#21\uFFFD"}:CLOSE_TAG_SPK_ICON: Information `;let E;E=$localize`${"\uFFFD#24\uFFFD"}:START_TAG_SPK_ICON:person-simple-run${"\uFFFD/#24\uFFFD"}:CLOSE_TAG_SPK_ICON: Dry run `;let A;A=$localize`${"\uFFFD#27\uFFFD"}:START_TAG_SPK_ICON:warning${"\uFFFD/#27\uFFFD"}:CLOSE_TAG_SPK_ICON: Warning `;let m;return m=$localize`${"\uFFFD#30\uFFFD"}:START_TAG_SPK_ICON:warning-octagon${"\uFFFD/#30\uFFFD"}:CLOSE_TAG_SPK_ICON: Error `,[F,n,o,e,C,L,d,k,I,E,A,m,[1,"filters"],["type","button","routerLink","/about/logs/stored","routerLinkActive","active"],["type","button","routerLink","/about/logs/live","routerLinkActive","active"],[3,"openIndicator"],["spk-button","","type","button"],["menu",""],["spk-button","","type","button",1,"small",3,"click"]]},template:function(n,o){n&1&&(i(0,"div",12)(1,"spk-button-group")(2,"button",13),l(3,0),_(4,"spk-icon"),s(),t(),i(5,"button",14),l(6,1),_(7,"spk-icon"),s(),t()(),P(8,W,31,2,"spk-menu",15),t(),_(9,"router-outlet")),n&2&&(p(8),G(o.currentUrl().startsWith("/about/logs/live")?8:-1))},dependencies:[V,K,h,w,X,U],styles:["[_nghost-%COMP%]{display:block}.filters[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem;padding:0 2rem;margin-bottom:1.25rem}"],changeDetection:0})};export{O as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as Q}from"./chunk-FP6LM56A.js";import{a as Ge}from"./chunk-M5RL4LRX.js";import{a as oe}from"./chunk-UEYPJIJG.js";import{a as J}from"./chunk-2CXHZS6X.js";import{a as te}from"./chunk-LUKUBN2Z.js";import{b as De,c as y,e as L,f as $,h as Ae,i as b,k as ve,n as D,q as A,r as v,s as we,t as w}from"./chunk-ABANCAM5.js";import{b as R,d as N}from"./chunk-WRKRV6RQ.js";import{A as be,a as I,e as ke,g as k,l as Me,p as ye,q as Le,t as $e}from"./chunk-ESAGJOZZ.js";import{h as M}from"./chunk-N5FH4YAX.js";import{pa as H}from"./chunk-EBXJGPRA.js";import{B as Fe,Bc as Ie,Db as r,E as ee,Eb as l,F as T,Fb as c,Gb as K,Hb as U,J as me,Jb as B,N as Se,O as X,Pb as u,Qb as F,Rb as E,Rc as q,Sb as Te,T as de,Tb as Ee,Ua as m,Vb as O,Wb as x,Z as p,ea as f,fa as C,gb as h,i as _e,jc as j,lb as z,mc as Oe,o as ce,oc as fe,pc as Ce,qc as Re,ub as S,uc as Ne,va as _,vc as Pe,wb as ge,x as Z,y as ue,zb as Y,zc as he}from"./chunk-4KE2I7OA.js";var Be=new v,We=()=>Be.group({passphrase:Be.control("")}),ie=class a{#t=p(M);#e=p(P);#o=p(N);#n=p(R);encryptionForm=this.#e.encryptionForm;creatingTemporaryBackup=_(!1);next(){let i=this.#e.destinationTargetUrl();if(!i)throw new Error("No target URL");this.creatingTemporaryBackup.set(!0);let e=this.encryptionForm.value?.passphrase??null,t=[{Name:"--no-encryption",Value:"true"}];e&&(t=[{Name:"--passphrase",Value:e}]),this.#t.postApiV1Backups({requestBody:{Backup:{TargetURL:i,Settings:t}},temporary:!0}).pipe(T(()=>this.creatingTemporaryBackup.set(!1))).subscribe({next:o=>{let n=o.ID;this.#o.navigate([`/restore-draft/${n}`])},error:o=>{console.error(o)}})}back(){this.#e.isFileRestore()?this.#o.navigate(["encryption"],{relativeTo:this.#n.parent}):this.#e.exit()}static \u0275fac=function(e){return new(e||a)};static \u0275cmp=h({type:a,selectors:[["app-restore-encryption"]],decls:12,vars:1,consts:()=>{let i;i=$localize`Enter backup passphrase if defined.`;let e;e=$localize`Password`;let t;t=$localize`${"\uFFFD#8\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#8\uFFFD"}:CLOSE_TAG_SPK_ICON: Back `;let o;return o=$localize`${"\uFFFD#11\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#11\uFFFD"}:CLOSE_TAG_SPK_ICON: Continue `,[e,t,o,[3,"submit","formGroup"],["for","password"],["type","password","id","password","placeholder",i,"formControlName","passphrase"],[1,"form-actions"],["spk-button","","type","button",3,"click"],["spk-button","","type","submit",1,"raised","primary"]]},template:function(e,t){e&1&&(r(0,"form",3),O("submit",function(){return t.next()}),r(1,"spk-form-field")(2,"label",4),E(3,0),l(),c(4,"input",5),l(),r(5,"div",6)(6,"button",7),O("click",function(){return t.back()}),u(7,1),c(8,"spk-icon"),F(),l(),r(9,"button",8),u(10,2),c(11,"spk-icon"),F(),l()()()),e&2&&S("formGroup",t.encryptionForm)},dependencies:[w,b,y,L,$,D,A,Me,I,k],styles:["[_nghost-%COMP%]{display:block}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"],changeDetection:0})};var Ye=()=>({standalone:!0});function Ke(a,i){a&1&&c(0,"spk-progress-bar",7)}function Ue(a,i){if(a&1&&(r(0,"div",14),j(1),he(2,"date"),l()),a&2){let e=i.$implicit;m(),Oe("",e.Version,": ",Ie(2,2,e.Time,"medium"),"")}}function je(a,i){a&1&&c(0,"spk-progress-bar",7)}function qe(a,i){if(a&1&&(r(0,"app-file-tree",13)(1,"label",15),E(2,4),l(),c(3,"input",16),l()),a&2){let e=x(2);S("rootPaths",e.rootPaths())("backupSettings",e.backupSettings())("multiSelect",!0)("showFiles",!0)}}function He(a,i){if(a&1){let e=B();r(0,"spk-select",11),O("cleared",function(){f(e);let o=x();return C(o.abortLoading())}),r(1,"input",12),Re("ngModelChange",function(o){f(e);let n=x();return Ce(n.selectOption,o)||(n.selectOption=o),C(o)}),l(),z(2,Ue,3,5,"ng-template"),l(),z(3,je,1,0,"spk-progress-bar",7)(4,qe,4,4,"app-file-tree",13)}if(a&2){let e=x();S("options",e.versionOptions())("isClearable",!1),m(),fe("ngModel",e.selectOption),S("ngModelOptions",Pe(6,Ye)),m(2),Y(e.isDraft()||e.isRepairing()||e.versionOptionsLoading()||e.loadingRootPath()?3:-1),m(),Y(e.showFileTree()?4:-1)}}var se=new v,Xe=()=>se.group({filesToRestore:se.control(""),passphrase:se.control(null)}),re=class a{#t=p(M);#e=p(P);#o=p(J);#n=p(N);#i=p(R);#s=p(H);#r=null;#a=null;selectFilesForm=this.#e.selectFilesForm;selectFilesFormSignal=this.#e.selectFilesFormSignal;selectOption=this.#e.selectOption;backupId=this.#e.backupId;versionOptionsLoading=this.#e.versionOptionsLoading;versionOptions=this.#e.versionOptions;isDraft=this.#e.isDraft;isFileRestore=this.#e.isFileRestore;showFileTree=_(!1);backupSettings=_(null);rootPaths=_([]);loadingRootPath=_(!1);isRepairing=_(!1);loadingEffect=q(()=>{if(this.versionOptionsLoading())return;let e=this.versionOptions();if(e&&e?.length>0){let t=e[0].Version;this.selectOption.set(t.toString())}});backupSettingsEffect=q(()=>{let i=this.backupId(),e=this.isRepairing(),t=this.selectOption();if(!t||!i)return;let n=this.versionOptions()?.find(d=>d.Version===parseInt(t))?.Time??null;if(!n||e)return;let s={id:i+"",time:n};this.backupSettings.set(s),this.getRootPath(s)});repairEffect=q(()=>{let i=this.selectOption(),e=this.versionOptions();if(i){let t=e.find(s=>s.Version===parseInt(i));if(t===void 0)return;let o=this.backupId(),n=`${o}+${t.Time}`;if(this.#a===n)return;this.#a=n,this.isRepairing.set(!0),this.#t.postApiV1BackupByIdRepairupdate({id:o,requestBody:{only_paths:!0,time:t.Time}}).pipe(X(this.abortLoading$),T(()=>{this.#a=null})).subscribe(s=>{let d=s.ID;var G=window.setInterval(()=>{this.#t.getApiV1TaskByTaskid({taskid:d}).subscribe(W=>{W.Status==="Completed"&&(clearInterval(G),this.isRepairing.set(!1))})},1e3)})}});getRootPath(i){let e={id:i.id+"",time:i.time,prefixOnly:!0,folderContents:!1},t=i.id+"";this.isRepairing()||this.#r===t||(this.#r=t,this.loadingRootPath.set(!0),this.showFileTree.set(!1),this.#o.hasV2ListOperations()?this.#t.postApiV2BackupListFolder({requestBody:{BackupId:i.id,Time:i.time,Paths:null,PageSize:0,Page:0}}).pipe(X(this.abortLoading$),T(()=>{this.showFileTree.set(!0),this.loadingRootPath.set(!1),this.#r=null})).subscribe({next:o=>{let n=(o.Data??[]).map(s=>s.Path??"");n.length>0?this.rootPaths.set(n):this.rootPaths.set(["/"])}}):this.#t.getApiV1BackupByIdFiles(e).pipe(X(this.abortLoading$),T(()=>{this.showFileTree.set(!0),this.loadingRootPath.set(!1)})).subscribe({next:o=>{let n=o.Files.map(s=>s.Path??"");n.length>0?this.rootPaths.set(n):this.rootPaths.set(["/"])}}))}abortLoading$=new _e;abortLoading(){this.showFileTree.set(!1),this.loadingRootPath.set(!1),this.abortLoading$.next(!0)}displayFn(){let i=this.versionOptions();return e=>{if(!e)return"";let t=i?.find(o=>typeof o.Version=="number"&&o.Version.toString()===e);return t?`${t.Version}: ${this.#s.transform(t.Time,"medium")}`:""}}next(){this.#n.navigate(["options"],{relativeTo:this.#i.parent})}back(){this.#e.isFileRestore()?this.#n.navigate(["encryption"],{relativeTo:this.#i.parent}):this.#e.exit()}static \u0275fac=function(e){return new(e||a)};static \u0275cmp=h({type:a,selectors:[["app-select-files"]],features:[Ne([H])],decls:13,vars:3,consts:()=>{let i;i=$localize`Select files`;let e;e=$localize`${"\uFFFD#9\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#9\uFFFD"}:CLOSE_TAG_SPK_ICON: ${"\uFFFD0\uFFFD"}:INTERPOLATION: `;let t;t=$localize`${"\uFFFD#12\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#12\uFFFD"}:CLOSE_TAG_SPK_ICON: Continue `;let o;o=$localize`Select an option...`;let n;return n=$localize`Path`,[["formRef",""],i,e,t,n,[3,"submit","formGroup"],[1,"title-30"],[1,"indeterminate","primary"],[1,"form-actions"],["spk-button","","type","button",3,"click"],["spk-button","","type","submit",1,"raised","primary"],["value","Version",3,"cleared","options","isClearable"],["type","text","placeholder",o,3,"ngModelChange","ngModel","ngModelOptions"],[3,"rootPaths","backupSettings","multiSelect","showFiles"],[1,"custom-option"],["for","path"],["type","text","id","path","formControlName","filesToRestore"]]},template:function(e,t){if(e&1){let o=B();r(0,"form",5,0),O("submit",function(){return f(o),C(t.next())}),r(2,"h3",6),E(3,1),l(),z(4,Ke,1,0,"spk-progress-bar",7)(5,He,5,7),r(6,"div",8)(7,"button",9),O("click",function(){return f(o),C(t.back())}),u(8,2),c(9,"spk-icon"),F(),l(),r(10,"button",10),u(11,3),c(12,"spk-icon"),F(),l()()()}e&2&&(S("formGroup",t.selectFilesForm),m(4),Y(t.versionOptionsLoading()?4:5),m(5),Te(t.isFileRestore()?"Back":"Exit"),Ee(8))},dependencies:[we,b,y,L,$,Ae,w,D,A,H,Q,k,I,$e,ye],styles:["[_nghost-%COMP%]{display:block}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"],changeDetection:0})};var P=class a{#t=p(N);#e=p(R);#o=p(J);#n=p(ke);#i=p(M);backupId=_(null);backup=_(null);destinationTargetUrl=_(null);selectFilesForm=Xe();optionsForm=ze();encryptionForm=We();optionsFormSignal=oe(this.optionsForm.valueChanges);selectFilesFormSignal=oe(this.selectFilesForm.valueChanges);selectOption=_(null);versionOptionsLoading=_(!1);versionOptions=_([]);isSubmitting=_(!1);isDraft=_(!1);isFileRestore=_(!1);isFullWidthPage=_(!1);init(i,e=!1,t=!1){this.backupId.set(i),this.isFileRestore.set(e),this.isDraft.set(t),e&&this.#t.navigate(["/restore-from-files/destination"]),e||this.getBackup(!0)}updateTargetUrl(i){this.destinationTargetUrl.set(i)}submit(){this.isSubmitting.set(!0);let i=this.backupId(),e=this.optionsForm.value,t=this.selectFilesForm.value,o=this.selectOption(),n=this.versionOptions()?.find(s=>s.Version===(o&&parseInt(o)));this.#i.postApiV1BackupByIdRestore({id:i??"",requestBody:{paths:t.filesToRestore?.split("\0").map(s=>`${s}*`)??[],passphrase:t.passphrase??null,time:n?.Time,restore_path:e.restoreFromPath,overwrite:e.handleExisting==="overwrite",permissions:e.permissions,skip_metadata:!0}}).pipe(T(()=>this.isSubmitting.set(!1))).subscribe({next:()=>{this.#t.navigate(["./progress"],{relativeTo:this.#e})},error:s=>{console.error("restore error",s)}})}exit(){this.#n.open(te,{data:{title:$localize`Confirm exit?`,message:$localize`Are you sure you want to exit?`,confirmText:$localize`Yes`,cancelText:$localize`Cancel`},closed:i=>{i&&(this.#s(),this.#t.navigate(["/"]))}})}getVersionOptions(){this.versionOptions()}loadFilesetsWithRetryv2(i,e=2){return this.#i.postApiV2BackupListFilesets({requestBody:{BackupId:i}}).pipe(Fe(t=>{let o=t?.error?.body?.StatusCode==="EncryptedStorageNoPassphrase",n=t?.error?.body?.StatusCode==="FolderMissing",s=t?.error?.body?.StatusCode==="EmptyRemoteFolder";return o||n||s||e===0?ce(()=>t):ue(1e3).pipe(Se(()=>this.loadFilesetsWithRetryv2(i,e-1)))}))}getBackup(i=!1){let e=this.backupId();this.versionOptionsLoading.set(!0),this.#o.hasV2ListOperations()?Z([this.#i.getApiV1BackupById({id:e}),this.loadFilesetsWithRetryv2(e)]).pipe(ee(1),T(()=>this.versionOptionsLoading.set(!1))).subscribe({next:([t,o])=>{if(o.Error)throw new Error(o.Error);this.versionOptions.set((o.Data??[]).map(n=>({Version:n.Version??-1,IsFullBackup:n.IsFullBackup??void 0,Time:n.Time??"<missing>",FileCount:n.FileCount??void 0,FileSizes:n.FileSizes??void 0}))),this.backup.set(t)},error:t=>{let o=t?.error?.body?.StatusCode==="EncryptedStorageNoPassphrase",n=t?.error?.body?.StatusCode==="FolderMissing",s=t?.error?.body?.StatusCode==="EmptyRemoteFolder",d=$localize`An error occurred while loading the backup filesets: ${t.message}`;o&&(d=$localize`The remote storage is encrypted. Please enter the passphrase to access the backup.`),n&&(d=$localize`The backup storage folder was not found.`),s&&(d=$localize`The backup storage folder does not contain any filesets.`),this.#n.open(te,{data:{title:$localize`Failed to load backup filesets`,message:d,confirmText:$localize`OK`,cancelText:void 0},closed:G=>{this.#t.navigate([o?"/restore-from-files/encryption":"/restore-from-files/destination"])}})}}):Z([this.#i.getApiV1BackupById({id:e}),this.#i.getApiV1BackupByIdFilesets({id:e}).pipe(me(3))]).pipe(ee(1),T(()=>this.versionOptionsLoading.set(!1))).subscribe({next:([t,o])=>{this.versionOptions.set(o.map(n=>({Version:n.Version??-1,IsFullBackup:(n.IsFullBackup??1)==1,Time:n.Time??"<missing>",FileCount:n.FileCount??void 0,FileSizes:n.FileSizes??void 0}))),this.backup.set(t)}})}#s(){this.selectFilesForm.reset(),this.optionsForm.reset()}static \u0275fac=function(e){return new(e||a)};static \u0275prov=de({token:a,factory:a.\u0275fac,providedIn:"root"})};var V=new v,ze=()=>V.group({restoreFrom:V.control("orignal"),restoreFromPath:V.control(""),handleExisting:V.control("overwrite"),permissions:V.control(!1)}),ae=class a{#t=p(P);#e=p(N);#o=p(R);optionsForm=this.#t.optionsForm;optionsFormSignal=this.#t.optionsFormSignal;isSubmitting=this.#t.isSubmitting;goBack(){this.#e.navigate(["select-files"],{relativeTo:this.#o.parent})}submit(){this.#t.submit()}static \u0275fac=function(e){return new(e||a)};static \u0275cmp=h({type:a,selectors:[["app-advanced-options-settings"]],decls:39,vars:6,consts:()=>{let i;i=$localize`Restore options`;let e;e=$localize`Where do you want to restore files to?`;let t;t=$localize` Original location ${"\uFFFD#9\uFFFD\uFFFD/#9\uFFFD"}:TAG_INPUT:`;let o;o=$localize` Pick location ${"\uFFFD#12\uFFFD\uFFFD/#12\uFFFD"}:TAG_INPUT:`;let n;n=$localize`How do you want to handle existing files?`;let s;s=$localize` Overwrite ${"\uFFFD#22\uFFFD\uFFFD/#22\uFFFD"}:TAG_INPUT:`;let d;d=$localize` Save different versions with timestamp in file name ${"\uFFFD#25\uFFFD\uFFFD/#25\uFFFD"}:TAG_INPUT:`;let G;G=$localize`Permissions`;let W;W=$localize` Restore read/write permissions ${"\uFFFD#31\uFFFD\uFFFD/#31\uFFFD"}:TAG_INPUT:`;let le;le=$localize`${"\uFFFD#35\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#35\uFFFD"}:CLOSE_TAG_SPK_ICON: Go back `;let pe;return pe=$localize`${"\uFFFD#38\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#38\uFFFD"}:CLOSE_TAG_SPK_ICON: Submit `,[["formRef",""],i,e,t,o,n,s,d,G,W,le,pe,[3,"submit","formGroup"],[1,"title-30"],[3,"disallowToggle"],["title",""],[1,"raised","primary"],["type","radio","name","restoreFrom","value","orignal","formControlName","restoreFrom"],["type","radio","name","restoreFrom","value","pickLocation","formControlName","restoreFrom"],[3,"disabled"],["for","path"],["type","text","id","path","formControlName","restoreFromPath"],["type","radio","name","handleExisting","value","overwrite","formControlName","handleExisting"],["type","radio","name","handleExisting","value","saveTimestamp","formControlName","handleExisting"],[1,"primary","raised"],["type","checkbox","formControlName","permissions"],[1,"form-actions"],["spk-button","","type","button",3,"click"],["spk-button","","type","submit",1,"raised","primary"]]},template:function(e,t){if(e&1){let o=B();r(0,"form",12,0),O("submit",function(){return f(o),C(t.submit())}),r(2,"h3",13),E(3,1),l(),r(4,"app-toggle-card",14),K(5,15),E(6,2),U(),r(7,"spk-radio",16),u(8,3),c(9,"input",17),F(),l(),r(10,"spk-radio",16),u(11,4),c(12,"input",18),F(),l(),r(13,"app-file-tree",19)(14,"label",20),j(15,"Path"),l(),c(16,"input",21),l()(),r(17,"app-toggle-card",14),K(18,15),E(19,5),U(),r(20,"spk-radio",16),u(21,6),c(22,"input",22),F(),l(),r(23,"spk-radio",16),u(24,7),c(25,"input",23),F(),l()(),r(26,"app-toggle-card"),K(27,15),E(28,8),U(),r(29,"spk-toggle",24),u(30,9),c(31,"input",25),F(),l()(),r(32,"div",26)(33,"button",27),O("click",function(){return f(o),C(t.goBack())}),u(34,10),c(35,"spk-icon"),F(),l(),r(36,"button",28),u(37,11),c(38,"spk-icon"),F(),l()()()}if(e&2){let o;S("formGroup",t.optionsForm),m(4),S("disallowToggle",!0),m(9),S("disabled",((o=t.optionsFormSignal())==null?null:o.restoreFrom)!=="pickLocation"),m(4),S("disallowToggle",!0),m(19),ge("loader",t.isSubmitting())}},dependencies:[w,b,y,De,ve,L,$,D,A,Ge,Q,be,Le,k,I],styles:["[_nghost-%COMP%]{display:block}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"],changeDetection:0})};export{ze as a,ae as b,We as c,ie as d,Xe as e,re as f,P as g};
|
|
1
|
+
import{a as Q}from"./chunk-74DADXEI.js";import{a as Ge}from"./chunk-A6RETV76.js";import{a as oe}from"./chunk-UEYPJIJG.js";import{a as te}from"./chunk-LUKUBN2Z.js";import{a as J}from"./chunk-LWIINXS7.js";import{b as De,c as y,e as L,f as $,h as Ae,i as b,k as ve,n as D,q as A,r as v,s as we,t as w}from"./chunk-ABANCAM5.js";import{b as R,d as N}from"./chunk-WRKRV6RQ.js";import{A as be,a as I,e as ke,g as k,l as Me,p as ye,q as Le,t as $e}from"./chunk-H5MGVT7B.js";import{h as M}from"./chunk-N5FH4YAX.js";import{pa as H}from"./chunk-EBXJGPRA.js";import{B as Fe,Bc as Ie,Db as r,E as ee,Eb as l,F as T,Fb as c,Gb as K,Hb as U,J as me,Jb as B,N as Se,O as X,Pb as u,Qb as F,Rb as E,Rc as q,Sb as Te,T as de,Tb as Ee,Ua as m,Vb as O,Wb as x,Z as p,ea as f,fa as C,gb as h,i as _e,jc as j,lb as z,mc as Oe,o as ce,oc as fe,pc as Ce,qc as Re,ub as S,uc as Ne,va as _,vc as Pe,wb as ge,x as Z,y as ue,zb as Y,zc as he}from"./chunk-4KE2I7OA.js";var Be=new v,We=()=>Be.group({passphrase:Be.control("")}),ie=class a{#t=p(M);#e=p(P);#o=p(N);#n=p(R);encryptionForm=this.#e.encryptionForm;creatingTemporaryBackup=_(!1);next(){let i=this.#e.destinationTargetUrl();if(!i)throw new Error("No target URL");this.creatingTemporaryBackup.set(!0);let e=this.encryptionForm.value?.passphrase??null,t=[{Name:"--no-encryption",Value:"true"}];e&&(t=[{Name:"--passphrase",Value:e}]),this.#t.postApiV1Backups({requestBody:{Backup:{TargetURL:i,Settings:t}},temporary:!0}).pipe(T(()=>this.creatingTemporaryBackup.set(!1))).subscribe({next:o=>{let n=o.ID;this.#o.navigate([`/restore-draft/${n}`])},error:o=>{console.error(o)}})}back(){this.#e.isFileRestore()?this.#o.navigate(["encryption"],{relativeTo:this.#n.parent}):this.#e.exit()}static \u0275fac=function(e){return new(e||a)};static \u0275cmp=h({type:a,selectors:[["app-restore-encryption"]],decls:12,vars:1,consts:()=>{let i;i=$localize`Enter backup passphrase if defined.`;let e;e=$localize`Password`;let t;t=$localize`${"\uFFFD#8\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#8\uFFFD"}:CLOSE_TAG_SPK_ICON: Back `;let o;return o=$localize`${"\uFFFD#11\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#11\uFFFD"}:CLOSE_TAG_SPK_ICON: Continue `,[e,t,o,[3,"submit","formGroup"],["for","password"],["type","password","id","password","placeholder",i,"formControlName","passphrase"],[1,"form-actions"],["spk-button","","type","button",3,"click"],["spk-button","","type","submit",1,"raised","primary"]]},template:function(e,t){e&1&&(r(0,"form",3),O("submit",function(){return t.next()}),r(1,"spk-form-field")(2,"label",4),E(3,0),l(),c(4,"input",5),l(),r(5,"div",6)(6,"button",7),O("click",function(){return t.back()}),u(7,1),c(8,"spk-icon"),F(),l(),r(9,"button",8),u(10,2),c(11,"spk-icon"),F(),l()()()),e&2&&S("formGroup",t.encryptionForm)},dependencies:[w,b,y,L,$,D,A,Me,I,k],styles:["[_nghost-%COMP%]{display:block}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"],changeDetection:0})};var Ye=()=>({standalone:!0});function Ke(a,i){a&1&&c(0,"spk-progress-bar",7)}function Ue(a,i){if(a&1&&(r(0,"div",14),j(1),he(2,"date"),l()),a&2){let e=i.$implicit;m(),Oe("",e.Version,": ",Ie(2,2,e.Time,"medium"),"")}}function je(a,i){a&1&&c(0,"spk-progress-bar",7)}function qe(a,i){if(a&1&&(r(0,"app-file-tree",13)(1,"label",15),E(2,4),l(),c(3,"input",16),l()),a&2){let e=x(2);S("rootPaths",e.rootPaths())("backupSettings",e.backupSettings())("multiSelect",!0)("showFiles",!0)}}function He(a,i){if(a&1){let e=B();r(0,"spk-select",11),O("cleared",function(){f(e);let o=x();return C(o.abortLoading())}),r(1,"input",12),Re("ngModelChange",function(o){f(e);let n=x();return Ce(n.selectOption,o)||(n.selectOption=o),C(o)}),l(),z(2,Ue,3,5,"ng-template"),l(),z(3,je,1,0,"spk-progress-bar",7)(4,qe,4,4,"app-file-tree",13)}if(a&2){let e=x();S("options",e.versionOptions())("isClearable",!1),m(),fe("ngModel",e.selectOption),S("ngModelOptions",Pe(6,Ye)),m(2),Y(e.isDraft()||e.isRepairing()||e.versionOptionsLoading()||e.loadingRootPath()?3:-1),m(),Y(e.showFileTree()?4:-1)}}var se=new v,Xe=()=>se.group({filesToRestore:se.control(""),passphrase:se.control(null)}),re=class a{#t=p(M);#e=p(P);#o=p(J);#n=p(N);#i=p(R);#s=p(H);#r=null;#a=null;selectFilesForm=this.#e.selectFilesForm;selectFilesFormSignal=this.#e.selectFilesFormSignal;selectOption=this.#e.selectOption;backupId=this.#e.backupId;versionOptionsLoading=this.#e.versionOptionsLoading;versionOptions=this.#e.versionOptions;isDraft=this.#e.isDraft;isFileRestore=this.#e.isFileRestore;showFileTree=_(!1);backupSettings=_(null);rootPaths=_([]);loadingRootPath=_(!1);isRepairing=_(!1);loadingEffect=q(()=>{if(this.versionOptionsLoading())return;let e=this.versionOptions();if(e&&e?.length>0){let t=e[0].Version;this.selectOption.set(t.toString())}});backupSettingsEffect=q(()=>{let i=this.backupId(),e=this.isRepairing(),t=this.selectOption();if(!t||!i)return;let n=this.versionOptions()?.find(d=>d.Version===parseInt(t))?.Time??null;if(!n||e)return;let s={id:i+"",time:n};this.backupSettings.set(s),this.getRootPath(s)});repairEffect=q(()=>{let i=this.selectOption(),e=this.versionOptions();if(i){let t=e.find(s=>s.Version===parseInt(i));if(t===void 0)return;let o=this.backupId(),n=`${o}+${t.Time}`;if(this.#a===n)return;this.#a=n,this.isRepairing.set(!0),this.#t.postApiV1BackupByIdRepairupdate({id:o,requestBody:{only_paths:!0,time:t.Time}}).pipe(X(this.abortLoading$),T(()=>{this.#a=null})).subscribe(s=>{let d=s.ID;var G=window.setInterval(()=>{this.#t.getApiV1TaskByTaskid({taskid:d}).subscribe(W=>{W.Status==="Completed"&&(clearInterval(G),this.isRepairing.set(!1))})},1e3)})}});getRootPath(i){let e={id:i.id+"",time:i.time,prefixOnly:!0,folderContents:!1},t=i.id+"";this.isRepairing()||this.#r===t||(this.#r=t,this.loadingRootPath.set(!0),this.showFileTree.set(!1),this.#o.hasV2ListOperations()?this.#t.postApiV2BackupListFolder({requestBody:{BackupId:i.id,Time:i.time,Paths:null,PageSize:0,Page:0}}).pipe(X(this.abortLoading$),T(()=>{this.showFileTree.set(!0),this.loadingRootPath.set(!1),this.#r=null})).subscribe({next:o=>{let n=(o.Data??[]).map(s=>s.Path??"");n.length>0?this.rootPaths.set(n):this.rootPaths.set(["/"])}}):this.#t.getApiV1BackupByIdFiles(e).pipe(X(this.abortLoading$),T(()=>{this.showFileTree.set(!0),this.loadingRootPath.set(!1)})).subscribe({next:o=>{let n=o.Files.map(s=>s.Path??"");n.length>0?this.rootPaths.set(n):this.rootPaths.set(["/"])}}))}abortLoading$=new _e;abortLoading(){this.showFileTree.set(!1),this.loadingRootPath.set(!1),this.abortLoading$.next(!0)}displayFn(){let i=this.versionOptions();return e=>{if(!e)return"";let t=i?.find(o=>typeof o.Version=="number"&&o.Version.toString()===e);return t?`${t.Version}: ${this.#s.transform(t.Time,"medium")}`:""}}next(){this.#n.navigate(["options"],{relativeTo:this.#i.parent})}back(){this.#e.isFileRestore()?this.#n.navigate(["encryption"],{relativeTo:this.#i.parent}):this.#e.exit()}static \u0275fac=function(e){return new(e||a)};static \u0275cmp=h({type:a,selectors:[["app-select-files"]],features:[Ne([H])],decls:13,vars:3,consts:()=>{let i;i=$localize`Select files`;let e;e=$localize`${"\uFFFD#9\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#9\uFFFD"}:CLOSE_TAG_SPK_ICON: ${"\uFFFD0\uFFFD"}:INTERPOLATION: `;let t;t=$localize`${"\uFFFD#12\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#12\uFFFD"}:CLOSE_TAG_SPK_ICON: Continue `;let o;o=$localize`Select an option...`;let n;return n=$localize`Path`,[["formRef",""],i,e,t,n,[3,"submit","formGroup"],[1,"title-30"],[1,"indeterminate","primary"],[1,"form-actions"],["spk-button","","type","button",3,"click"],["spk-button","","type","submit",1,"raised","primary"],["value","Version",3,"cleared","options","isClearable"],["type","text","placeholder",o,3,"ngModelChange","ngModel","ngModelOptions"],[3,"rootPaths","backupSettings","multiSelect","showFiles"],[1,"custom-option"],["for","path"],["type","text","id","path","formControlName","filesToRestore"]]},template:function(e,t){if(e&1){let o=B();r(0,"form",5,0),O("submit",function(){return f(o),C(t.next())}),r(2,"h3",6),E(3,1),l(),z(4,Ke,1,0,"spk-progress-bar",7)(5,He,5,7),r(6,"div",8)(7,"button",9),O("click",function(){return f(o),C(t.back())}),u(8,2),c(9,"spk-icon"),F(),l(),r(10,"button",10),u(11,3),c(12,"spk-icon"),F(),l()()()}e&2&&(S("formGroup",t.selectFilesForm),m(4),Y(t.versionOptionsLoading()?4:5),m(5),Te(t.isFileRestore()?"Back":"Exit"),Ee(8))},dependencies:[we,b,y,L,$,Ae,w,D,A,H,Q,k,I,$e,ye],styles:["[_nghost-%COMP%]{display:block}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"],changeDetection:0})};var P=class a{#t=p(N);#e=p(R);#o=p(J);#n=p(ke);#i=p(M);backupId=_(null);backup=_(null);destinationTargetUrl=_(null);selectFilesForm=Xe();optionsForm=ze();encryptionForm=We();optionsFormSignal=oe(this.optionsForm.valueChanges);selectFilesFormSignal=oe(this.selectFilesForm.valueChanges);selectOption=_(null);versionOptionsLoading=_(!1);versionOptions=_([]);isSubmitting=_(!1);isDraft=_(!1);isFileRestore=_(!1);isFullWidthPage=_(!1);init(i,e=!1,t=!1){this.backupId.set(i),this.isFileRestore.set(e),this.isDraft.set(t),e&&this.#t.navigate(["/restore-from-files/destination"]),e||this.getBackup(!0)}updateTargetUrl(i){this.destinationTargetUrl.set(i)}submit(){this.isSubmitting.set(!0);let i=this.backupId(),e=this.optionsForm.value,t=this.selectFilesForm.value,o=this.selectOption(),n=this.versionOptions()?.find(s=>s.Version===(o&&parseInt(o)));this.#i.postApiV1BackupByIdRestore({id:i??"",requestBody:{paths:t.filesToRestore?.split("\0").map(s=>`${s}*`)??[],passphrase:t.passphrase??null,time:n?.Time,restore_path:e.restoreFromPath,overwrite:e.handleExisting==="overwrite",permissions:e.permissions,skip_metadata:!0}}).pipe(T(()=>this.isSubmitting.set(!1))).subscribe({next:()=>{this.#t.navigate(["./progress"],{relativeTo:this.#e})},error:s=>{console.error("restore error",s)}})}exit(){this.#n.open(te,{data:{title:$localize`Confirm exit?`,message:$localize`Are you sure you want to exit?`,confirmText:$localize`Yes`,cancelText:$localize`Cancel`},closed:i=>{i&&(this.#s(),this.#t.navigate(["/"]))}})}getVersionOptions(){this.versionOptions()}loadFilesetsWithRetryv2(i,e=2){return this.#i.postApiV2BackupListFilesets({requestBody:{BackupId:i}}).pipe(Fe(t=>{let o=t?.error?.body?.StatusCode==="EncryptedStorageNoPassphrase",n=t?.error?.body?.StatusCode==="FolderMissing",s=t?.error?.body?.StatusCode==="EmptyRemoteFolder";return o||n||s||e===0?ce(()=>t):ue(1e3).pipe(Se(()=>this.loadFilesetsWithRetryv2(i,e-1)))}))}getBackup(i=!1){let e=this.backupId();this.versionOptionsLoading.set(!0),this.#o.hasV2ListOperations()?Z([this.#i.getApiV1BackupById({id:e}),this.loadFilesetsWithRetryv2(e)]).pipe(ee(1),T(()=>this.versionOptionsLoading.set(!1))).subscribe({next:([t,o])=>{if(o.Error)throw new Error(o.Error);this.versionOptions.set((o.Data??[]).map(n=>({Version:n.Version??-1,IsFullBackup:n.IsFullBackup??void 0,Time:n.Time??"<missing>",FileCount:n.FileCount??void 0,FileSizes:n.FileSizes??void 0}))),this.backup.set(t)},error:t=>{let o=t?.error?.body?.StatusCode==="EncryptedStorageNoPassphrase",n=t?.error?.body?.StatusCode==="FolderMissing",s=t?.error?.body?.StatusCode==="EmptyRemoteFolder",d=$localize`An error occurred while loading the backup filesets: ${t.message}`;o&&(d=$localize`The remote storage is encrypted. Please enter the passphrase to access the backup.`),n&&(d=$localize`The backup storage folder was not found.`),s&&(d=$localize`The backup storage folder does not contain any filesets.`),this.#n.open(te,{data:{title:$localize`Failed to load backup filesets`,message:d,confirmText:$localize`OK`,cancelText:void 0},closed:G=>{this.#t.navigate([o?"/restore-from-files/encryption":"/restore-from-files/destination"])}})}}):Z([this.#i.getApiV1BackupById({id:e}),this.#i.getApiV1BackupByIdFilesets({id:e}).pipe(me(3))]).pipe(ee(1),T(()=>this.versionOptionsLoading.set(!1))).subscribe({next:([t,o])=>{this.versionOptions.set(o.map(n=>({Version:n.Version??-1,IsFullBackup:(n.IsFullBackup??1)==1,Time:n.Time??"<missing>",FileCount:n.FileCount??void 0,FileSizes:n.FileSizes??void 0}))),this.backup.set(t)}})}#s(){this.selectFilesForm.reset(),this.optionsForm.reset()}static \u0275fac=function(e){return new(e||a)};static \u0275prov=de({token:a,factory:a.\u0275fac,providedIn:"root"})};var V=new v,ze=()=>V.group({restoreFrom:V.control("orignal"),restoreFromPath:V.control(""),handleExisting:V.control("overwrite"),permissions:V.control(!1)}),ae=class a{#t=p(P);#e=p(N);#o=p(R);optionsForm=this.#t.optionsForm;optionsFormSignal=this.#t.optionsFormSignal;isSubmitting=this.#t.isSubmitting;goBack(){this.#e.navigate(["select-files"],{relativeTo:this.#o.parent})}submit(){this.#t.submit()}static \u0275fac=function(e){return new(e||a)};static \u0275cmp=h({type:a,selectors:[["app-advanced-options-settings"]],decls:39,vars:6,consts:()=>{let i;i=$localize`Restore options`;let e;e=$localize`Where do you want to restore files to?`;let t;t=$localize` Original location ${"\uFFFD#9\uFFFD\uFFFD/#9\uFFFD"}:TAG_INPUT:`;let o;o=$localize` Pick location ${"\uFFFD#12\uFFFD\uFFFD/#12\uFFFD"}:TAG_INPUT:`;let n;n=$localize`How do you want to handle existing files?`;let s;s=$localize` Overwrite ${"\uFFFD#22\uFFFD\uFFFD/#22\uFFFD"}:TAG_INPUT:`;let d;d=$localize` Save different versions with timestamp in file name ${"\uFFFD#25\uFFFD\uFFFD/#25\uFFFD"}:TAG_INPUT:`;let G;G=$localize`Permissions`;let W;W=$localize` Restore read/write permissions ${"\uFFFD#31\uFFFD\uFFFD/#31\uFFFD"}:TAG_INPUT:`;let le;le=$localize`${"\uFFFD#35\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#35\uFFFD"}:CLOSE_TAG_SPK_ICON: Go back `;let pe;return pe=$localize`${"\uFFFD#38\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#38\uFFFD"}:CLOSE_TAG_SPK_ICON: Submit `,[["formRef",""],i,e,t,o,n,s,d,G,W,le,pe,[3,"submit","formGroup"],[1,"title-30"],[3,"disallowToggle"],["title",""],[1,"raised","primary"],["type","radio","name","restoreFrom","value","orignal","formControlName","restoreFrom"],["type","radio","name","restoreFrom","value","pickLocation","formControlName","restoreFrom"],[3,"disabled"],["for","path"],["type","text","id","path","formControlName","restoreFromPath"],["type","radio","name","handleExisting","value","overwrite","formControlName","handleExisting"],["type","radio","name","handleExisting","value","saveTimestamp","formControlName","handleExisting"],[1,"primary","raised"],["type","checkbox","formControlName","permissions"],[1,"form-actions"],["spk-button","","type","button",3,"click"],["spk-button","","type","submit",1,"raised","primary"]]},template:function(e,t){if(e&1){let o=B();r(0,"form",12,0),O("submit",function(){return f(o),C(t.submit())}),r(2,"h3",13),E(3,1),l(),r(4,"app-toggle-card",14),K(5,15),E(6,2),U(),r(7,"spk-radio",16),u(8,3),c(9,"input",17),F(),l(),r(10,"spk-radio",16),u(11,4),c(12,"input",18),F(),l(),r(13,"app-file-tree",19)(14,"label",20),j(15,"Path"),l(),c(16,"input",21),l()(),r(17,"app-toggle-card",14),K(18,15),E(19,5),U(),r(20,"spk-radio",16),u(21,6),c(22,"input",22),F(),l(),r(23,"spk-radio",16),u(24,7),c(25,"input",23),F(),l()(),r(26,"app-toggle-card"),K(27,15),E(28,8),U(),r(29,"spk-toggle",24),u(30,9),c(31,"input",25),F(),l()(),r(32,"div",26)(33,"button",27),O("click",function(){return f(o),C(t.goBack())}),u(34,10),c(35,"spk-icon"),F(),l(),r(36,"button",28),u(37,11),c(38,"spk-icon"),F(),l()()()}if(e&2){let o;S("formGroup",t.optionsForm),m(4),S("disallowToggle",!0),m(9),S("disabled",((o=t.optionsFormSignal())==null?null:o.restoreFrom)!=="pickLocation"),m(4),S("disallowToggle",!0),m(19),ge("loader",t.isSubmitting())}},dependencies:[w,b,y,De,ve,L,$,D,A,Ge,Q,be,Le,k,I],styles:["[_nghost-%COMP%]{display:block}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"],changeDetection:0})};export{ze as a,ae as b,We as c,ie as d,Xe as e,re as f,P as g};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import{g as jt}from"./chunk-MZZJNTYI.js";import{a as qt,l as Q}from"./chunk-BMMOMXWX.js";import{a as Ht,b as zt}from"./chunk-GQCUCL25.js";import{a as Wt}from"./chunk-74DADXEI.js";import{a as Xt}from"./chunk-A6RETV76.js";import{a as Ut,c as Kt}from"./chunk-HIW2CN45.js";import"./chunk-4V45XF67.js";import"./chunk-UEYPJIJG.js";import{a as Nt}from"./chunk-LUKUBN2Z.js";import"./chunk-RHW5QVAY.js";import"./chunk-LWIINXS7.js";import{b as It,c as yt,e as ht,f as wt,g as $t,i as At,j as vt,m as Pt,n as Vt,o as Mt,p as bt,q as Gt,r as Lt,t as Bt}from"./chunk-ABANCAM5.js";import{b as Ft,d as Tt}from"./chunk-WRKRV6RQ.js";import"./chunk-DYTQQHMA.js";import{A as kt,C as Rt,a as Ct,b as ft,d as gt,e as Dt,l as St,o as Et,p as xt,t as Ot}from"./chunk-H5MGVT7B.js";import"./chunk-N5FH4YAX.js";import{ia as ut}from"./chunk-EBXJGPRA.js";import{$a as tt,$b as ot,Ab as I,Bb as y,Cb as h,Db as l,Dc as V,Eb as r,Fb as u,Gb as w,Hb as $,Ib as G,Jb as S,Pb as x,Qb as O,Qc as U,Rb as P,Rc as dt,Sb as nt,Tb as it,Ua as a,Ub as H,Vb as g,Wb as s,Z as N,Zb as k,ac as F,ea as T,fa as C,gb as et,gc as at,hc as rt,ic as A,jc as _,ka as Z,kc as z,lb as m,lc as D,mc as lt,oc as st,pc as pt,qc as _t,rc as X,sc as q,tc as j,ub as c,uc as ct,va as R,vc as mt,wb as W,wc as L,yc as B,zb as d}from"./chunk-4KE2I7OA.js";import"./chunk-7CGTOI24.js";var Jt=["formRef"],Yt=(n,i,t,e)=>({index:n,formView:i,formGroupName:"custom",destinationType:t,oauthField:e}),Y=n=>({$implicit:n}),Zt=(n,i,t,e)=>({index:n,formView:i,formGroupName:"dynamic",destinationType:t,oauthField:e}),te=(n,i,t,e)=>({index:n,formView:i,formGroupName:"advanced",destinationType:t,oauthField:e}),ee=()=>({maxWidth:"700px",width:"100%"});function ne(n,i){n&1&&(x(0,5,2),u(1,"spk-icon"),O())}function ie(n,i){n&1&&P(0,5,3)}function oe(n,i){if(n&1){let t=S();x(0,5,1),l(1,"button",20),g("click",function(){T(t);let o=s();return C(o.testDestination())}),m(2,ne,2,0)(3,ie,1,0),r(),O()}if(n&2){let t=s();a(),W("success",t.successfulTest()),a(),d(t.successfulTest()?2:3)}}function ae(n,i){if(n&1){let t=S();l(0,"p",26),g("click",function(){T(t);let o=s();return C(o.removeDestinationFormGroup(o.destinationCount()-1))}),x(1,8),u(2,"span",27),O(),r()}}function re(n,i){if(n&1){let t=S();l(0,"div",33),g("click",function(){let o=T(t).$implicit,p=s(2);return C(p.addDestinationFormGroup(o.key))}),l(1,"h3"),_(2),r(),l(3,"p"),_(4),r()()}if(n&2){let t=i.$implicit;a(2),z(t.displayName),a(2),z(t.description)}}function le(n,i){if(n&1){let t=S();l(0,"button",34,1),g("click",function(){let o=T(t).$implicit,p=s(2);return C(p.addDestinationFormGroup(o.key))}),_(2),r()}if(n&2){let t=i.$implicit;a(2),D(" ",t.displayName," ")}}function se(n,i){if(n&1&&(l(0,"div",28),y(1,re,5,2,"div",29,I),r(),l(3,"spk-menu",30)(4,"button",31),P(5,9),r(),w(6,19),y(7,le,3,1,"button",32,I),$(),r()),n&2){let t=s();a(),h(t.destinationTypeOptionsFocused()),a(2),c("searchable",!0),a(4),h(t.destinationTypeOptionsNotFocused())}}function pe(n,i){n&1&&G(0)}function _e(n,i){if(n&1&&m(0,pe,1,0,"ng-container",39),n&2){let t,e=i.$implicit,o=i.$index;s();let p=A(18),f=s();c("ngTemplateOutlet",p)("ngTemplateOutletContext",L(7,Y,B(2,Yt,o,e,(t=f.destinationFormSignal())==null||t.destinations==null||t.destinations[0]==null?null:t.destinations[0].destinationType,f.destinationFormPair().oauthField)))}}function ce(n,i){n&1&&G(0)}function me(n,i){if(n&1&&m(0,ce,1,0,"ng-container",39),n&2){let t,e=i.$implicit,o=i.$index;s();let p=A(18),f=s();c("ngTemplateOutlet",p)("ngTemplateOutletContext",L(7,Y,B(2,Zt,o,e,(t=f.destinationFormSignal())==null||t.destinations==null||t.destinations[0]==null?null:t.destinations[0].destinationType,f.destinationFormPair().oauthField)))}}function de(n,i){if(n&1){let t=S();x(0,10,1),l(1,"button",34,1),g("click",function(){let o=T(t).$implicit,p=s(2);return C(p.addAdvancedFormPair(o,0))}),r(),O()}if(n&2){let t=i.$implicit;a(),nt(t.name),it(0)}}function ue(n,i){n&1&&G(0)}function Fe(n,i){if(n&1&&m(0,ue,1,0,"ng-container",39),n&2){let t,e=i.$implicit,o=i.$index;s();let p=A(18),f=s();c("ngTemplateOutlet",p)("ngTemplateOutletContext",L(7,Y,B(2,te,o,e,(t=f.destinationFormSignal())==null||t.destinations==null||t.destinations[0]==null?null:t.destinations[0].destinationType,f.destinationFormPair().oauthField)))}}function Te(n,i){if(n&1&&(l(0,"spk-icon",47),_(1,"question"),r()),n&2){let t=s(2).$implicit;c("spkTooltip",t.formView.longDescription)}}function Ce(n,i){if(n&1&&(l(0,"app-file-tree",42)(1,"label",46),_(2),m(3,Te,2,1,"spk-icon",47),r(),u(4,"input",48),r()),n&2){let t,e=s().$implicit,o=s(2);c("startingPath",o.getFormFieldValue(0,e.formGroupName,e.formView.name))("accepts",e.formView.accepts)("showFiles",!0)("hideShortcuts",!0)("showHiddenNodes",!0)("selectFiles",!0),a(),F("for","destination-",e.formGroupName,"-",e.index,"-",e.asHttpOptions?"http":"other",""),a(),D(" ",(t=e.formView.shortDescription)!==null&&t!==void 0?t:e.formView.name," "),a(),d(e.formView.longDescription?3:-1),a(),F("id","destination-",e.formGroupName,"-",e.index,"-",e.asHttpOptions?"http":"other",""),k("formControlName",e.formView.name)}}function fe(n,i){if(n&1&&(l(0,"spk-icon",47),_(1,"question"),r()),n&2){let t=s(2).$implicit;c("spkTooltip",t.formView.longDescription)}}function ge(n,i){if(n&1&&(l(0,"app-file-tree",43)(1,"label",46),_(2),m(3,fe,2,1,"spk-icon",47),r(),u(4,"input",48),r()),n&2){let t,e=s().$implicit,o=s(2);c("hideShortcuts",!0)("startingPath",o.getFormFieldValue(0,e.formGroupName,e.formView.name)),a(),F("for","destination-",e.formGroupName,"-",e.index,"-",e.asHttpOptions?"http":"other",""),a(),D(" ",(t=e.formView.shortDescription)!==null&&t!==void 0?t:e.formView.name," "),a(),d(e.formView.longDescription?3:-1),a(),F("id","destination-",e.formGroupName,"-",e.index,"-",e.asHttpOptions?"http":"other",""),k("formControlName",e.formView.name)}}function De(n,i){if(n&1&&(l(0,"spk-icon",47),_(1,"question"),r()),n&2){let t=s(2).$implicit;c("spkTooltip",t.formView.longDescription)}}function Se(n,i){n&1&&(l(0,"spk-icon",50),_(1,"link"),r())}function Ee(n,i){n&1&&(l(0,"spk-icon",50),_(1,"envelope"),r())}function xe(n,i){n&1&&(l(0,"spk-icon",50),_(1,"textbox"),r())}function Oe(n,i){if(n&1&&(l(0,"spk-form-field")(1,"label",46),_(2),m(3,De,2,1,"spk-icon",47),r(),u(4,"input",49),m(5,Se,2,0,"spk-icon",50)(6,Ee,2,0,"spk-icon",50)(7,xe,2,0,"spk-icon",50),r()),n&2){let t,e=s().$implicit;a(),F("for","destination-",e.formGroupName,"-",e.index,"-",e.asHttpOptions?"http":"other",""),a(),D(" ",(t=e.formView.shortDescription)!==null&&t!==void 0?t:e.formView.name," "),a(),d(e.formView.longDescription?3:-1),a(),F("id","destination-",e.formGroupName,"-",e.index,"-",e.asHttpOptions?"http":"other",""),k("formControlName",e.formView.name),c("type",e.formView.type==="Email"?"email":"text"),a(),d(e.formView.type==="Path"?5:e.formView.type==="Email"?6:7)}}function ke(n,i){if(n&1){let t=S();l(0,"span",54),g("click",function(){T(t);let o=s(2).$implicit,p=s(2);return C(p.oauthStartTokenCreation(o.destinationType))}),_(1,"AuthID"),r()}}function Re(n,i){n&1&&(l(0,"spk-icon",50),_(1,"password"),r())}function Ne(n,i){if(n&1){let t=S();l(0,"spk-icon",55),g("click",function(){T(t);let o=s(2).$implicit;return C(o.formView.showPassword=!o.formView.showPassword)}),_(1," eye "),r()}}function Ie(n,i){if(n&1){let t=S();l(0,"spk-icon",55),g("click",function(){T(t);let o=s(2).$implicit;return C(o.formView.showPassword=!o.formView.showPassword)}),_(1," eye-slash "),r()}}function ye(n,i){if(n&1&&(l(0,"spk-form-field")(1,"label",46),_(2),r(),u(3,"input",51),m(4,ke,2,0,"span",52)(5,Re,2,0,"spk-icon",50)(6,Ne,2,0,"spk-icon",53)(7,Ie,2,0,"spk-icon",53),r()),n&2){let t,e=s().$implicit;a(),F("for","destination-",e.formGroupName,"-",e.index,"-",e.asHttpOptions?"http":"other",""),a(),D(" ",(t=e.formView.shortDescription)!==null&&t!==void 0?t:e.formView.name," "),a(),F("id","destination-",e.formGroupName,"-",e.index,"-",e.asHttpOptions?"http":"other",""),k("formControlName",e.formView.name),c("type",e.formView.showPassword?"text":"password"),a(),d(e.oauthField===e.formView.name?4:5),a(2),d(e.formView.showPassword?6:7)}}function he(n,i){if(n&1&&(l(0,"spk-icon",47),_(1,"question"),r()),n&2){let t=s(3).$implicit;c("spkTooltip",t.formView.longDescription)}}function we(n,i){if(n&1&&_(0),n&2){let t=i.$implicit;D(" ",t," ")}}function $e(n,i){if(n&1&&(l(0,"spk-select",56)(1,"label",46),_(2),m(3,he,2,1,"spk-icon",47),r(),u(4,"input",48),r(),m(5,we,1,1,"ng-template",null,3,V)),n&2){let t,e=A(6);s();let o=j(0),p=s().$implicit;c("options",o)("isClearable",!1)("optionTemplate",e),a(),F("for","destination-",p.formGroupName,"-",p.index,"-",p.asHttpOptions?"http":"other",""),a(),D(" ",(t=p.formView.shortDescription)!==null&&t!==void 0?t:p.formView.name," "),a(),d(p.formView.longDescription?3:-1),a(),F("id","destination-",p.formGroupName,"-",p.index,"-",p.asHttpOptions?"http":"other",""),k("formControlName",p.formView.name)}}function Ae(n,i){if(n&1&&(X(0),m(1,$e,7,14)),n&2){let t=s().$implicit,e=q(t.formView.loadOptions?t.formView.loadOptions(s(2).injector)():t.formView.options);a(),d(e?1:-1)}}function ve(n,i){if(n&1&&(l(0,"spk-icon",47),_(1,"question"),r()),n&2){let t=s(3).$implicit;c("spkTooltip",t.formView.longDescription)}}function Pe(n,i){if(n&1&&_(0),n&2){let t=i.$implicit;lt(" ",t.key," ",t.value?"("+t.value+")":""," ")}}function Ve(n,i){if(n&1&&(l(0,"spk-select",58)(1,"label",46),_(2),m(3,ve,2,1,"spk-icon",47),r(),u(4,"input",48),r(),m(5,Pe,1,2,"ng-template",null,4,V)),n&2){let t,e=A(6);s();let o=j(0),p=s().$implicit;c("options",o)("asFreeText",!0)("inlineSearch",!0)("optionTemplate",e),a(),F("for","destination-",p.formGroupName,"-",p.index,"-",p.asHttpOptions?"http":"other",""),a(),D(" ",(t=p.formView.shortDescription)!==null&&t!==void 0?t:p.formView.name," "),a(),d(p.formView.longDescription?3:-1),a(),F("id","destination-",p.formGroupName,"-",p.index,"-",p.asHttpOptions?"http":"other",""),k("formControlName",p.formView.name)}}function Me(n,i){n&1&&u(0,"spk-progress-bar",57)}function be(n,i){if(n&1&&(X(0),m(1,Ve,7,15)(2,Me,1,0,"spk-progress-bar",57)),n&2){let t=s().$implicit,e=q(t.formView.loadOptions?t.formView.loadOptions(s(2).injector)():t.formView.options);a(),d(e?1:2)}}function Ge(n,i){if(n&1&&(l(0,"spk-icon",47),_(1,"question"),r()),n&2){let t=s(2).$implicit;c("spkTooltip",t.formView.longDescription)}}function Le(n,i){if(n&1&&(l(0,"app-size",44)(1,"label",46),_(2),m(3,Ge,2,1,"spk-icon",47),r()()),n&2){let t,e=s().$implicit;c("inputType",e.Name)("formControlName",e.formView.name)("customId",`destination-{{ item.formGroupName }}-{{ item.index }}-{{
|
|
2
|
+
item.asHttpOptions ? 'http' : 'other'
|
|
3
|
+
}}`),a(),F("for","destination-",e.formGroupName,"-",e.index,"-",e.asHttpOptions?"http":"other",""),a(),D(" ",(t=e.formView.shortDescription)!==null&&t!==void 0?t:e.formView.name," "),a(),d(e.formView.longDescription?3:-1)}}function Be(n,i){if(n&1&&(l(0,"spk-icon",47),_(1,"question"),r()),n&2){let t=s(2).$implicit;c("spkTooltip",t.formView.longDescription)}}function Ue(n,i){if(n&1&&(l(0,"spk-form-field")(1,"label",46),_(2),m(3,Be,2,1,"spk-icon",47),r(),u(4,"input",59),l(5,"spk-icon",50),_(6,"numpad"),r()()),n&2){let t,e=s().$implicit;a(),F("for","destination-",e.formGroupName,"-",e.index,"-",e.asHttpOptions?"http":"other",""),a(),D(" ",(t=e.formView.shortDescription)!==null&&t!==void 0?t:e.formView.name," "),a(),d(e.formView.longDescription?3:-1),a(),F("id","destination-",e.formGroupName,"-",e.index,"-",e.asHttpOptions?"http":"other",""),k("formControlName",e.formView.name)}}function Ke(n,i){if(n&1&&(l(0,"spk-icon",47),_(1,"question"),r()),n&2){let t=s(2).$implicit;c("spkTooltip",t.formView.longDescription)}}function We(n,i){if(n&1&&(l(0,"spk-toggle",45)(1,"label",46),_(2),m(3,Ke,2,1,"spk-icon",47),r(),u(4,"input",60),r()),n&2){let t,e=s().$implicit;a(),F("for","destination-",e.formGroupName,"-",e.index,"-",e.asHttpOptions?"http":"other",""),a(),D(" ",(t=e.formView.shortDescription)!==null&&t!==void 0?t:e.formView.name," "),a(),d(e.formView.longDescription?3:-1),a(),F("id","destination-",e.formGroupName,"-",e.index,"-",e.asHttpOptions?"http":"other",""),k("formControlName",e.formView.name)}}function He(n,i){if(n&1&&(l(0,"spk-icon",47),_(1,"question"),r()),n&2){let t=s(2).$implicit;c("spkTooltip",t.formView.longDescription)}}function ze(n,i){if(n&1&&_(0),n&2){let t=i.$implicit;D(" ",t," ")}}function Xe(n,i){if(n&1&&(l(0,"spk-select",61)(1,"label",46),_(2),m(3,He,2,1,"spk-icon",47),r(),u(4,"input",62),r(),m(5,ze,1,1,"ng-template",null,4,V)),n&2){let t,e=A(6),o=s().$implicit;c("options",o.formView.options)("selectMultiple",!0)("optionTemplate",e),a(),ot("for","destination-",o.formGroupName,"-",o.index,""),a(),D(" ",(t=o.formView.shortDescription)!==null&&t!==void 0?t:o.formView.name," "),a(),d(o.formView.longDescription?3:-1),a(),k("formControlName",o.formView.name)}}function qe(n,i){if(n&1&&(l(0,"spk-icon",47),_(1,"question"),r()),n&2){let t=s(2).$implicit;c("spkTooltip",t.formView.longDescription)}}function je(n,i){if(n&1&&(l(0,"app-timespan",44)(1,"label",46),_(2),m(3,qe,2,1,"spk-icon",47),r()()),n&2){let t,e=s().$implicit;c("inputType",e.formView.name)("formControlName",e.formView.name)("customId","destination-"+e.formGroupName+"-"+e.index+"-"+(e.asHttpOptions?"http":"other")),a(),F("for","destination-",e.formGroupName,"-",e.index,"-",e.asHttpOptions?"http":"other",""),a(),D(" ",(t=e.formView.shortDescription)!==null&&t!==void 0?t:e.formView.name," "),a(),d(e.formView.longDescription?3:-1)}}function Qe(n,i){if(n&1){let t=S();l(0,"button",63),g("click",function(){T(t);let o=s().$implicit,p=s(2);return C(p.removeFormView(o.formView,0))}),l(1,"spk-icon"),_(2,"x-circle"),r()()}}function Je(n,i){if(n&1&&(l(0,"div",40),w(1,41),m(2,Ce,5,17,"app-file-tree",42)(3,ge,5,13,"app-file-tree",43)(4,Oe,8,13,"spk-form-field")(5,ye,8,13,"spk-form-field")(6,Ae,2,2)(7,be,3,2)(8,Le,4,9,"app-size",44)(9,Ue,7,11,"spk-form-field")(10,We,5,11,"spk-toggle",45)(11,Xe,7,9)(12,je,4,9,"app-timespan",44),$(),m(13,Qe,3,0,"button",31),r()),n&2){let t=i.$implicit;W("single-field",t.formGroupName!=="advanced"),a(),c("formGroupName",t.formGroupName),a(),d(t.formView.type==="FileTree"?2:t.formView.type==="FolderTree"?3:t.formView.type==="String"||t.formView.type==="Path"||t.formView.type==="Email"?4:t.formView.type==="Password"?5:t.formView.type==="Enumeration"?6:t.formView.type==="NonValidatedSelectableString"?7:t.formView.type==="Size"?8:t.formView.type==="Integer"?9:t.formView.type==="Boolean"?10:t.formView.type==="Flags"?11:t.formView.type==="Timespan"||t.formView.type==="DateTime"?12:-1),a(11),d(t.formGroupName==="advanced"?13:-1)}}function Ye(n,i){if(n&1&&(w(0,21)(1,35),y(2,_e,1,9,"ng-container",null,I),y(4,me,1,9,"ng-container",null,I),l(6,"app-toggle-card",36),w(7,37),x(8,10),l(9,"spk-menu",30)(10,"button",38),u(11,"spk-icon"),r(),w(12,19),y(13,de,3,1,"button",32,I),$(),r(),O(),$(),y(15,Fe,1,9,"ng-container",null,I),r(),m(17,Je,14,5,"ng-template",null,2,V),$()()),n&2){let t=s();a(2),h(t.destinationFormPair().custom),a(2),h(t.destinationFormPair().dynamic),a(2),c("disallowToggle",!0),a(3),c("searchable",!0),a(),c("disabled",t.notSelectedAdvancedFormPair().length===0),a(3),h(t.notSelectedAdvancedFormPair()),a(2),h(t.selectedAdvancedFormPair())}}function Ze(n,i){if(n&1){let t=S();l(0,"spk-dialog",64),_t("isOpenChange",function(o){T(t);let p=s();return pt(p.targetUrlDialogOpen,o)||(p.targetUrlDialogOpen=o),C(o)}),l(1,"header",65)(2,"h2"),P(3,11),r(),l(4,"spk-alert",66),P(5,12),r()(),l(6,"div",67)(7,"spk-form-field"),u(8,"textarea",68),r()(),l(9,"footer",69)(10,"button",23),g("click",function(){T(t);let o=s();return C(o.closeTargetUrlDialog(!1))}),_(11,"Cancel"),r(),l(12,"button",70),g("click",function(){T(t);let o=s();return C(o.closeTargetUrlDialog(!0))}),x(13,13),u(14,"spk-icon"),O(),r()()()}if(n&2){let t=s();st("isOpen",t.targetUrlDialogOpen),c("options",mt(3,ee)),a(8),c("formControl",t.targetUrlCtrl)}}var K=new Lt,On=(n={destinations:[]})=>K.group({destinations:K.array(n.destinations)}),kn=({key:n,customGroup:i,dynamicGroup:t,advancedGroup:e})=>K.group({destinationType:K.control(n),custom:i,dynamic:t,advanced:e}),J=class n{#i=N(Tt);#o=N(Ft);#t=N(Q);#a=N(Dt);#r=N(qt);#e=N(jt);injector=N(Z);formRef=tt.required("formRef");destinationForm=this.#t.destinationForm;destinationFormPair=this.#t.destinationFormPair;selectedAdvancedFormPair=this.#t.selectedAdvancedFormPair;notSelectedAdvancedFormPair=this.#t.notSelectedAdvancedFormPair;destinationOptions=this.#t.destinationOptions;destinationFormSignal=this.#t.destinationFormSignal;destinationCount=U(()=>this.destinationFormSignal()?.destinations?.length??0);successfulTest=R(!1);destinationTypeOptionsInFocus=R(["file","ssh","s3","gcs","googledrive","azure"]);destinationTypeOptions=R(Kt.map(i=>({key:i.customKey??i.key,customKey:i.customKey??null,displayName:i.displayName,description:i.description})));destinationTypeOptionsFocused=U(()=>{let i=this.destinationTypeOptionsInFocus(),t=this.destinationTypeOptions();return i.map(e=>t.find(o=>o.key===e))});destinationTypeOptionsNotFocused=U(()=>{let i=this.destinationTypeOptionsInFocus();return this.destinationTypeOptions().filter(e=>!i.includes(e.key))});targetUrlEffect=dt(()=>{if(this.destinationFormSignal(),this.destinationForm.valid){let i=this.#t.getCurrentTargetUrl();this.#e.updateTargetUrl(i[0])}else this.#e.updateTargetUrl(null)});ngOnInit(){let i=this.#e.destinationTargetUrl();i&&this.#t.updateFieldsFromTargetUrl(i)}getFormFieldValue(i,t,e){return((this.destinationForm.controls.destinations.controls?.[i]).controls?.[t]).controls[e].value}addDestinationFormGroup(i){this.#t.addDestinationFormGroup(i)}addAdvancedFormPair(i,t){this.#t.addAdvancedFormPair(i,t)}removeFormView(i,t){this.#t.removeAdvancedFormPair(i,t)}targetUrlCtrl=new $t;targetUrlInitial=R(null);targetUrlDialogOpen=R(!1);openTargetUrlDialog(){let t=this.#t.getCurrentTargetUrl()[0];this.targetUrlCtrl.setValue(t),this.targetUrlInitial.set(t),this.targetUrlDialogOpen.set(!0)}closeTargetUrlDialog(i=!1){this.targetUrlDialogOpen.set(!1);let t=this.targetUrlCtrl.value,e=this.targetUrlInitial();!i||t===e||this.#t.updateFieldsFromTargetUrl(this.targetUrlCtrl.value)}testDestination(i=0){let e=this.#t.getCurrentTargetUrl()[i];e&&this.#r.testDestination(e,i,!1).subscribe({next:o=>{if(o.action==="success"){o.anyFilesFound===!1&&this.#a.open(Nt,{data:{title:$localize`Empty destination`,message:$localize`The remote destination does not contain any files.
|
|
4
|
+
Check that the details are correct and that the destination is not empty.`,confirmText:$localize`OK`,cancelText:void 0}}),this.successfulTest.set(!0),setTimeout(()=>{this.successfulTest.set(!1)},3e3);return}if(o.action==="generic-error"){this.successfulTest.set(!1);return}o.action==="trust-cert"&&this.#t.addOrUpdateAdvancedFormPairByName("accept-specified-ssl-hash",o.destinationIndex,o.certData),o.action==="approve-host-key"&&this.#t.addOrUpdateAdvancedFormPairByName("ssh-fingerprint",o.destinationIndex,o.reportedHostKey),o.testAgain&&this.testDestination(o.destinationIndex)}})}mapToTargetUrl(i){return Ut(i.value)}removeDestinationFormGroup(i){this.destinationForm.controls.destinations.removeAt(i)}displayFn(i){let t=this.destinationOptions().find(e=>e.Key===i);return t?`${t.DisplayName}`:""}goBack(){this.#e.exit()}next(){this.#i.navigate(["encryption"],{relativeTo:this.#o.parent})}#l=R(Math.random().toString(36).substring(2)+Math.random().toString(36).substring(2)).asReadonly();#n=R(!1);#s=R(null);keyCreation(){}oauthStartTokenCreation(i){let t=i=="pcloud"?this.#t.oauthServiceLinkNew:this.#t.oauthServiceLink;this.#n.set(!0);let e=450,o=600,p=t+"?type="+i+"&token="+this.#l(),f=screen.width/2-e/2,M=screen.height/2-o/2,b=window.open(p,"_blank","height="+o+",width="+e+",menubar=0,status=0,titlebar=0,toolbar=0,left="+f+",top="+M);return window.addEventListener("message",v=>{let E=v.data.startsWith("authid:"),Qt=E?v.data.replace("authid:",""):null;E&&(this.#s.set(Qt),this.#n.set(!1),b?.close())}),!1}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=et({type:n,selectors:[["app-restore-destination"]],viewQuery:function(t,e){t&1&&at(e.formRef,Jt,5),t&2&&rt()},features:[ct([Q])],decls:24,vars:6,consts:()=>{let i;i=$localize` Backup placement ${"\uFFFD#5\uFFFD"}:START_TAG_DIV:${"\uFFFD*6:1\uFFFD"}:START_BLOCK_IF_1:${"\uFFFD#1:1\uFFFD"}:START_TAG_BUTTON:${"\uFFFD*2:2\uFFFD"}:START_BLOCK_IF: Connected ${"[\uFFFD#1:2\uFFFD|\uFFFD#9\uFFFD|\uFFFD#12\uFFFD]"}:START_TAG_SPK_ICON:check${"[\uFFFD/#1:2\uFFFD|\uFFFD/#9\uFFFD|\uFFFD/#12\uFFFD]"}:CLOSE_TAG_SPK_ICON:${"[\uFFFD/*2:2\uFFFD|\uFFFD/*6:1\uFFFD]"}:CLOSE_BLOCK_IF:${"\uFFFD*3:3\uFFFD"}:START_BLOCK_ELSE: Test destination ${"\uFFFD/*3:3\uFFFD"}:CLOSE_BLOCK_ELSE:${"[\uFFFD/#1:1\uFFFD|\uFFFD/#8\uFFFD|\uFFFD/#11\uFFFD]"}:CLOSE_TAG_BUTTON:${"[\uFFFD/*2:2\uFFFD|\uFFFD/*6:1\uFFFD]"}:CLOSE_BLOCK_IF:${"\uFFFD#7\uFFFD"}:START_TAG_SPK_MENU:${"\uFFFD#8\uFFFD"}:START_TAG_BUTTON_1:${"[\uFFFD#1:2\uFFFD|\uFFFD#9\uFFFD|\uFFFD#12\uFFFD]"}:START_TAG_SPK_ICON:dots-three-vertical${"[\uFFFD/#1:2\uFFFD|\uFFFD/#9\uFFFD|\uFFFD/#12\uFFFD]"}:CLOSE_TAG_SPK_ICON:${"[\uFFFD/#1:1\uFFFD|\uFFFD/#8\uFFFD|\uFFFD/#11\uFFFD]"}:CLOSE_TAG_BUTTON:${"\uFFFD#10\uFFFD"}:START_TAG_NG_CONTAINER:${"\uFFFD#11\uFFFD"}:START_TAG_BUTTON_2:${"[\uFFFD#1:2\uFFFD|\uFFFD#9\uFFFD|\uFFFD#12\uFFFD]"}:START_TAG_SPK_ICON:link${"[\uFFFD/#1:2\uFFFD|\uFFFD/#9\uFFFD|\uFFFD/#12\uFFFD]"}:CLOSE_TAG_SPK_ICON: Edit target URL ${"[\uFFFD/#1:1\uFFFD|\uFFFD/#8\uFFFD|\uFFFD/#11\uFFFD]"}:CLOSE_TAG_BUTTON:${"\uFFFD/#10\uFFFD"}:CLOSE_TAG_NG_CONTAINER:${"\uFFFD/#7\uFFFD"}:CLOSE_TAG_SPK_MENU:${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_DIV:`,i=H(i);let t;t=$localize`${"\uFFFD#19\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#19\uFFFD"}:CLOSE_TAG_SPK_ICON: Exit `;let e;e=$localize`${"\uFFFD#22\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#22\uFFFD"}:CLOSE_TAG_SPK_ICON: Continue `;let o;o=$localize` Want to select another destination? ${"\uFFFD#2\uFFFD"}:START_TAG_SPAN:Click here${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SPAN:`;let p;p=$localize`Other destinations`;let f;f=$localize` Advanced options ${"\uFFFD#9\uFFFD"}:START_TAG_SPK_MENU:${"\uFFFD#10\uFFFD"}:START_TAG_BUTTON: Add advanced option ${"\uFFFD#11\uFFFD"}:START_TAG_SPK_ICON:plus${"\uFFFD/#11\uFFFD"}:CLOSE_TAG_SPK_ICON:${"[\uFFFD/#10\uFFFD|\uFFFD/#1:1\uFFFD]"}:CLOSE_TAG_BUTTON:${"\uFFFD#12\uFFFD"}:START_TAG_NG_CONTAINER:${"\uFFFD*14:1\uFFFD"}:START_BLOCK_FOR:${"\uFFFD#1:1\uFFFD"}:START_TAG_BUTTON_1: ${"\uFFFD0:1\uFFFD"}:INTERPOLATION: ${"[\uFFFD/#10\uFFFD|\uFFFD/#1:1\uFFFD]"}:CLOSE_TAG_BUTTON:${"\uFFFD/*14:1\uFFFD"}:CLOSE_BLOCK_FOR:${"\uFFFD/#12\uFFFD"}:CLOSE_TAG_NG_CONTAINER:${"\uFFFD/#9\uFFFD"}:CLOSE_TAG_SPK_MENU:`,f=H(f);let M;M=$localize`Edit target URL`;let b;b=$localize` Be careful, this will overwrite everything you have in your destination. `;let v;return v=$localize` Override target URL ${"\uFFFD#14\uFFFD"}:START_TAG_SPK_ICON:swap${"\uFFFD/#14\uFFFD"}:CLOSE_TAG_SPK_ICON:`,[["formRef",""],["option",""],["fieldTemplate",""],["enumOptionTemplate",""],["optionTemplate",""],i,t,e,o,p,f,M,b,v,[3,"submit","formGroup"],[1,"title-30"],[1,"actions"],["spk-button","","type","button",1,"small",3,"success"],["spk-button","","type","button",1,"small"],["menu",""],["spk-button","","type","button",1,"small",3,"click"],["formArrayName","destinations"],[1,"form-actions"],["spk-button","","type","button",3,"click"],["spk-button","","type","submit",1,"raised","primary"],[3,"isOpen","options"],[3,"click"],[1,"spk-primary"],[1,"most-common-destinations"],[1,"tile"],[3,"searchable"],["spk-button","","type","button",1,"outlined"],["type","button"],[1,"tile",3,"click"],["type","button",3,"click"],["formGroupName","0"],[3,"disallowToggle"],["title",""],["spk-button","","type","button",1,"outlined","small",3,"disabled"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"field-row"],[3,"formGroupName"],[3,"startingPath","accepts","showFiles","hideShortcuts","showHiddenNodes","selectFiles"],[3,"hideShortcuts","startingPath"],[3,"inputType","formControlName","customId"],[1,"primary","raised"],[3,"for"],[1,"primary",3,"spkTooltip"],["type","text",3,"id","formControlName"],[3,"type","id","formControlName"],["prefix",""],["autocomplete","off",3,"type","id","formControlName"],["prefix","",1,"link"],["suffix","",1,"clickable"],["prefix","",1,"link",3,"click"],["suffix","",1,"clickable",3,"click"],[3,"options","isClearable","optionTemplate"],[1,"indeterminate","primary"],["label","key","value","value",3,"options","asFreeText","inlineSearch","optionTemplate"],["type","number",3,"id","formControlName"],["type","checkbox",3,"id","formControlName"],[1,"primary","raised",3,"options","selectMultiple","optionTemplate"],["type","text","id","text",3,"formControlName"],["spk-button","","type","button",1,"outlined",3,"click"],[3,"isOpenChange","isOpen","options"],["header",""],[1,"warning"],["content",""],["id","targetUrl","autocomplete","off",3,"formControl"],["footer",""],["spk-button","","type","submit",1,"raised","primary",3,"click"]]},template:function(t,e){if(t&1){let o=S();l(0,"form",14,0),g("submit",function(){return T(o),C(e.next())}),l(2,"header")(3,"h3",15),x(4,5),l(5,"div",16),m(6,oe,4,3,"button",17),l(7,"spk-menu")(8,"button",18),u(9,"spk-icon"),r(),w(10,19),l(11,"button",20),g("click",function(){return T(o),C(e.openTargetUrlDialog())}),u(12,"spk-icon"),r(),$(),r()(),O(),r(),m(13,ae,3,0,"p"),r(),m(14,se,9,1)(15,Ye,19,3,"ng-container",21),l(16,"div",22)(17,"button",23),g("click",function(){return T(o),C(e.goBack())}),x(18,6),u(19,"spk-icon"),O(),r(),l(20,"button",24),x(21,7),u(22,"spk-icon"),O(),r()()(),m(23,Ze,15,4,"spk-dialog",25)}if(t&2){let o;c("formGroup",e.destinationForm),a(6),d(e.destinationCount()>0?6:-1),a(7),d(e.destinationCount()>0?13:-1),a(),d(e.destinationCount()===0?14:-1),a(),d(!((o=e.destinationFormSignal())==null||o.destinations==null)&&o.destinations.length?15:-1),a(8),d(e.targetUrlDialogOpen()?23:-1)}},dependencies:[Bt,At,yt,vt,It,ht,wt,Pt,Vt,Gt,Mt,bt,ut,St,Et,Ct,kt,gt,ft,Ot,xt,Rt,zt,Ht,Xt,Wt],styles:["[_nghost-%COMP%]{display:block;width:100%;max-width:32.5rem;padding:2.5rem}header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%], header[_ngcontent-%COMP%] spk-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}pre[_ngcontent-%COMP%]{white-space:pre-wrap}.field-row[_ngcontent-%COMP%]{display:grid;align-items:flex-end;grid-template-columns:1fr 2.5rem;gap:.5rem}.field-row.single-field[_ngcontent-%COMP%]{display:block}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}.form-column[_ngcontent-%COMP%]{display:flex;flex-direction:column}.form-column[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem}.form-column[_ngcontent-%COMP%] spk-icon[_ngcontent-%COMP%]{font-size:1rem}.form-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:2fr 1fr;gap:.5rem;align-items:flex-end}.clickable[_ngcontent-%COMP%]{cursor:pointer;color:var(--primary-500)}.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}[prefix].link[_ngcontent-%COMP%]{cursor:pointer;text-decoration:underline;color:var(--primary-500)}textarea[_ngcontent-%COMP%] ~ grammarly-extension[_ngcontent-%COMP%]{display:none}"],changeDetection:0})};export{On as createDestinationForm,kn as createDestinationFormGroup,J as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as ae}from"./chunk-A2ITER5E.js";import{l as le}from"./chunk-BMMOMXWX.js";import{a as ie,b as se}from"./chunk-GQCUCL25.js";import"./chunk-74DADXEI.js";import"./chunk-A6RETV76.js";import"./chunk-HIW2CN45.js";import"./chunk-4V45XF67.js";import"./chunk-UEYPJIJG.js";import"./chunk-LUKUBN2Z.js";import"./chunk-RHW5QVAY.js";import"./chunk-LWIINXS7.js";import{c as Z,e as J,h as ee,j as ne,s as te,t as oe}from"./chunk-ABANCAM5.js";import{b as V,d as q}from"./chunk-WRKRV6RQ.js";import"./chunk-DYTQQHMA.js";import{a as Y,g as H,l as Q,t as j}from"./chunk-H5MGVT7B.js";import"./chunk-N5FH4YAX.js";import"./chunk-EBXJGPRA.js";import{$a as x,Db as t,Eb as i,Fb as T,Jb as M,Pb as S,Qb as O,Qc as k,Rb as _,Ua as p,Vb as I,Wb as c,Z as C,ea as P,fa as f,gb as K,gc as U,hc as X,lb as N,oc as u,pc as d,qc as m,ub as g,va as v,vc as W,wb as G,zb as F}from"./chunk-4KE2I7OA.js";import"./chunk-7CGTOI24.js";var re=["formRef"],_e=()=>["--skip-files-larger-than","dblock-size","encryption-module","no-encryption","compression-module","--no-encryption","--exclude-files-attributes","keep-time","keep-versions","retention-policy"];function pe(s,a){s&1&&(S(0,1,1),T(1,"spk-icon",20),O())}function ce(s,a){s&1&&(t(0,"p",20),_(1,6),i())}function ue(s,a){s&1&&(t(0,"p"),_(1,7),i())}function de(s,a){if(s&1){let n=M();t(0,"p"),_(1,8),i(),t(2,"app-timespan",18),m("ngModelChange",function(l){P(n);let o=c();return d(o.optionsFields.backupRetentionTime,l)||(o.optionsFields.backupRetentionTime=l),f(l)}),t(3,"label",29),_(4,9),i()()}if(s&2){let n=c();p(2),g("customId","backupRetentionTime"),u("ngModel",n.optionsFields.backupRetentionTime)}}function me(s,a){if(s&1){let n=M();t(0,"p"),_(1,10),i(),t(2,"spk-form-field")(3,"label",30),_(4,11),i(),t(5,"input",31),m("ngModelChange",function(l){P(n);let o=c();return d(o.optionsFields.backupRetentionVersions,l)||(o.optionsFields.backupRetentionVersions=l),f(l)}),i()()}if(s&2){let n=c();p(5),u("ngModel",n.optionsFields.backupRetentionVersions)}}function Se(s,a){s&1&&(t(0,"p"),_(1,12),i())}function Oe(s,a){if(s&1){let n=M();t(0,"p"),_(1,13),i(),t(2,"spk-form-field")(3,"p"),_(4,14),i(),t(5,"label",32),_(6,15),i(),t(7,"input",33),m("ngModelChange",function(l){P(n);let o=c();return d(o.optionsFields.backupRetentionCustom,l)||(o.optionsFields.backupRetentionCustom=l),f(l)}),i()()}if(s&2){let n=c();p(7),u("ngModel",n.optionsFields.backupRetentionCustom)}}var ge=["Bytes","KB","MB","GB","TB","PB"],Te=[{value:"all",name:$localize`Keep all backups`},{value:"time",name:$localize`Delete backups that are older than`},{value:"versions",name:$localize`Keep a specific number of backups`},{value:"smart",name:$localize`Smart backup retention`},{value:"custom",name:$localize`Custom backup retention`}],Ce=1024*1024*1024*2,Pe=1024*1024*5,h=class s{#e=C(le);#n=C(q);#t=C(V);formRef=x.required("formRef");selectedOptions=this.#e.selectedOptions;nonSelectedOptions=this.#e.nonSelectedOptions;isSubmitting=this.#e.isSubmitting;settings=this.#e.settings;optionsFields=this.#e.optionsFields;applicationOptions=this.#e.applicationOptions;retentionOptions=v(Te);sizeSplit=k(()=>{let n=this.optionsFields.remoteVolumeSize().match(/^(\d+)(bytes|kb|mb|gb|tb|pb|b)$/i);return{value:n?parseInt(n[1],10):0,unit:n?n[2].toUpperCase():"MB"}});exceededVolumeSize=k(()=>{let a=this.sizeSplit().value,n=this.sizeSplit().unit;if(a==null||n===null||n===void 0)return!1;let e=a*Math.pow(1024,ge.indexOf(n));return e>Ce||e<Pe});goBack(){this.#n.navigate(["schedule"],{relativeTo:this.#t.parent})}submit(){this.#e.submit()}static \u0275fac=function(n){return new(n||s)};static \u0275cmp=K({type:s,selectors:[["app-advanced-options-settings"]],viewQuery:function(n,e){n&1&&U(e.formRef,re,5),n&2&&X()},decls:30,vars:15,consts:()=>{let a;a=$localize`Options`;let n;n=$localize` Remote volume size ${"\uFFFD*7:1\uFFFD"}:START_BLOCK_IF:${"\uFFFD#1:1\uFFFD"}:START_TAG_SPK_ICON:warning${"\uFFFD/#1:1\uFFFD"}:CLOSE_TAG_SPK_ICON:${"\uFFFD/*7:1\uFFFD"}:CLOSE_BLOCK_IF:`;let e;e=$localize` The backups will be split up into multiple files called volumes. Here you can set the maximum size of the individual volume files. ${"\uFFFD#11\uFFFD"}:START_LINK: Read more ${"\uFFFD#12\uFFFD"}:START_TAG_SPK_ICON:arrow-square-out${"\uFFFD/#12\uFFFD"}:CLOSE_TAG_SPK_ICON:${"\uFFFD/#11\uFFFD"}:CLOSE_LINK:`;let l;l=$localize`Backup retention`;let o;o=$localize`${"\uFFFD#26\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#26\uFFFD"}:CLOSE_TAG_SPK_ICON: Go back `;let E;E=$localize`${"\uFFFD#29\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#29\uFFFD"}:CLOSE_TAG_SPK_ICON: Submit `;let b;b=$localize` The chosen size is outside the recommended range. This may cause performance issues, excessively large temporary files or other problems. `;let A;A=$localize`Nothing will be deleted. The backup size will grow with each change.`;let R;R=$localize`If at least one newer backup is found, all backups older than this date are deleted.`;let y;y=$localize`Time to keep versions`;let $;$=$localize`Once there are more backups than the specified number, the oldest backups are deleted.`;let w;w=$localize`Number of versions`;let D;D=$localize` Over time backups will be deleted automatically. There will remain one backup for each of the last 7 days, each of the last 4 weeks, each of the last 12 months. There will always be at least one remaining backup. `;let B;B=$localize` Enter a retention strategy manually. Placeholders are D/W/Y for days/weeks/years and U for unlimited. The syntax is: 7D:1D,4W:1W,36M:1M. This example keeps one backup for each of the next 7 days, one for each of the next 4 weeks, and one for each of the next 36 months. This can also be written as 1W:1D,1M:1W,3Y:1M. `;let L;L=$localize`Once there are more backups than the specified number, the oldest backups are deleted.`;let z;return z=$localize`Retention expression`,[a,n,e,l,o,E,b,A,R,y,$,w,D,B,L,z,[1,"title-30"],[1,"remote-volume-wrap"],[3,"ngModelChange","customId","ngModel"],["for","size"],[1,"warning"],["href","https://forum.duplicati.com/t/choosing-sizes-in-duplicati/17683","target","_blank",1,"spk-primary"],["suffix",""],["value","value","label","name",3,"options","inlineSearch","isClearable"],["type","text",3,"ngModelChange","ngModel"],[3,"optionsChange","options","applicationOptions","hiddenOptions"],[1,"form-actions"],["spk-button","","type","button",3,"click"],["spk-button","",1,"raised","primary",3,"click"],["for","backupRetentionTime"],["for","backupRetentionVersions"],["type","number","id","backupRetentionVersions",3,"ngModelChange","ngModel"],["for","backupRetentionCustom"],["type","text","id","backupRetentionCustom",3,"ngModelChange","ngModel"]]},template:function(n,e){n&1&&(t(0,"section")(1,"h3",16),_(2,0),i(),t(3,"div",17)(4,"app-size",18),m("ngModelChange",function(o){return d(e.optionsFields.remoteVolumeSize,o)||(e.optionsFields.remoteVolumeSize=o),o}),t(5,"label",19),S(6,1),N(7,pe,2,0,"spk-icon",20),O(),i()(),N(8,ce,2,0,"p",20),t(9,"p"),S(10,2),t(11,"a",21),T(12,"spk-icon",22),i(),O(),i()(),t(13,"spk-select",23)(14,"label",19),_(15,3),i(),t(16,"input",24),m("ngModelChange",function(o){return d(e.optionsFields.backupRetention,o)||(e.optionsFields.backupRetention=o),o}),i()(),N(17,ue,2,0,"p")(18,de,5,2)(19,me,6,1)(20,Se,2,0,"p")(21,Oe,8,1),t(22,"app-options-list",25),m("optionsChange",function(o){return d(e.settings,o)||(e.settings=o),o}),i(),t(23,"div",26)(24,"button",27),I("click",function(){return e.goBack()}),S(25,4),T(26,"spk-icon"),O(),i(),t(27,"button",28),I("click",function(){return e.submit()}),S(28,5),T(29,"spk-icon"),O(),i()()()),n&2&&(p(4),g("customId","size"),u("ngModel",e.optionsFields.remoteVolumeSize),p(3),F(e.exceededVolumeSize()?7:-1),p(),F(e.exceededVolumeSize()?8:-1),p(5),g("options",e.retentionOptions())("inlineSearch",!0)("isClearable",!1),p(3),u("ngModel",e.optionsFields.backupRetention),p(),F(e.optionsFields.backupRetention()==="all"?17:e.optionsFields.backupRetention()==="time"?18:e.optionsFields.backupRetention()==="versions"?19:e.optionsFields.backupRetention()==="smart"?20:e.optionsFields.backupRetention()==="custom"?21:-1),p(5),u("options",e.settings),g("applicationOptions",e.applicationOptions())("hiddenOptions",W(14,_e)),p(5),G("loader",e.isSubmitting()))},dependencies:[te,Z,ne,J,ee,oe,ae,H,Y,j,ie,se,Q],styles:["[_nghost-%COMP%]{display:block;width:100%;max-width:32.5rem;padding:2.5rem}section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem;padding-bottom:1.5rem}.form-column[_ngcontent-%COMP%]{display:flex;flex-direction:column}.form-column[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem}.form-column[_ngcontent-%COMP%] spk-icon[_ngcontent-%COMP%]{font-size:1rem}.field-row[_ngcontent-%COMP%]{display:grid;align-items:flex-end;grid-template-columns:1fr 2.5rem;gap:.5rem}.form-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:3fr 1fr;gap:.5rem;align-items:flex-end}.form-wrap[_ngcontent-%COMP%]{display:grid;grid-template-columns:2fr 2.5rem;gap:.5rem;align-items:flex-end}.remote-volume-wrap[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem}.remote-volume-wrap[_ngcontent-%COMP%] p.warning[_ngcontent-%COMP%]{color:#7d7d00}.row-inputs[_ngcontent-%COMP%]{display:flex;align-items:flex-end;gap:.5rem}.advanced-option[_ngcontent-%COMP%]{display:grid;gap:.5rem;grid-template-columns:1fr 1fr 2.5rem;align-items:flex-end}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}spk-select[_ngcontent-%COMP%]{--miw: p2r(120)}"],changeDetection:0})};export{h as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as H}from"./chunk-5S46PDX2.js";import"./chunk-XUPWJEL7.js";import{g as K}from"./chunk-MZZJNTYI.js";import"./chunk-74DADXEI.js";import"./chunk-A6RETV76.js";import"./chunk-UEYPJIJG.js";import{b as j}from"./chunk-5FTLFTEB.js";import"./chunk-M7A6IY7W.js";import{a as B}from"./chunk-WBCTOQOO.js";import"./chunk-SF5ML7OT.js";import"./chunk-HZQEM2P7.js";import"./chunk-LUKUBN2Z.js";import"./chunk-RHW5QVAY.js";import"./chunk-LWIINXS7.js";import{a as z}from"./chunk-DLJSVAM2.js";import"./chunk-ABANCAM5.js";import"./chunk-B37C3RGG.js";import"./chunk-WRKRV6RQ.js";import"./chunk-DYTQQHMA.js";import{a as b,h as w,p as W,s as X}from"./chunk-H5MGVT7B.js";import"./chunk-N5FH4YAX.js";import{ua as v}from"./chunk-EBXJGPRA.js";import{Ac as E,Db as i,Eb as s,Fb as p,Gb as m,Hb as P,Pb as L,Qb as A,Qc as M,Rb as _,Rc as x,Sb as D,Tb as I,Ua as l,Wb as u,Z as T,ga as $,gb as y,ha as G,jc as C,lb as g,mc as f,ub as O,va as h,zb as d,zc as R}from"./chunk-4KE2I7OA.js";import"./chunk-7CGTOI24.js";function V(n,e){n&1&&(i(0,"spk-card",8),m(1,14),_(2,2),P(),i(3,"div",15),$(),i(4,"svg",16),p(5,"circle",17),s(),G(),i(6,"spk-icon"),C(7,"check-bold"),s()()())}function Z(n,e){if(n&1&&(C(0),R(1,"number"),R(2,"number")),n&2){let t,o=u(2);f(" ",E(1,2,(t=o.statusData())==null?null:t.ProcessedFileCount)," of ",E(2,4,(t=o.statusData())==null?null:t.TotalFileCount)," ")}}function q(n,e){n&1&&(m(0),_(1,6),P())}function J(n,e){if(n&1&&(C(0),R(1,"bytes"),R(2,"bytes")),n&2){let t,o=u(2);f(" ",E(1,2,(t=o.statusData())==null?null:t.ProcessedFileSize)," of ",E(2,4,(t=o.statusData())==null?null:t.TotalFileSize)," ")}}function Q(n,e){n&1&&(m(0),_(1,7),P())}function U(n,e){if(n&1&&(i(0,"spk-card",8)(1,"h3"),L(2,3),p(3,"spk-spinner",18),A(),s(),i(4,"div",19),p(5,"spk-progress-bar",20),i(6,"p")(7,"span"),_(8,4),s(),g(9,Z,3,6)(10,q,2,0,"ng-container"),s(),i(11,"p")(12,"span"),_(13,5),s(),g(14,J,3,6)(15,Q,2,0,"ng-container"),s()()()),n&2){let t,o,r,a,c=u();l(3),D((t=c.statusData())==null?null:t.statusText),I(2),l(2),O("value",(o=c.statusData())==null?null:o.OverallProgress),l(4),d((r=c.statusData())!=null&&r.ProcessedFileCount?9:10),l(5),d((a=c.statusData())!=null&&a.ProcessedFileSize?14:15)}}var F=class n{#e=T(B);#t=T(K);statusData=this.#e.statusData;backupId=this.#t.backupId;isPolling=h(!0);taskId=M(()=>this.#e.statusData()?.TaskID?.toString()??void 0);lastRestoreStarted=M(()=>{let e=this.#e.statusData()?.backup?.Backup?.Metadata?.LastRestoreStarted??null;return e?this.fixDate(e):null});completedEffect=x(()=>{this.statusData()?.task?.Status==="Completed"&&this.isPolling.set(!1)});notificationFilterPredicate=()=>{let e=this.lastRestoreStarted();return{predicate:t=>(t.BackupID===this.#t.backupId()&&e&&e.getTime()<=new Date(t.Timestamp).getTime())??!1}};ngOnInit(){this.#e.fetchProgressState(),this.#e.startPollingProgress()}fixDate(e){return new Date(`${e.slice(0,4)}-${e.slice(4,6)}-${e.slice(6,8)}T${e.slice(9,11)}:${e.slice(11,13)}:${e.slice(13,15)}Z`)}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=y({type:n,selectors:[["app-restore-progress"]],decls:12,vars:6,consts:()=>{let e;e=$localize`Notifications`;let t;t=$localize`Logs`;let o;o=$localize`Restore completed`;let r;r=$localize` Restore progress: ${"\uFFFD0\uFFFD"}:INTERPOLATION: ${"\uFFFD#3\uFFFD"}:START_TAG_SPK_SPINNER:${"\uFFFD/#3\uFFFD"}:CLOSE_TAG_SPK_SPINNER:`;let a;a=$localize`Files processed:`;let c;c=$localize`Size processed:`;let N;N=$localize`N/A`;let k;return k=$localize`N/A`,[e,t,o,r,a,c,N,k,[1,"progress","type-a"],[1,"notifications","type-a"],[1,"notification-list"],[3,"notificationFilterPredicate"],[1,"logs","type-a"],[3,"asSimpleList","polling","whenFilter","backupIdFilter"],["title",""],[1,"complete-check"],[1,"border-svg"],["cx","50","cy","50","r","45",1,"border-circle"],[1,"primary"],[1,"progress-content"],[3,"value"]]},template:function(t,o){if(t&1&&(i(0,"section"),g(1,V,8,0,"spk-card",8)(2,U,16,4,"spk-card",8),i(3,"spk-card",9)(4,"h3"),_(5,0),s(),i(6,"div",10),p(7,"app-notifications",11),s()(),i(8,"spk-card",12)(9,"h3"),_(10,1),s(),p(11,"app-logs-live",13),s()()),t&2){let r,a;l(),d(((r=o.statusData())==null||r.task==null?null:r.task.Status)==="Completed"?1:2),l(6),O("notificationFilterPredicate",o.notificationFilterPredicate()),l(4),O("asSimpleList",!0)("polling",o.isPolling())("whenFilter",(a=o.lastRestoreStarted())==null?null:a.getTime())("backupIdFilter",o.backupId())}},dependencies:[H,W,X,b,w,j,z,v],styles:['[_nghost-%COMP%]{display:block;padding:0 1.25rem}section[_ngcontent-%COMP%]{display:grid;gap:1.25rem;grid-template-columns:2fr 1fr;grid-template-areas:"progress notifications" "logs logs"}section[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{margin-bottom:1rem}section[_ngcontent-%COMP%] .progress[_ngcontent-%COMP%]{grid-area:progress}section[_ngcontent-%COMP%] .progress[_ngcontent-%COMP%]:has(.complete-check){display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.25rem}section[_ngcontent-%COMP%] .progress[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between}section[_ngcontent-%COMP%] .progress[_ngcontent-%COMP%] spk-spinner[_ngcontent-%COMP%]{--spinner-size: 1.25rem;--spinner-thickness: .1875rem}section[_ngcontent-%COMP%] .notifications[_ngcontent-%COMP%]{grid-area:notifications}section[_ngcontent-%COMP%] .logs[_ngcontent-%COMP%]{grid-area:logs}section[_ngcontent-%COMP%] .logs[_ngcontent-%COMP%] app-logs-live[_ngcontent-%COMP%]{max-height:50rem;overflow:auto}.notification-list[_ngcontent-%COMP%]{max-height:15rem;overflow:auto}.complete-check[_ngcontent-%COMP%]{position:relative;width:6.25rem;height:6.25rem;display:flex;justify-content:center;align-items:center;color:var(--success-500)}.complete-check[_ngcontent-%COMP%] spk-icon[_ngcontent-%COMP%]{font-size:2.5rem;opacity:0;animation:_ngcontent-%COMP%_reveal-icon .2s linear forwards;animation-delay:1s}.border-svg[_ngcontent-%COMP%]{position:absolute;top:0;left:0;width:100%;height:100%}.border-circle[_ngcontent-%COMP%]{fill:none;stroke:var(--success-500);stroke-width:.3125rem;stroke-dasharray:282.74;stroke-dashoffset:282.74;animation:_ngcontent-%COMP%_draw-border 1.2s linear forwards}@keyframes _ngcontent-%COMP%_draw-border{to{stroke-dashoffset:0}}@keyframes _ngcontent-%COMP%_reveal-icon{to{opacity:1}}.progress-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem}.progress-content[_ngcontent-%COMP%] spk-progress-bar[_ngcontent-%COMP%]{margin-bottom:.75rem}.progress-content[_ngcontent-%COMP%] p[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{margin-right:.25rem}'],changeDetection:0})};export{F as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as Le,b as Re}from"./chunk-SPAJFGWZ.js";import{a as $e}from"./chunk-VZBWK3XF.js";import{a as x}from"./chunk-6EWRKJSC.js";import"./chunk-XHPURHO2.js";import"./chunk-7V4TPS4B.js";import{a as fe}from"./chunk-T5WAKBP3.js";import"./chunk-LUKUBN2Z.js";import"./chunk-RHW5QVAY.js";import"./chunk-DLJSVAM2.js";import{a as Ie}from"./chunk-S75WBVE3.js";import{c as Pe,d as Oe,e as he,h as De,r as ke,s as Ne,t as Me}from"./chunk-ABANCAM5.js";import{a as de,c as Ee}from"./chunk-FSKPPAVO.js";import"./chunk-FQ55IACT.js";import{c as ce,e as pe,f as ue}from"./chunk-WRKRV6RQ.js";import"./chunk-DYTQQHMA.js";import{C as Te,a as M,b as G,c as Se,e as ge,g as w,k as Fe,l as Ae,n as me,u as Ce}from"./chunk-ESAGJOZZ.js";import{h as H}from"./chunk-N5FH4YAX.js";import"./chunk-EBXJGPRA.js";import{$a as ee,Ab as te,Bb as ne,Cb as oe,Db as s,Eb as i,F as V,Fb as l,Jb as f,Pb as p,Qb as u,Qc as _e,Rb as O,Rc as Q,Ua as r,Ub as $,Vb as S,Wb as c,Z as F,bb as X,ea as A,fa as m,gb as N,gc as ie,hc as se,jc as g,kc as K,lb as C,lc as z,oc as W,pc as q,qc as j,ra as Z,rc as ae,sc as re,tc as y,ub as h,va as E,vc as le,wb as v,yb as R,zb as d}from"./chunk-4KE2I7OA.js";import{a as Y,b as B}from"./chunk-7CGTOI24.js";var Ge=["scroller"];function we(n,o){n&1&&(s(0,"spk-icon"),g(1,"bell-ringing"),i())}function He(n,o){n&1&&(s(0,"spk-icon"),g(1,"bell"),i())}function xe(n,o){if(n&1&&l(0,"app-notification",8),n&2){c(2);let e=y(6);h("index",0)("notification",e.content)}}function Ue(n,o){if(n&1&&(s(0,"div",11),g(1),i()),n&2){c(3);let e=y(6);r(),z(" ",e.content.content," ")}}function Ye(n,o){if(n&1&&(s(0,"spk-alert")(1,"div",10),g(2),i(),C(3,Ue,2,1,"div",11),i()),n&2){c(2);let e=y(6);R(e.content.type||"error"),r(2),K(e.content.title),r(),d(e.content.content?3:-1)}}function Be(n,o){if(n&1&&(s(0,"div",6),C(1,xe,1,2,"app-notification",8)(2,Ye,4,4,"spk-alert",9),i()),n&2){c();let e=y(6);r(),d(e.type==="notification"?1:2)}}function Ve(n,o){if(n&1){let e=f();s(0,"div",7)(1,"div",12)(2,"h6",13),p(3,2),s(4,"button",5),S("click",function(){A(e);let a=c();return m(a.toggleNotifications())}),l(5,"spk-icon"),i(),u(),i(),s(6,"div",14,0)(8,"div",15),l(9,"app-notifications"),i()()()()}}function Xe(n,o){if(n&1&&(s(0,"div",20),g(1),i()),n&2){let e=c().$implicit;r(),z(" ",e.content," ")}}function Ke(n,o){if(n&1){let e=f();s(0,"spk-alert",18,1),S("click",function(){let a=A(e).$implicit,_=c(2);return m(_.deleteAlertByIndex(a.id))}),s(2,"div",19),g(3),i(),C(4,Xe,2,1,"div",20),i()}if(n&2){let e=o.$implicit;R(e.type),h("id",e.id),r(3),K(e.title),r(),d(e.content?4:-1)}}function ze(n,o){n&1&&(s(0,"p",17),O(1,4),i())}function We(n,o){if(n&1){let e=f();s(0,"div",7)(1,"div",12)(2,"h6",13),p(3,3),s(4,"button",5),S("click",function(){A(e);let a=c();return m(a.toggleAlerts())}),l(5,"spk-icon"),i(),u(),i(),s(6,"div",14,0)(8,"div",15),ne(9,Ke,5,5,"spk-alert",16,te,!1,ze,2,0,"p",17),i()()()()}if(n&2){let e=c();r(9),oe(e.alertHistory())}}var ye=new ke,b=class n{#e=F(Se);#t=F(x);isSubmitting=E(!1);messageSent=E(!1);form=ye.group({message:ye.control("",[Oe.required])});notifications=this.#t.notifications;shownMessage=E(null);shownMessageInterval=null;alertHistory=this.#e.alertHistory;alertHistoryIsOpen=this.#e.alertHistoryIsOpen;alertHistoryIsHidden=this.#e.alertHistoryIsHidden;numberOfOpenAlerts=_e(()=>this.alertHistory().filter(o=>o.isOpen).length);scroller=ee("scroller");isAlertsOpen=X(!1);isNotificationsOpen=X(!1);previousHistoryCount=E(null);previousNotificationsCount=E(null);constructor(){Q(()=>{let o=this.alertHistory(),e=this.notifications();e.length&&this.previousHistoryCount()!==o.length&&!this.isNotificationsOpen()?(this.shownMessage.set({content:e[0],countDown:3,type:"notification"}),this.previousHistoryCount.set(o.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(a=>B(Y({},a),{countDown:a.countDown-1}))},1e3)):o.length&&this.previousHistoryCount()!==o.length&&!this.isAlertsOpen()&&(this.shownMessage.set({content:o[0],countDown:3,type:"alert"}),this.previousHistoryCount.set(o.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(a=>B(Y({},a),{countDown:a.countDown-1}))},1e3))}),Q(()=>{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(o){this.#e.removeAlert(o)}scrollToBottom(){this.scroller()&&this.scroller()?.nativeElement&&this.scroller().nativeElement.scrollTo(0,this.scroller().nativeElement.scrollHeight)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=N({type:n,selectors:[["app-service-hub"]],viewQuery:function(e,t){e&1&&ie(t.scroller,Ge,5),e&2&&se()},inputs:{isAlertsOpen:[1,"isAlertsOpen"],isNotificationsOpen:[1,"isNotificationsOpen"]},outputs:{isAlertsOpen:"isAlertsOpenChange",isNotificationsOpen:"isNotificationsOpenChange"},decls:10,vars:9,consts:()=>{let o;o=$localize` Notifications ${"\uFFFD#4\uFFFD"}:START_TAG_BUTTON:${"\uFFFD#5\uFFFD"}:START_TAG_SPK_ICON:x-circle${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_ICON:${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_BUTTON:`;let e;e=$localize` Alerts ${"\uFFFD#4\uFFFD"}:START_TAG_BUTTON:${"\uFFFD#5\uFFFD"}:START_TAG_SPK_ICON:x-circle${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_ICON:${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_BUTTON:`;let t;return t=$localize`No alerts yet`,[["scroller",""],["alerts",""],o,e,t,["spk-button","",3,"click"],[1,"preview-alert-wrap"],[1,"alert-stream-modal"],[3,"index","notification"],[3,"class"],["sparkle-alert-title",""],["sparkle-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){let a=f();s(0,"button",5),S("click",function(){return A(a),m(t.toggleAlerts())}),s(1,"spk-icon"),g(2,"info"),i()(),s(3,"button",5),S("click",function(){return A(a),m(t.toggleNotifications())}),C(4,we,2,0,"spk-icon")(5,He,2,0,"spk-icon"),i(),ae(6),C(7,Be,3,1,"div",6)(8,Ve,10,0,"div",7)(9,We,12,1,"div",7)}if(e&2){R(t.alertHistory().length?"error":""),r(3),R(t.notifications().length?"error":""),r(),d(t.notifications().length?4:5),r(2);let a=re(t.shownMessage());r(),d(a?7:-1),r(),d(t.isNotificationsOpen()?8:-1),r(),d(t.isAlertsOpen()?9:-1)}},dependencies:[Me,G,M,w,Re,Le],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 qe(n,o){n&1&&(s(0,"spk-icon",14),g(1,"check"),i())}function je(n,o){n&1&&(s(0,"spk-icon",15),g(1,"prohibit"),i())}function Qe(n,o){if(n&1){let e=f();s(0,"button",20),S("click",function(){A(e);let a=c();return m(a.updatePassphrase())}),O(1,5),i()}if(n&2){let e=c();v("loader",e.isUpdating())}}function Je(n,o){if(n&1){let e=f();s(0,"button",21),S("click",function(){A(e);let a=c();return m(a.updatePassphrase())}),O(1,6),i()}if(n&2){let e=c();v("loader",e.isUpdating()),h("disabled",!0)}}var U=class n{#e=F(H);closed=Z();isUpdating=E(!1);passphrase=E("");repeatPassphrase=E("");updatePassphrase(){this.passphrase()===this.repeatPassphrase()&&(this.isUpdating.set(!0),this.#e.patchApiV1Serversettings({requestBody:{"server-passphrase":this.passphrase()}}).pipe(V(()=>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(V(()=>this.isUpdating.set(!1))).subscribe({next:()=>this.closed.emit()})}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=N({type:n,selectors:[["app-change-passphrase-alert-dialog"]],outputs:{closed:"closed"},decls:23,vars:7,consts:()=>{let o;o=$localize`Enter new password`;let e;e=$localize`Repeat password`;let t;t=$localize`Password have to be filled and have to match`;let a;a=$localize`Change passphrase`;let _;_=$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? `,_=$(_);let D;D=$localize`Passphrase`;let k;k=$localize`Repeat passphrase`;let I;I=$localize`Not now thanks`;let L;L=$localize` Yes, update passphrase now `;let T;return T=$localize` Yes, update passphrase now `,[a,_,D,k,I,L,T,["header",""],["content",""],["type","warning"],["for","password"],["type","password","name","password","autocomplete","disabled","placeholder",o,"tabindex","1",3,"ngModelChange","ngModel"],["for","repeatPassword"],["type","password","name","repeatPassword","autocomplete","disabled","placeholder",e,"tabindex","2",3,"ngModelChange","disabled","ngModel"],["suffix","",1,"spk-success"],["suffix",""],["footer",""],["spk-button","",3,"click"],["spk-button","",1,"raised","primary",3,"loader"],["spk-button","","spkTooltip",t,1,"raised","primary",3,"loader","disabled"],["spk-button","",1,"raised","primary",3,"click"],["spk-button","","spkTooltip",t,1,"raised","primary",3,"click","disabled"]]},template:function(e,t){e&1&&(s(0,"header",7)(1,"h3"),O(2,0),i()(),s(3,"div",8)(4,"spk-alert",9),p(5,1),l(6,"br")(7,"br"),u(),i(),s(8,"spk-form-field")(9,"label",10),O(10,2),i(),s(11,"input",11),j("ngModelChange",function(_){return q(t.passphrase,_)||(t.passphrase=_),_}),i()(),s(12,"spk-form-field")(13,"label",12),O(14,3),i(),s(15,"input",13),j("ngModelChange",function(_){return q(t.repeatPassphrase,_)||(t.repeatPassphrase=_),_}),i(),C(16,qe,2,0,"spk-icon",14)(17,je,2,0,"spk-icon",15),i()(),s(18,"footer",16)(19,"button",17),S("click",function(){return t.cancel()}),O(20,4),i(),C(21,Qe,2,2,"button",18)(22,Je,2,3,"button",19),i()),e&2&&(r(11),W("ngModel",t.passphrase),r(4),h("disabled",t.passphrase().length===0),W("ngModel",t.repeatPassphrase),r(),d(t.passphrase().length!==0&&t.passphrase()===t.repeatPassphrase()?16:17),r(3),v("loader",t.isUpdating()),r(2),d(t.passphrase().length!==0&&t.passphrase()===t.repeatPassphrase()?21:22))},dependencies:[Ne,Pe,he,De,G,Ae,M,Te],styles:["[_nghost-%COMP%]{display:block;--dialog-p: 1.5rem}[content][_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}"],changeDetection:0})};var Ze=()=>({exact:!0});function et(n,o){n&1&&(s(0,"spk-icon"),g(1,"sun"),i())}function tt(n,o){n&1&&(s(0,"spk-icon"),g(1,"moon"),i())}function nt(n,o){if(n&1){let e=f();s(0,"button",22),S("click",function(){A(e);let a=c();return m(a.changeDefaultClientTo("ngax"))}),p(1,7),l(2,"spk-icon"),u(),i(),s(3,"button",22),S("click",function(){A(e);let a=c();return m(a.logout())}),p(4,8),l(5,"spk-icon"),u(),i()}}var J=class n{#e=F($e);#t=F(H);#n=F(fe);#o=F(de);#i=F(ge);#s=F(x);#a=F(Ee);relayIsEnabled=this.#o.relayIsEnabled;isDarkMode=this.#e.isDarkMode;ngOnInit(){return this.#s.init(),this.#n.getBackups(!0),this.#t.getApiV1Serversettings().subscribe({next:o=>{let e=o["autogenerated-passphrase"]==="True",t=o["has-asked-for-password-change"]==="True";e&&!t&&this.#i.open(U,{maxWidth:"500px"})}})}toggleBodyClass(){this.#e.toggleBodyClass()}changeDefaultClientTo(o){this.#r(o),window.location.replace(`/${o}`)}logout(){this.#a.logout()}#r(o){var e=new Date;e.setTime(e.getTime()+90*24*60*60*1e3),document.cookie="default-client="+o+"; expires="+e.toUTCString()+"; path=/"}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=N({type:n,selectors:[["app-layout"]],decls:37,vars:4,consts:()=>{let o;o=$localize`${"\uFFFD#10\uFFFD"}:START_TAG_SPK_ICON:house${"\uFFFD/#10\uFFFD"}:CLOSE_TAG_SPK_ICON: Home `;let e;e=$localize`${"\uFFFD#13\uFFFD"}:START_TAG_SPK_ICON:database${"\uFFFD/#13\uFFFD"}:CLOSE_TAG_SPK_ICON: Add backup `;let t;t=$localize`${"\uFFFD#16\uFFFD"}:START_TAG_SPK_ICON:clock-counter-clockwise${"\uFFFD/#16\uFFFD"}:CLOSE_TAG_SPK_ICON: Restore `;let a;a=$localize`${"\uFFFD#19\uFFFD"}:START_TAG_SPK_ICON:gear${"\uFFFD/#19\uFFFD"}:CLOSE_TAG_SPK_ICON: Settings `;let _;_=$localize`${"\uFFFD#26\uFFFD"}:START_TAG_SPK_ICON:info${"\uFFFD/#26\uFFFD"}:CLOSE_TAG_SPK_ICON: About Duplicati `;let D;D=$localize`${"\uFFFD#29\uFFFD"}:START_TAG_SPK_ICON:files${"[\uFFFD/#29\uFFFD|\uFFFD/#30\uFFFD]"}:CLOSE_TAG_SPK_ICON: Documentation ${"\uFFFD#30\uFFFD"}:START_TAG_SPK_ICON_1:arrow-square-out${"[\uFFFD/#29\uFFFD|\uFFFD/#30\uFFFD]"}:CLOSE_TAG_SPK_ICON:`,D=$(D);let k;k=$localize`${"\uFFFD#33\uFFFD"}:START_TAG_SPK_ICON:chats-circle${"[\uFFFD/#33\uFFFD|\uFFFD/#34\uFFFD]"}:CLOSE_TAG_SPK_ICON: Visit forum ${"\uFFFD#34\uFFFD"}:START_TAG_SPK_ICON_1:arrow-square-out${"[\uFFFD/#33\uFFFD|\uFFFD/#34\uFFFD]"}:CLOSE_TAG_SPK_ICON:`,k=$(k);let I;I=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SPK_ICON:skip-back${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SPK_ICON: Use old UI `;let L;return L=$localize`${"\uFFFD#5\uFFFD"}:START_TAG_SPK_ICON:sign-out${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_ICON: Log out `,[o,e,t,a,_,D,k,I,L,["sidenav",""],["spk-button","",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","/settings","routerLinkActive","active"],[1,"spacer"],[1,"base-1l","primary"],["action","","routerLink","/about","routerLinkActive","active"],["href","https://docs.duplicati.com","target","_blank","action",""],["suffix",""],["href","https://forum.duplicati.com","target","_blank","action",""],["action","",3,"click"]]},template:function(e,t){e&1&&(s(0,"spk-sidenav")(1,"div",9)(2,"header"),l(3,"app-logo"),s(4,"button",10),S("click",function(){return t.toggleBodyClass()}),C(5,et,2,0,"spk-icon")(6,tt,2,0,"spk-icon"),i()(),s(7,"spk-list",11)(8,"button",12),p(9,0),l(10,"spk-icon"),u(),i(),s(11,"button",13),p(12,1),l(13,"spk-icon"),u(),i(),s(14,"button",14),p(15,2),l(16,"spk-icon"),u(),i(),s(17,"button",15),p(18,3),l(19,"spk-icon"),u(),i()(),l(20,"div",16),s(21,"spk-list",17),C(22,nt,6,0),l(23,"spk-divider"),s(24,"button",18),p(25,4),l(26,"spk-icon"),u(),i(),s(27,"a",19),p(28,5),l(29,"spk-icon")(30,"spk-icon",20),u(),i(),s(31,"a",21),p(32,6),l(33,"spk-icon")(34,"spk-icon",20),u(),i()()(),l(35,"router-outlet")(36,"app-service-hub"),i()),e&2&&(r(5),d(t.isDarkMode()?5:6),r(3),h("routerLinkActiveOptions",le(3,Ze)),r(14),d(t.relayIsEnabled()?-1:22))},dependencies:[ce,pe,ue,Ce,M,me,w,Fe,b,Ie],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}"],changeDetection:0})};export{J as default};
|
|
1
|
+
import{a as Le,b as Re}from"./chunk-5FTLFTEB.js";import{a as $e}from"./chunk-HAATVFD4.js";import{a as x}from"./chunk-M7A6IY7W.js";import"./chunk-WBCTOQOO.js";import{a as fe}from"./chunk-SF5ML7OT.js";import"./chunk-HZQEM2P7.js";import"./chunk-LUKUBN2Z.js";import"./chunk-RHW5QVAY.js";import"./chunk-LWIINXS7.js";import"./chunk-DLJSVAM2.js";import{a as Ie}from"./chunk-S75WBVE3.js";import{c as Pe,d as Oe,e as he,h as De,r as ke,s as Ne,t as Me}from"./chunk-ABANCAM5.js";import{b as de,d as Ee}from"./chunk-B37C3RGG.js";import{c as ce,e as pe,f as ue}from"./chunk-WRKRV6RQ.js";import"./chunk-DYTQQHMA.js";import{C as Te,a as M,b as G,c as Se,e as ge,g as w,k as Fe,l as Ae,n as me,u as Ce}from"./chunk-H5MGVT7B.js";import{h as H}from"./chunk-N5FH4YAX.js";import"./chunk-EBXJGPRA.js";import{$a as ee,Ab as te,Bb as ne,Cb as oe,Db as s,Eb as i,F as V,Fb as l,Jb as f,Pb as p,Qb as u,Qc as _e,Rb as O,Rc as Q,Ua as r,Ub as $,Vb as S,Wb as c,Z as F,bb as X,ea as A,fa as m,gb as N,gc as ie,hc as se,jc as g,kc as K,lb as C,lc as z,oc as W,pc as q,qc as j,ra as Z,rc as ae,sc as re,tc as y,ub as h,va as E,vc as le,wb as v,yb as R,zb as d}from"./chunk-4KE2I7OA.js";import{a as Y,b as B}from"./chunk-7CGTOI24.js";var Ge=["scroller"];function we(n,o){n&1&&(s(0,"spk-icon"),g(1,"bell-ringing"),i())}function He(n,o){n&1&&(s(0,"spk-icon"),g(1,"bell"),i())}function xe(n,o){if(n&1&&l(0,"app-notification",8),n&2){c(2);let e=y(6);h("index",0)("notification",e.content)}}function Ue(n,o){if(n&1&&(s(0,"div",11),g(1),i()),n&2){c(3);let e=y(6);r(),z(" ",e.content.content," ")}}function Ye(n,o){if(n&1&&(s(0,"spk-alert")(1,"div",10),g(2),i(),C(3,Ue,2,1,"div",11),i()),n&2){c(2);let e=y(6);R(e.content.type||"error"),r(2),K(e.content.title),r(),d(e.content.content?3:-1)}}function Be(n,o){if(n&1&&(s(0,"div",6),C(1,xe,1,2,"app-notification",8)(2,Ye,4,4,"spk-alert",9),i()),n&2){c();let e=y(6);r(),d(e.type==="notification"?1:2)}}function Ve(n,o){if(n&1){let e=f();s(0,"div",7)(1,"div",12)(2,"h6",13),p(3,2),s(4,"button",5),S("click",function(){A(e);let a=c();return m(a.toggleNotifications())}),l(5,"spk-icon"),i(),u(),i(),s(6,"div",14,0)(8,"div",15),l(9,"app-notifications"),i()()()()}}function Xe(n,o){if(n&1&&(s(0,"div",20),g(1),i()),n&2){let e=c().$implicit;r(),z(" ",e.content," ")}}function Ke(n,o){if(n&1){let e=f();s(0,"spk-alert",18,1),S("click",function(){let a=A(e).$implicit,_=c(2);return m(_.deleteAlertByIndex(a.id))}),s(2,"div",19),g(3),i(),C(4,Xe,2,1,"div",20),i()}if(n&2){let e=o.$implicit;R(e.type),h("id",e.id),r(3),K(e.title),r(),d(e.content?4:-1)}}function ze(n,o){n&1&&(s(0,"p",17),O(1,4),i())}function We(n,o){if(n&1){let e=f();s(0,"div",7)(1,"div",12)(2,"h6",13),p(3,3),s(4,"button",5),S("click",function(){A(e);let a=c();return m(a.toggleAlerts())}),l(5,"spk-icon"),i(),u(),i(),s(6,"div",14,0)(8,"div",15),ne(9,Ke,5,5,"spk-alert",16,te,!1,ze,2,0,"p",17),i()()()()}if(n&2){let e=c();r(9),oe(e.alertHistory())}}var ye=new ke,b=class n{#e=F(Se);#t=F(x);isSubmitting=E(!1);messageSent=E(!1);form=ye.group({message:ye.control("",[Oe.required])});notifications=this.#t.notifications;shownMessage=E(null);shownMessageInterval=null;alertHistory=this.#e.alertHistory;alertHistoryIsOpen=this.#e.alertHistoryIsOpen;alertHistoryIsHidden=this.#e.alertHistoryIsHidden;numberOfOpenAlerts=_e(()=>this.alertHistory().filter(o=>o.isOpen).length);scroller=ee("scroller");isAlertsOpen=X(!1);isNotificationsOpen=X(!1);previousHistoryCount=E(null);previousNotificationsCount=E(null);constructor(){Q(()=>{let o=this.alertHistory(),e=this.notifications();e.length&&this.previousHistoryCount()!==o.length&&!this.isNotificationsOpen()?(this.shownMessage.set({content:e[0],countDown:3,type:"notification"}),this.previousHistoryCount.set(o.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(a=>B(Y({},a),{countDown:a.countDown-1}))},1e3)):o.length&&this.previousHistoryCount()!==o.length&&!this.isAlertsOpen()&&(this.shownMessage.set({content:o[0],countDown:3,type:"alert"}),this.previousHistoryCount.set(o.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(a=>B(Y({},a),{countDown:a.countDown-1}))},1e3))}),Q(()=>{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(o){this.#e.removeAlert(o)}scrollToBottom(){this.scroller()&&this.scroller()?.nativeElement&&this.scroller().nativeElement.scrollTo(0,this.scroller().nativeElement.scrollHeight)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=N({type:n,selectors:[["app-service-hub"]],viewQuery:function(e,t){e&1&&ie(t.scroller,Ge,5),e&2&&se()},inputs:{isAlertsOpen:[1,"isAlertsOpen"],isNotificationsOpen:[1,"isNotificationsOpen"]},outputs:{isAlertsOpen:"isAlertsOpenChange",isNotificationsOpen:"isNotificationsOpenChange"},decls:10,vars:9,consts:()=>{let o;o=$localize` Notifications ${"\uFFFD#4\uFFFD"}:START_TAG_BUTTON:${"\uFFFD#5\uFFFD"}:START_TAG_SPK_ICON:x-circle${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_ICON:${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_BUTTON:`;let e;e=$localize` Alerts ${"\uFFFD#4\uFFFD"}:START_TAG_BUTTON:${"\uFFFD#5\uFFFD"}:START_TAG_SPK_ICON:x-circle${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_ICON:${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_BUTTON:`;let t;return t=$localize`No alerts yet`,[["scroller",""],["alerts",""],o,e,t,["spk-button","",3,"click"],[1,"preview-alert-wrap"],[1,"alert-stream-modal"],[3,"index","notification"],[3,"class"],["sparkle-alert-title",""],["sparkle-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){let a=f();s(0,"button",5),S("click",function(){return A(a),m(t.toggleAlerts())}),s(1,"spk-icon"),g(2,"info"),i()(),s(3,"button",5),S("click",function(){return A(a),m(t.toggleNotifications())}),C(4,we,2,0,"spk-icon")(5,He,2,0,"spk-icon"),i(),ae(6),C(7,Be,3,1,"div",6)(8,Ve,10,0,"div",7)(9,We,12,1,"div",7)}if(e&2){R(t.alertHistory().length?"error":""),r(3),R(t.notifications().length?"error":""),r(),d(t.notifications().length?4:5),r(2);let a=re(t.shownMessage());r(),d(a?7:-1),r(),d(t.isNotificationsOpen()?8:-1),r(),d(t.isAlertsOpen()?9:-1)}},dependencies:[Me,G,M,w,Re,Le],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 qe(n,o){n&1&&(s(0,"spk-icon",14),g(1,"check"),i())}function je(n,o){n&1&&(s(0,"spk-icon",15),g(1,"prohibit"),i())}function Qe(n,o){if(n&1){let e=f();s(0,"button",20),S("click",function(){A(e);let a=c();return m(a.updatePassphrase())}),O(1,5),i()}if(n&2){let e=c();v("loader",e.isUpdating())}}function Je(n,o){if(n&1){let e=f();s(0,"button",21),S("click",function(){A(e);let a=c();return m(a.updatePassphrase())}),O(1,6),i()}if(n&2){let e=c();v("loader",e.isUpdating()),h("disabled",!0)}}var U=class n{#e=F(H);closed=Z();isUpdating=E(!1);passphrase=E("");repeatPassphrase=E("");updatePassphrase(){this.passphrase()===this.repeatPassphrase()&&(this.isUpdating.set(!0),this.#e.patchApiV1Serversettings({requestBody:{"server-passphrase":this.passphrase()}}).pipe(V(()=>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(V(()=>this.isUpdating.set(!1))).subscribe({next:()=>this.closed.emit()})}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=N({type:n,selectors:[["app-change-passphrase-alert-dialog"]],outputs:{closed:"closed"},decls:23,vars:7,consts:()=>{let o;o=$localize`Enter new password`;let e;e=$localize`Repeat password`;let t;t=$localize`Password have to be filled and have to match`;let a;a=$localize`Change passphrase`;let _;_=$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? `,_=$(_);let D;D=$localize`Passphrase`;let k;k=$localize`Repeat passphrase`;let I;I=$localize`Not now thanks`;let L;L=$localize` Yes, update passphrase now `;let T;return T=$localize` Yes, update passphrase now `,[a,_,D,k,I,L,T,["header",""],["content",""],["type","warning"],["for","password"],["type","password","name","password","autocomplete","disabled","placeholder",o,"tabindex","1",3,"ngModelChange","ngModel"],["for","repeatPassword"],["type","password","name","repeatPassword","autocomplete","disabled","placeholder",e,"tabindex","2",3,"ngModelChange","disabled","ngModel"],["suffix","",1,"spk-success"],["suffix",""],["footer",""],["spk-button","",3,"click"],["spk-button","",1,"raised","primary",3,"loader"],["spk-button","","spkTooltip",t,1,"raised","primary",3,"loader","disabled"],["spk-button","",1,"raised","primary",3,"click"],["spk-button","","spkTooltip",t,1,"raised","primary",3,"click","disabled"]]},template:function(e,t){e&1&&(s(0,"header",7)(1,"h3"),O(2,0),i()(),s(3,"div",8)(4,"spk-alert",9),p(5,1),l(6,"br")(7,"br"),u(),i(),s(8,"spk-form-field")(9,"label",10),O(10,2),i(),s(11,"input",11),j("ngModelChange",function(_){return q(t.passphrase,_)||(t.passphrase=_),_}),i()(),s(12,"spk-form-field")(13,"label",12),O(14,3),i(),s(15,"input",13),j("ngModelChange",function(_){return q(t.repeatPassphrase,_)||(t.repeatPassphrase=_),_}),i(),C(16,qe,2,0,"spk-icon",14)(17,je,2,0,"spk-icon",15),i()(),s(18,"footer",16)(19,"button",17),S("click",function(){return t.cancel()}),O(20,4),i(),C(21,Qe,2,2,"button",18)(22,Je,2,3,"button",19),i()),e&2&&(r(11),W("ngModel",t.passphrase),r(4),h("disabled",t.passphrase().length===0),W("ngModel",t.repeatPassphrase),r(),d(t.passphrase().length!==0&&t.passphrase()===t.repeatPassphrase()?16:17),r(3),v("loader",t.isUpdating()),r(2),d(t.passphrase().length!==0&&t.passphrase()===t.repeatPassphrase()?21:22))},dependencies:[Ne,Pe,he,De,G,Ae,M,Te],styles:["[_nghost-%COMP%]{display:block;--dialog-p: 1.5rem}[content][_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}"],changeDetection:0})};var Ze=()=>({exact:!0});function et(n,o){n&1&&(s(0,"spk-icon"),g(1,"sun"),i())}function tt(n,o){n&1&&(s(0,"spk-icon"),g(1,"moon"),i())}function nt(n,o){if(n&1){let e=f();s(0,"button",22),S("click",function(){A(e);let a=c();return m(a.changeDefaultClientTo("ngax"))}),p(1,7),l(2,"spk-icon"),u(),i(),s(3,"button",22),S("click",function(){A(e);let a=c();return m(a.logout())}),p(4,8),l(5,"spk-icon"),u(),i()}}var J=class n{#e=F($e);#t=F(H);#n=F(fe);#o=F(de);#i=F(ge);#s=F(x);#a=F(Ee);relayIsEnabled=this.#o.relayIsEnabled;isDarkMode=this.#e.isDarkMode;ngOnInit(){return this.#s.init(),this.#n.getBackups(!0),this.#t.getApiV1Serversettings().subscribe({next:o=>{let e=o["autogenerated-passphrase"]==="True",t=o["has-asked-for-password-change"]==="True";e&&!t&&this.#i.open(U,{maxWidth:"500px"})}})}toggleBodyClass(){this.#e.toggleBodyClass()}changeDefaultClientTo(o){this.#r(o),window.location.replace(`/${o}`)}logout(){this.#a.logout()}#r(o){var e=new Date;e.setTime(e.getTime()+90*24*60*60*1e3),document.cookie="default-client="+o+"; expires="+e.toUTCString()+"; path=/"}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=N({type:n,selectors:[["app-layout"]],decls:37,vars:4,consts:()=>{let o;o=$localize`${"\uFFFD#10\uFFFD"}:START_TAG_SPK_ICON:house${"\uFFFD/#10\uFFFD"}:CLOSE_TAG_SPK_ICON: Home `;let e;e=$localize`${"\uFFFD#13\uFFFD"}:START_TAG_SPK_ICON:database${"\uFFFD/#13\uFFFD"}:CLOSE_TAG_SPK_ICON: Add backup `;let t;t=$localize`${"\uFFFD#16\uFFFD"}:START_TAG_SPK_ICON:clock-counter-clockwise${"\uFFFD/#16\uFFFD"}:CLOSE_TAG_SPK_ICON: Restore `;let a;a=$localize`${"\uFFFD#19\uFFFD"}:START_TAG_SPK_ICON:gear${"\uFFFD/#19\uFFFD"}:CLOSE_TAG_SPK_ICON: Settings `;let _;_=$localize`${"\uFFFD#26\uFFFD"}:START_TAG_SPK_ICON:info${"\uFFFD/#26\uFFFD"}:CLOSE_TAG_SPK_ICON: About Duplicati `;let D;D=$localize`${"\uFFFD#29\uFFFD"}:START_TAG_SPK_ICON:files${"[\uFFFD/#29\uFFFD|\uFFFD/#30\uFFFD]"}:CLOSE_TAG_SPK_ICON: Documentation ${"\uFFFD#30\uFFFD"}:START_TAG_SPK_ICON_1:arrow-square-out${"[\uFFFD/#29\uFFFD|\uFFFD/#30\uFFFD]"}:CLOSE_TAG_SPK_ICON:`,D=$(D);let k;k=$localize`${"\uFFFD#33\uFFFD"}:START_TAG_SPK_ICON:chats-circle${"[\uFFFD/#33\uFFFD|\uFFFD/#34\uFFFD]"}:CLOSE_TAG_SPK_ICON: Visit forum ${"\uFFFD#34\uFFFD"}:START_TAG_SPK_ICON_1:arrow-square-out${"[\uFFFD/#33\uFFFD|\uFFFD/#34\uFFFD]"}:CLOSE_TAG_SPK_ICON:`,k=$(k);let I;I=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SPK_ICON:skip-back${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SPK_ICON: Use old UI `;let L;return L=$localize`${"\uFFFD#5\uFFFD"}:START_TAG_SPK_ICON:sign-out${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_ICON: Log out `,[o,e,t,a,_,D,k,I,L,["sidenav",""],["spk-button","",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","/settings","routerLinkActive","active"],[1,"spacer"],[1,"base-1l","primary"],["action","","routerLink","/about","routerLinkActive","active"],["href","https://docs.duplicati.com","target","_blank","action",""],["suffix",""],["href","https://forum.duplicati.com","target","_blank","action",""],["action","",3,"click"]]},template:function(e,t){e&1&&(s(0,"spk-sidenav")(1,"div",9)(2,"header"),l(3,"app-logo"),s(4,"button",10),S("click",function(){return t.toggleBodyClass()}),C(5,et,2,0,"spk-icon")(6,tt,2,0,"spk-icon"),i()(),s(7,"spk-list",11)(8,"button",12),p(9,0),l(10,"spk-icon"),u(),i(),s(11,"button",13),p(12,1),l(13,"spk-icon"),u(),i(),s(14,"button",14),p(15,2),l(16,"spk-icon"),u(),i(),s(17,"button",15),p(18,3),l(19,"spk-icon"),u(),i()(),l(20,"div",16),s(21,"spk-list",17),C(22,nt,6,0),l(23,"spk-divider"),s(24,"button",18),p(25,4),l(26,"spk-icon"),u(),i(),s(27,"a",19),p(28,5),l(29,"spk-icon")(30,"spk-icon",20),u(),i(),s(31,"a",21),p(32,6),l(33,"spk-icon")(34,"spk-icon",20),u(),i()()(),l(35,"router-outlet")(36,"app-service-hub"),i()),e&2&&(r(5),d(t.isDarkMode()?5:6),r(3),h("routerLinkActiveOptions",le(3,Ze)),r(14),d(t.relayIsEnabled()?-1:22))},dependencies:[ce,pe,ue,Ce,M,me,w,Fe,b,Ie],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}"],changeDetection:0})};export{J as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{d as M}from"./chunk-B37C3RGG.js";import"./chunk-WRKRV6RQ.js";import"./chunk-DYTQQHMA.js";import{g as h}from"./chunk-H5MGVT7B.js";import"./chunk-N5FH4YAX.js";import"./chunk-EBXJGPRA.js";import{Db as t,Eb as i,Fb as g,Rb as c,Ua as u,Xb as C,Yb as l,Z as p,gb as s,jc as O,lb as _,zb as f}from"./chunk-4KE2I7OA.js";import"./chunk-7CGTOI24.js";var v=["*",[["","footer",""]]],T=["*","[footer]"],r=class n{static \u0275fac=function(e){return new(e||n)};static \u0275cmp=s({type:n,selectors:[["app-custom-card"]],ngContentSelectors:T,decls:11,vars:0,consts:[[1,"card"],["src","/assets/noise/auth-noise.svg",1,"noise"],[1,"header-title"],["src","/assets/duplicati/duplicati.svg","alt",""],[1,"bg"]],template:function(e,a){e&1&&(C(v),t(0,"div",0),g(1,"img",1),t(2,"header")(3,"div",2),g(4,"img",3),O(5," Duplicati "),i()(),t(6,"main"),l(7),t(8,"footer"),l(9,1),i()()(),g(10,"div",4))},styles:['[_nghost-%COMP%]{height:100vh;width:100vw;display:flex;align-items:center;justify-content:center;background-color:var(--base-2)}body.dark [_nghost-%COMP%] .card[_ngcontent-%COMP%]:before{background:radial-gradient(rgba(var(--primary-rgb-900),1),#0000 60%)}.card[_ngcontent-%COMP%]{max-width:30rem;width:100%;position:relative;z-index:100;background-color:var(--base-1);border-radius:var(--shape-5);box-shadow:var(--box-shadow-40);border:1px solid var(--base-3);overflow:hidden}.card[_ngcontent-%COMP%]:before{content:"";position:absolute;height:30rem;transform:translateY(-17.8125rem);left:0;right:0;z-index:-2;background:radial-gradient(rgba(var(--primary-rgb-100),1),#0000 60%)}.card[_ngcontent-%COMP%] img.noise[_ngcontent-%COMP%]{position:absolute;height:30rem;width:100%;transform:translateY(-17.8125rem);left:0;right:0;z-index:-1;mask-image:radial-gradient(#000,#0000 60%)}header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;padding:2rem 2rem 0;gap:.75rem;position:relative;z-index:10}.header-title[_ngcontent-%COMP%]{font:var(--title-30);display:flex;align-items:center;gap:.625rem}.header-title[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:1.75rem;filter:drop-shadow(0 2px 3px rgba(0,0,0,.3))}main[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;padding:2rem;gap:2.5rem;position:relative;z-index:10}main[_ngcontent-%COMP%] footer[_ngcontent-%COMP%]{font:var(--paragraph-40);color:var(--base-9);text-align:center;text-wrap:balance}.bg[_ngcontent-%COMP%]{position:fixed;inset:0;width:100vw;height:100vh;background-image:url(/assets/backgrounds/base-bg.svg);background-size:cover;background-position:center;background-repeat:no-repeat}body.dark[_ngcontent-%COMP%] .bg[_ngcontent-%COMP%]{opacity:1}footer[_ngcontent-%COMP%]:empty{display:none}'],changeDetection:0})};function y(n,o){n&1&&(t(0,"h3"),c(1,0),i())}function S(n,o){n&1&&(t(0,"h3"),c(1,1),i(),t(2,"button",3),c(3,2),i())}var d=class n{#e=p(M);isLoggingOut=this.#e.isLoggingOut;ngOnInit(){this.#e.logout()}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=s({type:n,selectors:[["app-logout"]],decls:3,vars:1,consts:()=>{let o;o=$localize`Logging out...`;let e;e=$localize`You have successfully logged out your being redirected to login page.`;let a;return a=$localize`Go to login page`,[o,e,a,["spk-button","","routerLink","/",1,"raised","primary"]]},template:function(e,a){e&1&&(t(0,"app-custom-card"),_(1,y,2,0,"h3")(2,S,4,0),i()),e&2&&(u(),f(a.isLoggingOut()?1:2))},dependencies:[r,h],styles:["[_nghost-%COMP%]{display:block}"],changeDetection:0})};export{d as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as ke,c as $e,d as B}from"./chunk-4V45XF67.js";import{a as Re}from"./chunk-UEYPJIJG.js";import{a as de}from"./chunk-SF5ML7OT.js";import"./chunk-HZQEM2P7.js";import"./chunk-RHW5QVAY.js";import"./chunk-LWIINXS7.js";import{b as Pe,c as Te,d as S,e as Ce,f as Ee,i as me,n as Se,q as ge,r as Oe,t as fe}from"./chunk-ABANCAM5.js";import"./chunk-B37C3RGG.js";import{b as te,d as ne,e as ie}from"./chunk-WRKRV6RQ.js";import"./chunk-DYTQQHMA.js";import{A as ce,C as Fe,a as re,b as se,f as ae,g as le,l as _e,p as pe}from"./chunk-H5MGVT7B.js";import{c as oe,h as ue}from"./chunk-N5FH4YAX.js";import"./chunk-EBXJGPRA.js";import{Db as a,Eb as r,F as M,Fb as _,Jb as I,N as Q,Pb as p,Qb as c,Qc as N,Rb as E,Rc as ee,Sb as y,Tb as h,Ua as s,Ub as X,Vb as m,Wb as u,Z as P,ea as w,fa as x,gb as J,jc as D,kc as W,lb as d,mc as Y,ub as C,va as T,vc as Z,wb as O,zb as F}from"./chunk-4KE2I7OA.js";import"./chunk-7CGTOI24.js";var Ae=()=>["/"];function we(t,o){t&1&&(a(0,"spk-toggle",23),p(1,5),_(2,"input",26),c(),r())}function xe(t,o){t&1&&(a(0,"span",29),E(1,9),r())}function De(t,o){if(t&1&&(a(0,"span",29),E(1,10),r()),t&2){let e=u(2);s(),y(e.exportForm.controls.password.errors==null?null:e.exportForm.controls.password.errors.minlength.requiredLength),h(1)}}function Ne(t,o){if(t&1&&_(0,"spk-progress-bar",36),t&2){let e=u(2);O("error",e.calculatePasswordStrength()===1)("warn",e.calculatePasswordStrength()===2)("primary",e.calculatePasswordStrength()===4)("success",e.calculatePasswordStrength()===5),C("value",e.calculatePasswordStrength()*(100/5))}}function Me(t,o){t&1&&(a(0,"span",29),E(1,11),r())}function Ie(t,o){t&1&&(a(0,"span",29),E(1,12),r())}function ye(t,o){if(t&1&&(a(0,"span",29),E(1,13),r()),t&2){let e=u(2);s(),y(e.exportForm.controls.repeatPassword.errors==null?null:e.exportForm.controls.repeatPassword.errors.minlength.requiredLength),h(1)}}function he(t,o){t&1&&(p(0,7,1),_(1,"spk-icon"),c())}function Xe(t,o){t&1&&(p(0,7,2),_(1,"spk-icon"),c())}function Be(t,o){t&1&&(p(0,14,1),_(1,"spk-icon",38),c())}function Le(t,o){t&1&&(p(0,14,2),_(1,"spk-icon"),c())}function be(t,o){if(t&1){let e=I();a(0,"button",37),m("click",function(){w(e);let i=u(2);return x(i.copyPassword())}),p(1,14),d(2,Be,2,0)(3,Le,2,0),c(),r()}if(t&2){let e=u(2);s(2),F(e.copiedPassword()?2:3)}}function ve(t,o){t&1&&(a(0,"spk-alert",35),E(1,15),r())}function Ge(t,o){if(t&1){let e=I();a(0,"div",24)(1,"spk-form-field")(2,"label",27),p(3,6),_(4,"sup"),c(),r(),_(5,"input",28),d(6,xe,2,0,"span",29)(7,De,2,1,"span",29),r(),d(8,Ne,1,9,"spk-progress-bar",30),a(9,"spk-form-field"),_(10,"input",31),d(11,Me,2,0,"span",29)(12,Ie,2,0,"span",29)(13,ye,2,1,"span",29),r(),a(14,"div",32)(15,"button",33),m("click",function(){w(e);let i=u();return x(i.showPassword.set(!i.showPassword()))}),p(16,7),d(17,he,2,0)(18,Xe,2,0),c(),r(),a(19,"button",33),m("click",function(){w(e);let i=u();return x(i.generatePassword())}),p(20,8),_(21,"spk-icon"),c(),r(),d(22,be,4,1,"button",34),r(),d(23,ve,2,0,"spk-alert",35),r()}if(t&2){let e=u();s(5),C("type",e.showPassword()?"text":"password"),s(),F(e.exportForm.controls.password.errors!=null&&e.exportForm.controls.password.errors.required?6:e.exportForm.controls.password.errors!=null&&e.exportForm.controls.password.errors.minlength?7:-1),s(2),F(e.exportForm.value.password?8:-1),s(2),C("type",e.showPassword()?"text":"password"),s(),F(e.exportForm.value.repeatPassword&&e.exportForm.value.repeatPassword!==e.exportForm.value.password?11:e.exportForm.controls.repeatPassword.errors!=null&&e.exportForm.controls.repeatPassword.errors.required?12:e.exportForm.controls.repeatPassword.errors!=null&&e.exportForm.controls.repeatPassword.errors.minlength?13:-1),s(6),F(e.showPassword()?17:18),s(5),F(e.showCopyPassword()?22:-1),s(),F(e.exportForm.value.password&&e.exportForm.value.password===e.exportForm.value.repeatPassword?23:-1)}}function Ke(t,o){if(t&1&&(a(0,"div",25)(1,"code"),D(2),r()()),t&2){let e=u();s(2),W(e.exportedCmd())}}var f=new Oe,L=class t{#o=P(ke);#t=P(ue);#e=P(te);#n=P(ne);#i=P(oe);#r=P(de);isExporting=T(!1);exportType=T("file");exportedCmd=T(null);exportForm=f.group({exportPasswords:f.control(!0),encryption:f.control(!1,[S.required,$e()]),password:f.control("",[B("encryption",!0,[S.required,S.minLength(3)])]),repeatPassword:f.control("",[B("encryption",!0,[S.required,S.minLength(3)])])});exportFormSignal=Re(this.exportForm.valueChanges);encryptionFieldSignal=N(()=>this.exportFormSignal()?.encryption??!1);activeBackup=N(()=>this.#r.backups().find(o=>o.Backup?.ID===this.#e.snapshot.params.id));showPassword=T(!1);copiedPassword=T(!1);showCopyPassword=T(!1);calculatePasswordStrength=N(()=>{let e=this.exportFormSignal()?.password??"";return this.#o.calculatePasswordStrength(e)});showPasswordEffect=ee(()=>{this.showPassword()&&this.exportForm.updateValueAndValidity()});submit(){this.isExporting.set(!0),this.exportType()==="file"?this.#t.postApiV1AuthIssuetokenByOperation({operation:"export"}).pipe(Q(o=>{let e=i=>{let g=Object.entries(i);return g?"?"+g.map(([R,k])=>`${R}=${k}`).join("&"):""},n=this.exportFormSignal()?.password?.length?this.exportFormSignal()?.password:void 0;return this.#i.get(`/api/v1/backup/${this.#e.snapshot.params.id}/export${e({"export-passwords":this.exportFormSignal()?.exportPasswords??void 0,passphrase:n,token:o.Token})}`,{responseType:"blob"})}),M(()=>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(M(()=>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=J({type:t,selectors:[["app-export"]],decls:26,vars:15,consts:()=>{let o;o=$localize`Remember to copy the password`;let e;e=$localize`${"\uFFFD#6\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#6\uFFFD"}:CLOSE_TAG_SPK_ICON: Back `;let n;n=$localize`${"\uFFFD#9\uFFFD"}:START_TAG_SPK_ICON:export${"\uFFFD/#9\uFFFD"}:CLOSE_TAG_SPK_ICON: Export `;let i;i=$localize`${"\uFFFD#16\uFFFD"}:START_TAG_SPK_ICON:terminal-window${"\uFFFD/#16\uFFFD"}:CLOSE_TAG_SPK_ICON: As command line `;let g;g=$localize`${"\uFFFD#19\uFFFD"}:START_TAG_SPK_ICON:file${"\uFFFD/#19\uFFFD"}:CLOSE_TAG_SPK_ICON: To file `;let R;R=$localize` Export passwords ${"\uFFFD#22\uFFFD\uFFFD/#22\uFFFD"}:TAG_INPUT:`;let k;k=$localize` Encrypt file ${"\uFFFD#2\uFFFD\uFFFD/#2\uFFFD"}:TAG_INPUT:`;let b;b=$localize`Password`;let v;v=$localize`Repeat password`;let G;G=$localize` Create a password ${"\uFFFD#4\uFFFD"}:START_SUPERSCRIPT:*${"\uFFFD/#4\uFFFD"}:CLOSE_SUPERSCRIPT:`;let $;$=$localize`${"\uFFFD*17:1\uFFFD"}:START_BLOCK_IF:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SPK_ICON:eye-slash${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SPK_ICON: hide ${"\uFFFD/*17:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*18:2\uFFFD"}:START_BLOCK_ELSE:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SPK_ICON:eye${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SPK_ICON: show ${"\uFFFD/*18:2\uFFFD"}:CLOSE_BLOCK_ELSE:`,$=X($);let K;K=$localize`${"\uFFFD#21\uFFFD"}:START_TAG_SPK_ICON:password${"\uFFFD/#21\uFFFD"}:CLOSE_TAG_SPK_ICON: Generate password `;let U;U=$localize`Passwords are required`;let z;z=$localize` Passwords must be at least ${"\uFFFD0\uFFFD"}:INTERPOLATION: characters long `;let V;V=$localize`Passwords do not match`;let q;q=$localize`Passwords are required`;let j;j=$localize` Passwords must be at least ${"\uFFFD0\uFFFD"}:INTERPOLATION: characters long `;let A;A=$localize`${"\uFFFD*2:1\uFFFD"}:START_BLOCK_IF:${"\uFFFD#1:1\uFFFD"}:START_TAG_SPK_ICON:check${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SPK_ICON: Copied password ${"\uFFFD/*2:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*3:2\uFFFD"}:START_BLOCK_ELSE:${"\uFFFD#1:2\uFFFD"}:START_TAG_SPK_ICON_1:copy${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SPK_ICON: Copy password ${"\uFFFD/*3:2\uFFFD"}:CLOSE_BLOCK_ELSE:`,A=X(A);let H;return H=$localize` Tip: Be sure to save your password. If you loose it you will lose access to your backups. `,[e,n,i,g,R,k,G,$,K,U,z,V,q,j,A,H,[1,"actions"],["spk-button","",1,"outlined",3,"routerLink"],["spk-button","","spkTooltip",o,1,"raised","primary",3,"click","disabled"],["autocomplete","off",3,"formGroup"],["type","button",3,"click"],[1,"raised","primary"],["type","checkbox","formControlName","exportPasswords"],[1,"primary","raised"],[1,"passwords"],[1,"cmd-output"],["type","checkbox","formControlName","encryption"],["for","password"],["id","password","tabindex","4","autocomplete","off","placeholder",b,"formControlName","password",3,"type"],["error",""],[1,"raised",3,"error","warn","primary","success","value"],["id","repeatPassword","tabindex","5","autocomplete","off","placeholder",v,"formControlName","repeatPassword",3,"type"],[1,"password-actions"],["spk-button","","type","button",1,"small",3,"click"],["spk-button","","type","button",1,"small","copy"],[1,"primary"],[1,"raised",3,"value"],["spk-button","","type","button",1,"small","copy",3,"click"],[1,"spk-success"]]},template:function(e,n){if(e&1&&(a(0,"header")(1,"h3"),D(2," Export backup configuration "),a(3,"div",16)(4,"button",17),p(5,0),_(6,"spk-icon"),c(),r(),a(7,"button",18),m("click",function(){return n.submit()}),p(8,1),_(9,"spk-icon"),c(),r()()(),a(10,"p"),D(11),r()(),a(12,"form",19)(13,"spk-button-group")(14,"button",20),m("click",function(){return n.exportType.set("cmd")}),p(15,2),_(16,"spk-icon"),c(),r(),a(17,"button",20),m("click",function(){return n.exportType.set("file")}),p(18,3),_(19,"spk-icon"),c(),r()(),a(20,"spk-toggle",21),p(21,4),_(22,"input",22),c(),r(),d(23,we,3,0,"spk-toggle",23)(24,Ge,24,8,"div",24)(25,Ke,3,1,"div",25),r()),e&2){let i;s(4),C("routerLink",Z(14,Ae)),s(3),O("loading",n.isExporting()),C("disabled",n.exportForm.invalid||n.showCopyPassword()&&!n.copiedPassword()),s(4),Y("#",(i=n.activeBackup())==null||i.Backup==null?null:i.Backup.ID,": ",(i=n.activeBackup())==null||i.Backup==null?null:i.Backup.Name,""),s(),C("formGroup",n.exportForm),s(2),O("active",n.exportType()==="cmd"),s(3),O("active",n.exportType()==="file"),s(6),F(n.exportType()==="file"?23:-1),s(),F(n.encryptionFieldSignal()?24:-1),s(),F(n.exportedCmd()?25:-1)}},dependencies:[fe,me,Te,Pe,Ce,Ee,Se,ge,ie,ae,ce,re,_e,le,se,pe,Fe],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;gap:2rem;padding:3rem}h3[_ngcontent-%COMP%]{font:var(--title-30);display:flex;align-items:center;justify-content:space-between}.actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem;max-width:31.25rem}.passwords[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.password-actions[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:center}.copy[_ngcontent-%COMP%] spk-icon.spk-success[_ngcontent-%COMP%]{color:var(--success-500)}.hide[_ngcontent-%COMP%]{display:none}"],changeDetection:0})};export{L as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as B}from"./chunk-HZQEM2P7.js";import{a as b}from"./chunk-RHW5QVAY.js";import{a as h}from"./chunk-LWIINXS7.js";import{a as d}from"./chunk-B37C3RGG.js";import{h as k}from"./chunk-N5FH4YAX.js";import{E as s,F as n,P as u,Qc as p,Rc as o,T as c,Z as i,va as a}from"./chunk-4KE2I7OA.js";var m="backupListOrderBy",f="backupListShowActualTimes",S=[{value:"id",label:$localize`Backup ID`},{value:"name",label:$localize`Backup name`},{value:"lastrun",label:$localize`Last run time`},{value:"nextrun",label:$localize`Next run time`},{value:"schedule",label:$localize`Is scheduled`},{value:"backend",label:$localize`Destination type`},{value:"sourcesize",label:$localize`Source size`},{value:"destinationsize",label:$localize`Destination size`},{value:"duration",label:$localize`Duration`},{value:"-id",label:$localize`Backup ID (decending)`},{value:"-name",label:$localize`Backup name (decending)`},{value:"-lastrun",label:$localize`Last run time (decending)`},{value:"-nextrun",label:$localize`Next run time (decending)`},{value:"-schedule",label:$localize`Is scheduled (decending)`},{value:"-backend",label:$localize`Destination type (decending)`},{value:"-sourcesize",label:$localize`Source size (decending)`},{value:"-destinationsize",label:$localize`Destination size (decending)`},{value:"-duration",label:$localize`Duration (decending)`}],y=class l{#i=i(d);#l=i(k);#o=i(h);#e=i(B);#u=null;#t=a([]);#a=a([]);#r=a(!1);#n=a(null);#d=a(null);#c=a(this.#i.getItemParsed(f,!0)??"relative");#s=a(this.#i.getItemParsed(m,!0)??"id");orderByOptions=a(S);orderBy=this.#s.asReadonly();backups=this.#a.asReadonly();timeType=this.#c.asReadonly();backupsLoading=this.#r.asReadonly();startingBackup=this.#n.asReadonly();deletingBackup=this.#d.asReadonly();draftBackups=this.#t.asReadonly();#p=p(()=>this.#o.hasBackupListSubscribeOption()&&this.#e.getConnectionMethod()==="websocket");#k=o(()=>{let e=this.#e.backupListState();e&&this.#a.set(e)});addDraftBackup(e){let t=b();return this.#t.set([...this.#t(),{id:t,data:e}]),t}setOrderBy(e){this.#i.setItemParsed(m,e,!0),this.#s.set(e),this.#e.isConnectionMethodSet()&&(this.#p()?this.#e.subscribe("backuplist",e):this.getBackups(!0))}setTimeType(e){this.#i.setItemParsed(f,e,!0),this.#c.set(e)}removeDraftBackupById(e){this.#t.set(this.#t().filter(t=>t.id!==e))}getBackupById(e){return this.#a().find(t=>t.Backup?.ID===e)??null}getBackups(e=!1){if(!this.#e.isConnectionMethodSet())return;if(this.#p()){this.#e.subscribe("backuplist",this.#s());return}let t=this.#u,r=Date.now(),g=t&&r-t<15*60*1e3;t&&r-t<100||!e&&g&&this.#a().length||(this.#u=r,this.#r.set(!0),this.#l.getApiV1Backups({orderBy:this.#s()}).pipe(s(1),u(v=>this.#a.set(v)),n(()=>this.#r.set(!1))).subscribe())}startBackup(e){this.#n.set(e),this.#l.postApiV1BackupByIdStart({id:e}).pipe(s(1),u(()=>this.getBackups(!0)),n(()=>this.#n.set(null))).subscribe()}deleteBackup(e){return this.#l.deleteApiV1BackupById(e).pipe(s(1))}static \u0275fac=function(t){return new(t||l)};static \u0275prov=c({token:l,factory:l.\u0275fac,providedIn:"root"})};export{y as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as Ce}from"./chunk-WBCTOQOO.js";import{a as ge}from"./chunk-SF5ML7OT.js";import{a as me}from"./chunk-HZQEM2P7.js";import{a as de}from"./chunk-LWIINXS7.js";import{c as Ee,e as Oe,h as fe,j as Ae,s as v}from"./chunk-ABANCAM5.js";import{b as oe}from"./chunk-B37C3RGG.js";import{a as ae,b as se,e as le,g as re,i as _e,l as pe,p as ue,q as Se,s as ce,t as Te}from"./chunk-H5MGVT7B.js";import{h as A}from"./chunk-N5FH4YAX.js";import{a as Pe}from"./chunk-GQGMGFDX.js";import{pa as ie}from"./chunk-EBXJGPRA.js";import{Ab as q,Ac as te,Bb as J,Bc as ne,Cb as Q,Db as s,Eb as l,F as L,Fb as C,Jb as k,Pb as E,Qb as O,Qc as y,Rb as u,Ua as r,Ub as ee,Vb as S,Wb as d,Z as T,ea as N,fa as M,gb as f,jc as g,lb as I,lc as $,mc as z,oc as h,pc as b,qc as B,ra as G,ub as D,va as c,vb as Z,wb as m,zb as R,zc as X}from"./chunk-4KE2I7OA.js";function ke(a,n){if(a&1){let i=k();s(0,"spk-radio",10),S("click",function(){let t=N(i).$implicit,o=d();return M(o.pauseOption.set(t.value))}),g(1),l()}if(a&2){let i=n.$implicit,e=d();m("active",e.pauseOption()===i.value),r(),$(" ",i.label," ")}}var he=[{label:$localize`5 minutes`,value:"5m"},{label:$localize`10 minutes`,value:"10m"},{label:$localize`15 minutes`,value:"15m"},{label:$localize`30 minutes`,value:"30m"},{label:$localize`1 hour`,value:"1h"},{label:$localize`4 hours`,value:"4h"},{label:$localize`8 hours`,value:"8h"},{label:$localize`24 hours`,value:"24h"},{label:$localize`Until resumed`,value:void 0}],x=class a{#e=T(A);pauseOptions=c(he);closed=G();isSubmitting=c(!1);pauseTransfers=c(!1);pauseOption=c(void 0);submit(){this.isSubmitting.set(!0);let n=this.pauseTransfers()||null,i=this.pauseOption();this.#e.postApiV1ServerstatePause({duration:i,pauseTransfers:n}).pipe(L(()=>this.isSubmitting.set(!1))).subscribe({next:e=>{this.closed.emit()}})}static \u0275fac=function(i){return new(i||a)};static \u0275cmp=f({type:a,selectors:[["app-pause-dialog"]],outputs:{closed:"closed"},decls:17,vars:4,consts:()=>{let n;n=$localize`Pause settings`;let i;i=$localize` Also pause transfers `;let e;e=$localize`If you pause transfers they could time out and cause retries or failures.`;let t;t=$localize`Cancel`;let o;return o=$localize` Update settings `,[n,i,e,t,o,["header",""],["content",""],[1,"radios"],[1,"primary","raised",3,"active"],[1,"check-wrap"],[1,"primary","raised",3,"click"],["type","warning"],["footer",""],["spk-button","",3,"click"],["spk-button","",1,"raised","primary",3,"click"]]},template:function(i,e){i&1&&(s(0,"header",5)(1,"h3"),u(2,0),l()(),s(3,"div",6)(4,"div",7),J(5,ke,2,3,"spk-radio",8,q),l(),s(7,"div",9)(8,"spk-checkbox",10),S("click",function(){return e.pauseTransfers.set(!e.pauseTransfers())}),u(9,1),l(),s(10,"spk-alert",11),u(11,2),l()()(),s(12,"footer",12)(13,"button",13),S("click",function(){return e.closed.emit()}),u(14,3),l(),s(15,"button",14),S("click",function(){return e.submit()}),u(16,4),l()()),i&2&&(r(5),Q(e.pauseOptions()),r(3),m("active",e.pauseTransfers()),r(7),m("loader",e.isSubmitting()))},dependencies:[v,Se,_e,se],styles:["[_nghost-%COMP%]{--dialog-p: 1.5rem;display:block}h3[_ngcontent-%COMP%]{font:var(--title-30)}.radios[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.check-wrap[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;padding:2rem 0 0}"],changeDetection:0})};var Me={Byte:"B",KByte:"KB",MByte:"MB",GByte:"GB",TByte:"TB",PByte:"PB"},be=["mbps","gbps"],Ie=8,V=1024,w=V*1024,W=w*1024,Y=W*1024,De=Y*1024,Be={B:1,KB:V,MB:w,GB:W,TB:Y,PB:De},ye=1e3,K=ye*1e3,H=K*1e3,Ue=[{threshold:De,unitPrefix:"PByte"},{threshold:Y,unitPrefix:"TByte"},{threshold:W,unitPrefix:"GByte"},{threshold:w,unitPrefix:"MByte"},{threshold:V,unitPrefix:"KByte"},{threshold:1,unitPrefix:"Byte"}],U=class a{#e=T(A);closed=G();isSubmitting=c(!1);sizeOptions=c([...be]);maxUpload=c(0);maxDownload=c(0);maxUploadUnit=c("mbps");maxDownloadUnit=c("mbps");ngOnInit(){this.init()}convertToBitsPerSecondUnits(n,i){let t=n*(Be[i.toUpperCase()]||w)*Ie;return t===0?{value:0,unit:"mbps"}:t>=H?{value:parseFloat((t/H).toFixed(2)),unit:"gbps"}:{value:parseFloat((t/K).toFixed(2)),unit:"mbps"}}convertFromBitsPerSecondUnits(n,i){let e=0;switch(i){case"gbps":e=n*H;break;case"mbps":e=n*K;break}let t=e/Ie;if(t===0)return{valueForApi:0,unitPrefixForApi:"Byte"};for(let{threshold:o,unitPrefix:_}of Ue)if(t>=o)return{valueForApi:Math.round(t/o),unitPrefixForApi:_};return{valueForApi:Math.round(t),unitPrefixForApi:"Byte"}}init(){this.#e.getApiV1Serversettings().subscribe({next:n=>{let i=n?.["max-upload-speed"],e=n?.["max-download-speed"];if(i&&i!==""){let t=i.match(/^(\d+(?:\.\d+)?)([A-Za-z]+)$/);if(t){let o=parseFloat(t[1]),_=t[2],p=this.convertToBitsPerSecondUnits(o,_);this.maxUpload.set(p.value),this.maxUploadUnit.set(p.unit)}else console.warn("Unexpected max-upload-speed format from API:",i),this.resetUpload()}else this.resetUpload();if(e&&e!==""){let t=e.match(/^(\d+(?:\.\d+)?)([A-Za-z]+)$/);if(t){let o=parseFloat(t[1]),_=t[2],p=this.convertToBitsPerSecondUnits(o,_);this.maxDownload.set(p.value),this.maxDownloadUnit.set(p.unit)}else console.warn("Unexpected max-download-speed format from API:",e),this.resetDownload()}else this.resetDownload()},error:n=>{console.error("Failed to get server settings:",n),this.resetDownload(),this.resetUpload()}})}resetDownload(){this.maxDownload.set(0),this.maxDownloadUnit.set("mbps")}resetUpload(){this.maxUpload.set(0),this.maxUploadUnit.set("mbps")}blockDecimalKeys(n){if([".",","].includes(n.key))return n.preventDefault()}cleanupInputAfterPasting(n){n.preventDefault();let i=n.clipboardData?.getData("text/plain");if(!i)return;let e=i.replaceAll(/[\.,]/g,"");n.target.value=e}submit(){this.isSubmitting.set(!0);let n="",i="",e=this.maxUpload()??0,t=this.maxUploadUnit(),o=this.maxDownload()??0,_=this.maxDownloadUnit();if(e>0){let{valueForApi:p,unitPrefixForApi:P}=this.convertFromBitsPerSecondUnits(e,t),F=Me[P];F?n=`${p}${F}`:console.error(`Invalid unit prefix for API submission (upload): ${P}. Defaulting to empty string.`)}if(o){let{valueForApi:p,unitPrefixForApi:P}=this.convertFromBitsPerSecondUnits(o,_),F=Me[P];F?i=`${p}${F}`:console.error(`Invalid unit prefix for API submission (download): ${P}. Defaulting to empty string.`)}this.#e.patchApiV1Serversettings({requestBody:{"max-upload-speed":n,"max-download-speed":i}}).pipe(L(()=>this.isSubmitting.set(!1))).subscribe({next:()=>{this.closed.emit(!0)},error:p=>{console.error("Failed to submit throttle settings:",p)}})}static \u0275fac=function(i){return new(i||a)};static \u0275cmp=f({type:a,selectors:[["app-throttle-settings-dialog"]],outputs:{closed:"closed"},decls:26,vars:10,consts:()=>{let n;n=$localize`Throttle network speed`;let i;i=$localize`We will round bits to the nearest byte value.`;let e;e=$localize`Max upload speed`;let t;t=$localize`Max download speed`;let o;o=$localize`Cancel`;let _;return _=$localize` Update settings `,[n,i,e,t,o,_,["content",""],[1,"column"],[1,"field-row"],["type","number",3,"paste","keydown","ngModelChange","ngModel"],[3,"isClearable","options"],["type","text",3,"ngModelChange","ngModel"],["footer",""],["spk-button","",3,"click"],["spk-button","",1,"raised","primary",3,"click"]]},template:function(i,e){i&1&&(s(0,"header")(1,"h3"),u(2,0),l(),s(3,"p"),u(4,1),l()(),s(5,"div",6)(6,"div",7)(7,"div",8)(8,"label"),u(9,2),l(),s(10,"spk-form-field")(11,"input",9),S("paste",function(o){return e.cleanupInputAfterPasting(o)})("keydown",function(o){return e.blockDecimalKeys(o)}),B("ngModelChange",function(o){return b(e.maxUpload,o)||(e.maxUpload=o),o}),l()(),s(12,"spk-select",10)(13,"input",11),B("ngModelChange",function(o){return b(e.maxUploadUnit,o)||(e.maxUploadUnit=o),o}),l()()(),s(14,"div",8)(15,"label"),u(16,3),l(),s(17,"spk-form-field")(18,"input",9),S("paste",function(o){return e.cleanupInputAfterPasting(o)})("keydown",function(o){return e.blockDecimalKeys(o)}),B("ngModelChange",function(o){return b(e.maxDownload,o)||(e.maxDownload=o),o}),l()(),s(19,"spk-select",10)(20,"input",11),B("ngModelChange",function(o){return b(e.maxDownloadUnit,o)||(e.maxDownloadUnit=o),o}),l()()()()(),s(21,"footer",12)(22,"button",13),S("click",function(){return e.closed.emit(!1)}),u(23,4),l(),s(24,"button",14),S("click",function(){return e.submit()}),u(25,5),l()()),i&2&&(r(11),h("ngModel",e.maxUpload),r(),D("isClearable",!1)("options",e.sizeOptions()),r(),h("ngModel",e.maxUploadUnit),r(5),h("ngModel",e.maxDownload),r(),D("isClearable",!1)("options",e.sizeOptions()),r(),h("ngModel",e.maxDownloadUnit),r(4),m("loader",e.isSubmitting()))},dependencies:[v,Ee,Ae,Oe,fe,pe,Te],styles:['[_nghost-%COMP%]{display:block}h3[_ngcontent-%COMP%]{font:var(--title-30)}header[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;padding:1rem;gap:.5rem;margin-bottom:1rem}.column[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.field-row[_ngcontent-%COMP%]{display:grid;grid-template-areas:"label label" "input select";grid-template-columns:1fr auto;align-items:center;gap:.5rem;width:100%}.field-row[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{grid-area:label}.field-row[_ngcontent-%COMP%] spk-form-field[_ngcontent-%COMP%]{grid-area:input}.field-row[_ngcontent-%COMP%] spk-select[_ngcontent-%COMP%]{grid-area:select}'],changeDetection:0})};function Le(a,n){if(a&1&&(s(0,"div"),g(1),l(),C(2,"spk-progress-bar",11)),a&2){let i=d();r(),z("",i.statusData().actionText," - ",i.statusData().statusText,""),r(),D("value",i.statusData().progress*100)}}function Ge(a,n){if(a&1&&(s(0,"div",7),g(1),s(2,"spk-icon"),g(3,"clock"),l(),g(4),X(5,"relativeTime"),X(6,"date"),l()),a&2){let i,e=d();r(),$(" ",(i=e.nextBackup().backup)==null||i.Backup==null?null:i.Backup.Name," - "),r(3),z(" ",te(5,3,e.nextBackup().time)," at ",ne(6,5,e.nextBackup().time,"shortTime")," ")}}function $e(a,n){a&1&&(s(0,"div",7),u(1,1),l())}function ve(a,n){a&1&&(s(0,"div",8),E(1,2),C(2,"spk-spinner"),O(),l()),a&2&&(r(2),Z("--spinner-size","12px")("--spinner-thickness","2px"))}function xe(a,n){if(a&1){let i=k();s(0,"button",10),S("click",function(){N(i);let t=d(2);return M(t.abort())}),E(1,3),C(2,"spk-icon"),O(),l()}}function we(a,n){if(a&1){let i=k();s(0,"button",10),S("click",function(){N(i);let t=d(2);return M(t.stop())}),E(1,4),C(2,"spk-icon"),O(),l()}}function ze(a,n){if(a&1&&I(0,xe,3,0,"button",12)(1,we,3,0,"button",12),a&2){let i=d();R(i.isStopping()?0:1)}}function Xe(a,n){a&1&&(E(0,0,1),C(1,"spk-icon"),O())}function He(a,n){a&1&&(E(0,0,2),C(1,"spk-icon"),O())}var Re=new Date,j=class a{#e=T(A);#t=T(Ce);#n=T(le);#a=T(ge);#s=T(oe);#l=T(de);#i=T(me);minsAgo=Re.setMinutes(Re.getMinutes()-1);statusData=this.#t.statusData;serverState=this.#t.serverState;clientIsRunning=this.#t.clientIsRunning;isResuming=this.#t.isResuming;runningTask=y(()=>this.#i.serverState()?.ActiveTask?.Item1);isStopping=y(()=>this.runningTask()==this.#o());#o=c(-1);pgState=y(()=>this.#i.serverState());nextBackup=y(()=>{let n=this.#a.backups();return{backup:this.serverState()?.ProposedSchedule?.[0]?.backup,time:this.serverState()?.ProposedSchedule?.[0]?.Item2}});openThrottleSettingsDialog(){this.#n.open(U,{maxWidth:"550px",width:"100%"})}openPauseDialog(){this.#n.open(x,{maxWidth:"550px",width:"100%"})}pauseResume(){if(this.clientIsRunning()){this.openPauseDialog();return}this.#t.pauseResume().subscribe()}stop(){let n=this.runningTask();n&&(this.#o.set(n),this.#e.postApiV1TaskByTaskidStop({taskid:n}).subscribe())}abort(){let n=this.runningTask();n&&this.#e.postApiV1TaskByTaskidAbort({taskid:n}).subscribe()}ngAfterViewInit(){let n=this.#s.relayIsEnabled()||!this.#l.hasWebSocket()?"longpoll":"websocket";this.#t.setConnectionMethod(n)}static \u0275fac=function(i){return new(i||a)};static \u0275cmp=f({type:a,selectors:[["app-status-bar"]],decls:15,vars:5,consts:()=>{let n;n=$localize`${"\uFFFD*10:1\uFFFD"}:START_BLOCK_IF:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SPK_ICON:pause${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SPK_ICON: Pause ${"\uFFFD/*10:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*11:2\uFFFD"}:START_BLOCK_ELSE:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SPK_ICON:play${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SPK_ICON: Start ${"\uFFFD/*11:2\uFFFD"}:CLOSE_BLOCK_ELSE:`,n=ee(n);let i;i=$localize`No scheduled tasks`;let e;e=$localize` Loading ${"\uFFFD#2\uFFFD"}:START_TAG_SPK_SPINNER:${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SPK_SPINNER:`;let t;t=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SPK_ICON:skull${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SPK_ICON: Abort `;let o;return o=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SPK_ICON:stop${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SPK_ICON: Stop `,[n,i,e,t,o,[1,"current-backup"],[1,"current-backup-progress"],[1,"label"],[1,"label","label-loading"],[1,"current-backup-actions"],["spk-button","",3,"click"],[1,"raised","primary",3,"value"],["spk-button",""]]},template:function(i,e){if(i&1&&(s(0,"div",5)(1,"div",6),I(2,Le,3,3)(3,Ge,7,8,"div",7)(4,$e,2,0,"div",7)(5,ve,3,4,"div",8),l(),s(6,"div",9),I(7,ze,2,1),s(8,"button",10),S("click",function(){return e.pauseResume()}),E(9,0),I(10,Xe,2,0)(11,He,2,0),O(),l(),s(12,"button",10),S("click",function(){return e.openThrottleSettingsDialog()}),s(13,"spk-icon"),g(14,"speedometer"),l()()()()),i&2){let t;r(2),R((t=e.serverState())!=null&&t.ActiveTask&&(!((t=e.statusData())==null||t.task==null)&&t.task.Status)&&((t=e.statusData())==null||t.task==null?null:t.task.Status)!=="Completed"?2:e.nextBackup().backup||e.nextBackup().time?3:(t=e.serverState())!=null&&t.ActiveTask?5:4),r(5),R(e.runningTask()?7:-1),r(),m("loader",e.isResuming()),r(2),R(e.clientIsRunning()?10:11)}},dependencies:[ue,Pe,ie,ae,re,ce],styles:["[_nghost-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:1rem;min-height:3.875rem;border-bottom:1px solid var(--base-4);position:sticky;top:0;z-index:2000;background:var(--base-1)}.current-backup[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%;gap:.5rem}.current-backup-progress[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem;min-width:18.75rem}.current-backup-progress[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem}.current-backup-actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}.label-loading[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.25rem}"],changeDetection:0})};export{j as a};
|