@duplicati/ngclient 0.0.61 → 0.0.62

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1 @@
1
+ import{a as oe,b as re}from"./chunk-N3GBABZB.js";import{a as H}from"./chunk-M27H5SJL.js";import{a as B}from"./chunk-PD4M6YP7.js";import{a as nt}from"./chunk-IHYJHBCC.js";import{a as ze}from"./chunk-PIVMNQL6.js";import{a as it}from"./chunk-ZUGIRXAF.js";import"./chunk-GE3T3AG3.js";import{b as j,d as W,e as Ve,g as q,h as Ue,l as Be,m as je,o as We,p as qe,q as K,r as Ke}from"./chunk-OROSSCXB.js";import{b as U}from"./chunk-O2MZ5CAQ.js";import{g as He,l as Je,o as Qe,p as Ye,q as Ze,r as et,w as tt}from"./chunk-ZTSITRHY.js";import"./chunk-NJSJNACP.js";import"./chunk-BSZZLSIX.js";import"./chunk-BUARZS4A.js";import"./chunk-O53NVQ2A.js";import{Ab as v,Bb as A,Cb as i,Db as r,Eb as h,F as ee,G as te,Ib as I,Kc as b,Lc as xe,Mc as Xe,N as P,Oa as ve,Ob as Fe,Pb as Le,Qb as a,Ra as l,Rb as ne,Sb as ie,Tb as ke,U as ye,Ub as p,Vb as T,Xa as Ae,Ya as u,Yb as we,_ as S,b as Oe,c as Re,ca as be,da as Ge,eb as x,fa as N,ga as M,hc as R,ic as F,jc as L,k as he,ka as $e,kb as y,l as Q,mc as X,n as Pe,nc as z,oc as V,q as Ie,r as Y,rc as De,tb as m,vb as O,yb as E,z as Z,zb as $}from"./chunk-VGQ6X3AL.js";import"./chunk-C6Q5SG76.js";function ot(o,e,t){!e&&Ge(o);let n=e??S($e);return t?be(n,t):n}function se(...o){let{normalizedSources:e,hasInitValue:t,operator:n,options:s}=at(o),_=ot(se,s?.injector);return t?re(Y(e).pipe(n),{initialValue:s.initialValue,injector:_}):re(Y(e).pipe(n),{injector:_,requireSync:!0})}function at(o){if(!o||!o.length||typeof o[0]!="object")throw new TypeError("derivedFrom needs sources");let e=typeof o[1]=="function";if(o.length==3&&!e)throw new TypeError("derivedFrom needs pipeable operator as a second argument");e||o.splice(1,0,Oe);let[t,n,s]=o,_=!!s&&"initialValue"in s;return{normalizedSources:Object.entries(t).reduce((C,[d,g])=>{if(Ae(g))C[d]=oe(g,{injector:s?.injector}).pipe(P(xe(g)));else if(Pe(g))C[d]=g.pipe(ee());else if(typeof g=="function"){let w=b(g);C[d]=oe(w,{injector:s?.injector}).pipe(P(g()))}else C[d]=he(g).pipe(ee());return C},Array.isArray(t)?[]:{}),operator:n,hasInitValue:_,options:s}}var G=class o{#e=S(U);#i=S(B);repeatRegisterTimer=null;state=u("unknown");claimUrl=u(null);registerUrl=u("");status=b(()=>{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=Xe(()=>{let e=this.#i.systemInfo();e&&this.registerUrl.set(e.RemoteControlRegistrationUrl??"")});#t(e){e.RegistrationUrl&&this.claimUrl.set(e.RegistrationUrl),e.IsConnected?this.state.set("connected"):e.IsEnabled?this.state.set("enabled"):e.CanEnable?this.state.set("disabled"):e.IsRegisteringFaulted?this.state.set("registeringfaulted"):e.IsRegistering?e.RegistrationUrl!=null&&e.RegistrationUrl.trim().length>0?this.state.set("registered"):this.state.set("registering"):this.state.set("inactive");let t=this.state();console.log("currentState: ",t),this.repeatRegisterTimer!==null&&(clearTimeout(this.repeatRegisterTimer),this.repeatRegisterTimer=null),t==="registering"&&(this.repeatRegisterTimer=setTimeout(()=>{this.#e.postApiV1RemotecontrolRegister({requestBody:{RegistrationUrl:""}}).subscribe({next:n=>this.#t(n),error:n=>this.#n(n)})},5e3)),(t==="enabled"||t==="registered")&&(this.repeatRegisterTimer=setTimeout(()=>{this.#e.getApiV1RemotecontrolStatus().subscribe({next:n=>this.#t(n),error:n=>this.#n(n)})},5e3)),e.IsRegistering&&e.CanEnable&&this.#e.deleteApiV1RemotecontrolRegister().subscribe({next:n=>this.#t(n)})}#n(e){this.#e.getApiV1RemotecontrolStatus().subscribe({next:t=>this.#t(t)})}refreshRemoteControlStatus(){this.#e.getApiV1RemotecontrolStatus().subscribe({next:e=>this.#t(e),error:e=>this.#n(e)})}beginRemoteRegistration(){this.state.set("registering"),this.#e.postApiV1RemotecontrolRegister({requestBody:{RegistrationUrl:this.registerUrl()}}).subscribe({next:e=>this.#t(e),error:e=>this.#n(e)})}cancelRemoteRegistration(){this.#e.deleteApiV1RemotecontrolRegister().subscribe({next:e=>this.#t(e),error:e=>this.#n(e)})}enableRemoteControl(){this.#e.postApiV1RemotecontrolEnable().subscribe({next:e=>this.#t(e),error:e=>this.#n(e)})}disableRemoteControl(){this.#e.postApiV1RemotecontrolDisable().subscribe({next:e=>this.#t(e),error:e=>this.#n(e)})}deleteRemoteControl(){let e=this;confirm("Are you sure you want to delete the remote control registration?")&&e.#e.deleteApiV1RemotecontrolRegistration().subscribe({next:t=>e.#t(t),error:t=>e.#n(t)})}static \u0275fac=function(t){return new(t||o)};static \u0275prov=ye({token:o,factory:o.\u0275fac,providedIn:"root"})};function pt(o,e){if(o&1){let t=I();i(0,"spk-form-field",10)(1,"input",11),V("ngModelChange",function(s){N(t);let _=T(2);return z(_.registerUrl,s)||(_.registerUrl=s),M(s)}),r()(),i(2,"button",12),p("click",function(){N(t);let s=T(2);return M(s.register())}),a(3,0),r()}if(o&2){let t=T(2);l(),X("ngModel",t.registerUrl)}}function dt(o,e){if(o&1&&(i(0,"div",8)(1,"label"),a(2,1),r(),i(3,"a",13),R(4),r()()),o&2){let t=T(2);l(3),we("href",t.claimUrl(),ve),l(),F(t.claimUrl())}}function St(o,e){o&1&&(i(0,"div",8)(1,"label"),a(2,2),r()())}function ut(o,e){if(o&1){let t=I();i(0,"button",12),p("click",function(){N(t);let s=T(2);return M(s.cancel())}),a(1,3),r()}}function Tt(o,e){if(o&1){let t=I();i(0,"button",12),p("click",function(){N(t);let s=T(2);return M(s.disable())}),a(1,4),r()}}function gt(o,e){if(o&1){let t=I();i(0,"button",12),p("click",function(){N(t);let s=T(2);return M(s.enable())}),a(1,5),r(),i(2,"button",14),p("click",function(){N(t);let s=T(2);return M(s.delete())}),a(3,6),r()}}function mt(o,e){if(o&1&&(i(0,"div",7),y(1,pt,4,1)(2,dt,5,2,"div",8)(3,St,3,0,"div",8)(4,ut,2,0,"button",9)(5,Tt,2,0,"button",9)(6,gt,4,0),r()),o&2){let t=T();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 J=class o{#e=S(G);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||o)};static \u0275cmp=x({type:o,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 s;s=$localize`Cancel registration`;let _;_=$localize`Disable remote control`;let f;f=$localize`Enable remote control`;let C;return C=$localize`Delete remote control setup`,[e,t,n,s,_,f,C,[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","warn",3,"click"]]},template:function(t,n){t&1&&y(0,mt,7,6,"div",7),t&2&&E(n.state()!=="unknown"?0:-1)},dependencies:[K,j,W,q,Je],styles:["[_nghost-%COMP%]{display:block}[_nghost-%COMP%] button[_ngcontent-%COMP%]{white-space:nowrap}.field-row[_ngcontent-%COMP%]{display:flex;gap:.5rem;width:100%}.field-row[_ngcontent-%COMP%] spk-form-field[_ngcontent-%COMP%], .field-row[_ngcontent-%COMP%] spk-select[_ngcontent-%COMP%]{flex:1 0}"],changeDetection:0})};var Ct=()=>({standalone:!0});function Et(o,e){if(o&1&&(i(0,"spk-option",34),R(1),r()),o&2){let t=e.$implicit;m("value",t),l(),F(t)}}function ft(o,e){if(o&1){let t=I();i(0,"spk-option",51),p("click",function(){let s=N(t).$implicit,_=T();return M(_.pauseSettings.controls.timeType.setValue(s.value))}),R(1),r()}if(o&2){let t=e.$implicit;m("value",t.value),l(),L(" ",t.label," ")}}function Nt(o,e){if(o&1&&(i(0,"spk-option",34),R(1),r()),o&2){let t=e.$implicit;m("value",t.value),l(),L(" ",t.label," ")}}function Mt(o,e){if(o&1&&R(0),o&2){let t,n=T();L(" ",(t=n.sysinfo())==null?null:t.ServerVersion," ")}}function Ot(o,e){o&1&&h(0,"spk-progress-bar",44)}function Rt(o,e){if(o&1&&(i(0,"spk-option",34),R(1),r()),o&2){let t=e.$implicit;m("value",t.value),l(),L(" ",t.label," ")}}var k=new qe,st=[{value:"s",label:$localize`Seconds`},{value:"m",label:$localize`Minutes`},{value:"h",label:$localize`Hours`}],lt=[{value:"",label:$localize`System default (information)`},{value:"information",label:$localize`Usage statistics, warnings, errors, and crashes`},{value:"warning",label:$localize`Warnings, errors and crashes`},{value:"error",label:$localize`Errors and crashes`},{value:"crash",label:$localize`Crashes only`},{value:"none",label:$localize`None / disabled`}],le=class o{#e=S(nt);#i=S(B);#t=S(U);#n=S(G);#o=S(ze);#r=this.#o.getItem("locale")??"en-US";sysinfo=this.#i.systemInfo;isDarkMode=this.#e.isDarkMode;editAs=u("list");langCtrl=u(this.#r);remoteControlStatus=this.#n.status;settingsForm=k.group({pauseSettings:k.group({time:k.control(0),timeType:k.control("s")}),usageStatistics:k.control("")});updatingChannel=u(!1);updateChannel=u("");setNewChannel(e){let t=this.updateChannel();this.updateChannel.set(e),this.#t.patchApiV1Serversettings({requestBody:{"update-channel":e}}).pipe(te(()=>this.updatingChannel.set(!1)),Z(()=>(this.updateChannel.set(t),Q(null)))).subscribe()}updatingDisableTrayIconLogin=u(!1);disableTrayIconLogin=u(!1);saveDisableTrayIconLogin(){let e=this.disableTrayIconLogin(),t=!e;this.updatingDisableTrayIconLogin.set(!0),this.disableTrayIconLogin.set(t),this.#t.patchApiV1Serversettings({requestBody:{"disable-tray-icon-login":t?"True":"False"}}).pipe(te(()=>this.updatingDisableTrayIconLogin.set(!1)),Z(()=>(this.disableTrayIconLogin.set(e),Q(null)))).subscribe()}get pauseSettings(){return this.settingsForm.controls.pauseSettings}languageOptions=b(()=>{let e=this.langCtrl();return e?H.filter(t=>t.label.toLowerCase().includes(e.toLowerCase())):H});usageStatisticsOptions=u(lt);timeTypeOptions=u(st);timeOptions=se([this.pauseSettings.controls.timeType.valueChanges.pipe(P("s")),this.pauseSettings.controls.time.valueChanges.pipe(P(null))],Re(Ie(([e,t])=>{let n=this.#s(e);return t!==null?n.filter(s=>s.toString().includes(t.toString())):n}),P([])));#s(e){let t=e==="h"?25:61;return new Array(t).fill(0).map((n,s)=>s)}ngOnInit(){this.getServerSettings()}saveLocale(e){this.#o.setItem("locale",e),window.location.reload()}submit(){let e=`${this.pauseSettings.controls.time.value}${this.pauseSettings.controls.timeType.value}`;this.#t.patchApiV1Serversettings({requestBody:{"usage-reporter-level":this.settingsForm.controls.usageStatistics.value,"startup-delay":e==="0s"?"":e}}).subscribe()}getServerSettings(){return this.#t.getApiV1Serversettings().subscribe({next:e=>{let t=e["startup-delay"],n=t.slice(-1),s=t.slice(0,-1),_=["s","m","h"];this.settingsForm.patchValue({pauseSettings:{time:parseInt(s==""?"0":s),timeType:_.includes(n)?n:"s"},usageStatistics:e["usage-reporter-level"]}),this.disableTrayIconLogin.set(e["disable-tray-icon-login"]!=="False"),this.updateChannel.set(e["update-channel"])}})}languageDisplay(){let e=this;return()=>{let t=e.langCtrl();return t?H.find(n=>n.value===t)?.label??null:null}}typeDisplay(){let e=this;return()=>{let t=e.settingsForm.value.pauseSettings?.timeType;return t==null?null:st.find(n=>n.value===t)?.label??null}}usageDisplay(){let e=this;return()=>{let t=e.settingsForm.value.usageStatistics;return t==null?null:lt.find(n=>n.value===t)?.label??null}}setDarkMode(){this.#e.setDarkMode()}setLightMode(){this.#e.setLightMode()}static \u0275fac=function(t){return new(t||o)};static \u0275cmp=x({type:o,selectors:[["app-settings"]],decls:112,vars:32,consts:()=>{let e;e=$localize`Settings`;let t;t=$localize`Configure your backup settings.`;let n;n=$localize` Save changes `;let s;s=$localize`Remote access control`;let _;_=$localize`Pause after startup or hibernation`;let f;f=$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 C;C=$localize`Color theme`;let d;d=$localize`Customize your application theme`;let g;g=$localize`Language`;let w;w=$localize`Select a language for the platform`;let ae;ae=$localize`Tray icon`;let _e;_e=$localize`Disable the tray icon login`;let ce;ce=$localize`Disable the tray icon login`;let pe;pe=$localize`Update channel`;let de;de=$localize` Default (${"\uFFFD0\uFFFD"}:INTERPOLATION:) `;let Se;Se=$localize`Same as the base install version: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let ue;ue=$localize`Stable`;let Te;Te=$localize`Official releases`;let ge;ge=$localize`Beta`;let me;me=$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 Ce;Ce=$localize` Experimental `;let Ee;Ee=$localize`Specific builds for developers only. Not for use with important data.`;let fe;fe=$localize`Canary`;let Ne;Ne=$localize`Individual builds for developers only. Not for use with important data.`;let Me;Me=$localize`Usage statistics`;let D;return D=$localize` Usage reports help us improve the user experience and evaluate impact of new features. We use them to generate ${"\uFFFD#104\uFFFD"}:START_LINK:public usage statistics.${"\uFFFD/#104\uFFFD"}:CLOSE_LINK:${"[\uFFFD#105\uFFFD\uFFFD/#105\uFFFD|\uFFFD#106\uFFFD\uFFFD/#106\uFFFD]"}:LINE_BREAK:${"[\uFFFD#105\uFFFD\uFFFD/#105\uFFFD|\uFFFD#106\uFFFD\uFFFD/#106\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. `,D=ke(D),[e,t,n,s,_,f,C,d,g,w,ae,_e,ce,pe,de,Se,ue,Te,ge,me,Ce,Ee,fe,Ne,Me,D,[1,"content",3,"submit","formGroup"],[1,"title"],["type","submit","spk-button","",1,"raised","primary",3,"disabled"],[1,"left"],[1,"right"],["formGroupName","pauseSettings",1,"field-row"],[3,"hideClearButton"],["type","search","formControlName","time"],[3,"value"],[3,"displayFn","hideClearButton"],["type","text","formControlName","timeType"],[1,"themes"],["src","assets/images/light-theme.png","alt","light theme",3,"click"],["src","assets/images/dark-theme.png","alt","dark theme",3,"click"],[3,"change","displayFn","hideClearButton"],["type","search",3,"ngModelChange","ngModel","ngModelOptions"],[1,"primary","raised",3,"click"],["for","disable-tray-icon-login"],[1,"indeterminate","primary"],[1,"right","radios"],[1,"radio-option",3,"click"],[1,"primary","raised"],["href","#"],[3,"displayFn"],["type","text","formControlName","usageStatistics"],[3,"click","value"]]},template:function(t,n){if(t&1&&(h(0,"app-status-bar"),i(1,"form",26),p("submit",function(){return n.submit()}),i(2,"header")(3,"div",27)(4,"h2"),a(5,0),r(),i(6,"p"),a(7,1),r()(),i(8,"button",28),a(9,2),r()(),i(10,"section")(11,"div",29)(12,"h3"),a(13,3),r(),i(14,"p"),R(15),r()(),i(16,"div",30),h(17,"app-remote-control"),r()(),i(18,"section")(19,"div",29)(20,"h3"),a(21,4),r(),i(22,"p"),a(23,5),r()(),i(24,"div",30)(25,"div",31)(26,"spk-select",32),h(27,"input",33),v(28,Et,2,2,"spk-option",34,$),r(),i(30,"spk-select",35),h(31,"input",36),v(32,ft,2,2,"spk-option",34,$),r()()()(),i(34,"section")(35,"div",29)(36,"h3"),a(37,6),r(),i(38,"p"),a(39,7),r()(),i(40,"div",30)(41,"div",37)(42,"img",38),p("click",function(){return n.setLightMode()}),r(),i(43,"img",39),p("click",function(){return n.setDarkMode()}),r()()()(),i(44,"section")(45,"div",29)(46,"h3"),a(47,8),r(),i(48,"p"),a(49,9),r()(),i(50,"div",30)(51,"spk-select",40),p("change",function(_){return n.saveLocale(_)}),i(52,"input",41),V("ngModelChange",function(_){return z(n.langCtrl,_)||(n.langCtrl=_),_}),r(),v(53,Nt,2,2,"spk-option",34,$),r()()(),i(55,"section")(56,"div",29)(57,"h3"),a(58,10),r(),i(59,"p"),a(60,11),r()(),i(61,"div",30)(62,"spk-toggle",42),p("click",function(){return n.saveDisableTrayIconLogin()}),i(63,"label",43),a(64,12),r()()()(),i(65,"section")(66,"div",29)(67,"h3"),a(68,13),r(),i(69,"p"),y(70,Mt,1,1),r(),y(71,Ot,1,0,"spk-progress-bar",44),r(),i(72,"div",45)(73,"div",46),p("click",function(){return n.setNewChannel("")}),i(74,"spk-radio",47),a(75,14),r(),i(76,"p"),a(77,15),r()(),i(78,"div",46),p("click",function(){return n.setNewChannel("stable")}),i(79,"spk-radio",47),a(80,16),r(),i(81,"p"),a(82,17),r()(),i(83,"div",46),p("click",function(){return n.setNewChannel("beta")}),i(84,"spk-radio",47),a(85,18),r(),i(86,"p"),a(87,19),r()(),i(88,"div",46),p("click",function(){return n.setNewChannel("experimental")}),i(89,"spk-radio",47),a(90,20),r(),i(91,"p"),a(92,21),r()(),i(93,"div",46),p("click",function(){return n.setNewChannel("canary")}),i(94,"spk-radio",47),a(95,22),r(),i(96,"p"),a(97,23),r()()()(),i(98,"section")(99,"div",29)(100,"h3"),a(101,24),r(),i(102,"p"),Fe(103,25),h(104,"a",48)(105,"br")(106,"br"),Le(),r()(),i(107,"div",30)(108,"spk-select",49),h(109,"input",50),v(110,Rt,2,2,"spk-option",34,$),r()()()()),t&2){let s,_,f;l(),m("formGroup",n.settingsForm),l(7),m("disabled",n.settingsForm.untouched),l(7),F(n.remoteControlStatus()),l(11),m("hideClearButton",!0),l(2),A(n.timeOptions()),l(2),m("displayFn",n.typeDisplay())("hideClearButton",!0),l(2),A(n.timeTypeOptions()),l(10),O("active",!n.isDarkMode()),l(),O("active",n.isDarkMode()),l(8),m("displayFn",n.languageDisplay())("hideClearButton",!0),l(),X("ngModel",n.langCtrl),m("ngModelOptions",De(31,Ct)),l(),A(n.languageOptions()),l(9),O("active",n.disableTrayIconLogin()),l(8),E(n.updateChannel()!==""&&((s=n.sysinfo())!=null&&s.ServerVersion)?70:-1),l(),E(n.updatingChannel()?71:-1),l(3),O("active",n.updateChannel()===""),l(),ne((_=n.sysinfo())==null?null:_.DefaultUpdateChannel),ie(75),l(2),ne((f=n.sysinfo())==null?null:f.ServerVersionType),ie(77),l(2),O("active",n.updateChannel()==="stable"),l(5),O("active",n.updateChannel()==="beta"),l(5),O("active",n.updateChannel()==="experimental"),l(5),O("active",n.updateChannel()==="canary"),l(14),m("displayFn",n.usageDisplay()),l(2),A(n.usageStatisticsOptions())}},dependencies:[K,Ue,j,W,Ve,q,Ke,Be,We,je,it,J,Ze,He,Ye,et,Qe,tt],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%}.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}"],changeDetection:0})};export{le as default};
package/index.html CHANGED
@@ -20,5 +20,5 @@
20
20
  <style>:root{--font-size:16px;font-size:var(--font-size)}html body{--sparkle-light:initial;--sparkle-dark: ;color-scheme:light dark;--primary-50:#eff6ff;--primary-rgb-50:239,246,255;--primary-contrast-50:var(--dark-primary-text);--primary-100:#dbeafe;--primary-rgb-100:219,234,254;--primary-contrast-100:var(--dark-primary-text);--primary-200:#bfdbfe;--primary-rgb-200:191,219,254;--primary-contrast-200:var(--dark-primary-text);--primary-300:#93c5fd;--primary-rgb-300:147,197,253;--primary-contrast-300:var(--dark-primary-text);--primary-400:#60a5fa;--primary-rgb-400:96,165,250;--primary-contrast-400:var(--dark-primary-text);--primary-500:#3b82f6;--primary-rgb-500:59,130,246;--primary-contrast-500:var(--light-primary-text);--primary-600:#2563eb;--primary-rgb-600:37,99,235;--primary-contrast-600:var(--light-primary-text);--primary-700:#1d4ed8;--primary-rgb-700:29,78,216;--primary-contrast-700:var(--light-primary-text);--primary-800:#1e40af;--primary-rgb-800:30,64,175;--primary-contrast-800:var(--light-primary-text);--primary-900:#1e3a8a;--primary-rgb-900:30,58,138;--primary-contrast-900:var(--light-primary-text);--primary-950:#172554;--primary-rgb-950:23,37,84;--primary-contrast-950:var(--light-primary-text);--accent-50:#f5f3ff;--accent-rgb-50:245,243,255;--accent-contrast-50:var(--dark-primary-text);--accent-100:#ede9fe;--accent-rgb-100:237,233,254;--accent-contrast-100:var(--dark-primary-text);--accent-200:#ddd6fe;--accent-rgb-200:221,214,254;--accent-contrast-200:var(--dark-primary-text);--accent-300:#c4b5fd;--accent-rgb-300:196,181,253;--accent-contrast-300:var(--dark-primary-text);--accent-400:#a78bfa;--accent-rgb-400:167,139,250;--accent-contrast-400:var(--dark-primary-text);--accent-500:#8b5cf6;--accent-rgb-500:139,92,246;--accent-contrast-500:var(--light-primary-text);--accent-600:#7c3aed;--accent-rgb-600:124,58,237;--accent-contrast-600:var(--light-primary-text);--accent-700:#6d28d9;--accent-rgb-700:109,40,217;--accent-contrast-700:var(--light-primary-text);--accent-800:#5b21b6;--accent-rgb-800:91,33,182;--accent-contrast-800:var(--light-primary-text);--accent-900:#4c1d95;--accent-rgb-900:76,29,149;--accent-contrast-900:var(--light-primary-text);--accent-950:#2e1065;--accent-rgb-950:46,16,101;--accent-contrast-950:var(--light-primary-text);--tertiary-50:#fffbeb;--tertiary-rgb-50:255,251,235;--tertiary-contrast-50:var(--dark-primary-text);--tertiary-100:#fef3c7;--tertiary-rgb-100:254,243,199;--tertiary-contrast-100:var(--dark-primary-text);--tertiary-200:#fde68a;--tertiary-rgb-200:253,230,138;--tertiary-contrast-200:var(--dark-primary-text);--tertiary-300:#fcd34d;--tertiary-rgb-300:252,211,77;--tertiary-contrast-300:var(--dark-primary-text);--tertiary-400:#fbbf24;--tertiary-rgb-400:251,191,36;--tertiary-contrast-400:var(--light-primary-text);--tertiary-500:#f59e0b;--tertiary-rgb-500:245,158,11;--tertiary-contrast-500:var(--light-primary-text);--tertiary-600:#d97706;--tertiary-rgb-600:217,119,6;--tertiary-contrast-600:var(--light-primary-text);--tertiary-700:#b45309;--tertiary-rgb-700:180,83,9;--tertiary-contrast-700:var(--light-primary-text);--tertiary-800:#92400e;--tertiary-rgb-800:146,64,14;--tertiary-contrast-800:var(--light-primary-text);--tertiary-900:#78350f;--tertiary-rgb-900:120,53,15;--tertiary-contrast-900:var(--light-primary-text);--tertiary-950:#451a03;--tertiary-rgb-950:69,26,3;--tertiary-contrast-950:var(--light-primary-text);--grey-50:#fafafa;--grey-rgb-50:250,250,250;--grey-contrast-50:var(--dark-primary-text);--grey-100:#f4f4f5;--grey-rgb-100:244,244,245;--grey-contrast-100:var(--dark-primary-text);--grey-200:#e4e4e7;--grey-rgb-200:228,228,231;--grey-contrast-200:var(--dark-primary-text);--grey-300:#d4d4d8;--grey-rgb-300:212,212,216;--grey-contrast-300:var(--dark-primary-text);--grey-400:#a1a1aa;--grey-rgb-400:161,161,170;--grey-contrast-400:var(--dark-primary-text);--grey-500:#71717a;--grey-rgb-500:113,113,122;--grey-contrast-500:var(--light-primary-text);--grey-600:#52525b;--grey-rgb-600:82,82,91;--grey-contrast-600:var(--light-primary-text);--grey-700:#3f3f46;--grey-rgb-700:63,63,70;--grey-contrast-700:var(--light-primary-text);--grey-750:#2f2f31;--grey-rgb-750:47,47,49;--grey-contrast-750:var(--light-primary-text);--grey-800:#27272a;--grey-rgb-800:39,39,42;--grey-contrast-800:var(--light-primary-text);--grey-900:#18181b;--grey-rgb-900:24,24,27;--grey-contrast-900:var(--light-primary-text);--grey-950:#09090b;--grey-rgb-950:9,9,11;--grey-contrast-950:var(--light-primary-text);--warn-50:#fef2f2;--warn-rgb-50:254,242,242;--warn-contrast-50:var(--dark-primary-text);--warn-100:#fee2e2;--warn-rgb-100:254,226,226;--warn-contrast-100:var(--dark-primary-text);--warn-200:#fecaca;--warn-rgb-200:254,202,202;--warn-contrast-200:var(--dark-primary-text);--warn-300:#fca5a5;--warn-rgb-300:252,165,165;--warn-contrast-300:var(--dark-primary-text);--warn-400:#f87171;--warn-rgb-400:248,113,113;--warn-contrast-400:var(--light-primary-text);--warn-500:#ef4444;--warn-rgb-500:239,68,68;--warn-contrast-500:var(--light-primary-text);--warn-600:#dc2626;--warn-rgb-600:220,38,38;--warn-contrast-600:var(--light-primary-text);--warn-700:#b91c1c;--warn-rgb-700:185,28,28;--warn-contrast-700:var(--light-primary-text);--warn-800:#991b1b;--warn-rgb-800:153,27,27;--warn-contrast-800:var(--light-primary-text);--warn-900:#7f1d1d;--warn-rgb-900:127,29,29;--warn-contrast-900:var(--light-primary-text);--warn-950:#450a0a;--warn-rgb-950:69,10,10;--warn-contrast-950:var(--light-primary-text);--success-50:#ecfdf5;--success-rgb-50:236,253,245;--success-contrast-50:var(--dark-primary-text);--success-100:#d1fae5;--success-rgb-100:209,250,229;--success-contrast-100:var(--dark-primary-text);--success-200:#a7f3d0;--success-rgb-200:167,243,208;--success-contrast-200:var(--dark-primary-text);--success-300:#6ee7b7;--success-rgb-300:110,231,183;--success-contrast-300:var(--dark-primary-text);--success-400:#34d399;--success-rgb-400:52,211,153;--success-contrast-400:var(--light-primary-text);--success-500:#10b981;--success-rgb-500:16,185,129;--success-contrast-500:var(--light-primary-text);--success-600:#059669;--success-rgb-600:5,150,105;--success-contrast-600:var(--light-primary-text);--success-700:#047857;--success-rgb-700:4,120,87;--success-contrast-700:var(--light-primary-text);--success-800:#065f46;--success-rgb-800:6,95,70;--success-contrast-800:var(--light-primary-text);--success-900:#064e3b;--success-rgb-900:6,78,59;--success-contrast-900:var(--light-primary-text);--success-950:#022c22;--success-rgb-950:2,44,34;--success-contrast-950:var(--light-primary-text);--display-10:600 5rem / normal Inter Tight, sans-serif;--display-20:600 4.5rem / normal Inter Tight, sans-serif;--display-30:600 4rem / normal Inter Tight, sans-serif;--display-40:600 3.5rem / normal Inter Tight, sans-serif;--display-50:600 3rem / normal Inter Tight, sans-serif;--title-10:500 2.5rem / normal Inter Tight, sans-serif;--title-20:500 2rem / normal Inter Tight, sans-serif;--title-30:500 1.5rem / normal Inter Tight, sans-serif;--title-10B:600 2.5rem / normal Inter Tight, sans-serif;--title-20B:600 2rem / normal Inter Tight, sans-serif;--title-30B:600 1.5rem / normal Inter Tight, sans-serif;--paragraph-10:500 1.125rem / normal Inter Tight, sans-serif;--paragraph-20:500 1rem / normal Inter Tight, sans-serif;--paragraph-30:500 .875rem / normal Inter Tight, sans-serif;--paragraph-40:500 .75rem / normal Inter Tight, sans-serif;--paragraph-10B:600 1.125rem / normal Inter Tight, sans-serif;--paragraph-20B:600 1rem / normal Inter Tight, sans-serif;--paragraph-30B:600 .875rem / normal Inter Tight, sans-serif;--paragraph-40B:600 .75rem / normal Inter Tight, sans-serif;--shape-1:.25rem;--shape-2:.5rem;--shape-3:.75rem;--shape-4:1rem;--shape-5:1.25rem;--box-shadow-10:0 1px 2px 0 rgba(18, 18, 23, .07);--box-shadow-20:0 1px 3px 0 rgba(18, 18, 23, .1);--box-shadow-30:0 1px 4px -1px rgba(18, 18, 23, .08);--box-shadow-35:0 4px 6px -1px rgba(18, 18, 23, .08);--box-shadow-40:0 10px 15px -3px rgba(18, 18, 23, .08);--box-shadow-50:0 20px 25px -5px rgba(18, 18, 23, .1);--box-shadow-60:0 25px 50px -12px rgba(18, 18, 23, .25);--base-level-10:var(--sparkle-light, #fff) var(--sparkle-dark, var(--grey-950));--base-level-20:var(--sparkle-light, var(--grey-50)) var(--sparkle-dark, var(--grey-900));--base-level-30:var(--sparkle-light, var(--grey-100)) var(--sparkle-dark, var(--grey-900));--base-level-30R:var(--sparkle-light, var(--grey-900)) var(--sparkle-dark, var(--grey-100));--base-level-40:var(--sparkle-light, var(--grey-200)) var(--sparkle-dark, var(--grey-700));--base-level-50:var(--sparkle-light, var(--grey-300)) var(--sparkle-dark, var(--grey-800));--base-level-60:var(--sparkle-light, var(--grey-500)) var(--sparkle-dark, var(--grey-400));--base-level-60R:var(--sparkle-light, var(--grey-400)) var(--sparkle-dark, var(--grey-500));--base-level-70:var(--sparkle-light, var(--grey-900)) var(--sparkle-dark, #fff);--base-level-70R:var(--sparkle-light, #fff) var(--sparkle-dark, var(--grey-900));--base-gradient-20:linear-gradient(180deg, var(--grey-400) 0%, var(--grey-500) 50%);--base-gradient-30:linear-gradient(180deg, var(--grey-300) 0%, var(--grey-500) 50%);--base-gradient-60:linear-gradient(180deg, var(--grey-700) 0%, var(--grey-900) 50%);--base-gradient-70:linear-gradient(180deg, var(--grey-600) 0%, var(--grey-900) 50%);--primary-level-20:var(--sparkle-light, var(--primary-50)) var(--sparkle-dark, var(--primary-950));--primary-level-30:var(--sparkle-light, var(--primary-100)) var(--sparkle-dark, var(--primary-900));--primary-level-40:var(--sparkle-light, var(--primary-200)) var(--sparkle-dark, var(--primary-800));--primary-level-50:var(--sparkle-light, var(--primary-300)) var(--sparkle-dark, var(--primary-800));--primary-level-50R:var(--sparkle-light, var(--primary-800)) var(--sparkle-dark, var(--primary-300));--primary-level-80:var(--sparkle-light, var(--primary-900)) var(--sparkle-dark, var(--primary-300));--primary-gradient-20:linear-gradient(180deg, var(--primary-400) 0%, var(--primary-500) 50%);--primary-gradient-30:linear-gradient(180deg, var(--primary-300) 0%, var(--primary-500) 50%);--accent-level-20:var(--sparkle-light, var(--accent-50)) var(--sparkle-dark, var(--accent-950));--accent-level-30:var(--sparkle-light, var(--accent-100)) var(--sparkle-dark, var(--accent-900));--accent-level-40:var(--sparkle-light, var(--accent-200)) var(--sparkle-dark, var(--accent-800));--accent-level-50:var(--sparkle-light, var(--accent-300)) var(--sparkle-dark, var(--accent-800));--accent-level-50R:var(--sparkle-light, var(--accent-800)) var(--sparkle-dark, var(--accent-300));--accent-level-80:var(--sparkle-light, var(--accent-900)) var(--sparkle-dark, var(--accent-300));--accent-gradient-20:linear-gradient(180deg, var(--accent-400) 0%, var(--accent-500) 50%);--accent-gradient-30:linear-gradient(180deg, var(--accent-300) 0%, var(--accent-500) 50%);--tertiary-level-20:var(--sparkle-light, var(--tertiary-50)) var(--sparkle-dark, var(--tertiary-950));--tertiary-level-30:var(--sparkle-light, var(--tertiary-100)) var(--sparkle-dark, var(--tertiary-900));--tertiary-level-40:var(--sparkle-light, var(--tertiary-200)) var(--sparkle-dark, var(--tertiary-800));--tertiary-level-50:var(--sparkle-light, var(--tertiary-300)) var(--sparkle-dark, var(--tertiary-800));--tertiary-level-50R:var(--sparkle-light, var(--tertiary-800)) var(--sparkle-dark, var(--tertiary-300));--tertiary-level-80:var(--sparkle-light, var(--tertiary-900)) var(--sparkle-dark, var(--tertiary-300));--tertiary-gradient-20:linear-gradient(180deg, var(--tertiary-400) 0%, var(--tertiary-500) 50%);--tertiary-gradient-30:linear-gradient(180deg, var(--tertiary-300) 0%, var(--tertiary-500) 50%);--warn-level-20:var(--sparkle-light, var(--warn-50)) var(--sparkle-dark, var(--warn-950));--warn-level-30:var(--sparkle-light, var(--warn-100)) var(--sparkle-dark, var(--warn-900));--warn-level-40:var(--sparkle-light, var(--warn-200)) var(--sparkle-dark, var(--warn-800));--warn-level-50:var(--sparkle-light, var(--warn-300)) var(--sparkle-dark, var(--warn-800));--warn-level-50R:var(--sparkle-light, var(--warn-800)) var(--sparkle-dark, var(--warn-300));--warn-level-80:var(--sparkle-light, var(--warn-900)) var(--sparkle-dark, var(--warn-300));--warn-gradient-20:linear-gradient(180deg, var(--warn-400) 0%, var(--warn-500) 50%);--warn-gradient-30:linear-gradient(180deg, var(--warn-300) 0%, var(--warn-500) 50%);--success-level-20:var(--sparkle-light, var(--success-50)) var(--sparkle-dark, var(--success-950));--success-level-30:var(--sparkle-light, var(--success-100)) var(--sparkle-dark, var(--success-900));--success-level-40:var(--sparkle-light, var(--success-200)) var(--sparkle-dark, var(--success-800));--success-level-50:var(--sparkle-light, var(--success-300)) var(--sparkle-dark, var(--success-800));--success-level-50R:var(--sparkle-light, var(--success-800)) var(--sparkle-dark, var(--success-300));--success-level-80:var(--sparkle-light, var(--success-900)) var(--sparkle-dark, var(--success-300));--success-gradient-20:linear-gradient(180deg, var(--success-400) 0%, var(--success-500) 50%);--success-gradient-30:linear-gradient(180deg, var(--success-300) 0%, var(--success-500) 50%);--dark-primary-text:var(--grey-900);--light-primary-text:#fff}*{box-sizing:border-box}html,body,app-root{width:100vw;min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--base-level-20)}body{margin:0;font:var(--paragraph-30);color:var(--base-level-70)}</style><link rel="stylesheet" href="styles-AIQ3E4AK.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-AIQ3E4AK.css"></noscript></head>
21
21
  <body>
22
22
  <app-root></app-root>
23
- <link rel="modulepreload" href="chunk-M27H5SJL.js"><link rel="modulepreload" href="chunk-PD4M6YP7.js"><link rel="modulepreload" href="chunk-YT3L2PHL.js"><link rel="modulepreload" href="chunk-EXAIEGUA.js"><link rel="modulepreload" href="chunk-PIVMNQL6.js"><link rel="modulepreload" href="chunk-O2MZ5CAQ.js"><link rel="modulepreload" href="chunk-J76HBC5J.js"><link rel="modulepreload" href="chunk-MSK2MH2K.js"><link rel="modulepreload" href="chunk-ZTSITRHY.js"><link rel="modulepreload" href="chunk-NJSJNACP.js"><script src="polyfills-DUGKNACR.js" type="module"></script><script src="main-OAVKSP2O.js" type="module"></script></body>
23
+ <link rel="modulepreload" href="chunk-M27H5SJL.js"><link rel="modulepreload" href="chunk-PD4M6YP7.js"><link rel="modulepreload" href="chunk-YT3L2PHL.js"><link rel="modulepreload" href="chunk-EXAIEGUA.js"><link rel="modulepreload" href="chunk-PIVMNQL6.js"><link rel="modulepreload" href="chunk-O2MZ5CAQ.js"><link rel="modulepreload" href="chunk-J76HBC5J.js"><link rel="modulepreload" href="chunk-MSK2MH2K.js"><link rel="modulepreload" href="chunk-ZTSITRHY.js"><link rel="modulepreload" href="chunk-NJSJNACP.js"><script src="polyfills-DUGKNACR.js" type="module"></script><script src="main-7UWWTKQK.js" type="module"></script></body>
24
24
  </html>
@@ -1 +1 @@
1
- import{b as re,c as se}from"./chunk-M27H5SJL.js";import{a as O}from"./chunk-PD4M6YP7.js";import{a as te}from"./chunk-YT3L2PHL.js";import{a as y}from"./chunk-EXAIEGUA.js";import{a as g}from"./chunk-PIVMNQL6.js";import{d as Y}from"./chunk-O2MZ5CAQ.js";import{b as q,c as X,f as Z,g as Q}from"./chunk-J76HBC5J.js";import{a as _}from"./chunk-MSK2MH2K.js";import{c as ee}from"./chunk-ZTSITRHY.js";import{a as G,b as K,d as $,e as z,f as B}from"./chunk-NJSJNACP.js";import{a as ne}from"./chunk-BSZZLSIX.js";import{ua as J}from"./chunk-BUARZS4A.js";import{b as oe}from"./chunk-O53NVQ2A.js";import{Bc as W,Cc as F,Eb as U,G as C,M as L,Mc as D,O as S,Q as V,U as R,X as j,Ya as l,_ as s,d as x,eb as H,ka as P,m as A,y as E,z as k}from"./chunk-VGQ6X3AL.js";import"./chunk-C6Q5SG76.js";var w=class o{#o=s(g);#s=s(y);ngOnInit(){this.#s.fetchConfig(),this.#o.clearAllNotCurrentVersion()}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=H({type:o,selectors:[["app-root"]],decls:1,vars:0,template:function(e,r){e&1&&U(0,"router-outlet")},dependencies:[q],encapsulation:2})};var ae={production:!0,baseUrl:"/api",machineServerUrl:"${WS_URL}",defaultTimeout:3e4};var d=new j("ENVIRONMENT");var I=class o{#o=s(Y);isLoaded=l(!1);webmodules=l(null);preload(t=!1){let e=this.#o.getApiV1Webmodules().pipe(V(r=>this.webmodules.set(r)),C(()=>this.isLoaded.set(!0)));if(t)return e;e.subscribe()}static \u0275fac=function(e){return new(e||o)};static \u0275prov=R({token:o,factory:o.\u0275fac,providedIn:"root"})};var ue=()=>{let o=s(y),t=s(P),e=[t.get(O).preload(!0),t.get(O).preloadFilterGroups(!0),t.get(I).preload(!0)];return o.configLoaded===null?E(e):o.configLoaded?.pipe(S(()=>E(e)))},pe=[{path:"",children:[{path:"login",canActivate:[],loadComponent:()=>import("./chunk-AX4MPJ65.js")},{path:"logout",loadComponent:()=>import("./chunk-4MGFY2JV.js")},{path:"",canActivate:[ue],loadComponent:()=>import("./chunk-HSJMMQHL.js"),children:[{path:"",loadComponent:()=>import("./chunk-L7W4ZJTP.js")},{path:"add-backup",loadComponent:()=>import("./chunk-OIV6DYWR.js")},{path:"backup/:id/export",loadComponent:()=>import("./chunk-KWC4F7OI.js")},{path:"backup/import",loadComponent:()=>import("./chunk-HWBFYM4U.js")},{path:"backup-draft/:id",loadComponent:()=>import("./chunk-7R4NNENA.js"),loadChildren:()=>import("./chunk-4C3R2PTH.js")},{path:"backup/:id",loadComponent:()=>import("./chunk-7R4NNENA.js"),loadChildren:()=>import("./chunk-4C3R2PTH.js")},{path:"backup/:id/log",loadComponent:()=>import("./chunk-N4NGBPMJ.js")},{path:"backup/:id/database",loadComponent:()=>import("./chunk-SANIFXXF.js")},{path:"backup/:id/commandline",loadComponent:()=>import("./chunk-2T3PBPBO.js")},{path:"backup/:id/commandline/:runId",loadComponent:()=>import("./chunk-FCXKPHH2.js")},{path:"restore",children:[{path:"",loadComponent:()=>import("./chunk-IQDBKRQV.js")},{path:"from-config",loadComponent:()=>import("./chunk-KBC4N47O.js")}]},{path:"restore-from-files",loadComponent:()=>import("./chunk-EQS5S7RI.js"),loadChildren:()=>import("./chunk-I3KS7JEN.js")},{path:"restore-draft/:id",loadComponent:()=>import("./chunk-EQS5S7RI.js"),loadChildren:()=>import("./chunk-I3KS7JEN.js")},{path:"restore/:id",loadComponent:()=>import("./chunk-EQS5S7RI.js"),loadChildren:()=>import("./chunk-I3KS7JEN.js")},{path:"settings",loadComponent:()=>import("./chunk-MYCIO3QE.js")},{path:"about",loadComponent:()=>import("./chunk-U2NGUTAO.js"),children:[{path:"",redirectTo:"general",pathMatch:"full"},{path:"general",loadComponent:()=>import("./chunk-TSQCXGD7.js")},{path:"changelog",loadComponent:()=>import("./chunk-7YT4Y7C3.js")},{path:"libraries",loadComponent:()=>import("./chunk-GRR3LTVK.js")},{path:"system-info",loadComponent:()=>import("./chunk-3CXGKNYN.js")},{path:"logs",loadComponent:()=>import("./chunk-2HC23GJF.js")}]}]}]}];var T=null,ce=(o,t)=>{let e=s(te),r=s(X),c=s(g),i=s(d),u=s(ee),n=c.getItem("locale"),p=re(n),h=o;if(e.token()&&o.url.startsWith(i.baseUrl)){let a=o.headers.set("Authorization",`Bearer ${e.token()}`);n&&n!=="en-US"&&(a=a.set("X-Ui-Language",p)),h=o.clone({headers:a})}return t(h).pipe(k(a=>{if(u.error(a.message),a.status===401&&!T&&(T=e.refreshToken().pipe(L())),a.status===401)return T.pipe(S(()=>t(o.clone({headers:o.headers.set("Authorization",`Bearer ${e.token()}`)}))),k(f=>(r.navigate(["/logout"]),A(()=>f))),C(()=>T=null));let m=`Error Code: ${a.status}, Message: ${a.message}`;return A(()=>({error:a,message:m}))}))};var he="1.0.0",le="portal-proxy-client",fe=1,M=class o{#o=1e3;#s=s(d);#t=l("disconnected");#l=l(this.#o);#i=l(!1);#n=l(!1);#a=l(null);isConnectedToMachineServer=this.#n.asReadonly();wsState=this.#t.asReadonly();#p=[];#r={};#e=null;#m=new TextDecoder("utf-8");#c=null;#d=D(()=>{let t=this.#i(),e=this.#l(),r=this.#a();if(!r||!t||!e||e<this.#o){this.#c&&window.clearInterval(this.#c);return}this.#c=window.setInterval(()=>{this.connectToMachineServer(r)},e)});utf8Atob(t){let e=Uint8Array.from(atob(t),c=>c.charCodeAt(0)),r=this.#m.decode(e);return r?JSON.parse(r):null}connectToMachineServer(t,e){let r=e?.reconnect??!1;this.#e&&this.wsState()==="authenticated"&&!r||(this.#e&&this.wsState()!=="authenticated"&&this.#e.close(),this.#e=new WebSocket(this.#s.machineServerUrl),this.#e.onopen=()=>{this.#t.set("connect"),this.#n.set(!0),this.#i.set(!1),this.#a.set(null)},this.#e.onclose=()=>{this.#t.set("disconnected"),this.#n.set(!1),this.#a.set(t),this.#i.set(!0)},this.#e.onerror=()=>{this.#t.set("error")},this.#e.onmessage=c=>{let i=JSON.parse(c.data);if(this.wsState()==="connect"){if(i.type!=="welcome"){this.disconnectFromMachineServer(`Unexpected message type, expected 'welcome' but got '${i.type}'`);return}let n={token:t,publicKey:"",clientVersion:he,protocolVersion:fe},p=this.createResponse(i,"authportal",n);this.#t.set("welcome"),this.#e?.send(p)}else if(this.wsState()==="welcome"){if(i.type!=="authportal"){this.disconnectFromMachineServer(`Unexpected message type, expected 'authportal' but got '${i.type}'`);return}var u=JSON.parse(i.payload??"");if(u.accepted===!1){this.disconnectFromMachineServer("Authentication failed");return}for(this.#t.set("authenticated"),this.#n.set(!0);this.#p.length>0;){let n=this.#p.pop();n&&this.#r[n.messageId]&&this.activateCommand(n)}}else if(this.wsState()==="authenticated"){if(i.type!=="command"){console.warn(`Unexpected message type, expected 'command' but got '${i.type}'`);return}let n=this.#r[i.messageId];if(n){if(i.errorMessage){n.reject(i.errorMessage);return}else{let p=JSON.parse(i.payload??"");p.body=p?.body==null?null:this.utf8Atob(p.body),n.resolve(p)}delete this.#r[i.messageId],window.clearTimeout(n.timer)}}})}disconnectFromMachineServer(t=null){t&&console.error(t),this.#e?.close(),this.#e=null,this.#t.set("disconnected"),this.#n.set(!1)}createResponse(t,e,r){let c={from:le,to:t.from,type:e,messageId:t.messageId,payload:JSON.stringify(r)};return JSON.stringify(c)}sendCommand(t,e,r,c,i,u,n=5e3){return(this.wsState()==="disconnected"||this.wsState()==="error")&&this.connectToMachineServer(t),new Promise((p,h)=>{let a=crypto.randomUUID(),f={from:le,to:e,type:"command",messageId:a,payload:JSON.stringify({method:r,path:c,body:i,headers:u})},b={resolve:p,reject:h,timer:window.setTimeout(()=>{let v=this.#r[a];v&&(delete this.#r[a],v.reject("Timeout"))},n)};this.#r[a]=b,this.#n()?this.activateCommand(f):this.#p.push(f)})}activateCommand(t){this.#e?.send(JSON.stringify(t))}static \u0275fac=function(e){return new(e||o)};static \u0275prov=R({token:o,factory:o.\u0275fac,providedIn:"root"})};function ge(o){if(typeof o!="string")return null;let e=new TextEncoder().encode(o);return window.btoa(String.fromCharCode(...e))}var me=(o,t)=>{let r=s(y).config(),c=s(d);if(r===null)return t(o);let i=s(M),u=ge(o.body),n={};o.headers.keys().forEach(m=>{n[m]=o.headers.get(m)??""});let p=o.headers.get("timeout"),h=p!==null?parseInt(p):c.defaultTimeout,a=i.sendCommand(r.accessToken,r.clientId,o.method,o.url,u,n,h);return new x(m=>{a.then(f=>{let b=new G;n!=null&&Object.keys(n).forEach(N=>{b.set(N,n[N])});let v=new K({body:f.body,status:f.code,statusText:"OK",headers:b});m.next(v),m.complete()})})};var de={providers:[W(),Z(pe,Q()),$(B(),z([me,ce])),g,{provide:d,useValue:ae},{provide:F,useValue:se()},oe,J,ne]};_(w,de);
1
+ import{b as re,c as se}from"./chunk-M27H5SJL.js";import{a as O}from"./chunk-PD4M6YP7.js";import{a as te}from"./chunk-YT3L2PHL.js";import{a as y}from"./chunk-EXAIEGUA.js";import{a as g}from"./chunk-PIVMNQL6.js";import{d as Y}from"./chunk-O2MZ5CAQ.js";import{b as q,c as X,f as Z,g as Q}from"./chunk-J76HBC5J.js";import{a as _}from"./chunk-MSK2MH2K.js";import{c as ee}from"./chunk-ZTSITRHY.js";import{a as G,b as K,d as $,e as z,f as B}from"./chunk-NJSJNACP.js";import{a as ne}from"./chunk-BSZZLSIX.js";import{ua as J}from"./chunk-BUARZS4A.js";import{b as oe}from"./chunk-O53NVQ2A.js";import{Bc as W,Cc as F,Eb as U,G as C,M as L,Mc as D,O as S,Q as V,U as R,X as j,Ya as l,_ as s,d as x,eb as H,ka as P,m as A,y as E,z as k}from"./chunk-VGQ6X3AL.js";import"./chunk-C6Q5SG76.js";var w=class o{#o=s(g);#s=s(y);ngOnInit(){this.#s.fetchConfig(),this.#o.clearAllNotCurrentVersion()}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=H({type:o,selectors:[["app-root"]],decls:1,vars:0,template:function(e,r){e&1&&U(0,"router-outlet")},dependencies:[q],encapsulation:2})};var ae={production:!0,baseUrl:"/api",machineServerUrl:"${WS_URL}",defaultTimeout:3e4};var d=new j("ENVIRONMENT");var I=class o{#o=s(Y);isLoaded=l(!1);webmodules=l(null);preload(t=!1){let e=this.#o.getApiV1Webmodules().pipe(V(r=>this.webmodules.set(r)),C(()=>this.isLoaded.set(!0)));if(t)return e;e.subscribe()}static \u0275fac=function(e){return new(e||o)};static \u0275prov=R({token:o,factory:o.\u0275fac,providedIn:"root"})};var ue=()=>{let o=s(y),t=s(P),e=[t.get(O).preload(!0),t.get(O).preloadFilterGroups(!0),t.get(I).preload(!0)];return o.configLoaded===null?E(e):o.configLoaded?.pipe(S(()=>E(e)))},pe=[{path:"",children:[{path:"login",canActivate:[],loadComponent:()=>import("./chunk-AX4MPJ65.js")},{path:"logout",loadComponent:()=>import("./chunk-4MGFY2JV.js")},{path:"",canActivate:[ue],loadComponent:()=>import("./chunk-HSJMMQHL.js"),children:[{path:"",loadComponent:()=>import("./chunk-L7W4ZJTP.js")},{path:"add-backup",loadComponent:()=>import("./chunk-OIV6DYWR.js")},{path:"backup/:id/export",loadComponent:()=>import("./chunk-KWC4F7OI.js")},{path:"backup/import",loadComponent:()=>import("./chunk-HWBFYM4U.js")},{path:"backup-draft/:id",loadComponent:()=>import("./chunk-7R4NNENA.js"),loadChildren:()=>import("./chunk-4C3R2PTH.js")},{path:"backup/:id",loadComponent:()=>import("./chunk-7R4NNENA.js"),loadChildren:()=>import("./chunk-4C3R2PTH.js")},{path:"backup/:id/log",loadComponent:()=>import("./chunk-N4NGBPMJ.js")},{path:"backup/:id/database",loadComponent:()=>import("./chunk-SANIFXXF.js")},{path:"backup/:id/commandline",loadComponent:()=>import("./chunk-2T3PBPBO.js")},{path:"backup/:id/commandline/:runId",loadComponent:()=>import("./chunk-FCXKPHH2.js")},{path:"restore",children:[{path:"",loadComponent:()=>import("./chunk-IQDBKRQV.js")},{path:"from-config",loadComponent:()=>import("./chunk-KBC4N47O.js")}]},{path:"restore-from-files",loadComponent:()=>import("./chunk-EQS5S7RI.js"),loadChildren:()=>import("./chunk-I3KS7JEN.js")},{path:"restore-draft/:id",loadComponent:()=>import("./chunk-EQS5S7RI.js"),loadChildren:()=>import("./chunk-I3KS7JEN.js")},{path:"restore/:id",loadComponent:()=>import("./chunk-EQS5S7RI.js"),loadChildren:()=>import("./chunk-I3KS7JEN.js")},{path:"settings",loadComponent:()=>import("./chunk-QPPVZ4KN.js")},{path:"about",loadComponent:()=>import("./chunk-U2NGUTAO.js"),children:[{path:"",redirectTo:"general",pathMatch:"full"},{path:"general",loadComponent:()=>import("./chunk-TSQCXGD7.js")},{path:"changelog",loadComponent:()=>import("./chunk-7YT4Y7C3.js")},{path:"libraries",loadComponent:()=>import("./chunk-GRR3LTVK.js")},{path:"system-info",loadComponent:()=>import("./chunk-3CXGKNYN.js")},{path:"logs",loadComponent:()=>import("./chunk-2HC23GJF.js")}]}]}]}];var T=null,ce=(o,t)=>{let e=s(te),r=s(X),c=s(g),i=s(d),u=s(ee),n=c.getItem("locale"),p=re(n),h=o;if(e.token()&&o.url.startsWith(i.baseUrl)){let a=o.headers.set("Authorization",`Bearer ${e.token()}`);n&&n!=="en-US"&&(a=a.set("X-Ui-Language",p)),h=o.clone({headers:a})}return t(h).pipe(k(a=>{if(u.error(a.message),a.status===401&&!T&&(T=e.refreshToken().pipe(L())),a.status===401)return T.pipe(S(()=>t(o.clone({headers:o.headers.set("Authorization",`Bearer ${e.token()}`)}))),k(f=>(r.navigate(["/logout"]),A(()=>f))),C(()=>T=null));let m=`Error Code: ${a.status}, Message: ${a.message}`;return A(()=>({error:a,message:m}))}))};var he="1.0.0",le="portal-proxy-client",fe=1,M=class o{#o=1e3;#s=s(d);#t=l("disconnected");#l=l(this.#o);#i=l(!1);#n=l(!1);#a=l(null);isConnectedToMachineServer=this.#n.asReadonly();wsState=this.#t.asReadonly();#p=[];#r={};#e=null;#m=new TextDecoder("utf-8");#c=null;#d=D(()=>{let t=this.#i(),e=this.#l(),r=this.#a();if(!r||!t||!e||e<this.#o){this.#c&&window.clearInterval(this.#c);return}this.#c=window.setInterval(()=>{this.connectToMachineServer(r)},e)});utf8Atob(t){let e=Uint8Array.from(atob(t),c=>c.charCodeAt(0)),r=this.#m.decode(e);return r?JSON.parse(r):null}connectToMachineServer(t,e){let r=e?.reconnect??!1;this.#e&&this.wsState()==="authenticated"&&!r||(this.#e&&this.wsState()!=="authenticated"&&this.#e.close(),this.#e=new WebSocket(this.#s.machineServerUrl),this.#e.onopen=()=>{this.#t.set("connect"),this.#n.set(!0),this.#i.set(!1),this.#a.set(null)},this.#e.onclose=()=>{this.#t.set("disconnected"),this.#n.set(!1),this.#a.set(t),this.#i.set(!0)},this.#e.onerror=()=>{this.#t.set("error")},this.#e.onmessage=c=>{let i=JSON.parse(c.data);if(this.wsState()==="connect"){if(i.type!=="welcome"){this.disconnectFromMachineServer(`Unexpected message type, expected 'welcome' but got '${i.type}'`);return}let n={token:t,publicKey:"",clientVersion:he,protocolVersion:fe},p=this.createResponse(i,"authportal",n);this.#t.set("welcome"),this.#e?.send(p)}else if(this.wsState()==="welcome"){if(i.type!=="authportal"){this.disconnectFromMachineServer(`Unexpected message type, expected 'authportal' but got '${i.type}'`);return}var u=JSON.parse(i.payload??"");if(u.accepted===!1){this.disconnectFromMachineServer("Authentication failed");return}for(this.#t.set("authenticated"),this.#n.set(!0);this.#p.length>0;){let n=this.#p.pop();n&&this.#r[n.messageId]&&this.activateCommand(n)}}else if(this.wsState()==="authenticated"){if(i.type!=="command"){console.warn(`Unexpected message type, expected 'command' but got '${i.type}'`);return}let n=this.#r[i.messageId];if(n){if(i.errorMessage){n.reject(i.errorMessage);return}else{let p=JSON.parse(i.payload??"");p.body=p?.body==null?null:this.utf8Atob(p.body),n.resolve(p)}delete this.#r[i.messageId],window.clearTimeout(n.timer)}}})}disconnectFromMachineServer(t=null){t&&console.error(t),this.#e?.close(),this.#e=null,this.#t.set("disconnected"),this.#n.set(!1)}createResponse(t,e,r){let c={from:le,to:t.from,type:e,messageId:t.messageId,payload:JSON.stringify(r)};return JSON.stringify(c)}sendCommand(t,e,r,c,i,u,n=5e3){return(this.wsState()==="disconnected"||this.wsState()==="error")&&this.connectToMachineServer(t),new Promise((p,h)=>{let a=crypto.randomUUID(),f={from:le,to:e,type:"command",messageId:a,payload:JSON.stringify({method:r,path:c,body:i,headers:u})},b={resolve:p,reject:h,timer:window.setTimeout(()=>{let v=this.#r[a];v&&(delete this.#r[a],v.reject("Timeout"))},n)};this.#r[a]=b,this.#n()?this.activateCommand(f):this.#p.push(f)})}activateCommand(t){this.#e?.send(JSON.stringify(t))}static \u0275fac=function(e){return new(e||o)};static \u0275prov=R({token:o,factory:o.\u0275fac,providedIn:"root"})};function ge(o){if(typeof o!="string")return null;let e=new TextEncoder().encode(o);return window.btoa(String.fromCharCode(...e))}var me=(o,t)=>{let r=s(y).config(),c=s(d);if(r===null)return t(o);let i=s(M),u=ge(o.body),n={};o.headers.keys().forEach(m=>{n[m]=o.headers.get(m)??""});let p=o.headers.get("timeout"),h=p!==null?parseInt(p):c.defaultTimeout,a=i.sendCommand(r.accessToken,r.clientId,o.method,o.url,u,n,h);return new x(m=>{a.then(f=>{let b=new G;n!=null&&Object.keys(n).forEach(N=>{b.set(N,n[N])});let v=new K({body:f.body,status:f.code,statusText:"OK",headers:b});m.next(v),m.complete()})})};var de={providers:[W(),Z(pe,Q()),$(B(),z([me,ce])),g,{provide:d,useValue:ae},{provide:F,useValue:se()},oe,J,ne]};_(w,de);
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.0.61",
2
+ "version": "0.0.62",
3
3
  "name": "@duplicati/ngclient",
4
4
  "license": "MIT",
5
5
  "contributors": [
package/chunk-MYCIO3QE.js DELETED
@@ -1 +0,0 @@
1
- import{a as te,b as ne}from"./chunk-N3GBABZB.js";import{a as H}from"./chunk-M27H5SJL.js";import{a as B}from"./chunk-PD4M6YP7.js";import{a as Ye}from"./chunk-IHYJHBCC.js";import{a as xe}from"./chunk-PIVMNQL6.js";import{a as Ze}from"./chunk-ZUGIRXAF.js";import"./chunk-GE3T3AG3.js";import{b as j,d as W,e as De,g as q,h as Xe,l as ze,m as Ue,o as Ve,p as Be,q as K,r as je}from"./chunk-OROSSCXB.js";import{b as V}from"./chunk-O2MZ5CAQ.js";import{g as We,l as qe,o as Ke,p as He,q as Je,r as Qe}from"./chunk-ZTSITRHY.js";import"./chunk-NJSJNACP.js";import"./chunk-BSZZLSIX.js";import"./chunk-BUARZS4A.js";import"./chunk-O53NVQ2A.js";import{Ab as $,Bb as A,Cb as o,Db as s,Eb as h,F as Y,G as Re,Ib as I,Kc as b,Lc as ke,Mc as we,N as P,Oa as be,Ob as Ge,Pb as $e,Qb as a,Ra as l,Rb as Z,Sb as ee,Tb as Ae,U as he,Ub as p,Vb as S,Xa as ve,Ya as C,Yb as Fe,_ as d,b as ge,c as Ce,ca as Pe,da as Ie,eb as D,fa as N,ga as M,hc as O,ic as F,jc as L,k as Ee,ka as ye,kb as y,l as fe,mc as X,n as Ne,nc as z,oc as U,q as Me,r as Q,rc as Le,tb as T,vb as R,yb as E,z as Oe,zb as G}from"./chunk-VGQ6X3AL.js";import"./chunk-C6Q5SG76.js";function et(i,e,t){!e&&Ie(i);let n=e??d(ye);return t?Pe(n,t):n}function ie(...i){let{normalizedSources:e,hasInitValue:t,operator:n,options:r}=ot(i),_=et(ie,r?.injector);return t?ne(Q(e).pipe(n),{initialValue:r.initialValue,injector:_}):ne(Q(e).pipe(n),{injector:_,requireSync:!0})}function ot(i){if(!i||!i.length||typeof i[0]!="object")throw new TypeError("derivedFrom needs sources");let e=typeof i[1]=="function";if(i.length==3&&!e)throw new TypeError("derivedFrom needs pipeable operator as a second argument");e||i.splice(1,0,ge);let[t,n,r]=i,_=!!r&&"initialValue"in r;return{normalizedSources:Object.entries(t).reduce((g,[u,m])=>{if(ve(m))g[u]=te(m,{injector:r?.injector}).pipe(P(ke(m)));else if(Ne(m))g[u]=m.pipe(Y());else if(typeof m=="function"){let w=b(m);g[u]=te(w,{injector:r?.injector}).pipe(P(m()))}else g[u]=Ee(m).pipe(Y());return g},Array.isArray(t)?[]:{}),operator:n,hasInitValue:_,options:r}}var v=class i{#e=d(V);#i=d(B);repeatRegisterTimer=null;state=C("unknown");claimUrl=C(null);registerUrl=C("");status=b(()=>{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=we(()=>{let e=this.#i.systemInfo();e&&this.registerUrl.set(e.RemoteControlRegistrationUrl??"")});#t(e){e.RegistrationUrl&&this.claimUrl.set(e.RegistrationUrl),e.IsConnected?this.state.set("connected"):e.IsEnabled?this.state.set("enabled"):e.CanEnable?this.state.set("disabled"):e.IsRegisteringFaulted?this.state.set("registeringfaulted"):e.IsRegistering?e.RegistrationUrl!=null&&e.RegistrationUrl.trim().length>0?this.state.set("registered"):this.state.set("registering"):this.state.set("inactive");let t=this.state();console.log("currentState: ",t),this.repeatRegisterTimer!==null&&(clearTimeout(this.repeatRegisterTimer),this.repeatRegisterTimer=null),t==="registering"&&(this.repeatRegisterTimer=setTimeout(()=>{this.#e.postApiV1RemotecontrolRegister({requestBody:{RegistrationUrl:""}}).subscribe({next:n=>this.#t(n),error:n=>this.#n(n)})},5e3)),(t==="enabled"||t==="registered")&&(this.repeatRegisterTimer=setTimeout(()=>{this.#e.getApiV1RemotecontrolStatus().subscribe({next:n=>this.#t(n),error:n=>this.#n(n)})},5e3)),e.IsRegistering&&e.CanEnable&&this.#e.deleteApiV1RemotecontrolRegister().subscribe({next:n=>this.#t(n)})}#n(e){this.#e.getApiV1RemotecontrolStatus().subscribe({next:t=>this.#t(t)})}refreshRemoteControlStatus(){this.#e.getApiV1RemotecontrolStatus().subscribe({next:e=>this.#t(e),error:e=>this.#n(e)})}beginRemoteRegistration(){this.state.set("registering"),this.#e.postApiV1RemotecontrolRegister({requestBody:{RegistrationUrl:this.registerUrl()}}).subscribe({next:e=>this.#t(e),error:e=>this.#n(e)})}cancelRemoteRegistration(){this.#e.deleteApiV1RemotecontrolRegister().subscribe({next:e=>this.#t(e),error:e=>this.#n(e)})}enableRemoteControl(){this.#e.postApiV1RemotecontrolEnable().subscribe({next:e=>this.#t(e),error:e=>this.#n(e)})}disableRemoteControl(){this.#e.postApiV1RemotecontrolDisable().subscribe({next:e=>this.#t(e),error:e=>this.#n(e)})}deleteRemoteControl(){let e=this;confirm("Are you sure you want to delete the remote control registration?")&&e.#e.deleteApiV1RemotecontrolRegistration().subscribe({next:t=>e.#t(t),error:t=>e.#n(t)})}static \u0275fac=function(t){return new(t||i)};static \u0275prov=he({token:i,factory:i.\u0275fac,providedIn:"root"})};function lt(i,e){if(i&1){let t=I();o(0,"spk-form-field",10)(1,"input",11),U("ngModelChange",function(r){N(t);let _=S(2);return z(_.registerUrl,r)||(_.registerUrl=r),M(r)}),s()(),o(2,"button",12),p("click",function(){N(t);let r=S(2);return M(r.register())}),a(3,0),s()}if(i&2){let t=S(2);l(),X("ngModel",t.registerUrl)}}function at(i,e){if(i&1&&(o(0,"div",8)(1,"label"),a(2,1),s(),o(3,"a",13),O(4),s()()),i&2){let t=S(2);l(3),Fe("href",t.claimUrl(),be),l(),F(t.claimUrl())}}function _t(i,e){i&1&&(o(0,"div",8)(1,"label"),a(2,2),s()())}function ct(i,e){if(i&1){let t=I();o(0,"button",12),p("click",function(){N(t);let r=S(2);return M(r.cancel())}),a(1,3),s()}}function pt(i,e){if(i&1){let t=I();o(0,"button",12),p("click",function(){N(t);let r=S(2);return M(r.disable())}),a(1,4),s()}}function ut(i,e){if(i&1){let t=I();o(0,"button",12),p("click",function(){N(t);let r=S(2);return M(r.enable())}),a(1,5),s(),o(2,"button",14),p("click",function(){N(t);let r=S(2);return M(r.delete())}),a(3,6),s()}}function dt(i,e){if(i&1&&(o(0,"div",7),y(1,lt,4,1)(2,at,5,2,"div",8)(3,_t,3,0,"div",8)(4,ct,2,0,"button",9)(5,pt,2,0,"button",9)(6,ut,4,0),s()),i&2){let t=S();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 J=class i{#e=d(v);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||i)};static \u0275cmp=D({type:i,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 r;r=$localize`Cancel registration`;let _;_=$localize`Disable remote control`;let f;f=$localize`Enable remote control`;let g;return g=$localize`Delete remote control setup`,[e,t,n,r,_,f,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","warn",3,"click"]]},template:function(t,n){t&1&&y(0,dt,7,6,"div",7),t&2&&E(n.state()!=="unknown"?0:-1)},dependencies:[K,j,W,q,qe],styles:["[_nghost-%COMP%]{display:block}[_nghost-%COMP%] button[_ngcontent-%COMP%]{white-space:nowrap}.field-row[_ngcontent-%COMP%]{display:flex;gap:.5rem;width:100%}.field-row[_ngcontent-%COMP%] spk-form-field[_ngcontent-%COMP%], .field-row[_ngcontent-%COMP%] spk-select[_ngcontent-%COMP%]{flex:1 0}"],changeDetection:0})};var St=()=>({standalone:!0});function mt(i,e){if(i&1&&(o(0,"spk-option",31),O(1),s()),i&2){let t=e.$implicit;T("value",t),l(),F(t)}}function Tt(i,e){if(i&1){let t=I();o(0,"spk-option",46),p("click",function(){let r=N(t).$implicit,_=S();return M(_.pauseSettings.controls.timeType.setValue(r.value))}),O(1),s()}if(i&2){let t=e.$implicit;T("value",t.value),l(),L(" ",t.label," ")}}function gt(i,e){if(i&1&&(o(0,"spk-option",31),O(1),s()),i&2){let t=e.$implicit;T("value",t.value),l(),L(" ",t.label," ")}}function Ct(i,e){if(i&1&&O(0),i&2){let t,n=S();L(" ",(t=n.sysinfo())==null?null:t.ServerVersion," ")}}function Et(i,e){i&1&&h(0,"spk-progress-bar",39)}function ft(i,e){if(i&1&&(o(0,"spk-option",31),O(1),s()),i&2){let t=e.$implicit;T("value",t.value),l(),L(" ",t.label," ")}}var k=new Be,nt=[{value:"s",label:$localize`Seconds`},{value:"m",label:$localize`Minutes`},{value:"h",label:$localize`Hours`}],it=[{value:"",label:$localize`System default (information)`},{value:"information",label:$localize`Usage statistics, warnings, errors, and crashes`},{value:"warning",label:$localize`Warnings, errors and crashes`},{value:"error",label:$localize`Errors and crashes`},{value:"crash",label:$localize`Crashes only`},{value:"none",label:$localize`None / disabled`}],oe=class i{#e=d(Ye);#i=d(B);#t=d(V);#n=d(v);#o=d(xe);#r=this.#o.getItem("locale")??"en-US";sysinfo=this.#i.systemInfo;isDarkMode=this.#e.isDarkMode;editAs=C("list");langCtrl=C(this.#r);remoteControlStatus=this.#n.status;settingsForm=k.group({pauseSettings:k.group({time:k.control(0),timeType:k.control("s")}),usageStatistics:k.control("")});updatingChannel=C(!1);updateChannel=C("");setNewChannel(e){let t=this.updateChannel();this.updateChannel.set(e),this.#t.patchApiV1Serversettings({requestBody:{"update-channel":e}}).pipe(Re(()=>this.updatingChannel.set(!1)),Oe(()=>(this.updateChannel.set(t),fe(null)))).subscribe()}get pauseSettings(){return this.settingsForm.controls.pauseSettings}languageOptions=b(()=>{let e=this.langCtrl();return e?H.filter(t=>t.label.toLowerCase().includes(e.toLowerCase())):H});usageStatisticsOptions=C(it);timeTypeOptions=C(nt);timeOptions=ie([this.pauseSettings.controls.timeType.valueChanges.pipe(P("s")),this.pauseSettings.controls.time.valueChanges.pipe(P(null))],Ce(Me(([e,t])=>{let n=this.#s(e);return t!==null?n.filter(r=>r.toString().includes(t.toString())):n}),P([])));#s(e){let t=e==="h"?25:61;return new Array(t).fill(0).map((n,r)=>r)}ngOnInit(){this.getServerSettings()}saveLocale(e){this.#o.setItem("locale",e),window.location.reload()}submit(){let e=`${this.pauseSettings.controls.time.value}${this.pauseSettings.controls.timeType.value}`;this.#t.patchApiV1Serversettings({requestBody:{"usage-reporter-level":this.settingsForm.controls.usageStatistics.value,"startup-delay":e==="0s"?"":e}}).subscribe()}getServerSettings(){return this.#t.getApiV1Serversettings().subscribe({next:e=>{let t=e["startup-delay"],n=t.slice(-1),r=t.slice(0,-1),_=["s","m","h"];this.settingsForm.patchValue({pauseSettings:{time:parseInt(r==""?"0":r),timeType:_.includes(n)?n:"s"},usageStatistics:e["usage-reporter-level"]}),this.updateChannel.set(e["update-channel"])}})}languageDisplay(){let e=this;return()=>{let t=e.langCtrl();return t?H.find(n=>n.value===t)?.label??null:null}}typeDisplay(){let e=this;return()=>{let t=e.settingsForm.value.pauseSettings?.timeType;return t==null?null:nt.find(n=>n.value===t)?.label??null}}usageDisplay(){let e=this;return()=>{let t=e.settingsForm.value.usageStatistics;return t==null?null:it.find(n=>n.value===t)?.label??null}}setDarkMode(){this.#e.setDarkMode()}setLightMode(){this.#e.setLightMode()}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=D({type:i,selectors:[["app-settings"]],decls:102,vars:30,consts:()=>{let e;e=$localize`Settings`;let t;t=$localize`Configure your backup settings.`;let n;n=$localize` Save changes `;let r;r=$localize`Remote access control`;let _;_=$localize`Pause after startup or hibernation`;let f;f=$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 g;g=$localize`Color theme`;let u;u=$localize`Customize your application theme`;let m;m=$localize`Language`;let w;w=$localize`Select a language for the platform`;let re;re=$localize`Update channel`;let se;se=$localize` Default (${"\uFFFD0\uFFFD"}:INTERPOLATION:) `;let le;le=$localize`Same as the base install version: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let ae;ae=$localize`Stable`;let _e;_e=$localize`Official releases`;let ce;ce=$localize`Beta`;let pe;pe=$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 ue;ue=$localize` Experimental `;let de;de=$localize`Specific builds for developers only. Not for use with important data.`;let Se;Se=$localize`Canary`;let me;me=$localize`Individual builds for developers only. Not for use with important data.`;let Te;Te=$localize`Usage statistics`;let x;return x=$localize` Usage reports help us improve the user experience and evaluate impact of new features. We use them to generate ${"\uFFFD#94\uFFFD"}:START_LINK:public usage statistics.${"\uFFFD/#94\uFFFD"}:CLOSE_LINK:${"[\uFFFD#95\uFFFD\uFFFD/#95\uFFFD|\uFFFD#96\uFFFD\uFFFD/#96\uFFFD]"}:LINE_BREAK:${"[\uFFFD#95\uFFFD\uFFFD/#95\uFFFD|\uFFFD#96\uFFFD\uFFFD/#96\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=Ae(x),[e,t,n,r,_,f,g,u,m,w,re,se,le,ae,_e,ce,pe,ue,de,Se,me,Te,x,[1,"content",3,"submit","formGroup"],[1,"title"],["type","submit","spk-button","",1,"raised","primary",3,"disabled"],[1,"left"],[1,"right"],["formGroupName","pauseSettings",1,"field-row"],[3,"hideClearButton"],["type","search","formControlName","time"],[3,"value"],[3,"displayFn","hideClearButton"],["type","text","formControlName","timeType"],[1,"themes"],["src","assets/images/light-theme.png","alt","light theme",3,"click"],["src","assets/images/dark-theme.png","alt","dark theme",3,"click"],[3,"change","displayFn","hideClearButton"],["type","search",3,"ngModelChange","ngModel","ngModelOptions"],[1,"indeterminate","primary"],[1,"right","radios"],[1,"radio-option",3,"click"],[1,"primary","raised"],["href","#"],[3,"displayFn"],["type","text","formControlName","usageStatistics"],[3,"click","value"]]},template:function(t,n){if(t&1&&(h(0,"app-status-bar"),o(1,"form",23),p("submit",function(){return n.submit()}),o(2,"header")(3,"div",24)(4,"h2"),a(5,0),s(),o(6,"p"),a(7,1),s()(),o(8,"button",25),a(9,2),s()(),o(10,"section")(11,"div",26)(12,"h3"),a(13,3),s(),o(14,"p"),O(15),s()(),o(16,"div",27),h(17,"app-remote-control"),s()(),o(18,"section")(19,"div",26)(20,"h3"),a(21,4),s(),o(22,"p"),a(23,5),s()(),o(24,"div",27)(25,"div",28)(26,"spk-select",29),h(27,"input",30),$(28,mt,2,2,"spk-option",31,G),s(),o(30,"spk-select",32),h(31,"input",33),$(32,Tt,2,2,"spk-option",31,G),s()()()(),o(34,"section")(35,"div",26)(36,"h3"),a(37,6),s(),o(38,"p"),a(39,7),s()(),o(40,"div",27)(41,"div",34)(42,"img",35),p("click",function(){return n.setLightMode()}),s(),o(43,"img",36),p("click",function(){return n.setDarkMode()}),s()()()(),o(44,"section")(45,"div",26)(46,"h3"),a(47,8),s(),o(48,"p"),a(49,9),s()(),o(50,"div",27)(51,"spk-select",37),p("change",function(_){return n.saveLocale(_)}),o(52,"input",38),U("ngModelChange",function(_){return z(n.langCtrl,_)||(n.langCtrl=_),_}),s(),$(53,gt,2,2,"spk-option",31,G),s()()(),o(55,"section")(56,"div",26)(57,"h3"),a(58,10),s(),o(59,"p"),y(60,Ct,1,1),s(),y(61,Et,1,0,"spk-progress-bar",39),s(),o(62,"div",40)(63,"div",41),p("click",function(){return n.setNewChannel("")}),o(64,"spk-radio",42),a(65,11),s(),o(66,"p"),a(67,12),s()(),o(68,"div",41),p("click",function(){return n.setNewChannel("stable")}),o(69,"spk-radio",42),a(70,13),s(),o(71,"p"),a(72,14),s()(),o(73,"div",41),p("click",function(){return n.setNewChannel("beta")}),o(74,"spk-radio",42),a(75,15),s(),o(76,"p"),a(77,16),s()(),o(78,"div",41),p("click",function(){return n.setNewChannel("experimental")}),o(79,"spk-radio",42),a(80,17),s(),o(81,"p"),a(82,18),s()(),o(83,"div",41),p("click",function(){return n.setNewChannel("canary")}),o(84,"spk-radio",42),a(85,19),s(),o(86,"p"),a(87,20),s()()()(),o(88,"section")(89,"div",26)(90,"h3"),a(91,21),s(),o(92,"p"),Ge(93,22),h(94,"a",43)(95,"br")(96,"br"),$e(),s()(),o(97,"div",27)(98,"spk-select",44),h(99,"input",45),$(100,ft,2,2,"spk-option",31,G),s()()()()),t&2){let r,_,f;l(),T("formGroup",n.settingsForm),l(7),T("disabled",n.settingsForm.untouched),l(7),F(n.remoteControlStatus()),l(11),T("hideClearButton",!0),l(2),A(n.timeOptions()),l(2),T("displayFn",n.typeDisplay())("hideClearButton",!0),l(2),A(n.timeTypeOptions()),l(10),R("active",!n.isDarkMode()),l(),R("active",n.isDarkMode()),l(8),T("displayFn",n.languageDisplay())("hideClearButton",!0),l(),X("ngModel",n.langCtrl),T("ngModelOptions",Le(29,St)),l(),A(n.languageOptions()),l(7),E(n.updateChannel()!==""&&((r=n.sysinfo())!=null&&r.ServerVersion)?60:-1),l(),E(n.updatingChannel()?61:-1),l(3),R("active",n.updateChannel()===""),l(),Z((_=n.sysinfo())==null?null:_.DefaultUpdateChannel),ee(65),l(2),Z((f=n.sysinfo())==null?null:f.ServerVersionType),ee(67),l(2),R("active",n.updateChannel()==="stable"),l(5),R("active",n.updateChannel()==="beta"),l(5),R("active",n.updateChannel()==="experimental"),l(5),R("active",n.updateChannel()==="canary"),l(14),T("displayFn",n.usageDisplay()),l(2),A(n.usageStatisticsOptions())}},dependencies:[K,Xe,j,W,De,q,je,ze,Ve,Ue,Ze,J,Je,We,He,Qe,Ke],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%}.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}"],changeDetection:0})};export{oe as default};