@duplicati/ngclient 0.0.20 → 0.0.21

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.
@@ -1 +1 @@
1
- import{l as a,m as b}from"./chunk-T35OO33H.js";import"./chunk-MHN6DOJL.js";import"./chunk-NN4VOZJP.js";import"./chunk-DNHLTHLR.js";import"./chunk-ZHM55NRD.js";import"./chunk-4I2FZHFA.js";import"./chunk-ICX4A35N.js";import"./chunk-3ZII4VBA.js";import"./chunk-APGFOGYB.js";import"./chunk-XG5WW7WW.js";import"./chunk-5P5MCIGV.js";import"./chunk-NUWA7AOR.js";import"./chunk-7CGTOI24.js";export{a as createSourceDataForm,b as default};
1
+ import{l as a,m as b}from"./chunk-S4TH7BUT.js";import"./chunk-KOIUHATU.js";import"./chunk-NN4VOZJP.js";import"./chunk-DNHLTHLR.js";import"./chunk-ZHM55NRD.js";import"./chunk-4I2FZHFA.js";import"./chunk-ICX4A35N.js";import"./chunk-3ZII4VBA.js";import"./chunk-APGFOGYB.js";import"./chunk-XG5WW7WW.js";import"./chunk-5P5MCIGV.js";import"./chunk-NUWA7AOR.js";import"./chunk-7CGTOI24.js";export{a as createSourceDataForm,b as default};
@@ -1 +1 @@
1
- import{d as a,e as b,f as c}from"./chunk-T35OO33H.js";import"./chunk-MHN6DOJL.js";import"./chunk-NN4VOZJP.js";import"./chunk-DNHLTHLR.js";import"./chunk-ZHM55NRD.js";import"./chunk-4I2FZHFA.js";import"./chunk-ICX4A35N.js";import"./chunk-3ZII4VBA.js";import"./chunk-APGFOGYB.js";import"./chunk-XG5WW7WW.js";import"./chunk-5P5MCIGV.js";import"./chunk-NUWA7AOR.js";import"./chunk-7CGTOI24.js";export{b as NONE_OPTION,a as createGeneralForm,c as default};
1
+ import{d as a,e as b,f as c}from"./chunk-S4TH7BUT.js";import"./chunk-KOIUHATU.js";import"./chunk-NN4VOZJP.js";import"./chunk-DNHLTHLR.js";import"./chunk-ZHM55NRD.js";import"./chunk-4I2FZHFA.js";import"./chunk-ICX4A35N.js";import"./chunk-3ZII4VBA.js";import"./chunk-APGFOGYB.js";import"./chunk-XG5WW7WW.js";import"./chunk-5P5MCIGV.js";import"./chunk-NUWA7AOR.js";import"./chunk-7CGTOI24.js";export{b as NONE_OPTION,a as createGeneralForm,c as default};
@@ -1 +1 @@
1
- import{j as a,k as b}from"./chunk-T35OO33H.js";import"./chunk-MHN6DOJL.js";import"./chunk-NN4VOZJP.js";import"./chunk-DNHLTHLR.js";import"./chunk-ZHM55NRD.js";import"./chunk-4I2FZHFA.js";import"./chunk-ICX4A35N.js";import"./chunk-3ZII4VBA.js";import"./chunk-APGFOGYB.js";import"./chunk-XG5WW7WW.js";import"./chunk-5P5MCIGV.js";import"./chunk-NUWA7AOR.js";import"./chunk-7CGTOI24.js";export{a as createScheduleForm,b as default};
1
+ import{j as a,k as b}from"./chunk-S4TH7BUT.js";import"./chunk-KOIUHATU.js";import"./chunk-NN4VOZJP.js";import"./chunk-DNHLTHLR.js";import"./chunk-ZHM55NRD.js";import"./chunk-4I2FZHFA.js";import"./chunk-ICX4A35N.js";import"./chunk-3ZII4VBA.js";import"./chunk-APGFOGYB.js";import"./chunk-XG5WW7WW.js";import"./chunk-5P5MCIGV.js";import"./chunk-NUWA7AOR.js";import"./chunk-7CGTOI24.js";export{a as createScheduleForm,b as default};
@@ -1 +1 @@
1
- import{a,b}from"./chunk-OPT45L3G.js";import"./chunk-6FMOBX4W.js";import"./chunk-MHN6DOJL.js";import"./chunk-ZHM55NRD.js";import"./chunk-4I2FZHFA.js";import"./chunk-3ZII4VBA.js";import"./chunk-APGFOGYB.js";import"./chunk-XG5WW7WW.js";import"./chunk-5P5MCIGV.js";import"./chunk-NUWA7AOR.js";import"./chunk-7CGTOI24.js";export{a as createRestoreOptionsForm,b as default};
1
+ import{a,b}from"./chunk-OLR3NLBF.js";import"./chunk-6FMOBX4W.js";import"./chunk-KOIUHATU.js";import"./chunk-ZHM55NRD.js";import"./chunk-4I2FZHFA.js";import"./chunk-3ZII4VBA.js";import"./chunk-APGFOGYB.js";import"./chunk-XG5WW7WW.js";import"./chunk-5P5MCIGV.js";import"./chunk-NUWA7AOR.js";import"./chunk-7CGTOI24.js";export{a as createRestoreOptionsForm,b as default};
@@ -1 +1 @@
1
- import{e as S}from"./chunk-OPT45L3G.js";import"./chunk-6FMOBX4W.js";import"./chunk-MHN6DOJL.js";import"./chunk-ZHM55NRD.js";import"./chunk-4I2FZHFA.js";import{m as C,q as v}from"./chunk-3ZII4VBA.js";import{a as f,b as k,d as w,e as g}from"./chunk-APGFOGYB.js";import"./chunk-XG5WW7WW.js";import"./chunk-5P5MCIGV.js";import{Eb as p,Ma as s,Nb as d,Pb as l,V as r,X as u,ab as a,jb as o,kb as n,lb as i}from"./chunk-NUWA7AOR.js";import"./chunk-7CGTOI24.js";var F=e=>["/restore-flow",e,"select-files"],R=e=>["/restore-flow",e,"options"],c=class e{#t=r(f);#e=r(S);backupId=this.#e.backupId;ngOnInit(){this.#e.init(this.#t.snapshot.params.id)}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=u({type:e,selectors:[["app-restore-flow"]],standalone:!0,features:[d],decls:9,vars:6,consts:[["step","","routerLinkActive","active",3,"routerLink"]],template:function(t,m){t&1&&(o(0,"spk-stepper")(1,"div",0),i(2,"spk-radio"),p(3," Select files "),n(),o(4,"div",0),i(5,"spk-radio"),p(6," Options "),n()(),o(7,"section"),i(8,"router-outlet"),n()),t&2&&(s(),a("routerLink",l(2,F,m.backupId())),s(3),a("routerLink",l(4,R,m.backupId())))},dependencies:[v,C,k,w,g],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{c as default};
1
+ import{e as S}from"./chunk-OLR3NLBF.js";import"./chunk-6FMOBX4W.js";import"./chunk-KOIUHATU.js";import"./chunk-ZHM55NRD.js";import"./chunk-4I2FZHFA.js";import{m as C,q as v}from"./chunk-3ZII4VBA.js";import{a as f,b as k,d as w,e as g}from"./chunk-APGFOGYB.js";import"./chunk-XG5WW7WW.js";import"./chunk-5P5MCIGV.js";import{Eb as p,Ma as s,Nb as d,Pb as l,V as r,X as u,ab as a,jb as o,kb as n,lb as i}from"./chunk-NUWA7AOR.js";import"./chunk-7CGTOI24.js";var F=e=>["/restore-flow",e,"select-files"],R=e=>["/restore-flow",e,"options"],c=class e{#t=r(f);#e=r(S);backupId=this.#e.backupId;ngOnInit(){this.#e.init(this.#t.snapshot.params.id)}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=u({type:e,selectors:[["app-restore-flow"]],standalone:!0,features:[d],decls:9,vars:6,consts:[["step","","routerLinkActive","active",3,"routerLink"]],template:function(t,m){t&1&&(o(0,"spk-stepper")(1,"div",0),i(2,"spk-radio"),p(3," Select files "),n(),o(4,"div",0),i(5,"spk-radio"),p(6," Options "),n()(),o(7,"section"),i(8,"router-outlet"),n()),t&2&&(s(),a("routerLink",l(2,F,m.backupId())),s(3),a("routerLink",l(4,R,m.backupId())))},dependencies:[v,C,k,w,g],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{c as default};
@@ -1 +1 @@
1
- import{p as re}from"./chunk-4I2FZHFA.js";import{a as I,d as ae,i as ce,j as de,r as pe}from"./chunk-3ZII4VBA.js";import{a as se}from"./chunk-5P5MCIGV.js";import{Bb as K,Cb as ne,D as W,Db as Q,Eb as h,Gb as U,Ma as d,Nb as B,Pb as D,Qb as ie,Sa as T,Ta as H,V as Y,Va as Z,Vb as oe,X as O,_a as g,ab as $,bb as z,cb as f,dc as V,fa as w,fb as b,fc as E,ga as k,hb as ee,ib as te,jb as r,kb as a,ob as q,oc as le,pb as N,qa as R,qb as P,ra as _,rb as p,sb as A,tb as y,v as X}from"./chunk-NUWA7AOR.js";import{a as C,b as v}from"./chunk-7CGTOI24.js";var Ce=["treeContainer"],ve=["formRef"],Te=[[["label"]],[["label"]],[["input"]]],be=["label","label","input"],Pe=(i,e)=>e.id,xe=i=>({children:i,level:0}),ue=i=>({$implicit:i}),ye=(i,e)=>({children:i,level:e});function Se(i,e){if(i&1){let t=N();r(0,"spk-button-group")(1,"button",8),P("click",function(){w(t);let o=p();return k(o.pathDiscoveryMethod.set("browse"))}),h(2," Browser path "),a(),r(3,"button",8),P("click",function(){w(t);let o=p();return k(o.pathDiscoveryMethod.set("path"))}),h(4," Manually type path "),a()()}if(i&2){let t=p();d(),f("active",t.pathDiscoveryMethod()==="browse"),d(2),f("active",t.pathDiscoveryMethod()==="path")}}function we(i,e){i&1&&(r(0,"spk-icon",11),h(1,"folder-open"),a())}function ke(i,e){i&1&&(r(0,"spk-icon"),h(1,"file"),a())}function Fe(i,e){i&1&&(r(0,"spk-icon",11),h(1,"folder"),a())}function Me(i,e){if(i&1&&g(0,we,2,0,"spk-icon",11)(1,ke,2,0,"spk-icon")(2,Fe,2,0,"spk-icon",11),i&2){let t=p(2).$implicit;b(t.children.length?0:t.cls==="file"?1:2)}}function Ee(i,e){i&1&&(r(0,"spk-icon",11),h(1,"desktop-tower"),a())}function Oe(i,e){i&1&&q(0)}function Ne(i,e){if(i&1&&g(0,Oe,1,0,"ng-container",6),i&2){let t=p(2).$implicit,n=p().$implicit;p();let o=Q(6);$("ngTemplateOutlet",o)("ngTemplateOutletContext",D(5,ue,ie(2,ye,t.children,n.level+1)))}}function Ae(i,e){if(i&1){let t=N();r(0,"div",9,3),P("click",function(o){w(t);let s=p().$implicit,l=p(2);return k(s.id!=="/"&&l.toggleNode(o,s.id,s))}),r(2,"div",10),g(3,Me,3,1)(4,Ee,2,0,"spk-icon",11),a(),r(5,"div",12),P("click",function(o){w(t);let s=p().$implicit,l=p(2);return k(s.id!=="/"&&l.toggleSelectedNode(o,s))}),h(6),a()(),g(7,Ne,1,7,"ng-container")}if(i&2){let t=p().$implicit;f("active",t.isSelected)("open",t.children.length)("usually-hidden",t.hidden),d(3),b(t.id!=="/"?3:4),d(3),U(" ",t.text," "),d(),b(t.children.length>0?7:-1)}}function Be(i,e){if(i&1&&g(0,Ae,8,9),i&2){let t=e.$implicit,n=p(2);b(t.hidden&&n.showHiddenFiles()||!t.hidden?0:-1)}}function De(i,e){if(i&1&&(r(0,"spk-list"),ee(1,Be,1,1,null,null,Pe),a()),i&2){let t=e.$implicit;z("padding-left",t.level*.5,"rem"),d(),te(t.children)}}function Ve(i,e){i&1&&q(0)}var G=class i{#t=Y(se);multiSelect=_(!1);disabled=_(!1);showFiles=_(!1);startingPath=_(null);rootPath=_(void 0);backupSettings=_(null);includes=R();excludes=R();treeContainerRef=H("treeContainer");formRef=H("formRef");pathDiscoveryMethod=T("browse");isLoading=T(!1);showHiddenFiles=T(!1);currentPath=T("/");#e=T(null);treeSearchQuery=T("");treeNodes=T([]);isByBackupSettings=V(()=>this.rootPath()&&this.backupSettings()?.id&&this.backupSettings()?.time);searchableTreeNodes=V(()=>{let e=this.treeSearchQuery();return e?this.treeNodes().filter(t=>t.text?.toLowerCase().includes(e.toLowerCase())):this.treeNodes()});treeStructure=V(()=>{let e=this.searchableTreeNodes(),t=new Map,n=this.rootPath(),o=n?{id:n,resolvedpath:n,text:n?.replaceAll("/",""),parentPath:"",children:[],isSelected:!1,cls:"folder"}:{id:"/",resolvedpath:"/",text:"Computer",parentPath:"",children:[],isSelected:!1};t.set("/",o);for(let s of e){let u=s.id.replace(n??"","").split("/").filter(Boolean),c="",x=o;for(let m of u){if(c+="/"+m,!t.has(c)){let F={id:s.id,isSelected:s.isSelected,parentPath:c,resolvedpath:s.id?.startsWith("%")?s.resolvedpath+"/":c,hidden:s.hidden,text:s.text,cls:s.cls,children:[]};t.set(c,F),x.children.push(F)}x=t.get(c)}}return[o]});pathDiscoveryMethodEffect=E(()=>{let e=this.pathDiscoveryMethod(),t=this.#e();if(e==="browse"&&t)if(this.multiSelect()){let n=t.value.split("\0");this.treeNodes.update(o=>o.map(s=>v(C({},s),{isSelected:typeof s.id=="string"&&n.includes(s.id)})))}else this.treeNodes.update(n=>n.map(o=>v(C({},o),{isSelected:o.id===t.value})))},{allowSignalWrites:!0});#a(){let e=this.treeContainerRef()?.nativeElement.querySelectorAll(".active");e&&e.length>0&&e[0].scrollIntoView({behavior:"smooth",block:"center"})}currentPathEffect=E(()=>{let e=this.#e();e&&(e.value=this.currentPath(),e.dispatchEvent(new Event("input")))},{allowSignalWrites:!0});selectedPathsEffect=E(()=>{if(this.multiSelect()){let e=this.treeNodes().filter(l=>l.isSelected),t=this.treeNodes().filter(l=>!l.isSelected&&e.some(u=>l.id?.startsWith(u.id))),n=e.filter(l=>!e.some(u=>l.id!==u.id&&l.id?.startsWith(u.id))).map(l=>l.id),o=t.filter(l=>!t.some(u=>l.id!==u.id&&l.id?.startsWith(u.id))).map(l=>`-${l.id}`);this.excludes.emit(o);let s=[...n,...o];this.currentPath.set(s.join("\0"))}else{let e=this.treeNodes().find(n=>n.isSelected),t=e?.resolvedpath;this.currentPath.set(e?.id??"")}},{allowSignalWrites:!0});inputValueChangeAbortController=null;inputRefEffect=E(()=>{let e=this.formRef()?.nativeElement?.querySelector("input");e&&(this.#o(e),this.inputValueChangeAbortController&&this.inputValueChangeAbortController.abort(),this.inputValueChangeAbortController=new AbortController,e.addEventListener("inputValueChanged",t=>{this.currentPath.set(t.detail.value)},{signal:this.inputValueChangeAbortController.signal}),this.#e.set(e),e.autocomplete="off")},{allowSignalWrites:!0});ngOnInit(){let e=this.startingPath();e?(this.currentPath.set(e),this.#r(e)):this.#i(null,this.rootPath())}toggleSelectedNode(e,t){e.stopPropagation(),this.multiSelect()?this.treeNodes.update(n=>n.map(o=>o.id?.startsWith(t.id)?v(C({},o),{isSelected:!t.isSelected}):o)):this.treeNodes.update(n=>n.map(o=>o.id===t.id?v(C({},o),{isSelected:!t.isSelected}):v(C({},o),{isSelected:!1})))}toggleNode(e,t,n=null){e.stopPropagation(),n?.children.length?this.treeNodes.update(o=>o.filter(s=>!s.id?.startsWith(n.id)||s.id===n.id)):this.#i(n,t)}#o(e){return Object.defineProperty(e,"value",{configurable:!0,get(){return Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value").get.call(this)},set(t){return Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value").set.call(this,t),this.dispatchEvent(new CustomEvent("inputValueChanged",{bubbles:!0,cancelable:!0,detail:{value:t}})),t}}),e}#l(e){return this.#t.postApiV1Filesystem({showHidden:!0,requestBody:{path:e},onlyFolders:!this.showFiles()})}#s(e){let t=this.backupSettings(),n={id:t.id,time:t.time,prefixOnly:!1,folderContents:!0};return e&&(n.filter="@"+e),this.#t.getApiV1BackupByIdFiles(n)}#n(e){return this.isByBackupSettings()?this.#s(e):this.#l(e)}#r(e){let t=e.split("\0").filter(l=>l.startsWith("-")).map(l=>l.slice(1,-1)),n=e.split("\0").filter(l=>!l.startsWith("-")).filter(Boolean),o=n.map(l=>l.split("/").filter(Boolean)),s=[this.rootPath()??"/"];o.forEach(l=>{l.forEach((u,c)=>{let x=l.slice(0,c+1).join("/"),m=x.startsWith("%")?x:"/"+x;s.includes(m)||s.push(m)})}),this.isLoading.set(!0),X([...s.map(l=>this.#n(l))]).pipe(W(()=>this.isLoading.set(!1))).subscribe({next:l=>{this.treeNodes.update(u=>{let c=l.flatMap(m=>m.map(F=>{let M=F.id,j=M&&M.split("/").filter(Boolean).slice(0,-1).join("/"),L="/"+(M&&M.split("/").filter(Boolean).join("/")),he=n.findIndex(S=>this.multiSelect()?L.startsWith(S):L===S)>-1,me=n.findIndex(S=>S===M)>-1,ge=t.findIndex(S=>S===L)>-1;return v(C({},F),{parentPath:j.startsWith("%")?j:"/"+j,isSelected:he&&!ge||me})}));return[...new Map([...u,...c].map(m=>[m.resolvedpath??m.id,m])).values()]})}})}#i(e=null,t="/"){this.isLoading.set(!0),this.#n(t).pipe(W(()=>this.isLoading.set(!1))).subscribe({next:n=>{let o=this.isByBackupSettings()?n.Files.map(s=>({text:s.Path.split("/").filter(l=>l!=="").pop(),id:s.Path,cls:s.Path.endsWith("/")?"folder":"file",leaf:e!==null,resolvedpath:s.Path,hidden:!1})):n;this.treeNodes.update(s=>{let l=o.map(c=>v(C({},c),{parentPath:t,isSelected:(this.multiSelect()&&e?.isSelected)??!1}));return[...new Map([...s,...l].map(c=>[c.resolvedpath??c.id,c])).values()]})}})}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=O({type:i,selectors:[["app-file-tree"]],viewQuery:function(t,n){t&1&&(K(n.treeContainerRef,Ce,5),K(n.formRef,ve,5)),t&2&&ne(2)},hostVars:2,hostBindings:function(t,n){t&2&&f("disabled",n.disabled())},inputs:{multiSelect:[1,"multiSelect"],disabled:[1,"disabled"],showFiles:[1,"showFiles"],startingPath:[1,"startingPath"],rootPath:[1,"rootPath"],backupSettings:[1,"backupSettings"]},outputs:{includes:"includes",excludes:"excludes"},standalone:!0,features:[B],ngContentSelectors:be,decls:15,vars:14,consts:[["treeContainer",""],["recursiveTree",""],["formRef",""],["treeNode",""],[1,"section"],[1,"browse-files"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"primary","raised","browse-files-toggle",3,"click"],["type","button",3,"click"],["action","",3,"click"],[1,"icon"],[1,"spk-primary"],[1,"text",3,"click"]],template:function(t,n){if(t&1){let o=N();A(Te),g(0,Se,5,4,"spk-button-group"),r(1,"div",4),y(2,0,["ngProjectAs","label",5,["label"]]),r(3,"div",5,0),g(5,De,3,2,"ng-template",null,1,oe)(7,Ve,1,0,"ng-container",6),a(),r(8,"spk-toggle",7),P("click",function(){return w(o),k(n.showHiddenFiles.set(!n.showHiddenFiles()))}),h(9),a()(),r(10,"div",null,2)(12,"spk-form-field"),y(13,1,["ngProjectAs","label",5,["label"]]),y(14,2,["ngProjectAs","input",5,["input"]]),a()()}if(t&2){let o=Q(6);b(n.multiSelect()?-1:0),d(),f("hidden",n.pathDiscoveryMethod()!=="browse"),d(6),$("ngTemplateOutlet",o)("ngTemplateOutletContext",D(12,ue,D(10,xe,n.treeStructure()))),d(),f("active",n.showHiddenFiles()),d(),U(" Show hidden ",n.showFiles()?"files":"folders"," "),d(3),f("hidden",n.pathDiscoveryMethod()!=="path")}},dependencies:[ae,pe,I,ce,de,le,re],styles:['[_nghost-%COMP%]{display:flex;flex-direction:column;gap:1rem}.disabled[_nghost-%COMP%]{opacity:.5;-webkit-user-select:none;user-select:none;pointer-events:none;position:relative}.disabled[_nghost-%COMP%]:before{content:"";position:absolute;inset:0;background:transparent}.section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.browse-files[_ngcontent-%COMP%]{display:flex;gap:.5rem;padding:.5rem 1rem;height:12.5rem;border:1px solid var(--base-level-40);border-radius:var(--shape-3);overflow:auto;resize:vertical}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%]{--list-active-bg: var(--base-level-30);gap:0;padding:0;height:min-content;min-width:min-content}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action][_ngcontent-%COMP%]{padding:0;gap:.25rem}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action].usually-hidden[_ngcontent-%COMP%]{opacity:.6}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action][_ngcontent-%COMP%] .text[_ngcontent-%COMP%]{flex:1 0;height:100%;width:max-content;display:flex;align-items:center}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action][_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;cursor:pointer}.browse-files-toggle[_ngcontent-%COMP%]{color:var(--base-level-60R)}.hidden[_ngcontent-%COMP%]{display:none}'],changeDetection:0})};var Ie=[[["","title",""]],"*"],je=["[title]","*"];function Le(i,e){i&1&&h(0,"Title")}function We(i,e){i&1&&(r(0,"spk-icon"),h(1,"caret-down"),a())}var J=class i{isActive=Z(!1);disallowToggle=_(!1);ngOnInit(){this.disallowToggle()&&this.isActive.set(!0)}toggle(){this.isActive.set(!this.isActive())}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=O({type:i,selectors:[["app-toggle-card"]],hostVars:2,hostBindings:function(t,n){t&2&&f("active",n.isActive())},inputs:{isActive:[1,"isActive"],disallowToggle:[1,"disallowToggle"]},outputs:{isActive:"isActiveChange"},standalone:!0,features:[B],ngContentSelectors:je,decls:6,vars:1,consts:[[3,"click"],[1,"content"]],template:function(t,n){t&1&&(A(Ie),r(0,"h3",0),P("click",function(){return n.disallowToggle()||n.toggle()}),y(1,0,null,Le,1,0),g(3,We,2,0,"spk-icon"),a(),r(4,"div",1),y(5,1),a()),t&2&&(d(3),b(n.disallowToggle()?-1:3))},dependencies:[I],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;border-radius:var(--shape-3);background-color:var(--base-level-20)}.active[_nghost-%COMP%] .content[_ngcontent-%COMP%]{max-height:1000px;transition:max-height 1s linear;padding:0 1rem 1rem}.active[_nghost-%COMP%] spk-icon[_ngcontent-%COMP%]{transform:rotate(180deg)}[_nghost-%COMP%] h3[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;font:var(--paragraph-10);padding:1rem;cursor:pointer;-webkit-user-select:none;user-select:none}[_nghost-%COMP%] spk-icon[_ngcontent-%COMP%]{transform:rotate(0);transform-origin:center;transition:transform .2s ease}.content[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;padding:0 1rem;overflow:hidden;max-height:0;transition:max-height .25s linear,padding .25s linear}"],changeDetection:0})};export{G as a,J as b};
1
+ import{p as re}from"./chunk-4I2FZHFA.js";import{a as I,d as ae,i as ce,j as de,r as pe}from"./chunk-3ZII4VBA.js";import{a as se}from"./chunk-5P5MCIGV.js";import{Bb as K,Cb as ne,D as W,Db as Q,Eb as h,Gb as U,Ma as d,Nb as B,Pb as D,Qb as ie,Sa as b,Ta as H,V as Y,Va as Z,Vb as oe,X as E,_a as m,ab as $,bb as z,cb as f,dc as V,fa as w,fb as T,fc as O,ga as k,hb as ee,ib as te,jb as r,kb as a,ob as q,oc as le,pb as N,qa as R,qb as P,ra as _,rb as p,sb as A,tb as y,v as X}from"./chunk-NUWA7AOR.js";import{a as C,b as v}from"./chunk-7CGTOI24.js";var Ce=["treeContainer"],ve=["formRef"],be=[[["label"]],[["label"]],[["input"]]],Te=["label","label","input"],Pe=(i,e)=>e.id,xe=i=>({children:i,level:0}),ue=i=>({$implicit:i}),ye=(i,e)=>({children:i,level:e});function Se(i,e){if(i&1){let t=N();r(0,"spk-button-group")(1,"button",8),P("click",function(){w(t);let o=p();return k(o.pathDiscoveryMethod.set("browse"))}),h(2," Browser path "),a(),r(3,"button",8),P("click",function(){w(t);let o=p();return k(o.pathDiscoveryMethod.set("path"))}),h(4," Manually type path "),a()()}if(i&2){let t=p();d(),f("active",t.pathDiscoveryMethod()==="browse"),d(2),f("active",t.pathDiscoveryMethod()==="path")}}function we(i,e){i&1&&(r(0,"spk-icon",11),h(1,"folder-open"),a())}function ke(i,e){i&1&&(r(0,"spk-icon"),h(1,"file"),a())}function Fe(i,e){i&1&&(r(0,"spk-icon",11),h(1,"folder"),a())}function Me(i,e){if(i&1&&m(0,we,2,0,"spk-icon",11)(1,ke,2,0,"spk-icon")(2,Fe,2,0,"spk-icon",11),i&2){let t=p(2).$implicit;T(t.children.length?0:t.cls==="file"?1:2)}}function Oe(i,e){i&1&&(r(0,"spk-icon",11),h(1,"desktop-tower"),a())}function Ee(i,e){i&1&&q(0)}function Ne(i,e){if(i&1&&m(0,Ee,1,0,"ng-container",6),i&2){let t=p(2).$implicit,n=p().$implicit;p();let o=Q(6);$("ngTemplateOutlet",o)("ngTemplateOutletContext",D(5,ue,ie(2,ye,t.children,n.level+1)))}}function Ae(i,e){if(i&1){let t=N();r(0,"div",9,3),P("click",function(o){w(t);let s=p().$implicit,l=p(2);return k(s.id!=="/"&&l.toggleNode(o,s.id,s))}),r(2,"div",10),m(3,Me,3,1)(4,Oe,2,0,"spk-icon",11),a(),r(5,"div",12),P("click",function(o){w(t);let s=p().$implicit,l=p(2);return k(s.id!=="/"&&l.toggleSelectedNode(o,s))}),h(6),a()(),m(7,Ne,1,7,"ng-container")}if(i&2){let t=p().$implicit;f("active",t.isSelected)("open",t.children.length)("usually-hidden",t.hidden),d(3),T(t.id!=="/"?3:4),d(3),U(" ",t.text," "),d(),T(t.children.length>0?7:-1)}}function Be(i,e){if(i&1&&m(0,Ae,8,9),i&2){let t=e.$implicit,n=p(2);T(t.hidden&&n.showHiddenFiles()||!t.hidden?0:-1)}}function De(i,e){if(i&1&&(r(0,"spk-list"),ee(1,Be,1,1,null,null,Pe),a()),i&2){let t=e.$implicit;z("padding-left",t.level*.5,"rem"),d(),te(t.children)}}function Ve(i,e){i&1&&q(0)}var G=class i{#t=Y(se);multiSelect=_(!1);disabled=_(!1);showFiles=_(!1);startingPath=_(null);rootPath=_(void 0);backupSettings=_(null);includes=R();excludes=R();treeContainerRef=H("treeContainer");formRef=H("formRef");pathDiscoveryMethod=b("browse");isLoading=b(!1);showHiddenFiles=b(!1);currentPath=b("/");#e=b(null);treeSearchQuery=b("");treeNodes=b([]);isByBackupSettings=V(()=>this.rootPath()&&this.backupSettings()?.id&&this.backupSettings()?.time);searchableTreeNodes=V(()=>{let e=this.treeSearchQuery();return e?this.treeNodes().filter(t=>t.text?.toLowerCase().includes(e.toLowerCase())):this.treeNodes()});treeStructure=V(()=>{let e=this.searchableTreeNodes(),t=new Map,n=this.rootPath(),o=n?{id:n,resolvedpath:n,text:n?.replaceAll("/",""),parentPath:"",children:[],isSelected:!1,cls:"folder"}:{id:"/",resolvedpath:"/",text:"Computer",parentPath:"",children:[],isSelected:!1};t.set("/",o);for(let s of e){let u=s.id.replace(n??"","").split("/").filter(Boolean),c="",x=o;for(let g of u){if(c+="/"+g,!t.has(c)){let F={id:s.id,isSelected:s.isSelected,parentPath:c,resolvedpath:s.id?.startsWith("%")?s.resolvedpath+"/":c,hidden:s.hidden,text:s.text,cls:s.cls,children:[]};t.set(c,F),x.children.push(F)}x=t.get(c)}}return[o]});pathDiscoveryMethodEffect=O(()=>{let e=this.pathDiscoveryMethod(),t=this.#e();if(e==="browse"&&t)if(this.multiSelect()){let n=t.value.split("\0");this.treeNodes.update(o=>o.map(s=>v(C({},s),{isSelected:typeof s.id=="string"&&n.includes(s.id)})))}else this.treeNodes.update(n=>n.map(o=>v(C({},o),{isSelected:o.id===t.value})))},{allowSignalWrites:!0});#a(){let e=this.treeContainerRef()?.nativeElement.querySelectorAll(".active");e&&e.length>0&&e[0].scrollIntoView({behavior:"smooth",block:"center"})}currentPathEffect=O(()=>{let e=this.#e();e&&(e.value=this.currentPath(),e.dispatchEvent(new Event("input")))},{allowSignalWrites:!0});selectedPathsEffect=O(()=>{if(this.multiSelect()){let e=this.treeNodes().filter(l=>l.isSelected),t=this.treeNodes().filter(l=>!l.isSelected&&e.some(u=>l.id?.startsWith(u.id))),n=e.filter(l=>!e.some(u=>l.id!==u.id&&l.id?.startsWith(u.id))).map(l=>l.id),o=t.filter(l=>!t.some(u=>l.id!==u.id&&l.id?.startsWith(u.id))).map(l=>`-${l.id}`);this.excludes.emit(o);let s=[...n,...o];this.currentPath.set(s.join("\0"))}else{let e=this.treeNodes().find(n=>n.isSelected),t=e?.resolvedpath;this.currentPath.set(e?.id??"")}},{allowSignalWrites:!0});inputValueChangeAbortController=null;inputRefEffect=O(()=>{let e=this.formRef()?.nativeElement?.querySelector("input");e&&(this.#o(e),this.inputValueChangeAbortController&&this.inputValueChangeAbortController.abort(),this.inputValueChangeAbortController=new AbortController,e.addEventListener("inputValueChanged",t=>{this.currentPath.set(t.detail.value)},{signal:this.inputValueChangeAbortController.signal}),this.#e.set(e),e.autocomplete="off")},{allowSignalWrites:!0});ngOnInit(){let e=this.startingPath();e?(this.currentPath.set(e),this.#r(e)):this.#i(null,this.rootPath())}toggleSelectedNode(e,t){e.stopPropagation(),this.multiSelect()?this.treeNodes.update(n=>n.map(o=>o.id?.startsWith(t.id)?v(C({},o),{isSelected:!t.isSelected}):o)):this.treeNodes.update(n=>n.map(o=>o.id===t.id?v(C({},o),{isSelected:!t.isSelected}):v(C({},o),{isSelected:!1})))}toggleNode(e,t,n=null){e.stopPropagation(),n?.children.length?this.treeNodes.update(o=>o.filter(s=>!s.id?.startsWith(n.id)||s.id===n.id)):this.#i(n,t)}#o(e){return Object.defineProperty(e,"value",{configurable:!0,get(){return Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value").get.call(this)},set(t){return Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value").set.call(this,t),this.dispatchEvent(new CustomEvent("inputValueChanged",{bubbles:!0,cancelable:!0,detail:{value:t}})),t}}),e}#l(e){return this.#t.postApiV1Filesystem({showHidden:!0,requestBody:{path:e},onlyFolders:!this.showFiles()})}#s(e){let t=this.backupSettings(),n={id:t.id,time:t.time,prefixOnly:!1,folderContents:!0};return e&&(n.filter="@"+e),this.#t.getApiV1BackupByIdFiles(n)}#n(e){return this.isByBackupSettings()?this.#s(e):this.#l(e)}#r(e){let t=e.split("\0").filter(l=>l.startsWith("-")).map(l=>l.slice(1,-1)),n=e.split("\0").filter(l=>!l.startsWith("-")).filter(Boolean),o=n.map(l=>l.split("/").filter(Boolean)),s=[this.rootPath()??"/"];o.forEach(l=>{l.forEach((u,c)=>{let x=l.slice(0,c+1).join("/"),g=x.startsWith("%")?x:"/"+x;s.includes(g)||s.push(g)})}),this.isLoading.set(!0),X([...s.map(l=>this.#n(l))]).pipe(W(()=>this.isLoading.set(!1))).subscribe({next:l=>{this.treeNodes.update(u=>{let c=l.flatMap(g=>g.map(F=>{let M=F.id,j=M&&M.split("/").filter(Boolean).slice(0,-1).join("/"),L="/"+(M&&M.split("/").filter(Boolean).join("/")),he=n.findIndex(S=>this.multiSelect()?L.startsWith(S):L===S)>-1,ge=n.findIndex(S=>S===M)>-1,me=t.findIndex(S=>S===L)>-1;return v(C({},F),{parentPath:j.startsWith("%")?j:"/"+j,isSelected:he&&!me||ge})}));return[...new Map([...u,...c].map(g=>[g.resolvedpath??g.id,g])).values()]})}})}#i(e=null,t="/"){this.isLoading.set(!0),this.#n(t).pipe(W(()=>this.isLoading.set(!1))).subscribe({next:n=>{let o=this.isByBackupSettings()?n.Files.map(s=>({text:s.Path.split("/").filter(l=>l!=="").pop(),id:s.Path,cls:s.Path.endsWith("/")?"folder":"file",leaf:e!==null,resolvedpath:s.Path,hidden:!1})):n;this.treeNodes.update(s=>{let l=o.map(c=>v(C({},c),{parentPath:t,isSelected:(this.multiSelect()&&e?.isSelected)??!1}));return[...new Map([...s,...l].map(c=>[c.resolvedpath??c.id,c])).values()]})}})}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=E({type:i,selectors:[["app-file-tree"]],viewQuery:function(t,n){t&1&&(K(n.treeContainerRef,Ce,5),K(n.formRef,ve,5)),t&2&&ne(2)},hostVars:2,hostBindings:function(t,n){t&2&&f("disabled",n.disabled())},inputs:{multiSelect:[1,"multiSelect"],disabled:[1,"disabled"],showFiles:[1,"showFiles"],startingPath:[1,"startingPath"],rootPath:[1,"rootPath"],backupSettings:[1,"backupSettings"]},outputs:{includes:"includes",excludes:"excludes"},standalone:!0,features:[B],ngContentSelectors:Te,decls:15,vars:14,consts:[["treeContainer",""],["recursiveTree",""],["formRef",""],["treeNode",""],[1,"section"],[1,"browse-files"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"primary","raised","browse-files-toggle",3,"click"],["type","button",3,"click"],["action","",3,"click"],[1,"icon"],[1,"spk-primary"],[1,"text",3,"click"]],template:function(t,n){if(t&1){let o=N();A(be),m(0,Se,5,4,"spk-button-group"),r(1,"div",4),y(2,0,["ngProjectAs","label",5,["label"]]),r(3,"div",5,0),m(5,De,3,2,"ng-template",null,1,oe)(7,Ve,1,0,"ng-container",6),a(),r(8,"spk-toggle",7),P("click",function(){return w(o),k(n.showHiddenFiles.set(!n.showHiddenFiles()))}),h(9),a()(),r(10,"div",null,2)(12,"spk-form-field"),y(13,1,["ngProjectAs","label",5,["label"]]),y(14,2,["ngProjectAs","input",5,["input"]]),a()()}if(t&2){let o=Q(6);T(n.multiSelect()?-1:0),d(),f("hidden",n.pathDiscoveryMethod()!=="browse"),d(6),$("ngTemplateOutlet",o)("ngTemplateOutletContext",D(12,ue,D(10,xe,n.treeStructure()))),d(),f("active",n.showHiddenFiles()),d(),U(" Show hidden ",n.showFiles()?"files":"folders"," "),d(3),f("hidden",n.pathDiscoveryMethod()!=="path")}},dependencies:[ae,pe,I,ce,de,le,re],styles:['[_nghost-%COMP%]{display:flex;flex-direction:column;gap:1rem}.disabled[_nghost-%COMP%]{opacity:.5;-webkit-user-select:none;user-select:none;pointer-events:none;position:relative}.disabled[_nghost-%COMP%]:before{content:"";position:absolute;inset:0;background:transparent}.section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.browse-files[_ngcontent-%COMP%]{display:flex;gap:.5rem;padding:.5rem 1rem;height:12.5rem;border:1px solid var(--base-level-40);border-radius:var(--shape-3);overflow:auto;resize:vertical}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%]{--list-active-bg: var(--base-level-30);gap:.125rem;padding:0;height:min-content;min-width:min-content}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action][_ngcontent-%COMP%]{padding:0;gap:.25rem;border:1px solid transparent}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action].active[_ngcontent-%COMP%]{border-color:var(--base-level-40)}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action].usually-hidden[_ngcontent-%COMP%]{opacity:.6}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action][_ngcontent-%COMP%] .text[_ngcontent-%COMP%]{flex:1 0;height:100%;width:max-content;display:flex;align-items:center}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action][_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{width:1.5rem;height:1.5rem;display:flex;align-items:center;justify-content:center;cursor:pointer}.browse-files-toggle[_ngcontent-%COMP%]{color:var(--base-level-60R)}.hidden[_ngcontent-%COMP%]{display:none}'],changeDetection:0})};var Ie=[[["","title",""]],"*"],je=["[title]","*"];function Le(i,e){i&1&&h(0,"Title")}function We(i,e){i&1&&(r(0,"spk-icon"),h(1,"caret-down"),a())}var J=class i{isActive=Z(!1);disallowToggle=_(!1);ngOnInit(){this.disallowToggle()&&this.isActive.set(!0)}toggle(){this.isActive.set(!this.isActive())}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=E({type:i,selectors:[["app-toggle-card"]],hostVars:2,hostBindings:function(t,n){t&2&&f("active",n.isActive())},inputs:{isActive:[1,"isActive"],disallowToggle:[1,"disallowToggle"]},outputs:{isActive:"isActiveChange"},standalone:!0,features:[B],ngContentSelectors:je,decls:6,vars:1,consts:[[3,"click"],[1,"content"]],template:function(t,n){t&1&&(A(Ie),r(0,"h3",0),P("click",function(){return n.disallowToggle()||n.toggle()}),y(1,0,null,Le,1,0),m(3,We,2,0,"spk-icon"),a(),r(4,"div",1),y(5,1),a()),t&2&&(d(3),T(n.disallowToggle()?-1:3))},dependencies:[I],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;border-radius:var(--shape-3);background-color:var(--base-level-20)}.active[_nghost-%COMP%] .content[_ngcontent-%COMP%]{max-height:1000px;transition:max-height 1s linear;padding:0 1rem 1rem}.active[_nghost-%COMP%] spk-icon[_ngcontent-%COMP%]{transform:rotate(180deg)}[_nghost-%COMP%] h3[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;font:var(--paragraph-10);padding:1rem;cursor:pointer;-webkit-user-select:none;user-select:none}[_nghost-%COMP%] spk-icon[_ngcontent-%COMP%]{transform:rotate(0);transform-origin:center;transition:transform .2s ease}.content[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;padding:0 1rem;overflow:hidden;max-height:0;transition:max-height .25s linear,padding .25s linear}"],changeDetection:0})};export{G as a,J as b};
@@ -1 +1 @@
1
- import{c as a,d as b}from"./chunk-OPT45L3G.js";import"./chunk-6FMOBX4W.js";import"./chunk-MHN6DOJL.js";import"./chunk-ZHM55NRD.js";import"./chunk-4I2FZHFA.js";import"./chunk-3ZII4VBA.js";import"./chunk-APGFOGYB.js";import"./chunk-XG5WW7WW.js";import"./chunk-5P5MCIGV.js";import"./chunk-NUWA7AOR.js";import"./chunk-7CGTOI24.js";export{a as createRestoreSelectFilesForm,b as default};
1
+ import{c as a,d as b}from"./chunk-OLR3NLBF.js";import"./chunk-6FMOBX4W.js";import"./chunk-KOIUHATU.js";import"./chunk-ZHM55NRD.js";import"./chunk-4I2FZHFA.js";import"./chunk-3ZII4VBA.js";import"./chunk-APGFOGYB.js";import"./chunk-XG5WW7WW.js";import"./chunk-5P5MCIGV.js";import"./chunk-NUWA7AOR.js";import"./chunk-7CGTOI24.js";export{a as createRestoreSelectFilesForm,b as default};
@@ -1 +1 @@
1
- import{a as be}from"./chunk-6FMOBX4W.js";import{a as L,b as Ce}from"./chunk-MHN6DOJL.js";import{b as q}from"./chunk-ZHM55NRD.js";import{a as me,b as V,d as E,e as T,f as P,g as ce,h as ue,i as R,l as N,m as de,n as fe,o as I,q as B}from"./chunk-4I2FZHFA.js";import{a as D,e as M,l as ge,m as he,o as Fe,r as Se}from"./chunk-3ZII4VBA.js";import{a as w,c as C}from"./chunk-APGFOGYB.js";import{a as O}from"./chunk-5P5MCIGV.js";import{A as Y,D as j,Eb as r,Hb as re,J as Z,K as ee,Ma as u,Mb as se,Nb as x,P as te,Sa as d,Sb as le,Ub as ae,V as p,X as k,_a as $,ab as c,c as K,dc as pe,fa as f,fb as J,ga as g,gb as ie,hb as oe,ib as ne,jb as i,kb as n,l as Q,lb as m,mb as h,nb as F,p as U,pb as y,pc as _,qb as S,rb as W,v as X}from"./chunk-NUWA7AOR.js";function we(l,t){l&1&&m(0,"spk-progress-bar",3)}function Oe(l,t){if(l&1&&(i(0,"option",10),r(1),le(2,"date"),n()),l&2){let e=t.$implicit;c("value",e.Version),u(),re("",e.Version,": ",ae(2,3,e.Time,"d MMM y, h:mm"),"")}}function Ve(l,t){if(l&1&&(i(0,"app-file-tree",11)(1,"label",12),r(2,"Path"),n(),m(3,"input",13),n()),l&2){let e=W(2);c("rootPath",e.rootPath())("backupSettings",e.backupSettings())("multiSelect",!0)("showFiles",!0)}}function Ee(l,t){if(l&1&&(i(0,"spk-select",7),m(1,"input",8),h(2,9),oe(3,Oe,3,6,"option",10,ie),F(),n(),$(5,Ve,4,4,"app-file-tree",11)),l&2){let e=W();c("displayFn",e.displayFn()),u(3),ne(e.versionOptions()),u(2),J(e.rootPathLoaded()?5:-1)}}var A=new I,ke=()=>A.group({filesToRestore:A.control(""),selectedOption:A.control(null),passphrase:A.control(null)}),z=class l{#t=p(O);#e=p(b);#i=p(C);#o=p(w);#n=p(_);selectFilesForm=this.#e.selectFilesForm;selectFilesFormSignal=this.#e.selectFilesFormSignal;backupId=this.#e.backupId;versionOptionsLoading=this.#e.versionOptionsLoading;versionOptions=this.#e.versionOptions;backupSettings=pe(()=>{let t=this.backupId(),e=this.selectFilesFormSignal()?.selectedOption;if(typeof e!="number"||!t)return null;let s=this.versionOptions()?.find(a=>a.Version===e)?.Time??null;return s?{id:t,time:s}:null});rootPathLoaded=d(!1);rootPath=be([this.selectFilesFormSignal,this.backupId],K(Z([null,null]),ee(([t,e])=>{let o=t?.selectedOption,s=e;if(typeof o!="number"||!s)return Q("/");let a=this.versionOptions()?.find(G=>G.Version===o);return this.#t.getApiV1BackupByIdFiles({id:s,time:a?.Time??"",prefixOnly:!1,folderContents:!0}).pipe(U(G=>(this.rootPathLoaded.set(!0),G.Files[0].Path)))})));displayFn(){let t=this.versionOptions();return e=>{if(!e)return"";let o=t?.find(s=>s.Version?.toString()===e);return o?`${o.Version}: ${this.#n.transform(o.Time,"d MMM y, h:mm")}`:""}}next(){this.#i.navigate(["options"],{relativeTo:this.#o.parent})}exit(){this.#e.exit()}static \u0275fac=function(e){return new(e||l)};static \u0275cmp=k({type:l,selectors:[["app-select-files"]],standalone:!0,features:[se([_]),x],decls:15,vars:2,consts:[["formRef",""],[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"],[3,"displayFn"],["type","number","placeholder","Select an option...","formControlName","selectedOption"],["options",""],[3,"value"],[3,"rootPath","backupSettings","multiSelect","showFiles"],["for","path"],["type","text","id","path","formControlName","filesToRestore"]],template:function(e,o){if(e&1){let s=y();i(0,"form",1,0),S("submit",function(){return f(s),g(o.next())}),i(2,"h3",2),r(3,"Select files"),n(),$(4,we,1,0,"spk-progress-bar",3)(5,Ee,6,2),i(6,"div",4)(7,"button",5),S("click",function(){return f(s),g(o.exit())}),i(8,"spk-icon"),r(9,"arrow-left"),n(),r(10," Exit "),n(),i(11,"button",6)(12,"spk-icon"),r(13,"arrow-right"),n(),r(14," Continue "),n()()()}e&2&&(c("formGroup",o.selectFilesForm),u(4),J(o.versionOptionsLoading()?4:5))},dependencies:[B,P,de,fe,V,ce,E,T,R,N,_,L,M,D,Fe,ge],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 b=class l{#t=p(C);#e=p(O);backupId=d(null);backup=d(null);selectFilesForm=ke();optionsForm=ye();optionsFormSignal=q(this.optionsForm.valueChanges);selectFilesFormSignal=q(this.selectFilesForm.valueChanges);versionOptionsLoading=d(!1);versionOptions=d([]);isSubmitting=d(!1);init(t){this.backupId.set(t),this.#i(t,!0)}submit(){this.isSubmitting.set(!0);let t=this.backupId(),e=this.optionsForm.value,o=this.selectFilesForm.value,s=this.versionOptions()?.find(a=>a.Version===o.selectedOption);this.#e.postApiV1BackupByIdRestore({id:t??"",requestBody:{paths:o.filesToRestore?.split("\0").map(a=>`${a}*`)??[],passphrase:o.passphrase??null,time:s?.Time,restore_path:e.restoreFromPath,overwrite:e.handleExisting==="overwrite",permissions:e.permissions,skip_metadata:!0}}).pipe(j(()=>this.isSubmitting.set(!1))).subscribe({next:()=>{this.exit()},error:a=>{console.error("restore error",a)}})}exit(){this.#o(),this.#t.navigate(["/"])}getVersionOptions(){this.versionOptions()}#i(t,e=!1){this.versionOptionsLoading.set(!0),X([this.#e.getApiV1BackupById({id:t}),this.#e.getApiV1BackupByIdFilesets({id:t})]).pipe(Y(1),j(()=>this.versionOptionsLoading.set(!1))).subscribe({next:([o,s])=>{this.versionOptions.set(s),this.backup.set(o),e&&this.selectFilesForm.controls.selectedOption.setValue(s[0].Version)}})}#o(){this.selectFilesForm.reset(),this.optionsForm.reset()}static \u0275fac=function(e){return new(e||l)};static \u0275prov=te({token:l,factory:l.\u0275fac,providedIn:"root"})};var v=new I,ye=()=>v.group({restoreFrom:v.control("orignal"),restoreFromPath:v.control(""),handleExisting:v.control("overwrite"),permissions:v.control(!1)}),H=class l{#t=p(b);#e=p(C);#i=p(w);optionsForm=this.#t.optionsForm;optionsFormSignal=this.#t.optionsFormSignal;goBack(){this.#e.navigate(["select-files"],{relativeTo:this.#i.parent})}submit(){this.#t.submit()}static \u0275fac=function(e){return new(e||l)};static \u0275cmp=k({type:l,selectors:[["app-options"]],standalone:!0,features:[x],decls:41,vars:4,consts:[["formRef",""],[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,o){if(e&1){let s=y();i(0,"form",1,0),S("submit",function(){return f(s),g(o.submit())}),i(2,"h3",2),r(3,"Restore options"),n(),i(4,"app-toggle-card",3),h(5,4),r(6,"Where do you want to restore files from?"),F(),i(7,"spk-radio",5),r(8," Original location "),m(9,"input",6),n(),i(10,"spk-radio",5),r(11," Pick location "),m(12,"input",7),n(),i(13,"app-file-tree",8)(14,"label",9),r(15,"Path"),n(),m(16,"input",10),n()(),i(17,"app-toggle-card",3),h(18,4),r(19,"How do you want to handle existing files?"),F(),i(20,"spk-radio",5),r(21," Overwrite "),m(22,"input",11),n(),i(23,"spk-radio",5),r(24," Save different versions with timestamp in file name "),m(25,"input",12),n()(),i(26,"app-toggle-card"),h(27,4),r(28,"Permissions"),F(),i(29,"spk-toggle",13),r(30," Restore read/write permissions "),m(31,"input",14),n()(),i(32,"div",15)(33,"button",16),S("click",function(){return f(s),g(o.goBack())}),i(34,"spk-icon"),r(35,"arrow-left"),n(),r(36," Go back "),n(),i(37,"button",17)(38,"spk-icon"),r(39,"arrow-right"),n(),r(40," Submit "),n()()()}if(e&2){let s;c("formGroup",o.optionsForm),u(4),c("disallowToggle",!0),u(9),c("disabled",((s=o.optionsFormSignal())==null?null:s.restoreFrom)!=="pickLocation"),u(4),c("disallowToggle",!0)}},dependencies:[B,P,V,me,ue,E,T,R,N,Ce,L,Se,he,M,D],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,H as b,ke as c,z as d,b as e};
1
+ import{a as be}from"./chunk-6FMOBX4W.js";import{a as L,b as Ce}from"./chunk-KOIUHATU.js";import{b as q}from"./chunk-ZHM55NRD.js";import{a as me,b as V,d as E,e as T,f as P,g as ce,h as ue,i as R,l as N,m as de,n as fe,o as I,q as B}from"./chunk-4I2FZHFA.js";import{a as D,e as M,l as ge,m as he,o as Fe,r as Se}from"./chunk-3ZII4VBA.js";import{a as w,c as C}from"./chunk-APGFOGYB.js";import{a as O}from"./chunk-5P5MCIGV.js";import{A as Y,D as j,Eb as r,Hb as re,J as Z,K as ee,Ma as u,Mb as se,Nb as x,P as te,Sa as d,Sb as le,Ub as ae,V as p,X as k,_a as $,ab as c,c as K,dc as pe,fa as f,fb as J,ga as g,gb as ie,hb as oe,ib as ne,jb as i,kb as n,l as Q,lb as m,mb as h,nb as F,p as U,pb as y,pc as _,qb as S,rb as W,v as X}from"./chunk-NUWA7AOR.js";function we(l,t){l&1&&m(0,"spk-progress-bar",3)}function Oe(l,t){if(l&1&&(i(0,"option",10),r(1),le(2,"date"),n()),l&2){let e=t.$implicit;c("value",e.Version),u(),re("",e.Version,": ",ae(2,3,e.Time,"d MMM y, h:mm"),"")}}function Ve(l,t){if(l&1&&(i(0,"app-file-tree",11)(1,"label",12),r(2,"Path"),n(),m(3,"input",13),n()),l&2){let e=W(2);c("rootPath",e.rootPath())("backupSettings",e.backupSettings())("multiSelect",!0)("showFiles",!0)}}function Ee(l,t){if(l&1&&(i(0,"spk-select",7),m(1,"input",8),h(2,9),oe(3,Oe,3,6,"option",10,ie),F(),n(),$(5,Ve,4,4,"app-file-tree",11)),l&2){let e=W();c("displayFn",e.displayFn()),u(3),ne(e.versionOptions()),u(2),J(e.rootPathLoaded()?5:-1)}}var A=new I,ke=()=>A.group({filesToRestore:A.control(""),selectedOption:A.control(null),passphrase:A.control(null)}),z=class l{#t=p(O);#e=p(b);#i=p(C);#o=p(w);#n=p(_);selectFilesForm=this.#e.selectFilesForm;selectFilesFormSignal=this.#e.selectFilesFormSignal;backupId=this.#e.backupId;versionOptionsLoading=this.#e.versionOptionsLoading;versionOptions=this.#e.versionOptions;backupSettings=pe(()=>{let t=this.backupId(),e=this.selectFilesFormSignal()?.selectedOption;if(typeof e!="number"||!t)return null;let s=this.versionOptions()?.find(a=>a.Version===e)?.Time??null;return s?{id:t,time:s}:null});rootPathLoaded=d(!1);rootPath=be([this.selectFilesFormSignal,this.backupId],K(Z([null,null]),ee(([t,e])=>{let o=t?.selectedOption,s=e;if(typeof o!="number"||!s)return Q("/");let a=this.versionOptions()?.find(G=>G.Version===o);return this.#t.getApiV1BackupByIdFiles({id:s,time:a?.Time??"",prefixOnly:!1,folderContents:!0}).pipe(U(G=>(this.rootPathLoaded.set(!0),G.Files[0].Path)))})));displayFn(){let t=this.versionOptions();return e=>{if(!e)return"";let o=t?.find(s=>s.Version?.toString()===e);return o?`${o.Version}: ${this.#n.transform(o.Time,"d MMM y, h:mm")}`:""}}next(){this.#i.navigate(["options"],{relativeTo:this.#o.parent})}exit(){this.#e.exit()}static \u0275fac=function(e){return new(e||l)};static \u0275cmp=k({type:l,selectors:[["app-select-files"]],standalone:!0,features:[se([_]),x],decls:15,vars:2,consts:[["formRef",""],[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"],[3,"displayFn"],["type","number","placeholder","Select an option...","formControlName","selectedOption"],["options",""],[3,"value"],[3,"rootPath","backupSettings","multiSelect","showFiles"],["for","path"],["type","text","id","path","formControlName","filesToRestore"]],template:function(e,o){if(e&1){let s=y();i(0,"form",1,0),S("submit",function(){return f(s),g(o.next())}),i(2,"h3",2),r(3,"Select files"),n(),$(4,we,1,0,"spk-progress-bar",3)(5,Ee,6,2),i(6,"div",4)(7,"button",5),S("click",function(){return f(s),g(o.exit())}),i(8,"spk-icon"),r(9,"arrow-left"),n(),r(10," Exit "),n(),i(11,"button",6)(12,"spk-icon"),r(13,"arrow-right"),n(),r(14," Continue "),n()()()}e&2&&(c("formGroup",o.selectFilesForm),u(4),J(o.versionOptionsLoading()?4:5))},dependencies:[B,P,de,fe,V,ce,E,T,R,N,_,L,M,D,Fe,ge],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 b=class l{#t=p(C);#e=p(O);backupId=d(null);backup=d(null);selectFilesForm=ke();optionsForm=ye();optionsFormSignal=q(this.optionsForm.valueChanges);selectFilesFormSignal=q(this.selectFilesForm.valueChanges);versionOptionsLoading=d(!1);versionOptions=d([]);isSubmitting=d(!1);init(t){this.backupId.set(t),this.#i(t,!0)}submit(){this.isSubmitting.set(!0);let t=this.backupId(),e=this.optionsForm.value,o=this.selectFilesForm.value,s=this.versionOptions()?.find(a=>a.Version===o.selectedOption);this.#e.postApiV1BackupByIdRestore({id:t??"",requestBody:{paths:o.filesToRestore?.split("\0").map(a=>`${a}*`)??[],passphrase:o.passphrase??null,time:s?.Time,restore_path:e.restoreFromPath,overwrite:e.handleExisting==="overwrite",permissions:e.permissions,skip_metadata:!0}}).pipe(j(()=>this.isSubmitting.set(!1))).subscribe({next:()=>{this.exit()},error:a=>{console.error("restore error",a)}})}exit(){this.#o(),this.#t.navigate(["/"])}getVersionOptions(){this.versionOptions()}#i(t,e=!1){this.versionOptionsLoading.set(!0),X([this.#e.getApiV1BackupById({id:t}),this.#e.getApiV1BackupByIdFilesets({id:t})]).pipe(Y(1),j(()=>this.versionOptionsLoading.set(!1))).subscribe({next:([o,s])=>{this.versionOptions.set(s),this.backup.set(o),e&&this.selectFilesForm.controls.selectedOption.setValue(s[0].Version)}})}#o(){this.selectFilesForm.reset(),this.optionsForm.reset()}static \u0275fac=function(e){return new(e||l)};static \u0275prov=te({token:l,factory:l.\u0275fac,providedIn:"root"})};var v=new I,ye=()=>v.group({restoreFrom:v.control("orignal"),restoreFromPath:v.control(""),handleExisting:v.control("overwrite"),permissions:v.control(!1)}),H=class l{#t=p(b);#e=p(C);#i=p(w);optionsForm=this.#t.optionsForm;optionsFormSignal=this.#t.optionsFormSignal;goBack(){this.#e.navigate(["select-files"],{relativeTo:this.#i.parent})}submit(){this.#t.submit()}static \u0275fac=function(e){return new(e||l)};static \u0275cmp=k({type:l,selectors:[["app-options"]],standalone:!0,features:[x],decls:41,vars:4,consts:[["formRef",""],[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,o){if(e&1){let s=y();i(0,"form",1,0),S("submit",function(){return f(s),g(o.submit())}),i(2,"h3",2),r(3,"Restore options"),n(),i(4,"app-toggle-card",3),h(5,4),r(6,"Where do you want to restore files from?"),F(),i(7,"spk-radio",5),r(8," Original location "),m(9,"input",6),n(),i(10,"spk-radio",5),r(11," Pick location "),m(12,"input",7),n(),i(13,"app-file-tree",8)(14,"label",9),r(15,"Path"),n(),m(16,"input",10),n()(),i(17,"app-toggle-card",3),h(18,4),r(19,"How do you want to handle existing files?"),F(),i(20,"spk-radio",5),r(21," Overwrite "),m(22,"input",11),n(),i(23,"spk-radio",5),r(24," Save different versions with timestamp in file name "),m(25,"input",12),n()(),i(26,"app-toggle-card"),h(27,4),r(28,"Permissions"),F(),i(29,"spk-toggle",13),r(30," Restore read/write permissions "),m(31,"input",14),n()(),i(32,"div",15)(33,"button",16),S("click",function(){return f(s),g(o.goBack())}),i(34,"spk-icon"),r(35,"arrow-left"),n(),r(36," Go back "),n(),i(37,"button",17)(38,"spk-icon"),r(39,"arrow-right"),n(),r(40," Submit "),n()()()}if(e&2){let s;c("formGroup",o.optionsForm),u(4),c("disallowToggle",!0),u(9),c("disabled",((s=o.optionsFormSignal())==null?null:s.restoreFrom)!=="pickLocation"),u(4),c("disallowToggle",!0)}},dependencies:[B,P,V,me,ue,E,T,R,N,Ce,L,Se,he,M,D],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,H as b,ke as c,z as d,b as e};
@@ -1 +1 @@
1
- import{a,b,c}from"./chunk-T35OO33H.js";import"./chunk-MHN6DOJL.js";import"./chunk-NN4VOZJP.js";import"./chunk-DNHLTHLR.js";import"./chunk-ZHM55NRD.js";import"./chunk-4I2FZHFA.js";import"./chunk-ICX4A35N.js";import"./chunk-3ZII4VBA.js";import"./chunk-APGFOGYB.js";import"./chunk-XG5WW7WW.js";import"./chunk-5P5MCIGV.js";import"./chunk-NUWA7AOR.js";import"./chunk-7CGTOI24.js";export{a as createDestinationForm,b as createDestinationFormGroup,c as default};
1
+ import{a,b,c}from"./chunk-S4TH7BUT.js";import"./chunk-KOIUHATU.js";import"./chunk-NN4VOZJP.js";import"./chunk-DNHLTHLR.js";import"./chunk-ZHM55NRD.js";import"./chunk-4I2FZHFA.js";import"./chunk-ICX4A35N.js";import"./chunk-3ZII4VBA.js";import"./chunk-APGFOGYB.js";import"./chunk-XG5WW7WW.js";import"./chunk-5P5MCIGV.js";import"./chunk-NUWA7AOR.js";import"./chunk-7CGTOI24.js";export{a as createDestinationForm,b as createDestinationFormGroup,c as default};
@@ -1 +1 @@
1
- import{n as m}from"./chunk-T35OO33H.js";import"./chunk-MHN6DOJL.js";import{a as D}from"./chunk-NN4VOZJP.js";import{a as I}from"./chunk-DUEP5NWI.js";import"./chunk-QILG6324.js";import"./chunk-DNHLTHLR.js";import"./chunk-ZHM55NRD.js";import"./chunk-4I2FZHFA.js";import"./chunk-ICX4A35N.js";import{l as _,m as L,q as B}from"./chunk-3ZII4VBA.js";import{a as v,b as C,d as h,e as y}from"./chunk-APGFOGYB.js";import"./chunk-XG5WW7WW.js";import"./chunk-5P5MCIGV.js";import{Eb as c,Ma as a,Mb as S,Nb as g,Qb as u,V as d,X as l,_a as f,ab as s,fb as b,jb as o,kb as r,lb as i}from"./chunk-NUWA7AOR.js";import"./chunk-7CGTOI24.js";var E=(e,t)=>[e,t,"general"],O=(e,t)=>[e,t,"destination"],P=(e,t)=>[e,t,"source-data"],M=(e,t)=>[e,t,"schedule"],R=(e,t)=>[e,t,"options"];function w(e,t){e&1&&i(0,"spk-progress-bar",1)}function A(e,t){e&1&&(o(0,"section"),i(1,"router-outlet"),r())}var k=class e{#t=d(v);#e=d(m);#n=d(D);isDraft=this.#e.isDraft;backupId=this.#e.backupId;loadingBackup=this.#e.loadingBackup;sysinfoLoaded=this.#n.isLoaded;ngOnInit(){let t=this.#t.snapshot,p=!!t.url.find(F=>F.path==="backup-draft"),n=t.params.id;this.#e.init(n,p)}static \u0275fac=function(p){return new(p||e)};static \u0275cmp=l({type:e,selectors:[["app-backup"]],standalone:!0,features:[S([m]),g],decls:19,vars:21,consts:[["step","","routerLinkActive","active",3,"routerLink"],[1,"indeterminate","primary"]],template:function(p,n){p&1&&(i(0,"app-status-bar"),o(1,"spk-stepper")(2,"div",0),i(3,"spk-radio"),c(4," General "),r(),o(5,"div",0),i(6,"spk-radio"),c(7," Destination "),r(),o(8,"div",0),i(9,"spk-radio"),c(10," Source Data "),r(),o(11,"div",0),i(12,"spk-radio"),c(13," Schedule "),r(),o(14,"div",0),i(15,"spk-radio"),c(16," Options "),r()(),f(17,w,1,0,"spk-progress-bar",1)(18,A,2,0,"section")),p&2&&(a(2),s("routerLink",u(6,E,n.isDraft()?"/backup-draft":"/backup",n.backupId())),a(3),s("routerLink",u(9,O,n.isDraft()?"/backup-draft":"/backup",n.backupId())),a(3),s("routerLink",u(12,P,n.isDraft()?"/backup-draft":"/backup",n.backupId())),a(3),s("routerLink",u(15,M,n.isDraft()?"/backup-draft":"/backup",n.backupId())),a(3),s("routerLink",u(18,R,n.isDraft()?"/backup-draft":"/backup",n.backupId())),a(3),b(n.loadingBackup()&&!n.sysinfoLoaded()?17:18))},dependencies:[C,h,y,I,L,B,_],styles:["[_nghost-%COMP%]{display:block}spk-stepper[_ngcontent-%COMP%]{max-width:32.5rem;margin:2.5rem auto}section[_ngcontent-%COMP%]{max-width:32.5rem;margin:0 auto 2.5rem}"],changeDetection:0})};export{k as default};
1
+ import{n as m}from"./chunk-S4TH7BUT.js";import"./chunk-KOIUHATU.js";import{a as D}from"./chunk-NN4VOZJP.js";import{a as I}from"./chunk-DUEP5NWI.js";import"./chunk-QILG6324.js";import"./chunk-DNHLTHLR.js";import"./chunk-ZHM55NRD.js";import"./chunk-4I2FZHFA.js";import"./chunk-ICX4A35N.js";import{l as _,m as L,q as B}from"./chunk-3ZII4VBA.js";import{a as v,b as C,d as h,e as y}from"./chunk-APGFOGYB.js";import"./chunk-XG5WW7WW.js";import"./chunk-5P5MCIGV.js";import{Eb as c,Ma as a,Mb as S,Nb as g,Qb as u,V as d,X as l,_a as f,ab as s,fb as b,jb as o,kb as r,lb as i}from"./chunk-NUWA7AOR.js";import"./chunk-7CGTOI24.js";var E=(e,t)=>[e,t,"general"],O=(e,t)=>[e,t,"destination"],P=(e,t)=>[e,t,"source-data"],M=(e,t)=>[e,t,"schedule"],R=(e,t)=>[e,t,"options"];function w(e,t){e&1&&i(0,"spk-progress-bar",1)}function A(e,t){e&1&&(o(0,"section"),i(1,"router-outlet"),r())}var k=class e{#t=d(v);#e=d(m);#n=d(D);isDraft=this.#e.isDraft;backupId=this.#e.backupId;loadingBackup=this.#e.loadingBackup;sysinfoLoaded=this.#n.isLoaded;ngOnInit(){let t=this.#t.snapshot,p=!!t.url.find(F=>F.path==="backup-draft"),n=t.params.id;this.#e.init(n,p)}static \u0275fac=function(p){return new(p||e)};static \u0275cmp=l({type:e,selectors:[["app-backup"]],standalone:!0,features:[S([m]),g],decls:19,vars:21,consts:[["step","","routerLinkActive","active",3,"routerLink"],[1,"indeterminate","primary"]],template:function(p,n){p&1&&(i(0,"app-status-bar"),o(1,"spk-stepper")(2,"div",0),i(3,"spk-radio"),c(4," General "),r(),o(5,"div",0),i(6,"spk-radio"),c(7," Destination "),r(),o(8,"div",0),i(9,"spk-radio"),c(10," Source Data "),r(),o(11,"div",0),i(12,"spk-radio"),c(13," Schedule "),r(),o(14,"div",0),i(15,"spk-radio"),c(16," Options "),r()(),f(17,w,1,0,"spk-progress-bar",1)(18,A,2,0,"section")),p&2&&(a(2),s("routerLink",u(6,E,n.isDraft()?"/backup-draft":"/backup",n.backupId())),a(3),s("routerLink",u(9,O,n.isDraft()?"/backup-draft":"/backup",n.backupId())),a(3),s("routerLink",u(12,P,n.isDraft()?"/backup-draft":"/backup",n.backupId())),a(3),s("routerLink",u(15,M,n.isDraft()?"/backup-draft":"/backup",n.backupId())),a(3),s("routerLink",u(18,R,n.isDraft()?"/backup-draft":"/backup",n.backupId())),a(3),b(n.loadingBackup()&&!n.sysinfoLoaded()?17:18))},dependencies:[C,h,y,I,L,B,_],styles:["[_nghost-%COMP%]{display:block}spk-stepper[_ngcontent-%COMP%]{max-width:32.5rem;margin:2.5rem auto}section[_ngcontent-%COMP%]{max-width:32.5rem;margin:0 auto 2.5rem}"],changeDetection:0})};export{k as default};
@@ -1 +1 @@
1
- import{a as Qe,b as Se}from"./chunk-MHN6DOJL.js";import{a as fe}from"./chunk-NN4VOZJP.js";import{a as et,b as yt}from"./chunk-DNHLTHLR.js";import{b as Ie}from"./chunk-ZHM55NRD.js";import{a as Ce,b as J,c as Fe,d as Z,e as X,f as ee,g as ge,i as te,j as xe,k as gt,l as ne,m as ie,n as oe,o as B,q as ae}from"./chunk-4I2FZHFA.js";import{a as xt}from"./chunk-ICX4A35N.js";import{a as re,e as ye,g as qe,i as le,k as Ke,n as We,o as se,r as he}from"./chunk-3ZII4VBA.js";import{a as Y,c as L}from"./chunk-APGFOGYB.js";import{a as je}from"./chunk-5P5MCIGV.js";import{$a as P,A as mt,Bb as K,Cb as W,D as ve,Db as de,Eb as l,Fb as A,Gb as D,Ib as ut,Ma as s,Nb as Q,P as De,Pb as Oe,Qb as _t,Rb as Le,Sa as k,Ta as q,V as h,Vb as ze,X as j,_a as u,ab as m,cb as ct,dc as H,fa as f,fb as _,fc as ft,ga as C,gb as T,hb as O,ib as N,jb as a,kb as o,lb as c,mb as F,nb as b,ob as Te,oc as Ue,pb as w,qb as g,rb as p,ub as ce,vb as y,wb as dt,xc as Ct}from"./chunk-NUWA7AOR.js";import{a as me,b as $e,c as pt}from"./chunk-7CGTOI24.js";var He=class t{fromString(i){if(!i)return null;let e=i.match(/(\d+)([smhDWMY])/);return e&&{value:parseInt(e[1]),unit:e[2]}}toString(i,e){return`${i}${e}`}static \u0275fac=function(e){return new(e||t)};static \u0275prov=De({token:t,factory:t.\u0275fac,providedIn:"root"})};var we=new B,Ge={file:{customFields:{path:{type:"file-tree",name:"path",shortDescription:"File path",longDescription:"The path to store the backup",formElement:t=>we.control(t??"")}}},ssh:{customFields:{server:{type:"String",name:"server",shortDescription:"Server",longDescription:"The server to connect to",formElement:t=>we.control(t??"")},port:{type:"Integer",name:"port",shortDescription:"Port",longDescription:"The port to connect to",formElement:t=>we.control(t??"")},path:{type:"Path",name:"path",shortDescription:"File path on the server",longDescription:"File path on the server",formElement:t=>we.control(t??"")}},dynamicFields:["auth-username"]},s3:{customFields:{path:{type:"Path",name:"path",shortDescription:"File path on the server",longDescription:"File path on the server",formElement:t=>we.control(t??"")},bucket:{type:"String",name:"bucket",shortDescription:"Bucket name",longDescription:"Bucket name",formElement:t=>we.control(t??"")}},dynamicFields:["use-ssl","s3-server-name","auth-username","auth-password"]},gcs:{oauthField:"authid",dynamicFields:["gcs-location","gcs-storage-class","authid"]},googledrive:{oauthField:"authid",customFields:{path:{type:"Path",name:"path",shortDescription:"File path on the server",longDescription:"File path on the server",formElement:t=>we.control(t??"")}},dynamicFields:["authid"]}};function Ne(t,i){let e={},n={};return i.searchParams.forEach((r,d)=>{Ge[t].dynamicFields?.includes(d)?n[d]=decodeURIComponent(r):e[d]=decodeURIComponent(r)}),{advanced:e,dynamic:n}}function Me(t){let i=t.map(([e,n])=>`${e}=${n?encodeURIComponent(n.toString()):""}`).join("&");return i?"?"+i:""}var Ee={file:{to:t=>{let i=Me([...Object.entries(t.advanced),...Object.entries(t.dynamic)]);return`${t.destinationType}://${t.custom.path}${i}`},from:(t,i,e)=>{let n=e.indexOf("file:///")===0,r=e.split(n?"///":"//")[1].substring(0,1)+i.hostname.substring(1);return me({destinationType:t,custom:{path:`${n?"/":""}${r}${i.pathname}`}},Ne(t,i))}},ssh:{to:t=>{let i=Me([...Object.entries(t.advanced),...Object.entries(t.dynamic)]);return`${t.destinationType}://${t.custom.server}${t.custom.port?":"+t.custom.port:""}${t.custom.path.startsWith("/")?t.custom.path:"/"+t.custom.path}${i}`},from:(t,i,e)=>me({destinationType:t,custom:{server:i.hostname,port:i.port,path:i.pathname}},Ne(t,i))},s3:{to:t=>{let i=Me([...Object.entries(t.advanced),...Object.entries(t.dynamic)]);return`${t.destinationType}://${t.custom.bucket}${t.custom.path}${i}`},from:(t,i,e)=>me({destinationType:t,custom:{path:i.pathname,bucket:i.hostname}},Ne(t,i))},gcs:{to:t=>{let i=t.dynamic["gcs-location"]??"";delete t.dynamic["gcs-location"];let e=Me([...Object.entries(t.advanced),...Object.entries(t.dynamic)]);return`${t.destinationType}://${i}${e}`},from:(t,i,e)=>{let{advanced:n,dynamic:r}=Ne(t,i);return{destinationType:t,advanced:n,dynamic:$e(me({},r),{"gcs-location":i.hostname+i.pathname})}}},googledrive:{to:t=>{let i=t.custom.path,e=Me([...Object.entries(t.advanced),...Object.entries(t.dynamic)]);return`${t.destinationType}://${i}${e}`},from:(t,i,e)=>{let n=e.replace("googledrive://","");return me({destinationType:t,custom:{path:n}},Ne(t,i))}},fallbackMapper:{to:t=>"",from:(t,i,e)=>me({destinationType:t},Ne(t,i))}};function Pe(t){let i=t.destinationType;return!i||!Ee.hasOwnProperty(i)?Ee.fallbackMapper.to(t)??"":Ee[i].to(t)??""}function ht(t){let i=URL.canParse(t),e=t.split("://")[0],n="http://"+t.split("://")[1],r=new URL(n);if(!Ee.hasOwnProperty(e))return Ee.fallbackMapper.from(e,r);if(!i)throw new Error("Invalid target path");return Ee[e].from(e,r,t)}var Tt=/[a-zA-Z0-9_\-\+\.]/,Ye=class t{generate(i,e=Tt){let n=this;return Array.apply(null,{length:i}).map(()=>{let r;for(;;)if(r=String.fromCharCode(n.#t()),e.test(r))return r},this).join("")}#t(){if(window.crypto&&window.crypto.getRandomValues){let i=new Uint8Array(1);return window.crypto.getRandomValues(i),i[0]}else if(window.msCrypto&&window.msCrypto.getRandomValues){let i=new Uint8Array(1);return window.msCrypto.getRandomValues(i),i[0]}else return Math.floor(Math.random()*256)}static \u0275fac=function(e){return new(e||t)};static \u0275prov=De({token:t,factory:t.\u0275fac,providedIn:"root"})};var Ot=["formRef"];function Nt(t,i){if(t&1&&(a(0,"option",13),l(1),o()),t&2){let e=i.$implicit;m("value",e.Key),s(),A(e.DisplayName)}}function Et(t,i){t&1&&(a(0,"spk-icon"),l(1,"eye-slash"),o(),l(2," hide "))}function Pt(t,i){t&1&&(a(0,"spk-icon"),l(1,"eye"),o(),l(2," show "))}function Vt(t,i){t&1&&(a(0,"spk-icon",22),l(1,"check"),o())}function It(t,i){t&1&&(a(0,"spk-icon"),l(1,"copy"),o())}function Gt(t,i){if(t&1){let e=w();a(0,"button",21),g("click",function(){f(e);let r=p(3);return C(r.copyPassword())}),u(1,Vt,2,0,"spk-icon",22)(2,It,2,0,"spk-icon"),l(3),o()}if(t&2){let e=p(3);s(),_(e.copiedPassword()?1:2),s(2),D(" ",e.copiedPassword()?"Copied":"Copy"," password ")}}function Mt(t,i){if(t&1){let e=w();a(0,"div",14)(1,"spk-form-field")(2,"label",15),l(3," Create a password "),a(4,"sup"),l(5,"*"),o()(),c(6,"input",16),o(),a(7,"spk-form-field"),c(8,"input",17),o(),a(9,"div",18)(10,"button",19),g("click",function(){f(e);let r=p(2);return C(r.showPassword.set(!r.showPassword()))}),u(11,Et,3,0)(12,Pt,3,0),o(),a(13,"button",19),g("click",function(){f(e);let r=p(2);return C(r.generatePassword())}),a(14,"spk-icon"),l(15,"password"),o(),l(16," Generate password "),o(),u(17,Gt,4,2,"button",20),o()()}if(t&2){let e=p(2);s(6),m("type",e.showPassword()?"text":"password"),s(2),m("type",e.showPassword()?"text":"password"),s(3),_(e.showPassword()?11:12),s(6),_(e.showCopyPassword()?17:-1)}}function At(t,i){if(t&1&&(a(0,"spk-select",10)(1,"label",11),l(2,"Encryption"),o(),c(3,"input",12),O(4,Nt,2,2,"option",13,T),o(),u(6,Mt,18,4,"div",14)),t&2){let e=p();m("displayFn",e.displayFn()),s(4),N(e.encryptionOptions()),s(2),_(e.encryptionFieldSignal()!==""?6:-1)}}function Rt(t,i){if(t&1&&(a(0,"button",9),l(1," Continue "),a(2,"spk-icon"),l(3,"arrow-right"),o()()),t&2){let e=p();m("disabled",e.generalForm.invalid)}}function Bt(t,i){if(t&1&&(a(0,"div")(1,"button",9),l(2," Continue "),a(3,"spk-icon"),l(4,"arrow-right"),o()()()),t&2){let e=p();P("spk-tooltip-primary",e.showCopyPassword()&&!e.copiedPassword()?"Remember to copy the password":null),s(),m("disabled",e.generalForm.invalid||e.showCopyPassword()&&!e.copiedPassword())}}var Ve=new B,St=(t={name:"",description:"",encryption:"",password:"",repeatPassword:""})=>Ve.group({name:Ve.control(t.name,[Fe.required]),description:Ve.control(t.description),encryption:Ve.control(t.encryption,[yt()]),password:Ve.control(t.password,[et(i=>i?.value.encryption!=="",[Fe.required])]),repeatPassword:Ve.control(t.repeatPassword,[et(i=>i?.value.encryption!=="",[Fe.required])])}),nt={Key:"",DisplayName:"None"},tt=class t{#t=h(L);#e=h(Y);#n=h(Ye);#i=h(z);#a=h(fe);formRef=q.required("formRef");generalForm=this.#i.generalForm;encryptionFieldSignal=this.#i.encryptionFieldSignal;encryptionOptions=this.#i.encryptionOptions;isNew=this.#i.isNew;showPassword=k(!1);copiedPassword=k(!1);showCopyPassword=k(!1);encryptionEffect=ft(()=>{let i=this.encryptionFieldSignal();console.log(i===""),i===""&&(this.copiedPassword.set(!1),this.showCopyPassword.set(!1))},{allowSignalWrites:!0});ngOnInit(){this.formRef().nativeElement.focus()}exit(){this.#i.exit()}async copyPassword(){let i=this.generalForm.controls.password.value;await this.#o(i??""),this.copiedPassword.set(!0)}async#o(i){try{await navigator.clipboard.writeText(i)}catch{try{let n=document.createElement("textarea");n.value=i,document.body.appendChild(n),n.select(),document.execCommand("copy"),document.body.removeChild(n)}catch(n){console.error("Failed to copy text: ",n)}}}displayFn(){let i=this.#a.systemInfo()?.EncryptionModules??[];return e=>{let n=[nt,...i].find(r=>r.Key===e);return n?`${n.DisplayName}`:""}}generatePassword(){this.copiedPassword.set(!1);let i=this.#n.generate(16);this.generalForm.controls.password.setValue(i),this.generalForm.controls.repeatPassword.setValue(i),this.showCopyPassword.set(!0)}next(){this.#t.navigate(["destination"],{relativeTo:this.#e.parent})}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=j({type:t,selectors:[["app-general"]],viewQuery:function(e,n){e&1&&K(n.formRef,Ot,5),e&2&&W()},standalone:!0,features:[Q],decls:22,vars:3,consts:[["formRef",""],["autocomplete","off",3,"submit","formGroup"],[1,"title-30"],["for","backupName"],["type","text","tabindex","1","placeholder","Your backup name","formControlName","name"],["for","backupDescription"],["id","backupDescription","tabindex","2","placeholder","Your backup description","formControlName","description"],[1,"form-actions"],["type","button","spk-button","",3,"click"],["spk-button","","type","submit",1,"raised","primary",3,"disabled"],[3,"displayFn"],["for","encryption"],["type","text","id","encryption","tabindex","3","placeholder","Encryption","formControlName","encryption"],[3,"value"],[1,"passwords"],["for","password"],["id","password","tabindex","4","autocomplete","off","placeholder","Password","formControlName","password",3,"type"],["id","repeatPassword","tabindex","5","autocomplete","off","placeholder","Repeat password","formControlName","repeatPassword",3,"type"],[1,"password-actions"],["spk-button","","type","button",1,"small",3,"click"],["spk-button","","type","button",1,"small","copy"],["spk-button","","type","button",1,"small","copy",3,"click"],[1,"spk-success"]],template:function(e,n){if(e&1){let r=w();a(0,"form",1,0),g("submit",function(){return f(r),C(n.next())}),a(2,"h3",2),l(3,"General backup settings"),o(),a(4,"spk-form-field")(5,"label",3),l(6," Backup name "),a(7,"sup"),l(8,"*"),o()(),c(9,"input",4),o(),a(10,"spk-form-field")(11,"label",5),l(12,"Backup description"),o(),c(13,"textarea",6),o(),u(14,At,7,2),a(15,"div",7)(16,"button",8),g("click",function(){return f(r),C(n.exit())}),a(17,"spk-icon"),l(18,"arrow-left"),o(),l(19," Exit "),o(),u(20,Rt,4,1,"button",9)(21,Bt,5,2,"div"),o()()}e&2&&(m("formGroup",n.generalForm),s(14),_(n.isNew()?14:-1),s(6),_(n.encryptionFieldSignal()===""?20:21))},dependencies:[ae,ee,ie,oe,J,Z,X,te,ne,le,se,ye,re],styles:["[_nghost-%COMP%]{display:block}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}sup[_ngcontent-%COMP%]{padding:0 .125rem;color:var(--warn-500)}.passwords[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.password-actions[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:center}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}.copy[_ngcontent-%COMP%] spk-icon.spk-success[_ngcontent-%COMP%]{color:var(--success-500)}"],changeDetection:0})};var $t=["formRef"],Lt=(t,i)=>({option:t,index:i}),zt=t=>({$implicit:t});function Ut(t,i){if(t&1&&(a(0,"option",12),l(1),o()),t&2){let e=i.$implicit;m("value",e),s(),A(e)}}function jt(t,i){if(t&1&&(a(0,"option",12),l(1),o()),t&2){let e=i.$implicit;m("value",e.value),s(),A(e.name)}}function qt(t,i){if(t&1){let e=w();a(0,"button",24,2),g("click",function(){let r=f(e).$implicit,d=p(2);return C(d.addNewOption(r))}),l(2),o()}if(t&2){let e=i.$implicit;s(2),A(e.Name)}}function Kt(t,i){t&1&&Te(0)}function Wt(t,i){if(t&1&&u(0,Kt,1,0,"ng-container",25),t&2){let e=i.$implicit,n=i.$index;p();let r=de(39);m("ngTemplateOutlet",r)("ngTemplateOutletContext",Oe(5,zt,_t(2,Lt,e,n)))}}function Qt(t,i){if(t&1&&(a(0,"spk-icon",32),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.option.longDescription)}}function Ht(t,i){t&1&&(a(0,"spk-icon",34),l(1,"link"),o())}function Yt(t,i){t&1&&(a(0,"spk-icon",34),l(1,"textbox"),o())}function Jt(t,i){if(t&1&&(a(0,"spk-form-field")(1,"label",31),l(2),u(3,Qt,2,1,"spk-icon",32),o(),c(4,"input",33),u(5,Ht,2,0,"spk-icon",34)(6,Yt,2,0,"spk-icon",34),o()),t&2){let e,n=p().$implicit;s(),y("for","option-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.option.shortDescription)!==null&&e!==void 0?e:n.option.name," "),s(),_(n.option.longDescription?3:-1),s(),y("id","option-",n.formGroupName,"-",n.index,""),m("formControlName",n.option.name),s(),_(n.option.type==="Path"?5:6)}}function Zt(t,i){if(t&1){let e=w();a(0,"spk-icon",37),g("click",function(){f(e);let r=p(2).$implicit;return C(r.option.showPassword=!r.option.showPassword)}),l(1," eye "),o()}}function Xt(t,i){if(t&1){let e=w();a(0,"spk-icon",37),g("click",function(){f(e);let r=p(2).$implicit;return C(r.option.showPassword=!r.option.showPassword)}),l(1," eye-slash "),o()}}function en(t,i){if(t&1&&(a(0,"spk-form-field")(1,"label",31),l(2),o(),c(3,"input",35),a(4,"spk-icon",34),l(5,"password"),o(),u(6,Zt,2,0,"spk-icon",36)(7,Xt,2,0,"spk-icon",36),o()),t&2){let e,n=p().$implicit;s(),y("for","option-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.option.shortDescription)!==null&&e!==void 0?e:n.option.name," "),s(),y("id","option-",n.formGroupName,"-",n.index,""),m("type",n.option.showPassword?"text":"password")("formControlName",n.option.name),s(3),_(n.option.showPassword?6:7)}}function tn(t,i){if(t&1&&(a(0,"spk-icon",32),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.option.longDescription)}}function nn(t,i){if(t&1&&(a(0,"option",12),l(1),o()),t&2){let e=i.$implicit;m("value",e),s(),A(e)}}function on(t,i){if(t&1&&(a(0,"spk-select")(1,"label",31),l(2),u(3,tn,2,1,"spk-icon",32),o(),c(4,"input",38),F(5,11),O(6,nn,2,2,"option",12,T),b(),o()),t&2){let e,n=p().$implicit;s(),y("for","option-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.option.shortDescription)!==null&&e!==void 0?e:n.option.name," "),s(),_(n.option.longDescription?3:-1),s(),y("id","option-",n.formGroupName,"-",n.index,""),m("formControlName",n.option.name),s(2),N(n.option.options)}}function an(t,i){if(t&1&&(a(0,"spk-icon",32),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.option.longDescription)}}function rn(t,i){if(t&1&&(a(0,"option",12),l(1),o()),t&2){let e=i.$implicit;m("value",e),s(),A(e)}}function ln(t,i){if(t&1&&(a(0,"div",28)(1,"label",31),l(2),u(3,an,2,1,"spk-icon",32),o(),a(4,"div",39)(5,"spk-form-field"),c(6,"input",40),a(7,"spk-icon",34),l(8,"resize"),o()(),a(9,"spk-select"),c(10,"label")(11,"input",41),F(12,11),O(13,rn,2,2,"option",12,T),b(),o()()()),t&2){let e,n=p().$implicit,r=p(2);m("formGroupName",n.option.name),s(),y("for","option-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.option.shortDescription)!==null&&e!==void 0?e:n.option.name," "),s(),_(n.option.longDescription?3:-1),s(3),y("id","option-",n.formGroupName,"-",n.index,""),s(7),N(r.sizeOptions())}}function sn(t,i){if(t&1&&(a(0,"spk-icon",32),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.option.longDescription)}}function pn(t,i){if(t&1&&(a(0,"spk-form-field")(1,"label",31),l(2),u(3,sn,2,1,"spk-icon",32),o(),c(4,"input",42),a(5,"spk-icon",34),l(6,"numpad"),o()()),t&2){let e,n=p().$implicit;s(),y("for","option-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.option.shortDescription)!==null&&e!==void 0?e:n.option.name," "),s(),_(n.option.longDescription?3:-1),s(),y("id","option-",n.formGroupName,"-",n.index,""),m("formControlName",n.option.name)}}function mn(t,i){if(t&1&&(a(0,"spk-icon",32),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.option.longDescription)}}function cn(t,i){if(t&1&&(a(0,"spk-toggle",29)(1,"label",31),l(2),u(3,mn,2,1,"spk-icon",32),o(),c(4,"input",43),o()),t&2){let e,n=p().$implicit;s(),y("for","option-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.option.shortDescription)!==null&&e!==void 0?e:n.option.name," "),s(),_(n.option.longDescription?3:-1),s(),y("id","option-",n.formGroupName,"-",n.index,""),m("formControlName",n.option.name)}}function dn(t,i){if(t&1&&(a(0,"spk-icon",32),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.option.longDescription)}}function un(t,i){t&1&&(a(0,"spk-option",45),l(1,"None"),o()),t&2&&m("value","None")}function _n(t,i){if(t&1&&(a(0,"spk-option",12),l(1),c(2,"spk-checkbox",46),o()),t&2){let e=p().$implicit;m("value",e),s(),D(" ",e," ")}}function fn(t,i){if(t&1&&u(0,un,2,1,"spk-option",45)(1,_n,3,2,"spk-option",12),t&2){let e=i.$implicit;_(e==="None"?0:1)}}function Cn(t,i){if(t&1&&(a(0,"spk-select",30)(1,"label",31),l(2),u(3,dn,2,1,"spk-icon",32),o(),c(4,"input",44),F(5,11),O(6,fn,2,1,null,null,T),b(),o()),t&2){let e,n=p().$implicit;m("selectMultiple",!0),s(),y("for","option-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.option.shortDescription)!==null&&e!==void 0?e:n.option.name," "),s(),_(n.option.longDescription?3:-1),s(),m("formControlName",n.option.name),s(2),N(n.option.options)}}function gn(t,i){if(t&1&&(a(0,"spk-icon",32),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.option.longDescription)}}function xn(t,i){if(t&1&&(a(0,"spk-form-field")(1,"label",31),l(2),u(3,gn,2,1,"spk-icon",32),o(),c(4,"input",33)(5,"span",47),o()),t&2){let e,n=p().$implicit;s(),y("for","option-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.option.shortDescription)!==null&&e!==void 0?e:n.option.name," "),s(),_(n.option.longDescription?3:-1),s(),y("id","option-",n.formGroupName,"-",n.index,""),m("formControlName",n.option.name)}}function yn(t,i){if(t&1){let e=w();F(0,26),a(1,"div",27),u(2,Jt,7,10,"spk-form-field")(3,en,8,10,"spk-form-field")(4,on,8,9,"spk-select")(5,ln,15,9,"div",28)(6,pn,7,9,"spk-form-field")(7,cn,5,9,"spk-toggle",29)(8,Cn,8,7,"spk-select",30)(9,xn,6,9,"spk-form-field"),a(10,"button",22),g("click",function(){let r=f(e).$implicit,d=p(2);return C(d.removeOption(r.option))}),a(11,"spk-icon"),l(12,"x-circle"),o()()(),b()}if(t&2){let e=i.$implicit;s(2),_(e.option.type==="String"||e.option.type==="Path"?2:e.option.type==="Password"?3:e.option.type==="Enumeration"?4:e.option.type==="Size"?5:e.option.type==="Integer"?6:e.option.type==="Boolean"?7:e.option.type==="Flags"?8:e.option.type==="Timespan"?9:-1)}}function hn(t,i){if(t&1){let e=w();a(0,"form",4,0),g("submit",function(){f(e);let r=p();return C(r.submit())}),a(2,"h3",5),l(3,"Options"),o(),a(4,"div",6)(5,"div",7)(6,"spk-form-field")(7,"label",8),l(8,"Remote volume size"),o(),c(9,"input",9),o(),a(10,"spk-select"),c(11,"input",10),F(12,11),O(13,Ut,2,2,"option",12,T),b(),o()(),a(15,"p"),l(16," The backups will be split up into multiple files called volumes. Here you can set the maximum size of the individual volume files. "),a(17,"a",13),l(18,"Read more"),o()()(),a(19,"spk-select",14)(20,"label",8),l(21,"Backup retention"),o(),c(22,"input",15),O(23,jt,2,2,"option",12,T),o(),a(25,"app-toggle-card",16),F(26,17),l(27," Advanced options "),a(28,"spk-menu")(29,"button",18),l(30," Add advanced option "),a(31,"spk-icon"),l(32,"plus"),o()(),F(33,19),O(34,qt,3,1,"button",20,T),b(),o(),b(),O(36,Wt,1,7,"ng-container",null,T),o(),u(38,yn,13,1,"ng-template",null,1,ze),a(40,"div",21)(41,"button",22),g("click",function(){f(e);let r=p();return C(r.goBack())}),a(42,"spk-icon"),l(43,"arrow-left"),o(),l(44," Go back "),o(),a(45,"button",23)(46,"spk-icon"),l(47,"arrow-right"),o(),l(48," Submit "),o()()()}if(t&2){let e=p();m("formGroup",e.optionsForm),s(13),N(e.sizeOptions()),s(6),m("displayFn",e.retentionOptionDisplayFn()),s(4),N(e.rentationOptions()),s(2),m("disallowToggle",!0),s(9),N(e.nonSelectedAdvancedOptions()),s(2),N(e.selectedAdvancedOptions())}}var ue=new B,Sn=["Bytes","KB","MB","GB","TB","PB"],kn=[{value:"",name:"Keep all backups"},{value:"time",name:"Delete backups that are older than"},{value:"versions",name:"Keep a specific number of backups"},{value:"smart",name:"Smart backup retention"},{value:"custom",name:"Custom backup retention"}],kt=(t={remoteVolumeSize:50,size:"MB",backupRetention:"",advancedOptions:[]})=>ue.group({remoteVolumeSize:ue.group({size:ue.control(t.remoteVolumeSize),unit:ue.control(t.size)}),backupRetention:ue.control(t.backupRetention),advancedOptions:ue.group({})}),oo=(t,i)=>ue.group({name:ue.control(t),value:ue.control(i)}),it=class t{#t=h(fe);#e=h(z);#n=h(L);#i=h(Y);formRef=q.required("formRef");optionsForm=this.#e.optionsForm;finishedLoading=this.#e.finishedLoading;selectedAdvancedOptions=this.#e.selectedAdvancedOptions;nonSelectedAdvancedOptions=this.#e.nonSelectedAdvancedOptions;sizeOptions=k(Sn);rentationOptions=k(kn);sysinfoLoaded=this.#t.isLoaded;removeOption(i){this.#e.removeOptionFromFormGroup(i)}addNewOption(i){this.#e.addOptionToFormGroup(i)}retentionOptionDisplayFn(){let i=this.rentationOptions();return e=>{let n=i.find(r=>r.value===e);return n?n.name:""}}displayFn(){let i=this.#e.advancedOptions();return e=>{let n=i.find(r=>r.Name===e);return n?`${n.Name}`:""}}goBack(){this.#n.navigate(["schedule"],{relativeTo:this.#i.parent})}submit(){this.#e.submit()}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=j({type:t,selectors:[["app-options"]],viewQuery:function(e,n){e&1&&K(n.formRef,$t,5),e&2&&W()},standalone:!0,features:[Q],decls:1,vars:1,consts:[["formRef",""],["fieldTemplate",""],["option",""],[3,"formGroup"],[3,"submit","formGroup"],[1,"title-30"],[1,"remote-volume-wrap"],["formGroupName","remoteVolumeSize",1,"row-inputs"],["for","size"],["type","number","id","size","formControlName","size"],["type","text","placeholder","Select an option...","formControlName","unit"],["options",""],[3,"value"],["href","#",1,"spk-primary"],[3,"displayFn"],["type","text","formControlName","backupRetention"],[3,"disallowToggle"],["title",""],["spk-button","","type","button",1,"outlined","small"],["menu",""],["type","button"],[1,"form-actions"],["spk-button","","type","button",3,"click"],["spk-button","","type","submit",1,"raised","primary"],["type","button",3,"click"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],["formGroupName","advancedOptions"],[1,"form-wrap"],[1,"form-column",3,"formGroupName"],[1,"primary","raised"],[1,"primary",3,"selectMultiple"],[3,"for"],["spk-tooltip-right",""],["type","text",3,"id","formControlName"],["prefix",""],["autocomplete","off",3,"type","id","formControlName"],["suffix","",1,"clickable"],["suffix","",1,"clickable",3,"click"],["type","search",3,"id","formControlName"],[1,"form-row"],["type","number","formControlName","size",3,"id"],["type","search","formControlName","unit"],["type","number",3,"id","formControlName"],["type","checkbox",3,"id","formControlName"],["type","text","id","text",3,"formControlName"],["deselect","",3,"value"],[1,"raised","primary"],["error",""]],template:function(e,n){e&1&&u(0,hn,49,3,"form",3),e&2&&_(n.finishedLoading()?0:-1)},dependencies:[ae,ee,ie,oe,J,ge,Ce,Z,X,te,ne,xe,Ue,Ke,se,ye,re,le,he,qe,We,Se],styles:["[_nghost-%COMP%]{display:block}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}.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}.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 vn=["formRef"];function Fn(t,i){if(t&1&&(a(0,"option",24),l(1),o()),t&2){let e=i.$implicit;m("value",e.key),s(),A(e.label)}}function bn(t,i){if(t&1){let e=w();a(0,"div",11)(1,"spk-form-field")(2,"label",12),l(3,"Next time"),o(),a(4,"input",13,1),g("focus",function(){f(e);let r=de(5);return C(r.showPicker())}),o(),a(6,"spk-icon",14),l(7,"clock"),o()(),a(8,"spk-form-field"),c(9,"label",15),a(10,"input",16,2),g("focus",function(){f(e);let r=de(11);return C(r.showPicker())}),o(),a(12,"spk-icon",14),l(13,"calendar"),o()()(),F(14,17),a(15,"div",18)(16,"spk-form-field")(17,"label",19),l(18,"Run again every"),o(),c(19,"input",20),o(),a(20,"spk-select",21),c(21,"input",22),F(22,23),O(23,Fn,2,2,"option",24,T),b(),o()(),a(25,"app-toggle-card",25),F(26,26),l(27,"Allowed days"),b(),a(28,"div",27)(29,"spk-toggle",6),l(30," Monday "),c(31,"input",28),o(),a(32,"spk-toggle",6),l(33," Tuesday "),c(34,"input",29),o(),a(35,"spk-toggle",6),l(36," Wednesday "),c(37,"input",30),o(),a(38,"spk-toggle",6),l(39," Thursday "),c(40,"input",31),o(),a(41,"spk-toggle",6),l(42," Friday "),c(43,"input",32),o(),a(44,"spk-toggle",6),l(45," Saturday "),c(46,"input",33),o(),a(47,"spk-toggle",6),l(48," Sunday "),c(49,"input",34),o()()(),b()}if(t&2){let e=p();s(20),m("displayFn",e.displayFn),s(3),N(e.unitOptions),s(2),m("disallowToggle",!0)}}var R=new B,vt=[{key:"s",label:"Seconds"},{key:"m",label:"Minutes"},{key:"h",label:"Hours"},{key:"D",label:"Days"},{key:"W",label:"Weeks"},{key:"M",label:"Months"},{key:"Y",label:"Years"}],Ft=(t={autoRun:!1,nextTime:{time:"13:00",date:new Date().toISOString().split("T")[0]},runAgain:{repeatValue:1,repeatUnit:"D",allowedDays:{mon:!1,tue:!1,wed:!1,thu:!1,fri:!1,sat:!1,sun:!1}}})=>R.group({autoRun:R.control(t.autoRun),nextTime:R.group({time:R.control(t.nextTime.time),date:R.control(t.nextTime.date)}),runAgain:R.group({repeatValue:R.control(t.runAgain.repeatValue),repeatUnit:R.control(t.runAgain.repeatUnit),allowedDays:R.group({mon:R.control(t.runAgain.allowedDays.mon),tue:R.control(t.runAgain.allowedDays.tue),wed:R.control(t.runAgain.allowedDays.wed),thu:R.control(t.runAgain.allowedDays.thu),fri:R.control(t.runAgain.allowedDays.fri),sat:R.control(t.runAgain.allowedDays.sat),sun:R.control(t.runAgain.allowedDays.sun)})})}),ot=class t{#t=h(z);#e=h(L);#n=h(Y);formRef=q.required("formRef");scheduleForm=this.#t.scheduleForm;scheduleFormSignal=this.#t.scheduleFormSignal;unitOptions=vt;displayFn(i){let e=vt.find(n=>n.key===i);return e?`${e.label}`:""}goBack(){this.#e.navigate(["source-data"],{relativeTo:this.#n.parent})}next(){this.#e.navigate(["options"],{relativeTo:this.#n.parent})}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=j({type:t,selectors:[["app-schedule"]],viewQuery:function(e,n){e&1&&K(n.formRef,vn,5),e&2&&W()},standalone:!0,features:[Q],decls:20,vars:2,consts:[["formRef",""],["timeRef",""],["dateRef",""],[3,"submit","formGroup"],[1,"title-30"],[1,"toggle-wrap"],[1,"raised","primary"],["type","checkbox","formControlName","autoRun"],[1,"form-actions"],["spk-button","","type","button",3,"click"],["spk-button","","type","submit",1,"raised","primary"],["formGroupName","nextTime",1,"row-inputs"],["for","time"],["type","time","id","time","formControlName","time",3,"focus"],["suffix",""],["for","date"],["type","date","id","date","formControlName","date",3,"focus"],["formGroupName","runAgain"],[1,"row-inputs"],["for","repeatValue"],["type","number","id","repeatValue","formControlName","repeatValue"],[3,"displayFn"],["type","text","id","repeatUnit","formControlName","repeatUnit"],["options",""],[3,"value"],["formGroupName","allowedDays",3,"disallowToggle"],["title",""],[1,"days-wrap"],["type","checkbox","formControlName","mon"],["type","checkbox","formControlName","tue"],["type","checkbox","formControlName","wed"],["type","checkbox","formControlName","thu"],["type","checkbox","formControlName","fri"],["type","checkbox","formControlName","sat"],["type","checkbox","formControlName","sun"]],template:function(e,n){if(e&1){let r=w();a(0,"form",3,0),g("submit",function(){return f(r),C(n.next())}),a(2,"h3",4),l(3,"Schedule"),o(),a(4,"div",5)(5,"spk-toggle",6),l(6," Automatically run backups "),c(7,"input",7),o(),a(8,"p"),l(9,"If a date was missed, the job will run as soon as possible."),o()(),u(10,bn,50,2),a(11,"div",8)(12,"button",9),g("click",function(){return f(r),C(n.goBack())}),a(13,"spk-icon"),l(14,"arrow-left"),o(),l(15," Go back "),o(),a(16,"button",10)(17,"spk-icon"),l(18,"arrow-right"),o(),l(19," Continue "),o()()()}if(e&2){let r;m("formGroup",n.scheduleForm),s(10),_((r=n.scheduleFormSignal())!=null&&r.autoRun?-1:10)}},dependencies:[ae,ee,ie,oe,J,ge,Ce,Z,X,te,ne,xe,le,se,he,re,ye,Se],styles:["[_nghost-%COMP%]{display:block}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.toggle-wrap[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem}.row-inputs[_ngcontent-%COMP%]{display:flex;align-items:flex-end;gap:.5rem}.row-inputs[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{flex:1 0}.days-wrap[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"],changeDetection:0})};var wn=["formRef"];function Dn(t,i){if(t&1&&(a(0,"option",21),l(1),o()),t&2){let e=i.$implicit;m("value",e),s(),A(e)}}function Tn(t,i){if(t&1&&(a(0,"div",14)(1,"spk-form-field"),c(2,"input",18),o(),a(3,"spk-select"),c(4,"input",19),F(5,20),O(6,Dn,2,2,"option",21,T),b(),o()()),t&2){let e=p(2);s(6),N(e.sizeOptions())}}function On(t,i){if(t&1){let e=w();a(0,"form",2,0),g("submit",function(){f(e);let r=p();return C(r.next())}),a(2,"h3",3),l(3,"Source Data"),o(),a(4,"app-file-tree",4)(5,"label",5),l(6,"Folder path"),o(),c(7,"input",6),o(),a(8,"app-toggle-card",7),F(9,8),l(10,"Exclude"),b(),a(11,"spk-toggle",9),l(12," Hidden files "),c(13,"input",10),o(),a(14,"spk-toggle",9),l(15," System files "),c(16,"input",11),o(),a(17,"spk-toggle",9),l(18," Temporary files "),c(19,"input",12),o(),a(20,"spk-toggle",13),g("click",function(){f(e);let r=p();return C(r.toggleFilesLargerThan())}),l(21," Files larger than "),o(),u(22,Tn,8,0,"div",14),o(),a(23,"div",15)(24,"button",16),g("click",function(){f(e);let r=p();return C(r.goBack())}),a(25,"spk-icon"),l(26,"arrow-left"),o(),l(27," Go back "),o(),a(28,"button",17)(29,"spk-icon"),l(30,"arrow-right"),o(),l(31," Continue "),o()()()}if(t&2){let e=p();m("formGroup",e.sourceDataForm),s(4),m("multiSelect",!0)("startingPath",e.getPath()),s(4),m("isActive",!0),s(12),ct("active",e.filesLargerThan()),s(2),_(e.filesLargerThan()?22:-1)}}var _e=new B,Nn=["Bytes","KB","MB","GB","TB","PB"],En=["Contains","Does not contain","Is greater than","Is less than"];var bt=(t={path:"",excludes:{hidden:!1,system:!1,temporary:!1,filesLargerThan:null}})=>_e.group({path:_e.control(t.path),excludes:_e.group({hidden:_e.control(t.excludes.hidden),system:_e.control(t.excludes.system),temporary:_e.control(t.excludes.temporary),filesLargerThan:_e.group({size:_e.control(null),unit:_e.control(null)})})}),at=class t{#t=h(z);#e=h(L);#n=h(Y);formRef=q.required("formRef");sourceDataForm=this.#t.sourceDataForm;sourceDataFormSignal=this.#t.sourceDataFormSignal;finishedLoading=this.#t.finishedLoading;filesLargerThan=H(()=>this.sourceDataFormSignal()?.excludes?.filesLargerThan?.size!==null);sizeOptions=k(Nn);expressionOptions=k(En);getPath(){return this.sourceDataForm.value.path??null}toggleFilesLargerThan(){this.sourceDataForm.controls.excludes.value.filesLargerThan?.size===null?this.sourceDataForm.controls.excludes.controls.filesLargerThan.setValue({size:50,unit:"MB"}):this.sourceDataForm.controls.excludes.controls.filesLargerThan.setValue({size:null,unit:null})}goBack(){this.#e.navigate(["destination"],{relativeTo:this.#n.parent})}next(){this.#e.navigate(["schedule"],{relativeTo:this.#n.parent})}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=j({type:t,selectors:[["app-source-data"]],viewQuery:function(e,n){e&1&&K(n.formRef,wn,5),e&2&&W()},standalone:!0,features:[Q],decls:1,vars:1,consts:[["formRef",""],[3,"formGroup"],[3,"submit","formGroup"],[1,"title-30"],[3,"multiSelect","startingPath"],["for","path"],["type","text","id","path","tabindex","4","placeholder","Path","formControlName","path"],["formGroupName","excludes",3,"isActive"],["title",""],[1,"raised","primary"],["type","checkbox","placeholder","Hidden files","formControlName","hidden"],["type","checkbox","placeholder","System files","formControlName","system"],["type","checkbox","placeholder","Temporary files","formControlName","temporary"],[1,"raised","primary",3,"click"],["formGroupName","filesLargerThan",1,"row-inputs"],[1,"form-actions"],["spk-button","","type","button",3,"click"],["spk-button","","type","submit",1,"raised","primary"],["type","number","formControlName","size"],["type","text","formControlName","unit","placeholder","Select an option..."],["options",""],[3,"value"]],template:function(e,n){e&1&&u(0,On,32,7,"form",1),e&2&&_(n.finishedLoading()?0:-1)},dependencies:[ae,ee,ie,oe,J,ge,Ce,Z,X,te,ne,xe,le,re,ye,se,he,Qe,Se],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}.row-inputs[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr min-content;gap:.5rem}.filter-inputs[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:flex-end}.filter-inputs[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{flex:1 0}.filter-inputs[_ngcontent-%COMP%] .filter-removal[_ngcontent-%COMP%]{cursor:pointer;display:flex;align-items:center;justify-content:center;height:2.5rem;flex:0 0}"],changeDetection:0})};var V=new B,z=class t{#t=h(L);#e=h(fe);#n=h(je);#i=h(He);#a=h(xt);destinationOptions=this.#e.backendModules;isDraft=k(!1);backupId=k(null);isSubmitting=k(!1);loadingBackup=k(!1);loadingDefaults=k(!0);finishedLoading=k(!1);isNew=H(()=>this.backupId()==="new");backupDefaults=k(null);generalForm=St();sourceDataForm=bt();scheduleForm=Ft();destinationForm=wt();optionsForm=kt();selectedAdvancedFormPair=k([]);notSelectedAdvancedFormPair=k([]);destinationFormPair=k({oauthField:null,custom:[],dynamic:[],advanced:[]});sourceDataFormSignal=Ie(this.sourceDataForm.valueChanges);destinationFormSignal=Ie(this.destinationForm.valueChanges);encryptionFieldSignal=Ie(this.generalForm.controls.encryption.valueChanges);scheduleFormSignal=Ie(this.scheduleForm.valueChanges);advancedOptions=H(()=>this.#e.sysInfoSignal()?.Options??[]);encryptionOptions=H(()=>{let i=this.#e.sysInfoSignal()?.EncryptionModules??[];return[nt,...i]});selectedAdvancedOptions=k([]);nonSelectedAdvancedOptions=H(()=>this.advancedOptions().sort((i,e)=>i?.Name&&e?.Name?i?.Name.localeCompare(e?.Name):0).filter(i=>this.selectedAdvancedOptions()?.findIndex(e=>e.name===i.Name)===-1));init(i="new",e=!1){this.backupId.set(i),i!=="new"?this.getBackup(i,e):this.getDefaults()}submit(){this.isSubmitting.set(!0);let i=this.#m(),e=this.backupId();e==="new"||!e||this.isDraft()?this.#n.postApiV1Backups({requestBody:i}).pipe(ve(()=>this.isSubmitting.set(!1))).subscribe({next:n=>{console.log("submitted res",n),this.exit()},error:n=>{console.error("submitted error",n)}}):this.#n.putApiV1BackupById({id:e,requestBody:i}).pipe(ve(()=>this.isSubmitting.set(!1))).subscribe({next:n=>{console.log("submitted res",n),this.exit()},error:n=>{console.error("submitted error",n)}})}exit(){this.#u(),this.#t.navigate(["/"])}getDefaults(){this.loadingDefaults.set(!0),this.#n.getApiV1Backupdefaults().pipe(mt(1),ve(()=>this.loadingDefaults.set(!1))).subscribe({next:i=>{this.#r(i.Schedule),this.#p(i.Backup),this.backupDefaults.set(i),this.finishedLoading.set(!0)}})}getBackup(i,e=!1){this.loadingBackup.set(!0);let n=r=>{console.log("hi 1"),this.#r(r.Schedule??null),r.Backup&&(this.#s(r.Backup),this.#l(r.Backup),this.#o(r.Backup),this.#p(r.Backup)),this.finishedLoading.set(!0)};if(e){this.isDraft.set(e);let r=this.#a.draftBackups().find(d=>d.id===i);if(!r){this.loadingBackup.set(!1),alert("Backup not found");return}n(r.data)}else console.log("hi"),this.#n.getApiV1BackupById({id:i}).pipe(ve(()=>this.loadingBackup.set(!1))).subscribe({next:n})}#o(i){let e=i.Sources??"",n=i.Filters?.map(I=>`${I.Include?"":"-"}${I.Expression}`)??[],r=i.Settings?.find(I=>I.Name==="--exclude-files-attributes")?.Value??"",d=i.Settings?.find(I=>I.Name==="--skip-files-larger-than")??null,v=d?.Value.replace(/[0-9]/g,"")??null,U=d?.Value.replace(/[^0-9]/g,"")??null,pe={path:[...e,...n].join("\0"),excludes:{hiddenFiles:r.includes("hidden"),systemFiles:r.includes("system"),tempFiles:r.includes("temporary"),filesLargerThan:v&&U?{size:parseInt(U),unit:v.toUpperCase()}:null}};this.sourceDataForm.patchValue(pe)}#l(i){let e=i.TargetURL?ht(i.TargetURL):null;e&&this.addDestinationFormGroup(e.destinationType,{custom:e.custom,dynamic:e.dynamic,advanced:e.advanced})}#s(i){let e=i.Settings?.find(r=>r.Name==="encryption-module"),n=e?.Value&&e.Value.length?e.Value:"none";this.generalForm.patchValue({name:i.Name??"",description:i.Description??"",encryption:n})}#r(i){if(!i){this.scheduleForm.patchValue({autoRun:!0});return}let e=this.#i.fromString(i.Repeat)??null,r={nextTime:this.#d(i.Time),runAgain:{repeatValue:e?.value??1,repeatUnit:e?.unit??"D",allowedDays:{mon:i.AllowedDays?.includes("mon")??!1,tue:i.AllowedDays?.includes("tue")??!1,wed:i.AllowedDays?.includes("wed")??!1,thu:i.AllowedDays?.includes("thu")??!1,fri:i.AllowedDays?.includes("fri")??!1,sat:i.AllowedDays?.includes("sat")??!1,sun:i.AllowedDays?.includes("sun")??!1}}};this.scheduleForm.patchValue(r)}#p(i){let e=["--no-encryption","--exclude-files-attributes","--skip-files-larger-than"],n=this.advancedOptions();i.Settings?.forEach(r=>{if(r.Name==="encryption-module")return this.generalForm.controls.encryption.setValue(r.Value??"");if(!(r.Name&&e.includes(r.Name))){if(r.Name==="dblock-size"){let d=r.Value?.replace(/[^0-9]/g,""),v=r.Value?.replace(/[0-9]/g,"");return this.optionsForm.controls.remoteVolumeSize.setValue({size:d?parseInt(d):null,unit:v?v.toUpperCase():null})}if(r.Name&&r.Value){let d=n.find(v=>v.Name===r.Name);if(!d)return;this.addOptionToFormGroup(d,r.Value)}}})}hello(){return this.#m()}#m(){let i=this.generalForm.value,e=this.optionsForm.value,n=this.scheduleForm.value,r=this.sourceDataForm.value,v=this.destinationForm.value.destinations?.length?this.#c(this.destinationForm.controls.destinations):[],U=null;n.runAgain?.repeatUnit&&n.runAgain?.repeatValue&&(U=this.#i.toString(n.runAgain.repeatValue,n.runAgain.repeatUnit));let pe=n.runAgain?.allowedDays?Object.entries(n.runAgain?.allowedDays).filter(([S,E])=>E).map(([S,E])=>S):[],I=r.path?.split("\0")??[],Ae=i.encryption==="none"?{Name:"--no-encryption",Value:"True"}:{Name:"encryption-module",Value:i.encryption??null},Re=this.advancedOptions(),Be=Object.entries(e.advancedOptions??{}).filter(([S,E])=>S&&E).map(([S,E])=>{let $=Re.find(ke=>ke.Name===S);return $?.Type==="Size"?{Name:S,Value:`${E.size}${E.unit.toLowerCase()}`}:$?.Type==="Integer"?{Name:S,Value:E.toString()}:$?.Type==="Boolean"?{Name:S,Value:E.toString()}:{Name:S,Value:E}}),G=[Ae,...Be],x=Object.entries(r.excludes??{}).filter(([S,E])=>E&&S!=="filesLargerThan").map(([S])=>S),M=r.excludes?.filesLargerThan;return x.length&&G.push({Name:"--exclude-files-attributes",Value:x.join(",")}),M&&M.size!==null&&M.unit!==null&&G.push({Name:"--skip-files-larger-than",Value:`${M.size}${M.unit}`}),{Backup:{Name:i.name,Description:i.description,TargetURL:v[0]??null,Sources:I.filter(S=>!S.startsWith("-")),Settings:G,Filters:I.filter(S=>S.startsWith("-")).map((S,E)=>({Order:E,Include:!1,Expression:S.slice(1)}))},Schedule:n.autoRun?null:{Repeat:U,Time:n.nextTime?.date?new Date(`${n.nextTime.date}T${n.nextTime?.time||"00:00:00"}`).toISOString():null,AllowedDays:pe}}}#c(i){return i.controls.map(e=>{if(!e.controls.advanced)return Pe(e.value);let n=Object.keys(e.controls.advanced.controls).filter(r=>e.controls.advanced.controls[r].dirty);return Pe($e(me({},e.value),{advanced:n.reduce((r,d)=>(r[d]=e.controls.advanced.controls[d].value,r),{})}))})}#d(i){if(!i||i?.indexOf("T")===-1)return{time:i??"13:00"};let e=new Date(i),n={time:`${(""+e.getHours()).padStart(2,"0")}:${(""+e.getMinutes()).padStart(2,"0")}`};return i.indexOf("T")!==-1&&(n.date=e.toISOString().split("T")[0]),n}removeOptionFromFormGroup(i){let e=i.name;e&&(this.optionsForm.controls.advancedOptions.removeControl(e),this.selectedAdvancedOptions.update(n=>(n=n.filter(r=>r.name!==e),n)))}addOptionToFormGroup(i,e){let n=this.optionsForm.controls.advancedOptions,r=e??i.DefaultValue;if((i.Type==="String"||i.Type==="Password"||i.Type==="Enumeration"||i.Type==="Path")&&n.addControl(i.Name,V.control(r)),i.Type==="Size"){let d=r.replace(/[0-9]/g,""),v=r.replace(/[^0-9]/g,"");n.addControl(i.Name,V.group({size:V.control(v?parseInt(v):50),unit:V.control(d?d.toUpperCase():"MB")}))}i.Type==="Integer"&&n.addControl(i.Name,V.control(r?parseInt(r):0)),i.Type==="Boolean"&&n.addControl(i.Name,V.control(r==="true")),i.Type==="Flags"&&n.addControl(i.Name,V.control(r??"")),i.Type==="Timespan"&&n.addControl(i.Name,V.control(r,[Fe.pattern(/([-+]?\d{1,3}[smhDWMY])+/)])),this.selectedAdvancedOptions.update(d=>(d.push({name:i.Name,type:i.Type,shortDescription:i.ShortDescription??void 0,longDescription:i.LongDescription??void 0,options:i.ValidValues}),d))}addDestinationFormGroup(i,e){let n=this.destinationOptions().find(G=>G.Key===i);if(!n||!n.Options)return;let r=Ge.hasOwnProperty(i)&&Ge[i],d=r&&r.customFields?r.customFields:{},v=r&&r.dynamicFields?r.dynamicFields:[],U=r&&r.advancedFields?r.advancedFields:[],pe=r&&r.oauthField?r.oauthField:null;this.destinationFormPair.set({oauthField:pe,custom:[],dynamic:[],advanced:[]}),this.selectedAdvancedFormPair.set([]);let I=V.group({}),Ae=V.group({}),Re=V.group({});if(d)for(i in d){let Be=d[i],{formElement:G}=Be,x=pt(Be,["formElement"]);I.addControl(i,G(e?.custom[i])),this.destinationFormPair.update(M=>(M.custom.push(x),M))}for(let G=0;G<n.Options.length;G++){let x=n.Options[G];if(x.Deprecated)continue;let M=v.includes(x.Name),S=M?Ae:Re;this.destinationFormPair.update(ke=>(ke[M?"dynamic":"advanced"].push({name:x.Name,type:x.Type,shortDescription:x.ShortDescription??void 0,longDescription:x.LongDescription??void 0,options:x.ValidValues}),ke));let $=(M?e?.dynamic[x.Name]:e?.advanced[x.Name])??x.DefaultValue;if(x.Type==="String"||x.Type==="Password"||x.Type==="Enumeration"||x.Type==="Path"){S.addControl(x.Name,V.control($));continue}if(x.Type==="Size"){let ke=$.replace(/[0-9]/g,""),st=$.replace(/[^0-9]/g,"");S.addControl(x.Name,V.group({size:V.control(st?parseInt(st):50),unit:V.control(ke?ke.toUpperCase():"MB")}))}if(x.Type==="Integer"){S.addControl(x.Name,V.control($?parseInt($):0));continue}if(x.Type==="Boolean"){S.addControl(x.Name,V.control($==="true"));continue}if(x.Type==="Flags"){S.addControl(x.Name,V.control($??""));continue}x.Type==="Timespan"&&S.addControl(x.Name,V.control($,[Fe.pattern(/([-+]?\d{1,3}[smhDWMY])+/)]))}this.destinationForm.controls.destinations.length!==0&&this.destinationForm.controls.destinations.removeAt(0),this.destinationFormPair.update(G=>({oauthField:G.oauthField,custom:G.custom,dynamic:G.dynamic.sort((x,M)=>v.indexOf(x.name)-v.indexOf(M.name)),advanced:G.advanced.sort((x,M)=>{let S=U.indexOf(x.name),E=U.indexOf(M.name);return S===-1&&E!==-1?1:S!==-1&&E===-1?-1:S-E})})),this.notSelectedAdvancedFormPair.set(this.destinationFormPair().advanced),this.destinationForm.controls.destinations.push(Dt({key:n.Key,customGroup:I,dynamicGroup:Ae,advancedGroup:Re}))}#u(){this.generalForm.reset(),this.sourceDataForm.reset(),this.scheduleForm.reset(),this.destinationForm.reset(),this.optionsForm.reset()}static \u0275fac=function(e){return new(e||t)};static \u0275prov=De({token:t,factory:t.\u0275fac,providedIn:"root"})};var Pn=["formRef"],Vn=(t,i,e,n)=>({destination:t,destinationType:i,index:e,formGroupName:"custom",oauthField:n}),lt=t=>({$implicit:t}),In=(t,i,e,n)=>({destination:t,destinationType:i,index:e,formGroupName:"dynamic",oauthField:n}),Gn=(t,i,e,n)=>({destination:t,destinationType:i,index:e,formGroupName:"advanced",oauthField:n});function Mn(t,i){if(t&1){let e=w();a(0,"button",10),g("click",function(){f(e);let r=p(2);return C(r.testDestination())}),l(1,"Test destination"),o()}}function An(t,i){if(t&1){let e=w();a(0,"p",11),g("click",function(){f(e);let r=p(2);return C(r.removeDestinationFormGroup(r.destinationCount()-1))}),l(1," Wanna select another destination? "),a(2,"span",12),l(3,"Click here"),o()()}}function Rn(t,i){if(t&1){let e=w();a(0,"div",13)(1,"div",14),g("click",function(){f(e);let r=p(2);return C(r.addDestinationFormGroup("file"))}),a(2,"h3"),l(3,"File system"),o(),a(4,"p"),l(5,"Store backups on your local file system."),o()(),a(6,"div",14),g("click",function(){f(e);let r=p(2);return C(r.addDestinationFormGroup("gcs"))}),a(7,"h3"),l(8,"Google Cloud Storage"),o(),a(9,"p"),l(10,"Store backups in Google Cloud Storage."),o()(),a(11,"div",14),g("click",function(){f(e);let r=p(2);return C(r.addDestinationFormGroup("s3"))}),a(12,"h3"),l(13,"S3 compatible bucket"),o(),a(14,"p"),l(15,"Store backups in any S3 compatible bucket."),o()(),a(16,"div",14),g("click",function(){f(e);let r=p(2);return C(r.addDestinationFormGroup("ssh"))}),a(17,"h3"),l(18,"SSH"),o(),a(19,"p"),l(20,"Store backups in SSH."),o()(),a(21,"div",14),g("click",function(){f(e);let r=p(2);return C(r.addDestinationFormGroup("googledrive"))}),a(22,"h3"),l(23,"Google Drive"),o(),a(24,"p"),l(25,"Store backups in Google Drive."),o()()(),a(26,"p"),l(27,"More destinations are coming soon."),o()}}function Bn(t,i){t&1&&Te(0)}function $n(t,i){if(t&1&&u(0,Bn,1,0,"ng-container",17),t&2){let e,n=i.$implicit,r=i.$index;p(2);let d=de(6),v=p(2);m("ngTemplateOutlet",d)("ngTemplateOutletContext",Oe(7,lt,Le(2,Vn,n,(e=v.destinationFormSignal())==null||e.destinations==null||e.destinations[0]==null?null:e.destinations[0].destinationType,r,v.destinationFormPair().oauthField)))}}function Ln(t,i){if(t&1&&(F(0),O(1,$n,1,9,"ng-container",null,T),b()),t&2){let e=p(3);s(),N(e.destinationFormPair().custom)}}function zn(t,i){t&1&&Te(0)}function Un(t,i){if(t&1&&u(0,zn,1,0,"ng-container",17),t&2){let e,n=i.$implicit,r=i.$index;p(2);let d=de(6),v=p(2);m("ngTemplateOutlet",d)("ngTemplateOutletContext",Oe(7,lt,Le(2,In,n,(e=v.destinationFormSignal())==null||e.destinations==null||e.destinations[0]==null?null:e.destinations[0].destinationType,r,v.destinationFormPair().oauthField)))}}function jn(t,i){if(t&1&&(F(0),O(1,Un,1,9,"ng-container",null,T),b()),t&2){let e=p(3);s(),N(e.destinationFormPair().dynamic)}}function qn(t,i){if(t&1){let e=w();a(0,"button",22),g("click",function(){let r=f(e).$implicit,d=p(4);return C(d.addAdvancedFormPair(r))}),l(1),o()}if(t&2){let e=i.$implicit;s(),D(" ",e.name," ")}}function Kn(t,i){t&1&&Te(0)}function Wn(t,i){if(t&1&&u(0,Kn,1,0,"ng-container",17),t&2){let e,n=i.$implicit,r=i.$index;p(2);let d=de(6),v=p(2);m("ngTemplateOutlet",d)("ngTemplateOutletContext",Oe(7,lt,Le(2,Gn,n,(e=v.destinationFormSignal())==null||e.destinations==null||e.destinations[0]==null?null:e.destinations[0].destinationType,r,v.destinationFormPair().oauthField)))}}function Qn(t,i){if(t&1&&(a(0,"app-toggle-card",16),F(1,18),l(2," Advanced options "),a(3,"spk-menu")(4,"button",19),l(5," Add advanced option "),a(6,"spk-icon"),l(7,"plus"),o()(),F(8,20),O(9,qn,2,1,"button",21,T),b(),o(),b(),F(11),O(12,Wn,1,9,"ng-container",null,T),b(),o()),t&2){let e=p(3);m("disallowToggle",!0),s(9),N(e.notSelectedAdvancedFormPair()),s(3),N(e.selectedAdvancedFormPair())}}function Hn(t,i){if(t&1&&(a(0,"spk-icon",29),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.destination.longDescription)}}function Yn(t,i){if(t&1&&(a(0,"app-file-tree",24)(1,"label",28),l(2),u(3,Hn,2,1,"spk-icon",29),o(),c(4,"input",30),o()),t&2){let e,n=p().$implicit,r=p(3);m("startingPath",r.getFormFieldValue(n.index,n.formGroupName,n.destination.name)),s(),dt("for","destination-",n.formGroupName,"-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.destination.shortDescription)!==null&&e!==void 0?e:n.destination.name," "),s(),_(n.destination.longDescription?3:-1),s(),y("id","destination-",n.formGroupName,"-",n.index,""),ce("formControlName",n.destination.name)}}function Jn(t,i){if(t&1&&(a(0,"spk-icon",29),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.destination.longDescription)}}function Zn(t,i){t&1&&(a(0,"spk-icon",31),l(1,"link"),o())}function Xn(t,i){t&1&&(a(0,"spk-icon",31),l(1,"textbox"),o())}function ei(t,i){if(t&1&&(a(0,"spk-form-field")(1,"label",28),l(2),u(3,Jn,2,1,"spk-icon",29),o(),c(4,"input",30),u(5,Zn,2,0,"spk-icon",31)(6,Xn,2,0,"spk-icon",31),o()),t&2){let e,n=p().$implicit;s(),y("for","destination-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.destination.shortDescription)!==null&&e!==void 0?e:n.destination.name," "),s(),_(n.destination.longDescription?3:-1),s(),y("id","destination-",n.formGroupName,"-",n.index,""),ce("formControlName",n.destination.name),s(),_(n.destination.type==="Path"?5:6)}}function ti(t,i){if(t&1){let e=w();a(0,"span",35),g("click",function(){f(e);let r=p(2).$implicit,d=p(3);return C(d.oauthStartTokenCreation(r.destinationType))}),l(1,"AuthID"),o()}}function ni(t,i){t&1&&(a(0,"spk-icon",31),l(1,"password"),o())}function ii(t,i){if(t&1){let e=w();a(0,"spk-icon",36),g("click",function(){f(e);let r=p(2).$implicit;return C(r.destination.showPassword=!r.destination.showPassword)}),l(1," eye "),o()}}function oi(t,i){if(t&1){let e=w();a(0,"spk-icon",36),g("click",function(){f(e);let r=p(2).$implicit;return C(r.destination.showPassword=!r.destination.showPassword)}),l(1," eye-slash "),o()}}function ai(t,i){if(t&1&&(a(0,"spk-form-field")(1,"label",28),l(2),o(),c(3,"input",32),u(4,ti,2,0,"span",33)(5,ni,2,0,"spk-icon",31)(6,ii,2,0,"spk-icon",34)(7,oi,2,0,"spk-icon",34),o()),t&2){let e,n=p().$implicit;s(),y("for","destination-",n.formGroupName,"-",n.index,""),s(),ut(" ",(e=n.destination.shortDescription)!==null&&e!==void 0?e:n.destination.name," -- ",n.oauthField," ",n.destinationType," ",n.destination.name," "),s(),y("id","destination-",n.formGroupName,"-",n.index,""),ce("formControlName",n.destination.name),m("type",n.destination.showPassword?"text":"password"),s(),_(n.oauthField===n.destination.name?4:5),s(2),_(n.destination.showPassword?6:7)}}function ri(t,i){if(t&1&&(a(0,"spk-icon",29),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.destination.longDescription)}}function li(t,i){if(t&1&&(a(0,"option",39),l(1),o()),t&2){let e=i.$implicit;m("value",e),s(),A(e)}}function si(t,i){if(t&1&&(a(0,"spk-select")(1,"label",28),l(2),u(3,ri,2,1,"spk-icon",29),o(),c(4,"input",37),F(5,38),O(6,li,2,2,"option",39,T),b(),o()),t&2){let e,n=p().$implicit;s(),y("for","destination-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.destination.shortDescription)!==null&&e!==void 0?e:n.destination.name," "),s(),_(n.destination.longDescription?3:-1),s(),y("id","destination-",n.formGroupName,"-",n.index,""),ce("formControlName",n.destination.name),s(2),N(n.destination.options)}}function pi(t,i){if(t&1&&(a(0,"spk-icon",29),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.destination.longDescription)}}function mi(t,i){if(t&1&&(a(0,"option",39),l(1),o()),t&2){let e=i.$implicit;m("value",e),s(),A(e)}}function ci(t,i){if(t&1&&(a(0,"div",25)(1,"label",28),l(2),u(3,pi,2,1,"spk-icon",29),o(),a(4,"div",40)(5,"spk-form-field"),c(6,"input",41),a(7,"spk-icon",31),l(8,"resize"),o()(),a(9,"spk-select"),c(10,"label")(11,"input",42),F(12,38),O(13,mi,2,2,"option",39,T),b(),o()()()),t&2){let e,n=p().$implicit,r=p(3);m("formGroupName",n.destination.name),s(),y("for","destination-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.destination.shortDescription)!==null&&e!==void 0?e:n.destination.name," "),s(),_(n.destination.longDescription?3:-1),s(3),y("id","destination-",n.formGroupName,"-",n.index,""),s(7),N(r.sizeOptions())}}function di(t,i){if(t&1&&(a(0,"spk-icon",29),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.destination.longDescription)}}function ui(t,i){if(t&1&&(a(0,"spk-form-field")(1,"label",28),l(2),u(3,di,2,1,"spk-icon",29),o(),c(4,"input",43),a(5,"spk-icon",31),l(6,"numpad"),o()()),t&2){let e,n=p().$implicit;s(),y("for","destination-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.destination.shortDescription)!==null&&e!==void 0?e:n.destination.name," "),s(),_(n.destination.longDescription?3:-1),s(),y("id","destination-",n.formGroupName,"-",n.index,""),ce("formControlName",n.destination.name)}}function _i(t,i){if(t&1&&(a(0,"spk-icon",29),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.destination.longDescription)}}function fi(t,i){if(t&1&&(a(0,"spk-toggle",26)(1,"label",28),l(2),u(3,_i,2,1,"spk-icon",29),o(),c(4,"input",44),o()),t&2){let e,n=p().$implicit;s(),y("for","destination-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.destination.shortDescription)!==null&&e!==void 0?e:n.destination.name," "),s(),_(n.destination.longDescription?3:-1),s(),y("id","destination-",n.formGroupName,"-",n.index,""),ce("formControlName",n.destination.name)}}function Ci(t,i){if(t&1&&(a(0,"spk-icon",29),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.destination.longDescription)}}function gi(t,i){t&1&&(a(0,"spk-option",46),l(1,"None"),o()),t&2&&m("value","None")}function xi(t,i){if(t&1&&(a(0,"spk-option",39),l(1),c(2,"spk-checkbox",47),o()),t&2){let e=p().$implicit;m("value",e),s(),D(" ",e," ")}}function yi(t,i){if(t&1&&u(0,gi,2,1,"spk-option",46)(1,xi,3,2,"spk-option",39),t&2){let e=i.$implicit;_(e==="None"?0:1)}}function hi(t,i){if(t&1&&(a(0,"spk-select",27)(1,"label",28),l(2),u(3,Ci,2,1,"spk-icon",29),o(),c(4,"input",45),F(5,38),O(6,yi,2,1,null,null,T),b(),o()),t&2){let e,n=p().$implicit;m("selectMultiple",!0),s(),y("for","destination-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.destination.shortDescription)!==null&&e!==void 0?e:n.destination.name," "),s(),_(n.destination.longDescription?3:-1),s(),ce("formControlName",n.destination.name),s(2),N(n.destination.options)}}function Si(t,i){if(t&1&&(a(0,"spk-icon",29),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.destination.longDescription)}}function ki(t,i){if(t&1&&(a(0,"spk-form-field")(1,"label",28),l(2),u(3,Si,2,1,"spk-icon",29),o(),c(4,"input",30)(5,"span",48),o()),t&2){let e,n=p().$implicit;s(),y("for","destination-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.destination.shortDescription)!==null&&e!==void 0?e:n.destination.name," "),s(),_(n.destination.longDescription?3:-1),s(),y("id","destination-",n.formGroupName,"-",n.index,""),ce("formControlName",n.destination.name)}}function vi(t,i){if(t&1&&(F(0,23),u(1,Yn,5,11,"app-file-tree",24)(2,ei,7,10,"spk-form-field")(3,ai,8,14,"spk-form-field")(4,si,8,9,"spk-select")(5,ci,15,9,"div",25)(6,ui,7,9,"spk-form-field")(7,fi,5,9,"spk-toggle",26)(8,hi,8,7,"spk-select",27)(9,ki,6,9,"spk-form-field"),b()),t&2){let e=i.$implicit;m("formGroupName",e.formGroupName),s(),_(e.destination.type==="file-tree"?1:e.destination.type==="String"||e.destination.type==="Path"?2:e.destination.type==="Password"?3:e.destination.type==="Enumeration"?4:e.destination.type==="Size"?5:e.destination.type==="Integer"?6:e.destination.type==="Boolean"?7:e.destination.type==="Flags"?8:e.destination.type==="Timespan"?9:-1)}}function Fi(t,i){if(t&1&&(F(0,6)(1,15),u(2,Ln,3,0,"ng-container")(3,jn,3,0,"ng-container")(4,Qn,14,1,"app-toggle-card",16)(5,vi,10,2,"ng-template",null,1,ze),b()()),t&2){let e=p(2);s(2),_(e.destinationFormPair().custom.length?2:-1),s(),_(e.destinationFormPair().dynamic.length?3:-1),s(),_(e.destinationFormPair().advanced.length?4:-1)}}function bi(t,i){if(t&1){let e=w();a(0,"form",3,0),g("submit",function(){f(e);let r=p();return C(r.next())}),a(2,"header")(3,"h3",4),l(4," Backup destination "),u(5,Mn,2,0,"button",5),o(),a(6,"p"),l(7),o(),u(8,An,4,0,"p"),o(),u(9,Rn,28,0)(10,Fi,7,3,"ng-container",6),a(11,"div",7)(12,"button",8),g("click",function(){f(e);let r=p();return C(r.goBack())}),a(13,"spk-icon"),l(14,"arrow-left"),o(),l(15," Go back "),o(),a(16,"button",9)(17,"spk-icon"),l(18,"arrow-right"),o(),l(19," Continue "),o()()()}if(t&2){let e,n=p();m("formGroup",n.destinationForm),s(5),_(n.destinationCount()>0?5:-1),s(2),A(n.targetUrl()),s(),_(n.destinationCount()>0?8:-1),s(),_(n.destinationCount()===0?9:-1),s(),_(!((e=n.destinationFormSignal())==null||e.destinations==null)&&e.destinations.length?10:-1)}}var wi=["Bytes","KB","MB","GB","TB","PB"],Xe=new B,wt=(t={destinations:[]})=>Xe.group({destinations:Xe.array(t.destinations)}),Dt=({key:t,customGroup:i,dynamicGroup:e,advancedGroup:n})=>Xe.group({destinationType:Xe.control(t),custom:i,dynamic:e,advanced:n}),rt=class t{#t=h(L);#e=h(Y);#n=h(fe);#i=h(Ct);#a=h(je);#o=h(z);formRef=q.required("formRef");sysIsLoaded=this.#n.isLoaded;finishedLoading=this.#o.finishedLoading;destinationForm=this.#o.destinationForm;destinationFormPair=this.#o.destinationFormPair;selectedAdvancedFormPair=this.#o.selectedAdvancedFormPair;notSelectedAdvancedFormPair=this.#o.notSelectedAdvancedFormPair;destinationOptions=this.#o.destinationOptions;destinationFormSignal=this.#o.destinationFormSignal;destinationCount=H(()=>this.destinationFormSignal()?.destinations?.length??0);sizeOptions=k(wi);getFormFieldValue(i,e,n){return((this.destinationForm.controls.destinations.controls?.[i]).controls?.[e]).controls[n].value}addDestinationFormGroup(i){this.#o.addDestinationFormGroup(i)}addAdvancedFormPair(i){this.selectedAdvancedFormPair.update(e=>(e.push(i),e)),this.notSelectedAdvancedFormPair.update(e=>(e=e.filter(n=>n.name!==i.name),e))}targetUrl=H(()=>{let i=this.destinationFormSignal()?.destinations?.[0];return i?Pe(i):""});testDestination(){let i=this.targetUrl();if(!i)return;let e=null;i.startsWith("s3://")?e=this.#a.postApiV1RemoteoperationCreate({requestBody:{path:i}}):e=this.#a.postApiV1RemoteoperationTest({requestBody:{path:i}}),e&&e.subscribe({next:n=>{console.log("res",n)},error:n=>{console.error("err",n)}})}mapToTargetUrl(i){return Pe(i.value)}removeDestinationFormGroup(i){this.destinationForm.controls.destinations.removeAt(i)}displayFn(i){let e=this.destinationOptions().find(n=>n.Key===i);return e?`${e.DisplayName}`:""}goBack(){this.#t.navigate(["general"],{relativeTo:this.#e.parent})}next(){this.#t.navigate(["source-data"],{relativeTo:this.#e.parent})}#l=k("https://duplicati-oauth-handler.appspot.com/").asReadonly();#s=k(Math.random().toString(36).substring(2)+Math.random().toString(36).substring(2)).asReadonly();#r=k(!1);#p=k(null);keyCreation(){}oauthStartTokenCreation(i){this.#r.set(!0);let e=450,n=600,r=this.#l()+"?type="+i+"&token="+this.#s(),d=screen.width/2-e/2,v=screen.height/2-n/2,U=window.open(r,"_blank","height="+n+",width="+e+",menubar=0,status=0,titlebar=0,toolbar=0,left="+d+",top="+v);U?.addEventListener("blur",pe=>{console.log("event blur",pe)}),U?.addEventListener("beforeunload",pe=>{console.log("event beforeunload",pe),this.#i.get(this.#l()+"fetch?callback=JSON_CALLBACK",{params:{token:this.#s()}}).pipe(ve(()=>this.#r.set(!1))).subscribe({next:I=>{console.log("res",I),I?.authid&&this.#p.set(I.authid)}})})}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=j({type:t,selectors:[["app-destination"]],viewQuery:function(e,n){e&1&&K(n.formRef,Pn,5),e&2&&W()},standalone:!0,features:[Q],decls:1,vars:1,consts:[["formRef",""],["fieldTemplate",""],[3,"formGroup"],[3,"submit","formGroup"],[1,"title-30"],["spk-button","","type","button",1,"small"],["formArrayName","destinations"],[1,"form-actions"],["spk-button","","type","button",3,"click"],["spk-button","","type","submit",1,"raised","primary"],["spk-button","","type","button",1,"small",3,"click"],[3,"click"],[1,"spk-primary"],[1,"most-common-destinations"],[1,"tile",3,"click"],["formGroupName","0"],[3,"disallowToggle"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],["title",""],["spk-button","","type","button",1,"outlined","small"],["menu",""],["item","","type","button"],["item","","type","button",3,"click"],[3,"formGroupName"],[3,"startingPath"],[1,"form-column",3,"formGroupName"],[1,"primary","raised"],[1,"primary",3,"selectMultiple"],[3,"for"],["spk-tooltip-right",""],["type","text",3,"id","formControlName"],["prefix",""],["autocomplete","off",3,"type","id","formControlName"],["prefix","",1,"link"],["suffix","",1,"clickable"],["prefix","",1,"link",3,"click"],["suffix","",1,"clickable",3,"click"],["type","search",3,"id","formControlName"],["options",""],[3,"value"],[1,"form-row"],["type","number","formControlName","size",3,"id"],["type","search","formControlName","unit"],["type","number",3,"id","formControlName"],["type","checkbox",3,"id","formControlName"],["type","text","id","text",3,"formControlName"],["deselect","",3,"value"],[1,"raised","primary"],["error",""]],template:function(e,n){e&1&&u(0,bi,20,6,"form",2),e&2&&_(n.destinationOptions().length&&n.sysIsLoaded()&&n.finishedLoading()?0:-1)},dependencies:[ae,ee,ie,oe,J,ge,Ce,Z,X,te,ne,xe,gt,Ue,le,se,Ke,qe,We,re,he,Se,Qe],styles:["[_nghost-%COMP%]{display:block}header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;gap:.5rem}header[_ngcontent-%COMP%] p[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{cursor:pointer;text-decoration:underline}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}.form-column[_ngcontent-%COMP%]{display:flex;flex-direction:column}.form-column[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem}.form-column[_ngcontent-%COMP%] spk-icon[_ngcontent-%COMP%]{font-size:1rem}.form-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:2fr 1fr;gap:.5rem;align-items:flex-end}.clickable[_ngcontent-%COMP%]{cursor:pointer;color:var(--primary-500)}.most-common-destinations[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.most-common-destinations[_ngcontent-%COMP%] .tile[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;padding:1rem;border:1px solid var(--base-level-40);border-radius:var(--shape-3);box-shadow:var(--shadow-1);background-color:var(--base-level-20);cursor:pointer}.most-common-destinations[_ngcontent-%COMP%] .tile[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{font:var(--paragraph-10);margin:0}[prefix].link[_ngcontent-%COMP%]{cursor:pointer;text-decoration:underline;color:var(--primary-500)}"],changeDetection:0})};export{wt as a,Dt as b,rt as c,St as d,nt as e,tt as f,kt as g,oo as h,it as i,Ft as j,ot as k,bt as l,at as m,z as n};
1
+ import{a as Qe,b as Se}from"./chunk-KOIUHATU.js";import{a as fe}from"./chunk-NN4VOZJP.js";import{a as et,b as yt}from"./chunk-DNHLTHLR.js";import{b as Ie}from"./chunk-ZHM55NRD.js";import{a as Ce,b as J,c as Fe,d as Z,e as X,f as ee,g as ge,i as te,j as xe,k as gt,l as ne,m as ie,n as oe,o as B,q as ae}from"./chunk-4I2FZHFA.js";import{a as xt}from"./chunk-ICX4A35N.js";import{a as re,e as ye,g as qe,i as le,k as Ke,n as We,o as se,r as he}from"./chunk-3ZII4VBA.js";import{a as Y,c as L}from"./chunk-APGFOGYB.js";import{a as je}from"./chunk-5P5MCIGV.js";import{$a as P,A as mt,Bb as K,Cb as W,D as ve,Db as de,Eb as l,Fb as R,Gb as D,Ib as ut,Ma as s,Nb as Q,P as De,Pb as Oe,Qb as _t,Rb as Le,Sa as k,Ta as q,V as h,Vb as ze,X as j,_a as u,ab as m,cb as ct,dc as H,fa as f,fb as _,fc as ft,ga as C,gb as T,hb as O,ib as N,jb as a,kb as o,lb as c,mb as F,nb as b,ob as Te,oc as Ue,pb as w,qb as g,rb as p,ub as ce,vb as y,wb as dt,xc as Ct}from"./chunk-NUWA7AOR.js";import{a as me,b as $e,c as pt}from"./chunk-7CGTOI24.js";var He=class t{fromString(i){if(!i)return null;let e=i.match(/(\d+)([smhDWMY])/);return e&&{value:parseInt(e[1]),unit:e[2]}}toString(i,e){return`${i}${e}`}static \u0275fac=function(e){return new(e||t)};static \u0275prov=De({token:t,factory:t.\u0275fac,providedIn:"root"})};var we=new B,Ge={file:{customFields:{path:{type:"file-tree",name:"path",shortDescription:"File path",longDescription:"The path to store the backup",formElement:t=>we.control(t??"")}}},ssh:{customFields:{server:{type:"String",name:"server",shortDescription:"Server",longDescription:"The server to connect to",formElement:t=>we.control(t??"")},port:{type:"Integer",name:"port",shortDescription:"Port",longDescription:"The port to connect to",formElement:t=>we.control(t??"")},path:{type:"Path",name:"path",shortDescription:"File path on the server",longDescription:"File path on the server",formElement:t=>we.control(t??"")}},dynamicFields:["auth-username"]},s3:{customFields:{path:{type:"Path",name:"path",shortDescription:"File path on the server",longDescription:"File path on the server",formElement:t=>we.control(t??"")},bucket:{type:"String",name:"bucket",shortDescription:"Bucket name",longDescription:"Bucket name",formElement:t=>we.control(t??"")}},dynamicFields:["use-ssl","s3-server-name","auth-username","auth-password"]},gcs:{oauthField:"authid",dynamicFields:["gcs-location","gcs-storage-class","authid"]},googledrive:{oauthField:"authid",customFields:{path:{type:"Path",name:"path",shortDescription:"File path on the server",longDescription:"File path on the server",formElement:t=>we.control(t??"")}},dynamicFields:["authid"]}};function Ne(t,i){let e={},n={};return i.searchParams.forEach((r,d)=>{Ge[t].dynamicFields?.includes(d)?n[d]=decodeURIComponent(r):e[d]=decodeURIComponent(r)}),{advanced:e,dynamic:n}}function Me(t){let i=t.map(([e,n])=>`${e}=${n?encodeURIComponent(n.toString()):""}`).join("&");return i?"?"+i:""}var Ee={file:{to:t=>{let i=Me([...Object.entries(t.advanced),...Object.entries(t.dynamic)]);return`${t.destinationType}://${t.custom.path}${i}`},from:(t,i,e)=>{let n=e.indexOf("file:///")===0,r=e.split(n?"///":"//")[1].substring(0,1)+i.hostname.substring(1);return me({destinationType:t,custom:{path:`${n?"/":""}${r}${i.pathname}`}},Ne(t,i))}},ssh:{to:t=>{let i=Me([...Object.entries(t.advanced),...Object.entries(t.dynamic)]);return`${t.destinationType}://${t.custom.server}${t.custom.port?":"+t.custom.port:""}${t.custom.path.startsWith("/")?t.custom.path:"/"+t.custom.path}${i}`},from:(t,i,e)=>me({destinationType:t,custom:{server:i.hostname,port:i.port,path:i.pathname}},Ne(t,i))},s3:{to:t=>{let i=Me([...Object.entries(t.advanced),...Object.entries(t.dynamic)]);return`${t.destinationType}://${t.custom.bucket}${t.custom.path}${i}`},from:(t,i,e)=>me({destinationType:t,custom:{path:i.pathname,bucket:i.hostname}},Ne(t,i))},gcs:{to:t=>{let i=t.dynamic["gcs-location"]??"";delete t.dynamic["gcs-location"];let e=Me([...Object.entries(t.advanced),...Object.entries(t.dynamic)]);return`${t.destinationType}://${i}${e}`},from:(t,i,e)=>{let{advanced:n,dynamic:r}=Ne(t,i);return{destinationType:t,advanced:n,dynamic:$e(me({},r),{"gcs-location":i.hostname+i.pathname})}}},googledrive:{to:t=>{let i=t.custom.path,e=Me([...Object.entries(t.advanced),...Object.entries(t.dynamic)]);return`${t.destinationType}://${i}${e}`},from:(t,i,e)=>{let n=e.replace("googledrive://","");return me({destinationType:t,custom:{path:n}},Ne(t,i))}},fallbackMapper:{to:t=>"",from:(t,i,e)=>me({destinationType:t},Ne(t,i))}};function Pe(t){let i=t.destinationType;return!i||!Ee.hasOwnProperty(i)?Ee.fallbackMapper.to(t)??"":Ee[i].to(t)??""}function ht(t){let i=URL.canParse(t),e=t.split("://")[0],n="http://"+t.split("://")[1],r=new URL(n);if(!Ee.hasOwnProperty(e))return Ee.fallbackMapper.from(e,r);if(!i)throw new Error("Invalid target path");return Ee[e].from(e,r,t)}var Tt=/[a-zA-Z0-9_\-\+\.]/,Ye=class t{generate(i,e=Tt){let n=this;return Array.apply(null,{length:i}).map(()=>{let r;for(;;)if(r=String.fromCharCode(n.#t()),e.test(r))return r},this).join("")}#t(){if(window.crypto&&window.crypto.getRandomValues){let i=new Uint8Array(1);return window.crypto.getRandomValues(i),i[0]}else if(window.msCrypto&&window.msCrypto.getRandomValues){let i=new Uint8Array(1);return window.msCrypto.getRandomValues(i),i[0]}else return Math.floor(Math.random()*256)}static \u0275fac=function(e){return new(e||t)};static \u0275prov=De({token:t,factory:t.\u0275fac,providedIn:"root"})};var Ot=["formRef"];function Nt(t,i){if(t&1&&(a(0,"option",13),l(1),o()),t&2){let e=i.$implicit;m("value",e.Key),s(),R(e.DisplayName)}}function Et(t,i){t&1&&(a(0,"spk-icon"),l(1,"eye-slash"),o(),l(2," hide "))}function Pt(t,i){t&1&&(a(0,"spk-icon"),l(1,"eye"),o(),l(2," show "))}function Vt(t,i){t&1&&(a(0,"spk-icon",22),l(1,"check"),o())}function It(t,i){t&1&&(a(0,"spk-icon"),l(1,"copy"),o())}function Gt(t,i){if(t&1){let e=w();a(0,"button",21),g("click",function(){f(e);let r=p(3);return C(r.copyPassword())}),u(1,Vt,2,0,"spk-icon",22)(2,It,2,0,"spk-icon"),l(3),o()}if(t&2){let e=p(3);s(),_(e.copiedPassword()?1:2),s(2),D(" ",e.copiedPassword()?"Copied":"Copy"," password ")}}function Mt(t,i){if(t&1){let e=w();a(0,"div",14)(1,"spk-form-field")(2,"label",15),l(3," Create a password "),a(4,"sup"),l(5,"*"),o()(),c(6,"input",16),o(),a(7,"spk-form-field"),c(8,"input",17),o(),a(9,"div",18)(10,"button",19),g("click",function(){f(e);let r=p(2);return C(r.showPassword.set(!r.showPassword()))}),u(11,Et,3,0)(12,Pt,3,0),o(),a(13,"button",19),g("click",function(){f(e);let r=p(2);return C(r.generatePassword())}),a(14,"spk-icon"),l(15,"password"),o(),l(16," Generate password "),o(),u(17,Gt,4,2,"button",20),o()()}if(t&2){let e=p(2);s(6),m("type",e.showPassword()?"text":"password"),s(2),m("type",e.showPassword()?"text":"password"),s(3),_(e.showPassword()?11:12),s(6),_(e.showCopyPassword()?17:-1)}}function At(t,i){if(t&1&&(a(0,"spk-select",10)(1,"label",11),l(2,"Encryption"),o(),c(3,"input",12),O(4,Nt,2,2,"option",13,T),o(),u(6,Mt,18,4,"div",14)),t&2){let e=p();m("displayFn",e.displayFn()),s(4),N(e.encryptionOptions()),s(2),_(e.encryptionFieldSignal()!==""?6:-1)}}function Rt(t,i){if(t&1&&(a(0,"button",9),l(1," Continue "),a(2,"spk-icon"),l(3,"arrow-right"),o()()),t&2){let e=p();m("disabled",e.generalForm.invalid)}}function Bt(t,i){if(t&1&&(a(0,"div")(1,"button",9),l(2," Continue "),a(3,"spk-icon"),l(4,"arrow-right"),o()()()),t&2){let e=p();P("spk-tooltip-primary",e.showCopyPassword()&&!e.copiedPassword()?"Remember to copy the password":null),s(),m("disabled",e.generalForm.invalid||e.showCopyPassword()&&!e.copiedPassword())}}var Ve=new B,St=(t={name:"",description:"",encryption:"",password:"",repeatPassword:""})=>Ve.group({name:Ve.control(t.name,[Fe.required]),description:Ve.control(t.description),encryption:Ve.control(t.encryption,[yt()]),password:Ve.control(t.password,[et(i=>i?.value.encryption!=="",[Fe.required])]),repeatPassword:Ve.control(t.repeatPassword,[et(i=>i?.value.encryption!=="",[Fe.required])])}),nt={Key:"",DisplayName:"None"},tt=class t{#t=h(L);#e=h(Y);#n=h(Ye);#i=h(z);#a=h(fe);formRef=q.required("formRef");generalForm=this.#i.generalForm;encryptionFieldSignal=this.#i.encryptionFieldSignal;encryptionOptions=this.#i.encryptionOptions;isNew=this.#i.isNew;showPassword=k(!1);copiedPassword=k(!1);showCopyPassword=k(!1);encryptionEffect=ft(()=>{let i=this.encryptionFieldSignal();console.log(i===""),i===""&&(this.copiedPassword.set(!1),this.showCopyPassword.set(!1))},{allowSignalWrites:!0});ngOnInit(){this.formRef().nativeElement.focus()}exit(){this.#i.exit()}async copyPassword(){let i=this.generalForm.controls.password.value;await this.#o(i??""),this.copiedPassword.set(!0)}async#o(i){try{await navigator.clipboard.writeText(i)}catch{try{let n=document.createElement("textarea");n.value=i,document.body.appendChild(n),n.select(),document.execCommand("copy"),document.body.removeChild(n)}catch(n){console.error("Failed to copy text: ",n)}}}displayFn(){let i=this.#a.systemInfo()?.EncryptionModules??[];return e=>{let n=[nt,...i].find(r=>r.Key===e);return n?`${n.DisplayName}`:""}}generatePassword(){this.copiedPassword.set(!1);let i=this.#n.generate(16);this.generalForm.controls.password.setValue(i),this.generalForm.controls.repeatPassword.setValue(i),this.showCopyPassword.set(!0)}next(){this.#t.navigate(["destination"],{relativeTo:this.#e.parent})}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=j({type:t,selectors:[["app-general"]],viewQuery:function(e,n){e&1&&K(n.formRef,Ot,5),e&2&&W()},standalone:!0,features:[Q],decls:22,vars:3,consts:[["formRef",""],["autocomplete","off",3,"submit","formGroup"],[1,"title-30"],["for","backupName"],["type","text","tabindex","1","placeholder","Your backup name","formControlName","name"],["for","backupDescription"],["id","backupDescription","tabindex","2","placeholder","Your backup description","formControlName","description"],[1,"form-actions"],["type","button","spk-button","",3,"click"],["spk-button","","type","submit",1,"raised","primary",3,"disabled"],[3,"displayFn"],["for","encryption"],["type","text","id","encryption","tabindex","3","placeholder","Encryption","formControlName","encryption"],[3,"value"],[1,"passwords"],["for","password"],["id","password","tabindex","4","autocomplete","off","placeholder","Password","formControlName","password",3,"type"],["id","repeatPassword","tabindex","5","autocomplete","off","placeholder","Repeat password","formControlName","repeatPassword",3,"type"],[1,"password-actions"],["spk-button","","type","button",1,"small",3,"click"],["spk-button","","type","button",1,"small","copy"],["spk-button","","type","button",1,"small","copy",3,"click"],[1,"spk-success"]],template:function(e,n){if(e&1){let r=w();a(0,"form",1,0),g("submit",function(){return f(r),C(n.next())}),a(2,"h3",2),l(3,"General backup settings"),o(),a(4,"spk-form-field")(5,"label",3),l(6," Backup name "),a(7,"sup"),l(8,"*"),o()(),c(9,"input",4),o(),a(10,"spk-form-field")(11,"label",5),l(12,"Backup description"),o(),c(13,"textarea",6),o(),u(14,At,7,2),a(15,"div",7)(16,"button",8),g("click",function(){return f(r),C(n.exit())}),a(17,"spk-icon"),l(18,"arrow-left"),o(),l(19," Exit "),o(),u(20,Rt,4,1,"button",9)(21,Bt,5,2,"div"),o()()}e&2&&(m("formGroup",n.generalForm),s(14),_(n.isNew()?14:-1),s(6),_(n.encryptionFieldSignal()===""?20:21))},dependencies:[ae,ee,ie,oe,J,Z,X,te,ne,le,se,ye,re],styles:["[_nghost-%COMP%]{display:block}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}sup[_ngcontent-%COMP%]{padding:0 .125rem;color:var(--warn-500)}.passwords[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.password-actions[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:center}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}.copy[_ngcontent-%COMP%] spk-icon.spk-success[_ngcontent-%COMP%]{color:var(--success-500)}"],changeDetection:0})};var $t=["formRef"],Lt=(t,i)=>({option:t,index:i}),zt=t=>({$implicit:t});function Ut(t,i){if(t&1&&(a(0,"option",12),l(1),o()),t&2){let e=i.$implicit;m("value",e),s(),R(e)}}function jt(t,i){if(t&1&&(a(0,"option",12),l(1),o()),t&2){let e=i.$implicit;m("value",e.value),s(),R(e.name)}}function qt(t,i){if(t&1){let e=w();a(0,"button",24,2),g("click",function(){let r=f(e).$implicit,d=p(2);return C(d.addNewOption(r))}),l(2),o()}if(t&2){let e=i.$implicit;s(2),R(e.Name)}}function Kt(t,i){t&1&&Te(0)}function Wt(t,i){if(t&1&&u(0,Kt,1,0,"ng-container",25),t&2){let e=i.$implicit,n=i.$index;p();let r=de(39);m("ngTemplateOutlet",r)("ngTemplateOutletContext",Oe(5,zt,_t(2,Lt,e,n)))}}function Qt(t,i){if(t&1&&(a(0,"spk-icon",32),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.option.longDescription)}}function Ht(t,i){t&1&&(a(0,"spk-icon",34),l(1,"link"),o())}function Yt(t,i){t&1&&(a(0,"spk-icon",34),l(1,"textbox"),o())}function Jt(t,i){if(t&1&&(a(0,"spk-form-field")(1,"label",31),l(2),u(3,Qt,2,1,"spk-icon",32),o(),c(4,"input",33),u(5,Ht,2,0,"spk-icon",34)(6,Yt,2,0,"spk-icon",34),o()),t&2){let e,n=p().$implicit;s(),y("for","option-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.option.shortDescription)!==null&&e!==void 0?e:n.option.name," "),s(),_(n.option.longDescription?3:-1),s(),y("id","option-",n.formGroupName,"-",n.index,""),m("formControlName",n.option.name),s(),_(n.option.type==="Path"?5:6)}}function Zt(t,i){if(t&1){let e=w();a(0,"spk-icon",37),g("click",function(){f(e);let r=p(2).$implicit;return C(r.option.showPassword=!r.option.showPassword)}),l(1," eye "),o()}}function Xt(t,i){if(t&1){let e=w();a(0,"spk-icon",37),g("click",function(){f(e);let r=p(2).$implicit;return C(r.option.showPassword=!r.option.showPassword)}),l(1," eye-slash "),o()}}function en(t,i){if(t&1&&(a(0,"spk-form-field")(1,"label",31),l(2),o(),c(3,"input",35),a(4,"spk-icon",34),l(5,"password"),o(),u(6,Zt,2,0,"spk-icon",36)(7,Xt,2,0,"spk-icon",36),o()),t&2){let e,n=p().$implicit;s(),y("for","option-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.option.shortDescription)!==null&&e!==void 0?e:n.option.name," "),s(),y("id","option-",n.formGroupName,"-",n.index,""),m("type",n.option.showPassword?"text":"password")("formControlName",n.option.name),s(3),_(n.option.showPassword?6:7)}}function tn(t,i){if(t&1&&(a(0,"spk-icon",32),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.option.longDescription)}}function nn(t,i){if(t&1&&(a(0,"option",12),l(1),o()),t&2){let e=i.$implicit;m("value",e),s(),R(e)}}function on(t,i){if(t&1&&(a(0,"spk-select")(1,"label",31),l(2),u(3,tn,2,1,"spk-icon",32),o(),c(4,"input",38),F(5,11),O(6,nn,2,2,"option",12,T),b(),o()),t&2){let e,n=p().$implicit;s(),y("for","option-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.option.shortDescription)!==null&&e!==void 0?e:n.option.name," "),s(),_(n.option.longDescription?3:-1),s(),y("id","option-",n.formGroupName,"-",n.index,""),m("formControlName",n.option.name),s(2),N(n.option.options)}}function an(t,i){if(t&1&&(a(0,"spk-icon",32),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.option.longDescription)}}function rn(t,i){if(t&1&&(a(0,"option",12),l(1),o()),t&2){let e=i.$implicit;m("value",e),s(),R(e)}}function ln(t,i){if(t&1&&(a(0,"div",28)(1,"label",31),l(2),u(3,an,2,1,"spk-icon",32),o(),a(4,"div",39)(5,"spk-form-field"),c(6,"input",40),a(7,"spk-icon",34),l(8,"resize"),o()(),a(9,"spk-select"),c(10,"label")(11,"input",41),F(12,11),O(13,rn,2,2,"option",12,T),b(),o()()()),t&2){let e,n=p().$implicit,r=p(2);m("formGroupName",n.option.name),s(),y("for","option-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.option.shortDescription)!==null&&e!==void 0?e:n.option.name," "),s(),_(n.option.longDescription?3:-1),s(3),y("id","option-",n.formGroupName,"-",n.index,""),s(7),N(r.sizeOptions())}}function sn(t,i){if(t&1&&(a(0,"spk-icon",32),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.option.longDescription)}}function pn(t,i){if(t&1&&(a(0,"spk-form-field")(1,"label",31),l(2),u(3,sn,2,1,"spk-icon",32),o(),c(4,"input",42),a(5,"spk-icon",34),l(6,"numpad"),o()()),t&2){let e,n=p().$implicit;s(),y("for","option-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.option.shortDescription)!==null&&e!==void 0?e:n.option.name," "),s(),_(n.option.longDescription?3:-1),s(),y("id","option-",n.formGroupName,"-",n.index,""),m("formControlName",n.option.name)}}function mn(t,i){if(t&1&&(a(0,"spk-icon",32),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.option.longDescription)}}function cn(t,i){if(t&1&&(a(0,"spk-toggle",29)(1,"label",31),l(2),u(3,mn,2,1,"spk-icon",32),o(),c(4,"input",43),o()),t&2){let e,n=p().$implicit;s(),y("for","option-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.option.shortDescription)!==null&&e!==void 0?e:n.option.name," "),s(),_(n.option.longDescription?3:-1),s(),y("id","option-",n.formGroupName,"-",n.index,""),m("formControlName",n.option.name)}}function dn(t,i){if(t&1&&(a(0,"spk-icon",32),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.option.longDescription)}}function un(t,i){t&1&&(a(0,"spk-option",45),l(1,"None"),o()),t&2&&m("value","None")}function _n(t,i){if(t&1&&(a(0,"spk-option",12),l(1),c(2,"spk-checkbox",46),o()),t&2){let e=p().$implicit;m("value",e),s(),D(" ",e," ")}}function fn(t,i){if(t&1&&u(0,un,2,1,"spk-option",45)(1,_n,3,2,"spk-option",12),t&2){let e=i.$implicit;_(e==="None"?0:1)}}function Cn(t,i){if(t&1&&(a(0,"spk-select",30)(1,"label",31),l(2),u(3,dn,2,1,"spk-icon",32),o(),c(4,"input",44),F(5,11),O(6,fn,2,1,null,null,T),b(),o()),t&2){let e,n=p().$implicit;m("selectMultiple",!0),s(),y("for","option-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.option.shortDescription)!==null&&e!==void 0?e:n.option.name," "),s(),_(n.option.longDescription?3:-1),s(),m("formControlName",n.option.name),s(2),N(n.option.options)}}function gn(t,i){if(t&1&&(a(0,"spk-icon",32),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.option.longDescription)}}function xn(t,i){if(t&1&&(a(0,"spk-form-field")(1,"label",31),l(2),u(3,gn,2,1,"spk-icon",32),o(),c(4,"input",33)(5,"span",47),o()),t&2){let e,n=p().$implicit;s(),y("for","option-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.option.shortDescription)!==null&&e!==void 0?e:n.option.name," "),s(),_(n.option.longDescription?3:-1),s(),y("id","option-",n.formGroupName,"-",n.index,""),m("formControlName",n.option.name)}}function yn(t,i){if(t&1){let e=w();F(0,26),a(1,"div",27),u(2,Jt,7,10,"spk-form-field")(3,en,8,10,"spk-form-field")(4,on,8,9,"spk-select")(5,ln,15,9,"div",28)(6,pn,7,9,"spk-form-field")(7,cn,5,9,"spk-toggle",29)(8,Cn,8,7,"spk-select",30)(9,xn,6,9,"spk-form-field"),a(10,"button",22),g("click",function(){let r=f(e).$implicit,d=p(2);return C(d.removeOption(r.option))}),a(11,"spk-icon"),l(12,"x-circle"),o()()(),b()}if(t&2){let e=i.$implicit;s(2),_(e.option.type==="String"||e.option.type==="Path"?2:e.option.type==="Password"?3:e.option.type==="Enumeration"?4:e.option.type==="Size"?5:e.option.type==="Integer"?6:e.option.type==="Boolean"?7:e.option.type==="Flags"?8:e.option.type==="Timespan"?9:-1)}}function hn(t,i){if(t&1){let e=w();a(0,"form",4,0),g("submit",function(){f(e);let r=p();return C(r.submit())}),a(2,"h3",5),l(3,"Options"),o(),a(4,"div",6)(5,"div",7)(6,"spk-form-field")(7,"label",8),l(8,"Remote volume size"),o(),c(9,"input",9),o(),a(10,"spk-select"),c(11,"input",10),F(12,11),O(13,Ut,2,2,"option",12,T),b(),o()(),a(15,"p"),l(16," The backups will be split up into multiple files called volumes. Here you can set the maximum size of the individual volume files. "),a(17,"a",13),l(18,"Read more"),o()()(),a(19,"spk-select",14)(20,"label",8),l(21,"Backup retention"),o(),c(22,"input",15),O(23,jt,2,2,"option",12,T),o(),a(25,"app-toggle-card",16),F(26,17),l(27," Advanced options "),a(28,"spk-menu")(29,"button",18),l(30," Add advanced option "),a(31,"spk-icon"),l(32,"plus"),o()(),F(33,19),O(34,qt,3,1,"button",20,T),b(),o(),b(),O(36,Wt,1,7,"ng-container",null,T),o(),u(38,yn,13,1,"ng-template",null,1,ze),a(40,"div",21)(41,"button",22),g("click",function(){f(e);let r=p();return C(r.goBack())}),a(42,"spk-icon"),l(43,"arrow-left"),o(),l(44," Go back "),o(),a(45,"button",23)(46,"spk-icon"),l(47,"arrow-right"),o(),l(48," Submit "),o()()()}if(t&2){let e=p();m("formGroup",e.optionsForm),s(13),N(e.sizeOptions()),s(6),m("displayFn",e.retentionOptionDisplayFn()),s(4),N(e.rentationOptions()),s(2),m("disallowToggle",!0),s(9),N(e.nonSelectedAdvancedOptions()),s(2),N(e.selectedAdvancedOptions())}}var ue=new B,Sn=["Bytes","KB","MB","GB","TB","PB"],kn=[{value:"",name:"Keep all backups"},{value:"time",name:"Delete backups that are older than"},{value:"versions",name:"Keep a specific number of backups"},{value:"smart",name:"Smart backup retention"},{value:"custom",name:"Custom backup retention"}],kt=(t={remoteVolumeSize:50,size:"MB",backupRetention:"",advancedOptions:[]})=>ue.group({remoteVolumeSize:ue.group({size:ue.control(t.remoteVolumeSize),unit:ue.control(t.size)}),backupRetention:ue.control(t.backupRetention),advancedOptions:ue.group({})}),io=(t,i)=>ue.group({name:ue.control(t),value:ue.control(i)}),it=class t{#t=h(fe);#e=h(z);#n=h(L);#i=h(Y);formRef=q.required("formRef");optionsForm=this.#e.optionsForm;finishedLoading=this.#e.finishedLoading;selectedAdvancedOptions=this.#e.selectedAdvancedOptions;nonSelectedAdvancedOptions=this.#e.nonSelectedAdvancedOptions;sizeOptions=k(Sn);rentationOptions=k(kn);sysinfoLoaded=this.#t.isLoaded;removeOption(i){this.#e.removeOptionFromFormGroup(i)}addNewOption(i){this.#e.addOptionToFormGroup(i)}retentionOptionDisplayFn(){let i=this.rentationOptions();return e=>{let n=i.find(r=>r.value===e);return n?n.name:""}}displayFn(){let i=this.#e.advancedOptions();return e=>{let n=i.find(r=>r.Name===e);return n?`${n.Name}`:""}}goBack(){this.#n.navigate(["schedule"],{relativeTo:this.#i.parent})}submit(){this.#e.submit()}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=j({type:t,selectors:[["app-options"]],viewQuery:function(e,n){e&1&&K(n.formRef,$t,5),e&2&&W()},standalone:!0,features:[Q],decls:1,vars:1,consts:[["formRef",""],["fieldTemplate",""],["option",""],[3,"formGroup"],[3,"submit","formGroup"],[1,"title-30"],[1,"remote-volume-wrap"],["formGroupName","remoteVolumeSize",1,"row-inputs"],["for","size"],["type","number","id","size","formControlName","size"],["type","text","placeholder","Select an option...","formControlName","unit"],["options",""],[3,"value"],["href","#",1,"spk-primary"],[3,"displayFn"],["type","text","formControlName","backupRetention"],[3,"disallowToggle"],["title",""],["spk-button","","type","button",1,"outlined","small"],["menu",""],["type","button"],[1,"form-actions"],["spk-button","","type","button",3,"click"],["spk-button","","type","submit",1,"raised","primary"],["type","button",3,"click"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],["formGroupName","advancedOptions"],[1,"form-wrap"],[1,"form-column",3,"formGroupName"],[1,"primary","raised"],[1,"primary",3,"selectMultiple"],[3,"for"],["spk-tooltip-right",""],["type","text",3,"id","formControlName"],["prefix",""],["autocomplete","off",3,"type","id","formControlName"],["suffix","",1,"clickable"],["suffix","",1,"clickable",3,"click"],["type","search",3,"id","formControlName"],[1,"form-row"],["type","number","formControlName","size",3,"id"],["type","search","formControlName","unit"],["type","number",3,"id","formControlName"],["type","checkbox",3,"id","formControlName"],["type","text","id","text",3,"formControlName"],["deselect","",3,"value"],[1,"raised","primary"],["error",""]],template:function(e,n){e&1&&u(0,hn,49,3,"form",3),e&2&&_(n.finishedLoading()?0:-1)},dependencies:[ae,ee,ie,oe,J,ge,Ce,Z,X,te,ne,xe,Ue,Ke,se,ye,re,le,he,qe,We,Se],styles:["[_nghost-%COMP%]{display:block}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}.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}.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 vn=["formRef"];function Fn(t,i){if(t&1&&(a(0,"option",24),l(1),o()),t&2){let e=i.$implicit;m("value",e.key),s(),R(e.label)}}function bn(t,i){if(t&1){let e=w();a(0,"div",11)(1,"spk-form-field")(2,"label",12),l(3,"Next time"),o(),a(4,"input",13,1),g("focus",function(){f(e);let r=de(5);return C(r.showPicker())}),o(),a(6,"spk-icon",14),l(7,"clock"),o()(),a(8,"spk-form-field"),c(9,"label",15),a(10,"input",16,2),g("focus",function(){f(e);let r=de(11);return C(r.showPicker())}),o(),a(12,"spk-icon",14),l(13,"calendar"),o()()(),F(14,17),a(15,"div",18)(16,"spk-form-field")(17,"label",19),l(18,"Run again every"),o(),c(19,"input",20),o(),a(20,"spk-select",21),c(21,"input",22),F(22,23),O(23,Fn,2,2,"option",24,T),b(),o()(),a(25,"app-toggle-card",25),F(26,26),l(27,"Allowed days"),b(),a(28,"div",27)(29,"spk-toggle",6),l(30," Monday "),c(31,"input",28),o(),a(32,"spk-toggle",6),l(33," Tuesday "),c(34,"input",29),o(),a(35,"spk-toggle",6),l(36," Wednesday "),c(37,"input",30),o(),a(38,"spk-toggle",6),l(39," Thursday "),c(40,"input",31),o(),a(41,"spk-toggle",6),l(42," Friday "),c(43,"input",32),o(),a(44,"spk-toggle",6),l(45," Saturday "),c(46,"input",33),o(),a(47,"spk-toggle",6),l(48," Sunday "),c(49,"input",34),o()()(),b()}if(t&2){let e=p();s(20),m("displayFn",e.displayFn),s(3),N(e.unitOptions),s(2),m("disallowToggle",!0)}}var A=new B,vt=[{key:"s",label:"Seconds"},{key:"m",label:"Minutes"},{key:"h",label:"Hours"},{key:"D",label:"Days"},{key:"W",label:"Weeks"},{key:"M",label:"Months"},{key:"Y",label:"Years"}],Ft=(t={autoRun:!1,nextTime:{time:"13:00",date:new Date().toISOString().split("T")[0]},runAgain:{repeatValue:1,repeatUnit:"D",allowedDays:{mon:!1,tue:!1,wed:!1,thu:!1,fri:!1,sat:!1,sun:!1}}})=>A.group({autoRun:A.control(t.autoRun),nextTime:A.group({time:A.control(t.nextTime.time),date:A.control(t.nextTime.date)}),runAgain:A.group({repeatValue:A.control(t.runAgain.repeatValue),repeatUnit:A.control(t.runAgain.repeatUnit),allowedDays:A.group({mon:A.control(t.runAgain.allowedDays.mon),tue:A.control(t.runAgain.allowedDays.tue),wed:A.control(t.runAgain.allowedDays.wed),thu:A.control(t.runAgain.allowedDays.thu),fri:A.control(t.runAgain.allowedDays.fri),sat:A.control(t.runAgain.allowedDays.sat),sun:A.control(t.runAgain.allowedDays.sun)})})}),ot=class t{#t=h(z);#e=h(L);#n=h(Y);formRef=q.required("formRef");scheduleForm=this.#t.scheduleForm;scheduleFormSignal=this.#t.scheduleFormSignal;unitOptions=vt;displayFn(i){let e=vt.find(n=>n.key===i);return e?`${e.label}`:""}goBack(){this.#e.navigate(["source-data"],{relativeTo:this.#n.parent})}next(){this.#e.navigate(["options"],{relativeTo:this.#n.parent})}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=j({type:t,selectors:[["app-schedule"]],viewQuery:function(e,n){e&1&&K(n.formRef,vn,5),e&2&&W()},standalone:!0,features:[Q],decls:20,vars:2,consts:[["formRef",""],["timeRef",""],["dateRef",""],[3,"submit","formGroup"],[1,"title-30"],[1,"toggle-wrap"],[1,"raised","primary"],["type","checkbox","formControlName","autoRun"],[1,"form-actions"],["spk-button","","type","button",3,"click"],["spk-button","","type","submit",1,"raised","primary"],["formGroupName","nextTime",1,"row-inputs"],["for","time"],["type","time","id","time","formControlName","time",3,"focus"],["suffix",""],["for","date"],["type","date","id","date","formControlName","date",3,"focus"],["formGroupName","runAgain"],[1,"row-inputs"],["for","repeatValue"],["type","number","id","repeatValue","formControlName","repeatValue"],[3,"displayFn"],["type","text","id","repeatUnit","formControlName","repeatUnit"],["options",""],[3,"value"],["formGroupName","allowedDays",3,"disallowToggle"],["title",""],[1,"days-wrap"],["type","checkbox","formControlName","mon"],["type","checkbox","formControlName","tue"],["type","checkbox","formControlName","wed"],["type","checkbox","formControlName","thu"],["type","checkbox","formControlName","fri"],["type","checkbox","formControlName","sat"],["type","checkbox","formControlName","sun"]],template:function(e,n){if(e&1){let r=w();a(0,"form",3,0),g("submit",function(){return f(r),C(n.next())}),a(2,"h3",4),l(3,"Schedule"),o(),a(4,"div",5)(5,"spk-toggle",6),l(6," Automatically run backups "),c(7,"input",7),o(),a(8,"p"),l(9,"If a date was missed, the job will run as soon as possible."),o()(),u(10,bn,50,2),a(11,"div",8)(12,"button",9),g("click",function(){return f(r),C(n.goBack())}),a(13,"spk-icon"),l(14,"arrow-left"),o(),l(15," Go back "),o(),a(16,"button",10)(17,"spk-icon"),l(18,"arrow-right"),o(),l(19," Continue "),o()()()}if(e&2){let r;m("formGroup",n.scheduleForm),s(10),_((r=n.scheduleFormSignal())!=null&&r.autoRun?-1:10)}},dependencies:[ae,ee,ie,oe,J,ge,Ce,Z,X,te,ne,xe,le,se,he,re,ye,Se],styles:["[_nghost-%COMP%]{display:block}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.toggle-wrap[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem}.row-inputs[_ngcontent-%COMP%]{display:flex;align-items:flex-end;gap:.5rem}.row-inputs[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{flex:1 0}.days-wrap[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"],changeDetection:0})};var wn=["formRef"];function Dn(t,i){if(t&1&&(a(0,"option",21),l(1),o()),t&2){let e=i.$implicit;m("value",e),s(),R(e)}}function Tn(t,i){if(t&1&&(a(0,"div",14)(1,"spk-form-field"),c(2,"input",18),o(),a(3,"spk-select"),c(4,"input",19),F(5,20),O(6,Dn,2,2,"option",21,T),b(),o()()),t&2){let e=p(2);s(6),N(e.sizeOptions())}}function On(t,i){if(t&1){let e=w();a(0,"form",2,0),g("submit",function(){f(e);let r=p();return C(r.next())}),a(2,"h3",3),l(3,"Source Data"),o(),a(4,"app-file-tree",4)(5,"label",5),l(6,"Folder path"),o(),c(7,"input",6),o(),a(8,"app-toggle-card",7),F(9,8),l(10,"Exclude"),b(),a(11,"spk-toggle",9),l(12," Hidden files "),c(13,"input",10),o(),a(14,"spk-toggle",9),l(15," System files "),c(16,"input",11),o(),a(17,"spk-toggle",9),l(18," Temporary files "),c(19,"input",12),o(),a(20,"spk-toggle",13),g("click",function(){f(e);let r=p();return C(r.toggleFilesLargerThan())}),l(21," Files larger than "),o(),u(22,Tn,8,0,"div",14),o(),a(23,"div",15)(24,"button",16),g("click",function(){f(e);let r=p();return C(r.goBack())}),a(25,"spk-icon"),l(26,"arrow-left"),o(),l(27," Go back "),o(),a(28,"button",17)(29,"spk-icon"),l(30,"arrow-right"),o(),l(31," Continue "),o()()()}if(t&2){let e=p();m("formGroup",e.sourceDataForm),s(4),m("multiSelect",!0)("startingPath",e.getPath()),s(4),m("isActive",!0),s(12),ct("active",e.filesLargerThan()),s(2),_(e.filesLargerThan()?22:-1)}}var _e=new B,Nn=["Bytes","KB","MB","GB","TB","PB"],En=["Contains","Does not contain","Is greater than","Is less than"];var bt=(t={path:"",excludes:{hidden:!1,system:!1,temporary:!1,filesLargerThan:null}})=>_e.group({path:_e.control(t.path),excludes:_e.group({hidden:_e.control(t.excludes.hidden),system:_e.control(t.excludes.system),temporary:_e.control(t.excludes.temporary),filesLargerThan:_e.group({size:_e.control(null),unit:_e.control(null)})})}),at=class t{#t=h(z);#e=h(L);#n=h(Y);formRef=q.required("formRef");sourceDataForm=this.#t.sourceDataForm;sourceDataFormSignal=this.#t.sourceDataFormSignal;finishedLoading=this.#t.finishedLoading;filesLargerThan=H(()=>this.sourceDataFormSignal()?.excludes?.filesLargerThan?.size!==null);sizeOptions=k(Nn);expressionOptions=k(En);getPath(){return this.sourceDataForm.value.path??null}toggleFilesLargerThan(){this.sourceDataForm.controls.excludes.value.filesLargerThan?.size===null?this.sourceDataForm.controls.excludes.controls.filesLargerThan.setValue({size:50,unit:"MB"}):this.sourceDataForm.controls.excludes.controls.filesLargerThan.setValue({size:null,unit:null})}goBack(){this.#e.navigate(["destination"],{relativeTo:this.#n.parent})}next(){this.#e.navigate(["schedule"],{relativeTo:this.#n.parent})}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=j({type:t,selectors:[["app-source-data"]],viewQuery:function(e,n){e&1&&K(n.formRef,wn,5),e&2&&W()},standalone:!0,features:[Q],decls:1,vars:1,consts:[["formRef",""],[3,"formGroup"],[3,"submit","formGroup"],[1,"title-30"],[3,"multiSelect","startingPath"],["for","path"],["type","text","id","path","tabindex","4","placeholder","Path","formControlName","path"],["formGroupName","excludes",3,"isActive"],["title",""],[1,"raised","primary"],["type","checkbox","placeholder","Hidden files","formControlName","hidden"],["type","checkbox","placeholder","System files","formControlName","system"],["type","checkbox","placeholder","Temporary files","formControlName","temporary"],[1,"raised","primary",3,"click"],["formGroupName","filesLargerThan",1,"row-inputs"],[1,"form-actions"],["spk-button","","type","button",3,"click"],["spk-button","","type","submit",1,"raised","primary"],["type","number","formControlName","size"],["type","text","formControlName","unit","placeholder","Select an option..."],["options",""],[3,"value"]],template:function(e,n){e&1&&u(0,On,32,7,"form",1),e&2&&_(n.finishedLoading()?0:-1)},dependencies:[ae,ee,ie,oe,J,ge,Ce,Z,X,te,ne,xe,le,re,ye,se,he,Qe,Se],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}.row-inputs[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr min-content;gap:.5rem}.filter-inputs[_ngcontent-%COMP%]{display:flex;gap:.5rem;align-items:flex-end}.filter-inputs[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{flex:1 0}.filter-inputs[_ngcontent-%COMP%] .filter-removal[_ngcontent-%COMP%]{cursor:pointer;display:flex;align-items:center;justify-content:center;height:2.5rem;flex:0 0}"],changeDetection:0})};var V=new B,z=class t{#t=h(L);#e=h(fe);#n=h(je);#i=h(He);#a=h(xt);destinationOptions=this.#e.backendModules;isDraft=k(!1);backupId=k(null);isSubmitting=k(!1);loadingBackup=k(!1);loadingDefaults=k(!0);finishedLoading=k(!1);isNew=H(()=>this.backupId()==="new");backupDefaults=k(null);generalForm=St();sourceDataForm=bt();scheduleForm=Ft();destinationForm=wt();optionsForm=kt();selectedAdvancedFormPair=k([]);notSelectedAdvancedFormPair=k([]);destinationFormPair=k({oauthField:null,custom:[],dynamic:[],advanced:[]});sourceDataFormSignal=Ie(this.sourceDataForm.valueChanges);destinationFormSignal=Ie(this.destinationForm.valueChanges);encryptionFieldSignal=Ie(this.generalForm.controls.encryption.valueChanges);scheduleFormSignal=Ie(this.scheduleForm.valueChanges);advancedOptions=H(()=>this.#e.sysInfoSignal()?.Options??[]);encryptionOptions=H(()=>{let i=this.#e.sysInfoSignal()?.EncryptionModules??[];return[nt,...i]});selectedAdvancedOptions=k([]);nonSelectedAdvancedOptions=H(()=>this.advancedOptions().sort((i,e)=>i?.Name&&e?.Name?i?.Name.localeCompare(e?.Name):0).filter(i=>this.selectedAdvancedOptions()?.findIndex(e=>e.name===i.Name)===-1));init(i="new",e=!1){this.backupId.set(i),i!=="new"?this.getBackup(i,e):this.getDefaults()}submit(){this.isSubmitting.set(!0);let i=this.#m(),e=this.backupId();e==="new"||!e||this.isDraft()?this.#n.postApiV1Backups({requestBody:i}).pipe(ve(()=>this.isSubmitting.set(!1))).subscribe({next:n=>{console.log("submitted res",n),this.exit()},error:n=>{console.error("submitted error",n)}}):this.#n.putApiV1BackupById({id:e,requestBody:i}).pipe(ve(()=>this.isSubmitting.set(!1))).subscribe({next:n=>{console.log("submitted res",n),this.exit()},error:n=>{console.error("submitted error",n)}})}exit(){this.#u(),this.#t.navigate(["/"])}getDefaults(){this.loadingDefaults.set(!0),this.#n.getApiV1Backupdefaults().pipe(mt(1),ve(()=>this.loadingDefaults.set(!1))).subscribe({next:i=>{this.#r(i.Schedule),this.#p(i.Backup),this.backupDefaults.set(i),this.finishedLoading.set(!0)}})}getBackup(i,e=!1){this.loadingBackup.set(!0);let n=r=>{console.log("hi 1"),this.#r(r.Schedule??null),r.Backup&&(this.#s(r.Backup),this.#l(r.Backup),this.#o(r.Backup),this.#p(r.Backup)),this.finishedLoading.set(!0)};if(e){this.isDraft.set(e);let r=this.#a.draftBackups().find(d=>d.id===i);if(!r){this.loadingBackup.set(!1),alert("Backup not found");return}n(r.data)}else console.log("hi"),this.#n.getApiV1BackupById({id:i}).pipe(ve(()=>this.loadingBackup.set(!1))).subscribe({next:n})}#o(i){let e=i.Sources??"",n=i.Filters?.map(I=>`${I.Include?"":"-"}${I.Expression}`)??[],r=i.Settings?.find(I=>I.Name==="--exclude-files-attributes")?.Value??"",d=i.Settings?.find(I=>I.Name==="--skip-files-larger-than")??null,v=d?.Value.replace(/[0-9]/g,"")??null,U=d?.Value.replace(/[^0-9]/g,"")??null,pe={path:[...e,...n].join("\0"),excludes:{hiddenFiles:r.includes("hidden"),systemFiles:r.includes("system"),tempFiles:r.includes("temporary"),filesLargerThan:v&&U?{size:parseInt(U),unit:v.toUpperCase()}:null}};this.sourceDataForm.patchValue(pe)}#l(i){let e=i.TargetURL?ht(i.TargetURL):null;e&&this.addDestinationFormGroup(e.destinationType,{custom:e.custom,dynamic:e.dynamic,advanced:e.advanced})}#s(i){let e=i.Settings?.find(r=>r.Name==="encryption-module"),n=e?.Value&&e.Value.length?e.Value:"none";this.generalForm.patchValue({name:i.Name??"",description:i.Description??"",encryption:n})}#r(i){if(!i){this.scheduleForm.patchValue({autoRun:!0});return}let e=this.#i.fromString(i.Repeat)??null,r={nextTime:this.#d(i.Time),runAgain:{repeatValue:e?.value??1,repeatUnit:e?.unit??"D",allowedDays:{mon:i.AllowedDays?.includes("mon")??!1,tue:i.AllowedDays?.includes("tue")??!1,wed:i.AllowedDays?.includes("wed")??!1,thu:i.AllowedDays?.includes("thu")??!1,fri:i.AllowedDays?.includes("fri")??!1,sat:i.AllowedDays?.includes("sat")??!1,sun:i.AllowedDays?.includes("sun")??!1}}};this.scheduleForm.patchValue(r)}#p(i){let e=["--no-encryption","--exclude-files-attributes","--skip-files-larger-than"],n=this.advancedOptions();i.Settings?.forEach(r=>{if(r.Name==="encryption-module")return this.generalForm.controls.encryption.setValue(r.Value??"");if(!(r.Name&&e.includes(r.Name))){if(r.Name==="dblock-size"){let d=r.Value?.replace(/[^0-9]/g,""),v=r.Value?.replace(/[0-9]/g,"");return this.optionsForm.controls.remoteVolumeSize.setValue({size:d?parseInt(d):null,unit:v?v.toUpperCase():null})}if(r.Name&&r.Value){let d=n.find(v=>v.Name===r.Name);if(!d)return;this.addOptionToFormGroup(d,r.Value)}}})}hello(){return this.#m()}#m(){let i=this.generalForm.value,e=this.optionsForm.value,n=this.scheduleForm.value,r=this.sourceDataForm.value,v=this.destinationForm.value.destinations?.length?this.#c(this.destinationForm.controls.destinations):[],U=null;n.runAgain?.repeatUnit&&n.runAgain?.repeatValue&&(U=this.#i.toString(n.runAgain.repeatValue,n.runAgain.repeatUnit));let pe=n.runAgain?.allowedDays?Object.entries(n.runAgain?.allowedDays).filter(([S,E])=>E).map(([S,E])=>S):[],I=r.path?.split("\0")??[],Ae=i.encryption==="none"?{Name:"--no-encryption",Value:"True"}:{Name:"encryption-module",Value:i.encryption??null},Re=this.advancedOptions(),Be=Object.entries(e.advancedOptions??{}).filter(([S,E])=>S&&E).map(([S,E])=>{let $=Re.find(ke=>ke.Name===S);return $?.Type==="Size"?{Name:S,Value:`${E.size}${E.unit.toLowerCase()}`}:$?.Type==="Integer"?{Name:S,Value:E.toString()}:$?.Type==="Boolean"?{Name:S,Value:E.toString()}:{Name:S,Value:E}}),G=[Ae,...Be],x=Object.entries(r.excludes??{}).filter(([S,E])=>E&&S!=="filesLargerThan").map(([S])=>S),M=r.excludes?.filesLargerThan;return x.length&&G.push({Name:"--exclude-files-attributes",Value:x.join(",")}),M&&M.size!==null&&M.unit!==null&&G.push({Name:"--skip-files-larger-than",Value:`${M.size}${M.unit}`}),{Backup:{Name:i.name,Description:i.description,TargetURL:v[0]??null,Sources:I.filter(S=>!S.startsWith("-")),Settings:G,Filters:I.filter(S=>S.startsWith("-")).map((S,E)=>({Order:E,Include:!1,Expression:S.slice(1)}))},Schedule:n.autoRun?null:{Repeat:U,Time:n.nextTime?.date?new Date(`${n.nextTime.date}T${n.nextTime?.time||"00:00:00"}`).toISOString():null,AllowedDays:pe}}}#c(i){return i.controls.map(e=>{if(!e.controls.advanced)return Pe(e.value);let n=Object.keys(e.controls.advanced.controls).filter(r=>e.controls.advanced.controls[r].dirty);return Pe($e(me({},e.value),{advanced:n.reduce((r,d)=>(r[d]=e.controls.advanced.controls[d].value,r),{})}))})}#d(i){if(!i||i?.indexOf("T")===-1)return{time:i??"13:00"};let e=new Date(i),n={time:`${(""+e.getHours()).padStart(2,"0")}:${(""+e.getMinutes()).padStart(2,"0")}`};return i.indexOf("T")!==-1&&(n.date=e.toISOString().split("T")[0]),n}removeOptionFromFormGroup(i){let e=i.name;e&&(this.optionsForm.controls.advancedOptions.removeControl(e),this.selectedAdvancedOptions.update(n=>(n=n.filter(r=>r.name!==e),n)))}addOptionToFormGroup(i,e){let n=this.optionsForm.controls.advancedOptions,r=e??i.DefaultValue;if((i.Type==="String"||i.Type==="Password"||i.Type==="Enumeration"||i.Type==="Path")&&n.addControl(i.Name,V.control(r)),i.Type==="Size"){let d=r.replace(/[0-9]/g,""),v=r.replace(/[^0-9]/g,"");n.addControl(i.Name,V.group({size:V.control(v?parseInt(v):50),unit:V.control(d?d.toUpperCase():"MB")}))}i.Type==="Integer"&&n.addControl(i.Name,V.control(r?parseInt(r):0)),i.Type==="Boolean"&&n.addControl(i.Name,V.control(r==="true")),i.Type==="Flags"&&n.addControl(i.Name,V.control(r??"")),i.Type==="Timespan"&&n.addControl(i.Name,V.control(r,[Fe.pattern(/([-+]?\d{1,3}[smhDWMY])+/)])),this.selectedAdvancedOptions.update(d=>(d.push({name:i.Name,type:i.Type,shortDescription:i.ShortDescription??void 0,longDescription:i.LongDescription??void 0,options:i.ValidValues}),d))}addDestinationFormGroup(i,e){let n=this.destinationOptions().find(G=>G.Key===i);if(!n||!n.Options)return;let r=Ge.hasOwnProperty(i)&&Ge[i],d=r&&r.customFields?r.customFields:{},v=r&&r.dynamicFields?r.dynamicFields:[],U=r&&r.advancedFields?r.advancedFields:[],pe=r&&r.oauthField?r.oauthField:null;this.destinationFormPair.set({oauthField:pe,custom:[],dynamic:[],advanced:[]}),this.selectedAdvancedFormPair.set([]);let I=V.group({}),Ae=V.group({}),Re=V.group({});if(d)for(i in d){let Be=d[i],{formElement:G}=Be,x=pt(Be,["formElement"]);I.addControl(i,G(e?.custom[i])),this.destinationFormPair.update(M=>(M.custom.push(x),M))}for(let G=0;G<n.Options.length;G++){let x=n.Options[G];if(x.Deprecated)continue;let M=v.includes(x.Name),S=M?Ae:Re;this.destinationFormPair.update(ke=>(ke[M?"dynamic":"advanced"].push({name:x.Name,type:x.Type,shortDescription:x.ShortDescription??void 0,longDescription:x.LongDescription??void 0,options:x.ValidValues}),ke));let $=(M?e?.dynamic[x.Name]:e?.advanced[x.Name])??x.DefaultValue;if(x.Type==="String"||x.Type==="Password"||x.Type==="Enumeration"||x.Type==="Path"){S.addControl(x.Name,V.control($));continue}if(x.Type==="Size"){let ke=$.replace(/[0-9]/g,""),st=$.replace(/[^0-9]/g,"");S.addControl(x.Name,V.group({size:V.control(st?parseInt(st):50),unit:V.control(ke?ke.toUpperCase():"MB")}))}if(x.Type==="Integer"){S.addControl(x.Name,V.control($?parseInt($):0));continue}if(x.Type==="Boolean"){S.addControl(x.Name,V.control($==="true"));continue}if(x.Type==="Flags"){S.addControl(x.Name,V.control($??""));continue}x.Type==="Timespan"&&S.addControl(x.Name,V.control($,[Fe.pattern(/([-+]?\d{1,3}[smhDWMY])+/)]))}this.destinationForm.controls.destinations.length!==0&&this.destinationForm.controls.destinations.removeAt(0),this.destinationFormPair.update(G=>({oauthField:G.oauthField,custom:G.custom,dynamic:G.dynamic.sort((x,M)=>v.indexOf(x.name)-v.indexOf(M.name)),advanced:G.advanced.sort((x,M)=>{let S=U.indexOf(x.name),E=U.indexOf(M.name);return S===-1&&E!==-1?1:S!==-1&&E===-1?-1:S-E})})),this.notSelectedAdvancedFormPair.set(this.destinationFormPair().advanced),this.destinationForm.controls.destinations.push(Dt({key:n.Key,customGroup:I,dynamicGroup:Ae,advancedGroup:Re}))}#u(){this.generalForm.reset(),this.sourceDataForm.reset(),this.scheduleForm.reset(),this.destinationForm.reset(),this.optionsForm.reset()}static \u0275fac=function(e){return new(e||t)};static \u0275prov=De({token:t,factory:t.\u0275fac,providedIn:"root"})};var Pn=["formRef"],Vn=(t,i,e,n)=>({destination:t,destinationType:i,index:e,formGroupName:"custom",oauthField:n}),lt=t=>({$implicit:t}),In=(t,i,e,n)=>({destination:t,destinationType:i,index:e,formGroupName:"dynamic",oauthField:n}),Gn=(t,i,e,n)=>({destination:t,destinationType:i,index:e,formGroupName:"advanced",oauthField:n});function Mn(t,i){if(t&1){let e=w();a(0,"p",9),g("click",function(){f(e);let r=p(2);return C(r.removeDestinationFormGroup(r.destinationCount()-1))}),l(1," Wanna select another destination? "),a(2,"span",10),l(3,"Click here"),o()()}}function An(t,i){if(t&1){let e=w();a(0,"div",11)(1,"div",12),g("click",function(){f(e);let r=p(2);return C(r.addDestinationFormGroup("file"))}),a(2,"h3"),l(3,"File system"),o(),a(4,"p"),l(5,"Store backups on your local file system."),o()(),a(6,"div",12),g("click",function(){f(e);let r=p(2);return C(r.addDestinationFormGroup("gcs"))}),a(7,"h3"),l(8,"Google Cloud Storage"),o(),a(9,"p"),l(10,"Store backups in Google Cloud Storage."),o()(),a(11,"div",12),g("click",function(){f(e);let r=p(2);return C(r.addDestinationFormGroup("s3"))}),a(12,"h3"),l(13,"S3 compatible bucket"),o(),a(14,"p"),l(15,"Store backups in any S3 compatible bucket."),o()(),a(16,"div",12),g("click",function(){f(e);let r=p(2);return C(r.addDestinationFormGroup("ssh"))}),a(17,"h3"),l(18,"SSH"),o(),a(19,"p"),l(20,"Store backups in SSH."),o()(),a(21,"div",12),g("click",function(){f(e);let r=p(2);return C(r.addDestinationFormGroup("googledrive"))}),a(22,"h3"),l(23,"Google Drive"),o(),a(24,"p"),l(25,"Store backups in Google Drive."),o()()(),a(26,"p"),l(27,"More destinations are coming soon."),o()}}function Rn(t,i){t&1&&Te(0)}function Bn(t,i){if(t&1&&u(0,Rn,1,0,"ng-container",15),t&2){let e,n=i.$implicit,r=i.$index;p(2);let d=de(6),v=p(2);m("ngTemplateOutlet",d)("ngTemplateOutletContext",Oe(7,lt,Le(2,Vn,n,(e=v.destinationFormSignal())==null||e.destinations==null||e.destinations[0]==null?null:e.destinations[0].destinationType,r,v.destinationFormPair().oauthField)))}}function $n(t,i){if(t&1&&(F(0),O(1,Bn,1,9,"ng-container",null,T),b()),t&2){let e=p(3);s(),N(e.destinationFormPair().custom)}}function Ln(t,i){t&1&&Te(0)}function zn(t,i){if(t&1&&u(0,Ln,1,0,"ng-container",15),t&2){let e,n=i.$implicit,r=i.$index;p(2);let d=de(6),v=p(2);m("ngTemplateOutlet",d)("ngTemplateOutletContext",Oe(7,lt,Le(2,In,n,(e=v.destinationFormSignal())==null||e.destinations==null||e.destinations[0]==null?null:e.destinations[0].destinationType,r,v.destinationFormPair().oauthField)))}}function Un(t,i){if(t&1&&(F(0),O(1,zn,1,9,"ng-container",null,T),b()),t&2){let e=p(3);s(),N(e.destinationFormPair().dynamic)}}function jn(t,i){if(t&1){let e=w();a(0,"button",20),g("click",function(){let r=f(e).$implicit,d=p(4);return C(d.addAdvancedFormPair(r))}),l(1),o()}if(t&2){let e=i.$implicit;s(),D(" ",e.name," ")}}function qn(t,i){t&1&&Te(0)}function Kn(t,i){if(t&1&&u(0,qn,1,0,"ng-container",15),t&2){let e,n=i.$implicit,r=i.$index;p(2);let d=de(6),v=p(2);m("ngTemplateOutlet",d)("ngTemplateOutletContext",Oe(7,lt,Le(2,Gn,n,(e=v.destinationFormSignal())==null||e.destinations==null||e.destinations[0]==null?null:e.destinations[0].destinationType,r,v.destinationFormPair().oauthField)))}}function Wn(t,i){if(t&1&&(a(0,"app-toggle-card",14),F(1,16),l(2," Advanced options "),a(3,"spk-menu")(4,"button",17),l(5," Add advanced option "),a(6,"spk-icon"),l(7,"plus"),o()(),F(8,18),O(9,jn,2,1,"button",19,T),b(),o(),b(),F(11),O(12,Kn,1,9,"ng-container",null,T),b(),o()),t&2){let e=p(3);m("disallowToggle",!0),s(9),N(e.notSelectedAdvancedFormPair()),s(3),N(e.selectedAdvancedFormPair())}}function Qn(t,i){if(t&1&&(a(0,"spk-icon",27),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.destination.longDescription)}}function Hn(t,i){if(t&1&&(a(0,"app-file-tree",22)(1,"label",26),l(2),u(3,Qn,2,1,"spk-icon",27),o(),c(4,"input",28),o()),t&2){let e,n=p().$implicit,r=p(3);m("startingPath",r.getFormFieldValue(n.index,n.formGroupName,n.destination.name)),s(),dt("for","destination-",n.formGroupName,"-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.destination.shortDescription)!==null&&e!==void 0?e:n.destination.name," "),s(),_(n.destination.longDescription?3:-1),s(),y("id","destination-",n.formGroupName,"-",n.index,""),ce("formControlName",n.destination.name)}}function Yn(t,i){if(t&1&&(a(0,"spk-icon",27),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.destination.longDescription)}}function Jn(t,i){t&1&&(a(0,"spk-icon",29),l(1,"link"),o())}function Zn(t,i){t&1&&(a(0,"spk-icon",29),l(1,"textbox"),o())}function Xn(t,i){if(t&1&&(a(0,"spk-form-field")(1,"label",26),l(2),u(3,Yn,2,1,"spk-icon",27),o(),c(4,"input",28),u(5,Jn,2,0,"spk-icon",29)(6,Zn,2,0,"spk-icon",29),o()),t&2){let e,n=p().$implicit;s(),y("for","destination-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.destination.shortDescription)!==null&&e!==void 0?e:n.destination.name," "),s(),_(n.destination.longDescription?3:-1),s(),y("id","destination-",n.formGroupName,"-",n.index,""),ce("formControlName",n.destination.name),s(),_(n.destination.type==="Path"?5:6)}}function ei(t,i){if(t&1){let e=w();a(0,"span",33),g("click",function(){f(e);let r=p(2).$implicit,d=p(3);return C(d.oauthStartTokenCreation(r.destinationType))}),l(1,"AuthID"),o()}}function ti(t,i){t&1&&(a(0,"spk-icon",29),l(1,"password"),o())}function ni(t,i){if(t&1){let e=w();a(0,"spk-icon",34),g("click",function(){f(e);let r=p(2).$implicit;return C(r.destination.showPassword=!r.destination.showPassword)}),l(1," eye "),o()}}function ii(t,i){if(t&1){let e=w();a(0,"spk-icon",34),g("click",function(){f(e);let r=p(2).$implicit;return C(r.destination.showPassword=!r.destination.showPassword)}),l(1," eye-slash "),o()}}function oi(t,i){if(t&1&&(a(0,"spk-form-field")(1,"label",26),l(2),o(),c(3,"input",30),u(4,ei,2,0,"span",31)(5,ti,2,0,"spk-icon",29)(6,ni,2,0,"spk-icon",32)(7,ii,2,0,"spk-icon",32),o()),t&2){let e,n=p().$implicit;s(),y("for","destination-",n.formGroupName,"-",n.index,""),s(),ut(" ",(e=n.destination.shortDescription)!==null&&e!==void 0?e:n.destination.name," -- ",n.oauthField," ",n.destinationType," ",n.destination.name," "),s(),y("id","destination-",n.formGroupName,"-",n.index,""),ce("formControlName",n.destination.name),m("type",n.destination.showPassword?"text":"password"),s(),_(n.oauthField===n.destination.name?4:5),s(2),_(n.destination.showPassword?6:7)}}function ai(t,i){if(t&1&&(a(0,"spk-icon",27),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.destination.longDescription)}}function ri(t,i){if(t&1&&(a(0,"option",37),l(1),o()),t&2){let e=i.$implicit;m("value",e),s(),R(e)}}function li(t,i){if(t&1&&(a(0,"spk-select")(1,"label",26),l(2),u(3,ai,2,1,"spk-icon",27),o(),c(4,"input",35),F(5,36),O(6,ri,2,2,"option",37,T),b(),o()),t&2){let e,n=p().$implicit;s(),y("for","destination-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.destination.shortDescription)!==null&&e!==void 0?e:n.destination.name," "),s(),_(n.destination.longDescription?3:-1),s(),y("id","destination-",n.formGroupName,"-",n.index,""),ce("formControlName",n.destination.name),s(2),N(n.destination.options)}}function si(t,i){if(t&1&&(a(0,"spk-icon",27),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.destination.longDescription)}}function pi(t,i){if(t&1&&(a(0,"option",37),l(1),o()),t&2){let e=i.$implicit;m("value",e),s(),R(e)}}function mi(t,i){if(t&1&&(a(0,"div",23)(1,"label",26),l(2),u(3,si,2,1,"spk-icon",27),o(),a(4,"div",38)(5,"spk-form-field"),c(6,"input",39),a(7,"spk-icon",29),l(8,"resize"),o()(),a(9,"spk-select"),c(10,"label")(11,"input",40),F(12,36),O(13,pi,2,2,"option",37,T),b(),o()()()),t&2){let e,n=p().$implicit,r=p(3);m("formGroupName",n.destination.name),s(),y("for","destination-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.destination.shortDescription)!==null&&e!==void 0?e:n.destination.name," "),s(),_(n.destination.longDescription?3:-1),s(3),y("id","destination-",n.formGroupName,"-",n.index,""),s(7),N(r.sizeOptions())}}function ci(t,i){if(t&1&&(a(0,"spk-icon",27),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.destination.longDescription)}}function di(t,i){if(t&1&&(a(0,"spk-form-field")(1,"label",26),l(2),u(3,ci,2,1,"spk-icon",27),o(),c(4,"input",41),a(5,"spk-icon",29),l(6,"numpad"),o()()),t&2){let e,n=p().$implicit;s(),y("for","destination-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.destination.shortDescription)!==null&&e!==void 0?e:n.destination.name," "),s(),_(n.destination.longDescription?3:-1),s(),y("id","destination-",n.formGroupName,"-",n.index,""),ce("formControlName",n.destination.name)}}function ui(t,i){if(t&1&&(a(0,"spk-icon",27),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.destination.longDescription)}}function _i(t,i){if(t&1&&(a(0,"spk-toggle",24)(1,"label",26),l(2),u(3,ui,2,1,"spk-icon",27),o(),c(4,"input",42),o()),t&2){let e,n=p().$implicit;s(),y("for","destination-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.destination.shortDescription)!==null&&e!==void 0?e:n.destination.name," "),s(),_(n.destination.longDescription?3:-1),s(),y("id","destination-",n.formGroupName,"-",n.index,""),ce("formControlName",n.destination.name)}}function fi(t,i){if(t&1&&(a(0,"spk-icon",27),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.destination.longDescription)}}function Ci(t,i){t&1&&(a(0,"spk-option",44),l(1,"None"),o()),t&2&&m("value","None")}function gi(t,i){if(t&1&&(a(0,"spk-option",37),l(1),c(2,"spk-checkbox",45),o()),t&2){let e=p().$implicit;m("value",e),s(),D(" ",e," ")}}function xi(t,i){if(t&1&&u(0,Ci,2,1,"spk-option",44)(1,gi,3,2,"spk-option",37),t&2){let e=i.$implicit;_(e==="None"?0:1)}}function yi(t,i){if(t&1&&(a(0,"spk-select",25)(1,"label",26),l(2),u(3,fi,2,1,"spk-icon",27),o(),c(4,"input",43),F(5,36),O(6,xi,2,1,null,null,T),b(),o()),t&2){let e,n=p().$implicit;m("selectMultiple",!0),s(),y("for","destination-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.destination.shortDescription)!==null&&e!==void 0?e:n.destination.name," "),s(),_(n.destination.longDescription?3:-1),s(),ce("formControlName",n.destination.name),s(2),N(n.destination.options)}}function hi(t,i){if(t&1&&(a(0,"spk-icon",27),l(1," question "),o()),t&2){let e=p(2).$implicit;P("spk-tooltip-primary",e.destination.longDescription)}}function Si(t,i){if(t&1&&(a(0,"spk-form-field")(1,"label",26),l(2),u(3,hi,2,1,"spk-icon",27),o(),c(4,"input",28)(5,"span",46),o()),t&2){let e,n=p().$implicit;s(),y("for","destination-",n.formGroupName,"-",n.index,""),s(),D(" ",(e=n.destination.shortDescription)!==null&&e!==void 0?e:n.destination.name," "),s(),_(n.destination.longDescription?3:-1),s(),y("id","destination-",n.formGroupName,"-",n.index,""),ce("formControlName",n.destination.name)}}function ki(t,i){if(t&1&&(F(0,21),u(1,Hn,5,11,"app-file-tree",22)(2,Xn,7,10,"spk-form-field")(3,oi,8,14,"spk-form-field")(4,li,8,9,"spk-select")(5,mi,15,9,"div",23)(6,di,7,9,"spk-form-field")(7,_i,5,9,"spk-toggle",24)(8,yi,8,7,"spk-select",25)(9,Si,6,9,"spk-form-field"),b()),t&2){let e=i.$implicit;m("formGroupName",e.formGroupName),s(),_(e.destination.type==="file-tree"?1:e.destination.type==="String"||e.destination.type==="Path"?2:e.destination.type==="Password"?3:e.destination.type==="Enumeration"?4:e.destination.type==="Size"?5:e.destination.type==="Integer"?6:e.destination.type==="Boolean"?7:e.destination.type==="Flags"?8:e.destination.type==="Timespan"?9:-1)}}function vi(t,i){if(t&1&&(F(0,5)(1,13),u(2,$n,3,0,"ng-container")(3,Un,3,0,"ng-container")(4,Wn,14,1,"app-toggle-card",14)(5,ki,10,2,"ng-template",null,1,ze),b()()),t&2){let e=p(2);s(2),_(e.destinationFormPair().custom.length?2:-1),s(),_(e.destinationFormPair().dynamic.length?3:-1),s(),_(e.destinationFormPair().advanced.length?4:-1)}}function Fi(t,i){if(t&1){let e=w();a(0,"form",3,0),g("submit",function(){f(e);let r=p();return C(r.next())}),a(2,"header")(3,"h3",4),l(4," Backup destination "),o(),u(5,Mn,4,0,"p"),o(),u(6,An,28,0)(7,vi,7,3,"ng-container",5),a(8,"div",6)(9,"button",7),g("click",function(){f(e);let r=p();return C(r.goBack())}),a(10,"spk-icon"),l(11,"arrow-left"),o(),l(12," Go back "),o(),a(13,"button",8)(14,"spk-icon"),l(15,"arrow-right"),o(),l(16," Continue "),o()()()}if(t&2){let e,n=p();m("formGroup",n.destinationForm),s(5),_(n.destinationCount()>0?5:-1),s(),_(n.destinationCount()===0?6:-1),s(),_(!((e=n.destinationFormSignal())==null||e.destinations==null)&&e.destinations.length?7:-1)}}var bi=["Bytes","KB","MB","GB","TB","PB"],Xe=new B,wt=(t={destinations:[]})=>Xe.group({destinations:Xe.array(t.destinations)}),Dt=({key:t,customGroup:i,dynamicGroup:e,advancedGroup:n})=>Xe.group({destinationType:Xe.control(t),custom:i,dynamic:e,advanced:n}),rt=class t{#t=h(L);#e=h(Y);#n=h(fe);#i=h(Ct);#a=h(je);#o=h(z);formRef=q.required("formRef");sysIsLoaded=this.#n.isLoaded;finishedLoading=this.#o.finishedLoading;destinationForm=this.#o.destinationForm;destinationFormPair=this.#o.destinationFormPair;selectedAdvancedFormPair=this.#o.selectedAdvancedFormPair;notSelectedAdvancedFormPair=this.#o.notSelectedAdvancedFormPair;destinationOptions=this.#o.destinationOptions;destinationFormSignal=this.#o.destinationFormSignal;destinationCount=H(()=>this.destinationFormSignal()?.destinations?.length??0);sizeOptions=k(bi);getFormFieldValue(i,e,n){return((this.destinationForm.controls.destinations.controls?.[i]).controls?.[e]).controls[n].value}addDestinationFormGroup(i){this.#o.addDestinationFormGroup(i)}addAdvancedFormPair(i){this.selectedAdvancedFormPair.update(e=>(e.push(i),e)),this.notSelectedAdvancedFormPair.update(e=>(e=e.filter(n=>n.name!==i.name),e))}targetUrl=H(()=>{let i=this.destinationFormSignal()?.destinations?.[0];return i?Pe(i):""});testDestination(){let i=this.targetUrl();if(!i)return;let e=null;i.startsWith("s3://")?e=this.#a.postApiV1RemoteoperationCreate({requestBody:{path:i}}):e=this.#a.postApiV1RemoteoperationTest({requestBody:{path:i}}),e&&e.subscribe({next:n=>{console.log("res",n)},error:n=>{console.error("err",n)}})}mapToTargetUrl(i){return Pe(i.value)}removeDestinationFormGroup(i){this.destinationForm.controls.destinations.removeAt(i)}displayFn(i){let e=this.destinationOptions().find(n=>n.Key===i);return e?`${e.DisplayName}`:""}goBack(){this.#t.navigate(["general"],{relativeTo:this.#e.parent})}next(){this.#t.navigate(["source-data"],{relativeTo:this.#e.parent})}#l=k("https://duplicati-oauth-handler.appspot.com/").asReadonly();#s=k(Math.random().toString(36).substring(2)+Math.random().toString(36).substring(2)).asReadonly();#r=k(!1);#p=k(null);keyCreation(){}oauthStartTokenCreation(i){this.#r.set(!0);let e=450,n=600,r=this.#l()+"?type="+i+"&token="+this.#s(),d=screen.width/2-e/2,v=screen.height/2-n/2,U=window.open(r,"_blank","height="+n+",width="+e+",menubar=0,status=0,titlebar=0,toolbar=0,left="+d+",top="+v);U?.addEventListener("blur",pe=>{console.log("event blur",pe)}),U?.addEventListener("beforeunload",pe=>{console.log("event beforeunload",pe),this.#i.get(this.#l()+"fetch?callback=JSON_CALLBACK",{params:{token:this.#s()}}).pipe(ve(()=>this.#r.set(!1))).subscribe({next:I=>{console.log("res",I),I?.authid&&this.#p.set(I.authid)}})})}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=j({type:t,selectors:[["app-destination"]],viewQuery:function(e,n){e&1&&K(n.formRef,Pn,5),e&2&&W()},standalone:!0,features:[Q],decls:1,vars:1,consts:[["formRef",""],["fieldTemplate",""],[3,"formGroup"],[3,"submit","formGroup"],[1,"title-30"],["formArrayName","destinations"],[1,"form-actions"],["spk-button","","type","button",3,"click"],["spk-button","","type","submit",1,"raised","primary"],[3,"click"],[1,"spk-primary"],[1,"most-common-destinations"],[1,"tile",3,"click"],["formGroupName","0"],[3,"disallowToggle"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],["title",""],["spk-button","","type","button",1,"outlined","small"],["menu",""],["item","","type","button"],["item","","type","button",3,"click"],[3,"formGroupName"],[3,"startingPath"],[1,"form-column",3,"formGroupName"],[1,"primary","raised"],[1,"primary",3,"selectMultiple"],[3,"for"],["spk-tooltip-right",""],["type","text",3,"id","formControlName"],["prefix",""],["autocomplete","off",3,"type","id","formControlName"],["prefix","",1,"link"],["suffix","",1,"clickable"],["prefix","",1,"link",3,"click"],["suffix","",1,"clickable",3,"click"],["type","search",3,"id","formControlName"],["options",""],[3,"value"],[1,"form-row"],["type","number","formControlName","size",3,"id"],["type","search","formControlName","unit"],["type","number",3,"id","formControlName"],["type","checkbox",3,"id","formControlName"],["type","text","id","text",3,"formControlName"],["deselect","",3,"value"],[1,"raised","primary"],["error",""]],template:function(e,n){e&1&&u(0,Fi,17,4,"form",2),e&2&&_(n.destinationOptions().length&&n.sysIsLoaded()&&n.finishedLoading()?0:-1)},dependencies:[ae,ee,ie,oe,J,ge,Ce,Z,X,te,ne,xe,gt,Ue,le,se,Ke,qe,We,re,he,Se,Qe],styles:["[_nghost-%COMP%]{display:block}header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;gap:.5rem}header[_ngcontent-%COMP%] p[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{cursor:pointer;text-decoration:underline}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}.form-column[_ngcontent-%COMP%]{display:flex;flex-direction:column}.form-column[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem}.form-column[_ngcontent-%COMP%] spk-icon[_ngcontent-%COMP%]{font-size:1rem}.form-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:2fr 1fr;gap:.5rem;align-items:flex-end}.clickable[_ngcontent-%COMP%]{cursor:pointer;color:var(--primary-500)}.most-common-destinations[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.most-common-destinations[_ngcontent-%COMP%] .tile[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;padding:1rem;border:1px solid var(--base-level-40);border-radius:var(--shape-3);box-shadow:var(--shadow-1);background-color:var(--base-level-20);cursor:pointer}.most-common-destinations[_ngcontent-%COMP%] .tile[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{font:var(--paragraph-10);margin:0}[prefix].link[_ngcontent-%COMP%]{cursor:pointer;text-decoration:underline;color:var(--primary-500)}"],changeDetection:0})};export{wt as a,Dt as b,rt as c,St as d,nt as e,tt as f,kt as g,io as h,it as i,Ft as j,ot as k,bt as l,at as m,z as n};
@@ -0,0 +1 @@
1
+ import"./chunk-7CGTOI24.js";var o=[{path:"",redirectTo:"general",pathMatch:"full"},{path:"general",loadComponent:()=>import("./chunk-AT2YMZPR.js")},{path:"destination",loadComponent:()=>import("./chunk-PB775LH4.js")},{path:"source-data",loadComponent:()=>import("./chunk-5XTTHY4J.js")},{path:"schedule",loadComponent:()=>import("./chunk-BGMX7SZ6.js")},{path:"options",loadComponent:()=>import("./chunk-ZMHOWC7A.js")}];export{o as default};
@@ -1 +1 @@
1
- import{g as a,h as b,i as c}from"./chunk-T35OO33H.js";import"./chunk-MHN6DOJL.js";import"./chunk-NN4VOZJP.js";import"./chunk-DNHLTHLR.js";import"./chunk-ZHM55NRD.js";import"./chunk-4I2FZHFA.js";import"./chunk-ICX4A35N.js";import"./chunk-3ZII4VBA.js";import"./chunk-APGFOGYB.js";import"./chunk-XG5WW7WW.js";import"./chunk-5P5MCIGV.js";import"./chunk-NUWA7AOR.js";import"./chunk-7CGTOI24.js";export{b as createAdvancedOption,a as createOptionsForm,c as default};
1
+ import{g as a,h as b,i as c}from"./chunk-S4TH7BUT.js";import"./chunk-KOIUHATU.js";import"./chunk-NN4VOZJP.js";import"./chunk-DNHLTHLR.js";import"./chunk-ZHM55NRD.js";import"./chunk-4I2FZHFA.js";import"./chunk-ICX4A35N.js";import"./chunk-3ZII4VBA.js";import"./chunk-APGFOGYB.js";import"./chunk-XG5WW7WW.js";import"./chunk-5P5MCIGV.js";import"./chunk-NUWA7AOR.js";import"./chunk-7CGTOI24.js";export{b as createAdvancedOption,a as createOptionsForm,c as default};
package/index.html CHANGED
@@ -20,5 +20,5 @@
20
20
  <style>:root{--font-size:16px;font-size:var(--font-size)}html body{--sparkle-light:initial;--sparkle-dark: ;color-scheme:light dark;--primary-50:#eff6ff;--primary-rgb-50:239,246,255;--primary-contrast-50:var(--dark-primary-text);--primary-100:#dbeafe;--primary-rgb-100:219,234,254;--primary-contrast-100:var(--dark-primary-text);--primary-200:#bfdbfe;--primary-rgb-200:191,219,254;--primary-contrast-200:var(--dark-primary-text);--primary-300:#93c5fd;--primary-rgb-300:147,197,253;--primary-contrast-300:var(--dark-primary-text);--primary-400:#60a5fa;--primary-rgb-400:96,165,250;--primary-contrast-400:var(--dark-primary-text);--primary-500:#3b82f6;--primary-rgb-500:59,130,246;--primary-contrast-500:var(--light-primary-text);--primary-600:#2563eb;--primary-rgb-600:37,99,235;--primary-contrast-600:var(--light-primary-text);--primary-700:#1d4ed8;--primary-rgb-700:29,78,216;--primary-contrast-700:var(--light-primary-text);--primary-800:#1e40af;--primary-rgb-800:30,64,175;--primary-contrast-800:var(--light-primary-text);--primary-900:#1e3a8a;--primary-rgb-900:30,58,138;--primary-contrast-900:var(--light-primary-text);--primary-950:#172554;--primary-rgb-950:23,37,84;--primary-contrast-950:var(--light-primary-text);--accent-50:#f5f3ff;--accent-rgb-50:245,243,255;--accent-contrast-50:var(--dark-primary-text);--accent-100:#ede9fe;--accent-rgb-100:237,233,254;--accent-contrast-100:var(--dark-primary-text);--accent-200:#ddd6fe;--accent-rgb-200:221,214,254;--accent-contrast-200:var(--dark-primary-text);--accent-300:#c4b5fd;--accent-rgb-300:196,181,253;--accent-contrast-300:var(--dark-primary-text);--accent-400:#a78bfa;--accent-rgb-400:167,139,250;--accent-contrast-400:var(--dark-primary-text);--accent-500:#8b5cf6;--accent-rgb-500:139,92,246;--accent-contrast-500:var(--light-primary-text);--accent-600:#7c3aed;--accent-rgb-600:124,58,237;--accent-contrast-600:var(--light-primary-text);--accent-700:#6d28d9;--accent-rgb-700:109,40,217;--accent-contrast-700:var(--light-primary-text);--accent-800:#5b21b6;--accent-rgb-800:91,33,182;--accent-contrast-800:var(--light-primary-text);--accent-900:#4c1d95;--accent-rgb-900:76,29,149;--accent-contrast-900:var(--light-primary-text);--accent-950:#2e1065;--accent-rgb-950:46,16,101;--accent-contrast-950:var(--light-primary-text);--tertiary-50:#fffbeb;--tertiary-rgb-50:255,251,235;--tertiary-contrast-50:var(--dark-primary-text);--tertiary-100:#fef3c7;--tertiary-rgb-100:254,243,199;--tertiary-contrast-100:var(--dark-primary-text);--tertiary-200:#fde68a;--tertiary-rgb-200:253,230,138;--tertiary-contrast-200:var(--dark-primary-text);--tertiary-300:#fcd34d;--tertiary-rgb-300:252,211,77;--tertiary-contrast-300:var(--dark-primary-text);--tertiary-400:#fbbf24;--tertiary-rgb-400:251,191,36;--tertiary-contrast-400:var(--light-primary-text);--tertiary-500:#f59e0b;--tertiary-rgb-500:245,158,11;--tertiary-contrast-500:var(--light-primary-text);--tertiary-600:#d97706;--tertiary-rgb-600:217,119,6;--tertiary-contrast-600:var(--light-primary-text);--tertiary-700:#b45309;--tertiary-rgb-700:180,83,9;--tertiary-contrast-700:var(--light-primary-text);--tertiary-800:#92400e;--tertiary-rgb-800:146,64,14;--tertiary-contrast-800:var(--light-primary-text);--tertiary-900:#78350f;--tertiary-rgb-900:120,53,15;--tertiary-contrast-900:var(--light-primary-text);--tertiary-950:#451a03;--tertiary-rgb-950:69,26,3;--tertiary-contrast-950:var(--light-primary-text);--grey-50:#fafafa;--grey-rgb-50:250,250,250;--grey-contrast-50:var(--dark-primary-text);--grey-100:#f4f4f5;--grey-rgb-100:244,244,245;--grey-contrast-100:var(--dark-primary-text);--grey-200:#e4e4e7;--grey-rgb-200:228,228,231;--grey-contrast-200:var(--dark-primary-text);--grey-300:#d4d4d8;--grey-rgb-300:212,212,216;--grey-contrast-300:var(--dark-primary-text);--grey-400:#a1a1aa;--grey-rgb-400:161,161,170;--grey-contrast-400:var(--dark-primary-text);--grey-500:#71717a;--grey-rgb-500:113,113,122;--grey-contrast-500:var(--light-primary-text);--grey-600:#52525b;--grey-rgb-600:82,82,91;--grey-contrast-600:var(--light-primary-text);--grey-700:#3f3f46;--grey-rgb-700:63,63,70;--grey-contrast-700:var(--light-primary-text);--grey-750:#2f2f31;--grey-rgb-750:47,47,49;--grey-contrast-750:var(--light-primary-text);--grey-800:#27272a;--grey-rgb-800:39,39,42;--grey-contrast-800:var(--light-primary-text);--grey-900:#18181b;--grey-rgb-900:24,24,27;--grey-contrast-900:var(--light-primary-text);--grey-950:#09090b;--grey-rgb-950:9,9,11;--grey-contrast-950:var(--light-primary-text);--warn-50:#fef2f2;--warn-rgb-50:254,242,242;--warn-contrast-50:var(--dark-primary-text);--warn-100:#fee2e2;--warn-rgb-100:254,226,226;--warn-contrast-100:var(--dark-primary-text);--warn-200:#fecaca;--warn-rgb-200:254,202,202;--warn-contrast-200:var(--dark-primary-text);--warn-300:#fca5a5;--warn-rgb-300:252,165,165;--warn-contrast-300:var(--dark-primary-text);--warn-400:#f87171;--warn-rgb-400:248,113,113;--warn-contrast-400:var(--light-primary-text);--warn-500:#ef4444;--warn-rgb-500:239,68,68;--warn-contrast-500:var(--light-primary-text);--warn-600:#dc2626;--warn-rgb-600:220,38,38;--warn-contrast-600:var(--light-primary-text);--warn-700:#b91c1c;--warn-rgb-700:185,28,28;--warn-contrast-700:var(--light-primary-text);--warn-800:#991b1b;--warn-rgb-800:153,27,27;--warn-contrast-800:var(--light-primary-text);--warn-900:#7f1d1d;--warn-rgb-900:127,29,29;--warn-contrast-900:var(--light-primary-text);--warn-950:#450a0a;--warn-rgb-950:69,10,10;--warn-contrast-950:var(--light-primary-text);--success-50:#ecfdf5;--success-rgb-50:236,253,245;--success-contrast-50:var(--dark-primary-text);--success-100:#d1fae5;--success-rgb-100:209,250,229;--success-contrast-100:var(--dark-primary-text);--success-200:#a7f3d0;--success-rgb-200:167,243,208;--success-contrast-200:var(--dark-primary-text);--success-300:#6ee7b7;--success-rgb-300:110,231,183;--success-contrast-300:var(--dark-primary-text);--success-400:#34d399;--success-rgb-400:52,211,153;--success-contrast-400:var(--light-primary-text);--success-500:#10b981;--success-rgb-500:16,185,129;--success-contrast-500:var(--light-primary-text);--success-600:#059669;--success-rgb-600:5,150,105;--success-contrast-600:var(--light-primary-text);--success-700:#047857;--success-rgb-700:4,120,87;--success-contrast-700:var(--light-primary-text);--success-800:#065f46;--success-rgb-800:6,95,70;--success-contrast-800:var(--light-primary-text);--success-900:#064e3b;--success-rgb-900:6,78,59;--success-contrast-900:var(--light-primary-text);--success-950:#022c22;--success-rgb-950:2,44,34;--success-contrast-950:var(--light-primary-text);--display-10:600 5rem / normal Inter Tight, sans-serif;--display-20:600 4.5rem / normal Inter Tight, sans-serif;--display-30:600 4rem / normal Inter Tight, sans-serif;--display-40:600 3.5rem / normal Inter Tight, sans-serif;--display-50:600 3rem / normal Inter Tight, sans-serif;--title-10:500 2.5rem / normal Inter Tight, sans-serif;--title-20:500 2rem / normal Inter Tight, sans-serif;--title-30:500 1.5rem / normal Inter Tight, sans-serif;--title-10B:600 2.5rem / normal Inter Tight, sans-serif;--title-20B:600 2rem / normal Inter Tight, sans-serif;--title-30B:600 1.5rem / normal Inter Tight, sans-serif;--paragraph-10:500 1.125rem / normal Inter Tight, sans-serif;--paragraph-20:500 1rem / normal Inter Tight, sans-serif;--paragraph-30:500 .875rem / normal Inter Tight, sans-serif;--paragraph-40:500 .75rem / normal Inter Tight, sans-serif;--paragraph-10B:600 1.125rem / normal Inter Tight, sans-serif;--paragraph-20B:600 1rem / normal Inter Tight, sans-serif;--paragraph-30B:600 .875rem / normal Inter Tight, sans-serif;--paragraph-40B:600 .75rem / normal Inter Tight, sans-serif;--shape-1:.25rem;--shape-2:.5rem;--shape-3:.75rem;--shape-4:1rem;--shape-5:1.25rem;--box-shadow-10:0 1px 2px 0 rgba(18, 18, 23, .07);--box-shadow-20:0 1px 3px 0 rgba(18, 18, 23, .1);--box-shadow-30:0 1px 4px -1px rgba(18, 18, 23, .08);--box-shadow-35:0 4px 6px -1px rgba(18, 18, 23, .08);--box-shadow-40:0 10px 15px -3px rgba(18, 18, 23, .08);--box-shadow-50:0 20px 25px -5px rgba(18, 18, 23, .1);--box-shadow-60:0 25px 50px -12px rgba(18, 18, 23, .25);--base-level-10:var(--sparkle-light, #fff) var(--sparkle-dark, var(--grey-950));--base-level-20:var(--sparkle-light, var(--grey-50)) var(--sparkle-dark, var(--grey-900));--base-level-30:var(--sparkle-light, var(--grey-100)) var(--sparkle-dark, var(--grey-900));--base-level-30R:var(--sparkle-light, var(--grey-900)) var(--sparkle-dark, var(--grey-100));--base-level-40:var(--sparkle-light, var(--grey-200)) var(--sparkle-dark, var(--grey-700));--base-level-50:var(--sparkle-light, var(--grey-300)) var(--sparkle-dark, var(--grey-800));--base-level-60:var(--sparkle-light, var(--grey-500)) var(--sparkle-dark, var(--grey-400));--base-level-60R:var(--sparkle-light, var(--grey-400)) var(--sparkle-dark, var(--grey-500));--base-level-70:var(--sparkle-light, var(--grey-900)) var(--sparkle-dark, #fff);--base-level-70R:var(--sparkle-light, #fff) var(--sparkle-dark, var(--grey-900));--base-gradient-20:linear-gradient(180deg, var(--grey-400) 0%, var(--grey-500) 50%);--base-gradient-30:linear-gradient(180deg, var(--grey-300) 0%, var(--grey-500) 50%);--base-gradient-60:linear-gradient(180deg, var(--grey-700) 0%, var(--grey-900) 50%);--base-gradient-70:linear-gradient(180deg, var(--grey-600) 0%, var(--grey-900) 50%);--primary-level-20:var(--sparkle-light, var(--primary-50)) var(--sparkle-dark, var(--primary-950));--primary-level-30:var(--sparkle-light, var(--primary-100)) var(--sparkle-dark, var(--primary-900));--primary-level-40:var(--sparkle-light, var(--primary-200)) var(--sparkle-dark, var(--primary-800));--primary-level-50:var(--sparkle-light, var(--primary-300)) var(--sparkle-dark, var(--primary-800));--primary-level-50R:var(--sparkle-light, var(--primary-800)) var(--sparkle-dark, var(--primary-300));--primary-level-80:var(--sparkle-light, var(--primary-900)) var(--sparkle-dark, var(--primary-300));--primary-gradient-20:linear-gradient(180deg, var(--primary-400) 0%, var(--primary-500) 50%);--primary-gradient-30:linear-gradient(180deg, var(--primary-300) 0%, var(--primary-500) 50%);--accent-level-20:var(--sparkle-light, var(--accent-50)) var(--sparkle-dark, var(--accent-950));--accent-level-30:var(--sparkle-light, var(--accent-100)) var(--sparkle-dark, var(--accent-900));--accent-level-40:var(--sparkle-light, var(--accent-200)) var(--sparkle-dark, var(--accent-800));--accent-level-50:var(--sparkle-light, var(--accent-300)) var(--sparkle-dark, var(--accent-800));--accent-level-50R:var(--sparkle-light, var(--accent-800)) var(--sparkle-dark, var(--accent-300));--accent-level-80:var(--sparkle-light, var(--accent-900)) var(--sparkle-dark, var(--accent-300));--accent-gradient-20:linear-gradient(180deg, var(--accent-400) 0%, var(--accent-500) 50%);--accent-gradient-30:linear-gradient(180deg, var(--accent-300) 0%, var(--accent-500) 50%);--tertiary-level-20:var(--sparkle-light, var(--tertiary-50)) var(--sparkle-dark, var(--tertiary-950));--tertiary-level-30:var(--sparkle-light, var(--tertiary-100)) var(--sparkle-dark, var(--tertiary-900));--tertiary-level-40:var(--sparkle-light, var(--tertiary-200)) var(--sparkle-dark, var(--tertiary-800));--tertiary-level-50:var(--sparkle-light, var(--tertiary-300)) var(--sparkle-dark, var(--tertiary-800));--tertiary-level-50R:var(--sparkle-light, var(--tertiary-800)) var(--sparkle-dark, var(--tertiary-300));--tertiary-level-80:var(--sparkle-light, var(--tertiary-900)) var(--sparkle-dark, var(--tertiary-300));--tertiary-gradient-20:linear-gradient(180deg, var(--tertiary-400) 0%, var(--tertiary-500) 50%);--tertiary-gradient-30:linear-gradient(180deg, var(--tertiary-300) 0%, var(--tertiary-500) 50%);--warn-level-20:var(--sparkle-light, var(--warn-50)) var(--sparkle-dark, var(--warn-950));--warn-level-30:var(--sparkle-light, var(--warn-100)) var(--sparkle-dark, var(--warn-900));--warn-level-40:var(--sparkle-light, var(--warn-200)) var(--sparkle-dark, var(--warn-800));--warn-level-50:var(--sparkle-light, var(--warn-300)) var(--sparkle-dark, var(--warn-800));--warn-level-50R:var(--sparkle-light, var(--warn-800)) var(--sparkle-dark, var(--warn-300));--warn-level-80:var(--sparkle-light, var(--warn-900)) var(--sparkle-dark, var(--warn-300));--warn-gradient-20:linear-gradient(180deg, var(--warn-400) 0%, var(--warn-500) 50%);--warn-gradient-30:linear-gradient(180deg, var(--warn-300) 0%, var(--warn-500) 50%);--success-level-20:var(--sparkle-light, var(--success-50)) var(--sparkle-dark, var(--success-950));--success-level-30:var(--sparkle-light, var(--success-100)) var(--sparkle-dark, var(--success-900));--success-level-40:var(--sparkle-light, var(--success-200)) var(--sparkle-dark, var(--success-800));--success-level-50:var(--sparkle-light, var(--success-300)) var(--sparkle-dark, var(--success-800));--success-level-50R:var(--sparkle-light, var(--success-800)) var(--sparkle-dark, var(--success-300));--success-level-80:var(--sparkle-light, var(--success-900)) var(--sparkle-dark, var(--success-300));--success-gradient-20:linear-gradient(180deg, var(--success-400) 0%, var(--success-500) 50%);--success-gradient-30:linear-gradient(180deg, var(--success-300) 0%, var(--success-500) 50%);--dark-primary-text:var(--grey-900);--light-primary-text:#fff}*{box-sizing:border-box}html,body,app-root{width:100vw;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--base-level-20)}body{margin:0;font:var(--paragraph-30);color:var(--base-level-70)}</style><link rel="stylesheet" href="styles-EYLEETOZ.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-EYLEETOZ.css"></noscript></head>
21
21
  <body>
22
22
  <app-root></app-root>
23
- <link rel="modulepreload" href="chunk-I62MTURC.js"><link rel="modulepreload" href="chunk-NN4VOZJP.js"><link rel="modulepreload" href="chunk-ZCCVAPLP.js"><link rel="modulepreload" href="chunk-QILG6324.js"><link rel="modulepreload" href="chunk-ZHM55NRD.js"><link rel="modulepreload" href="chunk-3ZII4VBA.js"><link rel="modulepreload" href="chunk-APGFOGYB.js"><link rel="modulepreload" href="chunk-XG5WW7WW.js"><link rel="modulepreload" href="chunk-5P5MCIGV.js"><link rel="modulepreload" href="chunk-NUWA7AOR.js"><script src="main-WKCYMGN6.js" type="module"></script></body>
23
+ <link rel="modulepreload" href="chunk-I62MTURC.js"><link rel="modulepreload" href="chunk-NN4VOZJP.js"><link rel="modulepreload" href="chunk-ZCCVAPLP.js"><link rel="modulepreload" href="chunk-QILG6324.js"><link rel="modulepreload" href="chunk-ZHM55NRD.js"><link rel="modulepreload" href="chunk-3ZII4VBA.js"><link rel="modulepreload" href="chunk-APGFOGYB.js"><link rel="modulepreload" href="chunk-XG5WW7WW.js"><link rel="modulepreload" href="chunk-5P5MCIGV.js"><link rel="modulepreload" href="chunk-NUWA7AOR.js"><script src="main-WNZU6MTP.js" type="module"></script></body>
24
24
  </html>
@@ -1 +1 @@
1
- import{a as S}from"./chunk-I62MTURC.js";import{a as E}from"./chunk-NN4VOZJP.js";import{a as R}from"./chunk-ZCCVAPLP.js";import{b as Q}from"./chunk-QILG6324.js";import"./chunk-ZHM55NRD.js";import{c as Z}from"./chunk-3ZII4VBA.js";import{a as q,b as _,c as C,f as z,g as G}from"./chunk-APGFOGYB.js";import{a as B}from"./chunk-XG5WW7WW.js";import"./chunk-5P5MCIGV.js";import{$b as H,Ac as $,D as N,I as x,K as L,Nb as F,P as b,S as V,Sa as l,V as s,X as P,d as O,fc as U,lb as j,m as M,vc as D,wc as J,x as k,yc as W,zc as K}from"./chunk-NUWA7AOR.js";import"./chunk-7CGTOI24.js";var X={production:!0,baseUrl:"/api",machineServerUrl:"${WS_URL}",defaultTimeout:3e4};var m=new V("ENVIRONMENT");var Y=[{path:"",children:[{path:"login",canActivate:[()=>s(S).token()!==null?s(C).navigate(["/"]):!0],loadComponent:()=>import("./chunk-HQEL6ET4.js")},{path:"logout",loadComponent:()=>import("./chunk-XX4XT5RQ.js")},{path:"",loadComponent:()=>import("./chunk-WIE3F2D2.js"),children:[{path:"",loadComponent:()=>import("./chunk-HAGEM2KU.js")},{path:"add-backup",loadComponent:()=>import("./chunk-HK24NYRP.js")},{path:"backup/:id/export",loadComponent:()=>import("./chunk-SCOHUUYQ.js")},{path:"backup/import",loadComponent:()=>import("./chunk-AE4UH7UP.js")},{path:"backup-draft/:id",canActivate:[()=>s(E).sysInfoObservable()],loadComponent:()=>import("./chunk-6KLL4YWI.js"),loadChildren:()=>import("./chunk-OZLQ4DOT.js")},{path:"backup/:id",canActivateChild:[()=>s(E).sysInfoObservable()],loadComponent:()=>import("./chunk-6KLL4YWI.js"),loadChildren:()=>import("./chunk-OZLQ4DOT.js")},{path:"restore",loadComponent:()=>import("./chunk-XWP5J7FY.js")},{path:"restore-flow/:id",loadComponent:()=>import("./chunk-ZOYYVMCX.js"),children:[{path:"",redirectTo:"select-files",pathMatch:"full"},{path:"select-files",loadComponent:()=>import("./chunk-RL7MMUDI.js")},{path:"options",loadComponent:()=>import("./chunk-6K5O33IF.js")}]},{path:"settings",loadComponent:()=>import("./chunk-THXSJ5EB.js")},{path:"about",loadComponent:()=>import("./chunk-VCWCJ6GK.js"),children:[{path:"",redirectTo:"general",pathMatch:"full"},{path:"general",loadComponent:()=>import("./chunk-4UMXA6ZN.js")},{path:"changelog",loadComponent:()=>import("./chunk-24SCDXOT.js")},{path:"libraries",loadComponent:()=>import("./chunk-D3SNAEYH.js")},{path:"system-info",loadComponent:()=>import("./chunk-72GO2ZEM.js")},{path:"logs",loadComponent:()=>import("./chunk-EC4YV54D.js")}]}]}]}];var w=null,ee=(o,e)=>{let t=s(S),n=s(C),p=s(m),i=s(Z),c=o;return t.token()&&o.url.startsWith(p.baseUrl)&&(c=o.clone({headers:o.headers.set("Authorization",`Bearer ${t.token()}`)})),e(c).pipe(k(r=>{if(i.error(r.message),r.status===401&&!w&&(w=t.refreshToken().pipe(x())),r.status===401)return w.pipe(L(()=>e(o.clone({headers:o.headers.set("Authorization",`Bearer ${t.token()}`)}))),k(f=>(n.navigate(["/logout"]),M(()=>f))),N(()=>w=null));let a=`Error Code: ${r.status}, Message: ${r.message}`;return M(()=>a)}))};var se="1.0.0",te="portal-proxy-client",ie=1,I=class o{#o=1e3;#n=s(m);#e=l("disconnected");#l=l(this.#o);#i=l(!1);#r=l(!1);#a=l(null);isConnectedToMachineServer=this.#r.asReadonly();wsState=this.#e.asReadonly();#p=[];#s={};#t=null;#m=new TextDecoder("utf-8");#c=null;#d=U(()=>{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),p=>p.charCodeAt(0)),n=this.#m.decode(t);return n?JSON.parse(n):null}connectToMachineServer(e,t){let n=t?.reconnect??!1;this.#t&&this.wsState()==="authenticated"&&!n||(this.#t&&this.wsState()!=="authenticated"&&this.#t.close(),this.#t=new WebSocket(this.#n.machineServerUrl),this.#t.onopen=()=>{this.#e.set("connect"),this.#r.set(!0),this.#i.set(!1),this.#a.set(null)},this.#t.onclose=()=>{this.#e.set("disconnected"),this.#r.set(!1),this.#a.set(e),this.#i.set(!0)},this.#t.onerror=()=>{this.#e.set("error")},this.#t.onmessage=p=>{let i=JSON.parse(p.data);if(this.wsState()==="connect"){if(i.type!=="welcome"){this.disconnectFromMachineServer(`Unexpected message type, expected 'welcome' but got '${i.type}'`);return}let r={token:e,publicKey:"",clientVersion:se,protocolVersion:ie},a=this.createResponse(i,"authportal",r);this.#e.set("welcome"),this.#t?.send(a)}else if(this.wsState()==="welcome"){if(i.type!=="authportal"){this.disconnectFromMachineServer(`Unexpected message type, expected 'authportal' but got '${i.type}'`);return}var c=JSON.parse(i.payload??"");if(c.accepted===!1){this.disconnectFromMachineServer("Authentication failed");return}for(this.#e.set("authenticated"),this.#r.set(!0);this.#p.length>0;){let r=this.#p.pop();r&&this.#s[r.messageId]&&this.activateCommand(r)}}else if(this.wsState()==="authenticated"){if(i.type!=="command"){console.warn(`Unexpected message type, expected 'command' but got '${i.type}'`);return}let r=this.#s[i.messageId];if(r){if(i.errorMessage){r.reject(i.errorMessage);return}else{let a=JSON.parse(i.payload??"");a.body=a?.body==null?null:this.utf8Atob(a.body),r.resolve(a)}delete this.#s[i.messageId],window.clearTimeout(r.timer)}}})}disconnectFromMachineServer(e=null){e&&console.error(e),this.#t?.close(),this.#t=null,this.#e.set("disconnected"),this.#r.set(!1)}createResponse(e,t,n){let p={from:te,to:e.from,type:t,messageId:e.messageId,payload:JSON.stringify(n)};return JSON.stringify(p)}sendCommand(e,t,n,p,i,c,r=5e3){return(this.wsState()==="disconnected"||this.wsState()==="error")&&this.connectToMachineServer(e),new Promise((a,f)=>{let d=crypto.randomUUID(),g={from:te,to:t,type:"command",messageId:d,payload:JSON.stringify({method:n,path:p,body:i,headers:c})},y={resolve:a,reject:f,timer:window.setTimeout(()=>{let v=this.#s[d];v&&(delete this.#s[d],v.reject("Timeout"))},r)};this.#s[d]=y,this.#r()?this.activateCommand(g):this.#p.push(g)})}activateCommand(e){this.#t?.send(JSON.stringify(e))}static \u0275fac=function(t){return new(t||o)};static \u0275prov=b({token:o,factory:o.\u0275fac,providedIn:"root"})};var u=class o{#o=l(null);config=this.#o.asReadonly();parentIframeListner=null;parentOrigin="*";fetchConfig(){this.#e(),this.parentIframeListner=new AbortController,this.#n("connected"),window.addEventListener("message",e=>{if(e.data.startsWith("access:")){let t=e.data.replace("access:",""),n=JSON.parse(t);if(!n?.accessToken||!n?.clientId){this.#n("error:invalid-config");return}if(typeof n.clientId!="string"){this.#n("error:invalid-config");return}if(typeof n.accessToken!="string"){this.#n("error:invalid-config");return}console.info("postMessage config set"),this.#o.set(n)}},{signal:this.parentIframeListner.signal})}#n(e){window.parent.postMessage(e,"*")}#e(){this.parentIframeListner&&(this.parentIframeListner.abort(),this.parentIframeListner=null)}setConfig(e){this.#o.set(e)}clearConfig(){this.#o.set(null)}static \u0275fac=function(t){return new(t||o)};static \u0275prov=b({token:o,factory:o.\u0275fac,providedIn:"root"})};function ae(o){if(typeof o!="string")return null;let t=new TextEncoder().encode(o);return window.btoa(String.fromCharCode(...t))}var ne=(o,e)=>{let n=s(u).config(),p=s(m);if(n===null)return e(o);let i=s(I),c=ae(o.body),r={};o.headers.keys().forEach(h=>{r[h]=o.headers.get(h)??""});let a=o.headers.get("timeout"),f=a!==null?parseInt(a):p.defaultTimeout,d=i.sendCommand(n.accessToken,n.clientId,o.method,o.url,c,r,f);return new O(h=>{d.then(g=>{let y=new D;r!=null&&Object.keys(r).forEach(A=>{y.set(A,r[A])});let v=new J({body:g.body,status:g.code,statusText:"OK",headers:y});h.next(v),h.complete()})})};var re={providers:[H(),z(Y,G()),W($(),K([ne,ee])),R,{provide:m,useValue:X},Q]};var T=class o{#o=s(R);#n=s(q);#e=s(u);sub=null;ngOnInit(){this.#e.fetchConfig(),this.sub=this.#n.queryParams.subscribe(({accessToken:e,clientId:t})=>{e?.length&&t?.length&&this.#e.setConfig({accessToken:e,clientId:t})}),this.#o.clearAllNotCurrentVersion()}ngOnDestroy(){this.sub?.unsubscribe()}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=P({type:o,selectors:[["app-root"]],standalone:!0,features:[F],decls:1,vars:0,template:function(t,n){t&1&&j(0,"router-outlet")},dependencies:[_],encapsulation:2})};B(T,re).catch(o=>console.error(o));
1
+ import{a as S}from"./chunk-I62MTURC.js";import{a as E}from"./chunk-NN4VOZJP.js";import{a as R}from"./chunk-ZCCVAPLP.js";import{b as Q}from"./chunk-QILG6324.js";import"./chunk-ZHM55NRD.js";import{c as Z}from"./chunk-3ZII4VBA.js";import{a as q,b as _,c as C,f as z,g as G}from"./chunk-APGFOGYB.js";import{a as B}from"./chunk-XG5WW7WW.js";import"./chunk-5P5MCIGV.js";import{$b as H,Ac as $,D as N,I as x,K as L,Nb as F,P as b,S as V,Sa as l,V as s,X as P,d as O,fc as U,lb as j,m as M,vc as D,wc as J,x as k,yc as W,zc as K}from"./chunk-NUWA7AOR.js";import"./chunk-7CGTOI24.js";var X={production:!0,baseUrl:"/api",machineServerUrl:"${WS_URL}",defaultTimeout:3e4};var m=new V("ENVIRONMENT");var Y=[{path:"",children:[{path:"login",canActivate:[()=>s(S).token()!==null?s(C).navigate(["/"]):!0],loadComponent:()=>import("./chunk-HQEL6ET4.js")},{path:"logout",loadComponent:()=>import("./chunk-XX4XT5RQ.js")},{path:"",loadComponent:()=>import("./chunk-WIE3F2D2.js"),children:[{path:"",loadComponent:()=>import("./chunk-HAGEM2KU.js")},{path:"add-backup",loadComponent:()=>import("./chunk-HK24NYRP.js")},{path:"backup/:id/export",loadComponent:()=>import("./chunk-SCOHUUYQ.js")},{path:"backup/import",loadComponent:()=>import("./chunk-AE4UH7UP.js")},{path:"backup-draft/:id",canActivate:[()=>s(E).sysInfoObservable()],loadComponent:()=>import("./chunk-PJY2UW7Y.js"),loadChildren:()=>import("./chunk-VLYQWE2X.js")},{path:"backup/:id",canActivateChild:[()=>s(E).sysInfoObservable()],loadComponent:()=>import("./chunk-PJY2UW7Y.js"),loadChildren:()=>import("./chunk-VLYQWE2X.js")},{path:"restore",loadComponent:()=>import("./chunk-XWP5J7FY.js")},{path:"restore-flow/:id",loadComponent:()=>import("./chunk-EE44D7EI.js"),children:[{path:"",redirectTo:"select-files",pathMatch:"full"},{path:"select-files",loadComponent:()=>import("./chunk-M6XAG6QD.js")},{path:"options",loadComponent:()=>import("./chunk-CBPKRHET.js")}]},{path:"settings",loadComponent:()=>import("./chunk-THXSJ5EB.js")},{path:"about",loadComponent:()=>import("./chunk-VCWCJ6GK.js"),children:[{path:"",redirectTo:"general",pathMatch:"full"},{path:"general",loadComponent:()=>import("./chunk-4UMXA6ZN.js")},{path:"changelog",loadComponent:()=>import("./chunk-24SCDXOT.js")},{path:"libraries",loadComponent:()=>import("./chunk-D3SNAEYH.js")},{path:"system-info",loadComponent:()=>import("./chunk-72GO2ZEM.js")},{path:"logs",loadComponent:()=>import("./chunk-EC4YV54D.js")}]}]}]}];var w=null,ee=(o,e)=>{let t=s(S),n=s(C),p=s(m),i=s(Z),c=o;return t.token()&&o.url.startsWith(p.baseUrl)&&(c=o.clone({headers:o.headers.set("Authorization",`Bearer ${t.token()}`)})),e(c).pipe(k(r=>{if(i.error(r.message),r.status===401&&!w&&(w=t.refreshToken().pipe(x())),r.status===401)return w.pipe(L(()=>e(o.clone({headers:o.headers.set("Authorization",`Bearer ${t.token()}`)}))),k(f=>(n.navigate(["/logout"]),M(()=>f))),N(()=>w=null));let a=`Error Code: ${r.status}, Message: ${r.message}`;return M(()=>a)}))};var se="1.0.0",te="portal-proxy-client",ie=1,I=class o{#o=1e3;#n=s(m);#e=l("disconnected");#l=l(this.#o);#i=l(!1);#r=l(!1);#a=l(null);isConnectedToMachineServer=this.#r.asReadonly();wsState=this.#e.asReadonly();#p=[];#s={};#t=null;#m=new TextDecoder("utf-8");#c=null;#d=U(()=>{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),p=>p.charCodeAt(0)),n=this.#m.decode(t);return n?JSON.parse(n):null}connectToMachineServer(e,t){let n=t?.reconnect??!1;this.#t&&this.wsState()==="authenticated"&&!n||(this.#t&&this.wsState()!=="authenticated"&&this.#t.close(),this.#t=new WebSocket(this.#n.machineServerUrl),this.#t.onopen=()=>{this.#e.set("connect"),this.#r.set(!0),this.#i.set(!1),this.#a.set(null)},this.#t.onclose=()=>{this.#e.set("disconnected"),this.#r.set(!1),this.#a.set(e),this.#i.set(!0)},this.#t.onerror=()=>{this.#e.set("error")},this.#t.onmessage=p=>{let i=JSON.parse(p.data);if(this.wsState()==="connect"){if(i.type!=="welcome"){this.disconnectFromMachineServer(`Unexpected message type, expected 'welcome' but got '${i.type}'`);return}let r={token:e,publicKey:"",clientVersion:se,protocolVersion:ie},a=this.createResponse(i,"authportal",r);this.#e.set("welcome"),this.#t?.send(a)}else if(this.wsState()==="welcome"){if(i.type!=="authportal"){this.disconnectFromMachineServer(`Unexpected message type, expected 'authportal' but got '${i.type}'`);return}var c=JSON.parse(i.payload??"");if(c.accepted===!1){this.disconnectFromMachineServer("Authentication failed");return}for(this.#e.set("authenticated"),this.#r.set(!0);this.#p.length>0;){let r=this.#p.pop();r&&this.#s[r.messageId]&&this.activateCommand(r)}}else if(this.wsState()==="authenticated"){if(i.type!=="command"){console.warn(`Unexpected message type, expected 'command' but got '${i.type}'`);return}let r=this.#s[i.messageId];if(r){if(i.errorMessage){r.reject(i.errorMessage);return}else{let a=JSON.parse(i.payload??"");a.body=a?.body==null?null:this.utf8Atob(a.body),r.resolve(a)}delete this.#s[i.messageId],window.clearTimeout(r.timer)}}})}disconnectFromMachineServer(e=null){e&&console.error(e),this.#t?.close(),this.#t=null,this.#e.set("disconnected"),this.#r.set(!1)}createResponse(e,t,n){let p={from:te,to:e.from,type:t,messageId:e.messageId,payload:JSON.stringify(n)};return JSON.stringify(p)}sendCommand(e,t,n,p,i,c,r=5e3){return(this.wsState()==="disconnected"||this.wsState()==="error")&&this.connectToMachineServer(e),new Promise((a,f)=>{let d=crypto.randomUUID(),g={from:te,to:t,type:"command",messageId:d,payload:JSON.stringify({method:n,path:p,body:i,headers:c})},y={resolve:a,reject:f,timer:window.setTimeout(()=>{let v=this.#s[d];v&&(delete this.#s[d],v.reject("Timeout"))},r)};this.#s[d]=y,this.#r()?this.activateCommand(g):this.#p.push(g)})}activateCommand(e){this.#t?.send(JSON.stringify(e))}static \u0275fac=function(t){return new(t||o)};static \u0275prov=b({token:o,factory:o.\u0275fac,providedIn:"root"})};var u=class o{#o=l(null);config=this.#o.asReadonly();parentIframeListner=null;parentOrigin="*";fetchConfig(){this.#e(),this.parentIframeListner=new AbortController,this.#n("connected"),window.addEventListener("message",e=>{if(e.data.startsWith("access:")){let t=e.data.replace("access:",""),n=JSON.parse(t);if(!n?.accessToken||!n?.clientId){this.#n("error:invalid-config");return}if(typeof n.clientId!="string"){this.#n("error:invalid-config");return}if(typeof n.accessToken!="string"){this.#n("error:invalid-config");return}console.info("postMessage config set"),this.#o.set(n)}},{signal:this.parentIframeListner.signal})}#n(e){window.parent.postMessage(e,"*")}#e(){this.parentIframeListner&&(this.parentIframeListner.abort(),this.parentIframeListner=null)}setConfig(e){this.#o.set(e)}clearConfig(){this.#o.set(null)}static \u0275fac=function(t){return new(t||o)};static \u0275prov=b({token:o,factory:o.\u0275fac,providedIn:"root"})};function ae(o){if(typeof o!="string")return null;let t=new TextEncoder().encode(o);return window.btoa(String.fromCharCode(...t))}var ne=(o,e)=>{let n=s(u).config(),p=s(m);if(n===null)return e(o);let i=s(I),c=ae(o.body),r={};o.headers.keys().forEach(h=>{r[h]=o.headers.get(h)??""});let a=o.headers.get("timeout"),f=a!==null?parseInt(a):p.defaultTimeout,d=i.sendCommand(n.accessToken,n.clientId,o.method,o.url,c,r,f);return new O(h=>{d.then(g=>{let y=new D;r!=null&&Object.keys(r).forEach(A=>{y.set(A,r[A])});let v=new J({body:g.body,status:g.code,statusText:"OK",headers:y});h.next(v),h.complete()})})};var re={providers:[H(),z(Y,G()),W($(),K([ne,ee])),R,{provide:m,useValue:X},Q]};var T=class o{#o=s(R);#n=s(q);#e=s(u);sub=null;ngOnInit(){this.#e.fetchConfig(),this.sub=this.#n.queryParams.subscribe(({accessToken:e,clientId:t})=>{e?.length&&t?.length&&this.#e.setConfig({accessToken:e,clientId:t})}),this.#o.clearAllNotCurrentVersion()}ngOnDestroy(){this.sub?.unsubscribe()}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=P({type:o,selectors:[["app-root"]],standalone:!0,features:[F],decls:1,vars:0,template:function(t,n){t&1&&j(0,"router-outlet")},dependencies:[_],encapsulation:2})};B(T,re).catch(o=>console.error(o));
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.0.20",
2
+ "version": "0.0.21",
3
3
  "name": "@duplicati/ngclient",
4
4
  "license": "MIT",
5
5
  "contributors": [
package/chunk-OZLQ4DOT.js DELETED
@@ -1 +0,0 @@
1
- import"./chunk-7CGTOI24.js";var o=[{path:"",redirectTo:"general",pathMatch:"full"},{path:"general",loadComponent:()=>import("./chunk-ROKS3JRM.js")},{path:"destination",loadComponent:()=>import("./chunk-5AXUHH24.js")},{path:"source-data",loadComponent:()=>import("./chunk-MTMC4CON.js")},{path:"schedule",loadComponent:()=>import("./chunk-2OFRFEDU.js")},{path:"options",loadComponent:()=>import("./chunk-6RVKXE44.js")}];export{o as default};