@duplicati/ngclient 0.0.103 → 0.0.104

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.
@@ -0,0 +1 @@
1
+ import{a as m}from"./chunk-ON2SWJPL.js";import{b as u}from"./chunk-DYCJPQSE.js";import{A as h,D as s,E as p,O as d,R as l,X as r,n as c,sa as o,x as f,zc as N}from"./chunk-GM25ACCR.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};
@@ -1 +1 @@
1
- import{a as J}from"./chunk-4B4SNBSE.js";import{a as he}from"./chunk-YRQ33MKD.js";import{a as H}from"./chunk-NYZVIDDD.js";import{a as Re}from"./chunk-5242ZMFS.js";import{b as Ne,c as M,e as L,f as $,i as D,k as Pe,n as y,q as A,r as b,s as Ie,t as v}from"./chunk-QTTYDT3P.js";import{b as P,d}from"./chunk-7WCKE7GY.js";import{a as h,g as k,l as Ee,p as de,q as Oe,t as fe,z as Ce}from"./chunk-6WLXFV43.js";import{b as I}from"./chunk-DYCJPQSE.js";import{j as q}from"./chunk-2IDHF5MN.js";import{Ab as x,D as ae,E as f,Eb as u,Fb as F,Gb as T,Hb as ue,I as le,Ib as Fe,Kb as E,Lb as B,N as pe,Oa as S,R as _e,X as p,Zb as K,_a as N,ac as Se,ca as C,da as R,db as w,i as re,ic as me,lb as m,nb as ce,nc as ge,pc as Te,qb as G,sa as _,ub as r,vb as a,wb as l,x as se,xb as Y,yb as U,zc as j}from"./chunk-GM25ACCR.js";var ke=new b,$e=()=>ke.group({passphrase:ke.control("")}),Z=class n{#t=p(I);#e=p(O);#o=p(d);#i=p(P);encryptionForm=this.#e.encryptionForm;creatingTemporaryBackup=_(!1);next(){let o=this.#e.destinationTargetUrl();if(!o)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:o,Settings:t}},temporary:!0}).pipe(f(()=>this.creatingTemporaryBackup.set(!1))).subscribe({next:i=>{let s=i.ID;this.#o.navigate([`/restore-draft/${s}`])},error:i=>{console.error(i)}})}back(){this.#e.isFileRestore()?this.#o.navigate(["encryption"],{relativeTo:this.#i.parent}):this.#e.exit()}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=N({type:n,selectors:[["app-restore-encryption"]],decls:12,vars:1,consts:()=>{let o;o=$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 i;return i=$localize`${"\uFFFD#11\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#11\uFFFD"}:CLOSE_TAG_SPK_ICON: Continue `,[e,t,i,[3,"submit","formGroup"],["for","password"],["type","password","id","password","placeholder",o,"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),E("submit",function(){return t.next()}),r(1,"spk-form-field")(2,"label",4),T(3,0),a(),l(4,"input",5),a(),r(5,"div",6)(6,"button",7),E("click",function(){return t.back()}),u(7,1),l(8,"spk-icon"),F(),a(),r(9,"button",8),u(10,2),l(11,"spk-icon"),F(),a()()()),e&2&&m("formGroup",t.encryptionForm)},dependencies:[v,D,M,L,$,y,A,Ee,h,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})};function Ae(n,o){n&1&&l(0,"spk-progress-bar",7)}function be(n,o){if(n&1&&(r(0,"div",13),K(1),ge(2,"date"),a()),n&2){let e=o.$implicit;S(),Se("",e.Version,": ",Te(2,2,e.Time,"medium"),"")}}function ve(n,o){n&1&&l(0,"spk-progress-bar",7)}function we(n,o){if(n&1&&(r(0,"app-file-tree",14)(1,"label",15),T(2,4),a(),l(3,"input",16),a()),n&2){let e=B(3);m("rootPath",e.rootPath())("backupSettings",e.backupSettings())("multiSelect",!0)("showFiles",!0)}}function Ge(n,o){if(n&1&&w(0,we,4,4,"app-file-tree",14),n&2){let e=B(2);G((e.isDraft()&&!e.isRepairing()||!e.isDraft())&&e.backupSettings()?0:-1)}}function xe(n,o){if(n&1){let e=x();r(0,"spk-select",11),E("cleared",function(){C(e);let i=B();return R(i.abortLoading())}),l(1,"input",12),w(2,be,3,5,"ng-template"),a(),w(3,ve,1,0,"spk-progress-bar",7)(4,Ge,1,1)}if(n&2){let e=B();m("options",e.versionOptions())("isClearable",!0),S(3),G(e.isDraft()&&e.isRepairing()||e.versionOptionsLoading()||e.loadingRootPath()?3:-1),S(),G(e.showFileTree()?4:-1)}}var Q=new b,De=()=>Q.group({filesToRestore:Q.control(""),selectedOption:Q.control(null),passphrase:Q.control(null)}),te=class n{#t=p(I);#e=p(O);#o=p(d);#i=p(P);#n=p(q);#r=p(Re);selectFilesForm=this.#e.selectFilesForm;selectFilesFormSignal=this.#e.selectFilesFormSignal;selectOptionSignal=this.#e.selectOptionSignal;backupId=this.#e.backupId;versionOptionsLoading=this.#e.versionOptionsLoading;versionOptions=this.#e.versionOptions;isDraft=this.#e.isDraft;isFileRestore=this.#e.isFileRestore;showFileTree=_(!1);backupSettings=_(null);rootPath=_(void 0);loadingRootPath=_(!1);isRepairing=_(!1);loadingEffect=j(()=>{if(this.versionOptionsLoading())return;let e=this.versionOptions();if(e&&e?.length>0){let t=e[0].Version;Number.isInteger(t)&&this.selectFilesForm.controls.selectedOption.setValue(t)}});backupSettingsEffect=j(()=>{let o=this.backupId(),e=this.isRepairing(),t=typeof this.selectOptionSignal()=="string"?parseInt(this.selectOptionSignal()):this.selectOptionSignal();if(typeof t!="number"||!o)return;let s=this.versionOptions()?.find(c=>c.Version===t)?.Time??null;!s||e||(this.showFileTree.set(!1),queueMicrotask(()=>{let c={id:o+"",time:s};this.backupSettings.set(c),this.getRootPath(c)}))});repairEffect=j(()=>{let o=this.#e.isDraft(),e=this.selectOptionSignal(),t=this.versionOptions();if(o&&e){let i=t.find(c=>c.Version===parseInt(e));if(i===void 0)return;let s=this.backupId();this.isRepairing.set(!0),this.#t.postApiV1BackupByIdRepairupdate({id:s,requestBody:{only_paths:!0,time:i.Time}}).subscribe(c=>{let W=c.ID;var X=window.setInterval(()=>{this.#t.getApiV1TaskByTaskid({taskid:W}).subscribe(z=>{z.Status==="Completed"&&(clearInterval(X),this.isRepairing.set(!1))})},1e3)})}});getRootPath(o){let e={id:o.id+"",time:o.time,prefixOnly:!0,folderContents:!1};this.isRepairing()||(this.loadingRootPath.set(!0),this.#t.getApiV1BackupByIdFiles(e).pipe(pe(this.abortLoading$),f(()=>{this.showFileTree.set(!0),this.loadingRootPath.set(!1)})).subscribe({next:t=>{let i=t.Files[0].Path;this.rootPath.set(i)}}))}abortLoading$=new re;abortLoading(){this.showFileTree.set(!1),this.loadingRootPath.set(!1),this.abortLoading$.next(!0)}displayFn(){let o=this.versionOptions();return e=>{if(!e)return"";let t=o?.find(i=>typeof i.Version=="number"&&i.Version.toString()===e);return t?`${t.Version}: ${this.#n.transform(t.Time,"medium")}`:""}}next(){this.#o.navigate(["options"],{relativeTo:this.#i.parent})}back(){this.#e.isFileRestore()?this.#o.navigate(["encryption"],{relativeTo:this.#i.parent}):this.#e.exit()}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=N({type:n,selectors:[["app-select-files"]],features:[me([q])],decls:13,vars:3,consts:()=>{let o;o=$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 i;i=$localize`Select an option...`;let s;return s=$localize`Path`,[["formRef",""],o,e,t,s,[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",i,"formControlName","selectedOption"],[1,"custom-option"],[3,"rootPath","backupSettings","multiSelect","showFiles"],["for","path"],["type","text","id","path","formControlName","filesToRestore"]]},template:function(e,t){if(e&1){let i=x();r(0,"form",5,0),E("submit",function(){return C(i),R(t.next())}),r(2,"h3",6),T(3,1),a(),w(4,Ae,1,0,"spk-progress-bar",7)(5,xe,5,4),r(6,"div",8)(7,"button",9),E("click",function(){return C(i),R(t.back())}),u(8,2),l(9,"spk-icon"),F(),a(),r(10,"button",10),u(11,3),l(12,"spk-icon"),F(),a()()()}e&2&&(m("formGroup",t.selectFilesForm),S(4),G(t.versionOptionsLoading()?4:5),S(5),ue(t.isFileRestore()?"Back":"Exit"),Fe(8))},dependencies:[Ie,D,M,L,$,v,y,A,q,J,k,h,fe,de],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 O=class n{#t=p(d);#e=p(I);backupId=_(null);backup=_(null);destinationTargetUrl=_(null);selectFilesForm=De();optionsForm=ye();encryptionForm=$e();optionsFormSignal=H(this.optionsForm.valueChanges);selectFilesFormSignal=H(this.selectFilesForm.valueChanges);selectOptionSignal=H(this.selectFilesForm.controls.selectedOption.valueChanges);versionOptionsLoading=_(!1);versionOptions=_([]);isSubmitting=_(!1);isDraft=_(!1);isFileRestore=_(!1);init(o,e=!1,t=!1){this.backupId.set(o),this.isFileRestore.set(e),this.isDraft.set(t),e&&this.#t.navigate(["/restore-from-files/destination"]),e||this.getBackup(o,!0)}updateTargetUrl(o){this.destinationTargetUrl.set(o)}submit(){this.isSubmitting.set(!0);let o=this.backupId(),e=this.optionsForm.value,t=this.selectFilesForm.value,i=this.versionOptions()?.find(s=>s.Version===t.selectedOption);this.#e.postApiV1BackupByIdRestore({id:o??"",requestBody:{paths:t.filesToRestore?.split("\0").map(s=>`${s}*`)??[],passphrase:t.passphrase??null,time:i?.Time,restore_path:e.restoreFromPath,overwrite:e.handleExisting==="overwrite",permissions:e.permissions,skip_metadata:!0}}).pipe(f(()=>this.isSubmitting.set(!1))).subscribe({next:()=>this.exit(),error:s=>{console.error("restore error",s)}})}exit(){this.#o(),this.#t.navigate(["/"])}getVersionOptions(){this.versionOptions()}getBackup(o,e=!1){this.versionOptionsLoading.set(!0),se([this.#e.getApiV1BackupById({id:o}),this.#e.getApiV1BackupByIdFilesets({id:o}).pipe(le(3))]).pipe(ae(1),f(()=>this.versionOptionsLoading.set(!1))).subscribe({next:([t,i])=>{this.versionOptions.set(i),this.backup.set(t)}})}#o(){this.selectFilesForm.reset(),this.optionsForm.reset()}static \u0275fac=function(e){return new(e||n)};static \u0275prov=_e({token:n,factory:n.\u0275fac,providedIn:"root"})};var V=new b,ye=()=>V.group({restoreFrom:V.control("orignal"),restoreFromPath:V.control(""),handleExisting:V.control("overwrite"),permissions:V.control(!1)}),oe=class n{#t=p(O);#e=p(d);#o=p(P);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||n)};static \u0275cmp=N({type:n,selectors:[["app-advanced-options-settings"]],decls:39,vars:6,consts:()=>{let o;o=$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 i;i=$localize` Pick location ${"\uFFFD#12\uFFFD\uFFFD/#12\uFFFD"}:TAG_INPUT:`;let s;s=$localize`How do you want to handle existing files?`;let c;c=$localize` Overwrite ${"\uFFFD#22\uFFFD\uFFFD/#22\uFFFD"}:TAG_INPUT:`;let W;W=$localize` Save different versions with timestamp in file name ${"\uFFFD#25\uFFFD\uFFFD/#25\uFFFD"}:TAG_INPUT:`;let X;X=$localize`Permissions`;let z;z=$localize` Restore read/write permissions ${"\uFFFD#31\uFFFD\uFFFD/#31\uFFFD"}:TAG_INPUT:`;let ie;ie=$localize`${"\uFFFD#35\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#35\uFFFD"}:CLOSE_TAG_SPK_ICON: Go back `;let ne;return ne=$localize`${"\uFFFD#38\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#38\uFFFD"}:CLOSE_TAG_SPK_ICON: Submit `,[["formRef",""],o,e,t,i,s,c,W,X,z,ie,ne,[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 i=x();r(0,"form",12,0),E("submit",function(){return C(i),R(t.submit())}),r(2,"h3",13),T(3,1),a(),r(4,"app-toggle-card",14),Y(5,15),T(6,2),U(),r(7,"spk-radio",16),u(8,3),l(9,"input",17),F(),a(),r(10,"spk-radio",16),u(11,4),l(12,"input",18),F(),a(),r(13,"app-file-tree",19)(14,"label",20),K(15,"Path"),a(),l(16,"input",21),a()(),r(17,"app-toggle-card",14),Y(18,15),T(19,5),U(),r(20,"spk-radio",16),u(21,6),l(22,"input",22),F(),a(),r(23,"spk-radio",16),u(24,7),l(25,"input",23),F(),a()(),r(26,"app-toggle-card"),Y(27,15),T(28,8),U(),r(29,"spk-toggle",24),u(30,9),l(31,"input",25),F(),a()(),r(32,"div",26)(33,"button",27),E("click",function(){return C(i),R(t.goBack())}),u(34,10),l(35,"spk-icon"),F(),a(),r(36,"button",28),u(37,11),l(38,"spk-icon"),F(),a()()()}if(e&2){let i;m("formGroup",t.optionsForm),S(4),m("disallowToggle",!0),S(9),m("disabled",((i=t.optionsFormSignal())==null?null:i.restoreFrom)!=="pickLocation"),S(4),m("disallowToggle",!0),S(19),ce("loader",t.isSubmitting())}},dependencies:[v,D,M,Ne,Pe,L,$,y,A,he,J,Ce,Oe,k,h],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{ye as a,oe as b,$e as c,Z as d,De as e,te as f,O as g};
1
+ import{a as J}from"./chunk-4B4SNBSE.js";import{a as he}from"./chunk-YRQ33MKD.js";import{a as H}from"./chunk-NYZVIDDD.js";import{a as Re}from"./chunk-ON2SWJPL.js";import{b as Ne,c as M,e as L,f as $,i as D,k as Pe,n as y,q as A,r as b,s as Ie,t as v}from"./chunk-QTTYDT3P.js";import{b as P,d}from"./chunk-7WCKE7GY.js";import{a as h,g as k,l as Ee,p as de,q as Oe,t as fe,z as Ce}from"./chunk-6WLXFV43.js";import{b as I}from"./chunk-DYCJPQSE.js";import{j as q}from"./chunk-2IDHF5MN.js";import{Ab as x,D as ae,E as f,Eb as u,Fb as F,Gb as T,Hb as ue,I as le,Ib as Fe,Kb as E,Lb as B,N as pe,Oa as S,R as _e,X as p,Zb as K,_a as N,ac as Se,ca as C,da as R,db as w,i as re,ic as me,lb as m,nb as ce,nc as ge,pc as Te,qb as G,sa as _,ub as r,vb as a,wb as l,x as se,xb as Y,yb as U,zc as j}from"./chunk-GM25ACCR.js";var ke=new b,$e=()=>ke.group({passphrase:ke.control("")}),Z=class n{#t=p(I);#e=p(O);#o=p(d);#i=p(P);encryptionForm=this.#e.encryptionForm;creatingTemporaryBackup=_(!1);next(){let o=this.#e.destinationTargetUrl();if(!o)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:o,Settings:t}},temporary:!0}).pipe(f(()=>this.creatingTemporaryBackup.set(!1))).subscribe({next:i=>{let s=i.ID;this.#o.navigate([`/restore-draft/${s}`])},error:i=>{console.error(i)}})}back(){this.#e.isFileRestore()?this.#o.navigate(["encryption"],{relativeTo:this.#i.parent}):this.#e.exit()}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=N({type:n,selectors:[["app-restore-encryption"]],decls:12,vars:1,consts:()=>{let o;o=$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 i;return i=$localize`${"\uFFFD#11\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#11\uFFFD"}:CLOSE_TAG_SPK_ICON: Continue `,[e,t,i,[3,"submit","formGroup"],["for","password"],["type","password","id","password","placeholder",o,"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),E("submit",function(){return t.next()}),r(1,"spk-form-field")(2,"label",4),T(3,0),a(),l(4,"input",5),a(),r(5,"div",6)(6,"button",7),E("click",function(){return t.back()}),u(7,1),l(8,"spk-icon"),F(),a(),r(9,"button",8),u(10,2),l(11,"spk-icon"),F(),a()()()),e&2&&m("formGroup",t.encryptionForm)},dependencies:[v,D,M,L,$,y,A,Ee,h,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})};function Ae(n,o){n&1&&l(0,"spk-progress-bar",7)}function be(n,o){if(n&1&&(r(0,"div",13),K(1),ge(2,"date"),a()),n&2){let e=o.$implicit;S(),Se("",e.Version,": ",Te(2,2,e.Time,"medium"),"")}}function ve(n,o){n&1&&l(0,"spk-progress-bar",7)}function we(n,o){if(n&1&&(r(0,"app-file-tree",14)(1,"label",15),T(2,4),a(),l(3,"input",16),a()),n&2){let e=B(3);m("rootPath",e.rootPath())("backupSettings",e.backupSettings())("multiSelect",!0)("showFiles",!0)}}function Ge(n,o){if(n&1&&w(0,we,4,4,"app-file-tree",14),n&2){let e=B(2);G((e.isDraft()&&!e.isRepairing()||!e.isDraft())&&e.backupSettings()?0:-1)}}function xe(n,o){if(n&1){let e=x();r(0,"spk-select",11),E("cleared",function(){C(e);let i=B();return R(i.abortLoading())}),l(1,"input",12),w(2,be,3,5,"ng-template"),a(),w(3,ve,1,0,"spk-progress-bar",7)(4,Ge,1,1)}if(n&2){let e=B();m("options",e.versionOptions())("isClearable",!0),S(3),G(e.isDraft()&&e.isRepairing()||e.versionOptionsLoading()||e.loadingRootPath()?3:-1),S(),G(e.showFileTree()?4:-1)}}var Q=new b,De=()=>Q.group({filesToRestore:Q.control(""),selectedOption:Q.control(null),passphrase:Q.control(null)}),te=class n{#t=p(I);#e=p(O);#o=p(d);#i=p(P);#n=p(q);#r=p(Re);selectFilesForm=this.#e.selectFilesForm;selectFilesFormSignal=this.#e.selectFilesFormSignal;selectOptionSignal=this.#e.selectOptionSignal;backupId=this.#e.backupId;versionOptionsLoading=this.#e.versionOptionsLoading;versionOptions=this.#e.versionOptions;isDraft=this.#e.isDraft;isFileRestore=this.#e.isFileRestore;showFileTree=_(!1);backupSettings=_(null);rootPath=_(void 0);loadingRootPath=_(!1);isRepairing=_(!1);loadingEffect=j(()=>{if(this.versionOptionsLoading())return;let e=this.versionOptions();if(e&&e?.length>0){let t=e[0].Version;Number.isInteger(t)&&this.selectFilesForm.controls.selectedOption.setValue(t)}});backupSettingsEffect=j(()=>{let o=this.backupId(),e=this.isRepairing(),t=typeof this.selectOptionSignal()=="string"?parseInt(this.selectOptionSignal()):this.selectOptionSignal();if(typeof t!="number"||!o)return;let s=this.versionOptions()?.find(c=>c.Version===t)?.Time??null;!s||e||(this.showFileTree.set(!1),queueMicrotask(()=>{let c={id:o+"",time:s};this.backupSettings.set(c),this.getRootPath(c)}))});repairEffect=j(()=>{let o=this.#e.isDraft(),e=this.selectOptionSignal(),t=this.versionOptions();if(o&&e){let i=t.find(c=>c.Version===parseInt(e));if(i===void 0)return;let s=this.backupId();this.isRepairing.set(!0),this.#t.postApiV1BackupByIdRepairupdate({id:s,requestBody:{only_paths:!0,time:i.Time}}).subscribe(c=>{let W=c.ID;var X=window.setInterval(()=>{this.#t.getApiV1TaskByTaskid({taskid:W}).subscribe(z=>{z.Status==="Completed"&&(clearInterval(X),this.isRepairing.set(!1))})},1e3)})}});getRootPath(o){let e={id:o.id+"",time:o.time,prefixOnly:!0,folderContents:!1};this.isRepairing()||(this.loadingRootPath.set(!0),this.#t.getApiV1BackupByIdFiles(e).pipe(pe(this.abortLoading$),f(()=>{this.showFileTree.set(!0),this.loadingRootPath.set(!1)})).subscribe({next:t=>{let i=t.Files[0].Path;this.rootPath.set(i)}}))}abortLoading$=new re;abortLoading(){this.showFileTree.set(!1),this.loadingRootPath.set(!1),this.abortLoading$.next(!0)}displayFn(){let o=this.versionOptions();return e=>{if(!e)return"";let t=o?.find(i=>typeof i.Version=="number"&&i.Version.toString()===e);return t?`${t.Version}: ${this.#n.transform(t.Time,"medium")}`:""}}next(){this.#o.navigate(["options"],{relativeTo:this.#i.parent})}back(){this.#e.isFileRestore()?this.#o.navigate(["encryption"],{relativeTo:this.#i.parent}):this.#e.exit()}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=N({type:n,selectors:[["app-select-files"]],features:[me([q])],decls:13,vars:3,consts:()=>{let o;o=$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 i;i=$localize`Select an option...`;let s;return s=$localize`Path`,[["formRef",""],o,e,t,s,[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",i,"formControlName","selectedOption"],[1,"custom-option"],[3,"rootPath","backupSettings","multiSelect","showFiles"],["for","path"],["type","text","id","path","formControlName","filesToRestore"]]},template:function(e,t){if(e&1){let i=x();r(0,"form",5,0),E("submit",function(){return C(i),R(t.next())}),r(2,"h3",6),T(3,1),a(),w(4,Ae,1,0,"spk-progress-bar",7)(5,xe,5,4),r(6,"div",8)(7,"button",9),E("click",function(){return C(i),R(t.back())}),u(8,2),l(9,"spk-icon"),F(),a(),r(10,"button",10),u(11,3),l(12,"spk-icon"),F(),a()()()}e&2&&(m("formGroup",t.selectFilesForm),S(4),G(t.versionOptionsLoading()?4:5),S(5),ue(t.isFileRestore()?"Back":"Exit"),Fe(8))},dependencies:[Ie,D,M,L,$,v,y,A,q,J,k,h,fe,de],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 O=class n{#t=p(d);#e=p(I);backupId=_(null);backup=_(null);destinationTargetUrl=_(null);selectFilesForm=De();optionsForm=ye();encryptionForm=$e();optionsFormSignal=H(this.optionsForm.valueChanges);selectFilesFormSignal=H(this.selectFilesForm.valueChanges);selectOptionSignal=H(this.selectFilesForm.controls.selectedOption.valueChanges);versionOptionsLoading=_(!1);versionOptions=_([]);isSubmitting=_(!1);isDraft=_(!1);isFileRestore=_(!1);init(o,e=!1,t=!1){this.backupId.set(o),this.isFileRestore.set(e),this.isDraft.set(t),e&&this.#t.navigate(["/restore-from-files/destination"]),e||this.getBackup(o,!0)}updateTargetUrl(o){this.destinationTargetUrl.set(o)}submit(){this.isSubmitting.set(!0);let o=this.backupId(),e=this.optionsForm.value,t=this.selectFilesForm.value,i=this.versionOptions()?.find(s=>s.Version===t.selectedOption);this.#e.postApiV1BackupByIdRestore({id:o??"",requestBody:{paths:t.filesToRestore?.split("\0").map(s=>`${s}*`)??[],passphrase:t.passphrase??null,time:i?.Time,restore_path:e.restoreFromPath,overwrite:e.handleExisting==="overwrite",permissions:e.permissions,skip_metadata:!0}}).pipe(f(()=>this.isSubmitting.set(!1))).subscribe({next:()=>this.exit(),error:s=>{console.error("restore error",s)}})}exit(){this.#o(),this.#t.navigate(["/"])}getVersionOptions(){this.versionOptions()}getBackup(o,e=!1){this.versionOptionsLoading.set(!0),se([this.#e.getApiV1BackupById({id:o}),this.#e.getApiV1BackupByIdFilesets({id:o}).pipe(le(3))]).pipe(ae(1),f(()=>this.versionOptionsLoading.set(!1))).subscribe({next:([t,i])=>{this.versionOptions.set(i),this.backup.set(t)}})}#o(){this.selectFilesForm.reset(),this.optionsForm.reset()}static \u0275fac=function(e){return new(e||n)};static \u0275prov=_e({token:n,factory:n.\u0275fac,providedIn:"root"})};var V=new b,ye=()=>V.group({restoreFrom:V.control("orignal"),restoreFromPath:V.control(""),handleExisting:V.control("overwrite"),permissions:V.control(!1)}),oe=class n{#t=p(O);#e=p(d);#o=p(P);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||n)};static \u0275cmp=N({type:n,selectors:[["app-advanced-options-settings"]],decls:39,vars:6,consts:()=>{let o;o=$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 i;i=$localize` Pick location ${"\uFFFD#12\uFFFD\uFFFD/#12\uFFFD"}:TAG_INPUT:`;let s;s=$localize`How do you want to handle existing files?`;let c;c=$localize` Overwrite ${"\uFFFD#22\uFFFD\uFFFD/#22\uFFFD"}:TAG_INPUT:`;let W;W=$localize` Save different versions with timestamp in file name ${"\uFFFD#25\uFFFD\uFFFD/#25\uFFFD"}:TAG_INPUT:`;let X;X=$localize`Permissions`;let z;z=$localize` Restore read/write permissions ${"\uFFFD#31\uFFFD\uFFFD/#31\uFFFD"}:TAG_INPUT:`;let ie;ie=$localize`${"\uFFFD#35\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#35\uFFFD"}:CLOSE_TAG_SPK_ICON: Go back `;let ne;return ne=$localize`${"\uFFFD#38\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#38\uFFFD"}:CLOSE_TAG_SPK_ICON: Submit `,[["formRef",""],o,e,t,i,s,c,W,X,z,ie,ne,[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 i=x();r(0,"form",12,0),E("submit",function(){return C(i),R(t.submit())}),r(2,"h3",13),T(3,1),a(),r(4,"app-toggle-card",14),Y(5,15),T(6,2),U(),r(7,"spk-radio",16),u(8,3),l(9,"input",17),F(),a(),r(10,"spk-radio",16),u(11,4),l(12,"input",18),F(),a(),r(13,"app-file-tree",19)(14,"label",20),K(15,"Path"),a(),l(16,"input",21),a()(),r(17,"app-toggle-card",14),Y(18,15),T(19,5),U(),r(20,"spk-radio",16),u(21,6),l(22,"input",22),F(),a(),r(23,"spk-radio",16),u(24,7),l(25,"input",23),F(),a()(),r(26,"app-toggle-card"),Y(27,15),T(28,8),U(),r(29,"spk-toggle",24),u(30,9),l(31,"input",25),F(),a()(),r(32,"div",26)(33,"button",27),E("click",function(){return C(i),R(t.goBack())}),u(34,10),l(35,"spk-icon"),F(),a(),r(36,"button",28),u(37,11),l(38,"spk-icon"),F(),a()()()}if(e&2){let i;m("formGroup",t.optionsForm),S(4),m("disallowToggle",!0),S(9),m("disabled",((i=t.optionsFormSignal())==null?null:i.restoreFrom)!=="pickLocation"),S(4),m("disallowToggle",!0),S(19),ce("loader",t.isSubmitting())}},dependencies:[v,D,M,Ne,Pe,L,$,y,A,he,J,Ce,Oe,k,h],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{ye as a,oe as b,$e as c,Z as d,De as e,te as f,O as g};
@@ -0,0 +1 @@
1
+ import{a as z}from"./chunk-UKJSH5XP.js";import"./chunk-ON2SWJPL.js";import{a as X}from"./chunk-KEHATBLP.js";import"./chunk-RHW5QVAY.js";import"./chunk-ZVBVR6H4.js";import"./chunk-QTTYDT3P.js";import"./chunk-C4IFBLYB.js";import"./chunk-PX25CWH6.js";import{e as E}from"./chunk-7WCKE7GY.js";import"./chunk-BIHIR35J.js";import{a as R,g as f,h as k,k as G,p as w}from"./chunk-6WLXFV43.js";import{b as L}from"./chunk-DYCJPQSE.js";import"./chunk-TKVTCBLW.js";import"./chunk-FQMZSQUI.js";import"./chunk-2IDHF5MN.js";import"./chunk-OD5LGCQE.js";import{Eb as h,Fb as y,Gb as c,Hb as A,Ib as I,Lb as S,Oa as p,X as d,Zb as l,_a as O,ac as B,db as m,ib as M,jb as P,jc as g,kc as v,lb as u,qb as F,rb as N,sb as x,tb as $,ub as e,vb as i,wb as s,xb as D,yb as b}from"./chunk-GM25ACCR.js";import"./chunk-7CGTOI24.js";var W=()=>[k,f,R,E],j=()=>["/restore-from-files"],K=()=>["/restore/from-config"],q=t=>["/restore",t];function V(t,r){if(t&1&&(e(0,"spk-card",5),s(1,"img",10),e(2,"div",7)(3,"h3"),c(4,1),i(),e(5,"p"),l(6),i()(),e(7,"button",8),h(8,2),s(9,"spk-icon"),y(),i()()),t&2){let n,a,o=r.$implicit;p(4),A((n=o.Backup==null?null:o.Backup.Name)!==null&&n!==void 0?n:"Backup name missing"),I(4),p(2),B(" ",(a=o.Backup==null||o.Backup.Metadata==null?null:o.Backup.Metadata.SourceSizeString)!==null&&a!==void 0?a:"-"," / ",(a=o.Backup==null||o.Backup.Metadata==null?null:o.Backup.Metadata.BackupListCount)!==null&&a!==void 0?a:"-"," "),p(),u("routerLink",v(4,q,o.Backup==null?null:o.Backup.ID))}}function H(t,r){if(t&1&&x(0,V,10,6,"spk-card",5,N),t&2){let n=S(2);$(n.backups())}}function J(t,r){t&1&&(D(0),c(1,3),b())}function Q(t,r){if(t&1&&m(0,H,2,0)(1,J,2,0,"ng-container"),t&2){let n=S();F(n.backups().length?0:1)}}function U(t,r){t&1&&(e(0,"div",11),s(1,"spk-progress-bar",12),e(2,"div",7)(3,"h3"),c(4,4),i()()())}var C=class t{#e=d(X);#t=d(L);backups=this.#e.backups;backupsLoading=this.#e.backupsLoading;ngOnInit(){this.#e.getBackups(!0)}restoreNow(r){this.#t.postApiV1BackupByIdRestore({id:r.Backup?.ID,requestBody:{}})}static \u0275fac=function(n){return new(n||t)};static \u0275cmp=O({type:t,selectors:[["app-restore"]],decls:32,vars:5,consts:()=>{let r;r=$localize`Where do you want to restore from?`;let n;n=$localize`Restore ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let a;a=$localize` Restore ${"\uFFFD#9\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#9\uFFFD"}:CLOSE_TAG_SPK_ICON:`;let o;o=$localize`No backups founds`;let T;return T=$localize`Loading backups...`,[r,n,a,o,T,[1,"type-a"],["src","assets/images/backup.png","alt","","width","48px"],[1,"text"],["spk-button","",3,"routerLink"],["src","assets/images/restore.png","alt","","width","48px"],["src","assets/images/folder.png","alt","","width","48px"],[1,"loading-list"],[1,"indeterminate","primary"]]},template:function(n,a){n&1&&(s(0,"app-status-bar"),e(1,"section")(2,"h2"),c(3,0),i(),e(4,"spk-card",5),s(5,"img",6),e(6,"div",7)(7,"h3"),l(8,"Direct restore from backup files"),i(),e(9,"p"),l(10,"Point to your backup files and restore from there."),i()(),e(11,"button",8),l(12," Start "),e(13,"spk-icon"),l(14,"play-circle"),i()()(),e(15,"spk-card",5),s(16,"img",9),e(17,"div",7)(18,"h3"),l(19,"Restore from configuration"),i(),e(20,"p"),l(21,"Load destination from an exported job or a storage provider"),i()(),e(22,"button",8),l(23," Start "),e(24,"spk-icon"),l(25,"play-circle"),i()()(),e(26,"spk-divider"),l(27,"Or existing"),i(),m(28,Q,2,1)(29,U,5,0),M(30,28,W,null,29),i()),n&2&&(p(11),u("routerLink",g(3,j)),p(11),u("routerLink",g(4,K)),p(8),P(!a.backupsLoading()))},dependencies:[z,k,f,G,R,w,E],styles:["[_nghost-%COMP%]{display:block}h2[_ngcontent-%COMP%]{font:var(--title-30);text-align:center;padding:2rem}section[_ngcontent-%COMP%]{max-width:43.75rem;margin:0 auto;padding:2rem 1rem;display:flex;flex-direction:column;gap:1rem}spk-divider[_ngcontent-%COMP%]{color:var(--base-level-60)}spk-card[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem;--card-padding: 2rem}spk-card[_ngcontent-%COMP%] .text[_ngcontent-%COMP%]{flex:1 0;display:flex;flex-direction:column;gap:.25rem}"],changeDetection:0})};export{C as default};
@@ -0,0 +1 @@
1
+ import{g as c}from"./chunk-K75H4GPN.js";import{m as v}from"./chunk-2EOGI5U4.js";import"./chunk-Y5T3G6PP.js";import"./chunk-4B4SNBSE.js";import"./chunk-YRQ33MKD.js";import"./chunk-UO57IKTF.js";import{a as E}from"./chunk-NYZVIDDD.js";import"./chunk-OELZQ6RK.js";import"./chunk-ARQ6YMHX.js";import{a as y}from"./chunk-UKJSH5XP.js";import"./chunk-ON2SWJPL.js";import"./chunk-KEHATBLP.js";import"./chunk-RHW5QVAY.js";import"./chunk-ZVBVR6H4.js";import"./chunk-QTTYDT3P.js";import"./chunk-C4IFBLYB.js";import"./chunk-PX25CWH6.js";import{b as L,c as M,e as N,f as I}from"./chunk-7WCKE7GY.js";import"./chunk-BIHIR35J.js";import{q as G,v as W}from"./chunk-6WLXFV43.js";import"./chunk-DYCJPQSE.js";import"./chunk-TKVTCBLW.js";import"./chunk-FQMZSQUI.js";import"./chunk-2IDHF5MN.js";import"./chunk-OD5LGCQE.js";import{Eb as F,Fb as r,Lb as u,Oa as R,X as T,_a as f,db as C,ic as $,jc as p,kc as l,lb as _,qb as A,ub as o,vb as i,wb as n,zc as P}from"./chunk-GM25ACCR.js";import"./chunk-7CGTOI24.js";var h=()=>["/restore-from-files/destination"],K=()=>["/restore-from-files/encryption"],X=()=>["/restore-from-files/select-files"],w=()=>["/restore-from-files/options"],b=e=>["/restore-draft",e],x=e=>["/restore-draft",e,"options"],z=e=>["/restore",e],B=e=>["/restore",e,"options"];function j(e,a){e&1&&(o(0,"div",8),F(1,0),n(2,"spk-radio"),r(),i(),o(3,"div",8),F(4,1),n(5,"spk-radio"),r(),i(),o(6,"div",8),F(7,2),n(8,"spk-radio"),r(),i(),o(9,"div",8),F(10,3),n(11,"spk-radio"),r(),i()),e&2&&(_("routerLink",p(4,h)),R(3),_("routerLink",p(5,K)),R(3),_("routerLink",p(6,X)),R(3),_("routerLink",p(7,w)))}function U(e,a){if(e&1&&(o(0,"div",8),F(1,4),n(2,"spk-radio"),r(),i(),o(3,"div",8),F(4,5),n(5,"spk-radio"),r(),i()),e&2){let t=u();_("routerLink",l(2,b,t.backupId())),R(3),_("routerLink",l(4,x,t.backupId()))}}function q(e,a){if(e&1&&(o(0,"div",8),F(1,6),n(2,"spk-radio"),r(),i(),o(3,"div",8),F(4,7),n(5,"spk-radio"),r(),i()),e&2){let t=u();_("routerLink",l(2,z,t.backupId())),R(3),_("routerLink",l(4,B,t.backupId()))}}var O=class e{#t=T(L);#e=T(c);#i=E(this.#t.params);#o=E(this.#t.url);backupId=this.#e.backupId;isDraft=this.#e.isDraft;isFileRestore=this.#e.isFileRestore;paramsChanged=P(()=>{let a=this.#i()?.id,t=!!this.#o()?.find(d=>d.path==="restore-draft"),s=!!this.#o()?.find(d=>d.path==="restore-from-files");this.#e.init(a,s,s||t)});static \u0275fac=function(t){return new(t||e)};static \u0275cmp=f({type:e,selectors:[["app-restore-flow"]],features:[$([c,v])],decls:7,vars:1,consts:()=>{let a;a=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SPK_RADIO:${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SPK_RADIO: Destination `;let t;t=$localize`${"\uFFFD#5\uFFFD"}:START_TAG_SPK_RADIO:${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_RADIO: Encryption `;let s;s=$localize`${"\uFFFD#8\uFFFD"}:START_TAG_SPK_RADIO:${"\uFFFD/#8\uFFFD"}:CLOSE_TAG_SPK_RADIO: Select files `;let d;d=$localize`${"\uFFFD#11\uFFFD"}:START_TAG_SPK_RADIO:${"\uFFFD/#11\uFFFD"}:CLOSE_TAG_SPK_RADIO: Options `;let g;g=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SPK_RADIO:${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SPK_RADIO: Select files `;let k;k=$localize`${"\uFFFD#5\uFFFD"}:START_TAG_SPK_RADIO:${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_RADIO: Options `;let D;D=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SPK_RADIO:${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SPK_RADIO: Select files `;let m;return m=$localize`${"\uFFFD#5\uFFFD"}:START_TAG_SPK_RADIO:${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_RADIO: Options `,[a,t,s,d,g,k,D,m,["step","","routerLinkActive","active",3,"routerLink"]]},template:function(t,s){t&1&&(n(0,"app-status-bar"),o(1,"spk-stepper"),C(2,j,12,8)(3,U,6,6)(4,q,6,6),i(),o(5,"section"),n(6,"router-outlet"),i()),t&2&&(R(2),A(s.isFileRestore()?2:s.isDraft()?3:4))},dependencies:[W,G,y,M,N,I],styles:["[_nghost-%COMP%]{display:block}spk-stepper[_ngcontent-%COMP%]{max-width:31.25rem;margin:2.5rem auto}section[_ngcontent-%COMP%]{max-width:31.25rem;margin:0 auto 2.5rem}"],changeDetection:0})};export{O as default};
@@ -0,0 +1 @@
1
+ import{a as $}from"./chunk-NYZVIDDD.js";import{a as R}from"./chunk-UKJSH5XP.js";import"./chunk-ON2SWJPL.js";import"./chunk-KEHATBLP.js";import"./chunk-RHW5QVAY.js";import"./chunk-ZVBVR6H4.js";import"./chunk-QTTYDT3P.js";import"./chunk-C4IFBLYB.js";import"./chunk-PX25CWH6.js";import{b as A,e as N}from"./chunk-7WCKE7GY.js";import"./chunk-BIHIR35J.js";import{a as B,g as O}from"./chunk-6WLXFV43.js";import{b as k}from"./chunk-DYCJPQSE.js";import"./chunk-TKVTCBLW.js";import"./chunk-FQMZSQUI.js";import"./chunk-2IDHF5MN.js";import"./chunk-OD5LGCQE.js";import{$b as L,Eb as _,Fb as c,Gb as u,Jb as T,Kb as I,Oa as i,X as m,Zb as E,_a as C,db as p,qb as s,rb as f,sa as l,sb as S,tb as g,ub as F,vb as a,wb as r,yc as M}from"./chunk-GM25ACCR.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(k);#e=m(A);#n=$(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=T(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),g(o.messageLog()))},dependencies:[R,B,O,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:var(--grey-800);color:var(--grey-100);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{a as U}from"./chunk-KEHATBLP.js";import{a as W}from"./chunk-ZVBVR6H4.js";import{a as x,c as j}from"./chunk-C4IFBLYB.js";import{e as m}from"./chunk-6WLXFV43.js";import{b as S,c as G}from"./chunk-DYCJPQSE.js";import{l as L}from"./chunk-2IDHF5MN.js";import{E as $,Eb as B,Fb as N,Gb as z,Hb as w,Ib as A,M as b,N as I,Oa as y,R as r,X as s,_a as E,i as P,n as F,nc as M,pc as V,r as R,sa as n,ub as T,vb as v,wb as O,yc as p,zc as d}from"./chunk-GM25ACCR.js";import{a as f,b as h}from"./chunk-7CGTOI24.js";var l=class i{reconnectTimer=n(15e3);countdown=n(0);connectTimerEffect=d(()=>{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||i)};static \u0275cmp=E({type:i,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&&(T(0,"header",2)(1,"h3"),z(2,0),v()(),T(3,"div",3)(4,"p"),B(5,1),O(6,"strong"),M(7,"number"),N(),v()()),t&2&&(y(7),w(V(7,1,o.countdown(),"2.0-0")),A(5))},dependencies:[L],styles:["[_nghost-%COMP%]{display:block;padding:1rem}"],changeDetection:0})};var C=class i{dialog=s(m);#i=s(S);#e=n("disconnected");#t=n(null);#s=n(-1);#o=n(0);#n=n(!1);#r=new P;connectionStatus=this.#e.asReadonly();serverState=this.#t.asReadonly();#a=void 0;duration=s(x).relayIsEnabled()?"94s":"299s";start(){this.#n.set(!0),this.#r=new P,this.#c()}stop(){this.#r.next(),this.#r.complete(),this.#n.set(!1)}reconnect(){this.stop(),this.start()}reconnectIfNeeded(){console.log("reconnectIfNeeded"),!this.#n()&&this.reconnect()}#c(){this.#e.set("connecting"),this.#i.getApiV1Serverstate({lastEventId:this.#s(),longpoll:this.#s()>0,duration:this.duration}).pipe(I(this.#r)).subscribe({next:e=>{e&&this.#l(e),this.#p()},error:e=>{let o=this.#o()+1,c=Math.min(5e3*o,3e4);this.#o.set(o),o>3&&this.#e.set("disconnected"),this.#a||(this.#a=this.dialog.open(l,{closeOnButton:!1,closeOnEsc:!1,closeOnOutsideClick:!1})),this.#a.component.reconnectTimer.set(c),setTimeout(()=>{this.#c()},c)}})}#l(e){this.#e.set("connected"),this.#t.set(e),this.#s.set(e.LastEventID||-1),this.#o.set(0)}#p(){this.#n()&&this.#c()}static \u0275fac=function(t){return new(t||i)};static \u0275prov=r({token:i,factory:i.\u0275fac,providedIn:"root"})};var _=class i{#i=s(j);dialog=s(m);#e=null;#t=n("disconnected");#s=n(null);#o=void 0;shouldConnect=n(!0);connectionStatus=this.#t.asReadonly();serverState=this.#s.asReadonly();start(){this.#n(),this.shouldConnect.set(!0)}#n(){let e=this.#i.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 c=window.location.hostname,u=`${t}//${c}${o}/notifications?token=${e}`;this.#t.set("connecting"),this.#e=new WebSocket(u),this.#e.onopen=()=>{console.log("WebSocket connection established"),this.#t.set("connected"),this.#o&&this.#o.close()},this.#e.onmessage=a=>{try{let g=JSON.parse(a.data);this.#s.set(g)}catch(g){console.error("Error parsing WebSocket message",g)}},this.#e.onclose=a=>{console.log("WebSocket connection closed",a),this.#t.set("disconnected"),this.shouldConnect()&&(this.#o||(this.#o=this.dialog.open(l,{closeOnButton:!1,closeOnEsc:!1,closeOnOutsideClick:!1}),this.#o.component.reconnectTimer.set(15e3)),setTimeout(()=>this.#n(),5e3))},this.#e.onerror=a=>{console.error("WebSocket error",a),this.#t.set("disconnected")}}stop(){this.shouldConnect.set(!1),this.#e?.close()}reconnect(){this.#e?.close(),this.start()}reconnectIfNeeded(){this.#e?.readyState!==WebSocket.OPEN&&this.reconnect()}static \u0275fac=function(t){return new(t||i)};static \u0275prov=r({token:i,factory:i.\u0275fac,providedIn:"root"})};var D=class i{#i=s(_);#e=s(C);#t=n("longpoll");connectionStatus=p(()=>this.#t()==="websocket"?this.#i.connectionStatus():this.#e.connectionStatus());serverState=p(()=>this.#t()==="websocket"?this.#i.serverState():this.#e.serverState());setConnectionMethod(e){e==="websocket"?(this.#i.reconnectIfNeeded(),this.#e.stop()):(this.#e.reconnectIfNeeded(),this.#i.stop()),this.#t.set(e)}getConnectionMethod(){return this.#t()}static \u0275fac=function(t){return new(t||i)};static \u0275prov=r({token:i,factory:i.\u0275fac,providedIn:"root"})};var J={Backup_Begin:$localize`Starting backup …`,Backup_PreBackupVerify:$localize`Verifying backend data …`,Backup_PostBackupTest:$localize`Verifying remote data …`,Backup_PreviousBackupFinalize:$localize`Completing previous backup …`,Backup_ProcessingFiles:$localize`Processing files to backup …`,Backup_Finalize:$localize`Completing backup …`,Backup_WaitForUpload:$localize`Waiting for upload to finish …`,Backup_Delete:$localize`Deleting unwanted files …`,Backup_Compact:$localize`Compacting remote data …`,Backup_VerificationUpload:$localize`Uploading verification file …`,Backup_PostBackupVerify:$localize`Verifying backend data …`,Backup_Complete:$localize`Backup complete!`,Restore_Begin:$localize`Starting restore …`,Restore_RecreateDatabase:$localize`Rebuilding local database …`,Restore_PreRestoreVerify:$localize`Verifying remote data …`,Restore_CreateFileList:$localize`Building list of files to restore …`,Restore_CreateTargetFolders:$localize`Creating target folders …`,Restore_ScanForExistingFiles:$localize`Scanning existing files …`,Restore_ScanForLocalBlocks:$localize`Scanning for local blocks …`,Restore_PatchWithLocalBlocks:$localize`Patching files with local blocks …`,Restore_DownloadingRemoteFiles:$localize`Downloading files …`,Restore_PostRestoreVerify:$localize`Verifying restored files …`,Restore_Complete:$localize`Restore complete!`,Recreate_Running:$localize`Recreating database …`,Vacuum_Running:$localize`Vacuuming database …`,Repair_Running:$localize`Repairing database …`,Verify_Running:$localize`Verifying files …`,BugReport_Running:$localize`Creating bug report …`,Delete_Listing:$localize`Listing remote files …`,Delete_Deleting:$localize`Deleting remote files …`,"PurgeFiles_Begin,":$localize`Listing remote files for purge …`,"PurgeFiles_Process,":$localize`Purging files …`,"PurgeFiles_Compact,":$localize`Compacting remote data …`,"PurgeFiles_Complete,":$localize`Purging files complete!`,Error:$localize`Error!`},X=class i{#i=s(W);#e=s(G);#t=s(S);#s=s(U);#o=s(D);#n=n(!1);#r=n(null);statusData=this.#r.asReadonly();lastState=null;serverState=p(()=>{let e=this.#o.serverState();return e?(e.ProposedSchedule=e.ProposedSchedule?.map(t=>h(f({},t),{backup:t.Item1?this.#s.getBackupById(t.Item1):null})),this.lastState=e,e):this.lastState});serverStateEffect=d(()=>{this.#o.serverState()?.ActiveTask||this.#s.getBackups(!0)});isFetching=this.#n.asReadonly();connectionStatus=this.#o.connectionStatus;setConnectionMethod(e){this.#o.setConnectionMethod(e)}pollingInterval;#a=d(()=>{let e=this.#o.serverState();e?.ActiveTask&&this.pollingInterval===void 0?this.pollingInterval=setInterval(()=>{this.#c()},1e3):e?.ActiveTask||this.stopPollingProgress()});stopPollingProgress(){clearInterval(this.pollingInterval)}#c(){this.#n.set(!0),this.#e.getApiV1Progressstate().pipe(b(e=>{let t=e.TaskID??null;return t===null?F(e):this.#t.getApiV1TaskByTaskid({taskid:t}).pipe(R(o=>h(f({},e),{task:o??null})))}),$(()=>this.#n.set(!1))).subscribe({next:e=>{let t=e.TaskID??null,o=e.BackupID??null;t!==null&&o!==null&&(e.backup=this.#s.getBackupById(o)),this.#r.set(h(f({},e),{progress:this.#l(e),statusText:this.#p(e),actionText:e.backup?.Backup?.Name??$localize`Running task`})),e.task?.Status==="Completed"&&this.stopPollingProgress()},error:e=>{e.status===404&&this.stopPollingProgress()}})}#l(e){let t=-1;if(e.task&&e)if(e.Phase==="Backup_ProcessingFiles"||e.Phase==="Restore_DownloadingRemoteFiles")if(e.StillCounting)t=0;else{let o=e.CurrentFilecomplete?0:e.CurrentFileoffset,c=e.TotalFileCount-e.ProcessedFileCount,u=e.TotalFileSize-e.ProcessedFileSize-o;t=(e.ProcessedFileSize+o)/e.TotalFileSize,e.ProcessedFileCount===0?t=0:t>=.9&&(t=.9)}else e.Phase==="Backup_Finalize"||e.Phase==="Backup_WaitForUpload"?t=.9:e.Phase==="Backup_Delete"||e.Phase==="Backup_Compact"?t=.95:e.Phase==="Backup_VerificationUpload"||e.Phase==="Backup_PostBackupVerify"?t=.98:e.Phase==="Backup_Complete"||e.Phase==="Backup_WaitForUpload"?t=1:e.OverallProgress>0&&(t=e.OverallProgress);return t}#p(e){let t="Running \u2026";if(e.task&&e&&(t=e.Phase?J[e.Phase]:"Running \u2026",e.Phase==="Backup_ProcessingFiles"||e.Phase==="Restore_DownloadingRemoteFiles"))if(e.StillCounting)t=`Counting (${e.TotalFileCount} files found, ${this.#i.transform(e.TotalFileSize)})`;else{let o=e.CurrentFilecomplete?0:e.CurrentFileoffset,c=e.TotalFileCount-e.ProcessedFileCount,u=e.TotalFileSize-e.ProcessedFileSize-o,a=e.BackendSpeed<0?"":` at ${this.#i.transform(e.BackendSpeed)}/s`;t=`${e.Phase==="Restore_DownloadingRemoteFiles"?"Restoring: ":""}${c} files (${this.#i.transform(u)}) to go ${a}`}return t}static \u0275fac=function(t){return new(t||i)};static \u0275prov=r({token:i,factory:i.\u0275fac,providedIn:"root"})};export{X as a};
@@ -0,0 +1 @@
1
+ import{a as ae}from"./chunk-NYZVIDDD.js";import{a as te}from"./chunk-UKJSH5XP.js";import"./chunk-ON2SWJPL.js";import{a as Q}from"./chunk-KEHATBLP.js";import"./chunk-RHW5QVAY.js";import"./chunk-ZVBVR6H4.js";import{c as Y,e as Z,h as x,s as ee}from"./chunk-QTTYDT3P.js";import"./chunk-C4IFBLYB.js";import"./chunk-PX25CWH6.js";import{b as z,e as q}from"./chunk-7WCKE7GY.js";import"./chunk-BIHIR35J.js";import{a as W,g as j,l as J}from"./chunk-6WLXFV43.js";import{b as H}from"./chunk-DYCJPQSE.js";import"./chunk-TKVTCBLW.js";import"./chunk-FQMZSQUI.js";import"./chunk-2IDHF5MN.js";import"./chunk-OD5LGCQE.js";import{D as g,E as u,Eb as p,Fb as r,Gb as F,Hb as L,Ib as U,Kb as A,M as E,Oa as s,X as P,Zb as C,_a as y,cc as w,db as v,dc as X,ec as V,lb as d,nb as D,pb as G,qb as K,r as O,sa as c,ub as i,vb as a,wb as l,yc as k,zc as h}from"./chunk-GM25ACCR.js";import"./chunk-7CGTOI24.js";function ie(S,t){S&1&&(i(0,"spk-icon",19),C(1,"check"),a())}function ne(S,t){S&1&&(i(0,"spk-icon",19),C(1,"warning"),a())}var m=class S{#a=P(z);#i=P(Q);#e=P(H);#t="";backupId=ae(this.#a.params.pipe(O(t=>t.id)));activeBackup=k(()=>{let t=this.#i.backups().find(_=>_.Backup?.ID===this.backupId());return this.#t=t?.Backup?.DBPath??"",t});backupFilePath=c("");lastValidatedPath=c("");isValidatedPath=k(()=>this.lastValidatedPath()===this.backupFilePath());pathHasChanged=k(()=>this.backupFilePath()!==this.#t);backupFilePathEffect=h(()=>{let t=this.backupFilePath();t!==""&&this.#e.postApiV1FilesystemValidate({requestBody:{path:t}}).subscribe({next:()=>this.lastValidatedPath.set(t)})});isRestoring=c(!1);isRepairing=c(!1);isDeleting=c(!1);isSavingDbPath=c(!1);isSavingAndRepairing=c(!1);isMovingDb=c(!1);activeBackupEffect=h(()=>{let t=this.activeBackup();if(!t)return;let _=t.Backup?.DBPath??"";this.backupFilePath.set(_)});repairDatabase(){this.isRepairing.set(!0),this.#e.postApiV1BackupByIdRepair({id:this.backupId()}).pipe(g(1),u(()=>this.isRepairing.set(!1))).subscribe()}deleteDatabase(){this.isDeleting.set(!0),this.#e.postApiV1BackupByIdDeletedb({id:this.backupId()}).pipe(g(1),u(()=>this.isDeleting.set(!1))).subscribe()}restoreDatabase(){this.isRestoring.set(!0),this.#e.postApiV1BackupByIdDeletedb({id:this.backupId()}).pipe(g(1),E(()=>this.#e.postApiV1BackupByIdRepair({id:this.backupId()})),u(()=>this.isRestoring.set(!1))).subscribe()}resetDatabasePath(){this.backupFilePath.set(this.#t)}saveDatabasePath(){this.isSavingDbPath.set(!0),this.#e.postApiV1BackupByIdUpdatedb({id:this.backupId(),requestBody:{path:this.backupFilePath()}}).pipe(u(()=>this.isSavingDbPath.set(!1))).subscribe()}saveAndRepairDatabasePath(){this.isSavingAndRepairing.set(!0),this.#e.postApiV1BackupByIdUpdatedb({id:this.backupId(),requestBody:{path:this.backupFilePath()}}).pipe(E(()=>this.#e.postApiV1BackupByIdRepair({id:this.backupId()})),u(()=>this.isSavingAndRepairing.set(!1)))}moveDatabasePath(){this.isMovingDb.set(!0),this.#e.postApiV1BackupByIdMovedb({id:this.backupId(),requestBody:{path:this.backupFilePath()}}).pipe(u(()=>this.isMovingDb.set(!1))).subscribe()}static \u0275fac=function(_){return new(_||S)};static \u0275cmp=y({type:S,selectors:[["app-database"]],decls:46,vars:17,consts:()=>{let t;t=$localize`${"\uFFFD#5\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_ICON: Back `;let _;_=$localize`Local database for ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let e;e=$localize` Each backup has a local database associated with it, which stores information about the remote backup on the local machine. This makes it faster to perform many operations, and reduces the amount of data that needs to be downloaded for each operation. `;let n;n=$localize`Maintenance`;let T;T=$localize` If the backup and the remote storage is out of sync, Duplicati will require that you perform a repair operation to synchronize the database. If the repair is unsuccessful, you can delete the local database and re-generate. `;let b;b=$localize`${"\uFFFD#19\uFFFD"}:START_TAG_SPK_ICON:wrench${"\uFFFD/#19\uFFFD"}:CLOSE_TAG_SPK_ICON: Repair `;let f;f=$localize`${"\uFFFD#22\uFFFD"}:START_TAG_SPK_ICON:trash${"\uFFFD/#22\uFFFD"}:CLOSE_TAG_SPK_ICON: Delete `;let B;B=$localize`${"\uFFFD#25\uFFFD"}:START_TAG_SPK_ICON:clock-counter-clockwise${"\uFFFD/#25\uFFFD"}:CLOSE_TAG_SPK_ICON: Restore (delete and repair) `;let I;I=$localize`Placement`;let M;M=$localize`${"\uFFFD#36\uFFFD"}:START_TAG_SPK_ICON:backspace${"\uFFFD/#36\uFFFD"}:CLOSE_TAG_SPK_ICON: Reset `;let N;N=$localize`${"\uFFFD#39\uFFFD"}:START_TAG_SPK_ICON:floppy-disk${"\uFFFD/#39\uFFFD"}:CLOSE_TAG_SPK_ICON: Save `;let $;$=$localize`${"\uFFFD#42\uFFFD"}:START_TAG_SPK_ICON:wrench${"\uFFFD/#42\uFFFD"}:CLOSE_TAG_SPK_ICON: Save & Repair `;let R;return R=$localize`${"\uFFFD#45\uFFFD"}:START_TAG_SPK_ICON:flow-arrow${"\uFFFD/#45\uFFFD"}:CLOSE_TAG_SPK_ICON: Move existing database `,[t,_,e,n,T,b,f,B,I,M,N,$,R,[1,"back"],["type","button","spk-button","","routerLink","/",1,"small"],[1,"actions","maintenance"],["spk-button","",3,"click","disabled"],["spk-button","",3,"click"],["type","text",3,"ngModelChange","ngModel"],["prefix",""],[1,"actions","placement"]]},template:function(_,e){if(_&1&&(l(0,"app-status-bar"),i(1,"section")(2,"div",13)(3,"button",14),p(4,0),l(5,"spk-icon"),r(),a()(),i(6,"article")(7,"h1"),F(8,1),a(),i(9,"p"),F(10,2),a()(),i(11,"article")(12,"h2"),F(13,3),a(),i(14,"p"),F(15,4),a(),i(16,"div",15)(17,"button",16),A("click",function(){return e.repairDatabase()}),p(18,5),l(19,"spk-icon"),r(),a(),i(20,"button",16),A("click",function(){return e.deleteDatabase()}),p(21,6),l(22,"spk-icon"),r(),a(),i(23,"button",17),A("click",function(){return e.restoreDatabase()}),p(24,7),l(25,"spk-icon"),r(),a()()(),i(26,"article")(27,"h2"),F(28,8),a(),i(29,"spk-form-field")(30,"input",18),V("ngModelChange",function(T){return X(e.backupFilePath,T)||(e.backupFilePath=T),T}),a(),v(31,ie,2,0,"spk-icon",19)(32,ne,2,0,"spk-icon",19),a(),i(33,"div",20)(34,"button",16),A("click",function(){return e.resetDatabasePath()}),p(35,9),l(36,"spk-icon"),r(),a(),i(37,"button",16),A("click",function(){return e.saveDatabasePath()}),p(38,10),l(39,"spk-icon"),r(),a(),i(40,"button",16),A("click",function(){return e.saveAndRepairDatabasePath()}),p(41,11),l(42,"spk-icon"),r(),a(),i(43,"button",16),A("click",function(){return e.moveDatabasePath()}),p(44,12),l(45,"spk-icon"),r(),a()()()()),_&2){let n;s(8),L((n=e.activeBackup())==null||n.Backup==null?null:n.Backup.Name),U(8),s(9),D("loader",e.isRepairing()),d("disabled",!e.isValidatedPath()),s(3),D("loader",e.isDeleting()),d("disabled",!e.isValidatedPath()),s(3),D("loader",e.isRestoring()),s(6),G(e.isValidatedPath()?"success":"error"),s(),w("ngModel",e.backupFilePath),s(),K(e.isValidatedPath()?31:32),s(3),d("disabled",!(e.isValidatedPath()&&e.pathHasChanged())),s(3),d("disabled",!(e.isValidatedPath()&&e.pathHasChanged())),s(3),d("disabled",!(e.isValidatedPath()&&e.pathHasChanged())),s(3),d("disabled",!(e.isValidatedPath()&&e.pathHasChanged()))}},dependencies:[ee,Y,Z,x,te,j,J,W,q],styles:["[_nghost-%COMP%]{display:block}section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;padding:2rem}article[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}h1[_ngcontent-%COMP%]{font:var(--title-20)}h2[_ngcontent-%COMP%]{font:var(--title-30)}.actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}"],changeDetection:0})};export{m as default};
@@ -0,0 +1 @@
1
+ import{a,b}from"./chunk-K75H4GPN.js";import"./chunk-4B4SNBSE.js";import"./chunk-YRQ33MKD.js";import"./chunk-NYZVIDDD.js";import"./chunk-OELZQ6RK.js";import"./chunk-ON2SWJPL.js";import"./chunk-KEHATBLP.js";import"./chunk-RHW5QVAY.js";import"./chunk-ZVBVR6H4.js";import"./chunk-QTTYDT3P.js";import"./chunk-C4IFBLYB.js";import"./chunk-PX25CWH6.js";import"./chunk-7WCKE7GY.js";import"./chunk-BIHIR35J.js";import"./chunk-6WLXFV43.js";import"./chunk-DYCJPQSE.js";import"./chunk-TKVTCBLW.js";import"./chunk-2IDHF5MN.js";import"./chunk-GM25ACCR.js";import"./chunk-7CGTOI24.js";export{a as createRestoreOptionsForm,b as default};
@@ -0,0 +1 @@
1
+ import{a as k}from"./chunk-UKJSH5XP.js";import"./chunk-ON2SWJPL.js";import"./chunk-KEHATBLP.js";import"./chunk-RHW5QVAY.js";import"./chunk-ZVBVR6H4.js";import"./chunk-QTTYDT3P.js";import"./chunk-C4IFBLYB.js";import"./chunk-PX25CWH6.js";import{e as S}from"./chunk-7WCKE7GY.js";import"./chunk-BIHIR35J.js";import{a as T,g as M,h as f}from"./chunk-6WLXFV43.js";import"./chunk-DYCJPQSE.js";import"./chunk-TKVTCBLW.js";import"./chunk-FQMZSQUI.js";import"./chunk-2IDHF5MN.js";import"./chunk-OD5LGCQE.js";import{Eb as s,Fb as l,Gb as i,Oa as c,_a as D,jc as d,lb as r,ub as e,vb as n,wb as _}from"./chunk-GM25ACCR.js";import"./chunk-7CGTOI24.js";var E=()=>["/backup/new"],F=()=>["/backup/import"],u=class C{static \u0275fac=function(t){return new(t||C)};static \u0275cmp=D({type:C,selectors:[["app-add-backup"]],decls:23,vars:4,consts:()=>{let a;a=$localize`Add a new backup`;let t;t=$localize`New backup`;let p;p=$localize`Configure a new backup. Choose your destination, source data and schedule.`;let A;A=$localize` Add a new backup ${"\uFFFD#13\uFFFD"}:START_TAG_SPK_ICON:plus${"\uFFFD/#13\uFFFD"}:CLOSE_TAG_SPK_ICON:`;let g;g=$localize`Import from file`;let P;P=$localize`Import backup configuration from a file. During import you can adjust the setings.`;let m;return m=$localize` Import from file ${"\uFFFD#22\uFFFD"}:START_TAG_SPK_ICON:upload-simple${"\uFFFD/#22\uFFFD"}:CLOSE_TAG_SPK_ICON:`,[a,t,p,A,g,P,m,[1,"backup-types"],[1,"type-a"],["src","assets/images/new-backup.png"],["spk-button","",1,"raised","primary",3,"routerLink"]]},template:function(t,p){t&1&&(_(0,"app-status-bar"),e(1,"section")(2,"h2"),i(3,0),n(),e(4,"div",7)(5,"spk-card",8),_(6,"img",9),e(7,"h3"),i(8,1),n(),e(9,"p"),i(10,2),n(),e(11,"button",10),s(12,3),_(13,"spk-icon"),l(),n()(),e(14,"spk-card",8),_(15,"img",9),e(16,"h3"),i(17,4),n(),e(18,"p"),i(19,5),n(),e(20,"button",10),s(21,6),_(22,"spk-icon"),l(),n()()()()),t&2&&(c(11),r("routerLink",d(2,E)),c(9),r("routerLink",d(3,F)))},dependencies:[k,M,f,T,S],styles:["[_nghost-%COMP%]{display:block}section[_ngcontent-%COMP%]{display:flex;align-items:center;flex-direction:column;gap:2rem;padding:2rem 0}div.backup-types[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:1rem;max-width:700px}spk-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:1rem;padding-bottom:3rem}spk-card[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-width:300px}spk-card[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{text-wrap:balance;text-align:center;width:75%}"],changeDetection:0})};export{u as default};
@@ -1 +1 @@
1
- import{a as re}from"./chunk-5242ZMFS.js";import{c as pe,e as ue,h as Se,j as ce,s as h}from"./chunk-QTTYDT3P.js";import{a as Y}from"./chunk-C4IFBLYB.js";import{a as ee,b as te,e as ne,g as ie,i as I,l as oe,p as ae,q as se,s as le,t as _e}from"./chunk-6WLXFV43.js";import{b as A}from"./chunk-DYCJPQSE.js";import{a as de}from"./chunk-FQMZSQUI.js";import{j as Q}from"./chunk-2IDHF5MN.js";import{$b as V,Ab as K,E as g,Eb as P,Fb as N,Gb as p,Jb as W,Kb as u,Lb as C,Oa as _,X as d,Zb as O,_a as E,ac as j,bc as q,ca as $,cc as M,da as x,db as b,dc as D,ec as R,lb as m,mb as w,nb as S,nc as v,oa as k,oc as Z,pc as J,qb as L,rb as z,sa as r,sb as X,tb as H,ub as s,vb as l,wb as f,yc as B}from"./chunk-GM25ACCR.js";function Ae(a,n){if(a&1){let t=K();s(0,"spk-radio",10),u("click",function(){let i=$(t).$implicit,o=C();return x(o.pauseOption.set(i.value))}),O(1),l()}if(a&2){let t=n.$implicit,e=C();S("active",e.pauseOption()===t.value),_(),V(" ",t.label," ")}}var fe=[{label:$localize`5 minuts`,value:"5m"},{label:$localize`10 minuts`,value:"10m"},{label:$localize`15 minuts`,value:"15m"},{label:$localize`30 minuts`,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}],y=class a{#e=d(A);pauseOptions=r(fe);closed=k();isSubmitting=r(!1);pauseTransfers=r(!1);pauseOption=r(void 0);submit(){this.isSubmitting.set(!0);let n=this.pauseTransfers()||null,t=this.pauseOption();this.#e.postApiV1ServerstatePause({duration:t,pauseTransfers:n}).pipe(g(()=>this.isSubmitting.set(!1))).subscribe({next:e=>{this.closed.emit()}})}static \u0275fac=function(t){return new(t||a)};static \u0275cmp=E({type:a,selectors:[["app-pause-dialog"]],outputs:{closed:"closed"},decls:17,vars:4,consts:()=>{let n;n=$localize`Pause settings`;let t;t=$localize` Also pause transfers `;let e;e=$localize`If you pause transfers they could time out and cause retries or failures.`;let i;i=$localize`Cancel`;let o;return o=$localize` Update settings `,[n,t,e,i,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(t,e){t&1&&(s(0,"header",5)(1,"h3"),p(2,0),l()(),s(3,"div",6)(4,"div",7),X(5,Ae,2,3,"spk-radio",8,z),l(),s(7,"div",9)(8,"spk-checkbox",10),u("click",function(){return e.pauseTransfers.set(!e.pauseTransfers())}),p(9,1),l(),s(10,"spk-alert",11),p(11,2),l()()(),s(12,"footer",12)(13,"button",13),u("click",function(){return e.closed.emit()}),p(14,3),l(),s(15,"button",14),u("click",function(){return e.submit()}),p(16,4),l()()),t&2&&(_(5),H(e.pauseOptions()),_(3),S("active",e.pauseTransfers()),_(7),S("loader",e.isSubmitting()))},dependencies:[h,se,I,te],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 Pe=["Byte/s","KByte/s","MByte/s","GByte/s","TByte/s","PByte/s"],G={Byte:"B",KByte:"KB",MByte:"MB",GByte:"GB",TByte:"TB",PByte:"PB"},ge=Object.entries(G).reduce((a,[n,t])=>(a[t]=n,a),{}),F=class a{#e=d(A);closed=k();isSubmitting=r(!1);sizeOptions=r(Pe);maxUploadActive=r(!1);maxDownloadActive=r(!1);maxUpload=r(0);maxDownload=r(0);maxUploadUnit=r("MByte/s");maxDownloadUnit=r("MByte/s");ngOnInit(){this.init()}init(){this.#e.getApiV1Serversettings().subscribe({next:n=>{let t=n?.["max-upload-speed"]?.split(/(\d+)/),e=n?.["max-download-speed"]?.split(/(\d+)/),i=t[1]??"",o=e[1]??"",c=t[2]??"MB",T=e[2]??"MB",Ce=i===""?10:parseInt(i),Oe=o===""?10:parseInt(o);this.maxUploadUnit.set(ge[c]+"/s"),this.maxDownloadUnit.set(ge[T]+"/s"),this.maxUploadActive.set(i!==""),this.maxDownloadActive.set(o!==""),this.maxUpload.set(Ce),this.maxDownload.set(Oe)}})}blockDecimalKeys(n){if([".",","].includes(n.key))return n.preventDefault()}cleanupInputAfterPasting(n){n.preventDefault();let t=n.clipboardData?.getData("text/plain");if(!t)return;let e=t.replaceAll(/[\.,]/g,"");n.target.value=e}submit(){this.isSubmitting.set(!0);let n=this.maxUploadActive()?`${this.maxUpload()}${G[this.maxUploadUnit().replace("/s","")]}`:"",t=this.maxDownloadActive()?`${this.maxDownload()}${G[this.maxDownloadUnit().replace("/s","")]}`:"";this.#e.patchApiV1Serversettings({requestBody:{"max-upload-speed":n,"max-download-speed":t}}).pipe(g(()=>this.isSubmitting.set(!1))).subscribe({next:e=>{this.closed.emit(!0)}})}static \u0275fac=function(t){return new(t||a)};static \u0275cmp=E({type:a,selectors:[["app-throttle-settings-dialog"]],outputs:{closed:"closed"},decls:26,vars:16,consts:()=>{let n;n=$localize`Throttle network speed`;let t;t=$localize` Max upload speed `;let e;e=$localize` Max download speed `;let i;i=$localize` Note that speeds are entered in bytes, and line speeds are typically reported in bits. Use a factor of 8 to convert, such that an 8 mbit/s line is equivalent to 1 MByte/s. `;let o;o=$localize`Cancel`;let c;return c=$localize` Update settings `,[n,t,e,i,o,c,["header",""],["content",""],[1,"column"],[1,"field-row"],[1,"primary","raised",3,"click"],["type","number",3,"paste","keydown","ngModelChange","ngModel","disabled"],[3,"isClearable","options"],["type","text",3,"ngModelChange","ngModel"],["footer",""],["spk-button","",3,"click"],["spk-button","",1,"raised","primary",3,"click"]]},template:function(t,e){t&1&&(s(0,"header",6)(1,"h3"),p(2,0),l()(),s(3,"div",7)(4,"div",8)(5,"div",9)(6,"spk-checkbox",10),u("click",function(){return e.maxUploadActive.set(!e.maxUploadActive())}),p(7,1),l(),s(8,"spk-form-field")(9,"input",11),u("paste",function(o){return e.cleanupInputAfterPasting(o)})("keydown",function(o){return e.blockDecimalKeys(o)}),R("ngModelChange",function(o){return D(e.maxUpload,o)||(e.maxUpload=o),o}),l()(),s(10,"spk-select",12)(11,"input",13),R("ngModelChange",function(o){return D(e.maxUploadUnit,o)||(e.maxUploadUnit=o),o}),l()()(),s(12,"div",9)(13,"spk-checkbox",10),u("click",function(){return e.maxDownloadActive.set(!e.maxDownloadActive())}),p(14,2),l(),s(15,"spk-form-field")(16,"input",11),u("paste",function(o){return e.cleanupInputAfterPasting(o)})("keydown",function(o){return e.blockDecimalKeys(o)}),R("ngModelChange",function(o){return D(e.maxDownload,o)||(e.maxDownload=o),o}),l()(),s(17,"spk-select",12)(18,"input",13),R("ngModelChange",function(o){return D(e.maxDownloadUnit,o)||(e.maxDownloadUnit=o),o}),l()()(),s(19,"p"),p(20,3),l()()(),s(21,"footer",14)(22,"button",15),u("click",function(){return e.closed.emit(!1)}),p(23,4),l(),s(24,"button",16),u("click",function(){return e.submit()}),p(25,5),l()()),t&2&&(_(6),S("active",e.maxUploadActive()),_(3),M("ngModel",e.maxUpload),m("disabled",!e.maxUploadActive()),_(),m("isClearable",!1)("options",e.sizeOptions()),_(),M("ngModel",e.maxUploadUnit),_(2),S("active",e.maxDownloadActive()),_(3),M("ngModel",e.maxDownload),m("disabled",!e.maxDownloadActive()),_(),m("isClearable",!1)("options",e.sizeOptions()),_(),M("ngModel",e.maxDownloadUnit),_(6),S("loader",e.isSubmitting()))},dependencies:[h,pe,ce,ue,Se,oe,I,_e],styles:["[_nghost-%COMP%]{display:block}h3[_ngcontent-%COMP%]{font:var(--title-30)}.column[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.field-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;width:100%}"],changeDetection:0})};function Ne(a,n){if(a&1&&(s(0,"div"),O(1),l(),f(2,"spk-progress-bar",9)),a&2){let t=C();_(),j("",t.statusData().actionText," - ",t.statusData().statusText,""),_(),m("value",t.statusData().progress*100)}}function Me(a,n){if(a&1&&(s(0,"div",5),O(1),v(2,"relativeTime"),v(3,"date"),l()),a&2){let t,e=C();_(),q(" ",(t=e.nextBackup().backup)==null||t.Backup==null?null:t.Backup.Name," - ",Z(2,3,e.nextBackup().time)," at ",J(3,5,e.nextBackup().time,"shortTime")," ")}}function De(a,n){a&1&&(s(0,"div",5),p(1,1),l())}function Re(a,n){a&1&&(s(0,"div",6),P(1,2),f(2,"spk-spinner"),N(),l()),a&2&&(_(2),w("--spinner-size","12px")("--spinner-thickness","2px"))}function Fe(a,n){a&1&&(P(0,0,1),f(1,"spk-icon"),N())}function ke(a,n){a&1&&(P(0,0,2),f(1,"spk-icon"),N())}var Ee=new Date,U=class a{#e=d(A);#t=d(re);#n=d(ne);#i=d(Y);minsAgo=Ee.setMinutes(Ee.getMinutes()-1);statusData=this.#t.statusData;serverState=this.#t.serverState;isRunning=B(()=>this.serverState()?.ProgramState==="Running");isResuming=r(!1);nextBackup=B(()=>({backup:this.serverState()?.ProposedSchedule?.[0]?.backup,time:this.serverState()?.ProposedSchedule?.[0]?.Item2}));openThrottleSettingsDialog(){this.#n.open(F,{maxWidth:"550px",width:"100%"})}openPauseDialog(){this.#n.open(y,{maxWidth:"550px",width:"100%"})}pauseResume(){if(this.isRunning()){this.openPauseDialog();return}this.isResuming.set(!0),this.#e.postApiV1ServerstateResume().pipe(g(()=>this.isResuming.set(!1))).subscribe()}ngAfterViewInit(){let n=this.#i.relayIsEnabled()?"longpoll":"websocket";this.#t.setConnectionMethod(n)}static \u0275fac=function(t){return new(t||a)};static \u0275cmp=E({type:a,selectors:[["app-status-bar"]],decls:14,vars:4,consts:()=>{let n;n=$localize`${"\uFFFD*9: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/*9:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*10: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/*10:2\uFFFD"}:CLOSE_BLOCK_ELSE:`,n=W(n);let t;t=$localize`No scheduled tasks`;let e;return e=$localize` Loading ${"\uFFFD#2\uFFFD"}:START_TAG_SPK_SPINNER:${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SPK_SPINNER:`,[n,t,e,[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"]]},template:function(t,e){if(t&1&&(s(0,"div",3)(1,"div",4),b(2,Ne,3,3)(3,Me,4,8,"div",5)(4,De,2,0,"div",5)(5,Re,3,4,"div",6),l(),s(6,"div",7)(7,"button",8),u("click",function(){return e.pauseResume()}),P(8,0),b(9,Fe,2,0)(10,ke,2,0),N(),l(),s(11,"button",8),u("click",function(){return e.openThrottleSettingsDialog()}),s(12,"spk-icon"),O(13,"speedometer"),l()()()()),t&2){let i;_(2),L((i=e.serverState())!=null&&i.ActiveTask&&(!((i=e.statusData())==null||i.task==null)&&i.task.Status)&&((i=e.statusData())==null||i.task==null?null:i.task.Status)!=="Completed"?2:e.nextBackup().backup||e.nextBackup().time?3:(i=e.serverState())!=null&&i.ActiveTask?5:4),_(5),S("loader",e.isResuming()),_(2),L(e.isRunning()?9:10)}},dependencies:[ae,de,Q,ee,ie,le],styles:["[_nghost-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:1rem;min-height:3.875rem;border-bottom:1px solid var(--base-level-40)}.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-actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}.label-loading[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.25rem}"],changeDetection:0})};export{U as a};
1
+ import{a as re}from"./chunk-ON2SWJPL.js";import{c as pe,e as ue,h as Se,j as ce,s as h}from"./chunk-QTTYDT3P.js";import{a as Y}from"./chunk-C4IFBLYB.js";import{a as ee,b as te,e as ne,g as ie,i as I,l as oe,p as ae,q as se,s as le,t as _e}from"./chunk-6WLXFV43.js";import{b as A}from"./chunk-DYCJPQSE.js";import{a as de}from"./chunk-FQMZSQUI.js";import{j as Q}from"./chunk-2IDHF5MN.js";import{$b as V,Ab as K,E as g,Eb as P,Fb as N,Gb as p,Jb as W,Kb as u,Lb as C,Oa as _,X as d,Zb as O,_a as E,ac as j,bc as q,ca as $,cc as M,da as x,db as b,dc as D,ec as R,lb as m,mb as w,nb as S,nc as v,oa as k,oc as Z,pc as J,qb as L,rb as z,sa as r,sb as X,tb as H,ub as s,vb as l,wb as f,yc as B}from"./chunk-GM25ACCR.js";function Ae(a,n){if(a&1){let t=K();s(0,"spk-radio",10),u("click",function(){let i=$(t).$implicit,o=C();return x(o.pauseOption.set(i.value))}),O(1),l()}if(a&2){let t=n.$implicit,e=C();S("active",e.pauseOption()===t.value),_(),V(" ",t.label," ")}}var fe=[{label:$localize`5 minuts`,value:"5m"},{label:$localize`10 minuts`,value:"10m"},{label:$localize`15 minuts`,value:"15m"},{label:$localize`30 minuts`,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}],y=class a{#e=d(A);pauseOptions=r(fe);closed=k();isSubmitting=r(!1);pauseTransfers=r(!1);pauseOption=r(void 0);submit(){this.isSubmitting.set(!0);let n=this.pauseTransfers()||null,t=this.pauseOption();this.#e.postApiV1ServerstatePause({duration:t,pauseTransfers:n}).pipe(g(()=>this.isSubmitting.set(!1))).subscribe({next:e=>{this.closed.emit()}})}static \u0275fac=function(t){return new(t||a)};static \u0275cmp=E({type:a,selectors:[["app-pause-dialog"]],outputs:{closed:"closed"},decls:17,vars:4,consts:()=>{let n;n=$localize`Pause settings`;let t;t=$localize` Also pause transfers `;let e;e=$localize`If you pause transfers they could time out and cause retries or failures.`;let i;i=$localize`Cancel`;let o;return o=$localize` Update settings `,[n,t,e,i,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(t,e){t&1&&(s(0,"header",5)(1,"h3"),p(2,0),l()(),s(3,"div",6)(4,"div",7),X(5,Ae,2,3,"spk-radio",8,z),l(),s(7,"div",9)(8,"spk-checkbox",10),u("click",function(){return e.pauseTransfers.set(!e.pauseTransfers())}),p(9,1),l(),s(10,"spk-alert",11),p(11,2),l()()(),s(12,"footer",12)(13,"button",13),u("click",function(){return e.closed.emit()}),p(14,3),l(),s(15,"button",14),u("click",function(){return e.submit()}),p(16,4),l()()),t&2&&(_(5),H(e.pauseOptions()),_(3),S("active",e.pauseTransfers()),_(7),S("loader",e.isSubmitting()))},dependencies:[h,se,I,te],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 Pe=["Byte/s","KByte/s","MByte/s","GByte/s","TByte/s","PByte/s"],G={Byte:"B",KByte:"KB",MByte:"MB",GByte:"GB",TByte:"TB",PByte:"PB"},ge=Object.entries(G).reduce((a,[n,t])=>(a[t]=n,a),{}),F=class a{#e=d(A);closed=k();isSubmitting=r(!1);sizeOptions=r(Pe);maxUploadActive=r(!1);maxDownloadActive=r(!1);maxUpload=r(0);maxDownload=r(0);maxUploadUnit=r("MByte/s");maxDownloadUnit=r("MByte/s");ngOnInit(){this.init()}init(){this.#e.getApiV1Serversettings().subscribe({next:n=>{let t=n?.["max-upload-speed"]?.split(/(\d+)/),e=n?.["max-download-speed"]?.split(/(\d+)/),i=t[1]??"",o=e[1]??"",c=t[2]??"MB",T=e[2]??"MB",Ce=i===""?10:parseInt(i),Oe=o===""?10:parseInt(o);this.maxUploadUnit.set(ge[c]+"/s"),this.maxDownloadUnit.set(ge[T]+"/s"),this.maxUploadActive.set(i!==""),this.maxDownloadActive.set(o!==""),this.maxUpload.set(Ce),this.maxDownload.set(Oe)}})}blockDecimalKeys(n){if([".",","].includes(n.key))return n.preventDefault()}cleanupInputAfterPasting(n){n.preventDefault();let t=n.clipboardData?.getData("text/plain");if(!t)return;let e=t.replaceAll(/[\.,]/g,"");n.target.value=e}submit(){this.isSubmitting.set(!0);let n=this.maxUploadActive()?`${this.maxUpload()}${G[this.maxUploadUnit().replace("/s","")]}`:"",t=this.maxDownloadActive()?`${this.maxDownload()}${G[this.maxDownloadUnit().replace("/s","")]}`:"";this.#e.patchApiV1Serversettings({requestBody:{"max-upload-speed":n,"max-download-speed":t}}).pipe(g(()=>this.isSubmitting.set(!1))).subscribe({next:e=>{this.closed.emit(!0)}})}static \u0275fac=function(t){return new(t||a)};static \u0275cmp=E({type:a,selectors:[["app-throttle-settings-dialog"]],outputs:{closed:"closed"},decls:26,vars:16,consts:()=>{let n;n=$localize`Throttle network speed`;let t;t=$localize` Max upload speed `;let e;e=$localize` Max download speed `;let i;i=$localize` Note that speeds are entered in bytes, and line speeds are typically reported in bits. Use a factor of 8 to convert, such that an 8 mbit/s line is equivalent to 1 MByte/s. `;let o;o=$localize`Cancel`;let c;return c=$localize` Update settings `,[n,t,e,i,o,c,["header",""],["content",""],[1,"column"],[1,"field-row"],[1,"primary","raised",3,"click"],["type","number",3,"paste","keydown","ngModelChange","ngModel","disabled"],[3,"isClearable","options"],["type","text",3,"ngModelChange","ngModel"],["footer",""],["spk-button","",3,"click"],["spk-button","",1,"raised","primary",3,"click"]]},template:function(t,e){t&1&&(s(0,"header",6)(1,"h3"),p(2,0),l()(),s(3,"div",7)(4,"div",8)(5,"div",9)(6,"spk-checkbox",10),u("click",function(){return e.maxUploadActive.set(!e.maxUploadActive())}),p(7,1),l(),s(8,"spk-form-field")(9,"input",11),u("paste",function(o){return e.cleanupInputAfterPasting(o)})("keydown",function(o){return e.blockDecimalKeys(o)}),R("ngModelChange",function(o){return D(e.maxUpload,o)||(e.maxUpload=o),o}),l()(),s(10,"spk-select",12)(11,"input",13),R("ngModelChange",function(o){return D(e.maxUploadUnit,o)||(e.maxUploadUnit=o),o}),l()()(),s(12,"div",9)(13,"spk-checkbox",10),u("click",function(){return e.maxDownloadActive.set(!e.maxDownloadActive())}),p(14,2),l(),s(15,"spk-form-field")(16,"input",11),u("paste",function(o){return e.cleanupInputAfterPasting(o)})("keydown",function(o){return e.blockDecimalKeys(o)}),R("ngModelChange",function(o){return D(e.maxDownload,o)||(e.maxDownload=o),o}),l()(),s(17,"spk-select",12)(18,"input",13),R("ngModelChange",function(o){return D(e.maxDownloadUnit,o)||(e.maxDownloadUnit=o),o}),l()()(),s(19,"p"),p(20,3),l()()(),s(21,"footer",14)(22,"button",15),u("click",function(){return e.closed.emit(!1)}),p(23,4),l(),s(24,"button",16),u("click",function(){return e.submit()}),p(25,5),l()()),t&2&&(_(6),S("active",e.maxUploadActive()),_(3),M("ngModel",e.maxUpload),m("disabled",!e.maxUploadActive()),_(),m("isClearable",!1)("options",e.sizeOptions()),_(),M("ngModel",e.maxUploadUnit),_(2),S("active",e.maxDownloadActive()),_(3),M("ngModel",e.maxDownload),m("disabled",!e.maxDownloadActive()),_(),m("isClearable",!1)("options",e.sizeOptions()),_(),M("ngModel",e.maxDownloadUnit),_(6),S("loader",e.isSubmitting()))},dependencies:[h,pe,ce,ue,Se,oe,I,_e],styles:["[_nghost-%COMP%]{display:block}h3[_ngcontent-%COMP%]{font:var(--title-30)}.column[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.field-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;width:100%}"],changeDetection:0})};function Ne(a,n){if(a&1&&(s(0,"div"),O(1),l(),f(2,"spk-progress-bar",9)),a&2){let t=C();_(),j("",t.statusData().actionText," - ",t.statusData().statusText,""),_(),m("value",t.statusData().progress*100)}}function Me(a,n){if(a&1&&(s(0,"div",5),O(1),v(2,"relativeTime"),v(3,"date"),l()),a&2){let t,e=C();_(),q(" ",(t=e.nextBackup().backup)==null||t.Backup==null?null:t.Backup.Name," - ",Z(2,3,e.nextBackup().time)," at ",J(3,5,e.nextBackup().time,"shortTime")," ")}}function De(a,n){a&1&&(s(0,"div",5),p(1,1),l())}function Re(a,n){a&1&&(s(0,"div",6),P(1,2),f(2,"spk-spinner"),N(),l()),a&2&&(_(2),w("--spinner-size","12px")("--spinner-thickness","2px"))}function Fe(a,n){a&1&&(P(0,0,1),f(1,"spk-icon"),N())}function ke(a,n){a&1&&(P(0,0,2),f(1,"spk-icon"),N())}var Ee=new Date,U=class a{#e=d(A);#t=d(re);#n=d(ne);#i=d(Y);minsAgo=Ee.setMinutes(Ee.getMinutes()-1);statusData=this.#t.statusData;serverState=this.#t.serverState;isRunning=B(()=>this.serverState()?.ProgramState==="Running");isResuming=r(!1);nextBackup=B(()=>({backup:this.serverState()?.ProposedSchedule?.[0]?.backup,time:this.serverState()?.ProposedSchedule?.[0]?.Item2}));openThrottleSettingsDialog(){this.#n.open(F,{maxWidth:"550px",width:"100%"})}openPauseDialog(){this.#n.open(y,{maxWidth:"550px",width:"100%"})}pauseResume(){if(this.isRunning()){this.openPauseDialog();return}this.isResuming.set(!0),this.#e.postApiV1ServerstateResume().pipe(g(()=>this.isResuming.set(!1))).subscribe()}ngAfterViewInit(){let n=this.#i.relayIsEnabled()?"longpoll":"websocket";this.#t.setConnectionMethod(n)}static \u0275fac=function(t){return new(t||a)};static \u0275cmp=E({type:a,selectors:[["app-status-bar"]],decls:14,vars:4,consts:()=>{let n;n=$localize`${"\uFFFD*9: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/*9:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*10: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/*10:2\uFFFD"}:CLOSE_BLOCK_ELSE:`,n=W(n);let t;t=$localize`No scheduled tasks`;let e;return e=$localize` Loading ${"\uFFFD#2\uFFFD"}:START_TAG_SPK_SPINNER:${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SPK_SPINNER:`,[n,t,e,[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"]]},template:function(t,e){if(t&1&&(s(0,"div",3)(1,"div",4),b(2,Ne,3,3)(3,Me,4,8,"div",5)(4,De,2,0,"div",5)(5,Re,3,4,"div",6),l(),s(6,"div",7)(7,"button",8),u("click",function(){return e.pauseResume()}),P(8,0),b(9,Fe,2,0)(10,ke,2,0),N(),l(),s(11,"button",8),u("click",function(){return e.openThrottleSettingsDialog()}),s(12,"spk-icon"),O(13,"speedometer"),l()()()()),t&2){let i;_(2),L((i=e.serverState())!=null&&i.ActiveTask&&(!((i=e.statusData())==null||i.task==null)&&i.task.Status)&&((i=e.statusData())==null||i.task==null?null:i.task.Status)!=="Completed"?2:e.nextBackup().backup||e.nextBackup().time?3:(i=e.serverState())!=null&&i.ActiveTask?5:4),_(5),S("loader",e.isResuming()),_(2),L(e.isRunning()?9:10)}},dependencies:[ae,de,Q,ee,ie,le],styles:["[_nghost-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:1rem;min-height:3.875rem;border-bottom:1px solid var(--base-level-40)}.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-actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}.label-loading[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.25rem}"],changeDetection:0})};export{U as a};
@@ -0,0 +1 @@
1
+ import{a as $e}from"./chunk-UKJSH5XP.js";import"./chunk-ON2SWJPL.js";import{a as Ne}from"./chunk-KEHATBLP.js";import"./chunk-RHW5QVAY.js";import"./chunk-ZVBVR6H4.js";import"./chunk-QTTYDT3P.js";import"./chunk-C4IFBLYB.js";import"./chunk-PX25CWH6.js";import{e as G}from"./chunk-7WCKE7GY.js";import"./chunk-BIHIR35J.js";import{a as v,g as h,h as Oe,j as me,k as ke,o as X,p as Pe}from"./chunk-6WLXFV43.js";import{b as Ce}from"./chunk-DYCJPQSE.js";import"./chunk-TKVTCBLW.js";import"./chunk-FQMZSQUI.js";import"./chunk-2IDHF5MN.js";import"./chunk-OD5LGCQE.js";import{$b as N,Ab as b,Eb as u,Fb as F,Gb as s,Hb as $,Ib as f,Kb as M,Lb as p,Oa as c,X as D,Zb as d,_a as Ee,ca as C,da as O,db as m,ib as Te,jb as Me,jc as L,kc as k,lb as g,nb as A,nc as I,oc as B,pc as x,qb as P,rb as R,sb as H,tb as y,ub as i,vb as t,wb as r,xb as E,yb as T}from"./chunk-GM25ACCR.js";import"./chunk-7CGTOI24.js";var fe=()=>[G,h,v,me,ke,X,import("./chunk-YBGYY3E5.js").then(e=>e.DurationFormatPipe),import("./chunk-A7BKUGJT.js").then(e=>e.BytesPipe),import("./chunk-X7KD2725.js").then(e=>e.RelativeTimePipe)],Ie=()=>["/add-backup"],Ae=()=>["/restore"],De=e=>["/backup",e],Re=e=>["/restore",e],He=e=>["/backup",e,"export"],ye=e=>["/backup",e,"database"],be=e=>["/backup",e,"commandline"],Le=e=>["/backup",e,"log"];function Be(e,_){if(e&1){let o=b();i(0,"button",42),M("click",function(){let l=C(o).$implicit,S=p();return O(S.setOrderBy(l.value))}),s(1,11),t()}if(e&2){let o=_.$implicit,n=p();A("active",n.orderBy()===o.value),c(),$(o.label),f(1)}}function xe(e,_){if(e&1&&(d(0),I(1,"durationFormat")),e&2){let o=p().$implicit,n=p(3);N(" ",x(1,1,o.Backup==null||o.Backup.Metadata==null?null:o.Backup.Metadata.LastBackupDuration,n.timeType()==="actual")," ")}}function Ge(e,_){e&1&&(E(0),s(1,26),T())}function ve(e,_){if(e&1&&(d(0),I(1,"bytes")),e&2){let o=p().$implicit;N(" ",B(1,1,o.Backup==null||o.Backup.Metadata==null?null:o.Backup.Metadata.SourceFilesSize)," ")}}function he(e,_){e&1&&(E(0),s(1,27),T())}function Xe(e,_){if(e&1&&(d(0),I(1,"bytes")),e&2){let o=p().$implicit;N(" ",B(1,1,o.Backup==null||o.Backup.Metadata==null?null:o.Backup.Metadata.TargetFilesSize)," ")}}function we(e,_){e&1&&(E(0),s(1,28),T())}function ze(e,_){if(e&1&&(i(0,"spk-chip",46),s(1,29),t()),e&2){let o=p().$implicit;c(),$(o.Backup==null||o.Backup.Metadata==null?null:o.Backup.Metadata.BackupListCount),f(1)}}function Ke(e,_){e&1&&(i(0,"spk-chip",47),s(1,30),t())}function Ve(e,_){if(e&1){let o=b();i(0,"div",45)(1,"div",35)(2,"h3"),d(3),i(4,"spk-icon"),d(5,"database"),t()(),i(6,"p")(7,"span"),s(8,12),t(),d(9),I(10,"relativeTime"),t(),i(11,"p")(12,"span"),s(13,13),t(),m(14,xe,2,4)(15,Ge,2,0,"ng-container"),t(),i(16,"p")(17,"span"),s(18,14),t(),m(19,ve,2,3)(20,he,2,0,"ng-container"),t(),i(21,"p")(22,"span"),s(23,15),t(),m(24,Xe,2,3)(25,we,2,0,"ng-container"),t()(),m(26,ze,2,1,"spk-chip",46)(27,Ke,2,0,"spk-chip",47),i(28,"div",39)(29,"button",48),M("click",function(){let l=C(o).$implicit,S=p(3);return O(S.startBackup(l.Backup==null?null:l.Backup.ID))}),u(30,16),r(31,"spk-icon"),F(),t(),i(32,"button",49)(33,"spk-icon"),d(34,"pencil-simple"),t()(),i(35,"spk-menu",50)(36,"button",36)(37,"spk-icon"),d(38,"dots-three-vertical"),t()(),E(39,41),i(40,"h3",51),d(41,"Operations"),t(),i(42,"button",52),u(43,17),r(44,"spk-icon"),F(),t(),i(45,"button",52),u(46,18),r(47,"spk-icon"),F(),t(),i(48,"button",53),M("click",function(){let l=C(o).$implicit,S=p(3);return O(S.deleteBackup(l.Backup==null?null:l.Backup.ID))}),u(49,19),r(50,"spk-icon"),F(),t(),r(51,"spk-divider"),i(52,"h3",51),d(53,"Advanced"),t(),i(54,"button",52),u(55,20),r(56,"spk-icon"),F(),t(),i(57,"button",42),M("click",function(){let l=C(o).$implicit,S=p(3);return O(S.verifyFiles(l.Backup==null?null:l.Backup.ID))}),u(58,21),r(59,"spk-icon"),F(),t(),i(60,"button",42),M("click",function(){let l=C(o).$implicit,S=p(3);return O(S.compressBackup(l.Backup==null?null:l.Backup.ID))}),u(61,22),r(62,"spk-icon"),F(),t(),i(63,"button",52),u(64,23),r(65,"spk-icon"),F(),t(),r(66,"spk-divider"),i(67,"h3",51),d(68,"Reporting"),t(),i(69,"button",52),u(70,24),r(71,"spk-icon"),F(),t(),i(72,"button",42),M("click",function(){let l=C(o).$implicit,S=p(3);return O(S.createErrorReport(l.Backup==null?null:l.Backup.ID))}),u(73,25),r(74,"spk-icon"),F(),t(),T(),t()()()}if(e&2){let o,n=_.$implicit,l=p(3);c(3),N(" ",(o=n.Backup==null?null:n.Backup.Name)!==null&&o!==void 0?o:l.MISSING_BACKUP_NAME," "),c(6),N(" ",x(10,17,n.Backup==null||n.Backup.Metadata==null?null:n.Backup.Metadata.LastBackupDate,l.timeType()==="actual")," "),c(5),P(!(n.Backup==null||n.Backup.Metadata==null)&&n.Backup.Metadata.LastBackupDuration?14:15),c(5),P(!(n.Backup==null||n.Backup.Metadata==null)&&n.Backup.Metadata.SourceFilesSize?19:20),c(5),P(!(n.Backup==null||n.Backup.Metadata==null)&&n.Backup.Metadata.TargetFilesSize?24:25),c(2),P(!(n.Backup==null||n.Backup.Metadata==null)&&n.Backup.Metadata.BackupListCount?26:27),c(3),A("loader",l.startingBackup()),c(3),g("routerLink",k(20,De,n.Backup==null?null:n.Backup.ID)),c(3),g("right",!0),c(7),g("routerLink",k(22,Re,n.Backup==null?null:n.Backup.ID)),c(3),g("routerLink",k(24,He,n.Backup==null?null:n.Backup.ID)),c(3),A("loader",l.deletingBackup()===(n.Backup==null?null:n.Backup.ID)),c(6),g("routerLink",k(26,ye,n.Backup==null?null:n.Backup.ID)),c(9),g("routerLink",k(28,be,n.Backup==null?null:n.Backup.ID)),c(6),g("routerLink",k(30,Le,n.Backup==null?null:n.Backup.ID))}}function je(e,_){if(e&1&&H(0,Ve,75,32,"div",45,R),e&2){let o=p(2);y(o.backups())}}function qe(e,_){e&1&&(E(0),s(1,31),T())}function Ue(e,_){if(e&1&&m(0,je,2,0)(1,qe,2,0,"ng-container"),e&2){let o=p();P(o.backups().length?0:1)}}function We(e,_){e&1&&(i(0,"div",54),r(1,"spk-progress-bar",55),i(2,"div",35)(3,"h3"),s(4,32),t()()())}var w=class e{#e=D(Ne);#n=D(Ce);MISSING_BACKUP_NAME=$localize`Backup name missing`;sortOrderOptions=this.#e.orderByOptions;orderBy=this.#e.orderBy;backups=this.#e.backups;backupsLoading=this.#e.backupsLoading;startingBackup=this.#e.startingBackup;deletingBackup=this.#e.deletingBackup;timeType=this.#e.timeType;ngOnInit(){this.#e.getBackups(!0)}setOrderBy(_){this.#e.setOrderBy(_)}setTimeType(_){this.#e.setTimeType(_)}startBackup(_){this.#e.startBackup(_)}deleteBackup(_){window.confirm("Are you sure you want to delete this backup?")&&this.#e.deleteBackup(_)}verifyFiles(_){this.#n.postApiV1BackupByIdVerify({id:_}).subscribe()}compressBackup(_){this.#n.postApiV1BackupByIdCompact({id:_}).subscribe()}createErrorReport(_){this.#n.postApiV1BackupByIdCreatereport({id:_}).subscribe()}static \u0275fac=function(o){return new(o||e)};static \u0275cmp=Ee({type:e,selectors:[["app-home"]],decls:51,vars:7,consts:()=>{let _;_=$localize`Backups`;let o;o=$localize`Backups are stored in the cloud and can be restored at any time.`;let n;n=$localize` Add ${"\uFFFD#12\uFFFD"}:START_TAG_SPK_ICON:plus${"\uFFFD/#12\uFFFD"}:CLOSE_TAG_SPK_ICON:`;let l;l=$localize`Restores`;let S;S=$localize`Restores allow you to restore your data from the cloud.`;let z;z=$localize` Start ${"\uFFFD#22\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#22\uFFFD"}:CLOSE_TAG_SPK_ICON:`;let K;K=$localize`My backups`;let V;V=$localize` Time: ${"\uFFFD#31\uFFFD"}:START_TAG_STRONG:${"\uFFFD0\uFFFD"}:INTERPOLATION:${"\uFFFD/#31\uFFFD"}:CLOSE_TAG_STRONG:${"\uFFFD#32\uFFFD"}:START_TAG_SPK_ICON:clock${"\uFFFD/#32\uFFFD"}:CLOSE_TAG_SPK_ICON:`;let j;j=$localize`Relative time`;let q;q=$localize`Actual time`;let U;U=$localize` Order by: ${"\uFFFD#41\uFFFD"}:START_TAG_STRONG:${"\uFFFD0\uFFFD"}:INTERPOLATION:${"\uFFFD/#41\uFFFD"}:CLOSE_TAG_STRONG:${"\uFFFD#42\uFFFD"}:START_TAG_SPK_ICON:arrows-down-up${"\uFFFD/#42\uFFFD"}:CLOSE_TAG_SPK_ICON:`;let W;W=$localize` ${"\uFFFD0\uFFFD"}:INTERPOLATION: `;let J;J=$localize`Last successful backup:`;let Q;Q=$localize`Duration:`;let Y;Y=$localize`Source:`;let Z;Z=$localize`Destination:`;let ee;ee=$localize`${"\uFFFD#31\uFFFD"}:START_TAG_SPK_ICON:play-circle${"\uFFFD/#31\uFFFD"}:CLOSE_TAG_SPK_ICON: Start `;let ne;ne=$localize`${"\uFFFD#44\uFFFD"}:START_TAG_SPK_ICON:clock-counter-clockwise${"\uFFFD/#44\uFFFD"}:CLOSE_TAG_SPK_ICON: Restore `;let te;te=$localize`${"\uFFFD#47\uFFFD"}:START_TAG_SPK_ICON:export${"\uFFFD/#47\uFFFD"}:CLOSE_TAG_SPK_ICON: Export `;let oe;oe=$localize`${"\uFFFD#50\uFFFD"}:START_TAG_SPK_ICON:x-circle${"\uFFFD/#50\uFFFD"}:CLOSE_TAG_SPK_ICON: Delete `;let ie;ie=$localize`${"\uFFFD#56\uFFFD"}:START_TAG_SPK_ICON:database${"\uFFFD/#56\uFFFD"}:CLOSE_TAG_SPK_ICON: Database `;let _e;_e=$localize`${"\uFFFD#59\uFFFD"}:START_TAG_SPK_ICON:check-square-offset${"\uFFFD/#59\uFFFD"}:CLOSE_TAG_SPK_ICON: Verify files `;let ae;ae=$localize`${"\uFFFD#62\uFFFD"}:START_TAG_SPK_ICON:file-archive${"\uFFFD/#62\uFFFD"}:CLOSE_TAG_SPK_ICON: Compress now `;let le;le=$localize`${"\uFFFD#65\uFFFD"}:START_TAG_SPK_ICON:terminal-window${"\uFFFD/#65\uFFFD"}:CLOSE_TAG_SPK_ICON: Commandline `;let ce;ce=$localize`${"\uFFFD#71\uFFFD"}:START_TAG_SPK_ICON:notepad${"\uFFFD/#71\uFFFD"}:CLOSE_TAG_SPK_ICON: Log `;let re;re=$localize`${"\uFFFD#74\uFFFD"}:START_TAG_SPK_ICON:file-plus${"\uFFFD/#74\uFFFD"}:CLOSE_TAG_SPK_ICON: Create error report `;let se;se=$localize`N/A`;let pe;pe=$localize`N/A`;let ue;ue=$localize`N/A`;let Fe;Fe=$localize` ${"\uFFFD0\uFFFD"}:INTERPOLATION: Version `;let Se;Se=$localize`No version yet`;let de;de=$localize`No backups founds`;let ge;return ge=$localize`Loading backups...`,[_,o,n,l,S,z,K,V,j,q,U,W,J,Q,Y,Z,ee,ne,te,oe,ie,_e,ae,le,ce,re,se,pe,ue,Fe,Se,de,ge,[1,"type-a",3,"routerLink"],["src","assets/images/backup.png","alt","","width","48px"],[1,"text"],["type","button","spk-button",""],["src","assets/images/restore.png","alt","","width","48px"],[1,"content"],[1,"actions"],["type","button","spk-button","",1,"small"],["menu",""],["type","button",3,"click"],["type","button",3,"active"],[1,"backups"],[1,"backup"],[1,"simple","success"],[1,"simple"],["spk-button","",3,"click"],["type","button","spk-button","",3,"routerLink"],[3,"right"],["title",""],["type","button",3,"routerLink"],[3,"click"],[1,"loading-list"],[1,"indeterminate","primary"]]},template:function(o,n){o&1&&(r(0,"app-status-bar"),i(1,"section")(2,"header")(3,"spk-card",33),r(4,"img",34),i(5,"div",35)(6,"h3"),s(7,0),t(),i(8,"p"),s(9,1),t()(),i(10,"button",36),u(11,2),r(12,"spk-icon"),F(),t()(),i(13,"spk-card",33),r(14,"img",37),i(15,"div",35)(16,"h3"),s(17,3),t(),i(18,"p"),s(19,4),t()(),i(20,"button",36),u(21,5),r(22,"spk-icon"),F(),t()()(),i(23,"div",38)(24,"h2"),E(25),s(26,6),T(),i(27,"div",39)(28,"spk-menu")(29,"button",40),u(30,7),r(31,"strong")(32,"spk-icon"),F(),t(),E(33,41),i(34,"button",42),M("click",function(){return n.setTimeType("relative")}),s(35,8),t(),i(36,"button",42),M("click",function(){return n.setTimeType("actual")}),s(37,9),t(),T(),t(),i(38,"spk-menu")(39,"button",40),u(40,10),r(41,"strong")(42,"spk-icon"),F(),t(),E(43,41),H(44,Be,2,3,"button",43,R),T(),t()()(),i(46,"div",44),m(47,Ue,2,1)(48,We,5,0),Te(49,47,fe,null,48),t()()()),o&2&&(c(3),g("routerLink",L(5,Ie)),c(10),g("routerLink",L(6,Ae)),c(19),$(n.timeType()),f(30),c(10),$(n.orderBy()),f(40),c(2),y(n.sortOrderOptions()),c(5),Me(!n.backupsLoading()))},dependencies:[G,$e,Oe,h,v,X,Pe],styles:["[_nghost-%COMP%]{display:block}h2[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between}section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;padding:2rem 0}header[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;padding:0 2rem;gap:1rem}spk-card[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem}spk-card[_ngcontent-%COMP%] .text[_ngcontent-%COMP%]{flex:1 0;display:flex;flex-direction:column;gap:.25rem}.content[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding:0 2rem;gap:1rem}.backups[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.backup[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:2rem;gap:1rem;border:1px solid var(--base-level-40);border-radius:var(--shape-3);box-shadow:var(--shadow-1)}.backup[_ngcontent-%COMP%] .text[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;width:100%;max-width:40%}.backup[_ngcontent-%COMP%] .text[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem}.backup[_ngcontent-%COMP%] .text[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] spk-icon[_ngcontent-%COMP%]{color:var(--base-level-60)}.backup[_ngcontent-%COMP%] .text[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{font:var(--paragraph-30);color:var(--base-level-60)}.backup[_ngcontent-%COMP%] .text[_ngcontent-%COMP%] p[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--base-level-70)}.actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}"],changeDetection:0})};export{w as default};
@@ -0,0 +1 @@
1
+ import{m as re}from"./chunk-2EOGI5U4.js";import"./chunk-Y5T3G6PP.js";import"./chunk-4B4SNBSE.js";import"./chunk-YRQ33MKD.js";import"./chunk-UO57IKTF.js";import{a as St}from"./chunk-NYZVIDDD.js";import{a as gt}from"./chunk-HPSQUH4S.js";import{a as Z}from"./chunk-OELZQ6RK.js";import{a as ct}from"./chunk-OPC7T2MU.js";import"./chunk-ARQ6YMHX.js";import{a as pt}from"./chunk-UKJSH5XP.js";import"./chunk-ON2SWJPL.js";import"./chunk-KEHATBLP.js";import"./chunk-RHW5QVAY.js";import"./chunk-ZVBVR6H4.js";import{c as J,e as Y,h as ee,l as dt,s as te,t as ne}from"./chunk-QTTYDT3P.js";import"./chunk-C4IFBLYB.js";import{a as nt}from"./chunk-PX25CWH6.js";import"./chunk-7WCKE7GY.js";import"./chunk-BIHIR35J.js";import{A as _t,a as q,b as j,g as K,k as it,l as Q,p as ot,q as st,r as at,t as rt,z as lt}from"./chunk-6WLXFV43.js";import{b as v}from"./chunk-DYCJPQSE.js";import"./chunk-TKVTCBLW.js";import"./chunk-FQMZSQUI.js";import"./chunk-2IDHF5MN.js";import"./chunk-OD5LGCQE.js";import{$b as W,A as k,Ab as P,E as I,Eb as z,Fb as U,Gb as r,Hb as se,Ib as ae,Jb as Ze,Kb as S,La as qe,Lb as p,Oa as l,Ob as Je,R as V,Va as je,Wb as Ye,X as u,Xb as et,Zb as R,_a as L,_b as B,a as Be,b as We,c as He,ca as m,cc as y,da as C,db as f,dc as G,ec as A,ib as Ke,ic as tt,jb as Qe,jc as H,lb as h,n as w,nb as N,qb as E,sa as c,ub as i,vb as o,wb as O,yc as $,zc as b}from"./chunk-GM25ACCR.js";import"./chunk-7CGTOI24.js";var F=class s{#e=u(v);#i=St(this.#e.getApiV1Serversettings());#t=c(void 0);serverSettings=$(()=>this.#t()||this.#i());refreshServerSettings(){this.#e.getApiV1Serversettings().subscribe({next:e=>{this.#t.set(e)}})}static \u0275fac=function(t){return new(t||s)};static \u0275prov=V({token:s,factory:s.\u0275fac,providedIn:"root"})};var mt=["formRef"],Ct=()=>[import("./chunk-QBYHBPBT.js").then(s=>s.OptionsListComponent)];function Et(s,e){s&1&&(i(0,"spk-alert",3),r(1,1),o())}function ft(s,e){if(s&1){let t=P();i(0,"app-options-list",5),A("optionsChange",function(a){m(t);let d=p();return G(d.settings,a)||(d.settings=a),C(a)}),o()}if(s&2){let t=p();y("options",t.settings),h("hasFreeTextSettings",!0)}}var Nt=["Bytes","KB","MB","GB","TB","PB"],D=class s{#e=u(re);#i=u(F);#t=u(v);formRef=je.required("formRef");settings=this.#e.settings;isSubmitting=c(!1);isLoadingOptions=c(!0);saved=c(!1);sizeOptions=c(Nt);lastRecievedServerSettings=c({});serverSettingsEffect=b(()=>{let e=this.#i.serverSettings();if(e===void 0)return;this.lastRecievedServerSettings.set(e),this.isLoadingOptions.set(!0);let t=Object.entries(e);t.forEach(([n,a],d)=>{if(n.startsWith("--")){let T=n.replace("--","");this.settings.update(g=>(g.some(M=>M.Name===T)||g.push({Name:T,Value:a}),g))}d===t.length-1&&this.isLoadingOptions.set(!1)})});submit(){this.isSubmitting.set(!0);let e=this.settings(),t=this.lastRecievedServerSettings(),n=e.map(g=>g.Name),d=Object.keys(t).filter(g=>!n.includes(g.replace("--",""))),T=e.reduce((g,M)=>(g[`--${M.Name}`]=M.Value,g),{});d.forEach(g=>{T[g]=null}),this.#t.patchApiV1Serversettings({requestBody:T}).pipe(I(()=>this.isSubmitting.set(!1))).subscribe({next:()=>{this.#i.refreshServerSettings(),this.saved.set(!0),setTimeout(()=>{this.saved.set(!1)},3e3)}})}static \u0275fac=function(t){return new(t||s)};static \u0275cmp=L({type:s,selectors:[["app-advanced-options-settings"]],viewQuery:function(t,n){t&1&&Ye(n.formRef,mt,5),t&2&&et()},features:[tt([re])],decls:8,vars:4,consts:()=>{let e;e=$localize`${"\uFFFD#4\uFFFD"}:START_TAG_SPK_ICON:floppy-disk${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_SPK_ICON: Save settings `;let t;return t=$localize`Settings saved`,[e,t,[1,"actions"],[1,"success"],["spk-button","","type","button",1,"raised","primary",3,"click"],[3,"optionsChange","options","hasFreeTextSettings"]]},template:function(t,n){t&1&&(i(0,"div",2),f(1,Et,2,0,"spk-alert",3),i(2,"button",4),S("click",function(){return n.submit()}),z(3,0),O(4,"spk-icon"),U(),o()(),f(5,ft,1,2),Ke(6,5,Ct)),t&2&&(l(),E(n.saved()?1:-1),l(),N("loader",n.isSubmitting()),l(4),Qe(!n.isLoadingOptions()))},dependencies:[ne,K,q,j],styles:["[_nghost-%COMP%]{display:block;width:100%;max-width:40.625rem;justify-self:flex-end}.actions[_ngcontent-%COMP%]{display:flex;gap:.5rem;justify-content:flex-end;margin-bottom:.5rem}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap: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}.row-inputs[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{flex:1 0}.advanced-option[_ngcontent-%COMP%]{display:grid;gap:.5rem;grid-template-columns:1fr 1fr 40px;align-items:flex-end}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"],changeDetection:0})};var x=class s{#e=u(v);#i=u(Z);repeatRegisterTimer=null;state=c("unknown");claimUrl=c(null);registerUrl=c("");status=$(()=>{let e=this.state();return e==="enabled"?"Remote control is enabled but not connected":e==="connected"?"Remote control is connected":e==="registering"?"Registering machine...":e==="registeringfaulted"?"Registration failed":e==="registered"?"Registered, waiting for accept":e==="disabled"?"Remote control is configured but not enabled":e==="unknown"?"...loading...":"Remote control is not set up"});sysInfoEffect=b(()=>{let e=this.#i.systemInfo();e&&this.registerUrl.set(e.RemoteControlRegistrationUrl??"")});#t(e){e.RegistrationUrl&&this.claimUrl.set(e.RegistrationUrl),e.IsConnected?this.state.set("connected"):e.IsEnabled?this.state.set("enabled"):e.CanEnable?this.state.set("disabled"):e.IsRegisteringFaulted?this.state.set("registeringfaulted"):e.IsRegistering?e.RegistrationUrl!=null&&e.RegistrationUrl.trim().length>0?this.state.set("registered"):this.state.set("registering"):this.state.set("inactive");let t=this.state();this.repeatRegisterTimer!==null&&(clearTimeout(this.repeatRegisterTimer),this.repeatRegisterTimer=null),t==="registering"&&(this.repeatRegisterTimer=setTimeout(()=>{this.#e.postApiV1RemotecontrolRegister({requestBody:{RegistrationUrl:""}}).subscribe({next:n=>this.#t(n),error:n=>this.#n(n)})},5e3)),(t==="enabled"||t==="registered")&&(this.repeatRegisterTimer=setTimeout(()=>{this.#e.getApiV1RemotecontrolStatus().subscribe({next:n=>this.#t(n),error:n=>this.#n(n)})},5e3)),e.IsRegistering&&e.CanEnable&&this.#e.deleteApiV1RemotecontrolRegister().subscribe({next:n=>this.#t(n)})}#n(e){this.#e.getApiV1RemotecontrolStatus().subscribe({next:t=>this.#t(t)})}refreshRemoteControlStatus(){this.#e.getApiV1RemotecontrolStatus().subscribe({next:e=>this.#t(e),error:e=>this.#n(e)})}beginRemoteRegistration(){this.state.set("registering"),this.#e.postApiV1RemotecontrolRegister({requestBody:{RegistrationUrl:this.registerUrl()}}).subscribe({next:e=>this.#t(e),error:e=>this.#n(e)})}cancelRemoteRegistration(){this.#e.deleteApiV1RemotecontrolRegister().subscribe({next:e=>this.#t(e),error:e=>this.#n(e)})}enableRemoteControl(){this.#e.postApiV1RemotecontrolEnable().subscribe({next:e=>this.#t(e),error:e=>this.#n(e)})}disableRemoteControl(){this.#e.postApiV1RemotecontrolDisable().subscribe({next:e=>this.#t(e),error:e=>this.#n(e)})}deleteRemoteControl(){let e=this;confirm("Are you sure you want to delete the remote control registration?")&&e.#e.deleteApiV1RemotecontrolRegistration().subscribe({next:t=>e.#t(t),error:t=>e.#n(t)})}static \u0275fac=function(t){return new(t||s)};static \u0275prov=V({token:s,factory:s.\u0275fac,providedIn:"root"})};function ht(s,e){if(s&1){let t=P();i(0,"spk-form-field",10)(1,"input",11),A("ngModelChange",function(a){m(t);let d=p(2);return G(d.registerUrl,a)||(d.registerUrl=a),C(a)}),o()(),i(2,"button",12),S("click",function(){m(t);let a=p(2);return C(a.register())}),r(3,0),o()}if(s&2){let t=p(2);l(),y("ngModel",t.registerUrl)}}function Pt(s,e){if(s&1&&(i(0,"div",8)(1,"label"),r(2,1),o(),i(3,"a",13),R(4),o()()),s&2){let t=p(2);l(3),Je("href",t.claimUrl(),qe),l(),B(t.claimUrl())}}function Ot(s,e){s&1&&(i(0,"div",8)(1,"label"),r(2,2),o()())}function Rt(s,e){if(s&1){let t=P();i(0,"button",12),S("click",function(){m(t);let a=p(2);return C(a.cancel())}),r(1,3),o()}}function It(s,e){if(s&1){let t=P();i(0,"button",12),S("click",function(){m(t);let a=p(2);return C(a.disable())}),r(1,4),o()}}function yt(s,e){if(s&1){let t=P();i(0,"button",12),S("click",function(){m(t);let a=p(2);return C(a.enable())}),r(1,5),o(),i(2,"button",14),S("click",function(){m(t);let a=p(2);return C(a.delete())}),r(3,6),o()}}function Gt(s,e){if(s&1&&(i(0,"div",7),f(1,ht,4,1)(2,Pt,5,2,"div",8)(3,Ot,3,0,"div",8)(4,Rt,2,0,"button",9)(5,It,2,0,"button",9)(6,yt,4,0),o()),s&2){let t=p();l(),E(t.state()==="inactive"?1:-1),l(),E(t.state()==="registered"?2:-1),l(),E(t.state()==="registering"?3:-1),l(),E(t.state()==="registering"||t.state()==="registeringfaulted"||t.state()==="registered"?4:-1),l(),E(t.state()==="connected"||t.state()==="enabled"?5:-1),l(),E(t.state()==="disabled"?6:-1)}}var oe=class s{#e=u(x);state=this.#e.state;claimUrl=this.#e.claimUrl;registerUrl=this.#e.registerUrl;ngOnInit(){this.#e.refreshRemoteControlStatus()}cancel(){this.#e.cancelRemoteRegistration()}register(){this.#e.beginRemoteRegistration()}disable(){this.#e.disableRemoteControl()}enable(){this.#e.enableRemoteControl()}delete(){this.#e.deleteRemoteControl()}static \u0275fac=function(t){return new(t||s)};static \u0275cmp=L({type:s,selectors:[["app-remote-control"]],decls:1,vars:1,consts:()=>{let e;e=$localize`Register for remote control`;let t;t=$localize`Machine is now registered, open this link to add it to your account:`;let n;n=$localize`Registering, please wait...`;let a;a=$localize`Cancel registration`;let d;d=$localize`Disable remote control`;let T;T=$localize`Enable remote control`;let g;return g=$localize`Delete remote control setup`,[e,t,n,a,d,T,g,[1,"field-row"],[1,"field-col"],["type","button","spk-button","",1,"raised"],["label","Registration URL","for","remoteControlRegisterUrl"],["type","text","spk-input","","id","remoteControlRegisterUrl","name","remoteControlRegisterUrl",3,"ngModelChange","ngModel"],["type","button","spk-button","",1,"raised",3,"click"],["target","_blank",3,"href"],["type","button","spk-button","",1,"raised","error",3,"click"]]},template:function(t,n){t&1&&f(0,Gt,7,6,"div",7),t&2&&E(n.state()!=="unknown"?0:-1)},dependencies:[te,J,Y,ee,Q],styles:["[_nghost-%COMP%]{display:block}[_nghost-%COMP%] button[_ngcontent-%COMP%]{white-space:nowrap}.field-row[_ngcontent-%COMP%]{display:flex;gap:.5rem;width:100%}.field-row[_ngcontent-%COMP%] spk-form-field[_ngcontent-%COMP%], .field-row[_ngcontent-%COMP%] spk-select[_ngcontent-%COMP%]{flex:1 0}"],changeDetection:0})};function ut(...s){let e=c(...s);return Object.defineProperty(e,"value",{get:e.asReadonly(),set:e.set.bind(e)})}var le=()=>({standalone:!0});function At(s,e){s&1&&(i(0,"spk-icon",69),R(1,"check"),o())}function vt(s,e){s&1&&(i(0,"spk-icon",70),R(1,"prohibit"),o())}function $t(s,e){if(s&1){let t=P();i(0,"button",74),S("click",function(){m(t);let a=p(2);return C(a.updatePassphrase())}),r(1,34),o()}if(s&2){let t=p(2);N("loader",t.isUpdating())}}function bt(s,e){if(s&1){let t=P();i(0,"spk-tooltip",73)(1,"button",75),S("click",function(){m(t);let a=p(2);return C(a.updatePassphrase())}),r(2,35),o()()}if(s&2){let t=p(2);l(),N("loader",t.isUpdating()),h("disabled",!0)}}function wt(s,e){if(s&1){let t=P();i(0,"spk-form-field")(1,"label",65),r(2,31),o(),i(3,"input",66),A("ngModelChange",function(a){m(t);let d=p();return G(d.passphrase,a)||(d.passphrase=a),C(a)}),o()(),i(4,"spk-form-field")(5,"label",67),r(6,32),o(),i(7,"input",68),A("ngModelChange",function(a){m(t);let d=p();return G(d.repeatPassphrase,a)||(d.repeatPassphrase=a),C(a)}),o(),f(8,At,2,0,"spk-icon",69)(9,vt,2,0,"spk-icon",70),o(),i(10,"div",48)(11,"button",71),S("click",function(){m(t);let a=p();return C(a.cancelPasswordChange())}),r(12,33),o(),f(13,$t,2,2,"button",72)(14,bt,3,3,"spk-tooltip",73),o()}if(s&2){let t=p();l(3),y("ngModel",t.passphrase),l(4),h("disabled",t.passphrase().length===0),y("ngModel",t.repeatPassphrase),l(),E(t.passphrase().length!==0&&t.passphrase()===t.repeatPassphrase()?8:9),l(3),N("loader",t.isUpdating()),l(2),E(t.passphrase().length!==0&&t.passphrase()===t.repeatPassphrase()?13:14)}}function kt(s,e){s&1&&(i(0,"spk-icon",76),R(1,"check"),o())}function Lt(s,e){if(s&1){let t=P();i(0,"div",48)(1,"button",71),S("click",function(){m(t);let a=p();return C(a.openPassphraseForm())}),r(2,36),o(),f(3,kt,2,0,"spk-icon",76),o()}if(s&2){let t=p();l(3),E(t.passwordUpdated()?3:-1)}}function Ft(s,e){if(s&1){let t=P();i(0,"spk-form-field")(1,"label",77),r(2,37),o(),i(3,"textarea",78),A("ngModelChange",function(a){m(t);let d=p();return G(d.allowedHostnames,a)||(d.allowedHostnames=a),C(a)}),o()(),i(4,"spk-alert",79),r(5,38),o(),i(6,"button",74),S("click",function(){m(t);let a=p();return C(a.updateAllowedHostnames())}),r(7,39),o()}if(s&2){let t=p();l(3),y("ngModel",t.allowedHostnames),l(3),N("loader",t.updatingAllowedHosts())}}function xt(s,e){if(s&1&&R(0),s&2){let t,n=p();W(" ",(t=n.sysinfo())==null?null:t.ServerVersion," ")}}function Dt(s,e){s&1&&O(0,"spk-progress-bar",53)}function Xt(s,e){if(s&1&&R(0),s&2){let t=e.$implicit;W(" ",t.label," ")}}function Vt(s,e){if(s&1&&R(0),s&2){let t=e.$implicit;W(" ",t.label," ")}}function zt(s,e,t){let n=ut(s),a=n[Be];t?.equal&&(a.equal=t.equal);let d;return n.set=T=>{clearTimeout(d),d=setTimeout(()=>We(a,T),e)},n.update=T=>{clearTimeout(d),d=setTimeout(()=>He(a,T),e)},n}var Ut=[{value:"s",label:$localize`Seconds`},{value:"m",label:$localize`Minutes`},{value:"h",label:$localize`Hours`}],Bt=[{value:"none",label:$localize`System default (information)`},{value:"information",label:$localize`Usage statistics, warnings, errors, and crashes`},{value:"warning",label:$localize`Warnings, errors and crashes`},{value:"error",label:$localize`Errors and crashes`},{value:"crash",label:$localize`Crashes only`},{value:"none",label:$localize`None / disabled`}],_e=class s{#e=u(ct);#i=u(Z);#t=u(v);#n=u(F);#a=u(x);#o=u(nt);#s=this.#o.getItem("locale")??"en-US";sysinfo=this.#i.systemInfo;isDarkMode=this.#e.isDarkMode;editAs=c("list");previousLang=this.#s;langCtrl=c(this.#s);usageStatistics=c("");updatingUsageStatistics=c(!1);remoteControlStatus=this.#a.status;updatingChannel=c(!1);updateChannel=c("");setNewChannel(e){let t=this.updateChannel();this.updateChannel.set(e),this.#t.patchApiV1Serversettings({requestBody:{"update-channel":e}}).pipe(I(()=>this.updatingChannel.set(!1)),k(()=>(this.updateChannel.set(t),w(null)))).subscribe()}allowRemoteAccess=c(!1);allowedHostnames=c("");loadedAllowedHostnames=c("");updatingRemoteAccess=c(!1);updatingAllowedHosts=c(!1);updateRemoteAccess(){let e=this.allowRemoteAccess(),t=!e;this.allowRemoteAccess.set(t),this.#t.patchApiV1Serversettings({requestBody:{"server-listen-interface":t?"any":"loopback"}}).pipe(I(()=>this.updatingRemoteAccess.set(!1)),k(()=>(this.allowRemoteAccess.set(e),w(null)))).subscribe()}updateAllowedHostnames(){let e=this.loadedAllowedHostnames(),t=this.allowedHostnames();this.updatingAllowedHosts.set(!0),this.#t.patchApiV1Serversettings({requestBody:{"server-listen-interface":"any","allowed-hostnames":t}}).pipe(I(()=>this.updatingAllowedHosts.set(!1)),k(()=>(this.allowedHostnames.set(e),w(null)))).subscribe()}updatingDisableTrayIconLogin=c(!1);disableTrayIconLogin=c(!1);saveDisableTrayIconLogin(){let e=this.disableTrayIconLogin(),t=!e;this.updatingDisableTrayIconLogin.set(!0),this.disableTrayIconLogin.set(t),this.#t.patchApiV1Serversettings({requestBody:{"disable-tray-icon-login":t?"True":"False"}}).pipe(I(()=>this.updatingDisableTrayIconLogin.set(!1)),k(()=>(this.disableTrayIconLogin.set(e),w(null)))).subscribe()}showPassphraseForm=c(!1);isUpdating=c(!1);passphrase=c("");repeatPassphrase=c("");passwordUpdated=c(!1);updatePassphrase(){this.passphrase()===this.repeatPassphrase()&&(this.isUpdating.set(!0),this.#t.patchApiV1Serversettings({requestBody:{"server-passphrase":this.passphrase()}}).pipe(I(()=>this.isUpdating.set(!1))).subscribe({next:()=>{this.showPassphraseForm.set(!1),this.passwordUpdated.set(!0),setTimeout(()=>{this.passwordUpdated.set(!1)},3e3)}}))}openPassphraseForm(){this.showPassphraseForm.set(!0)}cancelPasswordChange(){this.showPassphraseForm.set(!1)}languageOptions=c(gt);usageStatisticsOptions=c(Bt);timeTypeOptions=c(Ut);timeType=c("s");timeValue=zt(void 0,300);timeRange=$(()=>this.timeType()==="h"?[0,24]:[0,60]);timeValueEffect=b(()=>{let e=this.timeValue();this.updateStartupDelay()});updateLocale(e){!e||e===""||e===this.previousLang||(this.#o.setItem("locale",e),window.location.reload())}updateStartupDelay(){let e=this.#n.serverSettings(),t=this.timeValue(),n=this.timeType(),a=`${t}${n}`;typeof t!="number"||a===""||e&&e["startup-delay"]===a||this.#t.patchApiV1Serversettings({requestBody:{"startup-delay":a==="0s"?"":a}}).subscribe()}updateTimeType(e){this.timeType.set(e)}updateUsageStatistics(e){let t=this.usageStatistics();!e||e===""||e===t||(this.usageStatistics.set(e),this.updatingUsageStatistics.set(!0),this.#t.patchApiV1Serversettings({requestBody:{"usage-reporter-level":this.usageStatistics()==="none"?"":this.usageStatistics()}}).pipe(I(()=>this.updatingUsageStatistics.set(!1)),k(()=>(this.usageStatistics.set(t),w(null)))).subscribe())}serverSettingsEffect=b(()=>{let e=this.#n.serverSettings();if(e===void 0)return;let t=e["startup-delay"],n=t.slice(-1),a=t.slice(0,-1),d=["s","m","h"];this.disableTrayIconLogin.set(e["disable-tray-icon-login"]!=="False"),this.updateChannel.set(e["update-channel"]),this.allowRemoteAccess.set(e["server-listen-interface"]==="any"),this.allowedHostnames.set(e["allowed-hostnames"]),this.loadedAllowedHostnames.set(e["allowed-hostnames"]),this.usageStatistics.set(e["usage-reporter-level"]===""?"none":e["usage-reporter-level"]),this.timeType.set(d.includes(n)?n:"s"),this.timeValue.set(parseInt(a==""?"0":a))});setDarkMode(){this.#e.setDarkMode()}setLightMode(){this.#e.setLightMode()}static \u0275fac=function(t){return new(t||s)};static \u0275cmp=L({type:s,selectors:[["app-settings"]],decls:132,vars:45,consts:()=>{let e;e=$localize`Settings`;let t;t=$localize`Configure your backup settings.`;let n;n=$localize`Remote access control`;let a;a=$localize`Color theme`;let d;d=$localize`Customize your application theme`;let T;T=$localize`Passwords`;let g;g=$localize`Change server passphrase`;let M;M=$localize`Language`;let de;de=$localize`Select a language for the platform`;let ce;ce=$localize`Allow remote access (requires restart)`;let pe;pe=$localize` By allowing remote access, the server listens to requests from any machine on your network. If you enable this option, make sure you are always using the computer on a secure firewall protected network. `;let Se;Se=$localize`Allow remote access`;let ge;ge=$localize`Prevent tray icon automatic log-in`;let Te;Te=$localize` By default, the tray icon will open the user interface with a token that unlocks the user interface. This ensures that you can access the user interface from the tray icon, while requiring others to enter a password. If you prefer having to type in the password, even when accessing the user interface from the tray icon, enable this option. `;let ue;ue=$localize`Prevent tray icon automatic log-in`;let me;me=$localize`Update channel`;let Ce;Ce=$localize` Default (${"\uFFFD0\uFFFD"}:INTERPOLATION:) `;let Ee;Ee=$localize`Same as the base install version: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let fe;fe=$localize`Stable`;let Ne;Ne=$localize`Official releases`;let Me;Me=$localize`Beta`;let he;he=$localize` Try out the new features that we are working on. Currently the most stable version available. Test Restore data before using this in production environments. `;let Pe;Pe=$localize` Experimental `;let Oe;Oe=$localize`Specific builds for developers only. Not for use with important data.`;let Re;Re=$localize`Canary`;let Ie;Ie=$localize`Individual builds for developers only. Not for use with important data.`;let ye;ye=$localize`Pause after startup or hibernation`;let Ge;Ge=$localize` Duplicati will run when started, but will remain in paused state for the duration. Duplicati will occupy minimal system resources and no backups will be run. `;let Ae;Ae=$localize`Usage statistics`;let X;X=$localize` Usage reports help us improve the user experience and evaluate impact of new features. We use them to generate ${"\uFFFD#119\uFFFD"}:START_LINK:public usage statistics.${"\uFFFD/#119\uFFFD"}:CLOSE_LINK:${"[\uFFFD#120\uFFFD\uFFFD/#120\uFFFD|\uFFFD#121\uFFFD\uFFFD/#121\uFFFD]"}:LINE_BREAK:${"[\uFFFD#120\uFFFD\uFFFD/#120\uFFFD|\uFFFD#121\uFFFD\uFFFD/#121\uFFFD]"}:LINE_BREAK: All usage reports are sent anonymously and do not contain any personal information. They contain information about hardware and operating system, the type of backend, backup duration, overall size of source data and similar data. They do not contain paths, filenames, usernames, passwords or similar sensitive information. `,X=Ze(X);let ve;ve=$localize`Advanced options`;let $e;$e=$localize`Enter new password`;let be;be=$localize`Repeat password`;let we;we=$localize`Password have to be filled and have to match`;let ke;ke=$localize`Passphrase`;let Le;Le=$localize`Repeat passphrase`;let Fe;Fe=$localize`Cancel`;let xe;xe=$localize` Update passphrase `;let De;De=$localize` Update passphrase `;let Xe;Xe=$localize`Change password`;let Ve;Ve=$localize`Allowed hostnames`;let ze;ze=$localize` To prevent various DNS based attacks, Duplicati limits the allowed hostnames to the ones listed here. Direct IP access and localhost is always allowed. Multiple hostnames can be supplied with a semicolon separator. If any of the allowed hostnames is an asterisk (*), all hostnames are allowed and this feature is disabled. If the field is empty, only IP address and localhost access is allowed. `;let Ue;return Ue=$localize` Update allowed hostnames `,[e,t,n,a,d,T,g,M,de,ce,pe,Se,ge,Te,ue,me,Ce,Ee,fe,Ne,Me,he,Pe,Oe,Re,Ie,ye,Ge,Ae,X,ve,ke,Le,Fe,xe,De,Xe,Ve,ze,Ue,[1,"content"],[1,"title"],[1,"left"],[1,"right"],[1,"themes"],["src","assets/images/light-theme.png","alt","light theme",3,"click"],["src","assets/images/dark-theme.png","alt","dark theme",3,"click"],[1,"right","passphrase-form"],[1,"actions"],["value","value","label","label",3,"options","isClearable","inlineSearch"],["type","text",3,"ngModelChange","ngModel","ngModelOptions"],[1,"right","remote-access-form"],[1,"primary","raised",3,"click"],[1,"indeterminate","primary"],[1,"right","radios"],[1,"radio-option",3,"click"],[1,"primary","raised"],[1,"field-row"],[1,"raised","primary",3,"unit"],["type","range",3,"min","max","ngModel","ngModelOptions"],["label","label","value","value",3,"options","isClearable"],["type","text",3,"ngModelChange","ngModel"],["href","#"],["label","label","value","value",3,"options","isLoading"],[1,"advanced-settings"],["for","password"],["type","password","name","password","autocomplete","disabled","placeholder",$e,"tabindex","1",3,"ngModelChange","ngModel"],["for","repeatPassword"],["type","password","name","repeatPassword","autocomplete","disabled","placeholder",be,"tabindex","2",3,"ngModelChange","disabled","ngModel"],["suffix","",1,"spk-success"],["suffix",""],["spk-button","",3,"click"],["spk-button","",1,"raised","primary",3,"loader"],["message",we,1,"primary"],["spk-button","",1,"raised","primary",3,"click"],["spk-button","",1,"raised","primary",3,"click","disabled"],[1,"spk-success"],["for","allowedHostnames"],["type","text","id","allowedHostnames",3,"ngModelChange","ngModel"],["type","primary"]]},template:function(t,n){if(t&1&&(O(0,"app-status-bar"),i(1,"div",40)(2,"header")(3,"div",41)(4,"h2"),r(5,0),o(),i(6,"p"),r(7,1),o()()(),i(8,"section")(9,"div",42)(10,"h3"),r(11,2),o(),i(12,"p"),R(13),o()(),i(14,"div",43),O(15,"app-remote-control"),o()(),i(16,"section")(17,"div",42)(18,"h3"),r(19,3),o(),i(20,"p"),r(21,4),o()(),i(22,"div",43)(23,"div",44)(24,"img",45),S("click",function(){return n.setLightMode()}),o(),i(25,"img",46),S("click",function(){return n.setDarkMode()}),o()()()(),i(26,"section")(27,"div",42)(28,"h3"),r(29,5),o(),i(30,"p"),r(31,6),o()(),i(32,"div",47),f(33,wt,15,7)(34,Lt,4,1,"div",48),o()(),i(35,"section")(36,"div",42)(37,"h3"),r(38,7),o(),i(39,"p"),r(40,8),o()(),i(41,"div",43)(42,"spk-select",49)(43,"input",50),S("ngModelChange",function(d){return n.updateLocale(d)}),o()()()(),i(44,"section")(45,"div",42)(46,"h3"),r(47,9),o(),i(48,"p"),r(49,10),o()(),i(50,"div",51)(51,"spk-toggle",52),S("click",function(){return n.updateRemoteAccess()}),i(52,"label"),r(53,11),o()(),f(54,Ft,8,3),o()(),i(55,"section")(56,"div",42)(57,"h3"),r(58,12),o(),i(59,"p"),r(60,13),o()(),i(61,"div",43)(62,"spk-toggle",52),S("click",function(){return n.saveDisableTrayIconLogin()}),i(63,"label"),r(64,14),o()()()(),i(65,"section")(66,"div",42)(67,"h3"),r(68,15),o(),i(69,"p"),f(70,xt,1,1),o(),f(71,Dt,1,0,"spk-progress-bar",53),o(),i(72,"div",54)(73,"div",55),S("click",function(){return n.setNewChannel("")}),i(74,"spk-radio",56),r(75,16),o(),i(76,"p"),r(77,17),o()(),i(78,"div",55),S("click",function(){return n.setNewChannel("stable")}),i(79,"spk-radio",56),r(80,18),o(),i(81,"p"),r(82,19),o()(),i(83,"div",55),S("click",function(){return n.setNewChannel("beta")}),i(84,"spk-radio",56),r(85,20),o(),i(86,"p"),r(87,21),o()(),i(88,"div",55),S("click",function(){return n.setNewChannel("experimental")}),i(89,"spk-radio",56),r(90,22),o(),i(91,"p"),r(92,23),o()(),i(93,"div",55),S("click",function(){return n.setNewChannel("canary")}),i(94,"spk-radio",56),r(95,24),o(),i(96,"p"),r(97,25),o()()()()(),O(98,"spk-divider"),i(99,"div",40)(100,"section")(101,"div",42)(102,"h3"),r(103,26),o(),i(104,"p"),r(105,27),o()(),i(106,"div",43)(107,"div",57)(108,"spk-range-slider",58),O(109,"input",59),o(),i(110,"spk-select",60)(111,"input",61),S("ngModelChange",function(d){return n.updateTimeType(d)}),o(),f(112,Xt,1,1,"ng-template"),o()()()(),i(113,"section")(114,"div",42)(115,"h3"),r(116,28),o(),i(117,"p"),z(118,29),O(119,"a",62)(120,"br")(121,"br"),U(),o()(),i(122,"div",43)(123,"spk-select",63)(124,"input",50),S("ngModelChange",function(d){return n.updateUsageStatistics(d)}),o(),f(125,Vt,1,1,"ng-template"),o()()()(),i(126,"div",40)(127,"section")(128,"div",64)(129,"h3"),r(130,30),o(),O(131,"app-advanced-options-settings"),o()()()),t&2){let a,d,T;l(13),B(n.remoteControlStatus()),l(11),N("active",!n.isDarkMode()),l(),N("active",n.isDarkMode()),l(8),E(n.showPassphraseForm()?33:34),l(9),h("options",n.languageOptions())("isClearable",!1)("inlineSearch",!0),l(),h("ngModel",n.langCtrl())("ngModelOptions",H(42,le)),l(8),N("active",n.allowRemoteAccess()),l(3),E(n.allowRemoteAccess()?54:-1),l(8),N("active",n.disableTrayIconLogin()),l(8),E(n.updateChannel()!==""&&((a=n.sysinfo())!=null&&a.ServerVersion)?70:-1),l(),E(n.updatingChannel()?71:-1),l(3),N("active",n.updateChannel()===""),l(),se((d=n.sysinfo())==null?null:d.DefaultUpdateChannel),ae(75),l(2),se((T=n.sysinfo())==null?null:T.ServerVersionType),ae(77),l(2),N("active",n.updateChannel()==="stable"),l(5),N("active",n.updateChannel()==="beta"),l(5),N("active",n.updateChannel()==="experimental"),l(5),N("active",n.updateChannel()==="canary"),l(14),h("unit",n.timeType()),l(),h("min",n.timeRange()[0])("max",n.timeRange()[1])("ngModel",n.timeValue)("ngModelOptions",H(43,le)),l(),h("options",n.timeTypeOptions())("isClearable",!1),l(),h("ngModel",n.timeType()),l(12),h("options",n.usageStatisticsOptions())("isLoading",n.updatingUsageStatistics()),l(),h("ngModel",n.usageStatistics())("ngModelOptions",H(44,le))}},dependencies:[te,J,dt,Y,ee,ne,pt,oe,D,K,st,at,ot,lt,_t,Q,q,it,j,rt],styles:["[_nghost-%COMP%]{display:block}.content[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding:0 2rem 2rem}header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:2rem 0;position:sticky;top:0;background:var(--base-level-10);z-index:1000;border-bottom:1px solid var(--base-level-40)}header[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem}section[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding:2rem 0;border-top:1px solid var(--base-level-40)}section[_ngcontent-%COMP%]:first-of-type{border-top:0}section[_ngcontent-%COMP%] .left[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem;align-items:flex-start}section[_ngcontent-%COMP%] .left[_ngcontent-%COMP%] spk-button-group[_ngcontent-%COMP%]{margin-top:.25rem}section[_ngcontent-%COMP%] .left[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{text-wrap:balance;width:50%}.passphrase-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:1rem}.passphrase-form[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem}.remote-access-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.themes[_ngcontent-%COMP%]{display:flex;gap:.5rem}.themes[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-width:240px;border-radius:var(--shape-3);cursor:pointer}.themes[_ngcontent-%COMP%] img.active[_ngcontent-%COMP%]{border:2px solid var(--primary-500)}.radios[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.radio-option[_ngcontent-%COMP%]{cursor:pointer}.radio-option[_ngcontent-%COMP%] spk-radio[_ngcontent-%COMP%]{color:var(--base-level-60);margin-bottom:.25rem}.radio-option[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{text-wrap:balance;color:var(--base-level-60R)}.field-col[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.field-row[_ngcontent-%COMP%]{display:flex;gap:.5rem;width:100%}.field-row[_ngcontent-%COMP%] spk-form-field[_ngcontent-%COMP%], .field-row[_ngcontent-%COMP%] spk-select[_ngcontent-%COMP%]{flex:1 0}.advanced-settings[_ngcontent-%COMP%]{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr;gap:1rem}"],changeDetection:0})};export{zt as debounceSignal,_e as default};
package/index.html CHANGED
@@ -36,5 +36,5 @@
36
36
  <body>
37
37
  <app-root></app-root>
38
38
  <div class="loading">Loading ...</div>
39
- <link rel="modulepreload" href="chunk-HPSQUH4S.js"><link rel="modulepreload" href="chunk-OELZQ6RK.js"><link rel="modulepreload" href="chunk-S2EID4MC.js"><link rel="modulepreload" href="chunk-U34D3G4S.js"><link rel="modulepreload" href="chunk-5242ZMFS.js"><link rel="modulepreload" href="chunk-ZVBVR6H4.js"><link rel="modulepreload" href="chunk-OQNO5JCJ.js"><link rel="modulepreload" href="chunk-KEHATBLP.js"><link rel="modulepreload" href="chunk-RHW5QVAY.js"><link rel="modulepreload" href="chunk-C4IFBLYB.js"><script src="polyfills-BZ5XXHZK.js" type="module"></script><script src="main-DQ77DZR6.js" type="module"></script></body>
39
+ <link rel="modulepreload" href="chunk-HPSQUH4S.js"><link rel="modulepreload" href="chunk-OELZQ6RK.js"><link rel="modulepreload" href="chunk-JKUJP6AX.js"><link rel="modulepreload" href="chunk-U34D3G4S.js"><link rel="modulepreload" href="chunk-ON2SWJPL.js"><link rel="modulepreload" href="chunk-KEHATBLP.js"><link rel="modulepreload" href="chunk-RHW5QVAY.js"><link rel="modulepreload" href="chunk-ZVBVR6H4.js"><link rel="modulepreload" href="chunk-C4IFBLYB.js"><link rel="modulepreload" href="chunk-PX25CWH6.js"><script src="polyfills-BZ5XXHZK.js" type="module"></script><script src="main-PBNHUSE5.js" type="module"></script></body>
40
40
  </html>
@@ -0,0 +1 @@
1
+ import{b as ge,c as ye}from"./chunk-HPSQUH4S.js";import{a as x}from"./chunk-OELZQ6RK.js";import{a as de}from"./chunk-JKUJP6AX.js";import{a as fe}from"./chunk-U34D3G4S.js";import{a as k}from"./chunk-ON2SWJPL.js";import"./chunk-KEHATBLP.js";import{a as N}from"./chunk-RHW5QVAY.js";import{a as ce}from"./chunk-ZVBVR6H4.js";import{a as b,b as me,c as w}from"./chunk-C4IFBLYB.js";import{a as y}from"./chunk-PX25CWH6.js";import{c as re,d as se,g as ie,h as ae}from"./chunk-7WCKE7GY.js";import{a as ne}from"./chunk-BIHIR35J.js";import{c as le}from"./chunk-6WLXFV43.js";import{d as pe}from"./chunk-DYCJPQSE.js";import{a as Y,b as Z,d as ee,e as te,f as oe}from"./chunk-TKVTCBLW.js";import{a as he}from"./chunk-FQMZSQUI.js";import{j as X,l as Q}from"./chunk-2IDHF5MN.js";import{b as ue}from"./chunk-OD5LGCQE.js";import{A as F,E as R,K as U,M as S,O as G,R as T,U as J,X as s,_a as $,f as V,ha as B,i as j,n as W,o as D,r as A,sa as d,sc as _,tc as z,wb as K,z as O,zc as q}from"./chunk-GM25ACCR.js";import"./chunk-7CGTOI24.js";var I=class o{#o=s(y);#s=s(b);ngOnInit(){this.#s.fetchConfig(),this.#o.clearAllNotCurrentVersion()}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=$({type:o,selectors:[["app-root"]],decls:1,vars:0,template:function(t,n){t&1&&K(0,"router-outlet")},dependencies:[re],encapsulation:2})};var ve={production:!0,baseUrl:"/api",machineServerUrl:"${WS_URL}",defaultTimeout:3e4};var f=new J("ENVIRONMENT");var E=class o{#o=s(pe);isLoaded=d(!1);webmodules=d(null);preload(e=!1){let t=this.#o.getApiV1Webmodules().pipe(G(n=>this.webmodules.set(n)),R(()=>this.isLoaded.set(!0)));if(e)return t;t.subscribe()}static \u0275fac=function(t){return new(t||o)};static \u0275prov=T({token:o,factory:o.\u0275fac,providedIn:"root"})};var Ie=()=>{let o=s(w);return o.token()?!0:o.checkProxyAuthed().pipe(S(e=>e?W(!0):o.refreshToken().pipe(A(()=>!0))))},Ee=()=>{let o=s(b),e=s(k),t=s(B),n=o.relayIsEnabled()?"longpoll":"websocket",i=[t.get(x).preload(!0),t.get(x).preloadFilterGroups(!0),t.get(E).preload(!0)];return o.configLoaded===null?O(i).pipe(A(()=>n)):o.configLoaded?.pipe(S(()=>O(i)))},Ce=[{path:"",children:[{path:"login",canActivate:[],loadComponent:()=>import("./chunk-LU6KVNOT.js")},{path:"logout",loadComponent:()=>import("./chunk-UKQTVYRS.js")},{path:"",canActivate:[Ie],children:[{path:"",canActivate:[Ee],loadComponent:()=>import("./chunk-HEPECSOH.js"),children:[{path:"",loadComponent:()=>import("./chunk-VWN3PAXR.js")},{path:"add-backup",loadComponent:()=>import("./chunk-TXZZ7EQH.js")},{path:"backup/:id/export",loadComponent:()=>import("./chunk-D6ZBSPNI.js")},{path:"backup/import",loadComponent:()=>import("./chunk-IYJFFIHQ.js")},{path:"backup-draft/:id",loadComponent:()=>import("./chunk-A7ZTKXJV.js"),loadChildren:()=>import("./chunk-KXHE37LY.js")},{path:"backup/:id",loadComponent:()=>import("./chunk-A7ZTKXJV.js"),loadChildren:()=>import("./chunk-KXHE37LY.js")},{path:"backup/:id/log",loadComponent:()=>import("./chunk-A6D4U7WJ.js")},{path:"backup/:id/database",loadComponent:()=>import("./chunk-PE5C74CV.js")},{path:"backup/:id/commandline",loadComponent:()=>import("./chunk-4ZN3WNN5.js")},{path:"backup/:id/commandline/:runId",loadComponent:()=>import("./chunk-NN546V2N.js")},{path:"restore",children:[{path:"",loadComponent:()=>import("./chunk-MIQEG35Y.js")},{path:"from-config",loadComponent:()=>import("./chunk-OP5UYIDM.js")}]},{path:"restore-from-files",loadComponent:()=>import("./chunk-N3QUTR5R.js"),loadChildren:()=>import("./chunk-F76OHZKQ.js")},{path:"restore-draft/:id",loadComponent:()=>import("./chunk-N3QUTR5R.js"),loadChildren:()=>import("./chunk-F76OHZKQ.js")},{path:"restore/:id",loadComponent:()=>import("./chunk-N3QUTR5R.js"),loadChildren:()=>import("./chunk-F76OHZKQ.js")},{path:"settings",loadComponent:()=>import("./chunk-YLYHFDOS.js")},{path:"about",loadComponent:()=>import("./chunk-73FGPZLT.js"),children:[{path:"",redirectTo:"general",pathMatch:"full"},{path:"general",loadComponent:()=>import("./chunk-HFKG5ODC.js")},{path:"changelog",loadComponent:()=>import("./chunk-7NSKVKO7.js")},{path:"libraries",loadComponent:()=>import("./chunk-R5DUA6AR.js")},{path:"system-info",loadComponent:()=>import("./chunk-W2OVJAGT.js")},{path:"logs",loadChildren:()=>import("./chunk-P3QRASBZ.js")},{path:"crashlogs",loadComponent:()=>import("./chunk-YC7JUCYS.js")}]}]}]}]}];var L=null,Se=(o,e)=>{let t=s(w),n=s(se),i=s(y),c=s(f),r=i.getItem("locale"),u=s(le),a=ge(r),p=o.url==="/api/v1/auth/login",m=o.url==="/api/v1/auth/refresh",v=o.url==="/api/v1/progressstate",g=o.url==="/api/v1/remoteoperation/test",h=t.token(),C=o,P=o.headers.has("custom-proxy-check")||h===me;if(h&&o.url.startsWith(c.baseUrl)&&!P){let l=o.headers.set("Authorization",`Bearer ${h}`);r&&r!=="en-US"&&(l=l.set("X-Ui-Language",a)),C=o.clone({headers:l})}return e(C).pipe(F(l=>{let H=l.error.Error||`Error Code: ${l.status}, Message: ${l.message}`;return!P&&(v&&l.status===404||g||u.error(H),m&&l.status===401&&(t.logout(),n.navigate(["/logout"])),!p&&!m&&l.status===401)?(L??=t.refreshToken().pipe(U()),L.pipe(S(()=>e(o.clone({headers:o.headers.set("Authorization",`Bearer ${t.token()}`)}))),R(()=>L=null))):D(()=>({error:l,message:H}))}))};var Me="1.0.0",Re=`portal-proxy-client-${N()}`,Ae=1,M=class o{#o=1e3;#s=s(f);#t=d("disconnected");#l=d(this.#o);#i=d(!1);#n=d(!1);#a=d(null);isConnectedToMachineServer=this.#n.asReadonly();wsState=this.#t.asReadonly();#p=[];#r={};#e=null;#m=new TextDecoder("utf-8");#c=null;#d=q(()=>{let e=this.#i(),t=this.#l(),n=this.#a();if(!n||!e||!t||t<this.#o){this.#c&&window.clearInterval(this.#c);return}this.#c=window.setInterval(()=>{this.connectToMachineServer(n)},t)});utf8Atob(e){let t=Uint8Array.from(atob(e),i=>i.charCodeAt(0)),n=this.#m.decode(t);return n?JSON.parse(n):null}connectToMachineServer(e,t){let n=t?.reconnect??!1,i=this.wsState();(i==="disconnected"||i==="error"||n)&&(this.#e?.close(),this.#e=null),!this.#e&&(this.#e=new WebSocket(this.#s.machineServerUrl),this.#t.set("connecting"),this.#e.onopen=()=>{this.#t.set("connect"),this.#n.set(!0),this.#i.set(!1),this.#a.set(null)},this.#e.onclose=()=>{this.#t.set("disconnected"),this.#n.set(!1),this.#a.set(e),this.#i.set(!0)},this.#e.onerror=()=>{this.#t.set("error")},this.#e.onmessage=c=>{let r=JSON.parse(c.data);if(this.wsState()==="connect"){if(r.type!=="welcome"){this.disconnectFromMachineServer(`Unexpected message type, expected 'welcome' but got '${r.type}'`);return}let a={token:e,publicKey:"",clientVersion:Me,protocolVersion:Ae},p=this.createResponse(r,"authportal",a);this.#t.set("welcome"),this.#e?.send(p)}else if(this.wsState()==="welcome"){if(r.type!=="authportal"){this.disconnectFromMachineServer(`Unexpected message type, expected 'authportal' but got '${r.type}'`);return}var u=JSON.parse(r.payload??"");if(u.accepted===!1){this.disconnectFromMachineServer("Authentication failed");return}for(this.#t.set("authenticated"),this.#n.set(!0);this.#p.length>0;){let a=this.#p.pop();a&&this.#r[a.messageId]&&this.activateCommand(a)}}else if(this.wsState()==="authenticated"){if(r.type!=="command"){console.warn(`Unexpected message type, expected 'command' but got '${r.type}'`);return}let a=this.#r[r.messageId];if(a){if(r.errorMessage){a.reject(r.errorMessage);return}else{let p=JSON.parse(r.payload??"");p.body=p?.body==null?null:this.utf8Atob(p.body),a.resolve(p)}delete this.#r[r.messageId],window.clearTimeout(a.timer)}}})}disconnectFromMachineServer(e=null){e&&console.error(e),this.#e?.close(),this.#e=null,this.#t.set("disconnected"),this.#n.set(!1)}createResponse(e,t,n){let i={from:Re,to:e.from,type:t,messageId:e.messageId,payload:JSON.stringify(n)};return JSON.stringify(i)}sendCommand(e,t,n,i,c,r,u=5e3){return(this.wsState()==="disconnected"||this.wsState()==="error")&&this.connectToMachineServer(e),new Promise((a,p)=>{let m=N(),g={from:Re,to:t,type:"command",messageId:m,payload:JSON.stringify({method:n,path:i,body:c,headers:r})},h={resolve:a,reject:p,timer:window.setTimeout(()=>{let C=this.#r[m];C&&(delete this.#r[m],C.reject("Timeout"))},u)};this.#r[m]=h,this.#n()?this.activateCommand(g):this.#p.push(g)})}activateCommand(e){this.#e?.send(JSON.stringify(e))}static \u0275fac=function(t){return new(t||o)};static \u0275prov=T({token:o,factory:o.\u0275fac,providedIn:"root"})};function Oe(o){if(typeof o!="string")return null;let t=new TextEncoder().encode(o);return window.btoa(String.fromCharCode(...t))}function Te(o,e,t){let n=o.relayconfigState.config();if(n===null)return t(e);let i=Oe(e.body),c={};e.headers.keys().forEach(p=>{c[p]=e.headers.get(p)??""});let r=e.headers.get("timeout"),u=r!==null?parseInt(r):o.defaultTimeout;e.url.startsWith("/api/v1/serverstate")&&e.url.includes("longpoll=true")&&(u=1e3*99);let a=o.relayWebsocket.sendCommand(n.accessToken,n.clientId,e.method,e.url,i,c,u);return new V(p=>{a.then(m=>{let v=new Y;c!=null&&Object.keys(c).forEach(h=>{v.set(h,c[h])});let g=new Z({body:m.body,status:m.code,statusText:"OK",headers:v});p.next(g),p.complete()})})}var we=(o,e)=>{let t={relayconfigState:s(b),defaultTimeout:s(f).defaultTimeout,relayWebsocket:s(M)},n=t.relayconfigState.config();if(t.relayconfigState.configLoaded!==null&&n===null){let i=new j;return t.relayconfigState.configLoaded.subscribe(c=>{c&&Te(t,o,e).subscribe(i)}),i}return Te(t,o,e)};var ke={providers:[_(),ie(Ce,ae()),ee(oe(),te([we,Se])),y,{provide:f,useValue:ve},{provide:z,useValue:ye()},de,k,ue,Q,ce,X,he,fe]};ne(I,ke);
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.0.103",
2
+ "version": "0.0.104",
3
3
  "name": "@duplicati/ngclient",
4
4
  "license": "MIT",
5
5
  "contributors": [
package/chunk-2PAPG5UW.js DELETED
@@ -1 +0,0 @@
1
- import{a as k}from"./chunk-6OYKPS4F.js";import"./chunk-5242ZMFS.js";import"./chunk-ZVBVR6H4.js";import"./chunk-OQNO5JCJ.js";import"./chunk-KEHATBLP.js";import"./chunk-RHW5QVAY.js";import"./chunk-QTTYDT3P.js";import"./chunk-C4IFBLYB.js";import"./chunk-PX25CWH6.js";import{e as S}from"./chunk-7WCKE7GY.js";import"./chunk-BIHIR35J.js";import{a as T,g as M,h as f}from"./chunk-6WLXFV43.js";import"./chunk-DYCJPQSE.js";import"./chunk-TKVTCBLW.js";import"./chunk-FQMZSQUI.js";import"./chunk-2IDHF5MN.js";import"./chunk-OD5LGCQE.js";import{Eb as s,Fb as l,Gb as i,Oa as c,_a as D,jc as d,lb as r,ub as e,vb as n,wb as _}from"./chunk-GM25ACCR.js";import"./chunk-7CGTOI24.js";var E=()=>["/backup/new"],F=()=>["/backup/import"],u=class C{static \u0275fac=function(t){return new(t||C)};static \u0275cmp=D({type:C,selectors:[["app-add-backup"]],decls:23,vars:4,consts:()=>{let a;a=$localize`Add a new backup`;let t;t=$localize`New backup`;let p;p=$localize`Configure a new backup. Choose your destination, source data and schedule.`;let A;A=$localize` Add a new backup ${"\uFFFD#13\uFFFD"}:START_TAG_SPK_ICON:plus${"\uFFFD/#13\uFFFD"}:CLOSE_TAG_SPK_ICON:`;let g;g=$localize`Import from file`;let P;P=$localize`Import backup configuration from a file. During import you can adjust the setings.`;let m;return m=$localize` Import from file ${"\uFFFD#22\uFFFD"}:START_TAG_SPK_ICON:upload-simple${"\uFFFD/#22\uFFFD"}:CLOSE_TAG_SPK_ICON:`,[a,t,p,A,g,P,m,[1,"backup-types"],[1,"type-a"],["src","assets/images/new-backup.png"],["spk-button","",1,"raised","primary",3,"routerLink"]]},template:function(t,p){t&1&&(_(0,"app-status-bar"),e(1,"section")(2,"h2"),i(3,0),n(),e(4,"div",7)(5,"spk-card",8),_(6,"img",9),e(7,"h3"),i(8,1),n(),e(9,"p"),i(10,2),n(),e(11,"button",10),s(12,3),_(13,"spk-icon"),l(),n()(),e(14,"spk-card",8),_(15,"img",9),e(16,"h3"),i(17,4),n(),e(18,"p"),i(19,5),n(),e(20,"button",10),s(21,6),_(22,"spk-icon"),l(),n()()()()),t&2&&(c(11),r("routerLink",d(2,E)),c(9),r("routerLink",d(3,F)))},dependencies:[k,M,f,T,S],styles:["[_nghost-%COMP%]{display:block}section[_ngcontent-%COMP%]{display:flex;align-items:center;flex-direction:column;gap:2rem;padding:2rem 0}div.backup-types[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:1rem;max-width:700px}spk-card[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:1rem;padding-bottom:3rem}spk-card[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-width:300px}spk-card[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{text-wrap:balance;text-align:center;width:75%}"],changeDetection:0})};export{u as default};
package/chunk-4YRHMBJK.js DELETED
@@ -1 +0,0 @@
1
- import{a as Ke}from"./chunk-YRQ33MKD.js";import{a as he,b as se}from"./chunk-NYZVIDDD.js";import{a as pe}from"./chunk-U34D3G4S.js";import{a as be}from"./chunk-6OYKPS4F.js";import"./chunk-5242ZMFS.js";import{a as le}from"./chunk-ZVBVR6H4.js";import"./chunk-OQNO5JCJ.js";import{a as Be}from"./chunk-KEHATBLP.js";import"./chunk-RHW5QVAY.js";import"./chunk-QTTYDT3P.js";import"./chunk-C4IFBLYB.js";import"./chunk-PX25CWH6.js";import{b as Ie,e as ke}from"./chunk-7WCKE7GY.js";import"./chunk-BIHIR35J.js";import{a as z,g as _e,j as ve,k as ye,p as re,x as xe}from"./chunk-6WLXFV43.js";import{b as ae}from"./chunk-DYCJPQSE.js";import"./chunk-TKVTCBLW.js";import"./chunk-FQMZSQUI.js";import{j as w,k as oe}from"./chunk-2IDHF5MN.js";import"./chunk-OD5LGCQE.js";import{$b as S,Ab as K,Eb as N,Fb as M,Gb as _,Hb as s,Ib as d,Jb as U,Kb as y,Lb as m,Oa as o,X as R,Zb as F,_a as b,_b as x,bc as Re,ca as D,da as $,db as C,fc as De,gc as $e,hc as X,lb as h,nb as f,nc as u,oc as g,pa as ie,pc as T,qb as E,r as B,rb as I,sa as G,sb as k,tb as v,ub as i,vb as t,wb as c,xb as A,yb as P,yc as fe}from"./chunk-GM25ACCR.js";import{a as te}from"./chunk-7CGTOI24.js";function we(n,a){n&1&&c(0,"spk-progress-bar",31)}function ze(n,a){n&1&&c(0,"div",34)}function Ve(n,a){n&1&&c(0,"div",35)}function We(n,a){n&1&&c(0,"div",36)}function je(n,a){if(n&1&&F(0),n&2){let e=m().$implicit;S(" (",e.data==null?null:e.data.WarningsActualLength," warnings) ")}}function qe(n,a){if(n&1&&(i(0,"details",45)(1,"summary"),N(2,15),c(3,"spk-icon"),i(4,"div",46),c(5,"spk-icon",39),t(),M(),t(),i(6,"div",47)(7,"p"),_(8,16),u(9,"date"),t(),i(10,"p"),_(11,17),u(12,"date"),t(),i(13,"p"),_(14,18),u(15,"durationFormat"),t(),i(16,"p"),_(17,19),t(),c(18,"spk-divider"),i(19,"p"),_(20,20),t(),i(21,"p"),_(22,21),t()()(),i(23,"details",45)(24,"summary")(25,"spk-icon"),F(26,"file-archive"),t(),F(27," Compression phase "),i(28,"div",46)(29,"spk-icon",39),F(30,"caret-down"),t()()(),i(31,"div",47)(32,"p"),_(33,22),u(34,"date"),t(),i(35,"p"),_(36,23),u(37,"date"),t(),i(38,"p"),_(39,24),u(40,"durationFormat"),t(),c(41,"spk-divider"),i(42,"p"),_(43,25),u(44,"bytes"),t(),i(45,"p"),_(46,26),u(47,"bytes"),t(),i(48,"p"),_(49,27),u(50,"bytes"),t(),c(51,"spk-divider"),i(52,"p"),_(53,28),t(),i(54,"p"),_(55,29),t()()()),n&2){let e=m(2).$implicit;o(9),s(T(9,17,e.data==null||e.data.TestResults==null?null:e.data.TestResults.BeginTime,"medium")),d(8),o(3),s(T(12,20,e.data==null||e.data.TestResults==null?null:e.data.TestResults.EndTime,"medium")),d(11),o(3),s(g(15,23,e.data==null||e.data.TestResults==null?null:e.data.TestResults.Duration)),d(14),o(2),s(e.data==null||e.data.TestResults==null?null:e.data.TestResults.VerificationsActualLength),d(17),o(3),s(e.data==null||e.data.TestResults==null?null:e.data.TestResults.WarningsActualLength),d(20),o(2),s(e.data==null||e.data.TestResults==null?null:e.data.TestResults.ErrorsActualLength),d(22),o(12),s(T(34,25,e.data==null||e.data.CompactResults==null?null:e.data.CompactResults.BeginTime,"medium")),d(33),o(3),s(T(37,28,e.data==null||e.data.CompactResults==null?null:e.data.CompactResults.EndTime,"medium")),d(36),o(3),s(g(40,31,e.data==null||e.data.CompactResults==null?null:e.data.CompactResults.Duration)),d(39),o(4),s(e.data==null||e.data.CompactResults==null?null:e.data.CompactResults.DeletedFileCount)(g(44,33,e.data==null||e.data.CompactResults==null?null:e.data.CompactResults.DeletedFileSize)),d(43),o(3),s(e.data==null||e.data.CompactResults==null?null:e.data.CompactResults.DownloadedFileCount)(g(47,35,e.data==null||e.data.CompactResults==null?null:e.data.CompactResults.DownloadedFileSize)),d(46),o(3),s(e.data==null||e.data.CompactResults==null?null:e.data.CompactResults.UploadedFileCount)(g(50,37,e.data==null||e.data.CompactResults==null?null:e.data.CompactResults.UploadedFileSize)),d(49),o(3),s(e.data==null||e.data.CompactResults==null?null:e.data.CompactResults.WarningsActualLength),d(53),o(2),s(e.data==null||e.data.CompactResults==null?null:e.data.CompactResults.ErrorsActualLength),d(55)}}function Je(n,a){if(n&1&&(i(0,"code"),F(1),u(2,"json"),t()),n&2){let e=a.$implicit;o(),x(g(2,1,e))}}function He(n,a){if(n&1&&(i(0,"details",45)(1,"summary"),N(2,30),c(3,"spk-icon"),i(4,"div",46),c(5,"spk-icon",39),t(),M(),t(),i(6,"div",47),k(7,Je,3,3,"code",null,I),t()()),n&2){let e=m(2).$implicit;o(5),s(e.data.VerificationsActualLength),d(2),o(2),v(e.data.Verifications)}}function Qe(n,a){if(n&1&&(i(0,"code"),F(1),u(2,"json"),t()),n&2){let e=a.$implicit;o(),x(g(2,1,e))}}function Ye(n,a){n&1&&(i(0,"p"),F(1,"No errors"),t())}function Ze(n,a){if(n&1&&(i(0,"code"),F(1),u(2,"json"),t()),n&2){let e=a.$implicit;o(),x(g(2,1,e))}}function en(n,a){if(n&1&&(i(0,"section",40)(1,"app-toggle-card",41),A(2,42),i(3,"h3"),_(4,0),t(),P(),A(5,43),i(6,"p"),_(7,1),u(8,"date"),t(),i(9,"p"),_(10,2),u(11,"date"),t(),i(12,"p"),_(13,3),u(14,"durationFormat"),t(),P(),t(),i(15,"app-toggle-card",41),A(16,42),i(17,"h3"),_(18,4),t(),P(),A(19,43),i(20,"p"),_(21,5),u(22,"bytes"),t(),i(23,"p"),_(24,6),u(25,"bytes"),t(),i(26,"p"),_(27,7),u(28,"bytes"),t(),i(29,"p"),_(30,8),u(31,"bytes"),t(),i(32,"p"),_(33,9),t(),i(34,"p"),_(35,10),t(),i(36,"p"),_(37,11),t(),P(),t(),i(38,"div",44),c(39,"spk-divider"),C(40,qe,56,39)(41,He,9,1,"details",45),i(42,"details",45)(43,"summary"),N(44,12),c(45,"spk-icon"),i(46,"div",46),c(47,"spk-icon",39),t(),M(),t(),i(48,"div",47),k(49,Qe,3,3,"code",null,I),t()(),i(51,"details",45)(52,"summary"),N(53,13),c(54,"spk-icon"),i(55,"div",46),c(56,"spk-icon",39),t(),M(),t(),i(57,"div",47),C(58,Ye,2,0,"p"),k(59,Ze,3,3,"code",null,I),t()(),c(61,"spk-divider"),i(62,"details")(63,"summary"),N(64,14),c(65,"spk-icon"),i(66,"div",46),c(67,"spk-icon",39),t(),M(),t(),i(68,"code")(69,"button",48),F(70,"Copy"),t(),F(71),u(72,"json"),t()()()()),n&2){let e=m().$implicit;o(),h("disallowToggle",!0),o(7),s(T(8,22,e.data==null?null:e.data.BeginTime,"medium")),d(7),o(3),s(T(11,25,e.data==null?null:e.data.EndTime,"medium")),d(10),o(3),s(g(14,28,e.data==null?null:e.data.Duration)),d(13),o(),h("disallowToggle",!0),o(7),s(e.data==null?null:e.data.ExaminedFiles)(g(22,30,e.data==null?null:e.data.SizeOfExaminedFiles)),d(21),o(3),s(e.data==null?null:e.data.OpenedFiles)(g(25,32,e.data==null?null:e.data.SizeOfOpenedFiles)),d(24),o(3),s(e.data==null?null:e.data.AddedFiles)(g(28,34,e.data==null?null:e.data.SizeOfAddedFiles)),d(27),o(3),s(e.data==null?null:e.data.ModifiedFiles)(g(31,36,e.data==null?null:e.data.SizeOfModifiedFiles)),d(30),o(2),s(e.data==null?null:e.data.DeletedFiles),d(33),o(2),s(e.data==null?null:e.data.TooLargeFiles),d(35),o(2),s(e.data==null?null:e.data.FilesWithError),d(37),o(3),E((e.data==null?null:e.data.MainOperation)==="Backup"?40:-1),o(),E((e.data==null?null:e.data.MainOperation)==="Test"?41:-1),o(6),s(e.data==null?null:e.data.WarningsActualLength),d(44),o(2),v(e.data==null?null:e.data.Warnings),o(7),s(e.data==null?null:e.data.ErrorsActualLength),d(53),o(2),E((e.data==null||e.data.Errors==null?null:e.data.Errors.length)===0?58:-1),o(),v(e.data==null?null:e.data.Errors),o(12),S(" ",g(72,38,e.data)," ")}}function nn(n,a){if(n&1){let e=K();i(0,"article",32)(1,"header",33),y("click",function(){let r=D(e).$implicit,L=m();return $(L.toggleOpenEntry(r.id))}),C(2,ze,1,0,"div",34)(3,Ve,1,0,"div",35)(4,We,1,0,"div",36),i(5,"h3"),F(6),u(7,"date"),t(),i(8,"p"),F(9),C(10,je,1,1),t(),c(11,"div",37),i(12,"div",38)(13,"spk-icon",39),F(14,"caret-down"),t()()(),C(15,en,73,40,"section",40),t()}if(n&2){let e=a.$implicit,l=m();o(2),E(e.data!=null&&e.data.ErrorsActualLength&&(e.data==null?null:e.data.ErrorsActualLength)>0?2:e.data!=null&&e.data.WarningsActualLength&&(e.data==null?null:e.data.WarningsActualLength)>0?3:4),o(4),x(T(7,7,e.timestamp,"medium")),o(3),S(" ",e.data==null?null:e.data.MainOperation," "),o(),E(e.data!=null&&e.data.WarningsActualLength&&(e.data==null?null:e.data.WarningsActualLength)>0?10:-1),o(3),f("open",e.id===l.openEntry()),o(2),E(e.id===l.openEntry()?15:-1)}}var de=class n{#e=R(ae);backupId=ie.required();openEntry=G(null);pagination=G({offset:0,pagesize:100});resource=se({request:()=>te({id:this.backupId()},this.pagination()),loader:({request:a})=>this.#e.getApiV1BackupByIdLog({id:a.id,pagesize:100}).pipe(B(e=>e.map(l=>({id:l.ID,operationId:l.OperationID,timestamp:l.Timestamp*1e3,type:l.Type,data:JSON.parse(l.Message),exception:JSON.stringify(l.Exception)==="{}"?null:l.Exception}))))});toggleOpenEntry(a){if(this.openEntry()===a){this.openEntry.set(null);return}this.openEntry.set(a)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=b({type:n,selectors:[["app-general-log"]],inputs:{backupId:[1,"backupId"]},decls:3,vars:1,consts:()=>{let a;a=$localize`Time`;let e;e=$localize`Start: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let l;l=$localize`End: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let r;r=$localize`Duration: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let L;L=$localize`Source files`;let V;V=$localize`Evaluated: ${"\uFFFD0\uFFFD"}:INTERPOLATION: (${"\uFFFD1\uFFFD"}:INTERPOLATION_1:)`;let W;W=$localize`Opened: ${"\uFFFD0\uFFFD"}:INTERPOLATION: (${"\uFFFD1\uFFFD"}:INTERPOLATION_1:)`;let j;j=$localize`Added: ${"\uFFFD0\uFFFD"}:INTERPOLATION: (${"\uFFFD1\uFFFD"}:INTERPOLATION_1:)`;let q;q=$localize`Modified: ${"\uFFFD0\uFFFD"}:INTERPOLATION: (${"\uFFFD1\uFFFD"}:INTERPOLATION_1:)`;let J;J=$localize`Deleted: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let H;H=$localize`Too large: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let Q;Q=$localize`Files with error: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let O;O=$localize`${"\uFFFD#45\uFFFD"}:START_TAG_SPK_ICON:warning-circle${"[\uFFFD/#45\uFFFD|\uFFFD/#47\uFFFD]"}:CLOSE_TAG_SPK_ICON: Warnings ${"\uFFFD0\uFFFD"}:INTERPOLATION: ${"\uFFFD#46\uFFFD"}:START_TAG_DIV:${"\uFFFD#47\uFFFD"}:START_TAG_SPK_ICON_1:caret-down${"[\uFFFD/#45\uFFFD|\uFFFD/#47\uFFFD]"}:CLOSE_TAG_SPK_ICON:${"\uFFFD/#46\uFFFD"}:CLOSE_TAG_DIV:`,O=U(O);let Y;Y=$localize`${"\uFFFD#54\uFFFD"}:START_TAG_SPK_ICON:warning${"[\uFFFD/#54\uFFFD|\uFFFD/#56\uFFFD]"}:CLOSE_TAG_SPK_ICON: Errors ${"\uFFFD0\uFFFD"}:INTERPOLATION: ${"\uFFFD#55\uFFFD"}:START_TAG_DIV:${"\uFFFD#56\uFFFD"}:START_TAG_SPK_ICON_1:caret-down${"[\uFFFD/#54\uFFFD|\uFFFD/#56\uFFFD]"}:CLOSE_TAG_SPK_ICON:${"\uFFFD/#55\uFFFD"}:CLOSE_TAG_DIV:`,Y=U(Y);let Z;Z=$localize`${"\uFFFD#65\uFFFD"}:START_TAG_SPK_ICON:notepad${"[\uFFFD/#65\uFFFD|\uFFFD/#67\uFFFD]"}:CLOSE_TAG_SPK_ICON: Complete log ${"\uFFFD#66\uFFFD"}:START_TAG_DIV:${"\uFFFD#67\uFFFD"}:START_TAG_SPK_ICON_1:caret-down${"[\uFFFD/#65\uFFFD|\uFFFD/#67\uFFFD]"}:CLOSE_TAG_SPK_ICON:${"\uFFFD/#66\uFFFD"}:CLOSE_TAG_DIV:`,Z=U(Z);let ee;ee=$localize`${"\uFFFD#3\uFFFD"}:START_TAG_SPK_ICON:circle-half-tilt${"[\uFFFD/#3\uFFFD|\uFFFD/#5\uFFFD]"}:CLOSE_TAG_SPK_ICON: Test phase ${"\uFFFD#4\uFFFD"}:START_TAG_DIV:${"\uFFFD#5\uFFFD"}:START_TAG_SPK_ICON_1:caret-down${"[\uFFFD/#3\uFFFD|\uFFFD/#5\uFFFD]"}:CLOSE_TAG_SPK_ICON:${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_DIV:`,ee=U(ee);let Fe;Fe=$localize`Start: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let ge;ge=$localize`End: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let Ee;Ee=$localize`Duration: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let me;me=$localize`Verifications: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let Ce;Ce=$localize`Warnings: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let Oe;Oe=$localize`Errors: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let Le;Le=$localize`Start: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let Te;Te=$localize`End: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let Ae;Ae=$localize`Duration: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let Pe;Pe=$localize` Deleted files: ${"\uFFFD0\uFFFD"}:INTERPOLATION: (${"\uFFFD1\uFFFD"}:INTERPOLATION_1:) `;let Se;Se=$localize` Downloaded files: ${"\uFFFD0\uFFFD"}:INTERPOLATION: (${"\uFFFD1\uFFFD"}:INTERPOLATION_1:) `;let Ge;Ge=$localize` Uploaded files: ${"\uFFFD0\uFFFD"}:INTERPOLATION: (${"\uFFFD1\uFFFD"}:INTERPOLATION_1:) `;let Ne;Ne=$localize`Warnings: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let Me;Me=$localize`Errors: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let ne;return ne=$localize`${"\uFFFD#3\uFFFD"}:START_TAG_SPK_ICON:warning-circle${"[\uFFFD/#3\uFFFD|\uFFFD/#5\uFFFD]"}:CLOSE_TAG_SPK_ICON: Verifications ${"\uFFFD0\uFFFD"}:INTERPOLATION: ${"\uFFFD#4\uFFFD"}:START_TAG_DIV:${"\uFFFD#5\uFFFD"}:START_TAG_SPK_ICON_1:caret-down${"[\uFFFD/#3\uFFFD|\uFFFD/#5\uFFFD]"}:CLOSE_TAG_SPK_ICON:${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_DIV:`,ne=U(ne),[a,e,l,r,L,V,W,j,q,J,H,Q,O,Y,Z,ee,Fe,ge,Ee,me,Ce,Oe,Le,Te,Ae,Pe,Se,Ge,Ne,Me,ne,[1,"indeterminate","primary"],[1,"log-entry"],[3,"click"],[1,"status","error"],[1,"status","warn"],[1,"status"],[1,"spacer"],[1,"action"],[1,"toggle-indicator"],[1,"log-content"],[3,"disallowToggle"],["title",""],["content",""],[1,"extra-info"],["name","details"],[1,"actions"],[1,"content"],["spk-button","",1,"small"]]},template:function(e,l){e&1&&(C(0,we,1,0,"spk-progress-bar",31),k(1,nn,16,10,"article",32,I)),e&2&&(E(l.resource.isLoading()?0:-1),o(),v(l.resource.value()))},dependencies:[Ke,ye,re,_e,z,le,w,pe,oe],styles:["[_nghost-%COMP%]{display:block}.log-entry[_ngcontent-%COMP%]{display:flex;flex-direction:column;cursor:pointer}.log-entry[_ngcontent-%COMP%] header[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;padding:1rem;border-bottom:1px solid var(--base-level-40);background-color:var(--base-level-10);cursor:pointer}.log-entry[_ngcontent-%COMP%] header[_ngcontent-%COMP%]:hover{background-color:var(--base-level-20)}.log-entry[_ngcontent-%COMP%] header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{font:var(--paragraph-30);margin:0}.log-entry[_ngcontent-%COMP%] header[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{font:var(--paragraph-30);color:var(--base-level-60)}.toggle-indicator[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;height:1.25rem;transition:transform 125ms linear}.toggle-indicator.open[_ngcontent-%COMP%]{transform:rotate(180deg)}details[_ngcontent-%COMP%]{display:flex;flex-direction:column}details[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]{cursor:pointer;display:flex;align-items:center;gap:.5rem;padding:.75rem;border-radius:var(--shape-2);background-color:var(--base-level-20)}details[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]:focus{outline:none}details[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]:hover{background-color:var(--base-level-30)}details[_ngcontent-%COMP%] summary[_ngcontent-%COMP%]::marker{font-size:0}details[_ngcontent-%COMP%] summary[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%]{display:flex;justify-content:flex-end;flex:1 0;gap:.5rem;-webkit-user-select:none;user-select:none}details[_ngcontent-%COMP%] summary[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%] spk-icon[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;height:2rem;transition:transform 125ms linear}details[open][_ngcontent-%COMP%] summary[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%] spk-icon[_ngcontent-%COMP%]{transform:rotate(180deg)}details[_ngcontent-%COMP%] .content[_ngcontent-%COMP%]{padding:.75rem 1rem 0;display:flex;flex-direction:column;gap:.75rem}details[_ngcontent-%COMP%] .content[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{margin:0}details[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{margin-top:.75rem;position:relative}details[_ngcontent-%COMP%] code[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{position:absolute;top:.75rem;right:.75rem}.extra-info[_ngcontent-%COMP%]{grid-column:1/-1;display:flex;flex-direction:column;gap:1rem}.extra-info[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;margin-bottom:.75rem}.extra-info[_ngcontent-%COMP%] code[_ngcontent-%COMP%]{white-space:pre-wrap;padding:1rem;display:block;border-radius:var(--shape-2);background-color:var(--base-level-20)}.log-content[_ngcontent-%COMP%]{padding:1rem;display:grid;grid-template-columns:1fr 1fr;gap:1rem}.status[_ngcontent-%COMP%]{display:block;width:1rem;height:1rem;background-color:var(--success-500);border-radius:50%}.status.error[_ngcontent-%COMP%]{background-color:var(--error-500)}.status.warn[_ngcontent-%COMP%]{background-color:var(--warn-500)}"],changeDetection:0})};function tn(n,a){n&1&&c(0,"spk-progress-bar",0)}function on(n,a){if(n&1&&(i(0,"section",5)(1,"code"),F(2),u(3,"json"),t()()),n&2){let e=m().$implicit;o(2),x(g(3,1,e.data))}}function an(n,a){if(n&1){let e=K();i(0,"article",1)(1,"header",2),y("click",function(){let r=D(e).$implicit,L=m();return $(L.toggleOpenEntry(r.id))}),i(2,"h3"),F(3),u(4,"date"),t(),i(5,"div",3)(6,"spk-icon",4),F(7,"caret-down"),t()()(),C(8,on,4,3,"section",5),t()}if(n&2){let e=a.$implicit,l=m();o(3),Re("",T(4,6,e.timestamp,"medium"),": ",e.operation," ",e.path,""),o(3),f("open",e.id===l.openEntry()),o(2),E(e.id===l.openEntry()?8:-1)}}var ue=class n{#e=R(ae);backupId=ie.required();openEntry=G(null);pagination=G({offset:0,pagesize:100});resource=se({request:()=>te({id:this.backupId()},this.pagination()),loader:({request:a})=>this.#e.getApiV1BackupByIdRemotelog({id:a.id,pagesize:100}).pipe(B(e=>e.map((l,r)=>({id:l.ID,operationId:l.OperationID,timestamp:l.Timestamp*1e3,operation:l.Operation,path:l.Path,data:typeof l.Data=="string"?JSON.parse(l.Data):null}))))});toggleOpenEntry(a){if(this.openEntry()===a){this.openEntry.set(null);return}this.openEntry.set(a)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=b({type:n,selectors:[["app-remote-log"]],inputs:{backupId:[1,"backupId"]},decls:3,vars:1,consts:[[1,"indeterminate","primary"],[1,"log-entry"],[3,"click"],[1,"actions"],[1,"toggle-indicator"],[1,"log-content"]],template:function(e,l){e&1&&(C(0,tn,1,0,"spk-progress-bar",0),k(1,an,9,9,"article",1,I)),e&2&&(E(l.resource.isLoading()?0:-1),o(),v(l.resource.value()))},dependencies:[oe,re,z,w],styles:["[_nghost-%COMP%]{display:block}.log-entry[_ngcontent-%COMP%]{display:flex;flex-direction:column}.log-entry[_ngcontent-%COMP%] header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:1rem;border-bottom:1px solid var(--base-level-40);background-color:var(--base-level-10);cursor:pointer}.log-entry[_ngcontent-%COMP%] header[_ngcontent-%COMP%]:hover{background-color:var(--base-level-20)}.log-entry[_ngcontent-%COMP%] header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{font:var(--paragraph-30);margin:0;-webkit-user-select:none;user-select:none}.log-entry[_ngcontent-%COMP%] header[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{font:var(--paragraph-30);color:var(--base-level-60)}.toggle-indicator[_ngcontent-%COMP%]{display:inline-flex;align-items:center;justify-content:center;height:1.25rem;transition:transform 125ms linear}.toggle-indicator.open[_ngcontent-%COMP%]{transform:rotate(180deg)}.log-content[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding:1rem}code[_ngcontent-%COMP%]{white-space:pre-wrap;padding:1rem;display:block;border-radius:var(--shape-2);background-color:var(--base-level-20)}"],changeDetection:0})};function ln(n,a){if(n&1&&(F(0," - "),A(1),_(2,6),P(),F(3),u(4,"durationFormat")),n&2){m(2);let e=X(6);o(3),S(" ",g(4,1,e.Backup==null||e.Backup.Metadata==null?null:e.Backup.Metadata.LastBackupDuration)," ")}}function _n(n,a){n&1&&(A(0),_(1,7),P())}function rn(n,a){if(n&1&&(F(0),u(1,"bytes")),n&2){m(2);let e=X(6);S(" ",g(1,1,e.Backup==null||e.Backup.Metadata==null?null:e.Backup.Metadata.SourceFilesSize)," ")}}function pn(n,a){n&1&&(A(0),_(1,8),P())}function sn(n,a){if(n&1&&(F(0),u(1,"bytes")),n&2){m(2);let e=X(6);S(" ",g(1,1,e.Backup==null||e.Backup.Metadata==null?null:e.Backup.Metadata.TargetFilesSize)," ")}}function dn(n,a){n&1&&(A(0),_(1,9),P())}function un(n,a){if(n&1&&(i(0,"spk-chip",19),_(1,10),t()),n&2){m(2);let e=X(6);o(),s(e.Backup==null||e.Backup.Metadata==null?null:e.Backup.Metadata.BackupListCount),d(1)}}function cn(n,a){n&1&&(i(0,"spk-chip",20),_(1,11),t())}function Fn(n,a){if(n&1&&(i(0,"div",14)(1,"div",18)(2,"h3"),F(3),i(4,"spk-icon"),F(5,"database"),t()(),i(6,"p")(7,"span"),_(8,3),t(),F(9),u(10,"date"),C(11,ln,5,3)(12,_n,2,0,"ng-container"),t(),i(13,"p")(14,"span"),_(15,4),t(),C(16,rn,2,3)(17,pn,2,0,"ng-container"),t(),i(18,"p")(19,"span"),_(20,5),t(),C(21,sn,2,3)(22,dn,2,0,"ng-container"),t()(),C(23,un,2,1,"spk-chip",19)(24,cn,2,0,"spk-chip",20),t()),n&2){let e,l=m(),r=X(6);o(3),S(" ",(e=r.Backup==null?null:r.Backup.Name)!==null&&e!==void 0?e:l.MISSING_BACKUP_NAME," "),o(6),S(" ",T(10,6,r.Backup==null||r.Backup.Metadata==null?null:r.Backup.Metadata.LastBackupDate,"short")," "),o(2),E(!(r.Backup==null||r.Backup.Metadata==null)&&r.Backup.Metadata.LastBackupDuration?11:12),o(5),E(!(r.Backup==null||r.Backup.Metadata==null)&&r.Backup.Metadata.SourceFilesSize?16:17),o(5),E(!(r.Backup==null||r.Backup.Metadata==null)&&r.Backup.Metadata.TargetFilesSize?21:22),o(2),E(!(r.Backup==null||r.Backup.Metadata==null)&&r.Backup.Metadata.BackupListCount?23:24)}}function gn(n,a){if(n&1&&c(0,"app-general-log",17),n&2){let e=m();h("backupId",e.backupId())}}function En(n,a){if(n&1&&c(0,"app-remote-log",17),n&2){let e=m();h("backupId",e.backupId())}}var ce=class n{#e=R(Ie);#n=R(Be);MISSING_BACKUP_NAME=$localize`Backup name missing`;activeTab=G("general");backupId=he(this.#e.params.pipe(B(a=>a.id)));backup=fe(()=>{let a=this.backupId();return a?this.#n.getBackupById(a):null});static \u0275fac=function(e){return new(e||n)};static \u0275cmp=b({type:n,selectors:[["app-log"]],decls:15,vars:8,consts:()=>{let a;a=$localize`${"\uFFFD#5\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_ICON: Back `;let e;e=$localize`General`;let l;l=$localize` Destination `;let r;r=$localize`Last successful backup:`;let L;L=$localize`Source:`;let V;V=$localize`Destination:`;let W;W=$localize`took`;let j;j=$localize`N/A`;let q;q=$localize`N/A`;let J;J=$localize`N/A`;let H;H=$localize`${"\uFFFD0\uFFFD"}:INTERPOLATION: Version`;let Q;return Q=$localize`No version yet`,[a,e,l,r,L,V,W,j,q,J,H,Q,[1,"back"],["type","button","spk-button","","routerLink","/",1,"small"],[1,"backup"],[1,"primary"],["tab","",3,"click"],[3,"backupId"],[1,"text"],[1,"simple","success"],[1,"simple"]]},template:function(e,l){if(e&1){let r=K();c(0,"app-status-bar"),i(1,"section")(2,"div",12)(3,"button",13),N(4,0),c(5,"spk-icon"),M(),t()(),De(6),C(7,Fn,25,9,"div",14),i(8,"spk-tabs",15)(9,"button",16),y("click",function(){return D(r),$(l.activeTab.set("general"))}),_(10,1),t(),i(11,"button",16),y("click",function(){return D(r),$(l.activeTab.set("destination"))}),_(12,2),t()(),C(13,gn,1,1,"app-general-log",17)(14,En,1,1,"app-remote-log",17),t()}if(e&2){o(6);let r=$e(l.backup());o(),E(r?7:-1),o(2),f("active",l.activeTab()==="general"),o(2),f("active",l.activeTab()==="destination"),o(2),E(l.activeTab()==="general"?13:-1),o(),E(l.activeTab()==="destination"?14:-1)}},dependencies:[xe,de,ue,ke,le,pe,w,be,z,_e,ve],styles:["[_nghost-%COMP%]{display:block}section[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding:1rem 1.5rem;gap:1rem}spk-tabs[_ngcontent-%COMP%]{margin-bottom:1rem}.backup[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:2rem;gap:1rem;border:1px solid var(--base-level-40);border-radius:var(--shape-3);box-shadow:var(--shadow-1)}.backup[_ngcontent-%COMP%] .text[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;width:100%;max-width:40%}.backup[_ngcontent-%COMP%] .text[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem}.backup[_ngcontent-%COMP%] .text[_ngcontent-%COMP%] h3[_ngcontent-%COMP%] spk-icon[_ngcontent-%COMP%]{color:var(--base-level-60)}.backup[_ngcontent-%COMP%] .text[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{font:var(--paragraph-30);color:var(--base-level-60)}.backup[_ngcontent-%COMP%] .text[_ngcontent-%COMP%] p[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{color:var(--base-level-70)}"],changeDetection:0})};export{ce as default};
package/chunk-5242ZMFS.js DELETED
@@ -1 +0,0 @@
1
- import{a as m}from"./chunk-ZVBVR6H4.js";import{a as B}from"./chunk-OQNO5JCJ.js";import{a as z}from"./chunk-KEHATBLP.js";import{b as P,c as h}from"./chunk-DYCJPQSE.js";import{E as f,M as k,R as d,X as o,n as g,r as u,sa as n,yc as S,zc as s}from"./chunk-GM25ACCR.js";import{a as l,b as a}from"./chunk-7CGTOI24.js";var $={Backup_Begin:$localize`Starting backup …`,Backup_PreBackupVerify:$localize`Verifying backend data …`,Backup_PostBackupTest:$localize`Verifying remote data …`,Backup_PreviousBackupFinalize:$localize`Completing previous backup …`,Backup_ProcessingFiles:$localize`Processing files to backup …`,Backup_Finalize:$localize`Completing backup …`,Backup_WaitForUpload:$localize`Waiting for upload to finish …`,Backup_Delete:$localize`Deleting unwanted files …`,Backup_Compact:$localize`Compacting remote data …`,Backup_VerificationUpload:$localize`Uploading verification file …`,Backup_PostBackupVerify:$localize`Verifying backend data …`,Backup_Complete:$localize`Backup complete!`,Restore_Begin:$localize`Starting restore …`,Restore_RecreateDatabase:$localize`Rebuilding local database …`,Restore_PreRestoreVerify:$localize`Verifying remote data …`,Restore_CreateFileList:$localize`Building list of files to restore …`,Restore_CreateTargetFolders:$localize`Creating target folders …`,Restore_ScanForExistingFiles:$localize`Scanning existing files …`,Restore_ScanForLocalBlocks:$localize`Scanning for local blocks …`,Restore_PatchWithLocalBlocks:$localize`Patching files with local blocks …`,Restore_DownloadingRemoteFiles:$localize`Downloading files …`,Restore_PostRestoreVerify:$localize`Verifying restored files …`,Restore_Complete:$localize`Restore complete!`,Recreate_Running:$localize`Recreating database …`,Vacuum_Running:$localize`Vacuuming database …`,Repair_Running:$localize`Repairing database …`,Verify_Running:$localize`Verifying files …`,BugReport_Running:$localize`Creating bug report …`,Delete_Listing:$localize`Listing remote files …`,Delete_Deleting:$localize`Deleting remote files …`,"PurgeFiles_Begin,":$localize`Listing remote files for purge …`,"PurgeFiles_Process,":$localize`Purging files …`,"PurgeFiles_Compact,":$localize`Compacting remote data …`,"PurgeFiles_Complete,":$localize`Purging files complete!`,Error:$localize`Error!`},_=class r{#i=o(m);#a=o(h);#r=o(P);#t=o(z);#e=o(B);#o=n(!1);#l=n(null);statusData=this.#l.asReadonly();lastState=null;serverState=S(()=>{let e=this.#e.serverState();return e?(e.ProposedSchedule=e.ProposedSchedule?.map(i=>a(l({},i),{backup:i.Item1?this.#t.getBackupById(i.Item1):null})),this.lastState=e,e):this.lastState});serverStateEffect=s(()=>{this.#e.serverState()?.ActiveTask||this.#t.getBackups(!0)});isFetching=this.#o.asReadonly();connectionStatus=this.#e.connectionStatus;setConnectionMethod(e){this.#e.setConnectionMethod(e)}pollingInterval;#p=s(()=>{let e=this.#e.serverState();e?.ActiveTask&&this.pollingInterval===void 0?this.pollingInterval=setInterval(()=>{this.#n()},1e3):e?.ActiveTask||this.stopPollingProgress()});stopPollingProgress(){clearInterval(this.pollingInterval)}#n(){this.#o.set(!0),this.#a.getApiV1Progressstate().pipe(k(e=>{let i=e.TaskID??null;return i===null?g(e):this.#r.getApiV1TaskByTaskid({taskid:i}).pipe(u(t=>a(l({},e),{task:t??null})))}),f(()=>this.#o.set(!1))).subscribe({next:e=>{let i=e.TaskID??null,t=e.BackupID??null;i!==null&&t!==null&&(e.backup=this.#t.getBackupById(t)),this.#l.set(a(l({},e),{progress:this.#s(e),statusText:this.#c(e),actionText:e.backup?.Backup?.Name??$localize`Running task`}))},error:e=>{e.status===404&&this.stopPollingProgress()}})}#s(e){let i=-1;if(e.task&&e)if(e.Phase==="Backup_ProcessingFiles"||e.Phase==="Restore_DownloadingRemoteFiles")if(e.StillCounting)i=0;else{let t=e.CurrentFilecomplete?0:e.CurrentFileoffset,c=e.TotalFileCount-e.ProcessedFileCount,p=e.TotalFileSize-e.ProcessedFileSize-t;i=(e.ProcessedFileSize+t)/e.TotalFileSize,e.ProcessedFileCount===0?i=0:i>=.9&&(i=.9)}else e.Phase==="Backup_Finalize"||e.Phase==="Backup_WaitForUpload"?i=.9:e.Phase==="Backup_Delete"||e.Phase==="Backup_Compact"?i=.95:e.Phase==="Backup_VerificationUpload"||e.Phase==="Backup_PostBackupVerify"?i=.98:e.Phase==="Backup_Complete"||e.Phase==="Backup_WaitForUpload"?i=1:e.OverallProgress>0&&(i=e.OverallProgress);return i}#c(e){let i="Running \u2026";if(e.task&&e&&(i=e.Phase?$[e.Phase]:"Running \u2026",e.Phase==="Backup_ProcessingFiles"||e.Phase==="Restore_DownloadingRemoteFiles"))if(e.StillCounting)i=`Counting (${e.TotalFileCount} files found, ${this.#i.transform(e.TotalFileSize)})`;else{let t=e.CurrentFilecomplete?0:e.CurrentFileoffset,c=e.TotalFileCount-e.ProcessedFileCount,p=e.TotalFileSize-e.ProcessedFileSize-t,R=e.BackendSpeed<0?"":` at ${this.#i.transform(e.BackendSpeed)}/s`;i=`${e.Phase==="Restore_DownloadingRemoteFiles"?"Restoring: ":""}${c} files (${this.#i.transform(p)}) to go ${R}`}return i}static \u0275fac=function(i){return new(i||r)};static \u0275prov=d({token:r,factory:r.\u0275fac,providedIn:"root"})};export{_ as a};
package/chunk-56BIOJTU.js DELETED
@@ -1 +0,0 @@
1
- import{g as c}from"./chunk-ZJWHMCU4.js";import{m as v}from"./chunk-2EOGI5U4.js";import"./chunk-Y5T3G6PP.js";import"./chunk-4B4SNBSE.js";import"./chunk-YRQ33MKD.js";import"./chunk-UO57IKTF.js";import{a as E}from"./chunk-NYZVIDDD.js";import"./chunk-OELZQ6RK.js";import"./chunk-ARQ6YMHX.js";import{a as y}from"./chunk-6OYKPS4F.js";import"./chunk-5242ZMFS.js";import"./chunk-ZVBVR6H4.js";import"./chunk-OQNO5JCJ.js";import"./chunk-KEHATBLP.js";import"./chunk-RHW5QVAY.js";import"./chunk-QTTYDT3P.js";import"./chunk-C4IFBLYB.js";import"./chunk-PX25CWH6.js";import{b as L,c as M,e as N,f as I}from"./chunk-7WCKE7GY.js";import"./chunk-BIHIR35J.js";import{q as G,v as W}from"./chunk-6WLXFV43.js";import"./chunk-DYCJPQSE.js";import"./chunk-TKVTCBLW.js";import"./chunk-FQMZSQUI.js";import"./chunk-2IDHF5MN.js";import"./chunk-OD5LGCQE.js";import{Eb as F,Fb as r,Lb as u,Oa as R,X as T,_a as f,db as C,ic as $,jc as p,kc as l,lb as _,qb as A,ub as o,vb as i,wb as n,zc as P}from"./chunk-GM25ACCR.js";import"./chunk-7CGTOI24.js";var h=()=>["/restore-from-files/destination"],K=()=>["/restore-from-files/encryption"],X=()=>["/restore-from-files/select-files"],w=()=>["/restore-from-files/options"],b=e=>["/restore-draft",e],x=e=>["/restore-draft",e,"options"],z=e=>["/restore",e],B=e=>["/restore",e,"options"];function j(e,a){e&1&&(o(0,"div",8),F(1,0),n(2,"spk-radio"),r(),i(),o(3,"div",8),F(4,1),n(5,"spk-radio"),r(),i(),o(6,"div",8),F(7,2),n(8,"spk-radio"),r(),i(),o(9,"div",8),F(10,3),n(11,"spk-radio"),r(),i()),e&2&&(_("routerLink",p(4,h)),R(3),_("routerLink",p(5,K)),R(3),_("routerLink",p(6,X)),R(3),_("routerLink",p(7,w)))}function U(e,a){if(e&1&&(o(0,"div",8),F(1,4),n(2,"spk-radio"),r(),i(),o(3,"div",8),F(4,5),n(5,"spk-radio"),r(),i()),e&2){let t=u();_("routerLink",l(2,b,t.backupId())),R(3),_("routerLink",l(4,x,t.backupId()))}}function q(e,a){if(e&1&&(o(0,"div",8),F(1,6),n(2,"spk-radio"),r(),i(),o(3,"div",8),F(4,7),n(5,"spk-radio"),r(),i()),e&2){let t=u();_("routerLink",l(2,z,t.backupId())),R(3),_("routerLink",l(4,B,t.backupId()))}}var O=class e{#t=T(L);#e=T(c);#i=E(this.#t.params);#o=E(this.#t.url);backupId=this.#e.backupId;isDraft=this.#e.isDraft;isFileRestore=this.#e.isFileRestore;paramsChanged=P(()=>{let a=this.#i()?.id,t=!!this.#o()?.find(d=>d.path==="restore-draft"),s=!!this.#o()?.find(d=>d.path==="restore-from-files");this.#e.init(a,s,s||t)});static \u0275fac=function(t){return new(t||e)};static \u0275cmp=f({type:e,selectors:[["app-restore-flow"]],features:[$([c,v])],decls:7,vars:1,consts:()=>{let a;a=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SPK_RADIO:${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SPK_RADIO: Destination `;let t;t=$localize`${"\uFFFD#5\uFFFD"}:START_TAG_SPK_RADIO:${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_RADIO: Encryption `;let s;s=$localize`${"\uFFFD#8\uFFFD"}:START_TAG_SPK_RADIO:${"\uFFFD/#8\uFFFD"}:CLOSE_TAG_SPK_RADIO: Select files `;let d;d=$localize`${"\uFFFD#11\uFFFD"}:START_TAG_SPK_RADIO:${"\uFFFD/#11\uFFFD"}:CLOSE_TAG_SPK_RADIO: Options `;let g;g=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SPK_RADIO:${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SPK_RADIO: Select files `;let k;k=$localize`${"\uFFFD#5\uFFFD"}:START_TAG_SPK_RADIO:${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_RADIO: Options `;let D;D=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SPK_RADIO:${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SPK_RADIO: Select files `;let m;return m=$localize`${"\uFFFD#5\uFFFD"}:START_TAG_SPK_RADIO:${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_RADIO: Options `,[a,t,s,d,g,k,D,m,["step","","routerLinkActive","active",3,"routerLink"]]},template:function(t,s){t&1&&(n(0,"app-status-bar"),o(1,"spk-stepper"),C(2,j,12,8)(3,U,6,6)(4,q,6,6),i(),o(5,"section"),n(6,"router-outlet"),i()),t&2&&(R(2),A(s.isFileRestore()?2:s.isDraft()?3:4))},dependencies:[W,G,y,M,N,I],styles:["[_nghost-%COMP%]{display:block}spk-stepper[_ngcontent-%COMP%]{max-width:31.25rem;margin:2.5rem auto}section[_ngcontent-%COMP%]{max-width:31.25rem;margin:0 auto 2.5rem}"],changeDetection:0})};export{O as default};
package/chunk-5BO226DZ.js DELETED
@@ -1 +0,0 @@
1
- import{a as $}from"./chunk-NYZVIDDD.js";import{a as R}from"./chunk-6OYKPS4F.js";import"./chunk-5242ZMFS.js";import"./chunk-ZVBVR6H4.js";import"./chunk-OQNO5JCJ.js";import"./chunk-KEHATBLP.js";import"./chunk-RHW5QVAY.js";import"./chunk-QTTYDT3P.js";import"./chunk-C4IFBLYB.js";import"./chunk-PX25CWH6.js";import{b as A,e as N}from"./chunk-7WCKE7GY.js";import"./chunk-BIHIR35J.js";import{a as B,g as O}from"./chunk-6WLXFV43.js";import{b as k}from"./chunk-DYCJPQSE.js";import"./chunk-TKVTCBLW.js";import"./chunk-FQMZSQUI.js";import"./chunk-2IDHF5MN.js";import"./chunk-OD5LGCQE.js";import{$b as L,Eb as _,Fb as c,Gb as u,Jb as T,Kb as I,Oa as i,X as m,Zb as E,_a as C,db as p,qb as s,rb as f,sa as l,sb as S,tb as g,ub as F,vb as a,wb as r,yc as M}from"./chunk-GM25ACCR.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(k);#e=m(A);#n=$(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=T(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),g(o.messageLog()))},dependencies:[R,B,O,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:var(--grey-800);color:var(--grey-100);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};
package/chunk-5EOQSHY6.js DELETED
@@ -1 +0,0 @@
1
- import{c as a,d as b}from"./chunk-ZJWHMCU4.js";import"./chunk-4B4SNBSE.js";import"./chunk-YRQ33MKD.js";import"./chunk-NYZVIDDD.js";import"./chunk-OELZQ6RK.js";import"./chunk-5242ZMFS.js";import"./chunk-ZVBVR6H4.js";import"./chunk-OQNO5JCJ.js";import"./chunk-KEHATBLP.js";import"./chunk-RHW5QVAY.js";import"./chunk-QTTYDT3P.js";import"./chunk-C4IFBLYB.js";import"./chunk-PX25CWH6.js";import"./chunk-7WCKE7GY.js";import"./chunk-BIHIR35J.js";import"./chunk-6WLXFV43.js";import"./chunk-DYCJPQSE.js";import"./chunk-TKVTCBLW.js";import"./chunk-2IDHF5MN.js";import"./chunk-GM25ACCR.js";import"./chunk-7CGTOI24.js";export{a as createEncryptionForm,b as default};