@duplicati/ngclient 0.0.89 → 0.0.90
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/{chunk-5OX72VKG.js → chunk-25A34CYL.js} +1 -1
- package/{chunk-CKQFBLHP.js → chunk-26LLZBVS.js} +1 -1
- package/{chunk-BRWHKZV2.js → chunk-2MAHQYCM.js} +1 -1
- package/{chunk-T7LDHEC3.js → chunk-2MXHK6QG.js} +1 -1
- package/{chunk-3BNXVXL5.js → chunk-2NG6SV5P.js} +1 -1
- package/{chunk-ZSKZUTTA.js → chunk-2UGVOOSY.js} +1 -1
- package/{chunk-WJQN3BOF.js → chunk-3CWO2EV5.js} +1 -1
- package/{chunk-EAGORY3U.js → chunk-3G7WSLL4.js} +1 -1
- package/{chunk-C2JCNHTZ.js → chunk-3NUWESLC.js} +1 -1
- package/chunk-3UVMY3MP.js +1 -0
- package/{chunk-MMNUKDWS.js → chunk-42RH3SEU.js} +1 -1
- package/chunk-4PFQQN3O.js +1 -0
- package/chunk-5LD32NST.js +1 -0
- package/{chunk-ZSSQBIRK.js → chunk-5ONOZUNN.js} +1 -1
- package/{chunk-6CW3SAXM.js → chunk-5X3CS5SX.js} +1 -1
- package/chunk-7S572AMA.js +1 -0
- package/{chunk-S3L5VJJF.js → chunk-7X6U6GDS.js} +1 -1
- package/{chunk-DPPV7DVK.js → chunk-ADRBAA6V.js} +1 -1
- package/{chunk-W3VTD2H4.js → chunk-B27FY76R.js} +1 -1
- package/chunk-B62DJG5J.js +1 -0
- package/{chunk-W4YAOQRI.js → chunk-BE77QZG7.js} +1 -1
- package/{chunk-FCQHE46G.js → chunk-BWRVEXWB.js} +1 -1
- package/{chunk-4RXMJUN5.js → chunk-CKZXQWC5.js} +1 -1
- package/{chunk-DKICGIGJ.js → chunk-CMCJ4PJ3.js} +1 -1
- package/{chunk-453FQ4EQ.js → chunk-D3OXH7DI.js} +1 -1
- package/{chunk-76MZP6D5.js → chunk-DHCSMO7K.js} +1 -1
- package/{chunk-XTSJURO6.js → chunk-DM3TLLVN.js} +1 -1
- package/{chunk-MTCSELIF.js → chunk-DQNODDD2.js} +1 -1
- package/{chunk-KDCTRSPO.js → chunk-DXNCMAOT.js} +1 -1
- package/chunk-EEWVYRVF.js +1 -0
- package/chunk-EMAOG2GJ.js +1 -0
- package/{chunk-5JYSV4UD.js → chunk-EOR3XP2C.js} +1 -1
- package/{chunk-UIOTKB6J.js → chunk-F7TB6D2I.js} +1 -1
- package/{chunk-DJZUZAH5.js → chunk-GCH4UMQW.js} +1 -1
- package/chunk-GWUV24TX.js +1 -0
- package/{chunk-UPW4CQ72.js → chunk-H5CQT7KP.js} +1 -1
- package/chunk-I56L7YBT.js +1 -0
- package/{chunk-LRB2TMMB.js → chunk-IKGI7UMG.js} +1 -1
- package/{chunk-7AHZCQM7.js → chunk-INQJOENN.js} +1 -1
- package/{chunk-2UJP6WUU.js → chunk-IUKXVR2S.js} +1 -1
- package/{chunk-AUVMOLMG.js → chunk-IWMMFNSQ.js} +1 -1
- package/chunk-J6HR5X2N.js +1 -0
- package/{chunk-2FAACUDI.js → chunk-JELDZ2O3.js} +1 -1
- package/{chunk-L2LZKY4R.js → chunk-JJPQQ2RC.js} +1 -1
- package/chunk-KB4BCU6P.js +1 -0
- package/{chunk-2D7EACVA.js → chunk-KB62MNQB.js} +1 -1
- package/chunk-N3DQSLVZ.js +1 -0
- package/chunk-NKKQQ2IJ.js +1 -0
- package/{chunk-EMLPXGRD.js → chunk-O74DHUWC.js} +1 -1
- package/{chunk-WYTHNCNI.js → chunk-OXZWBTVI.js} +1 -1
- package/{chunk-G76GVTZW.js → chunk-Q2S4M24F.js} +1 -1
- package/chunk-QWCXBUTU.js +1 -0
- package/{chunk-JCIUBQIN.js → chunk-RWCNOLBZ.js} +1 -1
- package/chunk-S3FJKROY.js +1 -0
- package/{chunk-JFC5Z7YL.js → chunk-TO3U5ILL.js} +1 -1
- package/chunk-U473WSWP.js +1 -0
- package/{chunk-K3LOA2DX.js → chunk-VC6R3EOF.js} +1 -1
- package/{chunk-VP3M4CWS.js → chunk-VXCR3LAU.js} +1 -1
- package/{chunk-H5V5U4VH.js → chunk-XP5MGA7L.js} +1 -1
- package/{chunk-ZEMCELQ7.js → chunk-XWX7PRSO.js} +1 -1
- package/{chunk-DPNFOEAN.js → chunk-Y4OHFLFK.js} +1 -1
- package/{chunk-SJBPW65N.js → chunk-YSXFZE63.js} +1 -1
- package/{chunk-ZHFVGIIO.js → chunk-Z4NXKIA6.js} +1 -1
- package/index.html +2 -2
- package/main-HYNSEITZ.js +1 -0
- package/package.json +1 -1
- package/{styles-OABXKND4.css → styles-X4DX3Q4A.css} +1 -1
- package/chunk-6BPJFTZW.js +0 -1
- package/chunk-B6FHJOT5.js +0 -1
- package/chunk-C4CQLUE6.js +0 -1
- package/chunk-CLJTLGUH.js +0 -1
- package/chunk-DJWDNTTP.js +0 -1
- package/chunk-LAGOXMVK.js +0 -1
- package/chunk-LBJYPZA5.js +0 -1
- package/chunk-LVA7V7CT.js +0 -1
- package/chunk-N7DO2BHU.js +0 -1
- package/chunk-ODIN2IGP.js +0 -1
- package/chunk-PEA355CX.js +0 -1
- package/chunk-RS7BKRUH.js +0 -1
- package/chunk-U7UIU734.js +0 -1
- package/chunk-ZI4ZJIB3.js +0 -1
- package/chunk-ZIKYV2TR.js +0 -1
- package/chunk-ZZPLRWQP.js +0 -1
- package/main-NR6TAXFB.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{o as ye}from"./chunk-XTSJURO6.js";import{a as xt}from"./chunk-UPW4CQ72.js";import{a as bt}from"./chunk-MMNUKDWS.js";import"./chunk-DNHLTHLR.js";import{a as Ne}from"./chunk-ODIN2IGP.js";import{a as Fe}from"./chunk-G76GVTZW.js";import{a as ae}from"./chunk-KDCTRSPO.js";import{a as wt}from"./chunk-453FQ4EQ.js";import"./chunk-BRWHKZV2.js";import{a as Mt}from"./chunk-CKQFBLHP.js";import{a as $t}from"./chunk-DKICGIGJ.js";import"./chunk-WJQN3BOF.js";import"./chunk-C2JCNHTZ.js";import"./chunk-AUVMOLMG.js";import"./chunk-W3VTD2H4.js";import{a as ht,b as V,d as X,e as re,g as le,h as _e,i as Pt,k as It,m as pe,n as ce,p as me,q as de,r as ue,s as Se}from"./chunk-5OX72VKG.js";import"./chunk-ZZPLRWQP.js";import{b as A}from"./chunk-UIOTKB6J.js";import"./chunk-N7DO2BHU.js";import"./chunk-4RXMJUN5.js";import{a as ge,b as Rt,g as Te,k as yt,l as z,n as Ft,o as vt,p as At,q as Gt,r as fe,w as Ce,x as Ee}from"./chunk-ZI4ZJIB3.js";import"./chunk-W4YAOQRI.js";import"./chunk-WYTHNCNI.js";import"./chunk-2D7EACVA.js";import{Ab as o,Bb as f,C as v,Cb as ee,Db as te,Eb as gt,Fb as O,Jc as D,Lb as w,Lc as L,Mb as $,Na as mt,Nb as _,Ob as W,Pa as r,Pb as K,Q as Y,Qb as ne,Rb as S,Sb as l,Vb as y,W as N,Wa as dt,Xb as M,Yb as Re,b as ct,ba as C,bc as Tt,ca as E,cb as G,cc as ft,dc as ie,ec as c,fc as oe,gc as h,hb as u,jc as x,k as q,kc as b,lc as k,nb as ut,ob as St,pc as Ct,qb as d,qc as Et,rc as Nt,sa as g,sb as P,sc as Ot,vb as T,wb as he,x as H,xb as Pe,xc as se,yb as Ie,zb as s}from"./chunk-ZSSQBIRK.js";import"./chunk-C6Q5SG76.js";var U=class i{#e=N(A);#i=Ne(this.#e.getApiV1Serversettings());#t=g(void 0);serverSettings=D(()=>this.#t()||this.#i());refreshServerSettings(){this.#e.getApiV1Serversettings().subscribe({next:n=>{this.#t.set(n)}})}withRefresh(){return ct(v(()=>this.refreshServerSettings()))}static \u0275fac=function(e){return new(e||i)};static \u0275prov=Y({token:i,factory:i.\u0275fac,providedIn:"root"})};var Xt=["formRef"],zt=()=>[import("./chunk-K3LOA2DX.js").then(i=>i.NgTemplateOutlet)],Ut=(i,n)=>({index:i,formView:n,formGroupName:"advancedOptions",destinationType:null,oauthField:null}),Bt=i=>({$implicit:i});function qt(i,n){if(i&1){let e=O();w(0,5,1),s(1,"button",16,2),S("click",function(){let a=C(e).$implicit,m=l();return E(m.addNewOption(a))}),o(),$()}if(i&2){let e=n.$implicit;r(),W(e.name),K(0)}}function Ht(i,n){i&1&>(0)}function Wt(i,n){if(i&1&&u(0,Ht,1,0,"ng-container",17),i&2){let e=n.$implicit,t=n.$index;l(2);let a=ie(15);d("ngTemplateOutlet",a)("ngTemplateOutletContext",Nt(5,Bt,Ot(2,Ut,t,e)))}}function Kt(i,n){if(i&1&&Pe(0,Wt,1,7,"ng-container",null,he),i&2){let e=l();Ie(e.selectedOptions())}}function jt(i,n){if(i&1&&(s(0,"spk-tooltip",26)(1,"spk-icon"),c(2,"question"),o()()),i&2){let e=l(2).$implicit;d("message",e.formView.longDescription)}}function Qt(i,n){if(i&1&&(s(0,"app-file-tree",20)(1,"label",25),c(2),u(3,jt,3,1,"spk-tooltip",26),o(),f(4,"input",27),o()),i&2){let e,t=l().$implicit,a=l();d("startingPath",a.getFormFieldValue(0,t.formGroupName,t.formView.name))("accepts",t.formView.accepts)("showFiles",!0)("showHiddenNodes",!0)("selectFiles",!0),r(),M("for","destination-",t.formGroupName,"-",t.index,""),r(),h(" ",(e=t.formView.shortDescription)!==null&&e!==void 0?e:t.formView.name," "),r(),T(t.formView.longDescription?3:-1),r(),M("id","destination-",t.formGroupName,"-",t.index,""),y("formControlName",t.formView.name)}}function Zt(i,n){if(i&1&&(s(0,"spk-tooltip",26)(1,"spk-icon"),c(2,"question"),o()()),i&2){let e=l(2).$implicit;d("message",e.formView.longDescription)}}function Jt(i,n){if(i&1&&(s(0,"app-file-tree",21)(1,"label",25),c(2),u(3,Zt,3,1,"spk-tooltip",26),o(),f(4,"input",27),o()),i&2){let e,t=l().$implicit,a=l();d("startingPath",a.getFormFieldValue(0,t.formGroupName,t.formView.name)),r(),M("for","destination-",t.formGroupName,"-",t.index,""),r(),h(" ",(e=t.formView.shortDescription)!==null&&e!==void 0?e:t.formView.name," "),r(),T(t.formView.longDescription?3:-1),r(),M("id","destination-",t.formGroupName,"-",t.index,""),y("formControlName",t.formView.name)}}function Yt(i,n){if(i&1&&(s(0,"spk-tooltip",26)(1,"spk-icon"),c(2,"question"),o()()),i&2){let e=l(2).$implicit;d("message",e.formView.longDescription)}}function en(i,n){i&1&&(s(0,"spk-icon",28),c(1,"link"),o())}function tn(i,n){i&1&&(s(0,"spk-icon",28),c(1,"textbox"),o())}function nn(i,n){if(i&1&&(s(0,"spk-form-field")(1,"label",25),c(2),u(3,Yt,3,1,"spk-tooltip",26),o(),f(4,"input",27),u(5,en,2,0,"spk-icon",28)(6,tn,2,0,"spk-icon",28),o()),i&2){let e,t=l().$implicit;r(),M("for","destination-",t.formGroupName,"-",t.index,""),r(),h(" ",(e=t.formView.shortDescription)!==null&&e!==void 0?e:t.formView.name," "),r(),T(t.formView.longDescription?3:-1),r(),M("id","destination-",t.formGroupName,"-",t.index,""),y("formControlName",t.formView.name),r(),T(t.formView.type==="Path"?5:6)}}function on(i,n){if(i&1){let e=O();s(0,"span",32),S("click",function(){C(e);let a=l(2).$implicit,m=l();return E(m.oauthStartTokenCreation(a.formViewType))}),c(1,"AuthID"),o()}}function sn(i,n){i&1&&(s(0,"spk-icon",28),c(1,"password"),o())}function an(i,n){if(i&1){let e=O();s(0,"spk-icon",33),S("click",function(){C(e);let a=l(2).$implicit;return E(a.formView.showPassword=!a.formView.showPassword)}),c(1," eye "),o()}}function rn(i,n){if(i&1){let e=O();s(0,"spk-icon",33),S("click",function(){C(e);let a=l(2).$implicit;return E(a.formView.showPassword=!a.formView.showPassword)}),c(1," eye-slash "),o()}}function ln(i,n){if(i&1&&(s(0,"spk-form-field")(1,"label",25),c(2),o(),f(3,"input",29),u(4,on,2,0,"span",30)(5,sn,2,0,"spk-icon",28)(6,an,2,0,"spk-icon",31)(7,rn,2,0,"spk-icon",31),o()),i&2){let e,t=l().$implicit;r(),M("for","destination-",t.formGroupName,"-",t.index,""),r(),h(" ",(e=t.formView.shortDescription)!==null&&e!==void 0?e:t.formView.name," "),r(),M("id","destination-",t.formGroupName,"-",t.index,""),y("formControlName",t.formView.name),d("type",t.formView.showPassword?"text":"password"),r(),T(t.oauthField===t.formView.name?4:5),r(2),T(t.formView.showPassword?6:7)}}function _n(i,n){if(i&1&&(s(0,"spk-tooltip",26)(1,"spk-icon"),c(2,"question"),o()()),i&2){let e=l(2).$implicit;d("message",e.formView.longDescription)}}function pn(i,n){if(i&1&&c(0),i&2){let e=n.$implicit;h(" ",e," ")}}function cn(i,n){if(i&1&&(s(0,"spk-select",34)(1,"label",25),c(2),u(3,_n,3,1,"spk-tooltip",26),o(),f(4,"input",27),o(),u(5,pn,1,1,"ng-template",null,3,se)),i&2){let e,t=ie(6),a=l().$implicit;d("options",a.formView.options)("isClearable",!1)("optionTemplate",t),r(),Re("for","destination-",a.formGroupName,"-",a.index,"-",a.asHttpOptions?"http":"other",""),r(),h(" ",(e=a.formView.shortDescription)!==null&&e!==void 0?e:a.formView.name," "),r(),T(a.formView.longDescription?3:-1),r(),Re("id","destination-",a.formGroupName,"-",a.index,"-",a.asHttpOptions?"http":"other",""),y("formControlName",a.formView.name)}}function mn(i,n){if(i&1&&(s(0,"spk-tooltip",26)(1,"spk-icon"),c(2,"question"),o()()),i&2){let e=l(2).$implicit;d("message",e.formView.longDescription)}}function dn(i,n){if(i&1&&(s(0,"div",22)(1,"label",25),c(2),u(3,mn,3,1,"spk-tooltip",26),o(),s(4,"div",35)(5,"spk-form-field"),f(6,"input",36),s(7,"spk-icon",28),c(8,"resize"),o()(),s(9,"spk-select",37),f(10,"input",38),o()()()),i&2){let e,t=l().$implicit,a=l();d("formGroupName",t.formView.name),r(),M("for","destination-",t.formGroupName,"-",t.index,""),r(),h(" ",(e=t.formView.shortDescription)!==null&&e!==void 0?e:t.formView.name," "),r(),T(t.formView.longDescription?3:-1),r(3),M("id","destination-",t.formGroupName,"-",t.index,""),r(3),d("options",a.sizeOptions())("inlineSearch",!0)}}function un(i,n){if(i&1&&(s(0,"spk-tooltip",26)(1,"spk-icon"),c(2,"question"),o()()),i&2){let e=l(2).$implicit;d("message",e.formView.longDescription)}}function Sn(i,n){if(i&1&&(s(0,"spk-form-field")(1,"label",25),c(2),u(3,un,3,1,"spk-tooltip",26),o(),f(4,"input",39),s(5,"spk-icon",28),c(6,"numpad"),o()()),i&2){let e,t=l().$implicit;r(),M("for","destination-",t.formGroupName,"-",t.index,""),r(),h(" ",(e=t.formView.shortDescription)!==null&&e!==void 0?e:t.formView.name," "),r(),T(t.formView.longDescription?3:-1),r(),M("id","destination-",t.formGroupName,"-",t.index,""),y("formControlName",t.formView.name)}}function gn(i,n){if(i&1&&(s(0,"spk-tooltip",26)(1,"spk-icon"),c(2,"question"),o()()),i&2){let e=l(2).$implicit;d("message",e.formView.longDescription)}}function Tn(i,n){if(i&1&&(s(0,"spk-toggle",23)(1,"label",25),c(2),u(3,gn,3,1,"spk-tooltip",26),o(),f(4,"input",40),o()),i&2){let e,t=l().$implicit;r(),M("for","destination-",t.formGroupName,"-",t.index,""),r(),h(" ",(e=t.formView.shortDescription)!==null&&e!==void 0?e:t.formView.name," "),r(),T(t.formView.longDescription?3:-1),r(),M("id","destination-",t.formGroupName,"-",t.index,""),y("formControlName",t.formView.name)}}function fn(i,n){if(i&1&&(s(0,"spk-tooltip",26)(1,"spk-icon"),c(2,"question"),o()()),i&2){let e=l(2).$implicit;d("message",e.formView.longDescription)}}function Cn(i,n){if(i&1&&c(0),i&2){let e=n.$implicit;h(" ",e," ")}}function En(i,n){if(i&1&&(s(0,"spk-select",41)(1,"label",25),c(2),u(3,fn,3,1,"spk-tooltip",26),o(),f(4,"input",42),o(),u(5,Cn,1,1,"ng-template",null,4,se)),i&2){let e,t=ie(6),a=l().$implicit;d("options",a.formView.options)("selectMultiple",!0)("optionTemplate",t),r(),M("for","destination-",a.formGroupName,"-",a.index,""),r(),h(" ",(e=a.formView.shortDescription)!==null&&e!==void 0?e:a.formView.name," "),r(),T(a.formView.longDescription?3:-1),r(),y("formControlName",a.formView.name)}}function Nn(i,n){if(i&1&&(s(0,"spk-tooltip",26)(1,"spk-icon"),c(2,"question"),o()()),i&2){let e=l(2).$implicit;d("message",e.formView.longDescription)}}function On(i,n){if(i&1&&(s(0,"spk-form-field")(1,"label",25),c(2),u(3,Nn,3,1,"spk-tooltip",26),o(),f(4,"input",27),o()),i&2){let e,t=l().$implicit;r(),M("for","destination-",t.formGroupName,"-",t.index,""),r(),h(" ",(e=t.formView.shortDescription)!==null&&e!==void 0?e:t.formView.name," "),r(),T(t.formView.longDescription?3:-1),r(),M("id","destination-",t.formGroupName,"-",t.index,""),y("formControlName",t.formView.name)}}function Mn(i,n){if(i&1){let e=O();s(0,"div",18),ee(1,19),u(2,Qt,5,14,"app-file-tree",20)(3,Jt,5,10,"app-file-tree",21)(4,nn,7,10,"spk-form-field")(5,ln,8,11,"spk-form-field")(6,cn,7,14)(7,dn,11,11,"div",22)(8,Sn,7,9,"spk-form-field")(9,Tn,5,9,"spk-toggle",23)(10,En,7,9)(11,On,5,9,"spk-form-field"),te(),s(12,"button",24),S("click",function(){let a=C(e).$implicit,m=l();return E(m.removeFormView(a.formView))}),s(13,"spk-icon"),c(14,"x-circle"),o()()()}if(i&2){let e=n.$implicit;r(),d("formGroupName",e.formGroupName),r(),T(e.formView.type==="FileTree"?2:e.formView.type==="FolderTree"?3:e.formView.type==="String"||e.formView.type==="Path"?4:e.formView.type==="Password"?5:e.formView.type==="Enumeration"?6:e.formView.type==="Size"?7:e.formView.type==="Integer"?8:e.formView.type==="Boolean"?9:e.formView.type==="Flags"?10:e.formView.type==="Timespan"?11:-1)}}var pi=new de,hn=["Bytes","KB","MB","GB","TB","PB"],ci=[{value:"",name:$localize`Keep all backups`},{value:"time",name:$localize`Delete backups that are older than`},{value:"versions",name:$localize`Keep a specific number of backups`},{value:"smart",name:$localize`Smart backup retention`},{value:"custom",name:$localize`Custom backup retention`}],mi=1024*1024*1024*2,di=1024*1024*5;var j=class i{#e=N(ye);#i=N(U);#t=N(A);formRef=dt.required("formRef");optionsForm=this.#e.optionsForm;selectedOptions=this.#e.selectedOptions;nonSelectedOptions=this.#e.nonSelectedOptions;isSubmitting=g(!1);isLoadingOptions=g(!0);sizeOptions=g(hn);serverSettingsEffect=L(()=>{let n=this.#i.serverSettings();if(n===void 0)return;this.isLoadingOptions.set(!0);let e=this.#e.nonSelectedOptions(),t=Object.entries(n);t.forEach(([a,m],F)=>{if(a.startsWith("--")){let I=a.replace("--",""),R=e.find(Z=>Z.name===I);R!==void 0?this.addNewOption(R,m):this.addFreeTextOption(I,m)}F===t.length-1&&this.isLoadingOptions.set(!1)})});oauthStartTokenCreation(n){}getFormFieldValue(n,e,t){return this.optionsForm.controls.advancedOptions.controls[t].value}removeFormView(n){let e="--"+n.name;this.#t.patchApiV1Serversettings({requestBody:{[e]:null}}).subscribe({next:t=>{window.location.reload()}})}addNewOption(n,e){this.#e.addOptionToFormGroup(n,e)}addFreeTextOption(n,e){this.#e.addFreeTextOption(n,e,{})}submit(){this.isSubmitting.set(!0);let n=this.optionsForm.value.advancedOptions;if(!n)return;let e=this.#n(n);this.#t.patchApiV1Serversettings({requestBody:e}).pipe(v(()=>this.isSubmitting.set(!1))).subscribe()}#n(n){let e={};for(let t in n)e[`--${t}`]=n[t];return e}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=G({type:i,selectors:[["app-advanced-options-settings"]],viewQuery:function(e,t){e&1&&Tt(t.formRef,Xt,5),e&2&&ft()},features:[Ct([ye])],decls:20,vars:6,consts:()=>{let n;n=$localize` Advanced options ${"\uFFFD#5\uFFFD"}:START_TAG_SPK_MENU:${"\uFFFD#6\uFFFD"}:START_TAG_BUTTON: Add advanced option ${"\uFFFD#7\uFFFD"}:START_TAG_SPK_ICON:plus${"\uFFFD/#7\uFFFD"}:CLOSE_TAG_SPK_ICON:${"[\uFFFD/#6\uFFFD|\uFFFD/#1:1\uFFFD]"}:CLOSE_TAG_BUTTON:${"\uFFFD#8\uFFFD"}:START_TAG_NG_CONTAINER:${"\uFFFD*10:1\uFFFD"}:START_BLOCK_FOR:${"\uFFFD#1:1\uFFFD"}:START_TAG_BUTTON_1:${"\uFFFD0:1\uFFFD"}:INTERPOLATION:${"[\uFFFD/#6\uFFFD|\uFFFD/#1:1\uFFFD]"}:CLOSE_TAG_BUTTON:${"\uFFFD/*10:1\uFFFD"}:CLOSE_BLOCK_FOR:${"\uFFFD/#8\uFFFD"}:CLOSE_TAG_NG_CONTAINER:${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_MENU:`,n=ne(n);let e;e=$localize`${"\uFFFD#19\uFFFD"}:START_TAG_SPK_ICON:floppy-disk${"\uFFFD/#19\uFFFD"}:CLOSE_TAG_SPK_ICON: Save `;let t;return t=$localize`Select an option...`,[["formRef",""],["fieldTemplate",""],["option",""],["enumOptionTemplate",""],["optionTemplate",""],n,e,[3,"submit","formGroup"],[3,"disallowToggle"],["title",""],[3,"searchable"],["spk-button","","type","button",1,"outlined","small"],["menu",""],["type","button"],[1,"form-actions"],["spk-button","","type","submit",1,"raised","primary"],["type","button",3,"click"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"field-row"],[3,"formGroupName"],[3,"startingPath","accepts","showFiles","showHiddenNodes","selectFiles"],[3,"startingPath"],[1,"form-column",3,"formGroupName"],[1,"primary","raised"],["spk-button","","type","button",1,"outlined",3,"click"],[3,"for"],[1,"primary",3,"message"],["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"],[3,"options","isClearable","optionTemplate"],[1,"form-row"],["type","number","formControlName","size",3,"id"],["placeholder",t,3,"options","inlineSearch"],["type","text","formControlName","unit"],["type","number",3,"id","formControlName"],["type","checkbox",3,"id","formControlName"],[1,"primary","raised",3,"options","selectMultiple","optionTemplate"],["type","text","id","text",3,"formControlName"]]},template:function(e,t){if(e&1){let a=O();s(0,"form",7,0),S("submit",function(){return C(a),E(t.submit())}),s(2,"app-toggle-card",8),ee(3,9),w(4,5),s(5,"spk-menu",10)(6,"button",11),f(7,"spk-icon"),o(),ee(8,12),Pe(9,qt,3,1,"button",13,he),te(),o(),$(),te(),u(11,Kt,2,0),ut(12,11,zt),o(),u(14,Mn,15,2,"ng-template",null,1,se),s(16,"div",14)(17,"button",15),w(18,6),f(19,"spk-icon"),$(),o()()()}e&2&&(d("formGroup",t.optionsForm),r(2),d("disallowToggle",!0),r(3),d("searchable",!0),r(4),Ie(t.nonSelectedOptions()),r(3),St(!t.isLoadingOptions()),r(5),P("loader",t.isSubmitting()))},dependencies:[Se,_e,V,Pt,ht,X,re,pe,me,ce,Ft,Te,ge,z,Ce,Ee,fe,xt,bt],styles:["[_nghost-%COMP%]{display:block;width:100%;max-width:40.625rem;justify-self:flex-end}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.form-column[_ngcontent-%COMP%]{display:flex;flex-direction:column}.form-column[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem}.form-column[_ngcontent-%COMP%] spk-icon[_ngcontent-%COMP%]{font-size:1rem}.field-row[_ngcontent-%COMP%]{display:grid;align-items:flex-end;grid-template-columns:1fr 2.5rem;gap:.5rem}.form-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:3fr 1fr;gap:.5rem;align-items:flex-end}.form-wrap[_ngcontent-%COMP%]{display:grid;grid-template-columns:2fr 2.5rem;gap:.5rem;align-items:flex-end}.remote-volume-wrap[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem}.remote-volume-wrap[_ngcontent-%COMP%] p.warning[_ngcontent-%COMP%]{color:#7d7d00}.row-inputs[_ngcontent-%COMP%]{display:flex;align-items:flex-end;gap:.5rem}.row-inputs[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{flex:1 0}.advanced-option[_ngcontent-%COMP%]{display:grid;gap:.5rem;grid-template-columns:1fr 1fr 40px;align-items:flex-end}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"],changeDetection:0})};var B=class i{#e=N(A);#i=N(ae);repeatRegisterTimer=null;state=g("unknown");claimUrl=g(null);registerUrl=g("");status=D(()=>{let n=this.state();return n==="enabled"?"Remote control is enabled but not connected":n==="connected"?"Remote control is connected":n==="registering"?"Registering machine...":n==="registeringfaulted"?"Registration failed":n==="registered"?"Registered, waiting for accept":n==="disabled"?"Remote control is configured but not enabled":n==="unknown"?"...loading...":"Remote control is not set up"});sysInfoEffect=L(()=>{let n=this.#i.systemInfo();n&&this.registerUrl.set(n.RemoteControlRegistrationUrl??"")});#t(n){n.RegistrationUrl&&this.claimUrl.set(n.RegistrationUrl),n.IsConnected?this.state.set("connected"):n.IsEnabled?this.state.set("enabled"):n.CanEnable?this.state.set("disabled"):n.IsRegisteringFaulted?this.state.set("registeringfaulted"):n.IsRegistering?n.RegistrationUrl!=null&&n.RegistrationUrl.trim().length>0?this.state.set("registered"):this.state.set("registering"):this.state.set("inactive");let e=this.state();this.repeatRegisterTimer!==null&&(clearTimeout(this.repeatRegisterTimer),this.repeatRegisterTimer=null),e==="registering"&&(this.repeatRegisterTimer=setTimeout(()=>{this.#e.postApiV1RemotecontrolRegister({requestBody:{RegistrationUrl:""}}).subscribe({next:t=>this.#t(t),error:t=>this.#n(t)})},5e3)),(e==="enabled"||e==="registered")&&(this.repeatRegisterTimer=setTimeout(()=>{this.#e.getApiV1RemotecontrolStatus().subscribe({next:t=>this.#t(t),error:t=>this.#n(t)})},5e3)),n.IsRegistering&&n.CanEnable&&this.#e.deleteApiV1RemotecontrolRegister().subscribe({next:t=>this.#t(t)})}#n(n){this.#e.getApiV1RemotecontrolStatus().subscribe({next:e=>this.#t(e)})}refreshRemoteControlStatus(){this.#e.getApiV1RemotecontrolStatus().subscribe({next:n=>this.#t(n),error:n=>this.#n(n)})}beginRemoteRegistration(){this.state.set("registering"),this.#e.postApiV1RemotecontrolRegister({requestBody:{RegistrationUrl:this.registerUrl()}}).subscribe({next:n=>this.#t(n),error:n=>this.#n(n)})}cancelRemoteRegistration(){this.#e.deleteApiV1RemotecontrolRegister().subscribe({next:n=>this.#t(n),error:n=>this.#n(n)})}enableRemoteControl(){this.#e.postApiV1RemotecontrolEnable().subscribe({next:n=>this.#t(n),error:n=>this.#n(n)})}disableRemoteControl(){this.#e.postApiV1RemotecontrolDisable().subscribe({next:n=>this.#t(n),error:n=>this.#n(n)})}deleteRemoteControl(){let n=this;confirm("Are you sure you want to delete the remote control registration?")&&n.#e.deleteApiV1RemotecontrolRegistration().subscribe({next:e=>n.#t(e),error:e=>n.#n(e)})}static \u0275fac=function(e){return new(e||i)};static \u0275prov=Y({token:i,factory:i.\u0275fac,providedIn:"root"})};function Pn(i,n){if(i&1){let e=O();s(0,"spk-form-field",10)(1,"input",11),k("ngModelChange",function(a){C(e);let m=l(2);return b(m.registerUrl,a)||(m.registerUrl=a),E(a)}),o()(),s(2,"button",12),S("click",function(){C(e);let a=l(2);return E(a.register())}),_(3,0),o()}if(i&2){let e=l(2);r(),x("ngModel",e.registerUrl)}}function In(i,n){if(i&1&&(s(0,"div",8)(1,"label"),_(2,1),o(),s(3,"a",13),c(4),o()()),i&2){let e=l(2);r(3),y("href",e.claimUrl(),mt),r(),oe(e.claimUrl())}}function Rn(i,n){i&1&&(s(0,"div",8)(1,"label"),_(2,2),o()())}function yn(i,n){if(i&1){let e=O();s(0,"button",12),S("click",function(){C(e);let a=l(2);return E(a.cancel())}),_(1,3),o()}}function Fn(i,n){if(i&1){let e=O();s(0,"button",12),S("click",function(){C(e);let a=l(2);return E(a.disable())}),_(1,4),o()}}function vn(i,n){if(i&1){let e=O();s(0,"button",12),S("click",function(){C(e);let a=l(2);return E(a.enable())}),_(1,5),o(),s(2,"button",14),S("click",function(){C(e);let a=l(2);return E(a.delete())}),_(3,6),o()}}function An(i,n){if(i&1&&(s(0,"div",7),u(1,Pn,4,1)(2,In,5,2,"div",8)(3,Rn,3,0,"div",8)(4,yn,2,0,"button",9)(5,Fn,2,0,"button",9)(6,vn,4,0),o()),i&2){let e=l();r(),T(e.state()==="inactive"?1:-1),r(),T(e.state()==="registered"?2:-1),r(),T(e.state()==="registering"?3:-1),r(),T(e.state()==="registering"||e.state()==="registeringfaulted"||e.state()==="registered"?4:-1),r(),T(e.state()==="connected"||e.state()==="enabled"?5:-1),r(),T(e.state()==="disabled"?6:-1)}}var Me=class i{#e=N(B);state=this.#e.state;claimUrl=this.#e.claimUrl;registerUrl=this.#e.registerUrl;ngOnInit(){this.#e.refreshRemoteControlStatus()}cancel(){this.#e.cancelRemoteRegistration()}register(){this.#e.beginRemoteRegistration()}disable(){this.#e.disableRemoteControl()}enable(){this.#e.enableRemoteControl()}delete(){this.#e.deleteRemoteControl()}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=G({type:i,selectors:[["app-remote-control"]],decls:1,vars:1,consts:()=>{let n;n=$localize`Register for remote control`;let e;e=$localize`Machine is now registered, open this link to add it to your account:`;let t;t=$localize`Registering, please wait...`;let a;a=$localize`Cancel registration`;let m;m=$localize`Disable remote control`;let F;F=$localize`Enable remote control`;let I;return I=$localize`Delete remote control setup`,[n,e,t,a,m,F,I,[1,"field-row"],[1,"field-col"],["type","button","spk-button","",1,"raised"],["label","Registration URL","for","remoteControlRegisterUrl"],["type","text","spk-input","","id","remoteControlRegisterUrl","name","remoteControlRegisterUrl",3,"ngModelChange","ngModel"],["type","button","spk-button","",1,"raised",3,"click"],["target","_blank",3,"href"],["type","button","spk-button","",1,"raised","error",3,"click"]]},template:function(e,t){e&1&&u(0,An,7,6,"div",7),e&2&&T(t.state()!=="unknown"?0:-1)},dependencies:[ue,V,X,le,z],styles:["[_nghost-%COMP%]{display:block}[_nghost-%COMP%] button[_ngcontent-%COMP%]{white-space:nowrap}.field-row[_ngcontent-%COMP%]{display:flex;gap:.5rem;width:100%}.field-row[_ngcontent-%COMP%] spk-form-field[_ngcontent-%COMP%], .field-row[_ngcontent-%COMP%] spk-select[_ngcontent-%COMP%]{flex:1 0}"],changeDetection:0})};var Gn=()=>({standalone:!0});function wn(i,n){i&1&&(s(0,"spk-icon",73),c(1,"check"),o())}function $n(i,n){i&1&&(s(0,"spk-icon",74),c(1,"prohibit"),o())}function xn(i,n){if(i&1){let e=O();s(0,"button",78),S("click",function(){C(e);let a=l(2);return E(a.updatePassphrase())}),_(1,35),o()}if(i&2){let e=l(2);P("loader",e.isUpdating())}}function bn(i,n){if(i&1){let e=O();s(0,"spk-tooltip",77)(1,"button",79),S("click",function(){C(e);let a=l(2);return E(a.updatePassphrase())}),_(2,36),o()()}if(i&2){let e=l(2);r(),P("loader",e.isUpdating()),d("disabled",!0)}}function kn(i,n){if(i&1){let e=O();s(0,"spk-form-field")(1,"label",69),_(2,32),o(),s(3,"input",70),k("ngModelChange",function(a){C(e);let m=l();return b(m.passphrase,a)||(m.passphrase=a),E(a)}),o()(),s(4,"spk-form-field")(5,"label",71),_(6,33),o(),s(7,"input",72),k("ngModelChange",function(a){C(e);let m=l();return b(m.repeatPassphrase,a)||(m.repeatPassphrase=a),E(a)}),o(),u(8,wn,2,0,"spk-icon",73)(9,$n,2,0,"spk-icon",74),o(),s(10,"div",50)(11,"button",75),S("click",function(){C(e);let a=l();return E(a.cancelPasswordChange())}),_(12,34),o(),u(13,xn,2,2,"button",76)(14,bn,3,3,"spk-tooltip",77),o()}if(i&2){let e=l();r(3),x("ngModel",e.passphrase),r(4),d("disabled",e.passphrase().length===0),x("ngModel",e.repeatPassphrase),r(),T(e.passphrase().length!==0&&e.passphrase()===e.repeatPassphrase()?8:9),r(3),P("loader",e.isUpdating()),r(2),T(e.passphrase().length!==0&&e.passphrase()===e.repeatPassphrase()?13:14)}}function Dn(i,n){i&1&&(s(0,"spk-icon",80),c(1,"check"),o())}function Ln(i,n){if(i&1){let e=O();s(0,"div",50)(1,"button",75),S("click",function(){C(e);let a=l();return E(a.openPassphraseForm())}),_(2,37),o(),u(3,Dn,2,0,"spk-icon",80),o()}if(i&2){let e=l();r(3),T(e.passwordUpdated()?3:-1)}}function Vn(i,n){if(i&1){let e=O();s(0,"spk-form-field")(1,"label",81),_(2,38),o(),s(3,"textarea",82),k("ngModelChange",function(a){C(e);let m=l();return b(m.allowedHostnames,a)||(m.allowedHostnames=a),E(a)}),o()(),s(4,"spk-alert",83),_(5,39),o(),s(6,"button",78),S("click",function(){C(e);let a=l();return E(a.updateAllowedHostnames())}),_(7,40),o()}if(i&2){let e=l();r(3),x("ngModel",e.allowedHostnames),r(3),P("loader",e.updatingAllowedHosts())}}function Xn(i,n){if(i&1&&c(0),i&2){let e,t=l();h(" ",(e=t.sysinfo())==null?null:e.ServerVersion," ")}}function zn(i,n){i&1&&f(0,"spk-progress-bar",55)}function Un(i,n){if(i&1&&c(0),i&2){let e=n.$implicit;h(" ",e.label," ")}}function Bn(i,n){if(i&1&&c(0),i&2){let e=n.$implicit;h(" ",e.label," ")}}var Q=new de,Lt=[{value:"s",label:$localize`Seconds`},{value:"m",label:$localize`Minutes`},{value:"h",label:$localize`Hours`}],Vt=[{value:"",label:$localize`System default (information)`},{value:"information",label:$localize`Usage statistics, warnings, errors, and crashes`},{value:"warning",label:$localize`Warnings, errors and crashes`},{value:"error",label:$localize`Errors and crashes`},{value:"crash",label:$localize`Crashes only`},{value:"none",label:$localize`None / disabled`}],ve=class i{#e=N(wt);#i=N(ae);#t=N(A);#n=N(U);#a=N(B);#o=N(Mt);#s=this.#o.getItem("locale")??"en-US";sysinfo=this.#i.systemInfo;isDarkMode=this.#e.isDarkMode;editAs=g("list");previousLang=this.#s;langCtrl=g(this.#s);remoteControlStatus=this.#a.status;settingsForm=Q.group({pauseSettings:Q.group({time:Q.control(0),timeType:Q.control("s")}),usageStatistics:Q.control("")});updatingChannel=g(!1);updateChannel=g("");setNewChannel(n){let e=this.updateChannel();this.updateChannel.set(n),this.#t.patchApiV1Serversettings({requestBody:{"update-channel":n}}).pipe(this.#n.withRefresh(),v(()=>this.updatingChannel.set(!1)),H(()=>(this.updateChannel.set(e),q(null)))).subscribe()}allowRemoteAccess=g(!1);allowedHostnames=g("");loadedAllowedHostnames=g("");updatingRemoteAccess=g(!1);updatingAllowedHosts=g(!1);updateRemoteAccess(){let n=this.allowRemoteAccess(),e=!n;this.allowRemoteAccess.set(e),e||this.#t.patchApiV1Serversettings({requestBody:{"server-listen-interface":e?"any":"loopback"}}).pipe(this.#n.withRefresh(),v(()=>this.updatingRemoteAccess.set(!1)),H(()=>(this.allowRemoteAccess.set(n),q(null)))).subscribe()}updateAllowedHostnames(){let n=this.loadedAllowedHostnames(),e=this.allowedHostnames();this.updatingAllowedHosts.set(!0),this.#t.patchApiV1Serversettings({requestBody:{"server-listen-interface":"any","allowed-hostnames":e}}).pipe(this.#n.withRefresh(),v(()=>this.updatingAllowedHosts.set(!1)),H(()=>(this.allowedHostnames.set(n),q(null)))).subscribe()}updatingDisableTrayIconLogin=g(!1);disableTrayIconLogin=g(!1);saveDisableTrayIconLogin(){let n=this.disableTrayIconLogin(),e=!n;this.updatingDisableTrayIconLogin.set(!0),this.disableTrayIconLogin.set(e),this.#t.patchApiV1Serversettings({requestBody:{"disable-tray-icon-login":e?"True":"False"}}).pipe(this.#n.withRefresh(),v(()=>this.updatingDisableTrayIconLogin.set(!1)),H(()=>(this.disableTrayIconLogin.set(n),q(null)))).subscribe()}showPassphraseForm=g(!1);isUpdating=g(!1);passphrase=g("");repeatPassphrase=g("");passwordUpdated=g(!1);updatePassphrase(){this.passphrase()===this.repeatPassphrase()&&(this.isUpdating.set(!0),this.#t.patchApiV1Serversettings({requestBody:{"server-passphrase":this.passphrase()}}).pipe(this.#n.withRefresh(),v(()=>this.isUpdating.set(!1))).subscribe({next:()=>{this.showPassphraseForm.set(!1),this.passwordUpdated.set(!0),setTimeout(()=>{this.passwordUpdated.set(!1)},3e3)}}))}openPassphraseForm(){this.showPassphraseForm.set(!0)}cancelPasswordChange(){this.showPassphraseForm.set(!1)}get pauseSettings(){return this.settingsForm.controls.pauseSettings}languageOptions=g(Fe);usageStatisticsOptions=g(Vt);timeTypeOptions=g(Lt);timeTypeSignal=Ne(this.pauseSettings.controls.timeType.valueChanges);timeRange=D(()=>this.timeTypeSignal()==="h"?[0,24]:[0,60]);#r(n){let e=n==="h"?25:61;return new Array(e).fill(0).map((t,a)=>a)}updateLocale(n){let t=n[0]?.value??"";!t||t===""||t===this.previousLang||(this.#o.setItem("locale",t),window.location.reload())}submit(){let n=this.pauseSettings.value,e=`${n.time}${n.timeType}`;this.#t.patchApiV1Serversettings({requestBody:{"usage-reporter-level":this.settingsForm.controls.usageStatistics.value,"startup-delay":e==="0s"?"":e}}).pipe(this.#n.withRefresh()).subscribe()}serverSettingsEffect=L(()=>{let n=this.#n.serverSettings();if(n===void 0)return;let e=n["startup-delay"],t=e.slice(-1),a=e.slice(0,-1),m=["s","m","h"];this.disableTrayIconLogin.set(n["disable-tray-icon-login"]!=="False"),this.updateChannel.set(n["update-channel"]),this.allowRemoteAccess.set(n["server-listen-interface"]==="any"),this.allowedHostnames.set(n["allowed-hostnames"]),this.loadedAllowedHostnames.set(n["allowed-hostnames"]),console.log(n["usage-reporter-level"]),queueMicrotask(()=>{this.settingsForm.patchValue({pauseSettings:{time:parseInt(a==""?"0":a),timeType:m.includes(t)?t:"s"},usageStatistics:n["usage-reporter-level"]??""})})});languageDisplay(){let n=this;return()=>{let e=n.langCtrl();return e?Fe.find(t=>t.value===e)?.label??null:null}}typeDisplay(){let n=this;return()=>{let e=n.settingsForm.value.pauseSettings?.timeType;return e==null?null:Lt.find(t=>t.value===e)?.label??null}}usageDisplay(){let n=this;return()=>{let e=n.settingsForm.value.usageStatistics;return e==null?null:Vt.find(t=>t.value===e)?.label??null}}setDarkMode(){this.#e.setDarkMode()}setLightMode(){this.#e.setLightMode()}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=G({type:i,selectors:[["app-settings"]],decls:133,vars:39,consts:()=>{let n;n=$localize`Settings`;let e;e=$localize`Configure your backup settings.`;let t;t=$localize` Save changes `;let a;a=$localize`Remote access control`;let m;m=$localize`Color theme`;let F;F=$localize`Customize your application theme`;let I;I=$localize`Passwords`;let R;R=$localize`Change server passphrase`;let Z;Z=$localize`Language`;let Ae;Ae=$localize`Select a language for the platform`;let Ge;Ge=$localize`Allow remote access (requires restart)`;let we;we=$localize` By allowing remote access, the server listens to requests from any machine on your network. If you enable this option, make sure you are always using the computer on a secure firewall protected network. `;let $e;$e=$localize`Allow remote access`;let xe;xe=$localize`Prevent tray icon automatic log-in`;let be;be=$localize` By default, the tray icon will open the user interface with a token that unlocks the user interface. This ensures that you can access the user interface from the tray icon, while requiring others to enter a password. If you prefer having to type in the password, even when accessing the user interface from the tray icon, enable this option. `;let ke;ke=$localize`Prevent tray icon automatic log-in`;let De;De=$localize`Update channel`;let Le;Le=$localize` Default (${"\uFFFD0\uFFFD"}:INTERPOLATION:) `;let Ve;Ve=$localize`Same as the base install version: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let Xe;Xe=$localize`Stable`;let ze;ze=$localize`Official releases`;let Ue;Ue=$localize`Beta`;let Be;Be=$localize` Try out the new features that we are working on. Currently the most stable version available. Test Restore data before using this in production environments. `;let qe;qe=$localize` Experimental `;let He;He=$localize`Specific builds for developers only. Not for use with important data.`;let We;We=$localize`Canary`;let Ke;Ke=$localize`Individual builds for developers only. Not for use with important data.`;let je;je=$localize`Pause after startup or hibernation`;let Qe;Qe=$localize` Duplicati will run when started, but will remain in paused state for the duration. Duplicati will occupy minimal system resources and no backups will be run. `;let Ze;Ze=$localize`Usage statistics`;let J;J=$localize` Usage reports help us improve the user experience and evaluate impact of new features. We use them to generate ${"\uFFFD#121\uFFFD"}:START_LINK:public usage statistics.${"\uFFFD/#121\uFFFD"}:CLOSE_LINK:${"[\uFFFD#122\uFFFD\uFFFD/#122\uFFFD|\uFFFD#123\uFFFD\uFFFD/#123\uFFFD]"}:LINE_BREAK:${"[\uFFFD#122\uFFFD\uFFFD/#122\uFFFD|\uFFFD#123\uFFFD\uFFFD/#123\uFFFD]"}:LINE_BREAK: All usage reports are sent anonymously and do not contain any personal information. They contain information about hardware and operating system, the type of backend, backup duration, overall size of source data and similar data. They do not contain paths, filenames, usernames, passwords or similar sensitive information. `,J=ne(J);let Je;Je=$localize`Advanced options`;let Ye;Ye=$localize`Enter new password`;let et;et=$localize`Repeat password`;let tt;tt=$localize`Password have to be filled and have to match`;let nt;nt=$localize`Passphrase`;let it;it=$localize`Repeat passphrase`;let ot;ot=$localize`Cancel`;let st;st=$localize` Update passphrase `;let at;at=$localize` Update passphrase `;let rt;rt=$localize`Change password`;let lt;lt=$localize`Allowed hostnames`;let _t;_t=$localize` To prevent various DNS based attacks, Duplicati limits the allowed hostnames to the ones listed here. Direct IP access and localhost is always allowed. Multiple hostnames can be supplied with a semicolon separator. If any of the allowed hostnames is an asterisk (*), all hostnames are allowed and this feature is disabled. If the field is empty, only IP address and localhost access is allowed. `;let pt;return pt=$localize` Update allowed hostnames `,[n,e,t,a,m,F,I,R,Z,Ae,Ge,we,$e,xe,be,ke,De,Le,Ve,Xe,ze,Ue,Be,qe,He,We,Ke,je,Qe,Ze,J,Je,nt,it,ot,st,at,rt,lt,_t,pt,[1,"content"],[1,"title"],["type","submit","spk-button","",1,"raised","primary",3,"click","disabled"],[1,"left"],[1,"right"],[1,"themes"],["src","assets/images/light-theme.png","alt","light theme",3,"click"],["src","assets/images/dark-theme.png","alt","dark theme",3,"click"],[1,"right","passphrase-form"],[1,"actions"],["value","value","label","label",3,"selectedOptionsChange","options","isClearable","inlineSearch"],["type","text",3,"ngModel","ngModelOptions"],[1,"right","remote-access-form"],[1,"primary","raised",3,"click"],[1,"indeterminate","primary"],[1,"right","radios"],[1,"radio-option",3,"click"],[1,"primary","raised"],[1,"content",3,"submit","formGroup"],["formGroupName","pauseSettings",1,"field-row"],[1,"raised","primary",3,"unit"],["type","range","formControlName","time",3,"min","max"],["label","label","value","value",3,"options","isClearable"],["type","text","formControlName","timeType"],["href","#"],["label","label","value","value",3,"options"],["type","text","formControlName","usageStatistics"],[1,"advanced-settings"],["for","password"],["type","password","name","password","autocomplete","disabled","placeholder",Ye,"tabindex","1",3,"ngModelChange","ngModel"],["for","repeatPassword"],["type","password","name","repeatPassword","autocomplete","disabled","placeholder",et,"tabindex","2",3,"ngModelChange","disabled","ngModel"],["suffix","",1,"spk-success"],["suffix",""],["spk-button","",3,"click"],["spk-button","",1,"raised","primary",3,"loader"],["message",tt,1,"primary"],["spk-button","",1,"raised","primary",3,"click"],["spk-button","",1,"raised","primary",3,"click","disabled"],[1,"spk-success"],["for","allowedHostnames"],["type","text","id","allowedHostnames",3,"ngModelChange","ngModel"],["type","primary"]]},template:function(e,t){if(e&1&&(f(0,"app-status-bar"),s(1,"div",41)(2,"header")(3,"div",42)(4,"h2"),_(5,0),o(),s(6,"p"),_(7,1),o()(),s(8,"button",43),S("click",function(){return t.submit()}),_(9,2),o()(),s(10,"section")(11,"div",44)(12,"h3"),_(13,3),o(),s(14,"p"),c(15),o()(),s(16,"div",45),f(17,"app-remote-control"),o()(),s(18,"section")(19,"div",44)(20,"h3"),_(21,4),o(),s(22,"p"),_(23,5),o()(),s(24,"div",45)(25,"div",46)(26,"img",47),S("click",function(){return t.setLightMode()}),o(),s(27,"img",48),S("click",function(){return t.setDarkMode()}),o()()()(),s(28,"section")(29,"div",44)(30,"h3"),_(31,6),o(),s(32,"p"),_(33,7),o()(),s(34,"div",49),u(35,kn,15,7)(36,Ln,4,1,"div",50),o()(),s(37,"section")(38,"div",44)(39,"h3"),_(40,8),o(),s(41,"p"),_(42,9),o()(),s(43,"div",45)(44,"spk-select",51),S("selectedOptionsChange",function(m){return t.updateLocale(m)}),f(45,"input",52),o()()(),s(46,"section")(47,"div",44)(48,"h3"),_(49,10),o(),s(50,"p"),_(51,11),o()(),s(52,"div",53)(53,"spk-toggle",54),S("click",function(){return t.updateRemoteAccess()}),s(54,"label"),_(55,12),o()(),u(56,Vn,8,3),o()(),s(57,"section")(58,"div",44)(59,"h3"),_(60,13),o(),s(61,"p"),_(62,14),o()(),s(63,"div",45)(64,"spk-toggle",54),S("click",function(){return t.saveDisableTrayIconLogin()}),s(65,"label"),_(66,15),o()()()(),s(67,"section")(68,"div",44)(69,"h3"),_(70,16),o(),s(71,"p"),u(72,Xn,1,1),o(),u(73,zn,1,0,"spk-progress-bar",55),o(),s(74,"div",56)(75,"div",57),S("click",function(){return t.setNewChannel("")}),s(76,"spk-radio",58),_(77,17),o(),s(78,"p"),_(79,18),o()(),s(80,"div",57),S("click",function(){return t.setNewChannel("stable")}),s(81,"spk-radio",58),_(82,19),o(),s(83,"p"),_(84,20),o()(),s(85,"div",57),S("click",function(){return t.setNewChannel("beta")}),s(86,"spk-radio",58),_(87,21),o(),s(88,"p"),_(89,22),o()(),s(90,"div",57),S("click",function(){return t.setNewChannel("experimental")}),s(91,"spk-radio",58),_(92,23),o(),s(93,"p"),_(94,24),o()(),s(95,"div",57),S("click",function(){return t.setNewChannel("canary")}),s(96,"spk-radio",58),_(97,25),o(),s(98,"p"),_(99,26),o()()()()(),f(100,"spk-divider"),s(101,"form",59),S("submit",function(){return t.submit()}),s(102,"section")(103,"div",44)(104,"h3"),_(105,27),o(),s(106,"p"),_(107,28),o()(),s(108,"div",45)(109,"div",60)(110,"spk-range-slider",61),f(111,"input",62),o(),s(112,"spk-select",63),f(113,"input",64),u(114,Un,1,1,"ng-template"),o()()()(),s(115,"section")(116,"div",44)(117,"h3"),_(118,29),o(),s(119,"p"),w(120,30),f(121,"a",65)(122,"br")(123,"br"),$(),o()(),s(124,"div",45)(125,"spk-select",66),f(126,"input",67),u(127,Bn,1,1,"ng-template"),o()()(),s(128,"section")(129,"div",68)(130,"h3"),_(131,31),o(),f(132,"app-advanced-options-settings"),o()()()),e&2){let a,m,F,I;r(8),d("disabled",t.settingsForm.untouched),r(7),oe(t.remoteControlStatus()),r(11),P("active",!t.isDarkMode()),r(),P("active",t.isDarkMode()),r(8),T(t.showPassphraseForm()?35:36),r(9),d("options",t.languageOptions())("isClearable",!1)("inlineSearch",!0),r(),d("ngModel",t.langCtrl())("ngModelOptions",Et(38,Gn)),r(8),P("active",t.allowRemoteAccess()),r(3),T(t.allowRemoteAccess()?56:-1),r(8),P("active",t.disableTrayIconLogin()),r(8),T(t.updateChannel()!==""&&((a=t.sysinfo())!=null&&a.ServerVersion)?72:-1),r(),T(t.updatingChannel()?73:-1),r(3),P("active",t.updateChannel()===""),r(),W((m=t.sysinfo())==null?null:m.DefaultUpdateChannel),K(77),r(2),W((F=t.sysinfo())==null?null:F.ServerVersionType),K(79),r(2),P("active",t.updateChannel()==="stable"),r(5),P("active",t.updateChannel()==="beta"),r(5),P("active",t.updateChannel()==="experimental"),r(5),P("active",t.updateChannel()==="canary"),r(5),d("formGroup",t.settingsForm),r(9),d("unit",(I=t.timeTypeSignal())!==null&&I!==void 0?I:""),r(),d("min",t.timeRange()[0])("max",t.timeRange()[1]),r(),d("options",t.timeTypeOptions())("isClearable",!1),r(13),d("options",t.usageStatisticsOptions())}},dependencies:[ue,_e,V,It,X,re,le,Se,pe,me,ce,$t,Me,j,Te,At,Gt,vt,Ce,Ee,z,ge,yt,Rt,fe],styles:["[_nghost-%COMP%]{display:block}.content[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding:0 2rem 2rem}header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:2rem 0;position:sticky;top:0;background:var(--base-level-10);z-index:1000;border-bottom:1px solid var(--base-level-40)}header[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem}section[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding:2rem 0;border-top:1px solid var(--base-level-40)}section[_ngcontent-%COMP%]:first-of-type{border-top:0}section[_ngcontent-%COMP%] .left[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem;align-items:flex-start}section[_ngcontent-%COMP%] .left[_ngcontent-%COMP%] spk-button-group[_ngcontent-%COMP%]{margin-top:.25rem}section[_ngcontent-%COMP%] .left[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{text-wrap:balance;width:50%}.passphrase-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:1rem}.passphrase-form[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem}.remote-access-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.themes[_ngcontent-%COMP%]{display:flex;gap:.5rem}.themes[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-width:240px;border-radius:var(--shape-3);cursor:pointer}.themes[_ngcontent-%COMP%] img.active[_ngcontent-%COMP%]{border:2px solid var(--primary-500)}.radios[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.radio-option[_ngcontent-%COMP%]{cursor:pointer}.radio-option[_ngcontent-%COMP%] spk-radio[_ngcontent-%COMP%]{color:var(--base-level-60);margin-bottom:.25rem}.radio-option[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{text-wrap:balance;color:var(--base-level-60R)}.field-col[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.field-row[_ngcontent-%COMP%]{display:flex;gap:.5rem;width:100%}.field-row[_ngcontent-%COMP%] spk-form-field[_ngcontent-%COMP%], .field-row[_ngcontent-%COMP%] spk-select[_ngcontent-%COMP%]{flex:1 0}.advanced-settings[_ngcontent-%COMP%]{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr;gap:1rem}"],changeDetection:0})};export{ve as default};
|
|
1
|
+
import{o as ye}from"./chunk-DM3TLLVN.js";import{a as xt}from"./chunk-H5CQT7KP.js";import{a as bt}from"./chunk-42RH3SEU.js";import"./chunk-DNHLTHLR.js";import{a as Ne}from"./chunk-I56L7YBT.js";import{a as Fe}from"./chunk-Q2S4M24F.js";import{a as ae}from"./chunk-DXNCMAOT.js";import{a as wt}from"./chunk-D3OXH7DI.js";import"./chunk-2MAHQYCM.js";import{a as Mt}from"./chunk-26LLZBVS.js";import{a as $t}from"./chunk-CMCJ4PJ3.js";import"./chunk-3CWO2EV5.js";import"./chunk-3NUWESLC.js";import"./chunk-IWMMFNSQ.js";import"./chunk-B27FY76R.js";import{a as ht,b as V,d as X,e as re,g as le,h as _e,i as Pt,k as It,m as pe,n as ce,p as me,q as de,r as ue,s as Se}from"./chunk-25A34CYL.js";import"./chunk-EEWVYRVF.js";import{b as A}from"./chunk-F7TB6D2I.js";import"./chunk-EMAOG2GJ.js";import"./chunk-CKZXQWC5.js";import{a as ge,b as Rt,g as Te,k as yt,l as z,n as Ft,o as vt,p as At,q as Gt,r as fe,w as Ce,x as Ee}from"./chunk-KB4BCU6P.js";import"./chunk-BE77QZG7.js";import"./chunk-OXZWBTVI.js";import"./chunk-KB62MNQB.js";import{Ab as s,Bb as o,Cb as f,D as v,Db as ee,Eb as te,Fb as gt,Gb as O,Kc as D,Mb as w,Mc as L,Nb as $,Oa as mt,Ob as _,Pb as W,Qa as r,Qb as K,R as Y,Rb as ne,Sb as S,Tb as l,Wb as y,X as N,Xa as dt,Yb as M,Zb as Re,c as ct,ca as C,cc as Tt,da as E,db as G,dc as ft,ec as ie,fc as c,gc as oe,hc as h,ib as u,kc as x,l as q,lc as b,mc as k,ob as ut,pb as St,qc as Ct,rb as d,rc as Et,sc as Nt,ta as g,tb as P,tc as Ot,wb as T,xb as he,y as H,yb as Pe,yc as se,zb as Ie}from"./chunk-5ONOZUNN.js";import"./chunk-C6Q5SG76.js";var U=class i{#e=N(A);#i=Ne(this.#e.getApiV1Serversettings());#t=g(void 0);serverSettings=D(()=>this.#t()||this.#i());refreshServerSettings(){this.#e.getApiV1Serversettings().subscribe({next:n=>{this.#t.set(n)}})}withRefresh(){return ct(v(()=>this.refreshServerSettings()))}static \u0275fac=function(e){return new(e||i)};static \u0275prov=Y({token:i,factory:i.\u0275fac,providedIn:"root"})};var Xt=["formRef"],zt=()=>[import("./chunk-VC6R3EOF.js").then(i=>i.NgTemplateOutlet)],Ut=(i,n)=>({index:i,formView:n,formGroupName:"advancedOptions",destinationType:null,oauthField:null}),Bt=i=>({$implicit:i});function qt(i,n){if(i&1){let e=O();w(0,5,1),s(1,"button",16,2),S("click",function(){let a=C(e).$implicit,m=l();return E(m.addNewOption(a))}),o(),$()}if(i&2){let e=n.$implicit;r(),W(e.name),K(0)}}function Ht(i,n){i&1&>(0)}function Wt(i,n){if(i&1&&u(0,Ht,1,0,"ng-container",17),i&2){let e=n.$implicit,t=n.$index;l(2);let a=ie(15);d("ngTemplateOutlet",a)("ngTemplateOutletContext",Nt(5,Bt,Ot(2,Ut,t,e)))}}function Kt(i,n){if(i&1&&Pe(0,Wt,1,7,"ng-container",null,he),i&2){let e=l();Ie(e.selectedOptions())}}function jt(i,n){if(i&1&&(s(0,"spk-tooltip",26)(1,"spk-icon"),c(2,"question"),o()()),i&2){let e=l(2).$implicit;d("message",e.formView.longDescription)}}function Qt(i,n){if(i&1&&(s(0,"app-file-tree",20)(1,"label",25),c(2),u(3,jt,3,1,"spk-tooltip",26),o(),f(4,"input",27),o()),i&2){let e,t=l().$implicit,a=l();d("startingPath",a.getFormFieldValue(0,t.formGroupName,t.formView.name))("accepts",t.formView.accepts)("showFiles",!0)("showHiddenNodes",!0)("selectFiles",!0),r(),M("for","destination-",t.formGroupName,"-",t.index,""),r(),h(" ",(e=t.formView.shortDescription)!==null&&e!==void 0?e:t.formView.name," "),r(),T(t.formView.longDescription?3:-1),r(),M("id","destination-",t.formGroupName,"-",t.index,""),y("formControlName",t.formView.name)}}function Zt(i,n){if(i&1&&(s(0,"spk-tooltip",26)(1,"spk-icon"),c(2,"question"),o()()),i&2){let e=l(2).$implicit;d("message",e.formView.longDescription)}}function Jt(i,n){if(i&1&&(s(0,"app-file-tree",21)(1,"label",25),c(2),u(3,Zt,3,1,"spk-tooltip",26),o(),f(4,"input",27),o()),i&2){let e,t=l().$implicit,a=l();d("startingPath",a.getFormFieldValue(0,t.formGroupName,t.formView.name)),r(),M("for","destination-",t.formGroupName,"-",t.index,""),r(),h(" ",(e=t.formView.shortDescription)!==null&&e!==void 0?e:t.formView.name," "),r(),T(t.formView.longDescription?3:-1),r(),M("id","destination-",t.formGroupName,"-",t.index,""),y("formControlName",t.formView.name)}}function Yt(i,n){if(i&1&&(s(0,"spk-tooltip",26)(1,"spk-icon"),c(2,"question"),o()()),i&2){let e=l(2).$implicit;d("message",e.formView.longDescription)}}function en(i,n){i&1&&(s(0,"spk-icon",28),c(1,"link"),o())}function tn(i,n){i&1&&(s(0,"spk-icon",28),c(1,"textbox"),o())}function nn(i,n){if(i&1&&(s(0,"spk-form-field")(1,"label",25),c(2),u(3,Yt,3,1,"spk-tooltip",26),o(),f(4,"input",27),u(5,en,2,0,"spk-icon",28)(6,tn,2,0,"spk-icon",28),o()),i&2){let e,t=l().$implicit;r(),M("for","destination-",t.formGroupName,"-",t.index,""),r(),h(" ",(e=t.formView.shortDescription)!==null&&e!==void 0?e:t.formView.name," "),r(),T(t.formView.longDescription?3:-1),r(),M("id","destination-",t.formGroupName,"-",t.index,""),y("formControlName",t.formView.name),r(),T(t.formView.type==="Path"?5:6)}}function on(i,n){if(i&1){let e=O();s(0,"span",32),S("click",function(){C(e);let a=l(2).$implicit,m=l();return E(m.oauthStartTokenCreation(a.formViewType))}),c(1,"AuthID"),o()}}function sn(i,n){i&1&&(s(0,"spk-icon",28),c(1,"password"),o())}function an(i,n){if(i&1){let e=O();s(0,"spk-icon",33),S("click",function(){C(e);let a=l(2).$implicit;return E(a.formView.showPassword=!a.formView.showPassword)}),c(1," eye "),o()}}function rn(i,n){if(i&1){let e=O();s(0,"spk-icon",33),S("click",function(){C(e);let a=l(2).$implicit;return E(a.formView.showPassword=!a.formView.showPassword)}),c(1," eye-slash "),o()}}function ln(i,n){if(i&1&&(s(0,"spk-form-field")(1,"label",25),c(2),o(),f(3,"input",29),u(4,on,2,0,"span",30)(5,sn,2,0,"spk-icon",28)(6,an,2,0,"spk-icon",31)(7,rn,2,0,"spk-icon",31),o()),i&2){let e,t=l().$implicit;r(),M("for","destination-",t.formGroupName,"-",t.index,""),r(),h(" ",(e=t.formView.shortDescription)!==null&&e!==void 0?e:t.formView.name," "),r(),M("id","destination-",t.formGroupName,"-",t.index,""),y("formControlName",t.formView.name),d("type",t.formView.showPassword?"text":"password"),r(),T(t.oauthField===t.formView.name?4:5),r(2),T(t.formView.showPassword?6:7)}}function _n(i,n){if(i&1&&(s(0,"spk-tooltip",26)(1,"spk-icon"),c(2,"question"),o()()),i&2){let e=l(2).$implicit;d("message",e.formView.longDescription)}}function pn(i,n){if(i&1&&c(0),i&2){let e=n.$implicit;h(" ",e," ")}}function cn(i,n){if(i&1&&(s(0,"spk-select",34)(1,"label",25),c(2),u(3,_n,3,1,"spk-tooltip",26),o(),f(4,"input",27),o(),u(5,pn,1,1,"ng-template",null,3,se)),i&2){let e,t=ie(6),a=l().$implicit;d("options",a.formView.options)("isClearable",!1)("optionTemplate",t),r(),Re("for","destination-",a.formGroupName,"-",a.index,"-",a.asHttpOptions?"http":"other",""),r(),h(" ",(e=a.formView.shortDescription)!==null&&e!==void 0?e:a.formView.name," "),r(),T(a.formView.longDescription?3:-1),r(),Re("id","destination-",a.formGroupName,"-",a.index,"-",a.asHttpOptions?"http":"other",""),y("formControlName",a.formView.name)}}function mn(i,n){if(i&1&&(s(0,"spk-tooltip",26)(1,"spk-icon"),c(2,"question"),o()()),i&2){let e=l(2).$implicit;d("message",e.formView.longDescription)}}function dn(i,n){if(i&1&&(s(0,"div",22)(1,"label",25),c(2),u(3,mn,3,1,"spk-tooltip",26),o(),s(4,"div",35)(5,"spk-form-field"),f(6,"input",36),s(7,"spk-icon",28),c(8,"resize"),o()(),s(9,"spk-select",37),f(10,"input",38),o()()()),i&2){let e,t=l().$implicit,a=l();d("formGroupName",t.formView.name),r(),M("for","destination-",t.formGroupName,"-",t.index,""),r(),h(" ",(e=t.formView.shortDescription)!==null&&e!==void 0?e:t.formView.name," "),r(),T(t.formView.longDescription?3:-1),r(3),M("id","destination-",t.formGroupName,"-",t.index,""),r(3),d("options",a.sizeOptions())("inlineSearch",!0)}}function un(i,n){if(i&1&&(s(0,"spk-tooltip",26)(1,"spk-icon"),c(2,"question"),o()()),i&2){let e=l(2).$implicit;d("message",e.formView.longDescription)}}function Sn(i,n){if(i&1&&(s(0,"spk-form-field")(1,"label",25),c(2),u(3,un,3,1,"spk-tooltip",26),o(),f(4,"input",39),s(5,"spk-icon",28),c(6,"numpad"),o()()),i&2){let e,t=l().$implicit;r(),M("for","destination-",t.formGroupName,"-",t.index,""),r(),h(" ",(e=t.formView.shortDescription)!==null&&e!==void 0?e:t.formView.name," "),r(),T(t.formView.longDescription?3:-1),r(),M("id","destination-",t.formGroupName,"-",t.index,""),y("formControlName",t.formView.name)}}function gn(i,n){if(i&1&&(s(0,"spk-tooltip",26)(1,"spk-icon"),c(2,"question"),o()()),i&2){let e=l(2).$implicit;d("message",e.formView.longDescription)}}function Tn(i,n){if(i&1&&(s(0,"spk-toggle",23)(1,"label",25),c(2),u(3,gn,3,1,"spk-tooltip",26),o(),f(4,"input",40),o()),i&2){let e,t=l().$implicit;r(),M("for","destination-",t.formGroupName,"-",t.index,""),r(),h(" ",(e=t.formView.shortDescription)!==null&&e!==void 0?e:t.formView.name," "),r(),T(t.formView.longDescription?3:-1),r(),M("id","destination-",t.formGroupName,"-",t.index,""),y("formControlName",t.formView.name)}}function fn(i,n){if(i&1&&(s(0,"spk-tooltip",26)(1,"spk-icon"),c(2,"question"),o()()),i&2){let e=l(2).$implicit;d("message",e.formView.longDescription)}}function Cn(i,n){if(i&1&&c(0),i&2){let e=n.$implicit;h(" ",e," ")}}function En(i,n){if(i&1&&(s(0,"spk-select",41)(1,"label",25),c(2),u(3,fn,3,1,"spk-tooltip",26),o(),f(4,"input",42),o(),u(5,Cn,1,1,"ng-template",null,4,se)),i&2){let e,t=ie(6),a=l().$implicit;d("options",a.formView.options)("selectMultiple",!0)("optionTemplate",t),r(),M("for","destination-",a.formGroupName,"-",a.index,""),r(),h(" ",(e=a.formView.shortDescription)!==null&&e!==void 0?e:a.formView.name," "),r(),T(a.formView.longDescription?3:-1),r(),y("formControlName",a.formView.name)}}function Nn(i,n){if(i&1&&(s(0,"spk-tooltip",26)(1,"spk-icon"),c(2,"question"),o()()),i&2){let e=l(2).$implicit;d("message",e.formView.longDescription)}}function On(i,n){if(i&1&&(s(0,"spk-form-field")(1,"label",25),c(2),u(3,Nn,3,1,"spk-tooltip",26),o(),f(4,"input",27),o()),i&2){let e,t=l().$implicit;r(),M("for","destination-",t.formGroupName,"-",t.index,""),r(),h(" ",(e=t.formView.shortDescription)!==null&&e!==void 0?e:t.formView.name," "),r(),T(t.formView.longDescription?3:-1),r(),M("id","destination-",t.formGroupName,"-",t.index,""),y("formControlName",t.formView.name)}}function Mn(i,n){if(i&1){let e=O();s(0,"div",18),ee(1,19),u(2,Qt,5,14,"app-file-tree",20)(3,Jt,5,10,"app-file-tree",21)(4,nn,7,10,"spk-form-field")(5,ln,8,11,"spk-form-field")(6,cn,7,14)(7,dn,11,11,"div",22)(8,Sn,7,9,"spk-form-field")(9,Tn,5,9,"spk-toggle",23)(10,En,7,9)(11,On,5,9,"spk-form-field"),te(),s(12,"button",24),S("click",function(){let a=C(e).$implicit,m=l();return E(m.removeFormView(a.formView))}),s(13,"spk-icon"),c(14,"x-circle"),o()()()}if(i&2){let e=n.$implicit;r(),d("formGroupName",e.formGroupName),r(),T(e.formView.type==="FileTree"?2:e.formView.type==="FolderTree"?3:e.formView.type==="String"||e.formView.type==="Path"?4:e.formView.type==="Password"?5:e.formView.type==="Enumeration"?6:e.formView.type==="Size"?7:e.formView.type==="Integer"?8:e.formView.type==="Boolean"?9:e.formView.type==="Flags"?10:e.formView.type==="Timespan"?11:-1)}}var pi=new de,hn=["Bytes","KB","MB","GB","TB","PB"],ci=[{value:"",name:$localize`Keep all backups`},{value:"time",name:$localize`Delete backups that are older than`},{value:"versions",name:$localize`Keep a specific number of backups`},{value:"smart",name:$localize`Smart backup retention`},{value:"custom",name:$localize`Custom backup retention`}],mi=1024*1024*1024*2,di=1024*1024*5;var j=class i{#e=N(ye);#i=N(U);#t=N(A);formRef=dt.required("formRef");optionsForm=this.#e.optionsForm;selectedOptions=this.#e.selectedOptions;nonSelectedOptions=this.#e.nonSelectedOptions;isSubmitting=g(!1);isLoadingOptions=g(!0);sizeOptions=g(hn);serverSettingsEffect=L(()=>{let n=this.#i.serverSettings();if(n===void 0)return;this.isLoadingOptions.set(!0);let e=this.#e.nonSelectedOptions(),t=Object.entries(n);t.forEach(([a,m],F)=>{if(a.startsWith("--")){let I=a.replace("--",""),R=e.find(Z=>Z.name===I);R!==void 0?this.addNewOption(R,m):this.addFreeTextOption(I,m)}F===t.length-1&&this.isLoadingOptions.set(!1)})});oauthStartTokenCreation(n){}getFormFieldValue(n,e,t){return this.optionsForm.controls.advancedOptions.controls[t].value}removeFormView(n){let e="--"+n.name;this.#t.patchApiV1Serversettings({requestBody:{[e]:null}}).subscribe({next:t=>{window.location.reload()}})}addNewOption(n,e){this.#e.addOptionToFormGroup(n,e)}addFreeTextOption(n,e){this.#e.addFreeTextOption(n,e,{})}submit(){this.isSubmitting.set(!0);let n=this.optionsForm.value.advancedOptions;if(!n)return;let e=this.#n(n);this.#t.patchApiV1Serversettings({requestBody:e}).pipe(v(()=>this.isSubmitting.set(!1))).subscribe()}#n(n){let e={};for(let t in n)e[`--${t}`]=n[t];return e}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=G({type:i,selectors:[["app-advanced-options-settings"]],viewQuery:function(e,t){e&1&&Tt(t.formRef,Xt,5),e&2&&ft()},features:[Ct([ye])],decls:20,vars:6,consts:()=>{let n;n=$localize` Advanced options ${"\uFFFD#5\uFFFD"}:START_TAG_SPK_MENU:${"\uFFFD#6\uFFFD"}:START_TAG_BUTTON: Add advanced option ${"\uFFFD#7\uFFFD"}:START_TAG_SPK_ICON:plus${"\uFFFD/#7\uFFFD"}:CLOSE_TAG_SPK_ICON:${"[\uFFFD/#6\uFFFD|\uFFFD/#1:1\uFFFD]"}:CLOSE_TAG_BUTTON:${"\uFFFD#8\uFFFD"}:START_TAG_NG_CONTAINER:${"\uFFFD*10:1\uFFFD"}:START_BLOCK_FOR:${"\uFFFD#1:1\uFFFD"}:START_TAG_BUTTON_1:${"\uFFFD0:1\uFFFD"}:INTERPOLATION:${"[\uFFFD/#6\uFFFD|\uFFFD/#1:1\uFFFD]"}:CLOSE_TAG_BUTTON:${"\uFFFD/*10:1\uFFFD"}:CLOSE_BLOCK_FOR:${"\uFFFD/#8\uFFFD"}:CLOSE_TAG_NG_CONTAINER:${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_MENU:`,n=ne(n);let e;e=$localize`${"\uFFFD#19\uFFFD"}:START_TAG_SPK_ICON:floppy-disk${"\uFFFD/#19\uFFFD"}:CLOSE_TAG_SPK_ICON: Save `;let t;return t=$localize`Select an option...`,[["formRef",""],["fieldTemplate",""],["option",""],["enumOptionTemplate",""],["optionTemplate",""],n,e,[3,"submit","formGroup"],[3,"disallowToggle"],["title",""],[3,"searchable"],["spk-button","","type","button",1,"outlined","small"],["menu",""],["type","button"],[1,"form-actions"],["spk-button","","type","submit",1,"raised","primary"],["type","button",3,"click"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"field-row"],[3,"formGroupName"],[3,"startingPath","accepts","showFiles","showHiddenNodes","selectFiles"],[3,"startingPath"],[1,"form-column",3,"formGroupName"],[1,"primary","raised"],["spk-button","","type","button",1,"outlined",3,"click"],[3,"for"],[1,"primary",3,"message"],["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"],[3,"options","isClearable","optionTemplate"],[1,"form-row"],["type","number","formControlName","size",3,"id"],["placeholder",t,3,"options","inlineSearch"],["type","text","formControlName","unit"],["type","number",3,"id","formControlName"],["type","checkbox",3,"id","formControlName"],[1,"primary","raised",3,"options","selectMultiple","optionTemplate"],["type","text","id","text",3,"formControlName"]]},template:function(e,t){if(e&1){let a=O();s(0,"form",7,0),S("submit",function(){return C(a),E(t.submit())}),s(2,"app-toggle-card",8),ee(3,9),w(4,5),s(5,"spk-menu",10)(6,"button",11),f(7,"spk-icon"),o(),ee(8,12),Pe(9,qt,3,1,"button",13,he),te(),o(),$(),te(),u(11,Kt,2,0),ut(12,11,zt),o(),u(14,Mn,15,2,"ng-template",null,1,se),s(16,"div",14)(17,"button",15),w(18,6),f(19,"spk-icon"),$(),o()()()}e&2&&(d("formGroup",t.optionsForm),r(2),d("disallowToggle",!0),r(3),d("searchable",!0),r(4),Ie(t.nonSelectedOptions()),r(3),St(!t.isLoadingOptions()),r(5),P("loader",t.isSubmitting()))},dependencies:[Se,_e,V,Pt,ht,X,re,pe,me,ce,Ft,Te,ge,z,Ce,Ee,fe,xt,bt],styles:["[_nghost-%COMP%]{display:block;width:100%;max-width:40.625rem;justify-self:flex-end}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.form-column[_ngcontent-%COMP%]{display:flex;flex-direction:column}.form-column[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem}.form-column[_ngcontent-%COMP%] spk-icon[_ngcontent-%COMP%]{font-size:1rem}.field-row[_ngcontent-%COMP%]{display:grid;align-items:flex-end;grid-template-columns:1fr 2.5rem;gap:.5rem}.form-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:3fr 1fr;gap:.5rem;align-items:flex-end}.form-wrap[_ngcontent-%COMP%]{display:grid;grid-template-columns:2fr 2.5rem;gap:.5rem;align-items:flex-end}.remote-volume-wrap[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem}.remote-volume-wrap[_ngcontent-%COMP%] p.warning[_ngcontent-%COMP%]{color:#7d7d00}.row-inputs[_ngcontent-%COMP%]{display:flex;align-items:flex-end;gap:.5rem}.row-inputs[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{flex:1 0}.advanced-option[_ngcontent-%COMP%]{display:grid;gap:.5rem;grid-template-columns:1fr 1fr 40px;align-items:flex-end}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"],changeDetection:0})};var B=class i{#e=N(A);#i=N(ae);repeatRegisterTimer=null;state=g("unknown");claimUrl=g(null);registerUrl=g("");status=D(()=>{let n=this.state();return n==="enabled"?"Remote control is enabled but not connected":n==="connected"?"Remote control is connected":n==="registering"?"Registering machine...":n==="registeringfaulted"?"Registration failed":n==="registered"?"Registered, waiting for accept":n==="disabled"?"Remote control is configured but not enabled":n==="unknown"?"...loading...":"Remote control is not set up"});sysInfoEffect=L(()=>{let n=this.#i.systemInfo();n&&this.registerUrl.set(n.RemoteControlRegistrationUrl??"")});#t(n){n.RegistrationUrl&&this.claimUrl.set(n.RegistrationUrl),n.IsConnected?this.state.set("connected"):n.IsEnabled?this.state.set("enabled"):n.CanEnable?this.state.set("disabled"):n.IsRegisteringFaulted?this.state.set("registeringfaulted"):n.IsRegistering?n.RegistrationUrl!=null&&n.RegistrationUrl.trim().length>0?this.state.set("registered"):this.state.set("registering"):this.state.set("inactive");let e=this.state();this.repeatRegisterTimer!==null&&(clearTimeout(this.repeatRegisterTimer),this.repeatRegisterTimer=null),e==="registering"&&(this.repeatRegisterTimer=setTimeout(()=>{this.#e.postApiV1RemotecontrolRegister({requestBody:{RegistrationUrl:""}}).subscribe({next:t=>this.#t(t),error:t=>this.#n(t)})},5e3)),(e==="enabled"||e==="registered")&&(this.repeatRegisterTimer=setTimeout(()=>{this.#e.getApiV1RemotecontrolStatus().subscribe({next:t=>this.#t(t),error:t=>this.#n(t)})},5e3)),n.IsRegistering&&n.CanEnable&&this.#e.deleteApiV1RemotecontrolRegister().subscribe({next:t=>this.#t(t)})}#n(n){this.#e.getApiV1RemotecontrolStatus().subscribe({next:e=>this.#t(e)})}refreshRemoteControlStatus(){this.#e.getApiV1RemotecontrolStatus().subscribe({next:n=>this.#t(n),error:n=>this.#n(n)})}beginRemoteRegistration(){this.state.set("registering"),this.#e.postApiV1RemotecontrolRegister({requestBody:{RegistrationUrl:this.registerUrl()}}).subscribe({next:n=>this.#t(n),error:n=>this.#n(n)})}cancelRemoteRegistration(){this.#e.deleteApiV1RemotecontrolRegister().subscribe({next:n=>this.#t(n),error:n=>this.#n(n)})}enableRemoteControl(){this.#e.postApiV1RemotecontrolEnable().subscribe({next:n=>this.#t(n),error:n=>this.#n(n)})}disableRemoteControl(){this.#e.postApiV1RemotecontrolDisable().subscribe({next:n=>this.#t(n),error:n=>this.#n(n)})}deleteRemoteControl(){let n=this;confirm("Are you sure you want to delete the remote control registration?")&&n.#e.deleteApiV1RemotecontrolRegistration().subscribe({next:e=>n.#t(e),error:e=>n.#n(e)})}static \u0275fac=function(e){return new(e||i)};static \u0275prov=Y({token:i,factory:i.\u0275fac,providedIn:"root"})};function Pn(i,n){if(i&1){let e=O();s(0,"spk-form-field",10)(1,"input",11),k("ngModelChange",function(a){C(e);let m=l(2);return b(m.registerUrl,a)||(m.registerUrl=a),E(a)}),o()(),s(2,"button",12),S("click",function(){C(e);let a=l(2);return E(a.register())}),_(3,0),o()}if(i&2){let e=l(2);r(),x("ngModel",e.registerUrl)}}function In(i,n){if(i&1&&(s(0,"div",8)(1,"label"),_(2,1),o(),s(3,"a",13),c(4),o()()),i&2){let e=l(2);r(3),y("href",e.claimUrl(),mt),r(),oe(e.claimUrl())}}function Rn(i,n){i&1&&(s(0,"div",8)(1,"label"),_(2,2),o()())}function yn(i,n){if(i&1){let e=O();s(0,"button",12),S("click",function(){C(e);let a=l(2);return E(a.cancel())}),_(1,3),o()}}function Fn(i,n){if(i&1){let e=O();s(0,"button",12),S("click",function(){C(e);let a=l(2);return E(a.disable())}),_(1,4),o()}}function vn(i,n){if(i&1){let e=O();s(0,"button",12),S("click",function(){C(e);let a=l(2);return E(a.enable())}),_(1,5),o(),s(2,"button",14),S("click",function(){C(e);let a=l(2);return E(a.delete())}),_(3,6),o()}}function An(i,n){if(i&1&&(s(0,"div",7),u(1,Pn,4,1)(2,In,5,2,"div",8)(3,Rn,3,0,"div",8)(4,yn,2,0,"button",9)(5,Fn,2,0,"button",9)(6,vn,4,0),o()),i&2){let e=l();r(),T(e.state()==="inactive"?1:-1),r(),T(e.state()==="registered"?2:-1),r(),T(e.state()==="registering"?3:-1),r(),T(e.state()==="registering"||e.state()==="registeringfaulted"||e.state()==="registered"?4:-1),r(),T(e.state()==="connected"||e.state()==="enabled"?5:-1),r(),T(e.state()==="disabled"?6:-1)}}var Me=class i{#e=N(B);state=this.#e.state;claimUrl=this.#e.claimUrl;registerUrl=this.#e.registerUrl;ngOnInit(){this.#e.refreshRemoteControlStatus()}cancel(){this.#e.cancelRemoteRegistration()}register(){this.#e.beginRemoteRegistration()}disable(){this.#e.disableRemoteControl()}enable(){this.#e.enableRemoteControl()}delete(){this.#e.deleteRemoteControl()}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=G({type:i,selectors:[["app-remote-control"]],decls:1,vars:1,consts:()=>{let n;n=$localize`Register for remote control`;let e;e=$localize`Machine is now registered, open this link to add it to your account:`;let t;t=$localize`Registering, please wait...`;let a;a=$localize`Cancel registration`;let m;m=$localize`Disable remote control`;let F;F=$localize`Enable remote control`;let I;return I=$localize`Delete remote control setup`,[n,e,t,a,m,F,I,[1,"field-row"],[1,"field-col"],["type","button","spk-button","",1,"raised"],["label","Registration URL","for","remoteControlRegisterUrl"],["type","text","spk-input","","id","remoteControlRegisterUrl","name","remoteControlRegisterUrl",3,"ngModelChange","ngModel"],["type","button","spk-button","",1,"raised",3,"click"],["target","_blank",3,"href"],["type","button","spk-button","",1,"raised","error",3,"click"]]},template:function(e,t){e&1&&u(0,An,7,6,"div",7),e&2&&T(t.state()!=="unknown"?0:-1)},dependencies:[ue,V,X,le,z],styles:["[_nghost-%COMP%]{display:block}[_nghost-%COMP%] button[_ngcontent-%COMP%]{white-space:nowrap}.field-row[_ngcontent-%COMP%]{display:flex;gap:.5rem;width:100%}.field-row[_ngcontent-%COMP%] spk-form-field[_ngcontent-%COMP%], .field-row[_ngcontent-%COMP%] spk-select[_ngcontent-%COMP%]{flex:1 0}"],changeDetection:0})};var Gn=()=>({standalone:!0});function wn(i,n){i&1&&(s(0,"spk-icon",73),c(1,"check"),o())}function $n(i,n){i&1&&(s(0,"spk-icon",74),c(1,"prohibit"),o())}function xn(i,n){if(i&1){let e=O();s(0,"button",78),S("click",function(){C(e);let a=l(2);return E(a.updatePassphrase())}),_(1,35),o()}if(i&2){let e=l(2);P("loader",e.isUpdating())}}function bn(i,n){if(i&1){let e=O();s(0,"spk-tooltip",77)(1,"button",79),S("click",function(){C(e);let a=l(2);return E(a.updatePassphrase())}),_(2,36),o()()}if(i&2){let e=l(2);r(),P("loader",e.isUpdating()),d("disabled",!0)}}function kn(i,n){if(i&1){let e=O();s(0,"spk-form-field")(1,"label",69),_(2,32),o(),s(3,"input",70),k("ngModelChange",function(a){C(e);let m=l();return b(m.passphrase,a)||(m.passphrase=a),E(a)}),o()(),s(4,"spk-form-field")(5,"label",71),_(6,33),o(),s(7,"input",72),k("ngModelChange",function(a){C(e);let m=l();return b(m.repeatPassphrase,a)||(m.repeatPassphrase=a),E(a)}),o(),u(8,wn,2,0,"spk-icon",73)(9,$n,2,0,"spk-icon",74),o(),s(10,"div",50)(11,"button",75),S("click",function(){C(e);let a=l();return E(a.cancelPasswordChange())}),_(12,34),o(),u(13,xn,2,2,"button",76)(14,bn,3,3,"spk-tooltip",77),o()}if(i&2){let e=l();r(3),x("ngModel",e.passphrase),r(4),d("disabled",e.passphrase().length===0),x("ngModel",e.repeatPassphrase),r(),T(e.passphrase().length!==0&&e.passphrase()===e.repeatPassphrase()?8:9),r(3),P("loader",e.isUpdating()),r(2),T(e.passphrase().length!==0&&e.passphrase()===e.repeatPassphrase()?13:14)}}function Dn(i,n){i&1&&(s(0,"spk-icon",80),c(1,"check"),o())}function Ln(i,n){if(i&1){let e=O();s(0,"div",50)(1,"button",75),S("click",function(){C(e);let a=l();return E(a.openPassphraseForm())}),_(2,37),o(),u(3,Dn,2,0,"spk-icon",80),o()}if(i&2){let e=l();r(3),T(e.passwordUpdated()?3:-1)}}function Vn(i,n){if(i&1){let e=O();s(0,"spk-form-field")(1,"label",81),_(2,38),o(),s(3,"textarea",82),k("ngModelChange",function(a){C(e);let m=l();return b(m.allowedHostnames,a)||(m.allowedHostnames=a),E(a)}),o()(),s(4,"spk-alert",83),_(5,39),o(),s(6,"button",78),S("click",function(){C(e);let a=l();return E(a.updateAllowedHostnames())}),_(7,40),o()}if(i&2){let e=l();r(3),x("ngModel",e.allowedHostnames),r(3),P("loader",e.updatingAllowedHosts())}}function Xn(i,n){if(i&1&&c(0),i&2){let e,t=l();h(" ",(e=t.sysinfo())==null?null:e.ServerVersion," ")}}function zn(i,n){i&1&&f(0,"spk-progress-bar",55)}function Un(i,n){if(i&1&&c(0),i&2){let e=n.$implicit;h(" ",e.label," ")}}function Bn(i,n){if(i&1&&c(0),i&2){let e=n.$implicit;h(" ",e.label," ")}}var Q=new de,Lt=[{value:"s",label:$localize`Seconds`},{value:"m",label:$localize`Minutes`},{value:"h",label:$localize`Hours`}],Vt=[{value:"",label:$localize`System default (information)`},{value:"information",label:$localize`Usage statistics, warnings, errors, and crashes`},{value:"warning",label:$localize`Warnings, errors and crashes`},{value:"error",label:$localize`Errors and crashes`},{value:"crash",label:$localize`Crashes only`},{value:"none",label:$localize`None / disabled`}],ve=class i{#e=N(wt);#i=N(ae);#t=N(A);#n=N(U);#a=N(B);#o=N(Mt);#s=this.#o.getItem("locale")??"en-US";sysinfo=this.#i.systemInfo;isDarkMode=this.#e.isDarkMode;editAs=g("list");previousLang=this.#s;langCtrl=g(this.#s);remoteControlStatus=this.#a.status;settingsForm=Q.group({pauseSettings:Q.group({time:Q.control(0),timeType:Q.control("s")}),usageStatistics:Q.control("")});updatingChannel=g(!1);updateChannel=g("");setNewChannel(n){let e=this.updateChannel();this.updateChannel.set(n),this.#t.patchApiV1Serversettings({requestBody:{"update-channel":n}}).pipe(this.#n.withRefresh(),v(()=>this.updatingChannel.set(!1)),H(()=>(this.updateChannel.set(e),q(null)))).subscribe()}allowRemoteAccess=g(!1);allowedHostnames=g("");loadedAllowedHostnames=g("");updatingRemoteAccess=g(!1);updatingAllowedHosts=g(!1);updateRemoteAccess(){let n=this.allowRemoteAccess(),e=!n;this.allowRemoteAccess.set(e),e||this.#t.patchApiV1Serversettings({requestBody:{"server-listen-interface":e?"any":"loopback"}}).pipe(this.#n.withRefresh(),v(()=>this.updatingRemoteAccess.set(!1)),H(()=>(this.allowRemoteAccess.set(n),q(null)))).subscribe()}updateAllowedHostnames(){let n=this.loadedAllowedHostnames(),e=this.allowedHostnames();this.updatingAllowedHosts.set(!0),this.#t.patchApiV1Serversettings({requestBody:{"server-listen-interface":"any","allowed-hostnames":e}}).pipe(this.#n.withRefresh(),v(()=>this.updatingAllowedHosts.set(!1)),H(()=>(this.allowedHostnames.set(n),q(null)))).subscribe()}updatingDisableTrayIconLogin=g(!1);disableTrayIconLogin=g(!1);saveDisableTrayIconLogin(){let n=this.disableTrayIconLogin(),e=!n;this.updatingDisableTrayIconLogin.set(!0),this.disableTrayIconLogin.set(e),this.#t.patchApiV1Serversettings({requestBody:{"disable-tray-icon-login":e?"True":"False"}}).pipe(this.#n.withRefresh(),v(()=>this.updatingDisableTrayIconLogin.set(!1)),H(()=>(this.disableTrayIconLogin.set(n),q(null)))).subscribe()}showPassphraseForm=g(!1);isUpdating=g(!1);passphrase=g("");repeatPassphrase=g("");passwordUpdated=g(!1);updatePassphrase(){this.passphrase()===this.repeatPassphrase()&&(this.isUpdating.set(!0),this.#t.patchApiV1Serversettings({requestBody:{"server-passphrase":this.passphrase()}}).pipe(this.#n.withRefresh(),v(()=>this.isUpdating.set(!1))).subscribe({next:()=>{this.showPassphraseForm.set(!1),this.passwordUpdated.set(!0),setTimeout(()=>{this.passwordUpdated.set(!1)},3e3)}}))}openPassphraseForm(){this.showPassphraseForm.set(!0)}cancelPasswordChange(){this.showPassphraseForm.set(!1)}get pauseSettings(){return this.settingsForm.controls.pauseSettings}languageOptions=g(Fe);usageStatisticsOptions=g(Vt);timeTypeOptions=g(Lt);timeTypeSignal=Ne(this.pauseSettings.controls.timeType.valueChanges);timeRange=D(()=>this.timeTypeSignal()==="h"?[0,24]:[0,60]);#r(n){let e=n==="h"?25:61;return new Array(e).fill(0).map((t,a)=>a)}updateLocale(n){let t=n[0]?.value??"";!t||t===""||t===this.previousLang||(this.#o.setItem("locale",t),window.location.reload())}submit(){let n=this.pauseSettings.value,e=`${n.time}${n.timeType}`;this.#t.patchApiV1Serversettings({requestBody:{"usage-reporter-level":this.settingsForm.controls.usageStatistics.value,"startup-delay":e==="0s"?"":e}}).pipe(this.#n.withRefresh()).subscribe()}serverSettingsEffect=L(()=>{let n=this.#n.serverSettings();if(n===void 0)return;let e=n["startup-delay"],t=e.slice(-1),a=e.slice(0,-1),m=["s","m","h"];this.disableTrayIconLogin.set(n["disable-tray-icon-login"]!=="False"),this.updateChannel.set(n["update-channel"]),this.allowRemoteAccess.set(n["server-listen-interface"]==="any"),this.allowedHostnames.set(n["allowed-hostnames"]),this.loadedAllowedHostnames.set(n["allowed-hostnames"]),console.log(n["usage-reporter-level"]),queueMicrotask(()=>{this.settingsForm.patchValue({pauseSettings:{time:parseInt(a==""?"0":a),timeType:m.includes(t)?t:"s"},usageStatistics:n["usage-reporter-level"]??""})})});languageDisplay(){let n=this;return()=>{let e=n.langCtrl();return e?Fe.find(t=>t.value===e)?.label??null:null}}typeDisplay(){let n=this;return()=>{let e=n.settingsForm.value.pauseSettings?.timeType;return e==null?null:Lt.find(t=>t.value===e)?.label??null}}usageDisplay(){let n=this;return()=>{let e=n.settingsForm.value.usageStatistics;return e==null?null:Vt.find(t=>t.value===e)?.label??null}}setDarkMode(){this.#e.setDarkMode()}setLightMode(){this.#e.setLightMode()}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=G({type:i,selectors:[["app-settings"]],decls:133,vars:39,consts:()=>{let n;n=$localize`Settings`;let e;e=$localize`Configure your backup settings.`;let t;t=$localize` Save changes `;let a;a=$localize`Remote access control`;let m;m=$localize`Color theme`;let F;F=$localize`Customize your application theme`;let I;I=$localize`Passwords`;let R;R=$localize`Change server passphrase`;let Z;Z=$localize`Language`;let Ae;Ae=$localize`Select a language for the platform`;let Ge;Ge=$localize`Allow remote access (requires restart)`;let we;we=$localize` By allowing remote access, the server listens to requests from any machine on your network. If you enable this option, make sure you are always using the computer on a secure firewall protected network. `;let $e;$e=$localize`Allow remote access`;let xe;xe=$localize`Prevent tray icon automatic log-in`;let be;be=$localize` By default, the tray icon will open the user interface with a token that unlocks the user interface. This ensures that you can access the user interface from the tray icon, while requiring others to enter a password. If you prefer having to type in the password, even when accessing the user interface from the tray icon, enable this option. `;let ke;ke=$localize`Prevent tray icon automatic log-in`;let De;De=$localize`Update channel`;let Le;Le=$localize` Default (${"\uFFFD0\uFFFD"}:INTERPOLATION:) `;let Ve;Ve=$localize`Same as the base install version: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let Xe;Xe=$localize`Stable`;let ze;ze=$localize`Official releases`;let Ue;Ue=$localize`Beta`;let Be;Be=$localize` Try out the new features that we are working on. Currently the most stable version available. Test Restore data before using this in production environments. `;let qe;qe=$localize` Experimental `;let He;He=$localize`Specific builds for developers only. Not for use with important data.`;let We;We=$localize`Canary`;let Ke;Ke=$localize`Individual builds for developers only. Not for use with important data.`;let je;je=$localize`Pause after startup or hibernation`;let Qe;Qe=$localize` Duplicati will run when started, but will remain in paused state for the duration. Duplicati will occupy minimal system resources and no backups will be run. `;let Ze;Ze=$localize`Usage statistics`;let J;J=$localize` Usage reports help us improve the user experience and evaluate impact of new features. We use them to generate ${"\uFFFD#121\uFFFD"}:START_LINK:public usage statistics.${"\uFFFD/#121\uFFFD"}:CLOSE_LINK:${"[\uFFFD#122\uFFFD\uFFFD/#122\uFFFD|\uFFFD#123\uFFFD\uFFFD/#123\uFFFD]"}:LINE_BREAK:${"[\uFFFD#122\uFFFD\uFFFD/#122\uFFFD|\uFFFD#123\uFFFD\uFFFD/#123\uFFFD]"}:LINE_BREAK: All usage reports are sent anonymously and do not contain any personal information. They contain information about hardware and operating system, the type of backend, backup duration, overall size of source data and similar data. They do not contain paths, filenames, usernames, passwords or similar sensitive information. `,J=ne(J);let Je;Je=$localize`Advanced options`;let Ye;Ye=$localize`Enter new password`;let et;et=$localize`Repeat password`;let tt;tt=$localize`Password have to be filled and have to match`;let nt;nt=$localize`Passphrase`;let it;it=$localize`Repeat passphrase`;let ot;ot=$localize`Cancel`;let st;st=$localize` Update passphrase `;let at;at=$localize` Update passphrase `;let rt;rt=$localize`Change password`;let lt;lt=$localize`Allowed hostnames`;let _t;_t=$localize` To prevent various DNS based attacks, Duplicati limits the allowed hostnames to the ones listed here. Direct IP access and localhost is always allowed. Multiple hostnames can be supplied with a semicolon separator. If any of the allowed hostnames is an asterisk (*), all hostnames are allowed and this feature is disabled. If the field is empty, only IP address and localhost access is allowed. `;let pt;return pt=$localize` Update allowed hostnames `,[n,e,t,a,m,F,I,R,Z,Ae,Ge,we,$e,xe,be,ke,De,Le,Ve,Xe,ze,Ue,Be,qe,He,We,Ke,je,Qe,Ze,J,Je,nt,it,ot,st,at,rt,lt,_t,pt,[1,"content"],[1,"title"],["type","submit","spk-button","",1,"raised","primary",3,"click","disabled"],[1,"left"],[1,"right"],[1,"themes"],["src","assets/images/light-theme.png","alt","light theme",3,"click"],["src","assets/images/dark-theme.png","alt","dark theme",3,"click"],[1,"right","passphrase-form"],[1,"actions"],["value","value","label","label",3,"selectedOptionsChange","options","isClearable","inlineSearch"],["type","text",3,"ngModel","ngModelOptions"],[1,"right","remote-access-form"],[1,"primary","raised",3,"click"],[1,"indeterminate","primary"],[1,"right","radios"],[1,"radio-option",3,"click"],[1,"primary","raised"],[1,"content",3,"submit","formGroup"],["formGroupName","pauseSettings",1,"field-row"],[1,"raised","primary",3,"unit"],["type","range","formControlName","time",3,"min","max"],["label","label","value","value",3,"options","isClearable"],["type","text","formControlName","timeType"],["href","#"],["label","label","value","value",3,"options"],["type","text","formControlName","usageStatistics"],[1,"advanced-settings"],["for","password"],["type","password","name","password","autocomplete","disabled","placeholder",Ye,"tabindex","1",3,"ngModelChange","ngModel"],["for","repeatPassword"],["type","password","name","repeatPassword","autocomplete","disabled","placeholder",et,"tabindex","2",3,"ngModelChange","disabled","ngModel"],["suffix","",1,"spk-success"],["suffix",""],["spk-button","",3,"click"],["spk-button","",1,"raised","primary",3,"loader"],["message",tt,1,"primary"],["spk-button","",1,"raised","primary",3,"click"],["spk-button","",1,"raised","primary",3,"click","disabled"],[1,"spk-success"],["for","allowedHostnames"],["type","text","id","allowedHostnames",3,"ngModelChange","ngModel"],["type","primary"]]},template:function(e,t){if(e&1&&(f(0,"app-status-bar"),s(1,"div",41)(2,"header")(3,"div",42)(4,"h2"),_(5,0),o(),s(6,"p"),_(7,1),o()(),s(8,"button",43),S("click",function(){return t.submit()}),_(9,2),o()(),s(10,"section")(11,"div",44)(12,"h3"),_(13,3),o(),s(14,"p"),c(15),o()(),s(16,"div",45),f(17,"app-remote-control"),o()(),s(18,"section")(19,"div",44)(20,"h3"),_(21,4),o(),s(22,"p"),_(23,5),o()(),s(24,"div",45)(25,"div",46)(26,"img",47),S("click",function(){return t.setLightMode()}),o(),s(27,"img",48),S("click",function(){return t.setDarkMode()}),o()()()(),s(28,"section")(29,"div",44)(30,"h3"),_(31,6),o(),s(32,"p"),_(33,7),o()(),s(34,"div",49),u(35,kn,15,7)(36,Ln,4,1,"div",50),o()(),s(37,"section")(38,"div",44)(39,"h3"),_(40,8),o(),s(41,"p"),_(42,9),o()(),s(43,"div",45)(44,"spk-select",51),S("selectedOptionsChange",function(m){return t.updateLocale(m)}),f(45,"input",52),o()()(),s(46,"section")(47,"div",44)(48,"h3"),_(49,10),o(),s(50,"p"),_(51,11),o()(),s(52,"div",53)(53,"spk-toggle",54),S("click",function(){return t.updateRemoteAccess()}),s(54,"label"),_(55,12),o()(),u(56,Vn,8,3),o()(),s(57,"section")(58,"div",44)(59,"h3"),_(60,13),o(),s(61,"p"),_(62,14),o()(),s(63,"div",45)(64,"spk-toggle",54),S("click",function(){return t.saveDisableTrayIconLogin()}),s(65,"label"),_(66,15),o()()()(),s(67,"section")(68,"div",44)(69,"h3"),_(70,16),o(),s(71,"p"),u(72,Xn,1,1),o(),u(73,zn,1,0,"spk-progress-bar",55),o(),s(74,"div",56)(75,"div",57),S("click",function(){return t.setNewChannel("")}),s(76,"spk-radio",58),_(77,17),o(),s(78,"p"),_(79,18),o()(),s(80,"div",57),S("click",function(){return t.setNewChannel("stable")}),s(81,"spk-radio",58),_(82,19),o(),s(83,"p"),_(84,20),o()(),s(85,"div",57),S("click",function(){return t.setNewChannel("beta")}),s(86,"spk-radio",58),_(87,21),o(),s(88,"p"),_(89,22),o()(),s(90,"div",57),S("click",function(){return t.setNewChannel("experimental")}),s(91,"spk-radio",58),_(92,23),o(),s(93,"p"),_(94,24),o()(),s(95,"div",57),S("click",function(){return t.setNewChannel("canary")}),s(96,"spk-radio",58),_(97,25),o(),s(98,"p"),_(99,26),o()()()()(),f(100,"spk-divider"),s(101,"form",59),S("submit",function(){return t.submit()}),s(102,"section")(103,"div",44)(104,"h3"),_(105,27),o(),s(106,"p"),_(107,28),o()(),s(108,"div",45)(109,"div",60)(110,"spk-range-slider",61),f(111,"input",62),o(),s(112,"spk-select",63),f(113,"input",64),u(114,Un,1,1,"ng-template"),o()()()(),s(115,"section")(116,"div",44)(117,"h3"),_(118,29),o(),s(119,"p"),w(120,30),f(121,"a",65)(122,"br")(123,"br"),$(),o()(),s(124,"div",45)(125,"spk-select",66),f(126,"input",67),u(127,Bn,1,1,"ng-template"),o()()(),s(128,"section")(129,"div",68)(130,"h3"),_(131,31),o(),f(132,"app-advanced-options-settings"),o()()()),e&2){let a,m,F,I;r(8),d("disabled",t.settingsForm.untouched),r(7),oe(t.remoteControlStatus()),r(11),P("active",!t.isDarkMode()),r(),P("active",t.isDarkMode()),r(8),T(t.showPassphraseForm()?35:36),r(9),d("options",t.languageOptions())("isClearable",!1)("inlineSearch",!0),r(),d("ngModel",t.langCtrl())("ngModelOptions",Et(38,Gn)),r(8),P("active",t.allowRemoteAccess()),r(3),T(t.allowRemoteAccess()?56:-1),r(8),P("active",t.disableTrayIconLogin()),r(8),T(t.updateChannel()!==""&&((a=t.sysinfo())!=null&&a.ServerVersion)?72:-1),r(),T(t.updatingChannel()?73:-1),r(3),P("active",t.updateChannel()===""),r(),W((m=t.sysinfo())==null?null:m.DefaultUpdateChannel),K(77),r(2),W((F=t.sysinfo())==null?null:F.ServerVersionType),K(79),r(2),P("active",t.updateChannel()==="stable"),r(5),P("active",t.updateChannel()==="beta"),r(5),P("active",t.updateChannel()==="experimental"),r(5),P("active",t.updateChannel()==="canary"),r(5),d("formGroup",t.settingsForm),r(9),d("unit",(I=t.timeTypeSignal())!==null&&I!==void 0?I:""),r(),d("min",t.timeRange()[0])("max",t.timeRange()[1]),r(),d("options",t.timeTypeOptions())("isClearable",!1),r(13),d("options",t.usageStatisticsOptions())}},dependencies:[ue,_e,V,It,X,re,le,Se,pe,me,ce,$t,Me,j,Te,At,Gt,vt,Ce,Ee,z,ge,yt,Rt,fe],styles:["[_nghost-%COMP%]{display:block}.content[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding:0 2rem 2rem}header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:2rem 0;position:sticky;top:0;background:var(--base-level-10);z-index:1000;border-bottom:1px solid var(--base-level-40)}header[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem}section[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding:2rem 0;border-top:1px solid var(--base-level-40)}section[_ngcontent-%COMP%]:first-of-type{border-top:0}section[_ngcontent-%COMP%] .left[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem;align-items:flex-start}section[_ngcontent-%COMP%] .left[_ngcontent-%COMP%] spk-button-group[_ngcontent-%COMP%]{margin-top:.25rem}section[_ngcontent-%COMP%] .left[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{text-wrap:balance;width:50%}.passphrase-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:1rem}.passphrase-form[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem}.remote-access-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.themes[_ngcontent-%COMP%]{display:flex;gap:.5rem}.themes[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-width:240px;border-radius:var(--shape-3);cursor:pointer}.themes[_ngcontent-%COMP%] img.active[_ngcontent-%COMP%]{border:2px solid var(--primary-500)}.radios[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.radio-option[_ngcontent-%COMP%]{cursor:pointer}.radio-option[_ngcontent-%COMP%] spk-radio[_ngcontent-%COMP%]{color:var(--base-level-60);margin-bottom:.25rem}.radio-option[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{text-wrap:balance;color:var(--base-level-60R)}.field-col[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.field-row[_ngcontent-%COMP%]{display:flex;gap:.5rem;width:100%}.field-row[_ngcontent-%COMP%] spk-form-field[_ngcontent-%COMP%], .field-row[_ngcontent-%COMP%] spk-select[_ngcontent-%COMP%]{flex:1 0}.advanced-settings[_ngcontent-%COMP%]{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr;gap:1rem}"],changeDetection:0})};export{ve as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a,b}from"./chunk-ADRBAA6V.js";import"./chunk-H5CQT7KP.js";import"./chunk-42RH3SEU.js";import"./chunk-I56L7YBT.js";import"./chunk-DXNCMAOT.js";import"./chunk-25A34CYL.js";import"./chunk-F7TB6D2I.js";import"./chunk-EMAOG2GJ.js";import"./chunk-CKZXQWC5.js";import"./chunk-KB4BCU6P.js";import"./chunk-BE77QZG7.js";import"./chunk-OXZWBTVI.js";import"./chunk-5ONOZUNN.js";import"./chunk-C6Q5SG76.js";export{a as createRestoreOptionsForm,b as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as pe}from"./chunk-KDCTRSPO.js";import{r as ue}from"./chunk-5OX72VKG.js";import{b as de}from"./chunk-UIOTKB6J.js";import{a as he,f as _e,l as fe,m as ge,o as me,w as Ce}from"./chunk-ZI4ZJIB3.js";import{ia as ce}from"./chunk-WYTHNCNI.js";import{Ab as h,Bb as te,C as V,Eb as X,Fb as I,Jc as A,Lc as R,Nb as W,Ob as ne,Pa as g,Pb as ie,Rb as k,Sb as p,Tb as oe,Ub as L,W as H,Wa as G,ba as N,bc as Q,ca as y,cb as J,cc as re,dc as K,ec as S,gc as se,hb as x,na as j,oa as E,qb as q,rb as Y,rc as $,sa as M,sb as T,sc as le,u as U,vb as O,xb as Z,xc as ae,yb as ee,zb as u}from"./chunk-ZSSQBIRK.js";import{a as D,b as B}from"./chunk-C6Q5SG76.js";var ve=["treeContainer"],Te=["formRef"],xe=[[["label"]],[["label"]],[["input"]]],be=["label","label","input"],Me=s=>({children:s,level:0}),Ee=s=>({$implicit:s}),Oe=(s,t)=>({children:s,level:t}),Se=(s,t)=>t.id;function we(s,t){if(s&1){let e=I();u(0,"spk-button-group")(1,"button",13),k("click",function(){N(e);let o=p();return y(o.pathDiscoveryMethod.set("browse"))}),W(2,4),h(),u(3,"button",13),k("click",function(){N(e);let o=p();return y(o.pathDiscoveryMethod.set("path"))}),W(4,5),h()()}if(s&2){let e=p();g(),T("active",e.pathDiscoveryMethod()==="browse"),g(2),T("active",e.pathDiscoveryMethod()==="path")}}function Fe(s,t){s&1&&te(0,"spk-progress-bar",9)}function Ne(s,t){s&1&&(u(0,"spk-icon",18),S(1,"caret-down"),h(),u(2,"spk-icon",16),S(3,"folder-open"),h())}function ye(s,t){s&1&&(u(0,"spk-icon"),S(1,"file"),h())}function ke(s,t){s&1&&(u(0,"spk-icon",18),S(1,"caret-right"),h(),u(2,"spk-icon",16),S(3,"folder"),h())}function Re(s,t){if(s&1&&x(0,Ne,4,0)(1,ye,2,0,"spk-icon")(2,ke,4,0),s&2){let e=p(2).$implicit;O(e.children.length?0:e.cls==="file"?1:2)}}function Ie(s,t){s&1&&(u(0,"spk-icon",16),S(1,"desktop-tower"),h())}function We(s,t){s&1&&X(0)}function Le(s,t){if(s&1&&x(0,We,1,0,"ng-container",10),s&2){let e=p(2).$implicit,n=p().$implicit;p();let o=K(7);q("ngTemplateOutlet",o)("ngTemplateOutletContext",$(5,Ee,le(2,Oe,e.children,n.level+1)))}}function $e(s,t){if(s&1){let e=I();u(0,"div",14,3),k("click",function(){N(e);let o=p().$implicit,i=p(2);return y(i.toggleNode(o.id,o))}),u(2,"div",15),x(3,Re,3,1)(4,Ie,2,0,"spk-icon",16),h(),u(5,"div",17),k("click",function(o){N(e);let i=p().$implicit,r=p(2);return y(r.toggleSelectedNode(o,i))}),S(6),h()(),x(7,Le,1,7,"ng-container")}if(s&2){let e=p().$implicit,n=p().$implicit,o=p();T("accepted",e.accepted===!0)("active",e.evalState===o.TreeEvalEnum.Included)("indeterminate",e.isIndeterminate)("open",e.children.length)("usually-hidden",e.hidden)("root",n.level===0),g(2),T("file",e.cls==="file"),g(),O(e.id!=="/"?3:4),g(3),se(" ",e.text," "),g(),O(e.children.length>0?7:-1)}}function Ae(s,t){if(s&1&&x(0,$e,8,17),s&2){let e=t.$implicit,n=p(2);O(e.hidden&&n._showHiddenNodes()||!e.hidden?0:-1)}}function De(s,t){if(s&1&&(u(0,"spk-list"),Z(1,Ae,1,1,null,null,Se),h()),s&2){let e=t.$implicit;Y("padding-left",e.level*.25,"rem"),g(),ee(e.children)}}function Be(s,t){s&1&&X(0)}function Ve(s,t){if(s&1){let e=I();u(0,"spk-toggle",19),k("click",function(){N(e);let o=p();return y(o._showHiddenNodes.set(!o._showHiddenNodes()))}),W(1,6),h()}if(s&2){let e=p();T("active",e._showHiddenNodes()),g(),ne(e.showFiles()?"files":"folders"),ie(1)}}var Pe=(i=>(i[i.ExcludedByParent=-2]="ExcludedByParent",i[i.Excluded=-1]="Excluded",i[i.None=0]="None",i[i.Included=1]="Included",i[i.IncludedByParent=2]="IncludedByParent",i))(Pe||{}),z=class s{#t=H(de);#r=H(pe);multiSelect=E(!1);disabled=E(!1);showFiles=E(!1);selectFiles=E(!1);accepts=E(null);startingPath=E(null);rootPath=E(void 0);backupSettings=E(null);pathRefreshTrigger=E(!1);showHiddenNodes=E(!1);hideShortcuts=E(!1);includes=j();excludes=j();_showHiddenNodes=M(!1);treeContainerRef=G("treeContainer");formRef=G("formRef");pathDiscoveryMethod=M("browse");isLoading=M(!1);currentPath=M("/");#e=M(null);treeSearchQuery=M("");treeNodes=M([]);filterGroups=this.#r.filterGroups();isByBackupSettings=A(()=>{let t=this.backupSettings();return!(t===void 0||t?.id===void 0||t?.time===void 0)});searchableTreeNodes=A(()=>{let t=this.treeSearchQuery();return t?this.treeNodes().filter(e=>e.text?.toLowerCase().includes(t.toLowerCase())):this.treeNodes()});TreeEvalEnum=Pe;treeStructure=A(()=>{let t=this.showHiddenNodes(),e=this.currentPath().split("\0").filter(c=>c!==""&&c!=="/"),n=structuredClone(e);for(let c=0;c<n.length;c++){let d=n[c].slice(1);if(d.startsWith("{")&&d.endsWith("}")){let m=d.slice(1,-1),f=this.filterGroups?.FilterGroups[m];if(f&&f.length){let P=f.map(v=>`-${v}`);n.splice(c,1,...P)}}}let o=this.searchableTreeNodes(),i=new Map,r=this.rootPath(),_=this.accepts(),l=r?{id:r,resolvedpath:r,text:r,parentPath:"",children:[],evalState:0,isIndeterminate:!1,cls:"folder"}:{id:"/",resolvedpath:"/",text:"Computer",parentPath:"",children:[],evalState:0,isIndeterminate:!1};_&&(l.accepted=!0),i.set("/",l);for(let c of o){let a=c.id.replace(r??"",""),m=a.includes("\\")?"\\":"/",f=a.split(m).filter(Boolean),P="",v=l;for(let C of f){if(P+="/"+C,!i.has(P)){let w=c.hidden===!0&&t?0:this.#s(n,c.id,c.cls,v),b={id:c.id,isIndeterminate:this.isIndeterminate(n,c.id),evalState:w,parentPath:P,resolvedpath:c.id?.startsWith("%")?c.resolvedpath+"/":P,hidden:c.hidden,text:c.text,cls:c.cls,children:[]};_&&(b.accepted=this.matchAccepts(_,b)),i.set(P,b),v.children.push(b)}v=i.get(P)}}return[l]});#s(t,e,n,o){if(o.evalState===-1)return-2;let i=0,r=t.filter(l=>!l.startsWith("-")&&!l.startsWith("+")),_=t.filter(l=>l.startsWith("-")||l.startsWith("+"));if(r.length===0)return i;for(let l=0;l<r.length;l++){let c=r[l];if(e?.startsWith(c)){i=1;break}}if(_.length===0)return i;for(let l=0;l<_.length;l++){let c=_[l],a=c.slice(1),d=c.startsWith("-")?"exclude":"include",m=e.includes("\\"),f=m?"\\":"/";if((m?a.slice(2):a).startsWith(f)&&a.endsWith(f)){if(n!=="folder")continue;if(e===a){i=d==="include"?1:-1;break}}if(a.startsWith("*")&&a.endsWith(`*${f}`)){if(n!=="folder")continue;let C=a.slice(1,-2);if(C==="")break;if(e?.includes(C+f)){i=d==="include"?1:-1;break}}if(a.startsWith("[.*")&&a.endsWith(`[^\\${f}]*]`)){if(n!=="file")continue;let C=a.slice(3,-7);if(new RegExp(C).test(e)){i=d==="include"?1:-1;break}}if(a.startsWith("[")&&a.endsWith("]")){let C=a.slice(1,-1),w=this.translateCSharpRegex(C);if(new RegExp(`${w}`).test(e)){i=d==="include"?1:-1;break}}if(a.startsWith("*.")){if(n!=="file"||a.replace("*.","").length===0)continue;if(this.#n(e,a,!0)){i=d==="include"?1:-1;break}}if(a==="")continue;if(a===e){i=d==="include"?1:-1;break}if(this.#n(e,a,!0)){i=d==="include"?1:-1;break}}return i}translateCSharpRegex(t){let e=t;e=e.replace(/^@/,"");let n=/\(\?<(?<name>\w+)>(?<pattern>[^)]+)\)/g;return e=e.replace(n,(o,i,r)=>`(${r})`),e=e.replace(/\\/g,"\\\\"),e}isIndeterminate(t,e){return t.some(n=>n.startsWith(e))}#n(t,e,n=!1){let o=e.replace(/\*/g,".*").replace(/\?/g,".").replace(/\[!([^\]]+)\]/g,"[^$1]");return new RegExp(`${o}${n?"$":""}`).test(t)}showHiddenNodesEffect=R(()=>this._showHiddenNodes.set(this.showHiddenNodes()));pathDiscoveryMethodEffect=R(()=>{let t=this.pathDiscoveryMethod(),e=this.#e();t==="browse"&&e&&this.currentPath.set(e.value)});matchAccepts(t,e){if(!t||e.cls==="folder"||e.id==="/")return!0;let n=t.split(",");if(n.length===0)return!0;let o="."+e.id.slice(e.id.indexOf("."));return o?n.some(i=>o.endsWith(i)):!1}currentPathEffect=R(()=>{let t=this.#e();t&&(t.value=this.currentPath(),t.dispatchEvent(new Event("input")))});inputValueChangeAbortController=null;inputRefEffect=R(()=>{let t=this.formRef()?.nativeElement?.querySelector("input");t&&(this.#a(t),this.inputValueChangeAbortController&&this.inputValueChangeAbortController.abort(),this.inputValueChangeAbortController=new AbortController,t.addEventListener("inputValueChanged",e=>{this.currentPath.set(e.detail.value)},{signal:this.inputValueChangeAbortController.signal}),this.#e.set(t),t.autocomplete="off")});ngOnInit(){let t=this.startingPath();t?(this.currentPath.set(t),this.#p(t)):this.#o(null,this.rootPath())}toggleSelectedNode(t,e){if(e.id==="/"||(t.stopPropagation(),e.evalState===-2))return;if(this.selectFiles()&&e.cls==="folder"){this.toggleNode(e.id,e);return}if(this.accepts()&&!e.accepted)return;let o=this.currentPath().split("\0").filter(r=>r!==""&&r!=="/"),i=this.isChildOfSelected(e)?`-${e.id}`:e.id;this.multiSelect()?o.includes(e.id)?this.currentPath.set(o.filter(r=>r!==e.id).join("\0")):o.some(r=>r.startsWith(i))?this.currentPath.set(o.filter(r=>r!==i).join("\0")):this.currentPath.set([...o,i].join("\0")):o.includes(e.id)?this.currentPath.set(o.filter(r=>r!==e.id).join("\0")):this.currentPath.set(e.id)}isChildOfSelected(t){return this.currentPath().split("\0").filter(n=>n!==""&&n!=="/").some(n=>t.id?.startsWith(n)||`-${t.id}`.startsWith(n))}toggleNode(t,e=null){e?.cls==="folder"&&(e?.children.length?this.treeNodes.update(n=>n.filter(o=>!o.id?.startsWith(e.id)||o.id===e.id)):this.#o(e,t))}#l(){setTimeout(()=>{let e=this.treeContainerRef()?.nativeElement?.querySelector(".active");e&&e.scrollIntoView({behavior:"smooth",block:"center"})},100)}#a(t){return Object.defineProperty(t,"value",{configurable:!0,get(){return Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value").get.call(this)},set(e){return Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value").set.call(this,e),this.dispatchEvent(new CustomEvent("inputValueChanged",{bubbles:!0,cancelable:!0,detail:{value:e}})),e}}),t}#c(t){return this.#t.postApiV1Filesystem({showHidden:!0,requestBody:{path:t},onlyFolders:!this.showFiles()})}#d(t){let e=this.backupSettings(),n={id:e.id+"",prefixOnly:!1,folderContents:!0,time:e.time,filter:t?"@"+t:void 0};return this.#t.getApiV1BackupByIdFiles(n)}#i(t){return this.isByBackupSettings()?this.#d(t):this.#c(t)}#p(t){let e=t.split("\0").filter(r=>r.startsWith("-")).map(r=>r.slice(1,-1)),n=t.split("\0").filter(r=>!r.startsWith("-")).filter(Boolean),o=n.map(r=>{let _=r.indexOf(":")===1;return r.split(_?"\\":"/").filter(l=>l.includes(".")?!1:l)}),i=[this.rootPath()??"/"];o.forEach(r=>{r.forEach((_,l)=>{let c=r[0].endsWith(":"),a=r.slice(0,l+1).join(c?"\\":"/"),d=a;d.indexOf(":")===-1&&!d.startsWith("%")&&(d="/"+a),i.includes(d)||i.push(d)})}),this.isLoading.set(!0),U([...i.map(r=>this.#i(r))]).pipe(V(()=>this.isLoading.set(!1))).subscribe({next:r=>{this.treeNodes.update(_=>{let l=r.flatMap(a=>a.map(d=>{let m=d.id,f=m&&m.split("/").filter(Boolean).slice(0,-1).join("/"),v="/"+(m&&m.split("/").filter(Boolean).join("/")),C=n.findIndex(F=>this.multiSelect()?v.startsWith(F):v===F)>-1,w=n.findIndex(F=>F===m)>-1,b=e.findIndex(F=>F===v)>-1;return B(D({},d),{parentPath:f.startsWith("%")?f:"/"+f,isSelected:C&&!b||w})})),c=[...new Map([..._,...l].map(a=>[a.resolvedpath??a.id,a])).values()];return this.#l(),c})}})}#o(t=null,e="/"){this.isLoading.set(!0),this.#i(e).pipe(V(()=>this.isLoading.set(!1))).subscribe({next:n=>{let o=this.isByBackupSettings()?n.Files.map(i=>({text:i.Path.split("/").filter(r=>r!=="").pop(),id:i.Path,cls:i.Path.endsWith("/")||i.Path.endsWith("\\")?"folder":"file",leaf:t!==null,resolvedpath:i.Path,hidden:!1})):n;this.treeNodes.update(i=>{let r=o.map(l=>{let c=l.id.startsWith("%")&&l.id.endsWith("%")||l.id.endsWith("/")||l.id.endsWith("\\")?"folder":"file";return B(D({},l),{cls:c,parentPath:e})}),_=[...new Map([...i,...r].map(l=>[l.resolvedpath??l.id,l])).values()];return this.hideShortcuts()?_.filter(l=>!l.id.startsWith("%")):_})}})}static \u0275fac=function(e){return new(e||s)};static \u0275cmp=J({type:s,selectors:[["app-file-tree"]],viewQuery:function(e,n){e&1&&(Q(n.treeContainerRef,ve,5),Q(n.formRef,Te,5)),e&2&&re(2)},hostVars:2,hostBindings:function(e,n){e&2&&T("disabled",n.disabled())},inputs:{multiSelect:[1,"multiSelect"],disabled:[1,"disabled"],showFiles:[1,"showFiles"],selectFiles:[1,"selectFiles"],accepts:[1,"accepts"],startingPath:[1,"startingPath"],rootPath:[1,"rootPath"],backupSettings:[1,"backupSettings"],pathRefreshTrigger:[1,"pathRefreshTrigger"],showHiddenNodes:[1,"showHiddenNodes"],hideShortcuts:[1,"hideShortcuts"]},outputs:{includes:"includes",excludes:"excludes"},ngContentSelectors:be,decls:15,vars:15,consts:()=>{let t;t=$localize` Browser path `;let e;e=$localize` Manually type path `;let n;return n=$localize` Show hidden ${"\uFFFD0\uFFFD"}:INTERPOLATION: `,[["treeContainer",""],["recursiveTree",""],["formRef",""],["treeNode",""],t,e,n,[1,"section"],[1,"browse-files"],[1,"indeterminate","primary"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"primary","raised","browse-files-toggle",3,"active"],[1,"form-field"],["type","button",3,"click"],["action","",3,"click"],[1,"icon"],[1,"spk-primary"],[1,"text",3,"click"],[1,"small"],[1,"primary","raised","browse-files-toggle",3,"click"]]},template:function(e,n){if(e&1&&(oe(xe),x(0,we,5,4,"spk-button-group"),u(1,"div",7),L(2,0,["ngProjectAs","label",5,["label"]]),u(3,"div",8,0),x(5,Fe,1,0,"spk-progress-bar",9)(6,De,3,2,"ng-template",null,1,ae)(8,Be,1,0,"ng-container",10),h(),x(9,Ve,2,3,"spk-toggle",11),h(),u(10,"div",12,2)(12,"spk-form-field"),L(13,1,["ngProjectAs","label",5,["label"]]),L(14,2,["ngProjectAs","input",5,["input"]]),h()()),e&2){let o=K(7);O(n.multiSelect()?-1:0),g(),T("hidden",n.pathDiscoveryMethod()!=="browse"),g(2),T("visualize-accepted",n.accepts()),g(2),O(n.isLoading()?5:-1),g(3),q("ngTemplateOutlet",o)("ngTemplateOutletContext",$(13,Ee,$(11,Me,n.treeStructure()))),g(),O(n.accepts()?-1:9),g(),T("hidden",n.pathDiscoveryMethod()!=="path")}},dependencies:[_e,Ce,he,fe,ge,me,ce,ue],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}.fill[_nghost-%COMP%]{height:auto;overflow:hidden;flex:1 0}.fill[_nghost-%COMP%] .section[_ngcontent-%COMP%]{height:auto;overflow:hidden;flex:1 0;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto 1fr;grid-template-areas:"label toggle" "tree tree"}.fill[_nghost-%COMP%] .browse-files[_ngcontent-%COMP%]{resize:none;height:initial;grid-area:tree}.fill[_nghost-%COMP%] label[_ngcontent-%COMP%]{grid-area:label}.fill[_nghost-%COMP%] spk-toggle[_ngcontent-%COMP%]{grid-area:toggle;flex-direction:row-reverse}.section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.form-field.hidden[_ngcontent-%COMP%]{display:none}.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;background:var(--base-level-10);position:relative}.browse-files[_ngcontent-%COMP%] spk-progress-bar[_ngcontent-%COMP%]{position:absolute;top:0;left:0;right:0}.browse-files.visualize-accepted[_ngcontent-%COMP%] [action][_ngcontent-%COMP%]:not(.accepted){opacity:.5}.browse-files.visualize-accepted[_ngcontent-%COMP%] [action].accepted[_ngcontent-%COMP%]{opacity:1}.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:0;border:1px solid transparent}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action].active[_ngcontent-%COMP%]{border-color:transparent;--list-active-bg: var(--primary-level-20)}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action].indeterminate[_ngcontent-%COMP%]{border-color:var(--primary-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].root[_ngcontent-%COMP%]{gap:.25rem}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action].root[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]:has(spk-icon:nth-child(2)){width:3rem}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action].root[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{width:1.5rem}.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:3rem;gap:.25rem;height:1.5rem;display:flex;align-items:center;justify-content:center;cursor:pointer}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action][_ngcontent-%COMP%] .icon.file[_ngcontent-%COMP%]{width:2rem;padding:0 .25rem}.browse-files-toggle[_ngcontent-%COMP%]{color:var(--base-level-60R)}.hidden[_ngcontent-%COMP%]{display:none}'],changeDetection:0})};export{z as a};
|
|
1
|
+
import{a as pe}from"./chunk-DXNCMAOT.js";import{r as ue}from"./chunk-25A34CYL.js";import{b as de}from"./chunk-F7TB6D2I.js";import{a as he,f as _e,l as fe,m as ge,o as me,w as Ce}from"./chunk-KB4BCU6P.js";import{ia as ce}from"./chunk-OXZWBTVI.js";import{Ab as u,Bb as h,Cb as te,D as V,Fb as X,Gb as I,Kc as A,Mc as R,Ob as W,Pb as ne,Qa as g,Qb as ie,Sb as k,Tb as p,Ub as oe,Vb as L,X as H,Xa as G,ca as N,cc as Q,da as y,db as J,dc as re,ec as K,fc as S,hc as se,ib as x,oa as j,pa as E,rb as q,sb as Y,sc as $,ta as M,tb as T,tc as le,v as U,wb as O,yb as Z,yc as ae,zb as ee}from"./chunk-5ONOZUNN.js";import{a as D,b as B}from"./chunk-C6Q5SG76.js";var ve=["treeContainer"],Te=["formRef"],xe=[[["label"]],[["label"]],[["input"]]],be=["label","label","input"],Me=s=>({children:s,level:0}),Ee=s=>({$implicit:s}),Oe=(s,t)=>({children:s,level:t}),Se=(s,t)=>t.id;function we(s,t){if(s&1){let e=I();u(0,"spk-button-group")(1,"button",13),k("click",function(){N(e);let o=p();return y(o.pathDiscoveryMethod.set("browse"))}),W(2,4),h(),u(3,"button",13),k("click",function(){N(e);let o=p();return y(o.pathDiscoveryMethod.set("path"))}),W(4,5),h()()}if(s&2){let e=p();g(),T("active",e.pathDiscoveryMethod()==="browse"),g(2),T("active",e.pathDiscoveryMethod()==="path")}}function Fe(s,t){s&1&&te(0,"spk-progress-bar",9)}function Ne(s,t){s&1&&(u(0,"spk-icon",18),S(1,"caret-down"),h(),u(2,"spk-icon",16),S(3,"folder-open"),h())}function ye(s,t){s&1&&(u(0,"spk-icon"),S(1,"file"),h())}function ke(s,t){s&1&&(u(0,"spk-icon",18),S(1,"caret-right"),h(),u(2,"spk-icon",16),S(3,"folder"),h())}function Re(s,t){if(s&1&&x(0,Ne,4,0)(1,ye,2,0,"spk-icon")(2,ke,4,0),s&2){let e=p(2).$implicit;O(e.children.length?0:e.cls==="file"?1:2)}}function Ie(s,t){s&1&&(u(0,"spk-icon",16),S(1,"desktop-tower"),h())}function We(s,t){s&1&&X(0)}function Le(s,t){if(s&1&&x(0,We,1,0,"ng-container",10),s&2){let e=p(2).$implicit,n=p().$implicit;p();let o=K(7);q("ngTemplateOutlet",o)("ngTemplateOutletContext",$(5,Ee,le(2,Oe,e.children,n.level+1)))}}function $e(s,t){if(s&1){let e=I();u(0,"div",14,3),k("click",function(){N(e);let o=p().$implicit,i=p(2);return y(i.toggleNode(o.id,o))}),u(2,"div",15),x(3,Re,3,1)(4,Ie,2,0,"spk-icon",16),h(),u(5,"div",17),k("click",function(o){N(e);let i=p().$implicit,r=p(2);return y(r.toggleSelectedNode(o,i))}),S(6),h()(),x(7,Le,1,7,"ng-container")}if(s&2){let e=p().$implicit,n=p().$implicit,o=p();T("accepted",e.accepted===!0)("active",e.evalState===o.TreeEvalEnum.Included)("indeterminate",e.isIndeterminate)("open",e.children.length)("usually-hidden",e.hidden)("root",n.level===0),g(2),T("file",e.cls==="file"),g(),O(e.id!=="/"?3:4),g(3),se(" ",e.text," "),g(),O(e.children.length>0?7:-1)}}function Ae(s,t){if(s&1&&x(0,$e,8,17),s&2){let e=t.$implicit,n=p(2);O(e.hidden&&n._showHiddenNodes()||!e.hidden?0:-1)}}function De(s,t){if(s&1&&(u(0,"spk-list"),Z(1,Ae,1,1,null,null,Se),h()),s&2){let e=t.$implicit;Y("padding-left",e.level*.25,"rem"),g(),ee(e.children)}}function Be(s,t){s&1&&X(0)}function Ve(s,t){if(s&1){let e=I();u(0,"spk-toggle",19),k("click",function(){N(e);let o=p();return y(o._showHiddenNodes.set(!o._showHiddenNodes()))}),W(1,6),h()}if(s&2){let e=p();T("active",e._showHiddenNodes()),g(),ne(e.showFiles()?"files":"folders"),ie(1)}}var Pe=(i=>(i[i.ExcludedByParent=-2]="ExcludedByParent",i[i.Excluded=-1]="Excluded",i[i.None=0]="None",i[i.Included=1]="Included",i[i.IncludedByParent=2]="IncludedByParent",i))(Pe||{}),z=class s{#t=H(de);#r=H(pe);multiSelect=E(!1);disabled=E(!1);showFiles=E(!1);selectFiles=E(!1);accepts=E(null);startingPath=E(null);rootPath=E(void 0);backupSettings=E(null);pathRefreshTrigger=E(!1);showHiddenNodes=E(!1);hideShortcuts=E(!1);includes=j();excludes=j();_showHiddenNodes=M(!1);treeContainerRef=G("treeContainer");formRef=G("formRef");pathDiscoveryMethod=M("browse");isLoading=M(!1);currentPath=M("/");#e=M(null);treeSearchQuery=M("");treeNodes=M([]);filterGroups=this.#r.filterGroups();isByBackupSettings=A(()=>{let t=this.backupSettings();return!(t===void 0||t?.id===void 0||t?.time===void 0)});searchableTreeNodes=A(()=>{let t=this.treeSearchQuery();return t?this.treeNodes().filter(e=>e.text?.toLowerCase().includes(t.toLowerCase())):this.treeNodes()});TreeEvalEnum=Pe;treeStructure=A(()=>{let t=this.showHiddenNodes(),e=this.currentPath().split("\0").filter(c=>c!==""&&c!=="/"),n=structuredClone(e);for(let c=0;c<n.length;c++){let d=n[c].slice(1);if(d.startsWith("{")&&d.endsWith("}")){let m=d.slice(1,-1),f=this.filterGroups?.FilterGroups[m];if(f&&f.length){let P=f.map(v=>`-${v}`);n.splice(c,1,...P)}}}let o=this.searchableTreeNodes(),i=new Map,r=this.rootPath(),_=this.accepts(),l=r?{id:r,resolvedpath:r,text:r,parentPath:"",children:[],evalState:0,isIndeterminate:!1,cls:"folder"}:{id:"/",resolvedpath:"/",text:"Computer",parentPath:"",children:[],evalState:0,isIndeterminate:!1};_&&(l.accepted=!0),i.set("/",l);for(let c of o){let a=c.id.replace(r??"",""),m=a.includes("\\")?"\\":"/",f=a.split(m).filter(Boolean),P="",v=l;for(let C of f){if(P+="/"+C,!i.has(P)){let w=c.hidden===!0&&t?0:this.#s(n,c.id,c.cls,v),b={id:c.id,isIndeterminate:this.isIndeterminate(n,c.id),evalState:w,parentPath:P,resolvedpath:c.id?.startsWith("%")?c.resolvedpath+"/":P,hidden:c.hidden,text:c.text,cls:c.cls,children:[]};_&&(b.accepted=this.matchAccepts(_,b)),i.set(P,b),v.children.push(b)}v=i.get(P)}}return[l]});#s(t,e,n,o){if(o.evalState===-1)return-2;let i=0,r=t.filter(l=>!l.startsWith("-")&&!l.startsWith("+")),_=t.filter(l=>l.startsWith("-")||l.startsWith("+"));if(r.length===0)return i;for(let l=0;l<r.length;l++){let c=r[l];if(e?.startsWith(c)){i=1;break}}if(_.length===0)return i;for(let l=0;l<_.length;l++){let c=_[l],a=c.slice(1),d=c.startsWith("-")?"exclude":"include",m=e.includes("\\"),f=m?"\\":"/";if((m?a.slice(2):a).startsWith(f)&&a.endsWith(f)){if(n!=="folder")continue;if(e===a){i=d==="include"?1:-1;break}}if(a.startsWith("*")&&a.endsWith(`*${f}`)){if(n!=="folder")continue;let C=a.slice(1,-2);if(C==="")break;if(e?.includes(C+f)){i=d==="include"?1:-1;break}}if(a.startsWith("[.*")&&a.endsWith(`[^\\${f}]*]`)){if(n!=="file")continue;let C=a.slice(3,-7);if(new RegExp(C).test(e)){i=d==="include"?1:-1;break}}if(a.startsWith("[")&&a.endsWith("]")){let C=a.slice(1,-1),w=this.translateCSharpRegex(C);if(new RegExp(`${w}`).test(e)){i=d==="include"?1:-1;break}}if(a.startsWith("*.")){if(n!=="file"||a.replace("*.","").length===0)continue;if(this.#n(e,a,!0)){i=d==="include"?1:-1;break}}if(a==="")continue;if(a===e){i=d==="include"?1:-1;break}if(this.#n(e,a,!0)){i=d==="include"?1:-1;break}}return i}translateCSharpRegex(t){let e=t;e=e.replace(/^@/,"");let n=/\(\?<(?<name>\w+)>(?<pattern>[^)]+)\)/g;return e=e.replace(n,(o,i,r)=>`(${r})`),e=e.replace(/\\/g,"\\\\"),e}isIndeterminate(t,e){return t.some(n=>n.startsWith(e))}#n(t,e,n=!1){let o=e.replace(/\*/g,".*").replace(/\?/g,".").replace(/\[!([^\]]+)\]/g,"[^$1]");return new RegExp(`${o}${n?"$":""}`).test(t)}showHiddenNodesEffect=R(()=>this._showHiddenNodes.set(this.showHiddenNodes()));pathDiscoveryMethodEffect=R(()=>{let t=this.pathDiscoveryMethod(),e=this.#e();t==="browse"&&e&&this.currentPath.set(e.value)});matchAccepts(t,e){if(!t||e.cls==="folder"||e.id==="/")return!0;let n=t.split(",");if(n.length===0)return!0;let o="."+e.id.slice(e.id.indexOf("."));return o?n.some(i=>o.endsWith(i)):!1}currentPathEffect=R(()=>{let t=this.#e();t&&(t.value=this.currentPath(),t.dispatchEvent(new Event("input")))});inputValueChangeAbortController=null;inputRefEffect=R(()=>{let t=this.formRef()?.nativeElement?.querySelector("input");t&&(this.#a(t),this.inputValueChangeAbortController&&this.inputValueChangeAbortController.abort(),this.inputValueChangeAbortController=new AbortController,t.addEventListener("inputValueChanged",e=>{this.currentPath.set(e.detail.value)},{signal:this.inputValueChangeAbortController.signal}),this.#e.set(t),t.autocomplete="off")});ngOnInit(){let t=this.startingPath();t?(this.currentPath.set(t),this.#p(t)):this.#o(null,this.rootPath())}toggleSelectedNode(t,e){if(e.id==="/"||(t.stopPropagation(),e.evalState===-2))return;if(this.selectFiles()&&e.cls==="folder"){this.toggleNode(e.id,e);return}if(this.accepts()&&!e.accepted)return;let o=this.currentPath().split("\0").filter(r=>r!==""&&r!=="/"),i=this.isChildOfSelected(e)?`-${e.id}`:e.id;this.multiSelect()?o.includes(e.id)?this.currentPath.set(o.filter(r=>r!==e.id).join("\0")):o.some(r=>r.startsWith(i))?this.currentPath.set(o.filter(r=>r!==i).join("\0")):this.currentPath.set([...o,i].join("\0")):o.includes(e.id)?this.currentPath.set(o.filter(r=>r!==e.id).join("\0")):this.currentPath.set(e.id)}isChildOfSelected(t){return this.currentPath().split("\0").filter(n=>n!==""&&n!=="/").some(n=>t.id?.startsWith(n)||`-${t.id}`.startsWith(n))}toggleNode(t,e=null){e?.cls==="folder"&&(e?.children.length?this.treeNodes.update(n=>n.filter(o=>!o.id?.startsWith(e.id)||o.id===e.id)):this.#o(e,t))}#l(){setTimeout(()=>{let e=this.treeContainerRef()?.nativeElement?.querySelector(".active");e&&e.scrollIntoView({behavior:"smooth",block:"center"})},100)}#a(t){return Object.defineProperty(t,"value",{configurable:!0,get(){return Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value").get.call(this)},set(e){return Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value").set.call(this,e),this.dispatchEvent(new CustomEvent("inputValueChanged",{bubbles:!0,cancelable:!0,detail:{value:e}})),e}}),t}#c(t){return this.#t.postApiV1Filesystem({showHidden:!0,requestBody:{path:t},onlyFolders:!this.showFiles()})}#d(t){let e=this.backupSettings(),n={id:e.id+"",prefixOnly:!1,folderContents:!0,time:e.time,filter:t?"@"+t:void 0};return this.#t.getApiV1BackupByIdFiles(n)}#i(t){return this.isByBackupSettings()?this.#d(t):this.#c(t)}#p(t){let e=t.split("\0").filter(r=>r.startsWith("-")).map(r=>r.slice(1,-1)),n=t.split("\0").filter(r=>!r.startsWith("-")).filter(Boolean),o=n.map(r=>{let _=r.indexOf(":")===1;return r.split(_?"\\":"/").filter(l=>l.includes(".")?!1:l)}),i=[this.rootPath()??"/"];o.forEach(r=>{r.forEach((_,l)=>{let c=r[0].endsWith(":"),a=r.slice(0,l+1).join(c?"\\":"/"),d=a;d.indexOf(":")===-1&&!d.startsWith("%")&&(d="/"+a),i.includes(d)||i.push(d)})}),this.isLoading.set(!0),U([...i.map(r=>this.#i(r))]).pipe(V(()=>this.isLoading.set(!1))).subscribe({next:r=>{this.treeNodes.update(_=>{let l=r.flatMap(a=>a.map(d=>{let m=d.id,f=m&&m.split("/").filter(Boolean).slice(0,-1).join("/"),v="/"+(m&&m.split("/").filter(Boolean).join("/")),C=n.findIndex(F=>this.multiSelect()?v.startsWith(F):v===F)>-1,w=n.findIndex(F=>F===m)>-1,b=e.findIndex(F=>F===v)>-1;return B(D({},d),{parentPath:f.startsWith("%")?f:"/"+f,isSelected:C&&!b||w})})),c=[...new Map([..._,...l].map(a=>[a.resolvedpath??a.id,a])).values()];return this.#l(),c})}})}#o(t=null,e="/"){this.isLoading.set(!0),this.#i(e).pipe(V(()=>this.isLoading.set(!1))).subscribe({next:n=>{let o=this.isByBackupSettings()?n.Files.map(i=>({text:i.Path.split("/").filter(r=>r!=="").pop(),id:i.Path,cls:i.Path.endsWith("/")||i.Path.endsWith("\\")?"folder":"file",leaf:t!==null,resolvedpath:i.Path,hidden:!1})):n;this.treeNodes.update(i=>{let r=o.map(l=>{let c=l.id.startsWith("%")&&l.id.endsWith("%")||l.id.endsWith("/")||l.id.endsWith("\\")?"folder":"file";return B(D({},l),{cls:c,parentPath:e})}),_=[...new Map([...i,...r].map(l=>[l.resolvedpath??l.id,l])).values()];return this.hideShortcuts()?_.filter(l=>!l.id.startsWith("%")):_})}})}static \u0275fac=function(e){return new(e||s)};static \u0275cmp=J({type:s,selectors:[["app-file-tree"]],viewQuery:function(e,n){e&1&&(Q(n.treeContainerRef,ve,5),Q(n.formRef,Te,5)),e&2&&re(2)},hostVars:2,hostBindings:function(e,n){e&2&&T("disabled",n.disabled())},inputs:{multiSelect:[1,"multiSelect"],disabled:[1,"disabled"],showFiles:[1,"showFiles"],selectFiles:[1,"selectFiles"],accepts:[1,"accepts"],startingPath:[1,"startingPath"],rootPath:[1,"rootPath"],backupSettings:[1,"backupSettings"],pathRefreshTrigger:[1,"pathRefreshTrigger"],showHiddenNodes:[1,"showHiddenNodes"],hideShortcuts:[1,"hideShortcuts"]},outputs:{includes:"includes",excludes:"excludes"},ngContentSelectors:be,decls:15,vars:15,consts:()=>{let t;t=$localize` Browser path `;let e;e=$localize` Manually type path `;let n;return n=$localize` Show hidden ${"\uFFFD0\uFFFD"}:INTERPOLATION: `,[["treeContainer",""],["recursiveTree",""],["formRef",""],["treeNode",""],t,e,n,[1,"section"],[1,"browse-files"],[1,"indeterminate","primary"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"primary","raised","browse-files-toggle",3,"active"],[1,"form-field"],["type","button",3,"click"],["action","",3,"click"],[1,"icon"],[1,"spk-primary"],[1,"text",3,"click"],[1,"small"],[1,"primary","raised","browse-files-toggle",3,"click"]]},template:function(e,n){if(e&1&&(oe(xe),x(0,we,5,4,"spk-button-group"),u(1,"div",7),L(2,0,["ngProjectAs","label",5,["label"]]),u(3,"div",8,0),x(5,Fe,1,0,"spk-progress-bar",9)(6,De,3,2,"ng-template",null,1,ae)(8,Be,1,0,"ng-container",10),h(),x(9,Ve,2,3,"spk-toggle",11),h(),u(10,"div",12,2)(12,"spk-form-field"),L(13,1,["ngProjectAs","label",5,["label"]]),L(14,2,["ngProjectAs","input",5,["input"]]),h()()),e&2){let o=K(7);O(n.multiSelect()?-1:0),g(),T("hidden",n.pathDiscoveryMethod()!=="browse"),g(2),T("visualize-accepted",n.accepts()),g(2),O(n.isLoading()?5:-1),g(3),q("ngTemplateOutlet",o)("ngTemplateOutletContext",$(13,Ee,$(11,Me,n.treeStructure()))),g(),O(n.accepts()?-1:9),g(),T("hidden",n.pathDiscoveryMethod()!=="path")}},dependencies:[_e,Ce,he,fe,ge,me,ce,ue],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}.fill[_nghost-%COMP%]{height:auto;overflow:hidden;flex:1 0}.fill[_nghost-%COMP%] .section[_ngcontent-%COMP%]{height:auto;overflow:hidden;flex:1 0;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto 1fr;grid-template-areas:"label toggle" "tree tree"}.fill[_nghost-%COMP%] .browse-files[_ngcontent-%COMP%]{resize:none;height:initial;grid-area:tree}.fill[_nghost-%COMP%] label[_ngcontent-%COMP%]{grid-area:label}.fill[_nghost-%COMP%] spk-toggle[_ngcontent-%COMP%]{grid-area:toggle;flex-direction:row-reverse}.section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.form-field.hidden[_ngcontent-%COMP%]{display:none}.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;background:var(--base-level-10);position:relative}.browse-files[_ngcontent-%COMP%] spk-progress-bar[_ngcontent-%COMP%]{position:absolute;top:0;left:0;right:0}.browse-files.visualize-accepted[_ngcontent-%COMP%] [action][_ngcontent-%COMP%]:not(.accepted){opacity:.5}.browse-files.visualize-accepted[_ngcontent-%COMP%] [action].accepted[_ngcontent-%COMP%]{opacity:1}.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:0;border:1px solid transparent}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action].active[_ngcontent-%COMP%]{border-color:transparent;--list-active-bg: var(--primary-level-20)}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action].indeterminate[_ngcontent-%COMP%]{border-color:var(--primary-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].root[_ngcontent-%COMP%]{gap:.25rem}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action].root[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]:has(spk-icon:nth-child(2)){width:3rem}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action].root[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{width:1.5rem}.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:3rem;gap:.25rem;height:1.5rem;display:flex;align-items:center;justify-content:center;cursor:pointer}.browse-files[_ngcontent-%COMP%] spk-list[_ngcontent-%COMP%] [action][_ngcontent-%COMP%] .icon.file[_ngcontent-%COMP%]{width:2rem;padding:0 .25rem}.browse-files-toggle[_ngcontent-%COMP%]{color:var(--base-level-60R)}.hidden[_ngcontent-%COMP%]{display:none}'],changeDetection:0})};export{z as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{C as y,Kc as m,M as p,Nc as w,O as c,X as g,aa as i,g as v,ia as a,ta as l}from"./chunk-5ONOZUNN.js";import{a as b,b as f}from"./chunk-C6Q5SG76.js";function h(r,e){let t=!e?.manualCleanup;t&&!e?.injector&&i(h);let u=t?e?.injector?.get(a)??g(a):null,s=k(e?.equal),o;e?.requireSync?o=l({kind:0},{equal:s}):o=l({kind:1,value:e?.initialValue},{equal:s});let d=r.subscribe({next:n=>o.set({kind:1,value:n}),error:n=>{if(e?.rejectErrors)throw n;o.set({kind:2,error:n})}});if(e?.requireSync&&o().kind===0)throw new c(601,!1);return u?.onDestroy(d.unsubscribe.bind(d)),m(()=>{let n=o();switch(n.kind){case 1:return n.value;case 2:throw n.error;case 0:throw new c(601,!1)}},{equal:e?.equal})}function k(r=Object.is){return(e,t)=>e.kind===1&&t.kind===1&&r(e.value,t.value)}function x(r){return r?.injector||i(x),w(f(b({},r),{loader:e=>{let t=new v;return e.abortSignal.addEventListener("abort",()=>t.next()),new Promise((u,s)=>{r.loader(e).pipe(y(1),p(t)).subscribe({next:u,error:s,complete:()=>s(new Error("Resource completed before producing a value"))})})}}))}export{h as a,x as b};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as $}from"./chunk-
|
|
1
|
+
import{a as $}from"./chunk-I56L7YBT.js";import{a as R}from"./chunk-CMCJ4PJ3.js";import"./chunk-3CWO2EV5.js";import"./chunk-3NUWESLC.js";import"./chunk-IWMMFNSQ.js";import"./chunk-B27FY76R.js";import"./chunk-25A34CYL.js";import"./chunk-EEWVYRVF.js";import{b as k}from"./chunk-F7TB6D2I.js";import{a as A,d as N}from"./chunk-EMAOG2GJ.js";import"./chunk-CKZXQWC5.js";import{a as B,g as O}from"./chunk-KB4BCU6P.js";import"./chunk-BE77QZG7.js";import"./chunk-OXZWBTVI.js";import"./chunk-KB62MNQB.js";import{Ab as F,Bb as a,Cb as r,Kc as M,Mb as _,Nb as c,Ob as u,Qa as i,Rb as T,Sb as I,X as m,db as C,fc as E,hc as L,ib as p,ta as l,wb as s,xb as f,yb as S,zb as g}from"./chunk-5ONOZUNN.js";import"./chunk-C6Q5SG76.js";function b(e,t){e&1&&u(0,2,1)}function P(e,t){e&1&&u(0,2,2)}function h(e,t){e&1&&u(0,2,3)}function v(e,t){e&1&&u(0,2,4)}function U(e,t){if(e&1&&(E(0),r(1,"br")),e&2){let n=t.$implicit;L(" ",n," ")}}var D=class e{#t=m(k);#e=m(A);#n=$(this.#e.params);runId=M(()=>this.#n()?.runId);offset=l(0);status=l("starting");messageLog=l([]);interval=setInterval(()=>{this.#t.getApiV1CommandlineByRunid({runid:this.runId(),offset:this.offset(),pagesize:100}).subscribe(t=>{this.offset.set(t.Count),this.evalStatus(t),this.messageLog.update(n=>[...n,...t.Items])})},1e3);evalStatus(t){t.Started===!0&&t.Finished===!0&&(this.status.set("finished"),clearInterval(this.interval)),t.Started===!0&&t.Finished===!1&&this.status.set("started")}abort(){this.#t.postApiV1CommandlineByRunidAbort({runid:this.runId()}).subscribe({next:t=>{this.status.set("aborted"),clearInterval(this.interval)}})}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=C({type:e,selectors:[["app-commandline-result"]],decls:18,vars:4,consts:()=>{let t;t=$localize`${"\uFFFD#5\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_ICON: Back `;let n;n=$localize` Running commandline task... ${"\uFFFD#8\uFFFD"}:START_TAG_BUTTON:Abort${"\uFFFD/#8\uFFFD"}:CLOSE_TAG_BUTTON:`;let o;return o=$localize`${"\uFFFD*11:1\uFFFD"}:START_BLOCK_IF: Starting... ${"[\uFFFD/*11:1\uFFFD|\uFFFD/*12:2\uFFFD|\uFFFD/*13:3\uFFFD|\uFFFD/*14:4\uFFFD]"}:CLOSE_BLOCK_IF:${"\uFFFD*12:2\uFFFD"}:START_BLOCK_IF_1: Started! ${"[\uFFFD/*11:1\uFFFD|\uFFFD/*12:2\uFFFD|\uFFFD/*13:3\uFFFD|\uFFFD/*14:4\uFFFD]"}:CLOSE_BLOCK_IF:${"\uFFFD*13:3\uFFFD"}:START_BLOCK_IF_2: Finished! ${"[\uFFFD/*11:1\uFFFD|\uFFFD/*12:2\uFFFD|\uFFFD/*13:3\uFFFD|\uFFFD/*14:4\uFFFD]"}:CLOSE_BLOCK_IF:${"\uFFFD*14:4\uFFFD"}:START_BLOCK_IF_3: Aborted! ${"[\uFFFD/*11:1\uFFFD|\uFFFD/*12:2\uFFFD|\uFFFD/*13:3\uFFFD|\uFFFD/*14:4\uFFFD]"}:CLOSE_BLOCK_IF:`,o=T(o),[t,n,o,[1,"back"],["type","button","spk-button","","routerLink","/",1,"small"],["type","button","spk-button","",1,"small",3,"click"],[1,"status"]]},template:function(n,o){n&1&&(r(0,"app-status-bar"),F(1,"section")(2,"div",3)(3,"button",4),_(4,0),r(5,"spk-icon"),c(),a()(),F(6,"h3"),_(7,1),F(8,"button",5),I("click",function(){return o.abort()}),a(),c(),a(),F(9,"div",6),_(10,2),p(11,b,1,0)(12,P,1,0)(13,h,1,0)(14,v,1,0),c(),a(),F(15,"code"),S(16,U,2,1,null,null,f),a()()),n&2&&(i(11),s(o.status()==="starting"?11:-1),i(),s(o.status()==="started"?12:-1),i(),s(o.status()==="finished"?13:-1),i(),s(o.status()==="aborted"?14:-1),i(2),g(o.messageLog()))},dependencies:[R,B,O,N],styles:["[_nghost-%COMP%]{display:block}section[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%;padding:2.5rem;gap:1.25rem}code[_ngcontent-%COMP%]{background-color:var(--grey-800);color:var(--grey-100);padding:2.5rem 2.5rem 2.5rem 1.5rem;border-radius:var(--shape-3);overflow:auto;white-space:pre}"],changeDetection:0})};export{D as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as ae}from"./chunk-
|
|
1
|
+
import{a as ae}from"./chunk-I56L7YBT.js";import{a as te}from"./chunk-CMCJ4PJ3.js";import"./chunk-3CWO2EV5.js";import"./chunk-3NUWESLC.js";import"./chunk-IWMMFNSQ.js";import{a as j}from"./chunk-B27FY76R.js";import{b as H,d as J,g as Q,r as Y}from"./chunk-25A34CYL.js";import"./chunk-EEWVYRVF.js";import{b as W}from"./chunk-F7TB6D2I.js";import{a as z,d as q}from"./chunk-EMAOG2GJ.js";import"./chunk-CKZXQWC5.js";import{a as Z,g as x,l as ee}from"./chunk-KB4BCU6P.js";import"./chunk-BE77QZG7.js";import"./chunk-OXZWBTVI.js";import"./chunk-KB62MNQB.js";import{Ab as i,Bb as a,C as g,Cb as l,D as u,Kc as C,L as k,Mb as r,Mc as h,Nb as p,Ob as T,Pb as L,Qa as s,Qb as U,Sb as A,X as D,db as y,fc as E,ib as v,kc as w,lc as X,mc as V,p as O,rb as F,ta as c,tb as P,vb as G,wb as K}from"./chunk-5ONOZUNN.js";import"./chunk-C6Q5SG76.js";function ie(S,t){S&1&&(i(0,"spk-icon",18),E(1,"check"),a())}function ne(S,t){S&1&&(i(0,"spk-icon",18),E(1,"warning"),a())}var m=class S{#a=D(z);#i=D(j);#e=D(W);#t="";backupId=ae(this.#a.params.pipe(O(t=>t.id)));activeBackup=C(()=>{let t=this.#i.backups().find(_=>_.Backup?.ID===this.backupId());return this.#t=t?.Backup?.DBPath??"",t});backupFilePath=c("");lastValidatedPath=c("");isValidatedPath=C(()=>this.lastValidatedPath()===this.backupFilePath());backupFilePathEffect=h(()=>{let t=this.backupFilePath();t!==""&&this.#e.postApiV1FilesystemValidate({requestBody:{path:t}}).subscribe({next:()=>this.lastValidatedPath.set(t)})});isRestoring=c(!1);isRepairing=c(!1);isDeleting=c(!1);isSavingDbPath=c(!1);isSavingAndRepairing=c(!1);isMovingDb=c(!1);activeBackupEffect=h(()=>{let t=this.activeBackup();if(!t)return;let _=t.Backup?.DBPath??"";this.backupFilePath.set(_)});repairDatabase(){this.isRepairing.set(!0),this.#e.postApiV1BackupByIdRepair({id:this.backupId()}).pipe(g(1),u(()=>this.isRepairing.set(!1))).subscribe()}deleteDatabase(){this.isDeleting.set(!0),this.#e.postApiV1BackupByIdDeletedb({id:this.backupId()}).pipe(g(1),u(()=>this.isDeleting.set(!1))).subscribe()}restoreDatabase(){this.isRestoring.set(!0),this.#e.postApiV1BackupByIdDeletedb({id:this.backupId()}).pipe(g(1),k(()=>this.#e.postApiV1BackupByIdRepair({id:this.backupId()})),u(()=>this.isRestoring.set(!1))).subscribe()}resetDatabasePath(){this.backupFilePath.set(this.#t)}saveDatabasePath(){this.isSavingDbPath.set(!0),this.#e.postApiV1BackupByIdUpdatedb({id:this.backupId(),requestBody:{path:this.backupFilePath()}}).pipe(u(()=>this.isSavingDbPath.set(!1))).subscribe()}saveAndRepairDatabasePath(){this.isSavingAndRepairing.set(!0),this.#e.postApiV1BackupByIdUpdatedb({id:this.backupId(),requestBody:{path:this.backupFilePath()}}).pipe(k(()=>this.#e.postApiV1BackupByIdRepair({id:this.backupId()})),u(()=>this.isSavingAndRepairing.set(!1)))}moveDatabasePath(){this.isMovingDb.set(!0),this.#e.postApiV1BackupByIdMovedb({id:this.backupId(),requestBody:{path:this.backupFilePath()}}).pipe(u(()=>this.isMovingDb.set(!1))).subscribe()}static \u0275fac=function(_){return new(_||S)};static \u0275cmp=y({type:S,selectors:[["app-database"]],decls:46,vars:15,consts:()=>{let t;t=$localize`${"\uFFFD#5\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_ICON: Back `;let _;_=$localize`Local database for ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let e;e=$localize` Each backup has a local database associated with it, which stores information about the remote backup on the local machine. This makes it faster to perform many operations, and reduces the amount of data that needs to be downloaded for each operation. `;let n;n=$localize`Maintainance`;let d;d=$localize` If the backup and the remote storage is out of sync, Duplicati will require that you perform a repair operation to synchronize the database. If the repair is unsuccessful, you can delete the local database and re-generate. `;let f;f=$localize`${"\uFFFD#19\uFFFD"}:START_TAG_SPK_ICON:wrench${"\uFFFD/#19\uFFFD"}:CLOSE_TAG_SPK_ICON: Repair `;let b;b=$localize`${"\uFFFD#22\uFFFD"}:START_TAG_SPK_ICON:trash${"\uFFFD/#22\uFFFD"}:CLOSE_TAG_SPK_ICON: Delete `;let B;B=$localize`${"\uFFFD#25\uFFFD"}:START_TAG_SPK_ICON:clock-counter-clockwise${"\uFFFD/#25\uFFFD"}:CLOSE_TAG_SPK_ICON: Restore (delete and repair) `;let I;I=$localize`Placement`;let M;M=$localize`${"\uFFFD#36\uFFFD"}:START_TAG_SPK_ICON:backspace${"\uFFFD/#36\uFFFD"}:CLOSE_TAG_SPK_ICON: Reset `;let N;N=$localize`${"\uFFFD#39\uFFFD"}:START_TAG_SPK_ICON:floppy-disk${"\uFFFD/#39\uFFFD"}:CLOSE_TAG_SPK_ICON: Save `;let $;$=$localize`${"\uFFFD#42\uFFFD"}:START_TAG_SPK_ICON:wrench${"\uFFFD/#42\uFFFD"}:CLOSE_TAG_SPK_ICON: Save & Repair `;let R;return R=$localize`${"\uFFFD#45\uFFFD"}:START_TAG_SPK_ICON:flow-arrow${"\uFFFD/#45\uFFFD"}:CLOSE_TAG_SPK_ICON: Move existing database `,[t,_,e,n,d,f,b,B,I,M,N,$,R,[1,"back"],["type","button","spk-button","","routerLink","/",1,"small"],[1,"actions","maintainance"],["spk-button","",3,"click"],["type","text",3,"ngModelChange","ngModel"],["prefix",""],[1,"actions","placement"],["spk-button","",3,"click","disabled"]]},template:function(_,e){if(_&1&&(l(0,"app-status-bar"),i(1,"section")(2,"div",13)(3,"button",14),r(4,0),l(5,"spk-icon"),p(),a()(),i(6,"article")(7,"h1"),T(8,1),a(),i(9,"p"),T(10,2),a()(),i(11,"article")(12,"h2"),T(13,3),a(),i(14,"p"),T(15,4),a(),i(16,"div",15)(17,"button",16),A("click",function(){return e.repairDatabase()}),r(18,5),l(19,"spk-icon"),p(),a(),i(20,"button",16),A("click",function(){return e.deleteDatabase()}),r(21,6),l(22,"spk-icon"),p(),a(),i(23,"button",16),A("click",function(){return e.restoreDatabase()}),r(24,7),l(25,"spk-icon"),p(),a()()(),i(26,"article")(27,"h2"),T(28,8),a(),i(29,"spk-form-field")(30,"input",17),V("ngModelChange",function(d){return X(e.backupFilePath,d)||(e.backupFilePath=d),d}),a(),v(31,ie,2,0,"spk-icon",18)(32,ne,2,0,"spk-icon",18),a(),i(33,"div",19)(34,"button",20),A("click",function(){return e.resetDatabasePath()}),r(35,9),l(36,"spk-icon"),p(),a(),i(37,"button",20),A("click",function(){return e.saveDatabasePath()}),r(38,10),l(39,"spk-icon"),p(),a(),i(40,"button",20),A("click",function(){return e.saveAndRepairDatabasePath()}),r(41,11),l(42,"spk-icon"),p(),a(),i(43,"button",20),A("click",function(){return e.moveDatabasePath()}),r(44,12),l(45,"spk-icon"),p(),a()()()()),_&2){let n;s(8),L((n=e.activeBackup())==null||n.Backup==null?null:n.Backup.Name),U(8),s(9),P("loader",e.isRepairing()),s(3),P("loader",e.isDeleting()),s(3),P("loader",e.isRestoring()),s(6),G(e.isValidatedPath()?"success":"error"),s(),w("ngModel",e.backupFilePath),s(),K(e.isValidatedPath()?31:32),s(3),F("disabled",!e.isValidatedPath()),s(3),F("disabled",!e.isValidatedPath()),s(3),F("disabled",!e.isValidatedPath()),s(3),F("disabled",!e.isValidatedPath())}},dependencies:[Y,H,J,Q,te,x,ee,Z,q],styles:["[_nghost-%COMP%]{display:block}section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:2rem;padding:2rem}article[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}h1[_ngcontent-%COMP%]{font:var(--title-20)}h2[_ngcontent-%COMP%]{font:var(--title-30)}.actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}"],changeDetection:0})};export{m as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b,c as L,d as N,e as M,h as k,m as v,p as P,q as O,s as x}from"./chunk-
|
|
1
|
+
import{b,c as L,d as N,e as M,h as k,m as v,p as P,q as O,s as x}from"./chunk-25A34CYL.js";import{c as S}from"./chunk-EEWVYRVF.js";import"./chunk-F7TB6D2I.js";import{c as y}from"./chunk-EMAOG2GJ.js";import"./chunk-CKZXQWC5.js";import{a as E,b as F,g as G,l as T}from"./chunk-KB4BCU6P.js";import"./chunk-BE77QZG7.js";import"./chunk-OXZWBTVI.js";import{Ab as t,Bb as i,Cb as p,D as c,Qa as m,Sb as w,X as s,db as g,fc as n,ib as f,rb as h,ta as l,tb as _,wb as C}from"./chunk-5ONOZUNN.js";import"./chunk-C6Q5SG76.js";function A(r,e){r&1&&(t(0,"spk-alert",1),n(1," Remember to enter a password, if you can't remember the password open the duplicati client on the machine in question and make sure you open it through the tray icon then go into settings to change the password. "),i())}var u=new O,d=class r{#e=s(y);#t=s(S);failedLogin=l(!1);isLoading=l(!1);loginForm=u.group({user:u.control(""),pass:u.control("",L.required)});submit(){let e=this.loginForm.value.pass;this.loginForm.value.user||e&&(this.isLoading.set(!0),this.#t.login(e).pipe(c(()=>{this.isLoading.set(!1),this.failedLogin.set(!0)})).subscribe({next:()=>this.#e.navigate(["/"])}))}static \u0275fac=function(o){return new(o||r)};static \u0275cmp=g({type:r,selectors:[["app-login"]],decls:15,vars:4,consts:()=>{let e;return e=$localize`Enter your password`,[[3,"submit","formGroup"],["type","warning"],[1,"login-row"],["type","text","hidden","","autocomplete","off","name","username","formControlName","user"],["for","password"],["href","https://docs.duplicati.com/detailed-descriptions/duplicati-access-password","target","_blank","rel","noopener noreferrer"],["type","password","name","password","autocomplete","current-password","placeholder",e,"tabindex","1","formControlName","pass"],["spk-button","","type","submit",1,"raised","primary"]]},template:function(o,a){o&1&&(t(0,"form",0),w("submit",function(){return a.submit()}),f(1,A,2,0,"spk-alert",1),t(2,"div",2),p(3,"input",3),t(4,"spk-form-field")(5,"label",4),n(6," Password "),t(7,"a",5)(8,"spk-icon"),n(9,"question"),i()()(),p(10,"input",6),i(),t(11,"button",7),n(12," Login "),t(13,"spk-icon"),n(14,"arrow-right"),i()()()()),o&2&&(h("formGroup",a.loginForm),m(),C(a.failedLogin()?1:-1),m(10),_("loader",a.isLoading()))},dependencies:[x,k,b,N,M,v,P,T,E,G,F],styles:["[_nghost-%COMP%]{display:block}form[_ngcontent-%COMP%]{width:100vw;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem}spk-alert[_ngcontent-%COMP%]{max-width:20rem;margin:0 auto}h3[_ngcontent-%COMP%]{font:var(--title-30)}.login-row[_ngcontent-%COMP%]{display:flex;align-items:flex-end;gap:.5rem}"],changeDetection:0})};export{d as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as v,c as b}from"./chunk-
|
|
1
|
+
import{a as v,c as b}from"./chunk-EEWVYRVF.js";import{b as w}from"./chunk-F7TB6D2I.js";import{D as f,Kc as d,M as m,R as i,X as s,g as h,l as S,ta as e,y as p}from"./chunk-5ONOZUNN.js";var r=class o{#o=s(w);#t=e("disconnected");#e=e(null);#n=e(-1);#s=e(0);#i=e(!1);#c=new h;connectionStatus=this.#t.asReadonly();serverState=this.#e.asReadonly();duration=s(v).relayIsEnabled()?"94s":"299s";start(){this.#i.set(!0),this.#c=new h,this.#r()}stop(){this.#c.next(),this.#c.complete(),this.#i.set(!1)}reconnect(){this.stop(),this.start()}reconnectIfNeeded(){console.log("reconnectIfNeeded"),!this.#i()&&this.reconnect()}#r(){this.#t.set("connecting"),this.#o.getApiV1Serverstate({lastEventId:this.#n(),longpoll:this.#n()>0,duration:this.duration}).pipe(m(this.#c),p(t=>(this.#l(t),S(null))),f(()=>{this.#h()})).subscribe(t=>{t&&this.#a(t)})}#a(t){this.#t.set("connected"),this.#e.set(t),this.#n.set(t.LastEventID||-1),this.#s.set(0)}#l(t){let n=this.#s()+1;this.#s.set(n),n>3&&this.#t.set("disconnected")}#h(){this.#i()&&this.#r()}static \u0275fac=function(n){return new(n||o)};static \u0275prov=i({token:o,factory:o.\u0275fac,providedIn:"root"})};var a=class o{#o=s(b);#t=null;#e=e("disconnected");#n=e(null);shouldConnect=e(!0);connectionStatus=this.#e.asReadonly();serverState=this.#n.asReadonly();start(){this.#s(),this.shouldConnect.set(!0)}#s(){let t=this.#o.token();if(!t){console.error("No access token available");return}let n=window.location.protocol==="https:"?"wss:":"ws:",u=window.location.port?`:${window.location.port}`:"";window.location.port==="4200"&&(u=":8200");let y=window.location.hostname,I=`${n}//${y}${u}/notifications?token=${t}`;this.#e.set("connecting"),this.#t=new WebSocket(I),this.#t.onopen=()=>{console.log("WebSocket connection established"),this.#e.set("connected")},this.#t.onmessage=c=>{try{let l=JSON.parse(c.data);this.#n.set(l)}catch(l){console.error("Error parsing WebSocket message",l)}},this.#t.onclose=c=>{console.log("WebSocket connection closed",c),this.#e.set("disconnected"),this.shouldConnect()&&setTimeout(()=>this.#s(),5e3)},this.#t.onerror=c=>{console.error("WebSocket error",c),this.#e.set("disconnected")}}stop(){this.shouldConnect.set(!1),this.#t?.close()}reconnect(){this.#t?.close(),this.start()}reconnectIfNeeded(){this.#t?.readyState!==WebSocket.OPEN&&this.reconnect()}static \u0275fac=function(n){return new(n||o)};static \u0275prov=i({token:o,factory:o.\u0275fac,providedIn:"root"})};var k=class o{#o=s(a);#t=s(r);#e=e("longpoll");connectionStatus=d(()=>this.#e()==="websocket"?this.#o.connectionStatus():this.#t.connectionStatus());serverState=d(()=>this.#e()==="websocket"?this.#o.serverState():this.#t.serverState());setConnectionMethod(t){t==="websocket"?(this.#o.reconnectIfNeeded(),this.#t.stop()):(this.#t.reconnectIfNeeded(),this.#o.stop()),this.#e.set(t)}getConnectionMethod(){return this.#e()}static \u0275fac=function(n){return new(n||o)};static \u0275prov=i({token:o,factory:o.\u0275fac,providedIn:"root"})};export{k as a};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{k as a,l as b}from"./chunk-DM3TLLVN.js";import"./chunk-H5CQT7KP.js";import"./chunk-42RH3SEU.js";import"./chunk-DNHLTHLR.js";import"./chunk-I56L7YBT.js";import"./chunk-DXNCMAOT.js";import"./chunk-2MAHQYCM.js";import"./chunk-25A34CYL.js";import"./chunk-F7TB6D2I.js";import"./chunk-EMAOG2GJ.js";import"./chunk-CKZXQWC5.js";import"./chunk-KB4BCU6P.js";import"./chunk-BE77QZG7.js";import"./chunk-OXZWBTVI.js";import"./chunk-5ONOZUNN.js";import"./chunk-C6Q5SG76.js";export{a as createScheduleForm,b as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{a as K}from"./chunk-
|
|
1
|
+
import{a as K}from"./chunk-I56L7YBT.js";import{b as X}from"./chunk-F7TB6D2I.js";import{a as z,d as J,g as q}from"./chunk-KB4BCU6P.js";import"./chunk-BE77QZG7.js";import"./chunk-OXZWBTVI.js";import{Ab as i,Bb as a,Cb as g,Gb as u,Mb as A,Mc as W,Nb as D,Oa as E,Ob as y,Qa as l,Sb as S,Tb as f,Wb as w,X as v,ca as d,da as _,db as h,fc as c,gc as C,hc as I,ib as k,ic as N,kc as $,lc as B,mc as V,nc as U,p as T,rb as F,rc as G,ta as m,wb as x,xb as M,yb as P,zb as R}from"./chunk-5ONOZUNN.js";import{a as b,b as O}from"./chunk-C6Q5SG76.js";var j=()=>({maxWidth:"700px",width:"100%"});function H(s,t){if(s&1&&(i(0,"a",9)(1,"spk-icon"),c(2,"link"),a()()),s&2){let e=f().$implicit;w("href",e.Url,E)}}function Q(s,t){if(s&1){let e=u();i(0,"div",2)(1,"h4"),c(2),k(3,H,3,1,"a",9),a(),i(4,"p"),c(5),g(6,"br"),i(7,"i"),c(8),a()(),i(9,"div",10)(10,"button",11),S("click",function(){let o=d(e).$implicit,r=f();return _(r.openLicense(o))}),A(11,1),g(12,"spk-icon"),D(),a()()()}if(s&2){let e=t.$implicit;l(2),N(" ",e.Title," - ",e.data==null?null:e.data.license," "),l(),x(e.Url?3:-1),l(2),I(" ",e.data==null?null:e.data.description," "),l(3),C(e.data==null?null:e.data.notes)}}var L=class s{#e=v(X);licenses=K(this.#e.getApiV1Licenses().pipe(T(t=>t.map(e=>O(b({},e),{data:e.Jsondata?JSON.parse(e.Jsondata):null})))));dialogIsOpen=m(!1);dialogLicense=m(null);#t=W(()=>{this.dialogLicense()&&this.dialogIsOpen.set(!0)});openLicense(t){this.dialogLicense.set(t)}closeLicense(){this.dialogIsOpen.set(!1),this.dialogLicense.set(null)}breakIntoLines(t){let e=t.split(`
|
|
2
2
|
`),n="";for(let o=0;o<e.length;o++)n+=`<li>${e[o]}</li>`;return n}static \u0275fac=function(e){return new(e||s)};static \u0275cmp=h({type:s,selectors:[["app-libraries"]],decls:15,vars:5,consts:()=>{let t;t=$localize`Libraries`;let e;return e=$localize` Details ${"\uFFFD#12\uFFFD"}:START_TAG_SPK_ICON:arrow-square-in${"\uFFFD/#12\uFFFD"}:CLOSE_TAG_SPK_ICON:`,[t,e,[1,"license"],[3,"isOpenChange","isOpen","options"],["header",""],["content",""],[1,"license-dialog"],["footer",""],["spk-button","","type","button",3,"click"],[3,"href"],[1,"actions"],["spk-button","",3,"click"]]},template:function(e,n){if(e&1){let o=u();i(0,"h3"),y(1,0),a(),P(2,Q,13,5,"div",2,M),i(4,"spk-dialog",3),V("isOpenChange",function(p){return d(o),B(n.dialogIsOpen,p)||(n.dialogIsOpen=p),_(p)}),i(5,"header",4)(6,"h3"),c(7),a()(),i(8,"div",5),U(9),i(10,"div",6),c(11),a()(),i(12,"footer",7)(13,"button",8),S("click",function(){return d(o),_(n.dialogLicense.set(null))}),c(14,"Close"),a()()()}if(e&2){let o,r;l(2),R(n.licenses()),l(2),$("isOpen",n.dialogIsOpen),F("options",G(4,j)),l(3),C((o=n.dialogLicense())==null?null:o.Title);let p=(r=(r=n.dialogLicense())==null?null:r.License)!==null&&r!==void 0?r:"";l(4),I(" ",p," ")}},dependencies:[z,q,J],styles:["[_nghost-%COMP%]{display:block}h3[_ngcontent-%COMP%]{font:var(--title-30);margin:0 0 1.25rem}h4[_ngcontent-%COMP%]{font:var(--paragraph-10)}a[_ngcontent-%COMP%]{text-decoration:none}.license[_ngcontent-%COMP%]{padding:1rem;border-bottom:1px solid var(--base-level-40);display:flex;flex-direction:column;align-items:flex-start;gap:.5rem}.license[_ngcontent-%COMP%]:first-of-type{border-top:1px solid var(--base-level-40)}.license[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%]{display:flex;gap:.25rem;align-items:center}.license-dialog[_ngcontent-%COMP%]{background-color:var(--base-level-10);color:var(--base-level-70);padding:2.5rem 2.5rem 2.5rem 1.5rem;border-radius:var(--shape-3);overflow:auto;max-height:31.25rem;white-space:pre;border:1px solid var(--base-level-40)}"],changeDetection:0})};export{L as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{b as c,d as A,e as d}from"./chunk-
|
|
1
|
+
import{b as c,d as A,e as d}from"./chunk-EMAOG2GJ.js";import"./chunk-CKZXQWC5.js";import{v as O}from"./chunk-KB4BCU6P.js";import"./chunk-BE77QZG7.js";import"./chunk-OXZWBTVI.js";import{Ab as e,Bb as t,Cb as T,Ob as o,db as g}from"./chunk-5ONOZUNN.js";import"./chunk-C6Q5SG76.js";var l=class a{static \u0275fac=function(n){return new(n||a)};static \u0275cmp=g({type:a,selectors:[["app-about"]],decls:13,vars:0,consts:()=>{let i;i=$localize`General`;let n;n=$localize`Changelog`;let r;r=$localize`Libraries`;let s;s=$localize`System info`;let u;return u=$localize`Logs`,[i,n,r,s,u,[1,"primary"],["tab","","routerLink","/about/general","routerLinkActive","active"],["tab","","routerLink","/about/changelog","routerLinkActive","active"],["tab","","routerLink","/about/libraries","routerLinkActive","active"],["tab","","routerLink","/about/system-info","routerLinkActive","active"],["tab","","routerLink","/about/logs","routerLinkActive","active"]]},template:function(n,r){n&1&&(e(0,"spk-tabs",5)(1,"button",6),o(2,0),t(),e(3,"button",7),o(4,1),t(),e(5,"button",8),o(6,2),t(),e(7,"button",9),o(8,3),t(),e(9,"button",10),o(10,4),t()(),e(11,"section"),T(12,"router-outlet"),t())},dependencies:[O,c,A,d],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;gap:0;padding:2.5rem}.nav[_ngcontent-%COMP%]{display:flex;gap:.5rem}section[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding:2rem 0}"],changeDetection:0})};export{l as default};
|