@duplicati/ngclient 0.0.105 → 0.0.106
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-2AA7RP36.js +1 -0
- package/{chunk-YWCTOOED.js → chunk-2OPFT5E4.js} +1 -1
- package/{chunk-4PUCRV6F.js → chunk-3LISV2IH.js} +1 -1
- package/{chunk-5LODOOQE.js → chunk-3X4E4YMJ.js} +1 -1
- package/{chunk-P5KOELKA.js → chunk-436PKZSE.js} +1 -1
- package/{chunk-SHOSAHEC.js → chunk-47JKJRCG.js} +1 -1
- package/{chunk-NTVLL6TO.js → chunk-4EIKPTJL.js} +1 -1
- package/{chunk-RVCYNHAQ.js → chunk-5MW7LJ7A.js} +1 -1
- package/{chunk-XG7KYN67.js → chunk-5YI264K5.js} +1 -1
- package/chunk-5ZRMELDO.js +1 -0
- package/{chunk-U2HORYSZ.js → chunk-6AFQMFMF.js} +1 -1
- package/{chunk-BEXTTKFK.js → chunk-6S3SP4UJ.js} +1 -1
- package/{chunk-WSFEYRKT.js → chunk-6V3OG3TZ.js} +1 -1
- package/{chunk-FROEBZRG.js → chunk-6WM5WVZV.js} +1 -1
- package/{chunk-YF5K7PNR.js → chunk-7RBLV255.js} +1 -1
- package/{chunk-O7DK2M4U.js → chunk-7YWZEP4G.js} +1 -1
- package/{chunk-JKOCS4GE.js → chunk-AXTJMPOA.js} +1 -1
- package/chunk-BRKXL7PY.js +1 -0
- package/chunk-DAPUSIR2.js +1 -0
- package/{chunk-E6VGAA7Q.js → chunk-ENVS53DP.js} +1 -1
- package/{chunk-SZ64OOBT.js → chunk-FEJAAP54.js} +1 -1
- package/{chunk-LD2OSURG.js → chunk-HWP66GX6.js} +1 -1
- package/{chunk-VAOJO535.js → chunk-IA2ZYSD7.js} +1 -1
- package/{chunk-SITZCHGF.js → chunk-IMFJPM7A.js} +1 -1
- package/chunk-M63ZRC6J.js +1 -0
- package/{chunk-HN4MKGHV.js → chunk-MFDCQK6M.js} +1 -1
- package/chunk-OAPBYB5L.js +8 -0
- package/{chunk-J4KNSP44.js → chunk-OJ3MWFKA.js} +1 -1
- package/{chunk-JLBV3QXT.js → chunk-P6BYDOQU.js} +1 -1
- package/{chunk-7UQE266G.js → chunk-UEZFRBEJ.js} +2 -2
- package/{chunk-NF5EQK5W.js → chunk-UKNGRIBK.js} +1 -1
- package/{chunk-6U42RKWI.js → chunk-UN45NEVN.js} +1 -1
- package/{chunk-M4YSJR2J.js → chunk-Y4K6X2Q2.js} +1 -1
- package/{chunk-L4CVN3UF.js → chunk-YC34F3JB.js} +1 -1
- package/chunk-ZTUAQHOT.js +1 -0
- package/index.html +1 -1
- package/{main-HT3PXURE.js → main-5B5JXI35.js} +1 -1
- package/package.json +1 -1
- package/chunk-2HUZWRPM.js +0 -1
- package/chunk-3MVGDMRL.js +0 -1
- package/chunk-4LYA3XAH.js +0 -1
- package/chunk-GOTRUTIB.js +0 -1
- package/chunk-QO6SPSAF.js +0 -8
- package/chunk-TQGG56ZZ.js +0 -1
- package/chunk-VOGYVLLM.js +0 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{a as fe}from"./chunk-
|
|
1
|
+
import{a as fe}from"./chunk-6WM5WVZV.js";import{n as P}from"./chunk-OAPBYB5L.js";import"./chunk-6DH6O5YE.js";import"./chunk-DAPUSIR2.js";import{a as Ne}from"./chunk-VN7JM6M3.js";import"./chunk-KSP3JQHY.js";import{a as T}from"./chunk-HTNYQE2B.js";import"./chunk-SAVY3OEX.js";import{a as Me}from"./chunk-IA2ZYSD7.js";import"./chunk-7L42EO7J.js";import"./chunk-FEJAAP54.js";import"./chunk-2AA7RP36.js";import"./chunk-RHW5QVAY.js";import"./chunk-O2YN63YI.js";import{c as re,e as le,f as se,i as me,m as de,n as pe,o as _e,q as ce,r as ue,s as Ce,t as ge}from"./chunk-T2OUHRUV.js";import"./chunk-FSGJ5KIH.js";import"./chunk-I3C2AEHI.js";import{b as q,d as Z,e as J}from"./chunk-QVIZK4WW.js";import"./chunk-WMTA6PZM.js";import{a as ee,g as te,k as ne,l as oe,p as ie,t as ae}from"./chunk-WX7L7V6J.js";import{a as Q,b as Y}from"./chunk-PTDSOPNK.js";import"./chunk-MZ473NLM.js";import"./chunk-DE4NDI5F.js";import"./chunk-CKPICCFH.js";import"./chunk-PFYOWXZZ.js";import{Ab as O,Bc as H,Cb as G,Gb as M,Hb as N,Ib as _,Jb as x,Kb as U,Mb as K,Nb as f,Qa as m,Rb as w,Y as C,ab as $,da as S,ea as E,ec as X,fb as h,fc as z,gc as V,kc as W,lc as j,nb as u,pb as b,sb as B,tb as R,ua as F,ub as y,vb as v,wb as r,xb as o,yb as l,zb as A}from"./chunk-W2F756OF.js";import"./chunk-7CGTOI24.js";var Se=()=>[];function Ee(s,t){s&1&&l(0,"spk-progress-bar",12)}function Fe(s,t){if(s&1&&(r(0,"spk-form-field"),l(1,"input",32),o()),s&2){let e=t.$implicit,i=t.$index;m(),w("id","filter-",i,""),u("formControl",e)}}function Ae(s,t){if(s&1){let e=G();r(0,"form",13)(1,"spk-select",14)(2,"label",15),_(3,1),o(),l(4,"input",16),o(),r(5,"spk-form-field")(6,"label",17),_(7,2),o(),l(8,"textarea",18),o(),r(9,"spk-form-field")(10,"label",19),_(11,3),o(),l(12,"textarea",20),o()(),r(13,"spk-divider"),_(14,4),o(),r(15,"form",13)(16,"spk-form-field")(17,"label",21),_(18,5),o(),l(19,"input",22),o(),r(20,"spk-form-field")(21,"label",23),_(22,6),o(),l(23,"input",24),o(),r(24,"app-toggle-card",25),A(25,26),_(26,7),O(),A(27,27),y(28,Fe,2,3,"spk-form-field",null,R),O(),o()(),r(30,"p"),M(31,8),l(32,"a",28),N(),o(),r(33,"app-options-list",29),V("optionsChange",function(a){S(e);let c=f();return z(c.settings,a)||(c.settings=a),E(a)}),o(),r(34,"div",30)(35,"button",31),K("click",function(){S(e);let a=f();return E(a.submit())}),M(36,9),l(37,"spk-icon"),N(),o()()}if(s&2){let e,i=f();u("formGroup",i.baseCmdForm),m(),u("options",(e=i.commandOptions())!==null&&e!==void 0?e:j(10,Se))("inlineSearch",!0),m(14),u("formGroup",i.standardFields),m(9),u("disallowToggle",!0),m(4),v(i.standardFields.controls.filters.controls),m(5),X("options",i.settings),u("hasFreeTextSettings",!0),m(2),b("loader",i.isSubmitting()),m(2),x(i.baseCmdForm.value.command),U(36)}}var d=new ue,Oe=["Bytes","KB","MB","GB","TB","PB"],I=class s{#e=C(P);#t=C(Y);#n=C(Z);#o=C(q);#i=C(Q);#a=T(this.#o.params);commandOptions=T(this.#i.getApiV1Commandline());sizeOptions=F(Oe);isSubmitting=F(!1);optionsFields=this.#e.optionsFields;standardFields=d.group({"backup-id":d.control(""),"backup-name":d.control(""),dbpath:d.control(""),filters:d.array([])});baseCmdForm=d.group({command:d.control("backup"),targetUrl:d.control(""),arguments:d.control("")});finishedLoading=this.#e.finishedLoading;backupId=this.#e.backupId;settings=this.#e.settings;#r=H(()=>{let t=this.#a()?.id;this.#e.backupId.set(t),this.getBackup(t)});getBackup(t){this.#t.getApiV1BackupById({id:t}).subscribe({next:e=>{this.#e.mapScheduleToForm(e.Schedule??null),e.Backup&&(this.mapStandardFieldsToForm(e.Backup),this.mapBaseCmdToForm(e.Backup),this.#e.mapOptionsToForms(e.Backup)),this.#e.finishedLoading.set(!0)}})}mapStandardFieldsToForm(t){this.standardFields.patchValue({dbpath:t.DBPath,"backup-id":t.ID,"backup-name":t.Name}),t.Filters&&t.Filters.length&&t.Filters.map(e=>{this.standardFields.controls.filters.push(d.control(`${e.Include?"":"-"}${e.Expression}`))})}submit(){this.isSubmitting.set(!0);let t=this.baseCmdForm.value,e=t.targetUrl??"",i=t.arguments?.split(`
|
|
2
2
|
`).filter(n=>n.length>0)??[],a=this.standardFields.value,c=a.filters??[],g=[t.command,e,...i,`--backup-name=${a["backup-name"]}`,`--dbpath=${a.dbpath}`,`--backup-id=${a["backup-id"]}`,...c.filter(n=>n).map(n=>n.startsWith("-")?`--exclude=${n?.slice(1)}`:`--include=${n}`),...this.#e.mapFormsToSettings(["backup-id","backup-name","dbpath"]).map(n=>n.Name.startsWith("--")?`${n.Name}=${n.Value}`:`--${n.Name}=${n.Value}`),"--disable-module=console-password-input"];this.#t.postApiV1Commandline({requestBody:g}).subscribe(n=>{n.Status==="OK"&&this.#n.navigate(["backup",this.backupId(),"commandline",n.ID])})}mapBaseCmdToForm(t){let e=t.TargetURL??null;e&&this.baseCmdForm.patchValue({targetUrl:e??"",arguments:t.Sources?.join(`
|
|
3
3
|
`)??""})}static \u0275fac=function(e){return new(e||s)};static \u0275cmp=$({type:s,selectors:[["app-commandline"]],features:[W([P])],decls:8,vars:1,consts:()=>{let t;t=$localize`${"\uFFFD#5\uFFFD"}:START_TAG_SPK_ICON:arrow-left${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_ICON: Back `;let e;e=$localize`Command`;let i;i=$localize`TargetUrl`;let a;a=$localize`Commandline Arguments`;let c;c=$localize`Advanced options`;let g;g=$localize`Backup ID`;let n;n=$localize`Backup Name`;let k;k=$localize`Filters`;let D;D=$localize` The backups will be split up into multiple files called volumes. Here you can set the maximum size of the individual volume files. ${"\uFFFD#32\uFFFD"}:START_LINK:Read more${"\uFFFD/#32\uFFFD"}:CLOSE_LINK:`;let L;return L=$localize`${"\uFFFD#37\uFFFD"}:START_TAG_SPK_ICON:arrow-right${"\uFFFD/#37\uFFFD"}:CLOSE_TAG_SPK_ICON: Run "${"\uFFFD0\uFFFD"}:INTERPOLATION:" command now `,[t,e,i,a,c,g,n,k,D,L,[1,"back"],["type","button","spk-button","","routerLink","/",1,"small"],[1,"indeterminate","primary"],[3,"formGroup"],["placeholder","Select a command...",3,"options","inlineSearch"],["for","command"],["type","text","id","command","formControlName","command"],["for","targetUrl"],["id","targetUrl","autocomplete","off","formControlName","targetUrl"],["for","arguments"],["id","arguments","autocomplete","off","formControlName","arguments"],["for","backup-id"],["id","backup-id","formControlName","backup-id"],["for","backup-name"],["id","backup-name","formControlName","backup-name"],[3,"disallowToggle"],["title",""],["content","","formGroupName","filters"],["href","#",1,"spk-primary"],[3,"optionsChange","options","hasFreeTextSettings"],[1,"form-actions"],["spk-button","",1,"raised","primary",3,"click"],[3,"id","formControl"]]},template:function(e,i){e&1&&(l(0,"app-status-bar"),r(1,"section")(2,"div",10)(3,"button",11),M(4,0),l(5,"spk-icon"),N(),o()(),h(6,Ee,1,0,"spk-progress-bar",12)(7,Ae,38,11),o()),e&2&&(m(6),B(i.finishedLoading()?7:6))},dependencies:[Ce,me,re,le,se,Me,fe,Ne,ge,de,pe,ce,_e,J,oe,te,ne,ae,ie,ee],styles:["[_nghost-%COMP%]{display:block}section[_ngcontent-%COMP%]{display:flex;flex-direction:column;width:100%;max-width:40rem;padding:2.5rem;gap:1.25rem}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:flex-end}.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}.row-inputs[_ngcontent-%COMP%]{display:flex;align-items:flex-end;gap:.5rem}.row-inputs[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{flex:1 0}.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}"],changeDetection:0})};export{I as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as le,b as pe}from"./chunk-6DH6O5YE.js";import{a as re}from"./chunk-TQGG56ZZ.js";import{a as Y}from"./chunk-SAVY3OEX.js";import{b as Z,c as ee,e as te,h as ie,j as ne,s as oe}from"./chunk-T2OUHRUV.js";import{A as Q,a as K,g as U,l as W,o as X,t as j,y as H,z as J}from"./chunk-WX7L7V6J.js";import{$b as m,Ab as k,Ac as R,Cb as x,Gb as $,Hb as P,Ib as q,Mb as f,Nb as s,Qa as l,Sb as g,Y as B,Za as G,_b as E,ab as z,ac as L,bc as F,da as d,ea as u,ec as v,fb as C,fc as D,gc as b,nb as _,ra as I,sb as S,sc as A,tb as V,ua as h,ub as O,vb as y,wb as p,xb as a,yb as M,zb as N}from"./chunk-W2F756OF.js";import{a as T,b as w}from"./chunk-7CGTOI24.js";function se(n,o){if(n&1){let e=x();p(0,"button",14),f("click",function(){d(e);let t=s();return u(t.addFreeTextSetting())}),$(1,5),M(2,"spk-icon"),P(),a()}}function me(n,o){if(n&1){let e=x();p(0,"button",16,0),f("click",function(){let t=d(e).$implicit,r=s(2);return u(r.addSetting(t))}),m(2),a()}if(n&2){let e=o.$implicit;l(2),L(e.name)}}function _e(n,o){if(n&1&&(p(0,"h3",7),m(1),a(),O(2,me,3,1,"button",15,V)),n&2){let e=o.$implicit;l(),L(e.displayName),l(),y(e.options)}}function ce(n,o){n&1&&(p(0,"div",12),m(1,"Add a setting above to get started."),a())}function de(n,o){if(n&1){let e=x();p(0,"div",17)(1,"label"),m(2),a(),p(3,"div",23)(4,"spk-form-field")(5,"input",24),f("ngModelChange",function(t){d(e);let r=s().$implicit,c=s();return u(c.updateFreeTextSettingName(r,t))}),a(),p(6,"spk-icon",25),m(7,"rectangle-dashed"),a()(),p(8,"spk-form-field")(9,"input",24),f("ngModelChange",function(t){d(e);let r=s().$implicit,c=s();return u(c.updateSettingValue(r,t))}),a(),p(10,"spk-icon",25),m(11,"textbox"),a()()()()}if(n&2){let e=s().$implicit;l(2),F(" ",e.FormView.shortDescription," "),l(3),_("ngModel",e.Name),l(4),_("ngModel",e.Value())}}function ue(n,o){if(n&1&&(p(0,"spk-tooltip",27)(1,"spk-icon"),m(2,"question"),a()()),n&2){let e=s(2).$implicit;_("message",e.FormView.longDescription)}}function ge(n,o){if(n&1){let e=x();p(0,"app-file-tree",18)(1,"label",26),m(2),C(3,ue,3,1,"spk-tooltip",27),a(),p(4,"input",28),f("ngModelChange",function(t){d(e);let r=s().$implicit,c=s();return u(c.updateSettingValue(r,t))}),a()()}if(n&2){let e=s(),i=e.$implicit,t=e.$index;_("startingPath",i.Value())("accepts",i.FormView.accepts)("showFiles",!0)("showHiddenNodes",!0)("selectFiles",!0),l(),g("for","destination-",i.Name,"-",t,""),l(),F(" ",i.FormView.shortDescription," "),l(),S(i.FormView.longDescription?3:-1),l(),g("id","destination-",i.Name,"-",t,""),_("ngModel",i.Value())}}function Ce(n,o){if(n&1&&(p(0,"spk-tooltip",27)(1,"spk-icon"),m(2,"question"),a()()),n&2){let e=s(2).$implicit;_("message",e.FormView.longDescription)}}function xe(n,o){if(n&1){let e=x();p(0,"app-file-tree",19)(1,"label",26),m(2),C(3,Ce,3,1,"spk-tooltip",27),a(),p(4,"input",28),f("ngModelChange",function(t){d(e);let r=s().$implicit,c=s();return u(c.updateSettingValue(r,t))}),a()()}if(n&2){let e=s(),i=e.$implicit,t=e.$index;_("startingPath",i.Value()),l(),g("for","destination-",i.Name,"-",t,""),l(),F(" ",i.FormView.shortDescription," "),l(),S(i.FormView.longDescription?3:-1),l(),g("id","destination-",i.Name,"-",t,""),_("ngModel",i.Value())}}function fe(n,o){if(n&1&&(p(0,"spk-tooltip",27)(1,"spk-icon"),m(2,"question"),a()()),n&2){let e=s(2).$implicit;_("message",e.FormView.longDescription)}}function Se(n,o){n&1&&(p(0,"spk-icon",25),m(1,"link"),a())}function Fe(n,o){n&1&&(p(0,"spk-icon",25),m(1,"textbox"),a())}function Te(n,o){if(n&1){let e=x();p(0,"spk-form-field")(1,"label",26),m(2),C(3,fe,3,1,"spk-tooltip",27),a(),p(4,"input",28),f("ngModelChange",function(t){d(e);let r=s().$implicit,c=s();return u(c.updateSettingValue(r,t))}),a(),C(5,Se,2,0,"spk-icon",25)(6,Fe,2,0,"spk-icon",25),a()}if(n&2){let e=s(),i=e.$implicit,t=e.$index;l(),g("for","destination-",i.Name,"-",t,""),l(),F(" ",i.FormView.shortDescription," "),l(),S(i.FormView.longDescription?3:-1),l(),g("id","destination-",i.Name,"-",t,""),_("ngModel",i.Value()),l(),S(i.FormView.type==="Path"?5:6)}}function we(n,o){if(n&1){let e=x();p(0,"spk-icon",31),f("click",function(){d(e);let t=s(2).$implicit;return u(t.showPassword=!t.showPassword)}),m(1," eye "),a()}}function Ve(n,o){if(n&1){let e=x();p(0,"spk-icon",31),f("click",function(){d(e);let t=s(2).$implicit;return u(t.showPassword=!t.showPassword)}),m(1," eye-slash "),a()}}function Oe(n,o){if(n&1){let e=x();p(0,"spk-form-field")(1,"label",26),m(2),a(),p(3,"input",29),f("ngModelChange",function(t){d(e);let r=s().$implicit,c=s();return u(c.updateSettingValue(r,t))}),a(),p(4,"spk-icon",25),m(5,"password"),a(),C(6,we,2,0,"spk-icon",30)(7,Ve,2,0,"spk-icon",30),a()}if(n&2){let e=s(),i=e.$implicit,t=e.$index;l(),g("for","destination-",i.Name,"-",t,""),l(),F(" ",i.FormView.shortDescription," "),l(),g("id","destination-",i.Name,"-",t,""),_("type",i.showPassword?"text":"password")("ngModel",i.Value()),l(3),S(i.showPassword?6:7)}}function ye(n,o){if(n&1&&(p(0,"spk-tooltip",27)(1,"spk-icon"),m(2,"question"),a()()),n&2){let e=s(2).$implicit;_("message",e.FormView.longDescription)}}function ke(n,o){if(n&1&&m(0),n&2){let e=o.$implicit;F(" ",e," ")}}function Ie(n,o){if(n&1){let e=x();p(0,"spk-select",32)(1,"label",26),m(2),C(3,ye,3,1,"spk-tooltip",27),a(),p(4,"input",28),f("ngModelChange",function(t){d(e);let r=s().$implicit,c=s();return u(c.updateSettingValue(r,t))}),a()(),C(5,ke,1,1,"ng-template",null,1,A)}if(n&2){let e=E(6),i=s(),t=i.$implicit,r=i.$index;_("options",t.FormView.options)("isClearable",!1)("optionTemplate",e),l(),g("for","destination-",t.Name,"-",r,""),l(),F(" ",t.FormView.shortDescription," "),l(),S(t.FormView.longDescription?3:-1),l(),g("id","destination-",t.Name,"-",r,""),_("ngModel",t.Value())}}function he(n,o){if(n&1&&(p(0,"spk-tooltip",27)(1,"spk-icon"),m(2,"question"),a()()),n&2){let e=s(2).$implicit;_("message",e.FormView.longDescription)}}function Me(n,o){if(n&1){let e=x();p(0,"app-size",33),b("ngModelChange",function(t){d(e);let r=s().$implicit;return D(r.Value,t)||(r.Value=t),u(t)}),p(1,"label",26),m(2),C(3,he,3,1,"spk-tooltip",27),a()()}if(n&2){let e,i=s(),t=i.$implicit,r=i.$index;_("inputType",t.Name),v("ngModel",t.Value),_("customId","destination-{{ item.Name }}-{{ $index }}"),l(),g("for","destination-",t.Name,"-",r,""),l(),F(" ",(e=t.FormView.shortDescription)!==null&&e!==void 0?e:t.FormView.name," "),l(),S(t.FormView.longDescription?3:-1)}}function Ne(n,o){if(n&1&&(p(0,"spk-tooltip",27)(1,"spk-icon"),m(2,"question"),a()()),n&2){let e=s(2).$implicit;_("message",e.FormView.longDescription)}}function $e(n,o){if(n&1){let e=x();p(0,"spk-form-field")(1,"label",26),m(2),C(3,Ne,3,1,"spk-tooltip",27),a(),p(4,"input",34),f("ngModelChange",function(t){d(e);let r=s().$implicit,c=s();return u(c.updateSettingValue(r,t))}),a(),p(5,"spk-icon",25),m(6,"numpad"),a()()}if(n&2){let e=s(),i=e.$implicit,t=e.$index;l(),g("for","destination-",i.Name,"-",t,""),l(),F(" ",i.FormView.shortDescription," "),l(),S(i.FormView.longDescription?3:-1),l(),g("id","destination-",i.Name,"-",t,""),_("ngModel",i.Value())}}function Pe(n,o){if(n&1&&(p(0,"spk-tooltip",27)(1,"spk-icon"),m(2,"question"),a()()),n&2){let e=s(2).$implicit;_("message",e.FormView.longDescription)}}function Ee(n,o){if(n&1){let e=x();p(0,"spk-toggle",21)(1,"label",26),m(2),C(3,Pe,3,1,"spk-tooltip",27),a(),p(4,"input",35),f("ngModelChange",function(t){d(e);let r=s().$implicit,c=s();return u(c.updateSettingValue(r,t))}),a()()}if(n&2){let e=s(),i=e.$implicit,t=e.$index;l(),g("for","destination-",i.Name,"-",t,""),l(),F(" ",i.FormView.shortDescription," "),l(),S(i.FormView.longDescription?3:-1),l(),g("id","destination-",i.Name,"-",t,""),_("ngModel",i.Value())}}function Le(n,o){if(n&1&&(p(0,"spk-tooltip",27)(1,"spk-icon"),m(2,"question"),a()()),n&2){let e=s(2).$implicit;_("message",e.FormView.longDescription)}}function ve(n,o){if(n&1&&m(0),n&2){let e=o.$implicit;F(" ",e," ")}}function De(n,o){if(n&1){let e=x();p(0,"spk-select",36)(1,"label",26),m(2),C(3,Le,3,1,"spk-tooltip",27),a(),p(4,"input",37),f("ngModelChange",function(t){d(e);let r=s().$implicit,c=s();return u(c.updateSettingValue(r,t))}),a()(),C(5,ve,1,1,"ng-template",null,2,A)}if(n&2){let e=E(6),i=s(),t=i.$implicit,r=i.$index;_("options",t.FormView.options)("selectMultiple",!0)("optionTemplate",e),l(),g("for","destination-",t.Name,"-",r,""),l(),F(" ",t.FormView.shortDescription," "),l(),S(t.FormView.longDescription?3:-1),l(),_("ngModel",t.Value())}}function be(n,o){if(n&1&&(p(0,"spk-tooltip",27)(1,"spk-icon"),m(2,"question"),a()()),n&2){let e=s(2).$implicit;_("message",e.FormView.longDescription)}}function Ae(n,o){if(n&1){let e=x();p(0,"app-timespan",33),b("ngModelChange",function(t){d(e);let r=s().$implicit;return D(r.Value,t)||(r.Value=t),u(t)}),p(1,"label",26),m(2),C(3,be,3,1,"spk-tooltip",27),a()()}if(n&2){let e,i=s(),t=i.$implicit,r=i.$index;_("inputType",t.Name),v("ngModel",t.Value),_("customId","destination-{{ item.Name }}-{{ $index }}"),l(),g("for","destination-",t.Name,"-",r,""),l(),F(" ",(e=t.FormView.shortDescription)!==null&&e!==void 0?e:t.FormView.name," "),l(),S(t.FormView.longDescription?3:-1)}}function Re(n,o){if(n&1){let e=x();p(0,"div",13),C(1,de,12,3,"div",17)(2,ge,5,14,"app-file-tree",18)(3,xe,5,10,"app-file-tree",19)(4,Te,7,10,"spk-form-field")(5,Oe,8,10,"spk-form-field")(6,Ie,7,12)(7,Me,4,8,"app-size",20)(8,$e,7,9,"spk-form-field")(9,Ee,5,9,"spk-toggle",21)(10,De,7,9)(11,Ae,4,8,"app-timespan",20),p(12,"button",22),f("click",function(){let t=d(e).$implicit,r=s();return u(r.removeSetting(t))}),p(13,"spk-icon"),m(14,"x-bold"),a()()()}if(n&2){let e=o.$implicit;l(),S(e.FormView.type==="FreeText"?1:e.FormView.type==="FileTree"?2:e.FormView.type==="FolderTree"?3:e.FormView.type==="String"||e.FormView.type==="Path"||e.FormView.type==="Decimal"?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"||e.FormView.type==="DateTime"?11:-1)}}var ae=class n{#e=B(Y);options=G.required();hiddenOptions=I([]);hasFreeTextSettings=I(!1);allOptionsGrouped=this.#e.allOptionsGrouped;allOptions=this.#e.allOptions;selectedSettings=R(()=>{let o=this.hiddenOptions();return this.options().map(i=>{let t=this.allOptions().find(r=>r.name===i.Name);if(t&&!o.includes(t.name)){let r=i.Value??"";t.type==="Boolean"&&(r=r&&r.toLowerCase()==="true"||!1),t.type==="Integer"&&(r=parseInt(r)||0);let c=h(r);return w(T({},i),{Value:c,FormView:t})}else if(this.hasFreeTextSettings())return w(T({},i),{Value:h(i.Value),FormView:{name:i.Name,type:"FreeText",shortDescription:"Custom settings argument",longDescription:"Custom settings argument"}});return null}).filter(i=>i!==null)});nonSelectedOptionsGrouped=R(()=>{let o=this.options().map(i=>i.Name),e=this.hiddenOptions();return this.allOptionsGrouped().map(i=>w(T({},i),{options:i.options.filter(t=>!o.includes(t.name)&&!e.includes(t.name))})).filter(i=>i.options.length>0)});addFreeTextSetting(){this.hasFreeTextSettings()&&this.options.update(o=>[...o,{Filter:null,Name:"",Value:""}])}addSetting(o){this.options.update(e=>{let i=o.defaultValue??"";return o.type==="Boolean"&&(i=i.toLowerCase()==="true"||!1),o.type==="Integer"&&(i=parseInt(i)||0),[...e,{Name:o.name,Value:i}]})}updateSettingValue(o,e){this.options.update(i=>{let t=[...i],r=t.findIndex(c=>c.Name===o.Name);return o.FormView.type==="Boolean"?(t[r].Value=e?"True":"False",t):o.FormView.type==="Integer"?(t[r].Value=e.toString(),t):(t[r].Value=e,t)})}updateFreeTextSettingName(o,e){this.options.update(i=>{let t=[...i],r=t.findIndex(c=>c.Name===o.Name);return t[r].Name=e,t})}removeSetting(o){this.options.update(e=>e.filter(i=>i.Name!==o.Name))}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=z({type:n,selectors:[["app-options-list"]],inputs:{options:[1,"options"],hiddenOptions:[1,"hiddenOptions"],hasFreeTextSettings:[1,"hasFreeTextSettings"]},outputs:{options:"optionsChange"},decls:16,vars:4,consts:()=>{let o;o=$localize`Advanced options`;let e;e=$localize` Add advanced option ${"\uFFFD#9\uFFFD"}:START_TAG_SPK_ICON:plus${"\uFFFD/#9\uFFFD"}:CLOSE_TAG_SPK_ICON:`;let i;return i=$localize` New custom option ${"\uFFFD#2\uFFFD"}:START_TAG_SPK_ICON:pen${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SPK_ICON:`,[["option",""],["enumOptionTemplate",""],["optionTemplate",""],o,e,i,[3,"disallowToggle"],["title",""],[1,"actions"],["spk-button","","type","button",1,"outlined","small"],[3,"searchable"],["menu",""],[1,"placeholder"],[1,"field-row"],["spk-button","","type","button",1,"outlined","small",3,"click"],["type","button"],["type","button",3,"click"],[1,"form-column"],[3,"startingPath","accepts","showFiles","showHiddenNodes","selectFiles"],[3,"startingPath"],[3,"inputType","ngModel","customId"],[1,"primary","raised"],["spk-button","","type","button",1,"outlined","remove-btn",3,"click"],[1,"form-row"],["type","text",3,"ngModelChange","ngModel"],["prefix",""],[3,"for"],[1,"primary",3,"message"],["type","text",3,"ngModelChange","id","ngModel"],["autocomplete","off",3,"ngModelChange","type","id","ngModel"],["suffix","",1,"clickable"],["suffix","",1,"clickable",3,"click"],[3,"options","isClearable","optionTemplate"],[3,"ngModelChange","inputType","ngModel","customId"],["type","number",3,"ngModelChange","id","ngModel"],["type","checkbox",3,"ngModelChange","id","ngModel"],[1,"primary","raised",3,"options","selectMultiple","optionTemplate"],["type","text","id","text",3,"ngModelChange","ngModel"]]},template:function(e,i){e&1&&(p(0,"spk-toggle-card",6),N(1,7)(2),q(3,3),k(),p(4,"div",8),C(5,se,3,0,"button",9),p(6,"spk-menu",10)(7,"button",9),$(8,4),M(9,"spk-icon"),P(),a(),N(10,11),O(11,_e,4,1,null,null,V),k(),a()(),k(),C(13,ce,2,0,"div",12),O(14,Re,15,1,"div",13,V),a()),e&2&&(_("disallowToggle",!0),l(5),S(i.hasFreeTextSettings()?5:-1),l(),_("searchable",!0),l(5),y(i.nonSelectedOptionsGrouped()),l(2),S(i.selectedSettings().length===0?13:-1),l(),y(i.selectedSettings()))},dependencies:[oe,ee,ne,Z,te,ie,re,H,W,U,X,Q,K,j,J,le,pe],styles:["[_nghost-%COMP%]{display:block}spk-select[_ngcontent-%COMP%]{--miw: p2r(120)}spk-toggle[_ngcontent-%COMP%] spk-icon[_ngcontent-%COMP%]{font-size:1rem}.placeholder[_ngcontent-%COMP%]{color:var(--base-level-60R);text-align:center;padding:2rem 1rem}.field-row[_ngcontent-%COMP%]{display:grid;align-items:center;grid-template-columns:1fr 2.5rem;gap:.5rem}.field-row[_ngcontent-%COMP%] .remove-btn[_ngcontent-%COMP%]{align-self:flex-end}.form-column[_ngcontent-%COMP%]{display:flex;gap:.25rem;flex-direction:column}.form-column[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem}.form-column[_ngcontent-%COMP%] spk-icon[_ngcontent-%COMP%]{font-size:1rem}.form-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:3fr 1fr;gap:.5rem;align-items:flex-end}.actions[_ngcontent-%COMP%]{display:flex;gap:.5rem;justify-content:flex-end}"],changeDetection:0})};export{ae as a};
|
|
1
|
+
import{a as le,b as pe}from"./chunk-6DH6O5YE.js";import{a as re}from"./chunk-DAPUSIR2.js";import{a as Y}from"./chunk-SAVY3OEX.js";import{b as Z,c as ee,e as te,h as ie,j as ne,s as oe}from"./chunk-T2OUHRUV.js";import{A as Q,a as K,g as U,l as W,o as X,t as j,y as H,z as J}from"./chunk-WX7L7V6J.js";import{$b as m,Ab as k,Ac as R,Cb as x,Gb as $,Hb as P,Ib as q,Mb as f,Nb as s,Qa as l,Sb as g,Y as B,Za as G,_b as E,ab as z,ac as L,bc as F,da as d,ea as u,ec as v,fb as C,fc as D,gc as b,nb as _,ra as I,sb as S,sc as A,tb as V,ua as h,ub as O,vb as y,wb as p,xb as a,yb as M,zb as N}from"./chunk-W2F756OF.js";import{a as T,b as w}from"./chunk-7CGTOI24.js";function se(n,o){if(n&1){let e=x();p(0,"button",14),f("click",function(){d(e);let t=s();return u(t.addFreeTextSetting())}),$(1,5),M(2,"spk-icon"),P(),a()}}function me(n,o){if(n&1){let e=x();p(0,"button",16,0),f("click",function(){let t=d(e).$implicit,r=s(2);return u(r.addSetting(t))}),m(2),a()}if(n&2){let e=o.$implicit;l(2),L(e.name)}}function _e(n,o){if(n&1&&(p(0,"h3",7),m(1),a(),O(2,me,3,1,"button",15,V)),n&2){let e=o.$implicit;l(),L(e.displayName),l(),y(e.options)}}function ce(n,o){n&1&&(p(0,"div",12),m(1,"Add a setting above to get started."),a())}function de(n,o){if(n&1){let e=x();p(0,"div",17)(1,"label"),m(2),a(),p(3,"div",23)(4,"spk-form-field")(5,"input",24),f("ngModelChange",function(t){d(e);let r=s().$implicit,c=s();return u(c.updateFreeTextSettingName(r,t))}),a(),p(6,"spk-icon",25),m(7,"rectangle-dashed"),a()(),p(8,"spk-form-field")(9,"input",24),f("ngModelChange",function(t){d(e);let r=s().$implicit,c=s();return u(c.updateSettingValue(r,t))}),a(),p(10,"spk-icon",25),m(11,"textbox"),a()()()()}if(n&2){let e=s().$implicit;l(2),F(" ",e.FormView.shortDescription," "),l(3),_("ngModel",e.Name),l(4),_("ngModel",e.Value())}}function ue(n,o){if(n&1&&(p(0,"spk-tooltip",27)(1,"spk-icon"),m(2,"question"),a()()),n&2){let e=s(2).$implicit;_("message",e.FormView.longDescription)}}function ge(n,o){if(n&1){let e=x();p(0,"app-file-tree",18)(1,"label",26),m(2),C(3,ue,3,1,"spk-tooltip",27),a(),p(4,"input",28),f("ngModelChange",function(t){d(e);let r=s().$implicit,c=s();return u(c.updateSettingValue(r,t))}),a()()}if(n&2){let e=s(),i=e.$implicit,t=e.$index;_("startingPath",i.Value())("accepts",i.FormView.accepts)("showFiles",!0)("showHiddenNodes",!0)("selectFiles",!0),l(),g("for","destination-",i.Name,"-",t,""),l(),F(" ",i.FormView.shortDescription," "),l(),S(i.FormView.longDescription?3:-1),l(),g("id","destination-",i.Name,"-",t,""),_("ngModel",i.Value())}}function Ce(n,o){if(n&1&&(p(0,"spk-tooltip",27)(1,"spk-icon"),m(2,"question"),a()()),n&2){let e=s(2).$implicit;_("message",e.FormView.longDescription)}}function xe(n,o){if(n&1){let e=x();p(0,"app-file-tree",19)(1,"label",26),m(2),C(3,Ce,3,1,"spk-tooltip",27),a(),p(4,"input",28),f("ngModelChange",function(t){d(e);let r=s().$implicit,c=s();return u(c.updateSettingValue(r,t))}),a()()}if(n&2){let e=s(),i=e.$implicit,t=e.$index;_("startingPath",i.Value()),l(),g("for","destination-",i.Name,"-",t,""),l(),F(" ",i.FormView.shortDescription," "),l(),S(i.FormView.longDescription?3:-1),l(),g("id","destination-",i.Name,"-",t,""),_("ngModel",i.Value())}}function fe(n,o){if(n&1&&(p(0,"spk-tooltip",27)(1,"spk-icon"),m(2,"question"),a()()),n&2){let e=s(2).$implicit;_("message",e.FormView.longDescription)}}function Se(n,o){n&1&&(p(0,"spk-icon",25),m(1,"link"),a())}function Fe(n,o){n&1&&(p(0,"spk-icon",25),m(1,"textbox"),a())}function Te(n,o){if(n&1){let e=x();p(0,"spk-form-field")(1,"label",26),m(2),C(3,fe,3,1,"spk-tooltip",27),a(),p(4,"input",28),f("ngModelChange",function(t){d(e);let r=s().$implicit,c=s();return u(c.updateSettingValue(r,t))}),a(),C(5,Se,2,0,"spk-icon",25)(6,Fe,2,0,"spk-icon",25),a()}if(n&2){let e=s(),i=e.$implicit,t=e.$index;l(),g("for","destination-",i.Name,"-",t,""),l(),F(" ",i.FormView.shortDescription," "),l(),S(i.FormView.longDescription?3:-1),l(),g("id","destination-",i.Name,"-",t,""),_("ngModel",i.Value()),l(),S(i.FormView.type==="Path"?5:6)}}function we(n,o){if(n&1){let e=x();p(0,"spk-icon",31),f("click",function(){d(e);let t=s(2).$implicit;return u(t.showPassword=!t.showPassword)}),m(1," eye "),a()}}function Ve(n,o){if(n&1){let e=x();p(0,"spk-icon",31),f("click",function(){d(e);let t=s(2).$implicit;return u(t.showPassword=!t.showPassword)}),m(1," eye-slash "),a()}}function Oe(n,o){if(n&1){let e=x();p(0,"spk-form-field")(1,"label",26),m(2),a(),p(3,"input",29),f("ngModelChange",function(t){d(e);let r=s().$implicit,c=s();return u(c.updateSettingValue(r,t))}),a(),p(4,"spk-icon",25),m(5,"password"),a(),C(6,we,2,0,"spk-icon",30)(7,Ve,2,0,"spk-icon",30),a()}if(n&2){let e=s(),i=e.$implicit,t=e.$index;l(),g("for","destination-",i.Name,"-",t,""),l(),F(" ",i.FormView.shortDescription," "),l(),g("id","destination-",i.Name,"-",t,""),_("type",i.showPassword?"text":"password")("ngModel",i.Value()),l(3),S(i.showPassword?6:7)}}function ye(n,o){if(n&1&&(p(0,"spk-tooltip",27)(1,"spk-icon"),m(2,"question"),a()()),n&2){let e=s(2).$implicit;_("message",e.FormView.longDescription)}}function ke(n,o){if(n&1&&m(0),n&2){let e=o.$implicit;F(" ",e," ")}}function Ie(n,o){if(n&1){let e=x();p(0,"spk-select",32)(1,"label",26),m(2),C(3,ye,3,1,"spk-tooltip",27),a(),p(4,"input",28),f("ngModelChange",function(t){d(e);let r=s().$implicit,c=s();return u(c.updateSettingValue(r,t))}),a()(),C(5,ke,1,1,"ng-template",null,1,A)}if(n&2){let e=E(6),i=s(),t=i.$implicit,r=i.$index;_("options",t.FormView.options)("isClearable",!1)("optionTemplate",e),l(),g("for","destination-",t.Name,"-",r,""),l(),F(" ",t.FormView.shortDescription," "),l(),S(t.FormView.longDescription?3:-1),l(),g("id","destination-",t.Name,"-",r,""),_("ngModel",t.Value())}}function he(n,o){if(n&1&&(p(0,"spk-tooltip",27)(1,"spk-icon"),m(2,"question"),a()()),n&2){let e=s(2).$implicit;_("message",e.FormView.longDescription)}}function Me(n,o){if(n&1){let e=x();p(0,"app-size",33),b("ngModelChange",function(t){d(e);let r=s().$implicit;return D(r.Value,t)||(r.Value=t),u(t)}),p(1,"label",26),m(2),C(3,he,3,1,"spk-tooltip",27),a()()}if(n&2){let e,i=s(),t=i.$implicit,r=i.$index;_("inputType",t.Name),v("ngModel",t.Value),_("customId","destination-{{ item.Name }}-{{ $index }}"),l(),g("for","destination-",t.Name,"-",r,""),l(),F(" ",(e=t.FormView.shortDescription)!==null&&e!==void 0?e:t.FormView.name," "),l(),S(t.FormView.longDescription?3:-1)}}function Ne(n,o){if(n&1&&(p(0,"spk-tooltip",27)(1,"spk-icon"),m(2,"question"),a()()),n&2){let e=s(2).$implicit;_("message",e.FormView.longDescription)}}function $e(n,o){if(n&1){let e=x();p(0,"spk-form-field")(1,"label",26),m(2),C(3,Ne,3,1,"spk-tooltip",27),a(),p(4,"input",34),f("ngModelChange",function(t){d(e);let r=s().$implicit,c=s();return u(c.updateSettingValue(r,t))}),a(),p(5,"spk-icon",25),m(6,"numpad"),a()()}if(n&2){let e=s(),i=e.$implicit,t=e.$index;l(),g("for","destination-",i.Name,"-",t,""),l(),F(" ",i.FormView.shortDescription," "),l(),S(i.FormView.longDescription?3:-1),l(),g("id","destination-",i.Name,"-",t,""),_("ngModel",i.Value())}}function Pe(n,o){if(n&1&&(p(0,"spk-tooltip",27)(1,"spk-icon"),m(2,"question"),a()()),n&2){let e=s(2).$implicit;_("message",e.FormView.longDescription)}}function Ee(n,o){if(n&1){let e=x();p(0,"spk-toggle",21)(1,"label",26),m(2),C(3,Pe,3,1,"spk-tooltip",27),a(),p(4,"input",35),f("ngModelChange",function(t){d(e);let r=s().$implicit,c=s();return u(c.updateSettingValue(r,t))}),a()()}if(n&2){let e=s(),i=e.$implicit,t=e.$index;l(),g("for","destination-",i.Name,"-",t,""),l(),F(" ",i.FormView.shortDescription," "),l(),S(i.FormView.longDescription?3:-1),l(),g("id","destination-",i.Name,"-",t,""),_("ngModel",i.Value())}}function Le(n,o){if(n&1&&(p(0,"spk-tooltip",27)(1,"spk-icon"),m(2,"question"),a()()),n&2){let e=s(2).$implicit;_("message",e.FormView.longDescription)}}function ve(n,o){if(n&1&&m(0),n&2){let e=o.$implicit;F(" ",e," ")}}function De(n,o){if(n&1){let e=x();p(0,"spk-select",36)(1,"label",26),m(2),C(3,Le,3,1,"spk-tooltip",27),a(),p(4,"input",37),f("ngModelChange",function(t){d(e);let r=s().$implicit,c=s();return u(c.updateSettingValue(r,t))}),a()(),C(5,ve,1,1,"ng-template",null,2,A)}if(n&2){let e=E(6),i=s(),t=i.$implicit,r=i.$index;_("options",t.FormView.options)("selectMultiple",!0)("optionTemplate",e),l(),g("for","destination-",t.Name,"-",r,""),l(),F(" ",t.FormView.shortDescription," "),l(),S(t.FormView.longDescription?3:-1),l(),_("ngModel",t.Value())}}function be(n,o){if(n&1&&(p(0,"spk-tooltip",27)(1,"spk-icon"),m(2,"question"),a()()),n&2){let e=s(2).$implicit;_("message",e.FormView.longDescription)}}function Ae(n,o){if(n&1){let e=x();p(0,"app-timespan",33),b("ngModelChange",function(t){d(e);let r=s().$implicit;return D(r.Value,t)||(r.Value=t),u(t)}),p(1,"label",26),m(2),C(3,be,3,1,"spk-tooltip",27),a()()}if(n&2){let e,i=s(),t=i.$implicit,r=i.$index;_("inputType",t.Name),v("ngModel",t.Value),_("customId","destination-{{ item.Name }}-{{ $index }}"),l(),g("for","destination-",t.Name,"-",r,""),l(),F(" ",(e=t.FormView.shortDescription)!==null&&e!==void 0?e:t.FormView.name," "),l(),S(t.FormView.longDescription?3:-1)}}function Re(n,o){if(n&1){let e=x();p(0,"div",13),C(1,de,12,3,"div",17)(2,ge,5,14,"app-file-tree",18)(3,xe,5,10,"app-file-tree",19)(4,Te,7,10,"spk-form-field")(5,Oe,8,10,"spk-form-field")(6,Ie,7,12)(7,Me,4,8,"app-size",20)(8,$e,7,9,"spk-form-field")(9,Ee,5,9,"spk-toggle",21)(10,De,7,9)(11,Ae,4,8,"app-timespan",20),p(12,"button",22),f("click",function(){let t=d(e).$implicit,r=s();return u(r.removeSetting(t))}),p(13,"spk-icon"),m(14,"x-bold"),a()()()}if(n&2){let e=o.$implicit;l(),S(e.FormView.type==="FreeText"?1:e.FormView.type==="FileTree"?2:e.FormView.type==="FolderTree"?3:e.FormView.type==="String"||e.FormView.type==="Path"||e.FormView.type==="Decimal"?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"||e.FormView.type==="DateTime"?11:-1)}}var ae=class n{#e=B(Y);options=G.required();hiddenOptions=I([]);hasFreeTextSettings=I(!1);allOptionsGrouped=this.#e.allOptionsGrouped;allOptions=this.#e.allOptions;selectedSettings=R(()=>{let o=this.hiddenOptions();return this.options().map(i=>{let t=this.allOptions().find(r=>r.name===i.Name);if(t&&!o.includes(t.name)){let r=i.Value??"";t.type==="Boolean"&&(r=r&&r.toLowerCase()==="true"||!1),t.type==="Integer"&&(r=parseInt(r)||0);let c=h(r);return w(T({},i),{Value:c,FormView:t})}else if(this.hasFreeTextSettings())return w(T({},i),{Value:h(i.Value),FormView:{name:i.Name,type:"FreeText",shortDescription:"Custom settings argument",longDescription:"Custom settings argument"}});return null}).filter(i=>i!==null)});nonSelectedOptionsGrouped=R(()=>{let o=this.options().map(i=>i.Name),e=this.hiddenOptions();return this.allOptionsGrouped().map(i=>w(T({},i),{options:i.options.filter(t=>!o.includes(t.name)&&!e.includes(t.name))})).filter(i=>i.options.length>0)});addFreeTextSetting(){this.hasFreeTextSettings()&&this.options.update(o=>[...o,{Filter:null,Name:"",Value:""}])}addSetting(o){this.options.update(e=>{let i=o.defaultValue??"";return o.type==="Boolean"&&(i=i.toLowerCase()==="true"||!1),o.type==="Integer"&&(i=parseInt(i)||0),[...e,{Name:o.name,Value:i}]})}updateSettingValue(o,e){this.options.update(i=>{let t=[...i],r=t.findIndex(c=>c.Name===o.Name);return o.FormView.type==="Boolean"?(t[r].Value=e?"True":"False",t):o.FormView.type==="Integer"?(t[r].Value=e.toString(),t):(t[r].Value=e,t)})}updateFreeTextSettingName(o,e){this.options.update(i=>{let t=[...i],r=t.findIndex(c=>c.Name===o.Name);return t[r].Name=e,t})}removeSetting(o){this.options.update(e=>e.filter(i=>i.Name!==o.Name))}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=z({type:n,selectors:[["app-options-list"]],inputs:{options:[1,"options"],hiddenOptions:[1,"hiddenOptions"],hasFreeTextSettings:[1,"hasFreeTextSettings"]},outputs:{options:"optionsChange"},decls:16,vars:4,consts:()=>{let o;o=$localize`Advanced options`;let e;e=$localize` Add advanced option ${"\uFFFD#9\uFFFD"}:START_TAG_SPK_ICON:plus${"\uFFFD/#9\uFFFD"}:CLOSE_TAG_SPK_ICON:`;let i;return i=$localize` New custom option ${"\uFFFD#2\uFFFD"}:START_TAG_SPK_ICON:pen${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SPK_ICON:`,[["option",""],["enumOptionTemplate",""],["optionTemplate",""],o,e,i,[3,"disallowToggle"],["title",""],[1,"actions"],["spk-button","","type","button",1,"outlined","small"],[3,"searchable"],["menu",""],[1,"placeholder"],[1,"field-row"],["spk-button","","type","button",1,"outlined","small",3,"click"],["type","button"],["type","button",3,"click"],[1,"form-column"],[3,"startingPath","accepts","showFiles","showHiddenNodes","selectFiles"],[3,"startingPath"],[3,"inputType","ngModel","customId"],[1,"primary","raised"],["spk-button","","type","button",1,"outlined","remove-btn",3,"click"],[1,"form-row"],["type","text",3,"ngModelChange","ngModel"],["prefix",""],[3,"for"],[1,"primary",3,"message"],["type","text",3,"ngModelChange","id","ngModel"],["autocomplete","off",3,"ngModelChange","type","id","ngModel"],["suffix","",1,"clickable"],["suffix","",1,"clickable",3,"click"],[3,"options","isClearable","optionTemplate"],[3,"ngModelChange","inputType","ngModel","customId"],["type","number",3,"ngModelChange","id","ngModel"],["type","checkbox",3,"ngModelChange","id","ngModel"],[1,"primary","raised",3,"options","selectMultiple","optionTemplate"],["type","text","id","text",3,"ngModelChange","ngModel"]]},template:function(e,i){e&1&&(p(0,"spk-toggle-card",6),N(1,7)(2),q(3,3),k(),p(4,"div",8),C(5,se,3,0,"button",9),p(6,"spk-menu",10)(7,"button",9),$(8,4),M(9,"spk-icon"),P(),a(),N(10,11),O(11,_e,4,1,null,null,V),k(),a()(),k(),C(13,ce,2,0,"div",12),O(14,Re,15,1,"div",13,V),a()),e&2&&(_("disallowToggle",!0),l(5),S(i.hasFreeTextSettings()?5:-1),l(),_("searchable",!0),l(5),y(i.nonSelectedOptionsGrouped()),l(2),S(i.selectedSettings().length===0?13:-1),l(),y(i.selectedSettings()))},dependencies:[oe,ee,ne,Z,te,ie,re,H,W,U,X,Q,K,j,J,le,pe],styles:["[_nghost-%COMP%]{display:block}spk-select[_ngcontent-%COMP%]{--miw: p2r(120)}spk-toggle[_ngcontent-%COMP%] spk-icon[_ngcontent-%COMP%]{font-size:1rem}.placeholder[_ngcontent-%COMP%]{color:var(--base-level-60R);text-align:center;padding:2rem 1rem}.field-row[_ngcontent-%COMP%]{display:grid;align-items:center;grid-template-columns:1fr 2.5rem;gap:.5rem}.field-row[_ngcontent-%COMP%] .remove-btn[_ngcontent-%COMP%]{align-self:flex-end}.form-column[_ngcontent-%COMP%]{display:flex;gap:.25rem;flex-direction:column}.form-column[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem}.form-column[_ngcontent-%COMP%] spk-icon[_ngcontent-%COMP%]{font-size:1rem}.form-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:3fr 1fr;gap:.5rem;align-items:flex-end}.actions[_ngcontent-%COMP%]{display:flex;gap:.5rem;justify-content:flex-end}"],changeDetection:0})};export{ae as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as g}from"./chunk-
|
|
1
|
+
import{n as g}from"./chunk-OAPBYB5L.js";import"./chunk-6DH6O5YE.js";import"./chunk-DAPUSIR2.js";import"./chunk-VN7JM6M3.js";import"./chunk-KSP3JQHY.js";import{a as k}from"./chunk-HTNYQE2B.js";import"./chunk-SAVY3OEX.js";import{a as I}from"./chunk-IA2ZYSD7.js";import"./chunk-7L42EO7J.js";import"./chunk-FEJAAP54.js";import{a as N}from"./chunk-2AA7RP36.js";import"./chunk-RHW5QVAY.js";import"./chunk-O2YN63YI.js";import"./chunk-T2OUHRUV.js";import"./chunk-FSGJ5KIH.js";import"./chunk-I3C2AEHI.js";import{b as P,c as h,e as E,f as B}from"./chunk-QVIZK4WW.js";import"./chunk-WMTA6PZM.js";import{p as $,q as M,v as b}from"./chunk-WX7L7V6J.js";import{b as O}from"./chunk-PTDSOPNK.js";import"./chunk-MZ473NLM.js";import"./chunk-DE4NDI5F.js";import"./chunk-CKPICCFH.js";import"./chunk-PFYOWXZZ.js";import{Bc as A,E as m,Gb as d,Hb as c,Qa as r,Y as l,ab as f,fb as C,kc as R,nb as u,nc as _,sb as D,wb as s,xb as p,yb as n}from"./chunk-W2F756OF.js";import"./chunk-7CGTOI24.js";var K=(i,e)=>[i,e,"general"],L=(i,e)=>[i,e,"destination"],v=(i,e)=>[i,e,"source-data"],G=(i,e)=>[i,e,"schedule"],y=(i,e)=>[i,e,"options"];function U(i,e){i&1&&n(0,"spk-progress-bar",6)}function X(i,e){i&1&&(s(0,"section"),n(1,"router-outlet"),p())}var T=class i{#t=l(P);#e=l(g);#a=l(N);#i=l(O);isDraft=this.#e.isDraft;backupId=this.#e.backupId;finishedLoading=this.#e.finishedLoading;#o=k(this.#t.params);#n=k(this.#t.url);paramsChanged=A(()=>{let e=this.#o()?.id,a=!!this.#n()?.find(t=>t.path==="backup-draft");this.#e.backupId.set(e),e!=="new"?this.getBackup(e,a):this.getDefaults()});getDefaults(){this.#i.getApiV1Backupdefaults().pipe(m(1)).subscribe({next:e=>{this.#e.mapScheduleToForm(e.Schedule),this.#e.mapOptionsToForms(e.Backup),this.#e.backupDefaults.set(e),this.#e.finishedLoading.set(!0)}})}getBackup(e,a=!1){let t=o=>{this.#e.mapScheduleToForm(o.Schedule??null),o.Backup&&(this.#e.mapGeneralToForm(o.Backup),this.#e.mapDestinationToForm(o.Backup),this.#e.mapSourceDataToForm(o.Backup),this.#e.mapOptionsToForms(o.Backup)),this.#e.finishedLoading.set(!0)};if(a){this.isDraft.set(a);let o=this.#a.draftBackups().find(F=>F.id===e);if(!o){alert("Backup not found");return}t(o.data)}else this.#i.getApiV1BackupById({id:e}).subscribe({next:t})}static \u0275fac=function(a){return new(a||i)};static \u0275cmp=f({type:i,selectors:[["app-backup"]],features:[R([g])],decls:20,vars:21,consts:()=>{let e;e=$localize`${"\uFFFD#5\uFFFD"}:START_TAG_SPK_RADIO:${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_RADIO: General `;let a;a=$localize`${"\uFFFD#8\uFFFD"}:START_TAG_SPK_RADIO:${"\uFFFD/#8\uFFFD"}:CLOSE_TAG_SPK_RADIO: Destination `;let t;t=$localize`${"\uFFFD#11\uFFFD"}:START_TAG_SPK_RADIO:${"\uFFFD/#11\uFFFD"}:CLOSE_TAG_SPK_RADIO: Source Data `;let o;o=$localize`${"\uFFFD#14\uFFFD"}:START_TAG_SPK_RADIO:${"\uFFFD/#14\uFFFD"}:CLOSE_TAG_SPK_RADIO: Schedule `;let F;return F=$localize`${"\uFFFD#17\uFFFD"}:START_TAG_SPK_RADIO:${"\uFFFD/#17\uFFFD"}:CLOSE_TAG_SPK_RADIO: Options `,[e,a,t,o,F,["step","","routerLinkActive","active",3,"routerLink"],[1,"indeterminate","primary"]]},template:function(a,t){a&1&&(n(0,"app-status-bar"),s(1,"header")(2,"spk-stepper")(3,"div",5),d(4,0),n(5,"spk-radio"),c(),p(),s(6,"div",5),d(7,1),n(8,"spk-radio"),c(),p(),s(9,"div",5),d(10,2),n(11,"spk-radio"),c(),p(),s(12,"div",5),d(13,3),n(14,"spk-radio"),c(),p(),s(15,"div",5),d(16,4),n(17,"spk-radio"),c(),p()()(),C(18,U,1,0,"spk-progress-bar",6)(19,X,2,0,"section")),a&2&&(r(3),u("routerLink",_(6,K,t.isDraft()?"/backup-draft":"/backup",t.backupId())),r(3),u("routerLink",_(9,L,t.isDraft()?"/backup-draft":"/backup",t.backupId())),r(3),u("routerLink",_(12,v,t.isDraft()?"/backup-draft":"/backup",t.backupId())),r(3),u("routerLink",_(15,G,t.isDraft()?"/backup-draft":"/backup",t.backupId())),r(3),u("routerLink",_(18,y,t.isDraft()?"/backup-draft":"/backup",t.backupId())),r(3),D(t.finishedLoading()?19:18))},dependencies:[h,E,B,I,M,b,$],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%}header[_ngcontent-%COMP%]{padding:1rem 1.5rem;border-bottom:1px solid var(--base-level-40)}header[_ngcontent-%COMP%] spk-stepper[_ngcontent-%COMP%]{width:100%}section[_ngcontent-%COMP%]{width:100%;display:flex;justify-content:center;flex:1 0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:auto}"],changeDetection:0})};export{T as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{g as a,h as b,i as c}from"./chunk-
|
|
1
|
+
import{g as a,h as b,i as c}from"./chunk-OAPBYB5L.js";import"./chunk-6DH6O5YE.js";import"./chunk-DAPUSIR2.js";import"./chunk-VN7JM6M3.js";import"./chunk-KSP3JQHY.js";import"./chunk-HTNYQE2B.js";import"./chunk-SAVY3OEX.js";import"./chunk-7L42EO7J.js";import"./chunk-RHW5QVAY.js";import"./chunk-T2OUHRUV.js";import"./chunk-QVIZK4WW.js";import"./chunk-WMTA6PZM.js";import"./chunk-WX7L7V6J.js";import"./chunk-PTDSOPNK.js";import"./chunk-MZ473NLM.js";import"./chunk-CKPICCFH.js";import"./chunk-W2F756OF.js";import"./chunk-7CGTOI24.js";export{b as NONE_OPTION,a as createGeneralForm,c as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{d as a,e as b,f as c}from"./chunk-
|
|
1
|
+
import{d as a,e as b,f as c}from"./chunk-OAPBYB5L.js";import"./chunk-6DH6O5YE.js";import"./chunk-DAPUSIR2.js";import"./chunk-VN7JM6M3.js";import"./chunk-KSP3JQHY.js";import"./chunk-HTNYQE2B.js";import"./chunk-SAVY3OEX.js";import"./chunk-7L42EO7J.js";import"./chunk-RHW5QVAY.js";import"./chunk-T2OUHRUV.js";import"./chunk-QVIZK4WW.js";import"./chunk-WMTA6PZM.js";import"./chunk-WX7L7V6J.js";import"./chunk-PTDSOPNK.js";import"./chunk-MZ473NLM.js";import"./chunk-CKPICCFH.js";import"./chunk-W2F756OF.js";import"./chunk-7CGTOI24.js";export{a as createDestinationForm,b as createDestinationFormGroup,c as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./chunk-7CGTOI24.js";var o=[{path:"",redirectTo:"select-files",pathMatch:"full"},{path:"destination",loadComponent:()=>import("./chunk-UEZFRBEJ.js")},{path:"encryption",loadComponent:()=>import("./chunk-5YI264K5.js")},{path:"select-files",loadComponent:()=>import("./chunk-3LISV2IH.js")},{path:"options",loadComponent:()=>import("./chunk-Y4K6X2Q2.js")},{path:"progress",loadComponent:()=>import("./chunk-47JKJRCG.js")}],t=o;export{t as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as be}from"./chunk-SAVY3OEX.js";import{s as xe}from"./chunk-T2OUHRUV.js";import{a as me,f as Ce,l as Pe,n as Ee,p as ve,z as Te}from"./chunk-WX7L7V6J.js";import{b as ge}from"./chunk-PTDSOPNK.js";import{i as fe}from"./chunk-CKPICCFH.js";import{$b as S,Ac as W,B as ne,Bb as z,Bc as A,Cb as B,F as q,Ib as $,Jb as ae,Kb as ce,Mb as R,Nb as u,Ob as de,Pb as D,Qa as m,Xa as K,Y as X,Yb as J,Zb as pe,_b as Y,ab as ie,bc as ue,da as N,ea as k,fb as M,mc as V,n as ee,nb as U,nc as he,ob as se,pb as T,qa as Q,r as L,ra as v,sb as F,sc as _e,ua as O,ub as re,vb as oe,wb as h,x as te,xb as f,yb as le}from"./chunk-W2F756OF.js";import{a as j,b as G}from"./chunk-7CGTOI24.js";var we=["treeContainer"],ye=["formRef"],Ne=[[["label"]],[["label"]],[["input"]]],ke=["label","label","input"],Re=s=>({children:s,level:0}),Me=s=>({$implicit:s}),Ie=(s,t)=>({children:s,level:t}),We=(s,t)=>t.id;function Ae(s,t){if(s&1){let e=B();h(0,"spk-button-group")(1,"button",13),R("click",function(){N(e);let i=u();return k(i.pathDiscoveryMethod.set("browse"))}),$(2,4),f(),h(3,"button",13),R("click",function(){N(e);let i=u();return k(i.pathDiscoveryMethod.set("path"))}),$(4,5),f()()}if(s&2){let e=u();m(),T("active",e.pathDiscoveryMethod()==="browse"),m(2),T("active",e.pathDiscoveryMethod()==="path")}}function Le(s,t){s&1&&le(0,"spk-progress-bar",9)}function Be(s,t){s&1&&(h(0,"spk-icon",18),S(1,"caret-down"),f(),h(2,"spk-icon",16),S(3,"folder-open"),f())}function $e(s,t){s&1&&(h(0,"spk-icon"),S(1,"file"),f())}function De(s,t){s&1&&(h(0,"spk-icon",18),S(1,"caret-right"),f(),h(2,"spk-icon",16),S(3,"folder"),f())}function Ve(s,t){if(s&1&&M(0,Be,4,0)(1,$e,2,0,"spk-icon")(2,De,4,0),s&2){let e=u(2).$implicit;F(e.children.length?0:e.cls==="file"?1:2)}}function He(s,t){s&1&&(h(0,"spk-icon",16),S(1,"desktop-tower"),f())}function je(s,t){s&1&&z(0)}function Ge(s,t){if(s&1&&M(0,je,1,0,"ng-container",10),s&2){let e=u(2).$implicit,n=u().$implicit;u();let i=Y(7);U("ngTemplateOutlet",i)("ngTemplateOutletContext",V(5,Me,he(2,Ie,e.children,n.level+1)))}}function qe(s,t){if(s&1){let e=B();h(0,"div",14,3),R("click",function(){N(e);let i=u().$implicit,o=u(2);return k(o.toggleNode(i.id,i))}),h(2,"div",15),M(3,Ve,3,1)(4,He,2,0,"spk-icon",16),f(),h(5,"div",17),R("click",function(i){N(e);let o=u().$implicit,a=u(2);return k(a.toggleSelectedNode(i,o))}),S(6),f()(),M(7,Ge,1,7,"ng-container")}if(s&2){let e=u().$implicit,n=u().$implicit,i=u();T("accepted",e.accepted===!0)("active",e.evalState===i.TreeEvalEnum.Included)("indeterminate",e.isIndeterminate)("open",e.children.length)("usually-hidden",e.hidden)("root",n.level===0),m(2),T("file",e.cls==="file"),m(),F(e.id!=="/"?3:4),m(3),ue(" ",e.text," "),m(),F(e.children.length>0?7:-1)}}function Xe(s,t){if(s&1&&M(0,qe,8,17),s&2){let e=t.$implicit,n=u(2);F(e.hidden&&n._showHiddenNodes()||!e.hidden?0:-1)}}function Qe(s,t){if(s&1&&(h(0,"spk-list"),re(1,Xe,1,1,null,null,We),f()),s&2){let e=t.$implicit;se("padding-left",e.level*.25,"rem"),m(),oe(e.children)}}function Ke(s,t){s&1&&z(0)}function Ue(s,t){if(s&1){let e=B();h(0,"spk-toggle",19),R("click",function(){N(e);let i=u();return k(i._showHiddenNodes.set(!i._showHiddenNodes()))}),$(1,6),f()}if(s&2){let e=u();T("active",e._showHiddenNodes()),m(),ae(e.showFiles()?"files":"folders"),ce(1)}}var Oe=(o=>(o[o.ExcludedByParent=-2]="ExcludedByParent",o[o.Excluded=-1]="Excluded",o[o.None=0]="None",o[o.Included=1]="Included",o[o.IncludedByParent=2]="IncludedByParent",o))(Oe||{}),Z=class s{#e=X(ge);#t=X(be);multiSelect=v(!1);disabled=v(!1);showFiles=v(!1);selectFiles=v(!1);accepts=v(null);startingPath=v(null);rootPaths=v([]);backupSettings=v(null);pathRefreshTrigger=v(!1);showHiddenNodes=v(!1);hideShortcuts=v(!1);includes=Q();excludes=Q();_showHiddenNodes=O(!1);treeContainerRef=K("treeContainer");formRef=K("formRef");pathDiscoveryMethod=O("browse");isLoading=O(!1);currentPath=O("/");#n=O(null);treeSearchQuery=O("");treeNodes=O([]);isWindows=W(()=>this.#t.systemInfo()?.OSType==="Windows");filterGroups=this.#t.filterGroups();isByBackupSettings=W(()=>{let t=this.backupSettings();return!(t===void 0||t?.id===void 0||t?.time===void 0)});searchableTreeNodes=W(()=>{let t=this.treeSearchQuery();return t?this.treeNodes().filter(e=>e.text?.toLowerCase().includes(t.toLowerCase())):this.treeNodes()});TreeEvalEnum=Oe;treeStructure=W(()=>{let t=this.showHiddenNodes(),e=this.currentPath().split("\0").filter(r=>r!==""&&r!=="/"),n=structuredClone(e);for(let r=0;r<n.length;r++){let c=n[r].slice(1);if(c.startsWith("{")&&c.endsWith("}")){let p=c.slice(1,-1),d=this.filterGroups?.FilterGroups[p];if(d&&d.length){let b=d.map(P=>`-${P}`);n.splice(r,1,...b)}}}let i=this.searchableTreeNodes(),o=this.rootPaths(),a=this.accepts(),C=this.isWindows(),l=[];return o.length>0?l=o.map(r=>({id:r,resolvedpath:r,text:r,parentPath:"",children:[],evalState:0,isIndeterminate:!1,cls:"folder"})):l=[{id:"/",resolvedpath:"/",text:"Computer",parentPath:"",children:[],evalState:0,isIndeterminate:!1,cls:"folder"}],l.map(r=>{let g=new Map,c=r?.id;a&&(r.accepted=!0),g.set(r.id,r);let p=o.length>0?i.filter(d=>d.parentPath===r.id):i;for(let d of p){let b=o.length>0?d.id.replace(c??"",""):d.id,P=C?"\\":"/",_=b.split(P).filter(Boolean),E="",x=r;for(let H of _){if(E+=H+P,!g.has(E)){let I=d.hidden===!0&&t?0:this.#o(n,d.id,d.cls,x,C),w={id:d.id,isIndeterminate:this.isIndeterminate(n,d.id),evalState:I,parentPath:E,resolvedpath:d.id?.startsWith("%")?d.resolvedpath+P:E,hidden:d.hidden,text:d.text,cls:d.cls,children:[]};a&&(w.accepted=this.matchAccepts(a,w)),g.set(E,w),x.children.push(w)}x=g.get(E)}}return r}),l});#o(t,e,n,i,o){if(i.evalState===-1)return-2;let a=0,C=t.filter(r=>!r.startsWith("-")&&!r.startsWith("+")),l=t.filter(r=>r.startsWith("-")||r.startsWith("+"));if(C.length===0)return a;for(let r=0;r<C.length;r++){let g=C[r];if(e?.startsWith(g)){a=1;break}}if(l.length===0)return a;for(let r=0;r<l.length;r++){let g=l[r],c=g.slice(1),p=g.startsWith("-")?"exclude":"include",d=o?"\\":"/";if((o?c.slice(2):c).startsWith(d)&&c.endsWith(d)){if(n!=="folder")continue;if(e===c){a=p==="include"?1:-1;break}}if(c.startsWith("*")&&c.endsWith(`*${d}`)){if(n!=="folder")continue;let _=c.slice(1,-2);if(_==="")break;if(e?.includes(_+d)){a=p==="include"?1:-1;break}}if(c.startsWith("[.*")&&c.endsWith(`[^\\${d}]*]`)){if(n!=="file")continue;let _=c.slice(3,-7);if(new RegExp(_).test(e)){a=p==="include"?1:-1;break}}if(c.startsWith("[")&&c.endsWith("]")){let _=c.slice(1,-1),E=this.translateCSharpRegex(_);if(new RegExp(`${E}`).test(e)){a=p==="include"?1:-1;break}}if(c.startsWith("*.")){if(n!=="file"||c.replace("*.","").length===0)continue;if(this.#s(e,c,!0)){a=p==="include"?1:-1;break}}if(c==="")continue;if(c===e){a=p==="include"?1:-1;break}if(this.#s(e,c,!0)){a=p==="include"?1:-1;break}}return a}translateCSharpRegex(t){let e=t;e=e.replace(/^@/,"");let n=/\(\?<(?<name>\w+)>(?<pattern>[^)]+)\)/g;return e=e.replace(n,(i,o,a)=>`(${a})`),e=e.replace(/\\/g,"\\\\"),e}isIndeterminate(t,e){return t.some(n=>n.startsWith(e))}#s(t,e,n=!1){let i=e.replace(/\*/g,".*").replace(/\?/g,".").replace(/\[!([^\]]+)\]/g,"[^$1]");return new RegExp(`${i}${n?"$":""}`).test(t)}showHiddenNodesEffect=A(()=>this._showHiddenNodes.set(this.showHiddenNodes()));pathDiscoveryMethodEffect=A(()=>{let t=this.pathDiscoveryMethod(),e=this.#n();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 i="."+e.id.slice(e.id.indexOf("."));return i?n.some(o=>i.endsWith(o)):!1}currentPathEffect=A(()=>{let t=this.#n();t&&(t.value=this.currentPath(),t.dispatchEvent(new Event("input")))});inputValueChangeAbortController=null;inputRefEffect=A(()=>{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.#n.set(t),t.autocomplete="off")});ngOnInit(){let t=this.startingPath();if(t)this.currentPath.set(t),this.#p(t);else{let e=this.rootPaths();e&&e.length>0?this.#i(null,e[0]):this.#i(null,"/")}}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 i=this.currentPath().split("\0").filter(a=>a!==""&&a!=="/"),o=this.isChildOfSelected(e)?`-${e.id}`:e.id;this.multiSelect()?i.includes(e.id)?this.currentPath.set(i.filter(a=>a!==e.id).join("\0")):i.some(a=>a.startsWith(o))?this.currentPath.set(i.filter(a=>a!==o).join("\0")):this.currentPath.set([...i,o].join("\0")):i.includes(e.id)?this.currentPath.set(i.filter(a=>a!==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(i=>!i.id?.startsWith(e.id)||i.id===e.id)):this.#i(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.#e.postApiV1Filesystem({showHidden:!0,requestBody:{path:t},onlyFolders:!this.showFiles()})}#d(t){let e=this.backupSettings();if(this.#t.hasV2ListOperations())return this.#e.postApiV2BackupListFolder({requestBody:{BackupId:e.id,Time:e.time,Paths:t?[t]:null,PageSize:0,Page:0}}).pipe(L(n=>n.Data??[]));{let n={id:e.id+"",prefixOnly:!1,folderContents:!0,time:e.time,filter:t?"@"+t:void 0};return this.#e.getApiV1BackupByIdFiles(n).pipe(L(i=>i.Files??[]))}}#r(t){return this.isByBackupSettings()?this.#d(t):this.#c(t)}#p(t){let e=this.isWindows(),n=t.split("\0").filter(l=>l.startsWith("-")).map(l=>l.slice(1,-1)),i=t.split("\0").filter(l=>!l.startsWith("-")).filter(Boolean),o=i.map(l=>l.split(e?"\\":"/").filter(r=>r.includes(".")?!1:r)),a=["/"];o.forEach(l=>{l.forEach((r,g)=>{let c=l.slice(0,g+1).join(e?"\\":"/"),p=c;p.indexOf(":")===-1&&!p.startsWith("%")&&(p="/"+c),a.includes(p)||a.push(p)})}),this.isLoading.set(!0);let C=a.map(l=>this.#r(l).pipe(L(r=>({status:"success",value:r,url:l})),ne(r=>ee({status:"error",value:r,url:l}))));te(C).pipe(q(()=>this.isLoading.set(!1))).subscribe({next:l=>{let r=l.filter(c=>c.status==="success"),g=l.filter(c=>c.status==="error");this.treeNodes.update(c=>{let p=r.flatMap(b=>b.value.map(P=>{let _=P.id,E=P.id.startsWith("%")&&P.id.endsWith("%")?P.resolvedpath+"/":P.id,x=_&&_.split("/").filter(Boolean).slice(0,-1).join("/"),I="/"+(_&&_.split("/").filter(Boolean).join("/")),w=i.findIndex(y=>this.multiSelect()?I.startsWith(y):I===y)>-1,Fe=i.findIndex(y=>y===_)>-1,Se=n.findIndex(y=>y===I)>-1;return G(j({},P),{cls:E.endsWith("/")||E.endsWith("\\")?"folder":"file",parentPath:x.startsWith("%")?x:"/"+x,isSelected:w&&!Se||Fe})})),d=[...new Map([...c,...p].map(b=>[b.id,b])).values()];return this.#l(),d})}})}#i(t=null,e="/"){this.isLoading.set(!0),this.#r(e).pipe(q(()=>this.isLoading.set(!1))).subscribe({next:n=>{let i=this.isByBackupSettings()?n.map(o=>{let C=o.Path.includes("\\")?"\\":"/";return{text:o.Path.split(C).filter(l=>l!=="").pop(),id:o.Path,cls:o.Path.endsWith(C)?"folder":"file",leaf:t!==null,resolvedpath:o.Path,hidden:!1}}):n;this.treeNodes.update(o=>{let a=i.map(l=>{let g=l.id.includes("\\")?"\\":"/",c=l.id.startsWith("%")&&l.id.endsWith("%")||l.id.endsWith(g)?"folder":"file";return G(j({},l),{cls:c,parentPath:e})}),C=[...new Map([...o,...a].map(l=>[l.id,l])).values()];return this.hideShortcuts()?C.filter(l=>!l.id.startsWith("%")):C})}})}static \u0275fac=function(e){return new(e||s)};static \u0275cmp=ie({type:s,selectors:[["app-file-tree"]],viewQuery:function(e,n){e&1&&(J(n.treeContainerRef,we,5),J(n.formRef,ye,5)),e&2&&pe(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"],rootPaths:[1,"rootPaths"],backupSettings:[1,"backupSettings"],pathRefreshTrigger:[1,"pathRefreshTrigger"],showHiddenNodes:[1,"showHiddenNodes"],hideShortcuts:[1,"hideShortcuts"]},outputs:{includes:"includes",excludes:"excludes"},ngContentSelectors:ke,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&&(de(Ne),M(0,Ae,5,4,"spk-button-group"),h(1,"div",7),D(2,0,["ngProjectAs","label",5,["label"]]),h(3,"div",8,0),M(5,Le,1,0,"spk-progress-bar",9)(6,Qe,3,2,"ng-template",null,1,_e)(8,Ke,1,0,"ng-container",10),f(),M(9,Ue,2,3,"spk-toggle",11),f(),h(10,"div",12,2)(12,"spk-form-field"),D(13,1,["ngProjectAs","label",5,["label"]]),D(14,2,["ngProjectAs","input",5,["input"]]),f()()),e&2){let i=Y(7);F(n.multiSelect()?-1:0),m(),T("hidden",n.pathDiscoveryMethod()!=="browse"),m(2),T("visualize-accepted",n.accepts()),m(2),F(n.isLoading()?5:-1),m(3),U("ngTemplateOutlet",i)("ngTemplateOutletContext",V(13,Me,V(11,Re,n.treeStructure()))),m(),F(!n.accepts()&&!n.isByBackupSettings()?9:-1),m(),T("hidden",n.pathDiscoveryMethod()!=="path")}},dependencies:[Ce,Te,me,Pe,Ee,ve,fe,xe],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 +1 @@
|
|
|
1
|
-
import{n as re}from"./chunk-QO6SPSAF.js";import"./chunk-6DH6O5YE.js";import"./chunk-TQGG56ZZ.js";import"./chunk-VN7JM6M3.js";import"./chunk-KSP3JQHY.js";import{a as Tt}from"./chunk-HTNYQE2B.js";import{a as ut}from"./chunk-IXM6PMZU.js";import{a as Z}from"./chunk-SAVY3OEX.js";import{a as St}from"./chunk-XJXOUOD5.js";import{a as gt}from"./chunk-VAOJO535.js";import{a as pt}from"./chunk-7L42EO7J.js";import"./chunk-SZ64OOBT.js";import"./chunk-VOGYVLLM.js";import"./chunk-RHW5QVAY.js";import"./chunk-O2YN63YI.js";import{c as J,e as Y,h as ee,l as ct,s as te,t as ne}from"./chunk-T2OUHRUV.js";import"./chunk-FSGJ5KIH.js";import{a as nt}from"./chunk-I3C2AEHI.js";import"./chunk-QVIZK4WW.js";import"./chunk-WMTA6PZM.js";import{A as dt,a as q,b as j,e as it,g as K,k as ot,l as Q,p as st,q as at,r as rt,t as lt,z as _t}from"./chunk-WX7L7V6J.js";import{b as v}from"./chunk-PTDSOPNK.js";import"./chunk-MZ473NLM.js";import"./chunk-DE4NDI5F.js";import"./chunk-CKPICCFH.js";import"./chunk-PFYOWXZZ.js";import{$b as R,Ac as $,B as k,Bc as b,Cb as P,F as I,Gb as z,Hb as U,Ib as r,Jb as se,Kb as ae,Lb as Ze,Mb as S,Na as qe,Nb as p,Qa as l,Qb as Je,S as V,Xa as je,Y as T,Yb as Ye,Zb as et,a as Be,ab as L,ac as B,b as We,bc as W,c as He,da as m,ea as C,ec as y,fb as f,fc as G,gc as A,kb as Ke,kc as tt,lb as Qe,lc as H,n as w,nb as h,pb as N,sb as E,ua as c,wb as i,xb as o,yb as O}from"./chunk-W2F756OF.js";import"./chunk-7CGTOI24.js";var F=class s{#e=T(v);#t=Tt(this.#e.getApiV1Serversettings());#n=c(void 0);serverSettings=$(()=>this.#n()||this.#t());refreshServerSettings(){this.#e.getApiV1Serversettings().subscribe({next:e=>{this.#n.set(e)}})}static \u0275fac=function(t){return new(t||s)};static \u0275prov=V({token:s,factory:s.\u0275fac,providedIn:"root"})};var Et=["formRef"],ft=()=>[import("./chunk-SITZCHGF.js").then(s=>s.OptionsListComponent)];function Nt(s,e){s&1&&(i(0,"spk-alert",3),r(1,1),o())}function Mt(s,e){if(s&1){let t=P();i(0,"app-options-list",5),A("optionsChange",function(a){m(t);let d=p();return G(d.settings,a)||(d.settings=a),C(a)}),o()}if(s&2){let t=p();y("options",t.settings),h("hasFreeTextSettings",!0)}}var ht=["Bytes","KB","MB","GB","TB","PB"],D=class s{#e=T(re);#t=T(F);#n=T(v);formRef=je.required("formRef");settings=this.#e.settings;isSubmitting=c(!1);isLoadingOptions=c(!0);saved=c(!1);sizeOptions=c(ht);lastRecievedServerSettings=c({});serverSettingsEffect=b(()=>{let e=this.#t.serverSettings();if(e===void 0)return;this.lastRecievedServerSettings.set(e),this.isLoadingOptions.set(!0);let t=Object.entries(e);t.forEach(([n,a],d)=>{if(n.startsWith("--")){let u=n.replace("--","");this.settings.update(g=>(g.some(M=>M.Name===u)||g.push({Name:u,Value:a}),g))}d===t.length-1&&this.isLoadingOptions.set(!1)})});submit(){this.isSubmitting.set(!0);let e=this.settings(),t=this.lastRecievedServerSettings(),n=e.map(g=>g.Name),d=Object.keys(t).filter(g=>!n.includes(g.replace("--",""))),u=e.reduce((g,M)=>(g[`--${M.Name}`]=M.Value,g),{});d.forEach(g=>{u[g]=null}),this.#n.patchApiV1Serversettings({requestBody:u}).pipe(I(()=>this.isSubmitting.set(!1))).subscribe({next:()=>{this.#t.refreshServerSettings(),this.saved.set(!0),setTimeout(()=>{this.saved.set(!1)},3e3)}})}static \u0275fac=function(t){return new(t||s)};static \u0275cmp=L({type:s,selectors:[["app-advanced-options-settings"]],viewQuery:function(t,n){t&1&&Ye(n.formRef,Et,5),t&2&&et()},features:[tt([re])],decls:8,vars:4,consts:()=>{let e;e=$localize`${"\uFFFD#4\uFFFD"}:START_TAG_SPK_ICON:floppy-disk${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_SPK_ICON: Save settings `;let t;return t=$localize`Settings saved`,[e,t,[1,"actions"],[1,"success"],["spk-button","","type","button",1,"raised","primary",3,"click"],[3,"optionsChange","options","hasFreeTextSettings"]]},template:function(t,n){t&1&&(i(0,"div",2),f(1,Nt,2,0,"spk-alert",3),i(2,"button",4),S("click",function(){return n.submit()}),z(3,0),O(4,"spk-icon"),U(),o()(),f(5,Mt,1,2),Ke(6,5,ft)),t&2&&(l(),E(n.saved()?1:-1),l(),N("loader",n.isSubmitting()),l(4),Qe(!n.isLoadingOptions()))},dependencies:[ne,K,q,j],styles:["[_nghost-%COMP%]{display:block;width:100%;max-width:40.625rem;justify-self:flex-end}.actions[_ngcontent-%COMP%]{display:flex;gap:.5rem;justify-content:flex-end;margin-bottom:.5rem}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.form-column[_ngcontent-%COMP%]{display:flex;flex-direction:column}.form-column[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem}.form-column[_ngcontent-%COMP%] spk-icon[_ngcontent-%COMP%]{font-size:1rem}.field-row[_ngcontent-%COMP%]{display:grid;align-items:flex-end;grid-template-columns:1fr 2.5rem;gap:.5rem}.form-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:3fr 1fr;gap:.5rem;align-items:flex-end}.form-wrap[_ngcontent-%COMP%]{display:grid;grid-template-columns:2fr 2.5rem;gap:.5rem;align-items:flex-end}.remote-volume-wrap[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem}.remote-volume-wrap[_ngcontent-%COMP%] p.warning[_ngcontent-%COMP%]{color:#7d7d00}.row-inputs[_ngcontent-%COMP%]{display:flex;align-items:flex-end;gap:.5rem}.row-inputs[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{flex:1 0}.advanced-option[_ngcontent-%COMP%]{display:grid;gap:.5rem;grid-template-columns:1fr 1fr 40px;align-items:flex-end}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"],changeDetection:0})};var x=class s{#e=T(it);#t=T(v);#n=T(Z);repeatRegisterTimer=null;state=c("unknown");claimUrl=c(null);registerUrl=c("");status=$(()=>{let e=this.state();return e==="enabled"?"Remote control is enabled but not connected":e==="connected"?"Remote control is connected":e==="registering"?"Registering machine...":e==="registeringfaulted"?"Registration failed":e==="registered"?"Registered, waiting for accept":e==="disabled"?"Remote control is configured but not enabled":e==="unknown"?"...loading...":"Remote control is not set up"});sysInfoEffect=b(()=>{let e=this.#n.systemInfo();e&&this.registerUrl.set(e.RemoteControlRegistrationUrl??"")});#i(e){e.RegistrationUrl&&this.claimUrl.set(e.RegistrationUrl),e.IsConnected?this.state.set("connected"):e.IsEnabled?this.state.set("enabled"):e.CanEnable?this.state.set("disabled"):e.IsRegisteringFaulted?this.state.set("registeringfaulted"):e.IsRegistering?e.RegistrationUrl!=null&&e.RegistrationUrl.trim().length>0?this.state.set("registered"):this.state.set("registering"):this.state.set("inactive");let t=this.state();this.repeatRegisterTimer!==null&&(clearTimeout(this.repeatRegisterTimer),this.repeatRegisterTimer=null),t==="registering"&&(this.repeatRegisterTimer=setTimeout(()=>{this.#t.postApiV1RemotecontrolRegister({requestBody:{RegistrationUrl:""}}).subscribe({next:n=>this.#i(n),error:n=>this.#o(n)})},5e3)),(t==="enabled"||t==="registered")&&(this.repeatRegisterTimer=setTimeout(()=>{this.#t.getApiV1RemotecontrolStatus().subscribe({next:n=>this.#i(n),error:n=>this.#o(n)})},5e3)),e.IsRegistering&&e.CanEnable&&this.#t.deleteApiV1RemotecontrolRegister().subscribe({next:n=>this.#i(n)})}#o(e){this.#t.getApiV1RemotecontrolStatus().subscribe({next:t=>this.#i(t)})}refreshRemoteControlStatus(){this.#t.getApiV1RemotecontrolStatus().subscribe({next:e=>this.#i(e),error:e=>this.#o(e)})}beginRemoteRegistration(){this.state.set("registering"),this.#t.postApiV1RemotecontrolRegister({requestBody:{RegistrationUrl:this.registerUrl()}}).subscribe({next:e=>this.#i(e),error:e=>this.#o(e)})}cancelRemoteRegistration(){this.#t.deleteApiV1RemotecontrolRegister().subscribe({next:e=>this.#i(e),error:e=>this.#o(e)})}enableRemoteControl(){this.#t.postApiV1RemotecontrolEnable().subscribe({next:e=>this.#i(e),error:e=>this.#o(e)})}disableRemoteControl(){this.#t.postApiV1RemotecontrolDisable().subscribe({next:e=>this.#i(e),error:e=>this.#o(e)})}deleteRemoteControl(){let e=this;this.#e.open(pt,{data:{title:$localize`Confirm delete`,message:$localize`Are you sure you want to delete the remote control registration?`,confirmText:$localize`Delete registration`,cancelText:$localize`Cancel`},closed:t=>{t&&e.#t.deleteApiV1RemotecontrolRegistration().subscribe({next:n=>e.#i(n),error:n=>e.#o(n)})}})}static \u0275fac=function(t){return new(t||s)};static \u0275prov=V({token:s,factory:s.\u0275fac,providedIn:"root"})};function Ot(s,e){if(s&1){let t=P();i(0,"spk-form-field",10)(1,"input",11),A("ngModelChange",function(a){m(t);let d=p(2);return G(d.registerUrl,a)||(d.registerUrl=a),C(a)}),o()(),i(2,"button",12),S("click",function(){m(t);let a=p(2);return C(a.register())}),r(3,0),o()}if(s&2){let t=p(2);l(),y("ngModel",t.registerUrl)}}function Rt(s,e){if(s&1&&(i(0,"div",8)(1,"label"),r(2,1),o(),i(3,"a",13),R(4),o()()),s&2){let t=p(2);l(3),Je("href",t.claimUrl(),qe),l(),B(t.claimUrl())}}function It(s,e){s&1&&(i(0,"div",8)(1,"label"),r(2,2),o()())}function yt(s,e){if(s&1){let t=P();i(0,"button",12),S("click",function(){m(t);let a=p(2);return C(a.cancel())}),r(1,3),o()}}function Gt(s,e){if(s&1){let t=P();i(0,"button",12),S("click",function(){m(t);let a=p(2);return C(a.disable())}),r(1,4),o()}}function At(s,e){if(s&1){let t=P();i(0,"button",12),S("click",function(){m(t);let a=p(2);return C(a.enable())}),r(1,5),o(),i(2,"button",14),S("click",function(){m(t);let a=p(2);return C(a.delete())}),r(3,6),o()}}function vt(s,e){if(s&1&&(i(0,"div",7),f(1,Ot,4,1)(2,Rt,5,2,"div",8)(3,It,3,0,"div",8)(4,yt,2,0,"button",9)(5,Gt,2,0,"button",9)(6,At,4,0),o()),s&2){let t=p();l(),E(t.state()==="inactive"?1:-1),l(),E(t.state()==="registered"?2:-1),l(),E(t.state()==="registering"?3:-1),l(),E(t.state()==="registering"||t.state()==="registeringfaulted"||t.state()==="registered"?4:-1),l(),E(t.state()==="connected"||t.state()==="enabled"?5:-1),l(),E(t.state()==="disabled"?6:-1)}}var oe=class s{#e=T(x);state=this.#e.state;claimUrl=this.#e.claimUrl;registerUrl=this.#e.registerUrl;ngOnInit(){this.#e.refreshRemoteControlStatus()}cancel(){this.#e.cancelRemoteRegistration()}register(){this.#e.beginRemoteRegistration()}disable(){this.#e.disableRemoteControl()}enable(){this.#e.enableRemoteControl()}delete(){this.#e.deleteRemoteControl()}static \u0275fac=function(t){return new(t||s)};static \u0275cmp=L({type:s,selectors:[["app-remote-control"]],decls:1,vars:1,consts:()=>{let e;e=$localize`Register for remote control`;let t;t=$localize`Machine is now registered, open this link to add it to your account:`;let n;n=$localize`Registering, please wait...`;let a;a=$localize`Cancel registration`;let d;d=$localize`Disable remote control`;let u;u=$localize`Enable remote control`;let g;return g=$localize`Delete remote control setup`,[e,t,n,a,d,u,g,[1,"field-row"],[1,"field-col"],["type","button","spk-button","",1,"raised"],["label","Registration URL","for","remoteControlRegisterUrl"],["type","text","spk-input","","id","remoteControlRegisterUrl","name","remoteControlRegisterUrl",3,"ngModelChange","ngModel"],["type","button","spk-button","",1,"raised",3,"click"],["target","_blank",3,"href"],["type","button","spk-button","",1,"raised","error",3,"click"]]},template:function(t,n){t&1&&f(0,vt,7,6,"div",7),t&2&&E(n.state()!=="unknown"?0:-1)},dependencies:[te,J,Y,ee,Q],styles:["[_nghost-%COMP%]{display:block}[_nghost-%COMP%] button[_ngcontent-%COMP%]{white-space:nowrap}.field-row[_ngcontent-%COMP%]{display:flex;gap:.5rem;width:100%}.field-row[_ngcontent-%COMP%] spk-form-field[_ngcontent-%COMP%], .field-row[_ngcontent-%COMP%] spk-select[_ngcontent-%COMP%]{flex:1 0}"],changeDetection:0})};function Ct(...s){let e=c(...s);return Object.defineProperty(e,"value",{get:e.asReadonly(),set:e.set.bind(e)})}var le=()=>({standalone:!0});function $t(s,e){s&1&&(i(0,"spk-icon",69),R(1,"check"),o())}function bt(s,e){s&1&&(i(0,"spk-icon",70),R(1,"prohibit"),o())}function wt(s,e){if(s&1){let t=P();i(0,"button",74),S("click",function(){m(t);let a=p(2);return C(a.updatePassphrase())}),r(1,34),o()}if(s&2){let t=p(2);N("loader",t.isUpdating())}}function kt(s,e){if(s&1){let t=P();i(0,"spk-tooltip",73)(1,"button",75),S("click",function(){m(t);let a=p(2);return C(a.updatePassphrase())}),r(2,35),o()()}if(s&2){let t=p(2);l(),N("loader",t.isUpdating()),h("disabled",!0)}}function Lt(s,e){if(s&1){let t=P();i(0,"spk-form-field")(1,"label",65),r(2,31),o(),i(3,"input",66),A("ngModelChange",function(a){m(t);let d=p();return G(d.passphrase,a)||(d.passphrase=a),C(a)}),o()(),i(4,"spk-form-field")(5,"label",67),r(6,32),o(),i(7,"input",68),A("ngModelChange",function(a){m(t);let d=p();return G(d.repeatPassphrase,a)||(d.repeatPassphrase=a),C(a)}),o(),f(8,$t,2,0,"spk-icon",69)(9,bt,2,0,"spk-icon",70),o(),i(10,"div",48)(11,"button",71),S("click",function(){m(t);let a=p();return C(a.cancelPasswordChange())}),r(12,33),o(),f(13,wt,2,2,"button",72)(14,kt,3,3,"spk-tooltip",73),o()}if(s&2){let t=p();l(3),y("ngModel",t.passphrase),l(4),h("disabled",t.passphrase().length===0),y("ngModel",t.repeatPassphrase),l(),E(t.passphrase().length!==0&&t.passphrase()===t.repeatPassphrase()?8:9),l(3),N("loader",t.isUpdating()),l(2),E(t.passphrase().length!==0&&t.passphrase()===t.repeatPassphrase()?13:14)}}function Ft(s,e){s&1&&(i(0,"spk-icon",76),R(1,"check"),o())}function xt(s,e){if(s&1){let t=P();i(0,"div",48)(1,"button",71),S("click",function(){m(t);let a=p();return C(a.openPassphraseForm())}),r(2,36),o(),f(3,Ft,2,0,"spk-icon",76),o()}if(s&2){let t=p();l(3),E(t.passwordUpdated()?3:-1)}}function Dt(s,e){if(s&1){let t=P();i(0,"spk-form-field")(1,"label",77),r(2,37),o(),i(3,"textarea",78),A("ngModelChange",function(a){m(t);let d=p();return G(d.allowedHostnames,a)||(d.allowedHostnames=a),C(a)}),o()(),i(4,"spk-alert",79),r(5,38),o(),i(6,"button",74),S("click",function(){m(t);let a=p();return C(a.updateAllowedHostnames())}),r(7,39),o()}if(s&2){let t=p();l(3),y("ngModel",t.allowedHostnames),l(3),N("loader",t.updatingAllowedHosts())}}function Xt(s,e){if(s&1&&R(0),s&2){let t,n=p();W(" ",(t=n.sysinfo())==null?null:t.ServerVersion," ")}}function Vt(s,e){s&1&&O(0,"spk-progress-bar",53)}function zt(s,e){if(s&1&&R(0),s&2){let t=e.$implicit;W(" ",t.label," ")}}function Ut(s,e){if(s&1&&R(0),s&2){let t=e.$implicit;W(" ",t.label," ")}}function Bt(s,e,t){let n=Ct(s),a=n[Be];t?.equal&&(a.equal=t.equal);let d;return n.set=u=>{clearTimeout(d),d=setTimeout(()=>We(a,u),e)},n.update=u=>{clearTimeout(d),d=setTimeout(()=>He(a,u),e)},n}var Wt=[{value:"s",label:$localize`Seconds`},{value:"m",label:$localize`Minutes`},{value:"h",label:$localize`Hours`}],Ht=[{value:"none",label:$localize`System default (information)`},{value:"information",label:$localize`Usage statistics, warnings, errors, and crashes`},{value:"warning",label:$localize`Warnings, errors and crashes`},{value:"error",label:$localize`Errors and crashes`},{value:"crash",label:$localize`Crashes only`},{value:"none",label:$localize`None / disabled`}],_e=class s{#e=T(St);#t=T(Z);#n=T(v);#i=T(F);#o=T(x);#s=T(nt);#a=this.#s.getItem("locale")??"en-US";sysinfo=this.#t.systemInfo;isDarkMode=this.#e.isDarkMode;editAs=c("list");previousLang=this.#a;langCtrl=c(this.#a);usageStatistics=c("");updatingUsageStatistics=c(!1);remoteControlStatus=this.#o.status;updatingChannel=c(!1);updateChannel=c("");setNewChannel(e){let t=this.updateChannel();this.updateChannel.set(e),this.#n.patchApiV1Serversettings({requestBody:{"update-channel":e}}).pipe(I(()=>this.updatingChannel.set(!1)),k(()=>(this.updateChannel.set(t),w(null)))).subscribe()}allowRemoteAccess=c(!1);allowedHostnames=c("");loadedAllowedHostnames=c("");updatingRemoteAccess=c(!1);updatingAllowedHosts=c(!1);updateRemoteAccess(){let e=this.allowRemoteAccess(),t=!e;this.allowRemoteAccess.set(t),this.#n.patchApiV1Serversettings({requestBody:{"server-listen-interface":t?"any":"loopback"}}).pipe(I(()=>this.updatingRemoteAccess.set(!1)),k(()=>(this.allowRemoteAccess.set(e),w(null)))).subscribe()}updateAllowedHostnames(){let e=this.loadedAllowedHostnames(),t=this.allowedHostnames();this.updatingAllowedHosts.set(!0),this.#n.patchApiV1Serversettings({requestBody:{"server-listen-interface":"any","allowed-hostnames":t}}).pipe(I(()=>this.updatingAllowedHosts.set(!1)),k(()=>(this.allowedHostnames.set(e),w(null)))).subscribe()}updatingDisableTrayIconLogin=c(!1);disableTrayIconLogin=c(!1);saveDisableTrayIconLogin(){let e=this.disableTrayIconLogin(),t=!e;this.updatingDisableTrayIconLogin.set(!0),this.disableTrayIconLogin.set(t),this.#n.patchApiV1Serversettings({requestBody:{"disable-tray-icon-login":t?"True":"False"}}).pipe(I(()=>this.updatingDisableTrayIconLogin.set(!1)),k(()=>(this.disableTrayIconLogin.set(e),w(null)))).subscribe()}showPassphraseForm=c(!1);isUpdating=c(!1);passphrase=c("");repeatPassphrase=c("");passwordUpdated=c(!1);updatePassphrase(){this.passphrase()===this.repeatPassphrase()&&(this.isUpdating.set(!0),this.#n.patchApiV1Serversettings({requestBody:{"server-passphrase":this.passphrase()}}).pipe(I(()=>this.isUpdating.set(!1))).subscribe({next:()=>{this.showPassphraseForm.set(!1),this.passwordUpdated.set(!0),setTimeout(()=>{this.passwordUpdated.set(!1)},3e3)}}))}openPassphraseForm(){this.showPassphraseForm.set(!0)}cancelPasswordChange(){this.showPassphraseForm.set(!1)}languageOptions=c(ut);usageStatisticsOptions=c(Ht);timeTypeOptions=c(Wt);timeType=c("s");timeValue=Bt(void 0,300);timeRange=$(()=>this.timeType()==="h"?[0,24]:[0,60]);timeValueEffect=b(()=>{let e=this.timeValue();this.updateStartupDelay()});updateLocale(e){!e||e===""||e===this.previousLang||(this.#s.setItem("locale",e),window.location.reload())}updateStartupDelay(){let e=this.#i.serverSettings(),t=this.timeValue(),n=this.timeType(),a=`${t}${n}`;typeof t!="number"||a===""||e&&e["startup-delay"]===a||this.#n.patchApiV1Serversettings({requestBody:{"startup-delay":a==="0s"?"":a}}).subscribe()}updateTimeType(e){this.timeType.set(e)}updateUsageStatistics(e){let t=this.usageStatistics();!e||e===""||e===t||(this.usageStatistics.set(e),this.updatingUsageStatistics.set(!0),this.#n.patchApiV1Serversettings({requestBody:{"usage-reporter-level":this.usageStatistics()==="none"?"":this.usageStatistics()}}).pipe(I(()=>this.updatingUsageStatistics.set(!1)),k(()=>(this.usageStatistics.set(t),w(null)))).subscribe())}serverSettingsEffect=b(()=>{let e=this.#i.serverSettings();if(e===void 0)return;let t=e["startup-delay"],n=t.slice(-1),a=t.slice(0,-1),d=["s","m","h"];this.disableTrayIconLogin.set(e["disable-tray-icon-login"]!=="False"),this.updateChannel.set(e["update-channel"]),this.allowRemoteAccess.set(e["server-listen-interface"]==="any"),this.allowedHostnames.set(e["allowed-hostnames"]),this.loadedAllowedHostnames.set(e["allowed-hostnames"]),this.usageStatistics.set(e["usage-reporter-level"]===""?"none":e["usage-reporter-level"]),this.timeType.set(d.includes(n)?n:"s"),this.timeValue.set(parseInt(a==""?"0":a))});setDarkMode(){this.#e.setDarkMode()}setLightMode(){this.#e.setLightMode()}static \u0275fac=function(t){return new(t||s)};static \u0275cmp=L({type:s,selectors:[["app-settings"]],decls:132,vars:45,consts:()=>{let e;e=$localize`Settings`;let t;t=$localize`Configure your backup settings.`;let n;n=$localize`Remote access control`;let a;a=$localize`Color theme`;let d;d=$localize`Customize your application theme`;let u;u=$localize`Passwords`;let g;g=$localize`Change server passphrase`;let M;M=$localize`Language`;let de;de=$localize`Select a language for the platform`;let ce;ce=$localize`Allow remote access (requires restart)`;let pe;pe=$localize` By allowing remote access, the server listens to requests from any machine on your network. If you enable this option, make sure you are always using the computer on a secure firewall protected network. `;let Se;Se=$localize`Allow remote access`;let ge;ge=$localize`Prevent tray icon automatic log-in`;let Te;Te=$localize` By default, the tray icon will open the user interface with a token that unlocks the user interface. This ensures that you can access the user interface from the tray icon, while requiring others to enter a password. If you prefer having to type in the password, even when accessing the user interface from the tray icon, enable this option. `;let ue;ue=$localize`Prevent tray icon automatic log-in`;let me;me=$localize`Update channel`;let Ce;Ce=$localize` Default (${"\uFFFD0\uFFFD"}:INTERPOLATION:) `;let Ee;Ee=$localize`Same as the base install version: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let fe;fe=$localize`Stable`;let Ne;Ne=$localize`Official releases`;let Me;Me=$localize`Beta`;let he;he=$localize` Try out the new features that we are working on. Currently the most stable version available. Test Restore data before using this in production environments. `;let Pe;Pe=$localize` Experimental `;let Oe;Oe=$localize`Specific builds for developers only. Not for use with important data.`;let Re;Re=$localize`Canary`;let Ie;Ie=$localize`Individual builds for developers only. Not for use with important data.`;let ye;ye=$localize`Pause after startup or hibernation`;let Ge;Ge=$localize` Duplicati will run when started, but will remain in paused state for the duration. Duplicati will occupy minimal system resources and no backups will be run. `;let Ae;Ae=$localize`Usage statistics`;let X;X=$localize` Usage reports help us improve the user experience and evaluate impact of new features. We use them to generate ${"\uFFFD#119\uFFFD"}:START_LINK:public usage statistics.${"\uFFFD/#119\uFFFD"}:CLOSE_LINK:${"[\uFFFD#120\uFFFD\uFFFD/#120\uFFFD|\uFFFD#121\uFFFD\uFFFD/#121\uFFFD]"}:LINE_BREAK:${"[\uFFFD#120\uFFFD\uFFFD/#120\uFFFD|\uFFFD#121\uFFFD\uFFFD/#121\uFFFD]"}:LINE_BREAK: All usage reports are sent anonymously and do not contain any personal information. They contain information about hardware and operating system, the type of backend, backup duration, overall size of source data and similar data. They do not contain paths, filenames, usernames, passwords or similar sensitive information. `,X=Ze(X);let ve;ve=$localize`Advanced options`;let $e;$e=$localize`Enter new password`;let be;be=$localize`Repeat password`;let we;we=$localize`Password have to be filled and have to match`;let ke;ke=$localize`Passphrase`;let Le;Le=$localize`Repeat passphrase`;let Fe;Fe=$localize`Cancel`;let xe;xe=$localize` Update passphrase `;let De;De=$localize` Update passphrase `;let Xe;Xe=$localize`Change password`;let Ve;Ve=$localize`Allowed hostnames`;let ze;ze=$localize` To prevent various DNS based attacks, Duplicati limits the allowed hostnames to the ones listed here. Direct IP access and localhost is always allowed. Multiple hostnames can be supplied with a semicolon separator. If any of the allowed hostnames is an asterisk (*), all hostnames are allowed and this feature is disabled. If the field is empty, only IP address and localhost access is allowed. `;let Ue;return Ue=$localize` Update allowed hostnames `,[e,t,n,a,d,u,g,M,de,ce,pe,Se,ge,Te,ue,me,Ce,Ee,fe,Ne,Me,he,Pe,Oe,Re,Ie,ye,Ge,Ae,X,ve,ke,Le,Fe,xe,De,Xe,Ve,ze,Ue,[1,"content"],[1,"title"],[1,"left"],[1,"right"],[1,"themes"],["src","assets/images/light-theme.png","alt","light theme",3,"click"],["src","assets/images/dark-theme.png","alt","dark theme",3,"click"],[1,"right","passphrase-form"],[1,"actions"],["value","value","label","label",3,"options","isClearable","inlineSearch"],["type","text",3,"ngModelChange","ngModel","ngModelOptions"],[1,"right","remote-access-form"],[1,"primary","raised",3,"click"],[1,"indeterminate","primary"],[1,"right","radios"],[1,"radio-option",3,"click"],[1,"primary","raised"],[1,"field-row"],[1,"raised","primary",3,"unit"],["type","range",3,"min","max","ngModel","ngModelOptions"],["label","label","value","value",3,"options","isClearable"],["type","text",3,"ngModelChange","ngModel"],["href","#"],["label","label","value","value",3,"options","isLoading"],[1,"advanced-settings"],["for","password"],["type","password","name","password","autocomplete","disabled","placeholder",$e,"tabindex","1",3,"ngModelChange","ngModel"],["for","repeatPassword"],["type","password","name","repeatPassword","autocomplete","disabled","placeholder",be,"tabindex","2",3,"ngModelChange","disabled","ngModel"],["suffix","",1,"spk-success"],["suffix",""],["spk-button","",3,"click"],["spk-button","",1,"raised","primary",3,"loader"],["message",we,1,"primary"],["spk-button","",1,"raised","primary",3,"click"],["spk-button","",1,"raised","primary",3,"click","disabled"],[1,"spk-success"],["for","allowedHostnames"],["type","text","id","allowedHostnames",3,"ngModelChange","ngModel"],["type","primary"]]},template:function(t,n){if(t&1&&(O(0,"app-status-bar"),i(1,"div",40)(2,"header")(3,"div",41)(4,"h2"),r(5,0),o(),i(6,"p"),r(7,1),o()()(),i(8,"section")(9,"div",42)(10,"h3"),r(11,2),o(),i(12,"p"),R(13),o()(),i(14,"div",43),O(15,"app-remote-control"),o()(),i(16,"section")(17,"div",42)(18,"h3"),r(19,3),o(),i(20,"p"),r(21,4),o()(),i(22,"div",43)(23,"div",44)(24,"img",45),S("click",function(){return n.setLightMode()}),o(),i(25,"img",46),S("click",function(){return n.setDarkMode()}),o()()()(),i(26,"section")(27,"div",42)(28,"h3"),r(29,5),o(),i(30,"p"),r(31,6),o()(),i(32,"div",47),f(33,Lt,15,7)(34,xt,4,1,"div",48),o()(),i(35,"section")(36,"div",42)(37,"h3"),r(38,7),o(),i(39,"p"),r(40,8),o()(),i(41,"div",43)(42,"spk-select",49)(43,"input",50),S("ngModelChange",function(d){return n.updateLocale(d)}),o()()()(),i(44,"section")(45,"div",42)(46,"h3"),r(47,9),o(),i(48,"p"),r(49,10),o()(),i(50,"div",51)(51,"spk-toggle",52),S("click",function(){return n.updateRemoteAccess()}),i(52,"label"),r(53,11),o()(),f(54,Dt,8,3),o()(),i(55,"section")(56,"div",42)(57,"h3"),r(58,12),o(),i(59,"p"),r(60,13),o()(),i(61,"div",43)(62,"spk-toggle",52),S("click",function(){return n.saveDisableTrayIconLogin()}),i(63,"label"),r(64,14),o()()()(),i(65,"section")(66,"div",42)(67,"h3"),r(68,15),o(),i(69,"p"),f(70,Xt,1,1),o(),f(71,Vt,1,0,"spk-progress-bar",53),o(),i(72,"div",54)(73,"div",55),S("click",function(){return n.setNewChannel("")}),i(74,"spk-radio",56),r(75,16),o(),i(76,"p"),r(77,17),o()(),i(78,"div",55),S("click",function(){return n.setNewChannel("stable")}),i(79,"spk-radio",56),r(80,18),o(),i(81,"p"),r(82,19),o()(),i(83,"div",55),S("click",function(){return n.setNewChannel("beta")}),i(84,"spk-radio",56),r(85,20),o(),i(86,"p"),r(87,21),o()(),i(88,"div",55),S("click",function(){return n.setNewChannel("experimental")}),i(89,"spk-radio",56),r(90,22),o(),i(91,"p"),r(92,23),o()(),i(93,"div",55),S("click",function(){return n.setNewChannel("canary")}),i(94,"spk-radio",56),r(95,24),o(),i(96,"p"),r(97,25),o()()()()(),O(98,"spk-divider"),i(99,"div",40)(100,"section")(101,"div",42)(102,"h3"),r(103,26),o(),i(104,"p"),r(105,27),o()(),i(106,"div",43)(107,"div",57)(108,"spk-range-slider",58),O(109,"input",59),o(),i(110,"spk-select",60)(111,"input",61),S("ngModelChange",function(d){return n.updateTimeType(d)}),o(),f(112,zt,1,1,"ng-template"),o()()()(),i(113,"section")(114,"div",42)(115,"h3"),r(116,28),o(),i(117,"p"),z(118,29),O(119,"a",62)(120,"br")(121,"br"),U(),o()(),i(122,"div",43)(123,"spk-select",63)(124,"input",50),S("ngModelChange",function(d){return n.updateUsageStatistics(d)}),o(),f(125,Ut,1,1,"ng-template"),o()()()(),i(126,"div",40)(127,"section")(128,"div",64)(129,"h3"),r(130,30),o(),O(131,"app-advanced-options-settings"),o()()()),t&2){let a,d,u;l(13),B(n.remoteControlStatus()),l(11),N("active",!n.isDarkMode()),l(),N("active",n.isDarkMode()),l(8),E(n.showPassphraseForm()?33:34),l(9),h("options",n.languageOptions())("isClearable",!1)("inlineSearch",!0),l(),h("ngModel",n.langCtrl())("ngModelOptions",H(42,le)),l(8),N("active",n.allowRemoteAccess()),l(3),E(n.allowRemoteAccess()?54:-1),l(8),N("active",n.disableTrayIconLogin()),l(8),E(n.updateChannel()!==""&&((a=n.sysinfo())!=null&&a.ServerVersion)?70:-1),l(),E(n.updatingChannel()?71:-1),l(3),N("active",n.updateChannel()===""),l(),se((d=n.sysinfo())==null?null:d.DefaultUpdateChannel),ae(75),l(2),se((u=n.sysinfo())==null?null:u.ServerVersionType),ae(77),l(2),N("active",n.updateChannel()==="stable"),l(5),N("active",n.updateChannel()==="beta"),l(5),N("active",n.updateChannel()==="experimental"),l(5),N("active",n.updateChannel()==="canary"),l(14),h("unit",n.timeType()),l(),h("min",n.timeRange()[0])("max",n.timeRange()[1])("ngModel",n.timeValue)("ngModelOptions",H(43,le)),l(),h("options",n.timeTypeOptions())("isClearable",!1),l(),h("ngModel",n.timeType()),l(12),h("options",n.usageStatisticsOptions())("isLoading",n.updatingUsageStatistics()),l(),h("ngModel",n.usageStatistics())("ngModelOptions",H(44,le))}},dependencies:[te,J,ct,Y,ee,ne,gt,oe,D,K,at,rt,st,_t,dt,Q,q,ot,j,lt],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{Bt as debounceSignal,_e as default};
|
|
1
|
+
import{n as re}from"./chunk-OAPBYB5L.js";import"./chunk-6DH6O5YE.js";import"./chunk-DAPUSIR2.js";import"./chunk-VN7JM6M3.js";import"./chunk-KSP3JQHY.js";import{a as Tt}from"./chunk-HTNYQE2B.js";import{a as ut}from"./chunk-IXM6PMZU.js";import{a as Z}from"./chunk-SAVY3OEX.js";import{a as St}from"./chunk-XJXOUOD5.js";import{a as gt}from"./chunk-IA2ZYSD7.js";import{a as pt}from"./chunk-7L42EO7J.js";import"./chunk-FEJAAP54.js";import"./chunk-2AA7RP36.js";import"./chunk-RHW5QVAY.js";import"./chunk-O2YN63YI.js";import{c as J,e as Y,h as ee,l as ct,s as te,t as ne}from"./chunk-T2OUHRUV.js";import"./chunk-FSGJ5KIH.js";import{a as nt}from"./chunk-I3C2AEHI.js";import"./chunk-QVIZK4WW.js";import"./chunk-WMTA6PZM.js";import{A as dt,a as q,b as j,e as it,g as K,k as ot,l as Q,p as st,q as at,r as rt,t as lt,z as _t}from"./chunk-WX7L7V6J.js";import{b as v}from"./chunk-PTDSOPNK.js";import"./chunk-MZ473NLM.js";import"./chunk-DE4NDI5F.js";import"./chunk-CKPICCFH.js";import"./chunk-PFYOWXZZ.js";import{$b as R,Ac as $,B as k,Bc as b,Cb as P,F as I,Gb as z,Hb as U,Ib as r,Jb as se,Kb as ae,Lb as Ze,Mb as S,Na as qe,Nb as p,Qa as l,Qb as Je,S as V,Xa as je,Y as T,Yb as Ye,Zb as et,a as Be,ab as L,ac as B,b as We,bc as W,c as He,da as m,ea as C,ec as y,fb as f,fc as G,gc as A,kb as Ke,kc as tt,lb as Qe,lc as H,n as w,nb as h,pb as N,sb as E,ua as c,wb as i,xb as o,yb as O}from"./chunk-W2F756OF.js";import"./chunk-7CGTOI24.js";var F=class s{#e=T(v);#t=Tt(this.#e.getApiV1Serversettings());#n=c(void 0);serverSettings=$(()=>this.#n()||this.#t());refreshServerSettings(){this.#e.getApiV1Serversettings().subscribe({next:e=>{this.#n.set(e)}})}static \u0275fac=function(t){return new(t||s)};static \u0275prov=V({token:s,factory:s.\u0275fac,providedIn:"root"})};var Et=["formRef"],ft=()=>[import("./chunk-IMFJPM7A.js").then(s=>s.OptionsListComponent)];function Nt(s,e){s&1&&(i(0,"spk-alert",3),r(1,1),o())}function Mt(s,e){if(s&1){let t=P();i(0,"app-options-list",5),A("optionsChange",function(a){m(t);let d=p();return G(d.settings,a)||(d.settings=a),C(a)}),o()}if(s&2){let t=p();y("options",t.settings),h("hasFreeTextSettings",!0)}}var ht=["Bytes","KB","MB","GB","TB","PB"],D=class s{#e=T(re);#t=T(F);#n=T(v);formRef=je.required("formRef");settings=this.#e.settings;isSubmitting=c(!1);isLoadingOptions=c(!0);saved=c(!1);sizeOptions=c(ht);lastRecievedServerSettings=c({});serverSettingsEffect=b(()=>{let e=this.#t.serverSettings();if(e===void 0)return;this.lastRecievedServerSettings.set(e),this.isLoadingOptions.set(!0);let t=Object.entries(e);t.forEach(([n,a],d)=>{if(n.startsWith("--")){let u=n.replace("--","");this.settings.update(g=>(g.some(M=>M.Name===u)||g.push({Name:u,Value:a}),g))}d===t.length-1&&this.isLoadingOptions.set(!1)})});submit(){this.isSubmitting.set(!0);let e=this.settings(),t=this.lastRecievedServerSettings(),n=e.map(g=>g.Name),d=Object.keys(t).filter(g=>!n.includes(g.replace("--",""))),u=e.reduce((g,M)=>(g[`--${M.Name}`]=M.Value,g),{});d.forEach(g=>{u[g]=null}),this.#n.patchApiV1Serversettings({requestBody:u}).pipe(I(()=>this.isSubmitting.set(!1))).subscribe({next:()=>{this.#t.refreshServerSettings(),this.saved.set(!0),setTimeout(()=>{this.saved.set(!1)},3e3)}})}static \u0275fac=function(t){return new(t||s)};static \u0275cmp=L({type:s,selectors:[["app-advanced-options-settings"]],viewQuery:function(t,n){t&1&&Ye(n.formRef,Et,5),t&2&&et()},features:[tt([re])],decls:8,vars:4,consts:()=>{let e;e=$localize`${"\uFFFD#4\uFFFD"}:START_TAG_SPK_ICON:floppy-disk${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_SPK_ICON: Save settings `;let t;return t=$localize`Settings saved`,[e,t,[1,"actions"],[1,"success"],["spk-button","","type","button",1,"raised","primary",3,"click"],[3,"optionsChange","options","hasFreeTextSettings"]]},template:function(t,n){t&1&&(i(0,"div",2),f(1,Nt,2,0,"spk-alert",3),i(2,"button",4),S("click",function(){return n.submit()}),z(3,0),O(4,"spk-icon"),U(),o()(),f(5,Mt,1,2),Ke(6,5,ft)),t&2&&(l(),E(n.saved()?1:-1),l(),N("loader",n.isSubmitting()),l(4),Qe(!n.isLoadingOptions()))},dependencies:[ne,K,q,j],styles:["[_nghost-%COMP%]{display:block;width:100%;max-width:40.625rem;justify-self:flex-end}.actions[_ngcontent-%COMP%]{display:flex;gap:.5rem;justify-content:flex-end;margin-bottom:.5rem}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.form-column[_ngcontent-%COMP%]{display:flex;flex-direction:column}.form-column[_ngcontent-%COMP%] label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem}.form-column[_ngcontent-%COMP%] spk-icon[_ngcontent-%COMP%]{font-size:1rem}.field-row[_ngcontent-%COMP%]{display:grid;align-items:flex-end;grid-template-columns:1fr 2.5rem;gap:.5rem}.form-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:3fr 1fr;gap:.5rem;align-items:flex-end}.form-wrap[_ngcontent-%COMP%]{display:grid;grid-template-columns:2fr 2.5rem;gap:.5rem;align-items:flex-end}.remote-volume-wrap[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem}.remote-volume-wrap[_ngcontent-%COMP%] p.warning[_ngcontent-%COMP%]{color:#7d7d00}.row-inputs[_ngcontent-%COMP%]{display:flex;align-items:flex-end;gap:.5rem}.row-inputs[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{flex:1 0}.advanced-option[_ngcontent-%COMP%]{display:grid;gap:.5rem;grid-template-columns:1fr 1fr 40px;align-items:flex-end}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"],changeDetection:0})};var x=class s{#e=T(it);#t=T(v);#n=T(Z);repeatRegisterTimer=null;state=c("unknown");claimUrl=c(null);registerUrl=c("");status=$(()=>{let e=this.state();return e==="enabled"?"Remote control is enabled but not connected":e==="connected"?"Remote control is connected":e==="registering"?"Registering machine...":e==="registeringfaulted"?"Registration failed":e==="registered"?"Registered, waiting for accept":e==="disabled"?"Remote control is configured but not enabled":e==="unknown"?"...loading...":"Remote control is not set up"});sysInfoEffect=b(()=>{let e=this.#n.systemInfo();e&&this.registerUrl.set(e.RemoteControlRegistrationUrl??"")});#i(e){e.RegistrationUrl&&this.claimUrl.set(e.RegistrationUrl),e.IsConnected?this.state.set("connected"):e.IsEnabled?this.state.set("enabled"):e.CanEnable?this.state.set("disabled"):e.IsRegisteringFaulted?this.state.set("registeringfaulted"):e.IsRegistering?e.RegistrationUrl!=null&&e.RegistrationUrl.trim().length>0?this.state.set("registered"):this.state.set("registering"):this.state.set("inactive");let t=this.state();this.repeatRegisterTimer!==null&&(clearTimeout(this.repeatRegisterTimer),this.repeatRegisterTimer=null),t==="registering"&&(this.repeatRegisterTimer=setTimeout(()=>{this.#t.postApiV1RemotecontrolRegister({requestBody:{RegistrationUrl:""}}).subscribe({next:n=>this.#i(n),error:n=>this.#o(n)})},5e3)),(t==="enabled"||t==="registered")&&(this.repeatRegisterTimer=setTimeout(()=>{this.#t.getApiV1RemotecontrolStatus().subscribe({next:n=>this.#i(n),error:n=>this.#o(n)})},5e3)),e.IsRegistering&&e.CanEnable&&this.#t.deleteApiV1RemotecontrolRegister().subscribe({next:n=>this.#i(n)})}#o(e){this.#t.getApiV1RemotecontrolStatus().subscribe({next:t=>this.#i(t)})}refreshRemoteControlStatus(){this.#t.getApiV1RemotecontrolStatus().subscribe({next:e=>this.#i(e),error:e=>this.#o(e)})}beginRemoteRegistration(){this.state.set("registering"),this.#t.postApiV1RemotecontrolRegister({requestBody:{RegistrationUrl:this.registerUrl()}}).subscribe({next:e=>this.#i(e),error:e=>this.#o(e)})}cancelRemoteRegistration(){this.#t.deleteApiV1RemotecontrolRegister().subscribe({next:e=>this.#i(e),error:e=>this.#o(e)})}enableRemoteControl(){this.#t.postApiV1RemotecontrolEnable().subscribe({next:e=>this.#i(e),error:e=>this.#o(e)})}disableRemoteControl(){this.#t.postApiV1RemotecontrolDisable().subscribe({next:e=>this.#i(e),error:e=>this.#o(e)})}deleteRemoteControl(){let e=this;this.#e.open(pt,{data:{title:$localize`Confirm delete`,message:$localize`Are you sure you want to delete the remote control registration?`,confirmText:$localize`Delete registration`,cancelText:$localize`Cancel`},closed:t=>{t&&e.#t.deleteApiV1RemotecontrolRegistration().subscribe({next:n=>e.#i(n),error:n=>e.#o(n)})}})}static \u0275fac=function(t){return new(t||s)};static \u0275prov=V({token:s,factory:s.\u0275fac,providedIn:"root"})};function Ot(s,e){if(s&1){let t=P();i(0,"spk-form-field",10)(1,"input",11),A("ngModelChange",function(a){m(t);let d=p(2);return G(d.registerUrl,a)||(d.registerUrl=a),C(a)}),o()(),i(2,"button",12),S("click",function(){m(t);let a=p(2);return C(a.register())}),r(3,0),o()}if(s&2){let t=p(2);l(),y("ngModel",t.registerUrl)}}function Rt(s,e){if(s&1&&(i(0,"div",8)(1,"label"),r(2,1),o(),i(3,"a",13),R(4),o()()),s&2){let t=p(2);l(3),Je("href",t.claimUrl(),qe),l(),B(t.claimUrl())}}function It(s,e){s&1&&(i(0,"div",8)(1,"label"),r(2,2),o()())}function yt(s,e){if(s&1){let t=P();i(0,"button",12),S("click",function(){m(t);let a=p(2);return C(a.cancel())}),r(1,3),o()}}function Gt(s,e){if(s&1){let t=P();i(0,"button",12),S("click",function(){m(t);let a=p(2);return C(a.disable())}),r(1,4),o()}}function At(s,e){if(s&1){let t=P();i(0,"button",12),S("click",function(){m(t);let a=p(2);return C(a.enable())}),r(1,5),o(),i(2,"button",14),S("click",function(){m(t);let a=p(2);return C(a.delete())}),r(3,6),o()}}function vt(s,e){if(s&1&&(i(0,"div",7),f(1,Ot,4,1)(2,Rt,5,2,"div",8)(3,It,3,0,"div",8)(4,yt,2,0,"button",9)(5,Gt,2,0,"button",9)(6,At,4,0),o()),s&2){let t=p();l(),E(t.state()==="inactive"?1:-1),l(),E(t.state()==="registered"?2:-1),l(),E(t.state()==="registering"?3:-1),l(),E(t.state()==="registering"||t.state()==="registeringfaulted"||t.state()==="registered"?4:-1),l(),E(t.state()==="connected"||t.state()==="enabled"?5:-1),l(),E(t.state()==="disabled"?6:-1)}}var oe=class s{#e=T(x);state=this.#e.state;claimUrl=this.#e.claimUrl;registerUrl=this.#e.registerUrl;ngOnInit(){this.#e.refreshRemoteControlStatus()}cancel(){this.#e.cancelRemoteRegistration()}register(){this.#e.beginRemoteRegistration()}disable(){this.#e.disableRemoteControl()}enable(){this.#e.enableRemoteControl()}delete(){this.#e.deleteRemoteControl()}static \u0275fac=function(t){return new(t||s)};static \u0275cmp=L({type:s,selectors:[["app-remote-control"]],decls:1,vars:1,consts:()=>{let e;e=$localize`Register for remote control`;let t;t=$localize`Machine is now registered, open this link to add it to your account:`;let n;n=$localize`Registering, please wait...`;let a;a=$localize`Cancel registration`;let d;d=$localize`Disable remote control`;let u;u=$localize`Enable remote control`;let g;return g=$localize`Delete remote control setup`,[e,t,n,a,d,u,g,[1,"field-row"],[1,"field-col"],["type","button","spk-button","",1,"raised"],["label","Registration URL","for","remoteControlRegisterUrl"],["type","text","spk-input","","id","remoteControlRegisterUrl","name","remoteControlRegisterUrl",3,"ngModelChange","ngModel"],["type","button","spk-button","",1,"raised",3,"click"],["target","_blank",3,"href"],["type","button","spk-button","",1,"raised","error",3,"click"]]},template:function(t,n){t&1&&f(0,vt,7,6,"div",7),t&2&&E(n.state()!=="unknown"?0:-1)},dependencies:[te,J,Y,ee,Q],styles:["[_nghost-%COMP%]{display:block}[_nghost-%COMP%] button[_ngcontent-%COMP%]{white-space:nowrap}.field-row[_ngcontent-%COMP%]{display:flex;gap:.5rem;width:100%}.field-row[_ngcontent-%COMP%] spk-form-field[_ngcontent-%COMP%], .field-row[_ngcontent-%COMP%] spk-select[_ngcontent-%COMP%]{flex:1 0}"],changeDetection:0})};function Ct(...s){let e=c(...s);return Object.defineProperty(e,"value",{get:e.asReadonly(),set:e.set.bind(e)})}var le=()=>({standalone:!0});function $t(s,e){s&1&&(i(0,"spk-icon",69),R(1,"check"),o())}function bt(s,e){s&1&&(i(0,"spk-icon",70),R(1,"prohibit"),o())}function wt(s,e){if(s&1){let t=P();i(0,"button",74),S("click",function(){m(t);let a=p(2);return C(a.updatePassphrase())}),r(1,34),o()}if(s&2){let t=p(2);N("loader",t.isUpdating())}}function kt(s,e){if(s&1){let t=P();i(0,"spk-tooltip",73)(1,"button",75),S("click",function(){m(t);let a=p(2);return C(a.updatePassphrase())}),r(2,35),o()()}if(s&2){let t=p(2);l(),N("loader",t.isUpdating()),h("disabled",!0)}}function Lt(s,e){if(s&1){let t=P();i(0,"spk-form-field")(1,"label",65),r(2,31),o(),i(3,"input",66),A("ngModelChange",function(a){m(t);let d=p();return G(d.passphrase,a)||(d.passphrase=a),C(a)}),o()(),i(4,"spk-form-field")(5,"label",67),r(6,32),o(),i(7,"input",68),A("ngModelChange",function(a){m(t);let d=p();return G(d.repeatPassphrase,a)||(d.repeatPassphrase=a),C(a)}),o(),f(8,$t,2,0,"spk-icon",69)(9,bt,2,0,"spk-icon",70),o(),i(10,"div",48)(11,"button",71),S("click",function(){m(t);let a=p();return C(a.cancelPasswordChange())}),r(12,33),o(),f(13,wt,2,2,"button",72)(14,kt,3,3,"spk-tooltip",73),o()}if(s&2){let t=p();l(3),y("ngModel",t.passphrase),l(4),h("disabled",t.passphrase().length===0),y("ngModel",t.repeatPassphrase),l(),E(t.passphrase().length!==0&&t.passphrase()===t.repeatPassphrase()?8:9),l(3),N("loader",t.isUpdating()),l(2),E(t.passphrase().length!==0&&t.passphrase()===t.repeatPassphrase()?13:14)}}function Ft(s,e){s&1&&(i(0,"spk-icon",76),R(1,"check"),o())}function xt(s,e){if(s&1){let t=P();i(0,"div",48)(1,"button",71),S("click",function(){m(t);let a=p();return C(a.openPassphraseForm())}),r(2,36),o(),f(3,Ft,2,0,"spk-icon",76),o()}if(s&2){let t=p();l(3),E(t.passwordUpdated()?3:-1)}}function Dt(s,e){if(s&1){let t=P();i(0,"spk-form-field")(1,"label",77),r(2,37),o(),i(3,"textarea",78),A("ngModelChange",function(a){m(t);let d=p();return G(d.allowedHostnames,a)||(d.allowedHostnames=a),C(a)}),o()(),i(4,"spk-alert",79),r(5,38),o(),i(6,"button",74),S("click",function(){m(t);let a=p();return C(a.updateAllowedHostnames())}),r(7,39),o()}if(s&2){let t=p();l(3),y("ngModel",t.allowedHostnames),l(3),N("loader",t.updatingAllowedHosts())}}function Xt(s,e){if(s&1&&R(0),s&2){let t,n=p();W(" ",(t=n.sysinfo())==null?null:t.ServerVersion," ")}}function Vt(s,e){s&1&&O(0,"spk-progress-bar",53)}function zt(s,e){if(s&1&&R(0),s&2){let t=e.$implicit;W(" ",t.label," ")}}function Ut(s,e){if(s&1&&R(0),s&2){let t=e.$implicit;W(" ",t.label," ")}}function Bt(s,e,t){let n=Ct(s),a=n[Be];t?.equal&&(a.equal=t.equal);let d;return n.set=u=>{clearTimeout(d),d=setTimeout(()=>We(a,u),e)},n.update=u=>{clearTimeout(d),d=setTimeout(()=>He(a,u),e)},n}var Wt=[{value:"s",label:$localize`Seconds`},{value:"m",label:$localize`Minutes`},{value:"h",label:$localize`Hours`}],Ht=[{value:"none",label:$localize`System default (information)`},{value:"information",label:$localize`Usage statistics, warnings, errors, and crashes`},{value:"warning",label:$localize`Warnings, errors and crashes`},{value:"error",label:$localize`Errors and crashes`},{value:"crash",label:$localize`Crashes only`},{value:"none",label:$localize`None / disabled`}],_e=class s{#e=T(St);#t=T(Z);#n=T(v);#i=T(F);#o=T(x);#s=T(nt);#a=this.#s.getItem("locale")??"en-US";sysinfo=this.#t.systemInfo;isDarkMode=this.#e.isDarkMode;editAs=c("list");previousLang=this.#a;langCtrl=c(this.#a);usageStatistics=c("");updatingUsageStatistics=c(!1);remoteControlStatus=this.#o.status;updatingChannel=c(!1);updateChannel=c("");setNewChannel(e){let t=this.updateChannel();this.updateChannel.set(e),this.#n.patchApiV1Serversettings({requestBody:{"update-channel":e}}).pipe(I(()=>this.updatingChannel.set(!1)),k(()=>(this.updateChannel.set(t),w(null)))).subscribe()}allowRemoteAccess=c(!1);allowedHostnames=c("");loadedAllowedHostnames=c("");updatingRemoteAccess=c(!1);updatingAllowedHosts=c(!1);updateRemoteAccess(){let e=this.allowRemoteAccess(),t=!e;this.allowRemoteAccess.set(t),this.#n.patchApiV1Serversettings({requestBody:{"server-listen-interface":t?"any":"loopback"}}).pipe(I(()=>this.updatingRemoteAccess.set(!1)),k(()=>(this.allowRemoteAccess.set(e),w(null)))).subscribe()}updateAllowedHostnames(){let e=this.loadedAllowedHostnames(),t=this.allowedHostnames();this.updatingAllowedHosts.set(!0),this.#n.patchApiV1Serversettings({requestBody:{"server-listen-interface":"any","allowed-hostnames":t}}).pipe(I(()=>this.updatingAllowedHosts.set(!1)),k(()=>(this.allowedHostnames.set(e),w(null)))).subscribe()}updatingDisableTrayIconLogin=c(!1);disableTrayIconLogin=c(!1);saveDisableTrayIconLogin(){let e=this.disableTrayIconLogin(),t=!e;this.updatingDisableTrayIconLogin.set(!0),this.disableTrayIconLogin.set(t),this.#n.patchApiV1Serversettings({requestBody:{"disable-tray-icon-login":t?"True":"False"}}).pipe(I(()=>this.updatingDisableTrayIconLogin.set(!1)),k(()=>(this.disableTrayIconLogin.set(e),w(null)))).subscribe()}showPassphraseForm=c(!1);isUpdating=c(!1);passphrase=c("");repeatPassphrase=c("");passwordUpdated=c(!1);updatePassphrase(){this.passphrase()===this.repeatPassphrase()&&(this.isUpdating.set(!0),this.#n.patchApiV1Serversettings({requestBody:{"server-passphrase":this.passphrase()}}).pipe(I(()=>this.isUpdating.set(!1))).subscribe({next:()=>{this.showPassphraseForm.set(!1),this.passwordUpdated.set(!0),setTimeout(()=>{this.passwordUpdated.set(!1)},3e3)}}))}openPassphraseForm(){this.showPassphraseForm.set(!0)}cancelPasswordChange(){this.showPassphraseForm.set(!1)}languageOptions=c(ut);usageStatisticsOptions=c(Ht);timeTypeOptions=c(Wt);timeType=c("s");timeValue=Bt(void 0,300);timeRange=$(()=>this.timeType()==="h"?[0,24]:[0,60]);timeValueEffect=b(()=>{let e=this.timeValue();this.updateStartupDelay()});updateLocale(e){!e||e===""||e===this.previousLang||(this.#s.setItem("locale",e),window.location.reload())}updateStartupDelay(){let e=this.#i.serverSettings(),t=this.timeValue(),n=this.timeType(),a=`${t}${n}`;typeof t!="number"||a===""||e&&e["startup-delay"]===a||this.#n.patchApiV1Serversettings({requestBody:{"startup-delay":a==="0s"?"":a}}).subscribe()}updateTimeType(e){this.timeType.set(e)}updateUsageStatistics(e){let t=this.usageStatistics();!e||e===""||e===t||(this.usageStatistics.set(e),this.updatingUsageStatistics.set(!0),this.#n.patchApiV1Serversettings({requestBody:{"usage-reporter-level":this.usageStatistics()==="none"?"":this.usageStatistics()}}).pipe(I(()=>this.updatingUsageStatistics.set(!1)),k(()=>(this.usageStatistics.set(t),w(null)))).subscribe())}serverSettingsEffect=b(()=>{let e=this.#i.serverSettings();if(e===void 0)return;let t=e["startup-delay"],n=t.slice(-1),a=t.slice(0,-1),d=["s","m","h"];this.disableTrayIconLogin.set(e["disable-tray-icon-login"]!=="False"),this.updateChannel.set(e["update-channel"]),this.allowRemoteAccess.set(e["server-listen-interface"]==="any"),this.allowedHostnames.set(e["allowed-hostnames"]),this.loadedAllowedHostnames.set(e["allowed-hostnames"]),this.usageStatistics.set(e["usage-reporter-level"]===""?"none":e["usage-reporter-level"]),this.timeType.set(d.includes(n)?n:"s"),this.timeValue.set(parseInt(a==""?"0":a))});setDarkMode(){this.#e.setDarkMode()}setLightMode(){this.#e.setLightMode()}static \u0275fac=function(t){return new(t||s)};static \u0275cmp=L({type:s,selectors:[["app-settings"]],decls:132,vars:45,consts:()=>{let e;e=$localize`Settings`;let t;t=$localize`Configure your backup settings.`;let n;n=$localize`Remote access control`;let a;a=$localize`Color theme`;let d;d=$localize`Customize your application theme`;let u;u=$localize`Passwords`;let g;g=$localize`Change server passphrase`;let M;M=$localize`Language`;let de;de=$localize`Select a language for the platform`;let ce;ce=$localize`Allow remote access (requires restart)`;let pe;pe=$localize` By allowing remote access, the server listens to requests from any machine on your network. If you enable this option, make sure you are always using the computer on a secure firewall protected network. `;let Se;Se=$localize`Allow remote access`;let ge;ge=$localize`Prevent tray icon automatic log-in`;let Te;Te=$localize` By default, the tray icon will open the user interface with a token that unlocks the user interface. This ensures that you can access the user interface from the tray icon, while requiring others to enter a password. If you prefer having to type in the password, even when accessing the user interface from the tray icon, enable this option. `;let ue;ue=$localize`Prevent tray icon automatic log-in`;let me;me=$localize`Update channel`;let Ce;Ce=$localize` Default (${"\uFFFD0\uFFFD"}:INTERPOLATION:) `;let Ee;Ee=$localize`Same as the base install version: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let fe;fe=$localize`Stable`;let Ne;Ne=$localize`Official releases`;let Me;Me=$localize`Beta`;let he;he=$localize` Try out the new features that we are working on. Currently the most stable version available. Test Restore data before using this in production environments. `;let Pe;Pe=$localize` Experimental `;let Oe;Oe=$localize`Specific builds for developers only. Not for use with important data.`;let Re;Re=$localize`Canary`;let Ie;Ie=$localize`Individual builds for developers only. Not for use with important data.`;let ye;ye=$localize`Pause after startup or hibernation`;let Ge;Ge=$localize` Duplicati will run when started, but will remain in paused state for the duration. Duplicati will occupy minimal system resources and no backups will be run. `;let Ae;Ae=$localize`Usage statistics`;let X;X=$localize` Usage reports help us improve the user experience and evaluate impact of new features. We use them to generate ${"\uFFFD#119\uFFFD"}:START_LINK:public usage statistics.${"\uFFFD/#119\uFFFD"}:CLOSE_LINK:${"[\uFFFD#120\uFFFD\uFFFD/#120\uFFFD|\uFFFD#121\uFFFD\uFFFD/#121\uFFFD]"}:LINE_BREAK:${"[\uFFFD#120\uFFFD\uFFFD/#120\uFFFD|\uFFFD#121\uFFFD\uFFFD/#121\uFFFD]"}:LINE_BREAK: All usage reports are sent anonymously and do not contain any personal information. They contain information about hardware and operating system, the type of backend, backup duration, overall size of source data and similar data. They do not contain paths, filenames, usernames, passwords or similar sensitive information. `,X=Ze(X);let ve;ve=$localize`Advanced options`;let $e;$e=$localize`Enter new password`;let be;be=$localize`Repeat password`;let we;we=$localize`Password have to be filled and have to match`;let ke;ke=$localize`Passphrase`;let Le;Le=$localize`Repeat passphrase`;let Fe;Fe=$localize`Cancel`;let xe;xe=$localize` Update passphrase `;let De;De=$localize` Update passphrase `;let Xe;Xe=$localize`Change password`;let Ve;Ve=$localize`Allowed hostnames`;let ze;ze=$localize` To prevent various DNS based attacks, Duplicati limits the allowed hostnames to the ones listed here. Direct IP access and localhost is always allowed. Multiple hostnames can be supplied with a semicolon separator. If any of the allowed hostnames is an asterisk (*), all hostnames are allowed and this feature is disabled. If the field is empty, only IP address and localhost access is allowed. `;let Ue;return Ue=$localize` Update allowed hostnames `,[e,t,n,a,d,u,g,M,de,ce,pe,Se,ge,Te,ue,me,Ce,Ee,fe,Ne,Me,he,Pe,Oe,Re,Ie,ye,Ge,Ae,X,ve,ke,Le,Fe,xe,De,Xe,Ve,ze,Ue,[1,"content"],[1,"title"],[1,"left"],[1,"right"],[1,"themes"],["src","assets/images/light-theme.png","alt","light theme",3,"click"],["src","assets/images/dark-theme.png","alt","dark theme",3,"click"],[1,"right","passphrase-form"],[1,"actions"],["value","value","label","label",3,"options","isClearable","inlineSearch"],["type","text",3,"ngModelChange","ngModel","ngModelOptions"],[1,"right","remote-access-form"],[1,"primary","raised",3,"click"],[1,"indeterminate","primary"],[1,"right","radios"],[1,"radio-option",3,"click"],[1,"primary","raised"],[1,"field-row"],[1,"raised","primary",3,"unit"],["type","range",3,"min","max","ngModel","ngModelOptions"],["label","label","value","value",3,"options","isClearable"],["type","text",3,"ngModelChange","ngModel"],["href","#"],["label","label","value","value",3,"options","isLoading"],[1,"advanced-settings"],["for","password"],["type","password","name","password","autocomplete","disabled","placeholder",$e,"tabindex","1",3,"ngModelChange","ngModel"],["for","repeatPassword"],["type","password","name","repeatPassword","autocomplete","disabled","placeholder",be,"tabindex","2",3,"ngModelChange","disabled","ngModel"],["suffix","",1,"spk-success"],["suffix",""],["spk-button","",3,"click"],["spk-button","",1,"raised","primary",3,"loader"],["message",we,1,"primary"],["spk-button","",1,"raised","primary",3,"click"],["spk-button","",1,"raised","primary",3,"click","disabled"],[1,"spk-success"],["for","allowedHostnames"],["type","text","id","allowedHostnames",3,"ngModelChange","ngModel"],["type","primary"]]},template:function(t,n){if(t&1&&(O(0,"app-status-bar"),i(1,"div",40)(2,"header")(3,"div",41)(4,"h2"),r(5,0),o(),i(6,"p"),r(7,1),o()()(),i(8,"section")(9,"div",42)(10,"h3"),r(11,2),o(),i(12,"p"),R(13),o()(),i(14,"div",43),O(15,"app-remote-control"),o()(),i(16,"section")(17,"div",42)(18,"h3"),r(19,3),o(),i(20,"p"),r(21,4),o()(),i(22,"div",43)(23,"div",44)(24,"img",45),S("click",function(){return n.setLightMode()}),o(),i(25,"img",46),S("click",function(){return n.setDarkMode()}),o()()()(),i(26,"section")(27,"div",42)(28,"h3"),r(29,5),o(),i(30,"p"),r(31,6),o()(),i(32,"div",47),f(33,Lt,15,7)(34,xt,4,1,"div",48),o()(),i(35,"section")(36,"div",42)(37,"h3"),r(38,7),o(),i(39,"p"),r(40,8),o()(),i(41,"div",43)(42,"spk-select",49)(43,"input",50),S("ngModelChange",function(d){return n.updateLocale(d)}),o()()()(),i(44,"section")(45,"div",42)(46,"h3"),r(47,9),o(),i(48,"p"),r(49,10),o()(),i(50,"div",51)(51,"spk-toggle",52),S("click",function(){return n.updateRemoteAccess()}),i(52,"label"),r(53,11),o()(),f(54,Dt,8,3),o()(),i(55,"section")(56,"div",42)(57,"h3"),r(58,12),o(),i(59,"p"),r(60,13),o()(),i(61,"div",43)(62,"spk-toggle",52),S("click",function(){return n.saveDisableTrayIconLogin()}),i(63,"label"),r(64,14),o()()()(),i(65,"section")(66,"div",42)(67,"h3"),r(68,15),o(),i(69,"p"),f(70,Xt,1,1),o(),f(71,Vt,1,0,"spk-progress-bar",53),o(),i(72,"div",54)(73,"div",55),S("click",function(){return n.setNewChannel("")}),i(74,"spk-radio",56),r(75,16),o(),i(76,"p"),r(77,17),o()(),i(78,"div",55),S("click",function(){return n.setNewChannel("stable")}),i(79,"spk-radio",56),r(80,18),o(),i(81,"p"),r(82,19),o()(),i(83,"div",55),S("click",function(){return n.setNewChannel("beta")}),i(84,"spk-radio",56),r(85,20),o(),i(86,"p"),r(87,21),o()(),i(88,"div",55),S("click",function(){return n.setNewChannel("experimental")}),i(89,"spk-radio",56),r(90,22),o(),i(91,"p"),r(92,23),o()(),i(93,"div",55),S("click",function(){return n.setNewChannel("canary")}),i(94,"spk-radio",56),r(95,24),o(),i(96,"p"),r(97,25),o()()()()(),O(98,"spk-divider"),i(99,"div",40)(100,"section")(101,"div",42)(102,"h3"),r(103,26),o(),i(104,"p"),r(105,27),o()(),i(106,"div",43)(107,"div",57)(108,"spk-range-slider",58),O(109,"input",59),o(),i(110,"spk-select",60)(111,"input",61),S("ngModelChange",function(d){return n.updateTimeType(d)}),o(),f(112,zt,1,1,"ng-template"),o()()()(),i(113,"section")(114,"div",42)(115,"h3"),r(116,28),o(),i(117,"p"),z(118,29),O(119,"a",62)(120,"br")(121,"br"),U(),o()(),i(122,"div",43)(123,"spk-select",63)(124,"input",50),S("ngModelChange",function(d){return n.updateUsageStatistics(d)}),o(),f(125,Ut,1,1,"ng-template"),o()()()(),i(126,"div",40)(127,"section")(128,"div",64)(129,"h3"),r(130,30),o(),O(131,"app-advanced-options-settings"),o()()()),t&2){let a,d,u;l(13),B(n.remoteControlStatus()),l(11),N("active",!n.isDarkMode()),l(),N("active",n.isDarkMode()),l(8),E(n.showPassphraseForm()?33:34),l(9),h("options",n.languageOptions())("isClearable",!1)("inlineSearch",!0),l(),h("ngModel",n.langCtrl())("ngModelOptions",H(42,le)),l(8),N("active",n.allowRemoteAccess()),l(3),E(n.allowRemoteAccess()?54:-1),l(8),N("active",n.disableTrayIconLogin()),l(8),E(n.updateChannel()!==""&&((a=n.sysinfo())!=null&&a.ServerVersion)?70:-1),l(),E(n.updatingChannel()?71:-1),l(3),N("active",n.updateChannel()===""),l(),se((d=n.sysinfo())==null?null:d.DefaultUpdateChannel),ae(75),l(2),se((u=n.sysinfo())==null?null:u.ServerVersionType),ae(77),l(2),N("active",n.updateChannel()==="stable"),l(5),N("active",n.updateChannel()==="beta"),l(5),N("active",n.updateChannel()==="experimental"),l(5),N("active",n.updateChannel()==="canary"),l(14),h("unit",n.timeType()),l(),h("min",n.timeRange()[0])("max",n.timeRange()[1])("ngModel",n.timeValue)("ngModelOptions",H(43,le)),l(),h("options",n.timeTypeOptions())("isClearable",!1),l(),h("ngModel",n.timeType()),l(12),h("options",n.usageStatisticsOptions())("isLoading",n.updatingUsageStatistics()),l(),h("ngModel",n.usageStatistics())("ngModelOptions",H(44,le))}},dependencies:[te,J,ct,Y,ee,ne,gt,oe,D,K,at,rt,st,_t,dt,Q,q,ot,j,lt],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{Bt as debounceSignal,_e as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as U}from"./chunk-
|
|
1
|
+
import{a as U}from"./chunk-2AA7RP36.js";import{a as W}from"./chunk-O2YN63YI.js";import{a as x,c as j}from"./chunk-FSGJ5KIH.js";import{e as m}from"./chunk-WX7L7V6J.js";import{b as S,c as G}from"./chunk-PTDSOPNK.js";import{l as L}from"./chunk-CKPICCFH.js";import{Ac as p,Bc as d,F as $,Gb as B,Hb as N,Ib as z,Jb as w,Kb as A,N as b,O as I,Qa as y,S as r,Y as s,ab as E,i as D,n as F,pc as M,r as R,rc as V,ua as n,wb as T,xb as v,yb as O}from"./chunk-W2F756OF.js";import{a as f,b as h}from"./chunk-7CGTOI24.js";var l=class i{reconnectTimer=n(15e3);countdown=n(0);connectTimerEffect=d(()=>{let e=this.reconnectTimer();this.countdown.set(e/1e3)});interval=setInterval(()=>{if(this.countdown()<=1){this.countdown.set(this.reconnectTimer()/1e3);return}this.countdown.set(this.countdown()-1)},1e3);ngOnDestroy(){clearInterval(this.interval)}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=E({type:i,selectors:[["app-disconnected-dialog"]],decls:8,vars:4,consts:()=>{let e;e=$localize`Reconnecting...`;let t;return t=$localize` The connection to the server is lost, attempting again in ${"\uFFFD#6\uFFFD"}:START_TAG_STRONG:0:${"\uFFFD0\uFFFD"}:INTERPOLATION:${"\uFFFD/#6\uFFFD"}:CLOSE_TAG_STRONG:`,[e,t,["header",""],["content",""]]},template:function(t,o){t&1&&(T(0,"header",2)(1,"h3"),z(2,0),v()(),T(3,"div",3)(4,"p"),B(5,1),O(6,"strong"),M(7,"number"),N(),v()()),t&2&&(y(7),w(V(7,1,o.countdown(),"2.0-0")),A(5))},dependencies:[L],styles:["[_nghost-%COMP%]{display:block;padding:1rem}"],changeDetection:0})};var C=class i{dialog=s(m);#i=s(S);#e=n("disconnected");#t=n(null);#s=n(-1);#o=n(0);#n=n(!1);#r=new D;connectionStatus=this.#e.asReadonly();serverState=this.#t.asReadonly();#a=void 0;duration=s(x).relayIsEnabled()?"94s":"299s";start(){this.#n.set(!0),this.#r=new D,this.#c()}stop(){this.#r.next(),this.#r.complete(),this.#n.set(!1)}reconnect(){this.stop(),this.start()}reconnectIfNeeded(){console.log("reconnectIfNeeded"),!this.#n()&&this.reconnect()}#c(){this.#e.set("connecting"),this.#i.getApiV1Serverstate({lastEventId:this.#s(),longpoll:this.#s()>0,duration:this.duration}).pipe(I(this.#r)).subscribe({next:e=>{e&&this.#l(e),this.#p()},error:e=>{let o=this.#o()+1,c=Math.min(5e3*o,3e4);this.#o.set(o),o>3&&this.#e.set("disconnected"),this.#a||(this.#a=this.dialog.open(l,{closeOnButton:!1,closeOnEsc:!1,closeOnOutsideClick:!1})),this.#a.component.reconnectTimer.set(c),setTimeout(()=>{this.#c()},c)}})}#l(e){this.#e.set("connected"),this.#t.set(e),this.#s.set(e.LastEventID||-1),this.#o.set(0)}#p(){this.#n()&&this.#c()}static \u0275fac=function(t){return new(t||i)};static \u0275prov=r({token:i,factory:i.\u0275fac,providedIn:"root"})};var _=class i{#i=s(j);dialog=s(m);#e=null;#t=n("disconnected");#s=n(null);#o=void 0;shouldConnect=n(!0);connectionStatus=this.#t.asReadonly();serverState=this.#s.asReadonly();start(){this.#n(),this.shouldConnect.set(!0)}#n(){let e=this.#i.token();if(!e){console.error("No access token available");return}let t=window.location.protocol==="https:"?"wss:":"ws:",o=window.location.port?`:${window.location.port}`:"";window.location.port==="4200"&&(o=":8200");let c=window.location.hostname,u=`${t}//${c}${o}/notifications?token=${e}`;this.#t.set("connecting"),this.#e=new WebSocket(u),this.#e.onopen=()=>{console.log("WebSocket connection established"),this.#t.set("connected"),this.#o&&this.#o.close()},this.#e.onmessage=a=>{try{let g=JSON.parse(a.data);this.#s.set(g)}catch(g){console.error("Error parsing WebSocket message",g)}},this.#e.onclose=a=>{console.log("WebSocket connection closed",a),this.#t.set("disconnected"),this.shouldConnect()&&(this.#o||(this.#o=this.dialog.open(l,{closeOnButton:!1,closeOnEsc:!1,closeOnOutsideClick:!1}),this.#o.component.reconnectTimer.set(15e3)),setTimeout(()=>this.#n(),5e3))},this.#e.onerror=a=>{console.error("WebSocket error",a),this.#t.set("disconnected")}}stop(){this.shouldConnect.set(!1),this.#e?.close()}reconnect(){this.#e?.close(),this.start()}reconnectIfNeeded(){this.#e?.readyState!==WebSocket.OPEN&&this.reconnect()}static \u0275fac=function(t){return new(t||i)};static \u0275prov=r({token:i,factory:i.\u0275fac,providedIn:"root"})};var P=class i{#i=s(_);#e=s(C);#t=n("longpoll");connectionStatus=p(()=>this.#t()==="websocket"?this.#i.connectionStatus():this.#e.connectionStatus());serverState=p(()=>this.#t()==="websocket"?this.#i.serverState():this.#e.serverState());setConnectionMethod(e){e==="websocket"?(this.#i.reconnectIfNeeded(),this.#e.stop()):(this.#e.reconnectIfNeeded(),this.#i.stop()),this.#t.set(e)}getConnectionMethod(){return this.#t()}static \u0275fac=function(t){return new(t||i)};static \u0275prov=r({token:i,factory:i.\u0275fac,providedIn:"root"})};var J={Backup_Begin:$localize`Starting backup …`,Backup_PreBackupVerify:$localize`Verifying backend data …`,Backup_PostBackupTest:$localize`Verifying remote data …`,Backup_PreviousBackupFinalize:$localize`Completing previous backup …`,Backup_ProcessingFiles:$localize`Processing files to backup …`,Backup_Finalize:$localize`Completing backup …`,Backup_WaitForUpload:$localize`Waiting for upload to finish …`,Backup_Delete:$localize`Deleting unwanted files …`,Backup_Compact:$localize`Compacting remote data …`,Backup_VerificationUpload:$localize`Uploading verification file …`,Backup_PostBackupVerify:$localize`Verifying backend data …`,Backup_Complete:$localize`Backup complete!`,Restore_Begin:$localize`Starting restore …`,Restore_RecreateDatabase:$localize`Rebuilding local database …`,Restore_PreRestoreVerify:$localize`Verifying remote data …`,Restore_CreateFileList:$localize`Building list of files to restore …`,Restore_CreateTargetFolders:$localize`Creating target folders …`,Restore_ScanForExistingFiles:$localize`Scanning existing files …`,Restore_ScanForLocalBlocks:$localize`Scanning for local blocks …`,Restore_PatchWithLocalBlocks:$localize`Patching files with local blocks …`,Restore_DownloadingRemoteFiles:$localize`Downloading files …`,Restore_PostRestoreVerify:$localize`Verifying restored files …`,Restore_Complete:$localize`Restore complete!`,Recreate_Running:$localize`Recreating database …`,Vacuum_Running:$localize`Vacuuming database …`,Repair_Running:$localize`Repairing database …`,Verify_Running:$localize`Verifying files …`,BugReport_Running:$localize`Creating bug report …`,Delete_Listing:$localize`Listing remote files …`,Delete_Deleting:$localize`Deleting remote files …`,"PurgeFiles_Begin,":$localize`Listing remote files for purge …`,"PurgeFiles_Process,":$localize`Purging files …`,"PurgeFiles_Compact,":$localize`Compacting remote data …`,"PurgeFiles_Complete,":$localize`Purging files complete!`,Error:$localize`Error!`},X=class i{#i=s(W);#e=s(G);#t=s(S);#s=s(U);#o=s(P);#n=n(!1);#r=n(null);statusData=this.#r.asReadonly();lastState=null;serverState=p(()=>{let e=this.#o.serverState();return e?(e.ProposedSchedule=e.ProposedSchedule?.map(t=>h(f({},t),{backup:t.Item1?this.#s.getBackupById(t.Item1):null})),this.lastState=e,e):this.lastState});serverStateEffect=d(()=>{this.#o.serverState()?.ActiveTask||this.#s.getBackups(!0)});isFetching=this.#n.asReadonly();connectionStatus=this.#o.connectionStatus;pollingInterval;#a=d(()=>{let e=this.#o.serverState();e?.ActiveTask&&this.pollingInterval===void 0?this.startPollingProgress():e?.ActiveTask||this.stopPollingProgress()});setConnectionMethod(e){this.#o.setConnectionMethod(e)}startPollingProgress(){this.pollingInterval=setInterval(()=>{this.#c()},1e3)}stopPollingProgress(){clearInterval(this.pollingInterval)}fetchProgressState(){this.#c()}#c(){this.#n.set(!0),this.#e.getApiV1Progressstate().pipe(b(e=>{let t=e.TaskID??null;return t===null?F(e):this.#t.getApiV1TaskByTaskid({taskid:t}).pipe(R(o=>h(f({},e),{task:o??null})))}),$(()=>this.#n.set(!1))).subscribe({next:e=>{let t=e.TaskID??null,o=e.BackupID??null;t!==null&&o!==null&&(e.backup=this.#s.getBackupById(o)),console.log("res",e),this.#r.set(h(f({},e),{progress:this.#l(e),statusText:this.#p(e),actionText:e.backup?.Backup?.Name??$localize`Running task`})),e.task?.Status==="Completed"&&this.stopPollingProgress()},error:e=>{e.status===404&&this.stopPollingProgress()}})}#l(e){let t=-1;if(e.task&&e)if(e.Phase==="Backup_ProcessingFiles"||e.Phase==="Restore_DownloadingRemoteFiles")if(e.StillCounting)t=0;else{let o=e.CurrentFilecomplete?0:e.CurrentFileoffset,c=e.TotalFileCount-e.ProcessedFileCount,u=e.TotalFileSize-e.ProcessedFileSize-o;t=(e.ProcessedFileSize+o)/e.TotalFileSize,e.ProcessedFileCount===0?t=0:t>=.9&&(t=.9)}else e.Phase==="Backup_Finalize"||e.Phase==="Backup_WaitForUpload"?t=.9:e.Phase==="Backup_Delete"||e.Phase==="Backup_Compact"?t=.95:e.Phase==="Backup_VerificationUpload"||e.Phase==="Backup_PostBackupVerify"?t=.98:e.Phase==="Backup_Complete"||e.Phase==="Backup_WaitForUpload"?t=1:e.OverallProgress>0&&(t=e.OverallProgress);return t}#p(e){let t="Running \u2026";if(e.task&&e&&(t=e.Phase?J[e.Phase]:"Running \u2026",e.Phase==="Backup_ProcessingFiles"||e.Phase==="Restore_DownloadingRemoteFiles"))if(e.StillCounting)t=`Counting (${e.TotalFileCount} files found, ${this.#i.transform(e.TotalFileSize)})`;else{let o=e.CurrentFilecomplete?0:e.CurrentFileoffset,c=e.TotalFileCount-e.ProcessedFileCount,u=e.TotalFileSize-e.ProcessedFileSize-o,a=e.BackendSpeed<0?"":` at ${this.#i.transform(e.BackendSpeed)}/s`;t=`${e.Phase==="Restore_DownloadingRemoteFiles"?"Restoring: ":""}${c} files (${this.#i.transform(u)}) to go ${a}`}return t}static \u0275fac=function(t){return new(t||i)};static \u0275prov=r({token:i,factory:i.\u0275fac,providedIn:"root"})};export{X as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as W}from"./chunk-
|
|
1
|
+
import{a as W}from"./chunk-2OPFT5E4.js";import{a as K}from"./chunk-7L42EO7J.js";import{b as V,d as z}from"./chunk-QVIZK4WW.js";import{b as X,c as B,e as U,p as H}from"./chunk-WX7L7V6J.js";import{b as G}from"./chunk-PTDSOPNK.js";import{$b as m,Ab as R,Ac as D,Cb as T,Gb as v,Hb as y,Ib as d,Mb as C,Na as g,Nb as a,Qa as r,Y as f,ab as k,ac as A,bc as L,da as u,ea as N,fb as S,nb as I,ra as $,rb as w,sb as s,ub as P,vb as h,wb as l,xb as _,yb as O,zb as b}from"./chunk-W2F756OF.js";var Y=(i,t)=>t.ID;function q(i,t){if(i&1&&m(0),i&2){let e=a().$implicit;L(" ",e.Message," ")}}function J(i,t){if(i&1&&(l(0,"div"),v(1,1),O(2,"a",16),y(),_()),i&2){let e=a().$implicit;r(2),I("href",e.DownloadLink,g)}}function Q(i,t){if(i&1){let e=T();l(0,"button",15),C("click",function(){u(e);let o=a().$implicit,c=a();return N(c.doRepair(o.BackupID))}),d(1,2),_()}}function Z(i,t){if(i&1){let e=T();l(0,"button",15),C("click",function(){u(e);let o=a().$implicit,c=a();return N(c.doDownloadBugreport(o))}),d(1,3),_()}}function ee(i,t){if(i&1&&O(0,"spk-progress-bar",18),i&2){let e,n=a(3);I("value",(e=n.serverState())==null?null:e.UpdateDownloadProgress)}}function te(i,t){if(i&1){let e=T();l(0,"div",14),b(1),d(2,4),R(),l(3,"a",17),m(4),_(),S(5,ee,1,1,"spk-progress-bar",18),l(6,"button",15),C("click",function(){u(e);let o=a(2);return N(o.doShowUpdate())}),d(7,5),_()()}if(i&2){let e,n,o=a().$implicit,c=a();r(3),I("href",(e=c.serverState())==null?null:e.UpdateDownloadLink,g),r(),A(o.Message),r(),s(((n=c.serverState())==null?null:n.UpdaterState)==="Downloading"?5:-1)}}function ie(i,t){if(i&1){let e=T();l(0,"button",15),C("click",function(){u(e);let o=a().$implicit,c=a();return N(c.doShowLog(o.BackupID))}),d(1,6),_()}}function ne(i,t){if(i&1){let e=T();l(0,"button",15),C("click",function(){u(e);let o=a(2);return N(o.doShowLink("https://docs.duplicati.com/detailed-descriptions/the-server-database"))}),d(1,7),_()}}function oe(i,t){if(i&1){let e=T();l(0,"button",15),C("click",function(){u(e);let o=a(2);return N(o.doShowLink("https://docs.duplicati.com/detailed-descriptions/the-server-database"))}),d(1,8),_()}}function ae(i,t){if(i&1){let e=T();l(0,"spk-alert")(1,"div",10),m(2),_(),l(3,"div",11),S(4,q,1,1)(5,J,3,1,"div"),l(6,"div",12),S(7,Q,2,0,"button",13)(8,Z,2,0,"button",13)(9,te,8,3,"div",14)(10,ie,2,0,"button",13)(11,ne,2,0,"button",13)(12,oe,2,0,"button",13),l(13,"button",15),C("click",function(){let o=u(e).$index,c=a();return N(c.deleteNotificationByIndex(o))}),d(14,0),_()()()()}if(i&2){let e=t.$implicit,n=a();w(n.getAlertType(e.Type)),r(2),A(e.Title),r(2),s(e.Action!=="update:new"&&e.Action!=="update:manual"?4:-1),r(),s(e!=null&&e.DownloadLink?5:-1),r(2),s(e.Message!=null&&e.Message.includes("please run repair")?7:-1),r(),s(e.Action!=null&&e.Action.startsWith("bug-report:created:")&&!e.DownloadLink?8:-1),r(),s(e.Action==="update:new"?9:-1),r(),s(e.Action==="backup:show-log"?10:-1),r(),s(e.Action==="config:issue:unencrypted-database"?11:-1),r(),s(e.Action==="config:issue:windows-folder-used"?12:-1)}}var re={Error:"error",Warning:"warn",Information:"primary"},j=class i{#i=f(z);#o=f(V);#a=f(U);#e=f(B);#n=f(G);#t=f(W);notificationFilterPredicate=$();serverState=this.#t.serverState;notifications=D(()=>{let t=this.notificationFilterPredicate()?.predicate,e=this.#t.notifications();return typeof t!="function"?e:e.filter(t)});deleteNotificationByIndex(t){this.#t.deleteNotification(t)}deleteAllNotifications(){this.#t.deleteAllNotifications()}getAlertType(t){return t&&re[t]||"primary"}doShowLog(t){this.#n.getApiV1BackupByIdIsactive({id:t}).subscribe({next:e=>{this.#i.navigate(["/backup/"+t+"/log"])},error:e=>{if(e.status===404){let n={title:$localize`Error`,message:$localize`The backup is missing, has it been deleted?`,confirmText:$localize`OK`,cancelText:null};parseInt(t)+""!=t&&(n={title:$localize`Error`,message:$localize`The backup was temporary and does not exist anymore, so the log data is lost`,confirmText:$localize`OK`,cancelText:null}),this.#a.open(K,{maxWidth:"550px",width:"100%",data:n})}else this.#e.error($localize`Failed to find backup: `+e.message)}})}doRepair(t){this.#n.postApiV1BackupByIdRepair({id:t}).subscribe({next:()=>{this.#e.success($localize`Backup repaired`),this.#i.navigate(["./"],{onSameUrlNavigation:"reload",relativeTo:this.#o})},error:e=>{this.#e.error($localize`Failed to repair backup: `+e.message)}})}doShowUpdate(){this.#i.navigate(["/about/changelog"])}doShowLink(t){window.open(t,"_blank")}doDownloadBugreport(t){let e=t.Action.slice(19);this.#n.postApiV1AuthIssuetokenByOperation({operation:`bugreport/${e}`}).subscribe({next:n=>{if(!n.Token){this.#e.error("Failed to get bug report URL: No token generated");return}t.DownloadLink=n.Token},error:n=>{this.#e.error(`Failed to get bug report URL: ${n.message}`)}})}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=k({type:i,selectors:[["app-notifications"]],inputs:{notificationFilterPredicate:[1,"notificationFilterPredicate"]},decls:2,vars:0,consts:()=>{let t;t=$localize`Dismiss`;let e;e=$localize` If the backup file was not downloaded automatically, ${"\uFFFD#2\uFFFD"}:START_LINK:right click and choose "Save as …"${"\uFFFD/#2\uFFFD"}:CLOSE_LINK:`;let n;n=$localize`Repair`;let o;o=$localize`Download`;let c;c=$localize`New update found:`;let F;F=$localize`Show Update`;let x;x=$localize`Show Log`;let E;E=$localize` Show Help `;let M;return M=$localize` Show Help `,[t,e,n,o,c,F,x,E,M,[3,"class"],["sparkle-alert-title",""],["sparkle-alert-content","",1,"content"],[1,"actions"],["spk-button","",1,"small","outlined"],[1,"message"],["spk-button","",1,"small","outlined",3,"click"],["target","_blank",3,"href"],[3,"href"],[3,"value"]]},template:function(e,n){e&1&&P(0,ae,15,11,"spk-alert",9,Y),e&2&&h(n.notifications())},dependencies:[X,H],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.content[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem}.actions[_ngcontent-%COMP%]{display:flex;gap:.25rem;justify-content:flex-end}"],changeDetection:0})};export{j as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as _e}from"./chunk-SZ64OOBT.js";import{c as re,e as pe,h as ue,j as Se,s as y}from"./chunk-T2OUHRUV.js";import{a as Q}from"./chunk-FSGJ5KIH.js";import{a as Y,b as ee,e as te,g as ne,i as h,l as ie,p as oe,q as ae,s as se,t as le}from"./chunk-WX7L7V6J.js";import{b as A}from"./chunk-PTDSOPNK.js";import{a as ce}from"./chunk-DE4NDI5F.js";import{j as J}from"./chunk-CKPICCFH.js";import{$b as T,Ac as U,Cb as V,F as E,Gb as P,Hb as N,Ib as p,Lb as j,Mb as u,Nb as O,Qa as _,Y as d,ab as C,bc as I,cc as B,da as w,ea as z,ec as M,fb as L,fc as D,gc as R,nb as g,ob as X,pb as S,pc as G,qa as k,qc as q,rc as Z,sb as v,tb as H,ua as r,ub as K,vb as W,wb as s,xb as l,yb as f}from"./chunk-W2F756OF.js";function Oe(a,n){if(a&1){let t=V();s(0,"spk-radio",10),u("click",function(){let i=w(t).$implicit,o=O();return z(o.pauseOption.set(i.value))}),T(1),l()}if(a&2){let t=n.$implicit,e=O();S("active",e.pauseOption()===t.value),_(),I(" ",t.label," ")}}var Ae=[{label:$localize`5 minuts`,value:"5m"},{label:$localize`10 minuts`,value:"10m"},{label:$localize`15 minuts`,value:"15m"},{label:$localize`30 minuts`,value:"30m"},{label:$localize`1 hour`,value:"1h"},{label:$localize`4 hours`,value:"4h"},{label:$localize`8 hours`,value:"8h"},{label:$localize`24 hours`,value:"24h"},{label:$localize`Until resumed`,value:void 0}],b=class a{#e=d(A);pauseOptions=r(Ae);closed=k();isSubmitting=r(!1);pauseTransfers=r(!1);pauseOption=r(void 0);submit(){this.isSubmitting.set(!0);let n=this.pauseTransfers()||null,t=this.pauseOption();this.#e.postApiV1ServerstatePause({duration:t,pauseTransfers:n}).pipe(E(()=>this.isSubmitting.set(!1))).subscribe({next:e=>{this.closed.emit()}})}static \u0275fac=function(t){return new(t||a)};static \u0275cmp=C({type:a,selectors:[["app-pause-dialog"]],outputs:{closed:"closed"},decls:17,vars:4,consts:()=>{let n;n=$localize`Pause settings`;let t;t=$localize` Also pause transfers `;let e;e=$localize`If you pause transfers they could time out and cause retries or failures.`;let i;i=$localize`Cancel`;let o;return o=$localize` Update settings `,[n,t,e,i,o,["header",""],["content",""],[1,"radios"],[1,"primary","raised",3,"active"],[1,"check-wrap"],[1,"primary","raised",3,"click"],["type","warning"],["footer",""],["spk-button","",3,"click"],["spk-button","",1,"raised","primary",3,"click"]]},template:function(t,e){t&1&&(s(0,"header",5)(1,"h3"),p(2,0),l()(),s(3,"div",6)(4,"div",7),K(5,Oe,2,3,"spk-radio",8,H),l(),s(7,"div",9)(8,"spk-checkbox",10),u("click",function(){return e.pauseTransfers.set(!e.pauseTransfers())}),p(9,1),l(),s(10,"spk-alert",11),p(11,2),l()()(),s(12,"footer",12)(13,"button",13),u("click",function(){return e.closed.emit()}),p(14,3),l(),s(15,"button",14),u("click",function(){return e.submit()}),p(16,4),l()()),t&2&&(_(5),W(e.pauseOptions()),_(3),S("active",e.pauseTransfers()),_(7),S("loader",e.isSubmitting()))},dependencies:[y,ae,h,ee],styles:["[_nghost-%COMP%]{--dialog-p: 1.5rem;display:block}h3[_ngcontent-%COMP%]{font:var(--title-30)}.radios[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.check-wrap[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;padding:2rem 0 0}"],changeDetection:0})};var fe=["Byte/s","KByte/s","MByte/s","GByte/s","TByte/s","PByte/s"],$={Byte:"B",KByte:"KB",MByte:"MB",GByte:"GB",TByte:"TB",PByte:"PB"},me=Object.entries($).reduce((a,[n,t])=>(a[t]=n,a),{}),F=class a{#e=d(A);closed=k();isSubmitting=r(!1);sizeOptions=r(fe);maxUploadActive=r(!1);maxDownloadActive=r(!1);maxUpload=r(0);maxDownload=r(0);maxUploadUnit=r("MByte/s");maxDownloadUnit=r("MByte/s");ngOnInit(){this.init()}init(){this.#e.getApiV1Serversettings().subscribe({next:n=>{let t=n?.["max-upload-speed"]?.split(/(\d+)/),e=n?.["max-download-speed"]?.split(/(\d+)/),i=t[1]??"",o=e[1]??"",c=t[2]??"MB",m=e[2]??"MB",Ee=i===""?10:parseInt(i),Ce=o===""?10:parseInt(o);this.maxUploadUnit.set(me[c]+"/s"),this.maxDownloadUnit.set(me[m]+"/s"),this.maxUploadActive.set(i!==""),this.maxDownloadActive.set(o!==""),this.maxUpload.set(Ee),this.maxDownload.set(Ce)}})}blockDecimalKeys(n){if([".",","].includes(n.key))return n.preventDefault()}cleanupInputAfterPasting(n){n.preventDefault();let t=n.clipboardData?.getData("text/plain");if(!t)return;let e=t.replaceAll(/[\.,]/g,"");n.target.value=e}submit(){this.isSubmitting.set(!0);let n=this.maxUploadActive()?`${this.maxUpload()}${$[this.maxUploadUnit().replace("/s","")]}`:"",t=this.maxDownloadActive()?`${this.maxDownload()}${$[this.maxDownloadUnit().replace("/s","")]}`:"";this.#e.patchApiV1Serversettings({requestBody:{"max-upload-speed":n,"max-download-speed":t}}).pipe(E(()=>this.isSubmitting.set(!1))).subscribe({next:e=>{this.closed.emit(!0)}})}static \u0275fac=function(t){return new(t||a)};static \u0275cmp=C({type:a,selectors:[["app-throttle-settings-dialog"]],outputs:{closed:"closed"},decls:26,vars:16,consts:()=>{let n;n=$localize`Throttle network speed`;let t;t=$localize` Max upload speed `;let e;e=$localize` Max download speed `;let i;i=$localize` Note that speeds are entered in bytes, and line speeds are typically reported in bits. Use a factor of 8 to convert, such that an 8 mbit/s line is equivalent to 1 MByte/s. `;let o;o=$localize`Cancel`;let c;return c=$localize` Update settings `,[n,t,e,i,o,c,["header",""],["content",""],[1,"column"],[1,"field-row"],[1,"primary","raised",3,"click"],["type","number",3,"paste","keydown","ngModelChange","ngModel","disabled"],[3,"isClearable","options"],["type","text",3,"ngModelChange","ngModel"],["footer",""],["spk-button","",3,"click"],["spk-button","",1,"raised","primary",3,"click"]]},template:function(t,e){t&1&&(s(0,"header",6)(1,"h3"),p(2,0),l()(),s(3,"div",7)(4,"div",8)(5,"div",9)(6,"spk-checkbox",10),u("click",function(){return e.maxUploadActive.set(!e.maxUploadActive())}),p(7,1),l(),s(8,"spk-form-field")(9,"input",11),u("paste",function(o){return e.cleanupInputAfterPasting(o)})("keydown",function(o){return e.blockDecimalKeys(o)}),R("ngModelChange",function(o){return D(e.maxUpload,o)||(e.maxUpload=o),o}),l()(),s(10,"spk-select",12)(11,"input",13),R("ngModelChange",function(o){return D(e.maxUploadUnit,o)||(e.maxUploadUnit=o),o}),l()()(),s(12,"div",9)(13,"spk-checkbox",10),u("click",function(){return e.maxDownloadActive.set(!e.maxDownloadActive())}),p(14,2),l(),s(15,"spk-form-field")(16,"input",11),u("paste",function(o){return e.cleanupInputAfterPasting(o)})("keydown",function(o){return e.blockDecimalKeys(o)}),R("ngModelChange",function(o){return D(e.maxDownload,o)||(e.maxDownload=o),o}),l()(),s(17,"spk-select",12)(18,"input",13),R("ngModelChange",function(o){return D(e.maxDownloadUnit,o)||(e.maxDownloadUnit=o),o}),l()()(),s(19,"p"),p(20,3),l()()(),s(21,"footer",14)(22,"button",15),u("click",function(){return e.closed.emit(!1)}),p(23,4),l(),s(24,"button",16),u("click",function(){return e.submit()}),p(25,5),l()()),t&2&&(_(6),S("active",e.maxUploadActive()),_(3),M("ngModel",e.maxUpload),g("disabled",!e.maxUploadActive()),_(),g("isClearable",!1)("options",e.sizeOptions()),_(),M("ngModel",e.maxUploadUnit),_(2),S("active",e.maxDownloadActive()),_(3),M("ngModel",e.maxDownload),g("disabled",!e.maxDownloadActive()),_(),g("isClearable",!1)("options",e.sizeOptions()),_(),M("ngModel",e.maxDownloadUnit),_(6),S("loader",e.isSubmitting()))},dependencies:[y,re,Se,pe,ue,ie,h,le],styles:["[_nghost-%COMP%]{display:block}h3[_ngcontent-%COMP%]{font:var(--title-30)}.column[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.field-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;width:100%}"],changeDetection:0})};function Pe(a,n){if(a&1&&(s(0,"div"),T(1),l(),f(2,"spk-progress-bar",9)),a&2){let t=O();_(),B("",t.statusData().actionText," - ",t.statusData().statusText,""),_(),g("value",t.statusData().progress*100)}}function Ne(a,n){if(a&1&&(s(0,"div",5),T(1),s(2,"spk-icon"),T(3,"clock"),l(),T(4),G(5,"relativeTime"),G(6,"date"),l()),a&2){let t,e=O();_(),I(" ",(t=e.nextBackup().backup)==null||t.Backup==null?null:t.Backup.Name," - "),_(3),B(" ",q(5,3,e.nextBackup().time)," at ",Z(6,5,e.nextBackup().time,"shortTime")," ")}}function Me(a,n){a&1&&(s(0,"div",5),p(1,1),l())}function De(a,n){a&1&&(s(0,"div",6),P(1,2),f(2,"spk-spinner"),N(),l()),a&2&&(_(2),X("--spinner-size","12px")("--spinner-thickness","2px"))}function Re(a,n){a&1&&(P(0,0,1),f(1,"spk-icon"),N())}function Fe(a,n){a&1&&(P(0,0,2),f(1,"spk-icon"),N())}var ge=new Date,x=class a{#e=d(A);#t=d(_e);#n=d(te);#i=d(Q);minsAgo=ge.setMinutes(ge.getMinutes()-1);statusData=this.#t.statusData;serverState=this.#t.serverState;isRunning=U(()=>this.serverState()?.ProgramState==="Running");isResuming=r(!1);nextBackup=U(()=>({backup:this.serverState()?.ProposedSchedule?.[0]?.backup,time:this.serverState()?.ProposedSchedule?.[0]?.Item2}));openThrottleSettingsDialog(){this.#n.open(F,{maxWidth:"550px",width:"100%"})}openPauseDialog(){this.#n.open(b,{maxWidth:"550px",width:"100%"})}pauseResume(){if(this.isRunning()){this.openPauseDialog();return}this.isResuming.set(!0),this.#e.postApiV1ServerstateResume().pipe(E(()=>this.isResuming.set(!1))).subscribe()}ngAfterViewInit(){let n=this.#i.relayIsEnabled()?"longpoll":"websocket";this.#t.setConnectionMethod(n)}static \u0275fac=function(t){return new(t||a)};static \u0275cmp=C({type:a,selectors:[["app-status-bar"]],decls:14,vars:4,consts:()=>{let n;n=$localize`${"\uFFFD*9:1\uFFFD"}:START_BLOCK_IF:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SPK_ICON:pause${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SPK_ICON: Pause ${"\uFFFD/*9:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*10:2\uFFFD"}:START_BLOCK_ELSE:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SPK_ICON:play${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SPK_ICON: Start ${"\uFFFD/*10:2\uFFFD"}:CLOSE_BLOCK_ELSE:`,n=j(n);let t;t=$localize`No scheduled tasks`;let e;return e=$localize` Loading ${"\uFFFD#2\uFFFD"}:START_TAG_SPK_SPINNER:${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SPK_SPINNER:`,[n,t,e,[1,"current-backup"],[1,"current-backup-progress"],[1,"label"],[1,"label","label-loading"],[1,"current-backup-actions"],["spk-button","",3,"click"],[1,"raised","primary",3,"value"]]},template:function(t,e){if(t&1&&(s(0,"div",3)(1,"div",4),L(2,Pe,3,3)(3,Ne,7,8,"div",5)(4,Me,2,0,"div",5)(5,De,3,4,"div",6),l(),s(6,"div",7)(7,"button",8),u("click",function(){return e.pauseResume()}),P(8,0),L(9,Re,2,0)(10,Fe,2,0),N(),l(),s(11,"button",8),u("click",function(){return e.openThrottleSettingsDialog()}),s(12,"spk-icon"),T(13,"speedometer"),l()()()()),t&2){let i;_(2),v((i=e.serverState())!=null&&i.ActiveTask&&(!((i=e.statusData())==null||i.task==null)&&i.task.Status)&&((i=e.statusData())==null||i.task==null?null:i.task.Status)!=="Completed"?2:e.nextBackup().backup||e.nextBackup().time?3:(i=e.serverState())!=null&&i.ActiveTask?5:4),_(5),S("loader",e.isResuming()),_(2),v(e.isRunning()?9:10)}},dependencies:[oe,ce,J,Y,ne,se],styles:["[_nghost-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:1rem;min-height:3.875rem;border-bottom:1px solid var(--base-level-40)}.current-backup[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%;gap:.5rem}.current-backup-progress[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem;min-width:18.75rem}.current-backup-progress[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem}.current-backup-actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}.label-loading[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.25rem}"],changeDetection:0})};export{x as a};
|
|
1
|
+
import{a as _e}from"./chunk-FEJAAP54.js";import{c as re,e as pe,h as ue,j as Se,s as y}from"./chunk-T2OUHRUV.js";import{a as Q}from"./chunk-FSGJ5KIH.js";import{a as Y,b as ee,e as te,g as ne,i as h,l as ie,p as oe,q as ae,s as se,t as le}from"./chunk-WX7L7V6J.js";import{b as A}from"./chunk-PTDSOPNK.js";import{a as ce}from"./chunk-DE4NDI5F.js";import{j as J}from"./chunk-CKPICCFH.js";import{$b as T,Ac as U,Cb as V,F as E,Gb as P,Hb as N,Ib as p,Lb as j,Mb as u,Nb as O,Qa as _,Y as d,ab as C,bc as I,cc as B,da as w,ea as z,ec as M,fb as L,fc as D,gc as R,nb as g,ob as X,pb as S,pc as G,qa as k,qc as q,rc as Z,sb as v,tb as H,ua as r,ub as K,vb as W,wb as s,xb as l,yb as f}from"./chunk-W2F756OF.js";function Oe(a,n){if(a&1){let t=V();s(0,"spk-radio",10),u("click",function(){let i=w(t).$implicit,o=O();return z(o.pauseOption.set(i.value))}),T(1),l()}if(a&2){let t=n.$implicit,e=O();S("active",e.pauseOption()===t.value),_(),I(" ",t.label," ")}}var Ae=[{label:$localize`5 minuts`,value:"5m"},{label:$localize`10 minuts`,value:"10m"},{label:$localize`15 minuts`,value:"15m"},{label:$localize`30 minuts`,value:"30m"},{label:$localize`1 hour`,value:"1h"},{label:$localize`4 hours`,value:"4h"},{label:$localize`8 hours`,value:"8h"},{label:$localize`24 hours`,value:"24h"},{label:$localize`Until resumed`,value:void 0}],b=class a{#e=d(A);pauseOptions=r(Ae);closed=k();isSubmitting=r(!1);pauseTransfers=r(!1);pauseOption=r(void 0);submit(){this.isSubmitting.set(!0);let n=this.pauseTransfers()||null,t=this.pauseOption();this.#e.postApiV1ServerstatePause({duration:t,pauseTransfers:n}).pipe(E(()=>this.isSubmitting.set(!1))).subscribe({next:e=>{this.closed.emit()}})}static \u0275fac=function(t){return new(t||a)};static \u0275cmp=C({type:a,selectors:[["app-pause-dialog"]],outputs:{closed:"closed"},decls:17,vars:4,consts:()=>{let n;n=$localize`Pause settings`;let t;t=$localize` Also pause transfers `;let e;e=$localize`If you pause transfers they could time out and cause retries or failures.`;let i;i=$localize`Cancel`;let o;return o=$localize` Update settings `,[n,t,e,i,o,["header",""],["content",""],[1,"radios"],[1,"primary","raised",3,"active"],[1,"check-wrap"],[1,"primary","raised",3,"click"],["type","warning"],["footer",""],["spk-button","",3,"click"],["spk-button","",1,"raised","primary",3,"click"]]},template:function(t,e){t&1&&(s(0,"header",5)(1,"h3"),p(2,0),l()(),s(3,"div",6)(4,"div",7),K(5,Oe,2,3,"spk-radio",8,H),l(),s(7,"div",9)(8,"spk-checkbox",10),u("click",function(){return e.pauseTransfers.set(!e.pauseTransfers())}),p(9,1),l(),s(10,"spk-alert",11),p(11,2),l()()(),s(12,"footer",12)(13,"button",13),u("click",function(){return e.closed.emit()}),p(14,3),l(),s(15,"button",14),u("click",function(){return e.submit()}),p(16,4),l()()),t&2&&(_(5),W(e.pauseOptions()),_(3),S("active",e.pauseTransfers()),_(7),S("loader",e.isSubmitting()))},dependencies:[y,ae,h,ee],styles:["[_nghost-%COMP%]{--dialog-p: 1.5rem;display:block}h3[_ngcontent-%COMP%]{font:var(--title-30)}.radios[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.check-wrap[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;padding:2rem 0 0}"],changeDetection:0})};var fe=["Byte/s","KByte/s","MByte/s","GByte/s","TByte/s","PByte/s"],$={Byte:"B",KByte:"KB",MByte:"MB",GByte:"GB",TByte:"TB",PByte:"PB"},me=Object.entries($).reduce((a,[n,t])=>(a[t]=n,a),{}),F=class a{#e=d(A);closed=k();isSubmitting=r(!1);sizeOptions=r(fe);maxUploadActive=r(!1);maxDownloadActive=r(!1);maxUpload=r(0);maxDownload=r(0);maxUploadUnit=r("MByte/s");maxDownloadUnit=r("MByte/s");ngOnInit(){this.init()}init(){this.#e.getApiV1Serversettings().subscribe({next:n=>{let t=n?.["max-upload-speed"]?.split(/(\d+)/),e=n?.["max-download-speed"]?.split(/(\d+)/),i=t[1]??"",o=e[1]??"",c=t[2]??"MB",m=e[2]??"MB",Ee=i===""?10:parseInt(i),Ce=o===""?10:parseInt(o);this.maxUploadUnit.set(me[c]+"/s"),this.maxDownloadUnit.set(me[m]+"/s"),this.maxUploadActive.set(i!==""),this.maxDownloadActive.set(o!==""),this.maxUpload.set(Ee),this.maxDownload.set(Ce)}})}blockDecimalKeys(n){if([".",","].includes(n.key))return n.preventDefault()}cleanupInputAfterPasting(n){n.preventDefault();let t=n.clipboardData?.getData("text/plain");if(!t)return;let e=t.replaceAll(/[\.,]/g,"");n.target.value=e}submit(){this.isSubmitting.set(!0);let n=this.maxUploadActive()?`${this.maxUpload()}${$[this.maxUploadUnit().replace("/s","")]}`:"",t=this.maxDownloadActive()?`${this.maxDownload()}${$[this.maxDownloadUnit().replace("/s","")]}`:"";this.#e.patchApiV1Serversettings({requestBody:{"max-upload-speed":n,"max-download-speed":t}}).pipe(E(()=>this.isSubmitting.set(!1))).subscribe({next:e=>{this.closed.emit(!0)}})}static \u0275fac=function(t){return new(t||a)};static \u0275cmp=C({type:a,selectors:[["app-throttle-settings-dialog"]],outputs:{closed:"closed"},decls:26,vars:16,consts:()=>{let n;n=$localize`Throttle network speed`;let t;t=$localize` Max upload speed `;let e;e=$localize` Max download speed `;let i;i=$localize` Note that speeds are entered in bytes, and line speeds are typically reported in bits. Use a factor of 8 to convert, such that an 8 mbit/s line is equivalent to 1 MByte/s. `;let o;o=$localize`Cancel`;let c;return c=$localize` Update settings `,[n,t,e,i,o,c,["header",""],["content",""],[1,"column"],[1,"field-row"],[1,"primary","raised",3,"click"],["type","number",3,"paste","keydown","ngModelChange","ngModel","disabled"],[3,"isClearable","options"],["type","text",3,"ngModelChange","ngModel"],["footer",""],["spk-button","",3,"click"],["spk-button","",1,"raised","primary",3,"click"]]},template:function(t,e){t&1&&(s(0,"header",6)(1,"h3"),p(2,0),l()(),s(3,"div",7)(4,"div",8)(5,"div",9)(6,"spk-checkbox",10),u("click",function(){return e.maxUploadActive.set(!e.maxUploadActive())}),p(7,1),l(),s(8,"spk-form-field")(9,"input",11),u("paste",function(o){return e.cleanupInputAfterPasting(o)})("keydown",function(o){return e.blockDecimalKeys(o)}),R("ngModelChange",function(o){return D(e.maxUpload,o)||(e.maxUpload=o),o}),l()(),s(10,"spk-select",12)(11,"input",13),R("ngModelChange",function(o){return D(e.maxUploadUnit,o)||(e.maxUploadUnit=o),o}),l()()(),s(12,"div",9)(13,"spk-checkbox",10),u("click",function(){return e.maxDownloadActive.set(!e.maxDownloadActive())}),p(14,2),l(),s(15,"spk-form-field")(16,"input",11),u("paste",function(o){return e.cleanupInputAfterPasting(o)})("keydown",function(o){return e.blockDecimalKeys(o)}),R("ngModelChange",function(o){return D(e.maxDownload,o)||(e.maxDownload=o),o}),l()(),s(17,"spk-select",12)(18,"input",13),R("ngModelChange",function(o){return D(e.maxDownloadUnit,o)||(e.maxDownloadUnit=o),o}),l()()(),s(19,"p"),p(20,3),l()()(),s(21,"footer",14)(22,"button",15),u("click",function(){return e.closed.emit(!1)}),p(23,4),l(),s(24,"button",16),u("click",function(){return e.submit()}),p(25,5),l()()),t&2&&(_(6),S("active",e.maxUploadActive()),_(3),M("ngModel",e.maxUpload),g("disabled",!e.maxUploadActive()),_(),g("isClearable",!1)("options",e.sizeOptions()),_(),M("ngModel",e.maxUploadUnit),_(2),S("active",e.maxDownloadActive()),_(3),M("ngModel",e.maxDownload),g("disabled",!e.maxDownloadActive()),_(),g("isClearable",!1)("options",e.sizeOptions()),_(),M("ngModel",e.maxDownloadUnit),_(6),S("loader",e.isSubmitting()))},dependencies:[y,re,Se,pe,ue,ie,h,le],styles:["[_nghost-%COMP%]{display:block}h3[_ngcontent-%COMP%]{font:var(--title-30)}.column[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.field-row[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem;width:100%}"],changeDetection:0})};function Pe(a,n){if(a&1&&(s(0,"div"),T(1),l(),f(2,"spk-progress-bar",9)),a&2){let t=O();_(),B("",t.statusData().actionText," - ",t.statusData().statusText,""),_(),g("value",t.statusData().progress*100)}}function Ne(a,n){if(a&1&&(s(0,"div",5),T(1),s(2,"spk-icon"),T(3,"clock"),l(),T(4),G(5,"relativeTime"),G(6,"date"),l()),a&2){let t,e=O();_(),I(" ",(t=e.nextBackup().backup)==null||t.Backup==null?null:t.Backup.Name," - "),_(3),B(" ",q(5,3,e.nextBackup().time)," at ",Z(6,5,e.nextBackup().time,"shortTime")," ")}}function Me(a,n){a&1&&(s(0,"div",5),p(1,1),l())}function De(a,n){a&1&&(s(0,"div",6),P(1,2),f(2,"spk-spinner"),N(),l()),a&2&&(_(2),X("--spinner-size","12px")("--spinner-thickness","2px"))}function Re(a,n){a&1&&(P(0,0,1),f(1,"spk-icon"),N())}function Fe(a,n){a&1&&(P(0,0,2),f(1,"spk-icon"),N())}var ge=new Date,x=class a{#e=d(A);#t=d(_e);#n=d(te);#i=d(Q);minsAgo=ge.setMinutes(ge.getMinutes()-1);statusData=this.#t.statusData;serverState=this.#t.serverState;isRunning=U(()=>this.serverState()?.ProgramState==="Running");isResuming=r(!1);nextBackup=U(()=>({backup:this.serverState()?.ProposedSchedule?.[0]?.backup,time:this.serverState()?.ProposedSchedule?.[0]?.Item2}));openThrottleSettingsDialog(){this.#n.open(F,{maxWidth:"550px",width:"100%"})}openPauseDialog(){this.#n.open(b,{maxWidth:"550px",width:"100%"})}pauseResume(){if(this.isRunning()){this.openPauseDialog();return}this.isResuming.set(!0),this.#e.postApiV1ServerstateResume().pipe(E(()=>this.isResuming.set(!1))).subscribe()}ngAfterViewInit(){let n=this.#i.relayIsEnabled()?"longpoll":"websocket";this.#t.setConnectionMethod(n)}static \u0275fac=function(t){return new(t||a)};static \u0275cmp=C({type:a,selectors:[["app-status-bar"]],decls:14,vars:4,consts:()=>{let n;n=$localize`${"\uFFFD*9:1\uFFFD"}:START_BLOCK_IF:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SPK_ICON:pause${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SPK_ICON: Pause ${"\uFFFD/*9:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*10:2\uFFFD"}:START_BLOCK_ELSE:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SPK_ICON:play${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SPK_ICON: Start ${"\uFFFD/*10:2\uFFFD"}:CLOSE_BLOCK_ELSE:`,n=j(n);let t;t=$localize`No scheduled tasks`;let e;return e=$localize` Loading ${"\uFFFD#2\uFFFD"}:START_TAG_SPK_SPINNER:${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SPK_SPINNER:`,[n,t,e,[1,"current-backup"],[1,"current-backup-progress"],[1,"label"],[1,"label","label-loading"],[1,"current-backup-actions"],["spk-button","",3,"click"],[1,"raised","primary",3,"value"]]},template:function(t,e){if(t&1&&(s(0,"div",3)(1,"div",4),L(2,Pe,3,3)(3,Ne,7,8,"div",5)(4,Me,2,0,"div",5)(5,De,3,4,"div",6),l(),s(6,"div",7)(7,"button",8),u("click",function(){return e.pauseResume()}),P(8,0),L(9,Re,2,0)(10,Fe,2,0),N(),l(),s(11,"button",8),u("click",function(){return e.openThrottleSettingsDialog()}),s(12,"spk-icon"),T(13,"speedometer"),l()()()()),t&2){let i;_(2),v((i=e.serverState())!=null&&i.ActiveTask&&(!((i=e.statusData())==null||i.task==null)&&i.task.Status)&&((i=e.statusData())==null||i.task==null?null:i.task.Status)!=="Completed"?2:e.nextBackup().backup||e.nextBackup().time?3:(i=e.serverState())!=null&&i.ActiveTask?5:4),_(5),S("loader",e.isResuming()),_(2),v(e.isRunning()?9:10)}},dependencies:[oe,ce,J,Y,ne,se],styles:["[_nghost-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:1rem;min-height:3.875rem;border-bottom:1px solid var(--base-level-40)}.current-backup[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;width:100%;gap:.5rem}.current-backup-progress[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem;min-width:18.75rem}.current-backup-progress[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem}.current-backup-actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}.label-loading[_ngcontent-%COMP%]{display:inline-flex;align-items:center;gap:.25rem}"],changeDetection:0})};export{x as a};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a}from"./chunk-
|
|
1
|
+
import{a}from"./chunk-6WM5WVZV.js";import"./chunk-6DH6O5YE.js";import"./chunk-DAPUSIR2.js";import"./chunk-SAVY3OEX.js";import"./chunk-T2OUHRUV.js";import"./chunk-WX7L7V6J.js";import"./chunk-PTDSOPNK.js";import"./chunk-MZ473NLM.js";import"./chunk-CKPICCFH.js";import"./chunk-W2F756OF.js";import"./chunk-7CGTOI24.js";export{a as OptionsListComponent};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./chunk-7CGTOI24.js";var o=[{path:"",redirectTo:"general",pathMatch:"full"},{path:"general",loadComponent:()=>import("./chunk-7YWZEP4G.js")},{path:"destination",loadComponent:()=>import("./chunk-AXTJMPOA.js")},{path:"source-data",loadComponent:()=>import("./chunk-P6BYDOQU.js")},{path:"schedule",loadComponent:()=>import("./chunk-OJ3MWFKA.js")},{path:"options",loadComponent:()=>import("./chunk-6AFQMFMF.js")}];export{o as default};
|