@duplicati/ngclient 0.0.10 → 0.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/spk.css +1 -1
- package/assets/spk.woff2 +0 -0
- package/{chunk-MVPI7URN.js → chunk-3E64B4PC.js} +1 -1
- package/chunk-4RT7DNKB.js +1 -0
- package/{chunk-S3XM5X3R.js → chunk-76OEVFIM.js} +1 -1
- package/{chunk-RUP4GIVS.js → chunk-CQGUEKNU.js} +1 -1
- package/chunk-DCCSCFRQ.js +1 -0
- package/{chunk-4W77W5ES.js → chunk-DJSNG6NF.js} +1 -1
- package/chunk-DNHLTHLR.js +1 -0
- package/chunk-E66JBJTH.js +1 -0
- package/{chunk-DMP4KFQP.js → chunk-G3ZRG5MJ.js} +1 -1
- package/chunk-IDQOMEFA.js +1 -0
- package/chunk-LNCAETYE.js +1 -0
- package/{chunk-ZL5O2DGZ.js → chunk-LSGSCARA.js} +1 -1
- package/chunk-M7I5RH5L.js +1 -0
- package/chunk-MFISBPKS.js +1 -0
- package/chunk-MWB5FR2K.js +1 -0
- package/{chunk-X2SVHSJM.js → chunk-OM6QOR75.js} +1 -1
- package/{chunk-AVFON3HN.js → chunk-OYQELNXA.js} +1 -1
- package/chunk-SQQXOHJO.js +1 -0
- package/chunk-UDWDXUOB.js +1 -0
- package/chunk-VOMOARSI.js +1 -0
- package/chunk-WGKAMO4L.js +1 -0
- package/{chunk-CHPE3R64.js → chunk-YJ2MWFHK.js} +1 -1
- package/chunk-YQDGW52C.js +1 -0
- package/{chunk-XJ2LABT6.js → chunk-ZE33Q6DJ.js} +1 -1
- package/chunk-ZXOEQDPM.js +1 -0
- package/index.html +2 -2
- package/main-XRAHISLJ.js +1 -0
- package/package.json +1 -1
- package/styles-GLYEHLO7.css +1 -0
- package/chunk-4KQ5PO6F.js +0 -1
- package/chunk-5FHN6XPA.js +0 -1
- package/chunk-6XCCSABS.js +0 -1
- package/chunk-BQJJKX7Q.js +0 -1
- package/chunk-CMP3TWYX.js +0 -1
- package/chunk-IYC3FMCU.js +0 -1
- package/chunk-JCO3FLHD.js +0 -1
- package/chunk-JZTRJKNF.js +0 -1
- package/chunk-KCVUEWQV.js +0 -1
- package/chunk-LPWDGHUL.js +0 -1
- package/chunk-NN636EFZ.js +0 -1
- package/chunk-VG4KZKV3.js +0 -1
- package/main-BZZ56FAH.js +0 -1
- package/styles-7MWOIMAV.css +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{p as se}from"./chunk-C52YH32J.js";import{a as I,c as re,h as ae,i as ce,q as de}from"./chunk-KCVUEWQV.js";import{a as pe}from"./chunk-SYBUINNV.js";import{$a as g,$b as V,Ab as K,Bb as ie,Cb as Q,Db as h,Fb as U,G as W,Jb as B,Lb as D,Mb as ne,Oa as d,Rb as oe,Ua as T,Va as H,Wa as Z,X as Y,Z as O,a as C,b as v,bb as $,bc as E,cb as z,db as f,fb as b,ha as k,hb as ee,ia as w,ib as te,jb as r,kb as a,lc as le,ob as q,pb as N,qb as P,rb as p,sa as R,sb as A,ta as _,tb as y,y as X}from"./chunk-RBNO3K72.js";var Ce=["treeContainer"],ve=["formRef"],Te=[[["label"]],[["label"]],[["input"]]],be=["label","label","input"],Pe=(n,e)=>e.id,xe=n=>({children:n,level:0}),ue=n=>({$implicit:n}),ye=(n,e)=>({children:n,level:e});function Se(n,e){if(n&1){let t=N();r(0,"spk-button-group")(1,"button",8),P("click",function(){k(t);let o=p();return w(o.pathDiscoveryMethod.set("browse"))}),h(2," Browser path "),a(),r(3,"button",8),P("click",function(){k(t);let o=p();return w(o.pathDiscoveryMethod.set("path"))}),h(4," Manually type path "),a()()}if(n&2){let t=p();d(),f("active",t.pathDiscoveryMethod()==="browse"),d(2),f("active",t.pathDiscoveryMethod()==="path")}}function ke(n,e){n&1&&(r(0,"spk-icon",11),h(1,"folder-open"),a())}function we(n,e){n&1&&(r(0,"spk-icon"),h(1,"file"),a())}function Fe(n,e){n&1&&(r(0,"spk-icon",11),h(1,"folder"),a())}function Me(n,e){if(n&1&&g(0,ke,2,0,"spk-icon",11)(1,we,2,0,"spk-icon")(2,Fe,2,0,"spk-icon",11),n&2){let t=p(2).$implicit;b(t.children.length?0:t.cls==="file"?1:2)}}function Ee(n,e){n&1&&(r(0,"spk-icon",11),h(1,"desktop-tower"),a())}function Oe(n,e){n&1&&q(0)}function Ne(n,e){if(n&1&&g(0,Oe,1,0,"ng-container",6),n&2){let t=p(2).$implicit,i=p().$implicit;p();let o=Q(6);$("ngTemplateOutlet",o)("ngTemplateOutletContext",D(5,ue,ne(2,ye,t.children,i.level+1)))}}function Ae(n,e){if(n&1){let t=N();r(0,"div",9,3),P("click",function(o){k(t);let s=p().$implicit,l=p(2);return w(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){k(t);let s=p().$implicit,l=p(2);return w(s.id!=="/"&&l.toggleSelectedNode(o,s))}),h(6),a()(),g(7,Ne,1,7,"ng-container")}if(n&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(n,e){if(n&1&&g(0,Ae,8,9),n&2){let t=e.$implicit,i=p(2);b(t.hidden&&i.showHiddenFiles()||!t.hidden?0:-1)}}function De(n,e){if(n&1&&(r(0,"spk-list"),ee(1,Be,1,1,null,null,Pe),a()),n&2){let t=e.$implicit;z("padding-left",t.level*.5,"rem"),d(),te(t.children)}}function Ve(n,e){n&1&&q(0)}var G=class n{#t=Y(pe);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,i=this.rootPath(),o=i?{id:i,resolvedpath:i,text:i?.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(i??"","").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 i=t.value.split("\0");this.treeNodes.update(o=>o.map(s=>v(C({},s),{isSelected:typeof s.id=="string"&&i.includes(s.id)})))}else this.treeNodes.update(i=>i.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))),i=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=[...i,...o];this.currentPath.set(s.join("\0"))}else{let e=this.treeNodes().find(i=>i.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.#n(null,this.rootPath())}toggleSelectedNode(e,t){e.stopPropagation(),this.multiSelect()?this.treeNodes.update(i=>i.map(o=>o.id?.startsWith(t.id)?v(C({},o),{isSelected:!t.isSelected}):o)):this.treeNodes.update(i=>i.map(o=>o.id===t.id?v(C({},o),{isSelected:!t.isSelected}):v(C({},o),{isSelected:!1})))}toggleNode(e,t,i=null){e.stopPropagation(),i?.children.length?this.treeNodes.update(o=>o.filter(s=>!s.id?.startsWith(i.id)||s.id===i.id)):this.#n(i,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(),i={id:t.id,time:t.time,prefixOnly:!1,folderContents:!0};return e&&(i.filter="@"+e),this.#t.getApiV1BackupByIdFiles(i)}#i(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)),i=e.split("\0").filter(l=>!l.startsWith("-")).filter(Boolean),o=i.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.#i(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=i.findIndex(S=>this.multiSelect()?L.startsWith(S):L===S)>-1,me=i.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()]})}})}#n(e=null,t="/"){this.isLoading.set(!0),this.#i(t).pipe(W(()=>this.isLoading.set(!1))).subscribe({next:i=>{let o=this.isByBackupSettings()?i.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})):i;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||n)};static \u0275cmp=O({type:n,selectors:[["app-file-tree"]],viewQuery:function(t,i){t&1&&(K(i.treeContainerRef,Ce,5),K(i.formRef,ve,5)),t&2&&ie(2)},hostVars:2,hostBindings:function(t,i){t&2&&f("disabled",i.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"],["spk-action-item","",3,"click"],[1,"icon"],[1,"spk-primary"],[1,"text",3,"click"]],template:function(t,i){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 k(o),w(i.showHiddenFiles.set(!i.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(i.multiSelect()?-1:0),d(),f("hidden",i.pathDiscoveryMethod()!=="browse"),d(6),$("ngTemplateOutlet",o)("ngTemplateOutletContext",D(12,ue,D(10,xe,i.treeStructure()))),d(),f("active",i.showHiddenFiles()),d(),U(" Show hidden ",i.showFiles()?"files":"folders"," "),d(3),f("hidden",i.pathDiscoveryMethod()!=="path")}},dependencies:[re,de,I,ae,ce,le,se],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%] [spk-action-item][_ngcontent-%COMP%]{padding:0;gap:.25rem}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [spk-action-item].usually-hidden[_ngcontent-%COMP%]{opacity:.6}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [spk-action-item][_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%] [spk-action-item][_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(n,e){n&1&&h(0,"Title")}function We(n,e){n&1&&(r(0,"spk-icon"),h(1,"caret-down"),a())}var J=class n{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||n)};static \u0275cmp=O({type:n,selectors:[["app-toggle-card"]],hostVars:2,hostBindings:function(t,i){t&2&&f("active",i.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,i){t&1&&(A(Ie),r(0,"h3",0),P("click",function(){return i.disallowToggle()||i.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(i.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 se}from"./chunk-C52YH32J.js";import{a as I,c as re,h as ae,i as ce,q as de}from"./chunk-LNCAETYE.js";import{a as pe}from"./chunk-SYBUINNV.js";import{$a as g,$b as V,Ab as K,Bb as ie,Cb as Q,Db as h,Fb as U,G as W,Jb as B,Lb as D,Mb as ne,Oa as d,Rb as oe,Ua as T,Va as H,Wa as Z,X as Y,Z as O,a as C,b as v,bb as $,bc as E,cb as z,db as f,fb as b,ha as k,hb as ee,ia as w,ib as te,jb as r,kb as a,lc as le,ob as q,pb as N,qb as P,rb as p,sa as R,sb as A,ta as _,tb as y,y as X}from"./chunk-RBNO3K72.js";var Ce=["treeContainer"],ve=["formRef"],Te=[[["label"]],[["label"]],[["input"]]],be=["label","label","input"],Pe=(n,e)=>e.id,xe=n=>({children:n,level:0}),ue=n=>({$implicit:n}),ye=(n,e)=>({children:n,level:e});function Se(n,e){if(n&1){let t=N();r(0,"spk-button-group")(1,"button",8),P("click",function(){k(t);let o=p();return w(o.pathDiscoveryMethod.set("browse"))}),h(2," Browser path "),a(),r(3,"button",8),P("click",function(){k(t);let o=p();return w(o.pathDiscoveryMethod.set("path"))}),h(4," Manually type path "),a()()}if(n&2){let t=p();d(),f("active",t.pathDiscoveryMethod()==="browse"),d(2),f("active",t.pathDiscoveryMethod()==="path")}}function ke(n,e){n&1&&(r(0,"spk-icon",11),h(1,"folder-open"),a())}function we(n,e){n&1&&(r(0,"spk-icon"),h(1,"file"),a())}function Fe(n,e){n&1&&(r(0,"spk-icon",11),h(1,"folder"),a())}function Me(n,e){if(n&1&&g(0,ke,2,0,"spk-icon",11)(1,we,2,0,"spk-icon")(2,Fe,2,0,"spk-icon",11),n&2){let t=p(2).$implicit;b(t.children.length?0:t.cls==="file"?1:2)}}function Ee(n,e){n&1&&(r(0,"spk-icon",11),h(1,"desktop-tower"),a())}function Oe(n,e){n&1&&q(0)}function Ne(n,e){if(n&1&&g(0,Oe,1,0,"ng-container",6),n&2){let t=p(2).$implicit,i=p().$implicit;p();let o=Q(6);$("ngTemplateOutlet",o)("ngTemplateOutletContext",D(5,ue,ne(2,ye,t.children,i.level+1)))}}function Ae(n,e){if(n&1){let t=N();r(0,"div",9,3),P("click",function(o){k(t);let s=p().$implicit,l=p(2);return w(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){k(t);let s=p().$implicit,l=p(2);return w(s.id!=="/"&&l.toggleSelectedNode(o,s))}),h(6),a()(),g(7,Ne,1,7,"ng-container")}if(n&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(n,e){if(n&1&&g(0,Ae,8,9),n&2){let t=e.$implicit,i=p(2);b(t.hidden&&i.showHiddenFiles()||!t.hidden?0:-1)}}function De(n,e){if(n&1&&(r(0,"spk-list"),ee(1,Be,1,1,null,null,Pe),a()),n&2){let t=e.$implicit;z("padding-left",t.level*.5,"rem"),d(),te(t.children)}}function Ve(n,e){n&1&&q(0)}var G=class n{#t=Y(pe);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,i=this.rootPath(),o=i?{id:i,resolvedpath:i,text:i?.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(i??"","").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 i=t.value.split("\0");this.treeNodes.update(o=>o.map(s=>v(C({},s),{isSelected:typeof s.id=="string"&&i.includes(s.id)})))}else this.treeNodes.update(i=>i.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))),i=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=[...i,...o];this.currentPath.set(s.join("\0"))}else{let e=this.treeNodes().find(i=>i.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.#n(null,this.rootPath())}toggleSelectedNode(e,t){e.stopPropagation(),this.multiSelect()?this.treeNodes.update(i=>i.map(o=>o.id?.startsWith(t.id)?v(C({},o),{isSelected:!t.isSelected}):o)):this.treeNodes.update(i=>i.map(o=>o.id===t.id?v(C({},o),{isSelected:!t.isSelected}):v(C({},o),{isSelected:!1})))}toggleNode(e,t,i=null){e.stopPropagation(),i?.children.length?this.treeNodes.update(o=>o.filter(s=>!s.id?.startsWith(i.id)||s.id===i.id)):this.#n(i,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(),i={id:t.id,time:t.time,prefixOnly:!1,folderContents:!0};return e&&(i.filter="@"+e),this.#t.getApiV1BackupByIdFiles(i)}#i(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)),i=e.split("\0").filter(l=>!l.startsWith("-")).filter(Boolean),o=i.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.#i(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=i.findIndex(S=>this.multiSelect()?L.startsWith(S):L===S)>-1,me=i.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()]})}})}#n(e=null,t="/"){this.isLoading.set(!0),this.#i(t).pipe(W(()=>this.isLoading.set(!1))).subscribe({next:i=>{let o=this.isByBackupSettings()?i.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})):i;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||n)};static \u0275cmp=O({type:n,selectors:[["app-file-tree"]],viewQuery:function(t,i){t&1&&(K(i.treeContainerRef,Ce,5),K(i.formRef,ve,5)),t&2&&ie(2)},hostVars:2,hostBindings:function(t,i){t&2&&f("disabled",i.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"],["spk-action-item","",3,"click"],[1,"icon"],[1,"spk-primary"],[1,"text",3,"click"]],template:function(t,i){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 k(o),w(i.showHiddenFiles.set(!i.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(i.multiSelect()?-1:0),d(),f("hidden",i.pathDiscoveryMethod()!=="browse"),d(6),$("ngTemplateOutlet",o)("ngTemplateOutletContext",D(12,ue,D(10,xe,i.treeStructure()))),d(),f("active",i.showHiddenFiles()),d(),U(" Show hidden ",i.showFiles()?"files":"folders"," "),d(3),f("hidden",i.pathDiscoveryMethod()!=="path")}},dependencies:[re,de,I,ae,ce,le,se],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%] [spk-action-item][_ngcontent-%COMP%]{padding:0;gap:.25rem}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [spk-action-item].usually-hidden[_ngcontent-%COMP%]{opacity:.6}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [spk-action-item][_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%] [spk-action-item][_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(n,e){n&1&&h(0,"Title")}function We(n,e){n&1&&(r(0,"spk-icon"),h(1,"caret-down"),a())}var J=class n{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||n)};static \u0275cmp=O({type:n,selectors:[["app-toggle-card"]],hostVars:2,hostBindings:function(t,i){t&2&&f("active",i.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,i){t&1&&(A(Ie),r(0,"h3",0),P("click",function(){return i.disallowToggle()||i.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(i.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};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as b,b as J}from"./chunk-DNHLTHLR.js";import{b as W}from"./chunk-P4AWKIXG.js";import{a as Q}from"./chunk-WU4K3UNC.js";import{a as D,b as R,c as x,d as j,e as M,f as O,i as A,l as I,o as L,q as V}from"./chunk-C52YH32J.js";import{a as $,c as G,d as U,h as q,q as z}from"./chunk-LNCAETYE.js";import{a as P,c as T,d as N}from"./chunk-AFUS3PYG.js";import"./chunk-L4EVZZOM.js";import{a as H}from"./chunk-SYBUINNV.js";import{$a as S,$b as h,Db as i,G as g,Gb as v,Jb as _,Kb as F,M as w,Oa as p,Ua as d,X as s,Z as C,bb as k,db as u,fb as E,jb as r,kb as n,lb as l,qb as f,uc as B}from"./chunk-RBNO3K72.js";var Y=()=>["/"];function Z(c,e){c&1&&(r(0,"spk-form-field")(1,"label",9),i(2,"Password"),n(),l(3,"input",10),n(),r(4,"spk-form-field")(5,"label",11),i(6,"Repeat password"),n(),l(7,"input",12),n())}var m=new L,y=class c{#t=s(H);#e=s(P);#o=s(T);#n=s(B);#i=s(Q);isExporting=d(!1);exportType=d("file");exportedCmd=d(null);exportForm=m.group({exportPasswords:m.control(!0),encryption:m.control(!1,[x.required,J()]),password:m.control("",[b(e=>e?.value.encryption,[x.required])]),repeatPassword:m.control("",[b(e=>e?.value.encryption,[x.required])])});exportFormSignal=W(this.exportForm.valueChanges);encryptionFieldSignal=h(()=>this.exportFormSignal()?.encryption??!1);activeBackup=h(()=>this.#i.backups().find(e=>e.Backup?.ID===this.#e.snapshot.params.id));submit(){this.isExporting.set(!0),this.exportType()==="file"?this.#t.postApiV1AuthIssuetokenByOperation({operation:"export"}).pipe(w(e=>{let a=o=>{let t=Object.entries(o);return t?"?"+t.map(([K,X])=>`${K}=${X}`).join("&"):""};return this.#n.get(`/api/v1/backup/${this.#e.snapshot.params.id}/export${a({exportPasswords:this.exportFormSignal()?.exportPasswords??void 0,passphrase:this.exportFormSignal()?.password??void 0,token:e.Token})}`,{responseType:"blob"})}),g(()=>this.isExporting.set(!1))).subscribe({next:e=>{let o=this.activeBackup()?.Backup?.Name??"Backup",t=this.exportFormSignal()?.encryption?"aes":"json";this.downloadFile(e,`${o}.${t}`),this.#o.navigate(["/"])},error:e=>{console.log("err",e)}}):this.#t.getApiV1BackupByIdExportCmdline({id:this.#e.snapshot.params.id,exportPasswords:this.exportFormSignal()?.exportPasswords??void 0,passphrase:this.exportFormSignal()?.password??void 0}).pipe(g(()=>this.isExporting.set(!1))).subscribe({next:e=>{console.log("res",e),this.exportedCmd.set(e.Command??null)},error:e=>{console.log("err",e)}})}downloadFile(e,a){let o=window.URL.createObjectURL(e),t=document.createElement("a");t.href=o,t.download=a,t.click(),window.URL.revokeObjectURL(o)}static \u0275fac=function(a){return new(a||c)};static \u0275cmp=C({type:c,selectors:[["app-export"]],standalone:!0,features:[_],decls:31,vars:12,consts:[[1,"actions"],["spk-button","",1,"outlined",3,"routerLink"],["spk-button","",1,"raised","primary",3,"click"],["autocomplete","off",3,"formGroup"],["type","button",3,"click"],[1,"raised","primary"],["type","checkbox","formControlName","exportPasswords"],[1,"primary","raised"],["type","checkbox","formControlName","encryption"],["for","password"],["type","password","id","password","formControlName","password"],["for","repeatPassword"],["type","password","id","repeatPassword","formControlName","repeatPassword"]],template:function(a,o){if(a&1&&(r(0,"header")(1,"h3"),i(2," Export backup configuration "),r(3,"div",0)(4,"button",1)(5,"spk-icon"),i(6,"arrow-left"),n(),i(7," Back "),n(),r(8,"button",2),f("click",function(){return o.submit()}),r(9,"spk-icon"),i(10,"export"),n(),i(11," Export "),n()()(),r(12,"p"),i(13),n()(),r(14,"form",3)(15,"spk-button-group")(16,"button",4),f("click",function(){return o.exportType.set("cmd")}),r(17,"spk-icon"),i(18,"terminal-window"),n(),i(19," As command line "),n(),r(20,"button",4),f("click",function(){return o.exportType.set("file")}),r(21,"spk-icon"),i(22,"file"),n(),i(23," To file "),n()(),r(24,"spk-toggle",5),i(25," Export passwords "),l(26,"input",6),n(),r(27,"spk-toggle",7),i(28," Encrypt file "),l(29,"input",8),n(),S(30,Z,8,0),n()),a&2){let t;p(4),k("routerLink",F(11,Y)),p(4),u("loading",o.isExporting()),p(5),v("#",(t=o.activeBackup())==null||t.Backup==null?null:t.Backup.ID,": ",(t=o.activeBackup())==null||t.Backup==null?null:t.Backup.Name,""),p(),k("formGroup",o.exportForm),p(2),u("active",o.exportType()==="cmd"),p(4),u("active",o.exportType()==="file"),p(10),E(o.encryptionFieldSignal()?30:-1)}},dependencies:[V,O,R,D,j,M,A,I,N,G,z,$,q,U],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;gap:2rem;padding:3rem}h3[_ngcontent-%COMP%]{font:var(--title-30);display:flex;align-items:center;justify-content:space-between}.actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem;max-width:31.25rem}"],changeDetection:0})};export{y as default};
|