@duplicati/ngclient 0.0.64 → 0.0.66
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-34N3NDDX.js +1 -0
- package/{chunk-E36Y2NND.js → chunk-FI43YAHP.js} +1 -1
- package/chunk-HARDXXQK.js +1 -0
- package/chunk-T5I4AY74.js +1 -0
- package/index.html +1 -1
- package/main-JPI7I2SR.js +1 -0
- package/package.json +1 -1
- package/chunk-4MGFY2JV.js +0 -1
- package/chunk-AX4MPJ65.js +0 -1
- package/chunk-YT3L2PHL.js +0 -1
- package/main-UKLCRGBL.js +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as S}from"./chunk-T5I4AY74.js";import{b,c as L,d as N,e as M,h as k,l as v,o as P,p as O,r as x}from"./chunk-OROSSCXB.js";import"./chunk-O2MZ5CAQ.js";import{c as y}from"./chunk-J76HBC5J.js";import"./chunk-MSK2MH2K.js";import{a as E,b as F,g as G,l as T}from"./chunk-ZTSITRHY.js";import"./chunk-NJSJNACP.js";import"./chunk-BUARZS4A.js";import{Cb as t,Db as i,Eb as p,G as c,Ra as l,Ub as w,Ya as m,_ as s,eb as g,hc as n,kb as f,tb as h,vb as _,yb as C}from"./chunk-VGQ6X3AL.js";import"./chunk-C6Q5SG76.js";function A(r,e){r&1&&(t(0,"spk-alert",1),n(1," Remember to enter a password, if you can't remember the password open the duplicati client on the machine in question and make sure you open it through the tray icon then go into settings to change the password. "),i())}var u=new O,d=class r{#e=s(y);#t=s(S);failedLogin=m(!1);isLoading=m(!1);loginForm=u.group({user:u.control(""),pass:u.control("",L.required)});submit(){let e=this.loginForm.value.pass;this.loginForm.value.user||e&&(this.isLoading.set(!0),this.#t.login(e).pipe(c(()=>{this.isLoading.set(!1),this.failedLogin.set(!0)})).subscribe({next:()=>this.#e.navigate(["/"])}))}static \u0275fac=function(o){return new(o||r)};static \u0275cmp=g({type:r,selectors:[["app-login"]],decls:15,vars:4,consts:()=>{let e;return e=$localize`Enter your password`,[[3,"submit","formGroup"],["type","warning"],[1,"login-row"],["type","text","hidden","","autocomplete","off","name","username","formControlName","user"],["for","password"],["href","https://docs.duplicati.com/detailed-descriptions/duplicati-access-password","target","_blank","rel","noopener noreferrer"],["type","password","name","password","autocomplete","current-password","placeholder",e,"tabindex","1","formControlName","pass"],["spk-button","","type","submit",1,"raised","primary"]]},template:function(o,a){o&1&&(t(0,"form",0),w("submit",function(){return a.submit()}),f(1,A,2,0,"spk-alert",1),t(2,"div",2),p(3,"input",3),t(4,"spk-form-field")(5,"label",4),n(6," Password "),t(7,"a",5)(8,"spk-icon"),n(9,"question"),i()()(),p(10,"input",6),i(),t(11,"button",7),n(12," Login "),t(13,"spk-icon"),n(14,"arrow-right"),i()()()()),o&2&&(h("formGroup",a.loginForm),l(),C(a.failedLogin()?1:-1),l(10),_("loader",a.isLoading()))},dependencies:[x,k,b,N,M,v,P,T,E,G,F],styles:["[_nghost-%COMP%]{display:block}form[_ngcontent-%COMP%]{width:100vw;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem}spk-alert[_ngcontent-%COMP%]{max-width:20rem;margin:0 auto}h3[_ngcontent-%COMP%]{font:var(--title-30)}.login-row[_ngcontent-%COMP%]{display:flex;align-items:flex-end;gap:.5rem}"],changeDetection:0})};export{d as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as se,b as ae}from"./chunk-N3GBABZB.js";import{a as Z}from"./chunk-M27H5SJL.js";import{a as W}from"./chunk-PD4M6YP7.js";import{a as ht}from"./chunk-IHYJHBCC.js";import{a as st}from"./chunk-PIVMNQL6.js";import{a as Pt}from"./chunk-ZUGIRXAF.js";import"./chunk-GE3T3AG3.js";import{b as q,d as K,e as at,g as J,h as lt,l as rt,m as _t,o as ct,p as dt,q as Q,r as pt}from"./chunk-OROSSCXB.js";import{b as j}from"./chunk-O2MZ5CAQ.js";import{a as St,b as Tt,g as ut,k as gt,l as Y,o as mt,p as Ct,q as Et,r as Nt,w as ft,x as Mt}from"./chunk-ZTSITRHY.js";import"./chunk-NJSJNACP.js";import"./chunk-BSZZLSIX.js";import"./chunk-BUARZS4A.js";import"./chunk-O53NVQ2A.js";import{Ab as x,Bb as X,Cb as i,Db as o,Eb as O,F as ne,G as b,Ib as M,Kc as w,Lc as it,Mc as ot,N as y,Oa as Je,Ob as Ye,Pb as Ze,Qb as r,Ra as l,Rb as ie,Sb as oe,Tb as et,U as je,Ub as p,Vb as d,Xa as Qe,Ya as S,Yb as tt,_ as N,b as Ve,c as ze,ca as We,da as qe,eb as H,fa as T,ga as u,hc as h,ic as D,jc as V,k as Ue,ka as Ke,kb as R,l as k,mc as G,n as Be,nc as A,oc as $,q as He,r as te,rc as nt,tb as C,vb as E,yb as g,z as L,zb as F}from"./chunk-VGQ6X3AL.js";import"./chunk-C6Q5SG76.js";function Rt(s,t,e){!t&&qe(s);let n=t??N(Ke);return e?We(n,e):n}function le(...s){let{normalizedSources:t,hasInitValue:e,operator:n,options:a}=Gt(s),c=Rt(le,a?.injector);return e?ae(te(t).pipe(n),{initialValue:a.initialValue,injector:c}):ae(te(t).pipe(n),{injector:c,requireSync:!0})}function Gt(s){if(!s||!s.length||typeof s[0]!="object")throw new TypeError("derivedFrom needs sources");let t=typeof s[1]=="function";if(s.length==3&&!t)throw new TypeError("derivedFrom needs pipeable operator as a second argument");t||s.splice(1,0,Ve);let[e,n,a]=s,c=!!a&&"initialValue"in a;return{normalizedSources:Object.entries(e).reduce((P,[m,f])=>{if(Qe(f))P[m]=se(f,{injector:a?.injector}).pipe(y(it(f)));else if(Be(f))P[m]=f.pipe(ne());else if(typeof f=="function"){let U=w(f);P[m]=se(U,{injector:a?.injector}).pipe(y(f()))}else P[m]=Ue(f).pipe(ne());return P},Array.isArray(e)?[]:{}),operator:n,hasInitValue:c,options:a}}var v=class s{#e=N(j);#i=N(W);repeatRegisterTimer=null;state=S("unknown");claimUrl=S(null);registerUrl=S("");status=w(()=>{let t=this.state();return t==="enabled"?"Remote control is enabled but not connected":t==="connected"?"Remote control is connected":t==="registering"?"Registering machine...":t==="registeringfaulted"?"Registration failed":t==="registered"?"Registered, waiting for accept":t==="disabled"?"Remote control is configured but not enabled":t==="unknown"?"...loading...":"Remote control is not set up"});sysInfoEffect=ot(()=>{let t=this.#i.systemInfo();t&&this.registerUrl.set(t.RemoteControlRegistrationUrl??"")});#t(t){t.RegistrationUrl&&this.claimUrl.set(t.RegistrationUrl),t.IsConnected?this.state.set("connected"):t.IsEnabled?this.state.set("enabled"):t.CanEnable?this.state.set("disabled"):t.IsRegisteringFaulted?this.state.set("registeringfaulted"):t.IsRegistering?t.RegistrationUrl!=null&&t.RegistrationUrl.trim().length>0?this.state.set("registered"):this.state.set("registering"):this.state.set("inactive");let e=this.state();console.log("currentState: ",e),this.repeatRegisterTimer!==null&&(clearTimeout(this.repeatRegisterTimer),this.repeatRegisterTimer=null),e==="registering"&&(this.repeatRegisterTimer=setTimeout(()=>{this.#e.postApiV1RemotecontrolRegister({requestBody:{RegistrationUrl:""}}).subscribe({next:n=>this.#t(n),error:n=>this.#n(n)})},5e3)),(e==="enabled"||e==="registered")&&(this.repeatRegisterTimer=setTimeout(()=>{this.#e.getApiV1RemotecontrolStatus().subscribe({next:n=>this.#t(n),error:n=>this.#n(n)})},5e3)),t.IsRegistering&&t.CanEnable&&this.#e.deleteApiV1RemotecontrolRegister().subscribe({next:n=>this.#t(n)})}#n(t){this.#e.getApiV1RemotecontrolStatus().subscribe({next:e=>this.#t(e)})}refreshRemoteControlStatus(){this.#e.getApiV1RemotecontrolStatus().subscribe({next:t=>this.#t(t),error:t=>this.#n(t)})}beginRemoteRegistration(){this.state.set("registering"),this.#e.postApiV1RemotecontrolRegister({requestBody:{RegistrationUrl:this.registerUrl()}}).subscribe({next:t=>this.#t(t),error:t=>this.#n(t)})}cancelRemoteRegistration(){this.#e.deleteApiV1RemotecontrolRegister().subscribe({next:t=>this.#t(t),error:t=>this.#n(t)})}enableRemoteControl(){this.#e.postApiV1RemotecontrolEnable().subscribe({next:t=>this.#t(t),error:t=>this.#n(t)})}disableRemoteControl(){this.#e.postApiV1RemotecontrolDisable().subscribe({next:t=>this.#t(t),error:t=>this.#n(t)})}deleteRemoteControl(){let t=this;confirm("Are you sure you want to delete the remote control registration?")&&t.#e.deleteApiV1RemotecontrolRegistration().subscribe({next:e=>t.#t(e),error:e=>t.#n(e)})}static \u0275fac=function(e){return new(e||s)};static \u0275prov=je({token:s,factory:s.\u0275fac,providedIn:"root"})};function bt(s,t){if(s&1){let e=M();i(0,"spk-form-field",10)(1,"input",11),$("ngModelChange",function(a){T(e);let c=d(2);return A(c.registerUrl,a)||(c.registerUrl=a),u(a)}),o()(),i(2,"button",12),p("click",function(){T(e);let a=d(2);return u(a.register())}),r(3,0),o()}if(s&2){let e=d(2);l(),G("ngModel",e.registerUrl)}}function wt(s,t){if(s&1&&(i(0,"div",8)(1,"label"),r(2,1),o(),i(3,"a",13),h(4),o()()),s&2){let e=d(2);l(3),tt("href",e.claimUrl(),Je),l(),D(e.claimUrl())}}function vt(s,t){s&1&&(i(0,"div",8)(1,"label"),r(2,2),o()())}function kt(s,t){if(s&1){let e=M();i(0,"button",12),p("click",function(){T(e);let a=d(2);return u(a.cancel())}),r(1,3),o()}}function Lt(s,t){if(s&1){let e=M();i(0,"button",12),p("click",function(){T(e);let a=d(2);return u(a.disable())}),r(1,4),o()}}function Ft(s,t){if(s&1){let e=M();i(0,"button",12),p("click",function(){T(e);let a=d(2);return u(a.enable())}),r(1,5),o(),i(2,"button",14),p("click",function(){T(e);let a=d(2);return u(a.delete())}),r(3,6),o()}}function xt(s,t){if(s&1&&(i(0,"div",7),R(1,bt,4,1)(2,wt,5,2,"div",8)(3,vt,3,0,"div",8)(4,kt,2,0,"button",9)(5,Lt,2,0,"button",9)(6,Ft,4,0),o()),s&2){let e=d();l(),g(e.state()==="inactive"?1:-1),l(),g(e.state()==="registered"?2:-1),l(),g(e.state()==="registering"?3:-1),l(),g(e.state()==="registering"||e.state()==="registeringfaulted"||e.state()==="registered"?4:-1),l(),g(e.state()==="connected"||e.state()==="enabled"?5:-1),l(),g(e.state()==="disabled"?6:-1)}}var ee=class s{#e=N(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(e){return new(e||s)};static \u0275cmp=H({type:s,selectors:[["app-remote-control"]],decls:1,vars:1,consts:()=>{let t;t=$localize`Register for remote control`;let e;e=$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 c;c=$localize`Disable remote control`;let I;I=$localize`Enable remote control`;let P;return P=$localize`Delete remote control setup`,[t,e,n,a,c,I,P,[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(e,n){e&1&&R(0,xt,7,6,"div",7),e&2&&g(n.state()!=="unknown"?0:-1)},dependencies:[Q,q,K,J,Y],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 Xt=()=>({standalone:!0});function Dt(s,t){s&1&&(i(0,"spk-icon",72),h(1,"check"),o())}function Vt(s,t){s&1&&(i(0,"spk-icon",73),h(1,"prohibit"),o())}function zt(s,t){if(s&1){let e=M();i(0,"button",77),p("click",function(){T(e);let a=d(2);return u(a.updatePassphrase())}),r(1,34),o()}if(s&2){let e=d(2);E("loader",e.isUpdating())}}function Ut(s,t){if(s&1){let e=M();i(0,"spk-tooltip",76)(1,"button",78),p("click",function(){T(e);let a=d(2);return u(a.updatePassphrase())}),r(2,35),o()()}if(s&2){let e=d(2);l(),E("loader",e.isUpdating()),C("disabled",!0)}}function Bt(s,t){if(s&1){let e=M();i(0,"spk-form-field")(1,"label",68),r(2,31),o(),i(3,"input",69),$("ngModelChange",function(a){T(e);let c=d();return A(c.passphrase,a)||(c.passphrase=a),u(a)}),o()(),i(4,"spk-form-field")(5,"label",70),r(6,32),o(),i(7,"input",71),$("ngModelChange",function(a){T(e);let c=d();return A(c.repeatPassphrase,a)||(c.repeatPassphrase=a),u(a)}),o(),R(8,Dt,2,0,"spk-icon",72)(9,Vt,2,0,"spk-icon",73),o(),i(10,"div",49)(11,"button",74),p("click",function(){T(e);let a=d();return u(a.cancelPasswordChange())}),r(12,33),o(),R(13,zt,2,2,"button",75)(14,Ut,3,3,"spk-tooltip",76),o()}if(s&2){let e=d();l(3),G("ngModel",e.passphrase),l(4),C("disabled",e.passphrase().length===0),G("ngModel",e.repeatPassphrase),l(),g(e.passphrase().length!==0&&e.passphrase()===e.repeatPassphrase()?8:9),l(3),E("loader",e.isUpdating()),l(2),g(e.passphrase().length!==0&&e.passphrase()===e.repeatPassphrase()?13:14)}}function Ht(s,t){s&1&&(i(0,"spk-icon",79),h(1,"check"),o())}function jt(s,t){if(s&1){let e=M();i(0,"div",49)(1,"button",74),p("click",function(){T(e);let a=d();return u(a.openPassphraseForm())}),r(2,36),o(),R(3,Ht,2,0,"spk-icon",79),o()}if(s&2){let e=d();l(3),g(e.passwordUpdated()?3:-1)}}function Wt(s,t){if(s&1&&(i(0,"spk-option",52),h(1),o()),s&2){let e=t.$implicit;C("value",e.value),l(),V(" ",e.label," ")}}function qt(s,t){if(s&1){let e=M();i(0,"spk-form-field")(1,"label",80),r(2,37),o(),i(3,"textarea",81),$("ngModelChange",function(a){T(e);let c=d();return A(c.allowedHostnames,a)||(c.allowedHostnames=a),u(a)}),o()(),i(4,"spk-alert",82),r(5,38),o(),i(6,"button",77),p("click",function(){T(e);let a=d();return u(a.updateAllowedHostnames())}),r(7,39),o()}if(s&2){let e=d();l(3),G("ngModel",e.allowedHostnames),l(3),E("loader",e.updatingAllowedHosts())}}function Kt(s,t){if(s&1&&h(0),s&2){let e,n=d();V(" ",(e=n.sysinfo())==null?null:e.ServerVersion," ")}}function Jt(s,t){s&1&&O(0,"spk-progress-bar",55)}function Qt(s,t){if(s&1&&(i(0,"spk-option",52),h(1),o()),s&2){let e=t.$implicit;C("value",e),l(),D(e)}}function Yt(s,t){if(s&1){let e=M();i(0,"spk-option",83),p("click",function(){let a=T(e).$implicit,c=d();return u(c.pauseSettings.controls.timeType.setValue(a.value))}),h(1),o()}if(s&2){let e=t.$implicit;C("value",e.value),l(),V(" ",e.label," ")}}function Zt(s,t){if(s&1&&(i(0,"spk-option",52),h(1),o()),s&2){let e=t.$implicit;C("value",e.value),l(),V(" ",e.label," ")}}var z=new dt,Ot=[{value:"s",label:$localize`Seconds`},{value:"m",label:$localize`Minutes`},{value:"h",label:$localize`Hours`}],yt=[{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`}],re=class s{#e=N(ht);#i=N(W);#t=N(j);#n=N(v);#o=N(st);#s=this.#o.getItem("locale")??"en-US";sysinfo=this.#i.systemInfo;isDarkMode=this.#e.isDarkMode;editAs=S("list");langCtrl=S(this.#s);remoteControlStatus=this.#n.status;settingsForm=z.group({pauseSettings:z.group({time:z.control(0),timeType:z.control("s")}),usageStatistics:z.control("")});updatingChannel=S(!1);updateChannel=S("");setNewChannel(t){let e=this.updateChannel();this.updateChannel.set(t),this.#t.patchApiV1Serversettings({requestBody:{"update-channel":t}}).pipe(b(()=>this.updatingChannel.set(!1)),L(()=>(this.updateChannel.set(e),k(null)))).subscribe()}allowRemoteAccess=S(!1);allowedHostnames=S("");loadedAllowedHostnames=S("");updatingRemoteAccess=S(!1);updatingAllowedHosts=S(!1);updateRemoteAccess(){let t=this.allowRemoteAccess(),e=!t;this.allowRemoteAccess.set(e),e||this.#t.patchApiV1Serversettings({requestBody:{"server-listen-interface":e?"any":"loopback"}}).pipe(b(()=>this.updatingRemoteAccess.set(!1)),L(()=>(this.allowRemoteAccess.set(t),k(null)))).subscribe()}updateAllowedHostnames(){let t=this.loadedAllowedHostnames(),e=this.allowedHostnames();this.updatingAllowedHosts.set(!0),this.#t.patchApiV1Serversettings({requestBody:{"server-listen-interface":"any","allowed-hostnames":e}}).pipe(b(()=>this.updatingAllowedHosts.set(!1)),L(()=>(this.allowedHostnames.set(t),k(null)))).subscribe()}updatingDisableTrayIconLogin=S(!1);disableTrayIconLogin=S(!1);saveDisableTrayIconLogin(){let t=this.disableTrayIconLogin(),e=!t;this.updatingDisableTrayIconLogin.set(!0),this.disableTrayIconLogin.set(e),this.#t.patchApiV1Serversettings({requestBody:{"disable-tray-icon-login":e?"True":"False"}}).pipe(b(()=>this.updatingDisableTrayIconLogin.set(!1)),L(()=>(this.disableTrayIconLogin.set(t),k(null)))).subscribe()}showPassphraseForm=S(!1);isUpdating=S(!1);passphrase=S("");repeatPassphrase=S("");passwordUpdated=S(!1);updatePassphrase(){this.passphrase()===this.repeatPassphrase()&&(this.isUpdating.set(!0),this.#t.patchApiV1Serversettings({requestBody:{"server-passphrase":this.passphrase()}}).pipe(b(()=>this.isUpdating.set(!1))).subscribe({next:()=>{this.showPassphraseForm.set(!1),this.passwordUpdated.set(!0),setTimeout(()=>{this.passwordUpdated.set(!1)},3e3)}}))}openPassphraseForm(){this.showPassphraseForm.set(!0)}cancelPasswordChange(){this.showPassphraseForm.set(!1)}get pauseSettings(){return this.settingsForm.controls.pauseSettings}languageOptions=w(()=>{let t=this.langCtrl();return t?Z.filter(e=>e.label.toLowerCase().includes(t.toLowerCase())):Z});usageStatisticsOptions=S(yt);timeTypeOptions=S(Ot);timeOptions=le([this.pauseSettings.controls.timeType.valueChanges.pipe(y("s")),this.pauseSettings.controls.time.valueChanges.pipe(y(null))],ze(He(([t,e])=>{let n=this.#a(t);return e!==null?n.filter(a=>a.toString().includes(e.toString())):n}),y([])));#a(t){let e=t==="h"?25:61;return new Array(e).fill(0).map((n,a)=>a)}ngOnInit(){this.getServerSettings()}saveLocale(t){this.#o.setItem("locale",t),window.location.reload()}submit(){let t=`${this.pauseSettings.controls.time.value}${this.pauseSettings.controls.timeType.value}`;this.#t.patchApiV1Serversettings({requestBody:{"usage-reporter-level":this.settingsForm.controls.usageStatistics.value,"startup-delay":t==="0s"?"":t}}).subscribe()}getServerSettings(){return this.#t.getApiV1Serversettings().subscribe({next:t=>{let e=t["startup-delay"],n=e.slice(-1),a=e.slice(0,-1),c=["s","m","h"];this.settingsForm.patchValue({pauseSettings:{time:parseInt(a==""?"0":a),timeType:c.includes(n)?n:"s"},usageStatistics:t["usage-reporter-level"]}),this.disableTrayIconLogin.set(t["disable-tray-icon-login"]!=="False"),this.updateChannel.set(t["update-channel"]),this.allowRemoteAccess.set(t["server-listen-interface"]==="any"),this.allowedHostnames.set(t["allowed-hostnames"]),this.loadedAllowedHostnames.set(t["allowed-hostnames"])}})}languageDisplay(){let t=this;return()=>{let e=t.langCtrl();return e?Z.find(n=>n.value===e)?.label??null:null}}typeDisplay(){let t=this;return()=>{let e=t.settingsForm.value.pauseSettings?.timeType;return e==null?null:Ot.find(n=>n.value===e)?.label??null}}usageDisplay(){let t=this;return()=>{let e=t.settingsForm.value.usageStatistics;return e==null?null:yt.find(n=>n.value===e)?.label??null}}setDarkMode(){this.#e.setDarkMode()}setLightMode(){this.#e.setLightMode()}static \u0275fac=function(e){return new(e||s)};static \u0275cmp=H({type:s,selectors:[["app-settings"]],decls:134,vars:36,consts:()=>{let t;t=$localize`Settings`;let e;e=$localize`Configure your backup settings.`;let n;n=$localize`Save changes`;let a;a=$localize`Remote access control`;let c;c=$localize`Color theme`;let I;I=$localize`Customize your application theme`;let P;P=$localize`Passwords`;let m;m=$localize`Change server passphrase`;let f;f=$localize`Language`;let U;U=$localize`Select a language for the platform`;let _e;_e=$localize`Allow remote access (requires restart)`;let ce;ce=$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 de;de=$localize`Allow remote access`;let pe;pe=$localize`Prevent tray icon automatic log-in`;let Se;Se=$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 Te;Te=$localize`Prevent tray icon automatic log-in`;let ue;ue=$localize`Update channel`;let ge;ge=$localize` Default (${"\uFFFD0\uFFFD"}:INTERPOLATION:) `;let me;me=$localize`Same as the base install version: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let Ce;Ce=$localize`Stable`;let Ee;Ee=$localize`Official releases`;let Ne;Ne=$localize`Beta`;let fe;fe=$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 Me;Me=$localize` Experimental `;let he;he=$localize`Specific builds for developers only. Not for use with important data.`;let Pe;Pe=$localize`Canary`;let Re;Re=$localize`Individual builds for developers only. Not for use with important data.`;let Ie;Ie=$localize`Pause after startup or hibernation`;let Oe;Oe=$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 ye;ye=$localize`Usage statistics`;let B;B=$localize` Usage reports help us improve the user experience and evaluate impact of new features. We use them to generate ${"\uFFFD#126\uFFFD"}:START_LINK:public usage statistics.${"\uFFFD/#126\uFFFD"}:CLOSE_LINK:${"[\uFFFD#127\uFFFD\uFFFD/#127\uFFFD|\uFFFD#128\uFFFD\uFFFD/#128\uFFFD]"}:LINE_BREAK:${"[\uFFFD#127\uFFFD\uFFFD/#127\uFFFD|\uFFFD#128\uFFFD\uFFFD/#128\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. `,B=et(B);let Ge;Ge=$localize`Enter new password`;let Ae;Ae=$localize`Repeat password`;let $e;$e=$localize`Password have to be filled and have to match`;let be;be=$localize`Passphrase`;let we;we=$localize`Repeat passphrase`;let ve;ve=$localize`Cancel`;let ke;ke=$localize` Update passphrase `;let Le;Le=$localize` Update passphrase `;let Fe;Fe=$localize`Change password`;let xe;xe=$localize`Allowed hostnames`;let Xe;Xe=$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 De;return De=$localize` Update allowed hostnames `,[t,e,n,a,c,I,P,m,f,U,_e,ce,de,pe,Se,Te,ue,ge,me,Ce,Ee,Ne,fe,Me,he,Pe,Re,Ie,Oe,ye,B,be,we,ve,ke,Le,Fe,xe,Xe,De,[1,"title"],["type","submit","spk-button","",1,"raised","primary",3,"disabled"],[1,"content"],[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"],[3,"change","displayFn","hideClearButton"],["type","search",3,"ngModelChange","ngModel","ngModelOptions"],[3,"value"],[1,"right","remote-access-form"],[1,"primary","raised",3,"click"],[1,"indeterminate","primary"],[1,"right","radios"],[1,"radio-option",3,"click"],[1,"primary","raised"],[1,"content",3,"submit","formGroup"],["formGroupName","pauseSettings",1,"field-row"],[3,"hideClearButton"],["type","search","formControlName","time"],[3,"displayFn","hideClearButton"],["type","text","formControlName","timeType"],["href","#"],[3,"displayFn"],["type","text","formControlName","usageStatistics"],["for","password"],["type","password","name","password","autocomplete","disabled","placeholder",Ge,"tabindex","1",3,"ngModelChange","ngModel"],["for","repeatPassword"],["type","password","name","repeatPassword","autocomplete","disabled","placeholder",Ae,"tabindex","2",3,"ngModelChange","disabled","ngModel"],["suffix","",1,"spk-success"],["suffix",""],["spk-button","",3,"click"],["spk-button","",1,"raised","primary",3,"loader"],["message",$e,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"],[3,"click","value"]]},template:function(e,n){if(e&1&&(O(0,"app-status-bar"),i(1,"header")(2,"div",40)(3,"h2"),r(4,0),o(),i(5,"p"),r(6,1),o()(),i(7,"button",41),r(8,2),o()(),i(9,"div",42)(10,"section")(11,"div",43)(12,"h3"),r(13,3),o(),i(14,"p"),h(15),o()(),i(16,"div",44),O(17,"app-remote-control"),o()(),i(18,"section")(19,"div",43)(20,"h3"),r(21,4),o(),i(22,"p"),r(23,5),o()(),i(24,"div",44)(25,"div",45)(26,"img",46),p("click",function(){return n.setLightMode()}),o(),i(27,"img",47),p("click",function(){return n.setDarkMode()}),o()()()(),i(28,"section")(29,"div",43)(30,"h3"),r(31,6),o(),i(32,"p"),r(33,7),o()(),i(34,"div",48),R(35,Bt,15,7)(36,jt,4,1,"div",49),o()(),i(37,"section")(38,"div",43)(39,"h3"),r(40,8),o(),i(41,"p"),r(42,9),o()(),i(43,"div",44)(44,"spk-select",50),p("change",function(c){return n.saveLocale(c)}),i(45,"input",51),$("ngModelChange",function(c){return A(n.langCtrl,c)||(n.langCtrl=c),c}),o(),x(46,Wt,2,2,"spk-option",52,F),o()()(),i(48,"section")(49,"div",43)(50,"h3"),r(51,10),o(),i(52,"p"),r(53,11),o()(),i(54,"div",53)(55,"spk-toggle",54),p("click",function(){return n.updateRemoteAccess()}),i(56,"label"),r(57,12),o()(),R(58,qt,8,3),o()(),i(59,"section")(60,"div",43)(61,"h3"),r(62,13),o(),i(63,"p"),r(64,14),o()(),i(65,"div",44)(66,"spk-toggle",54),p("click",function(){return n.saveDisableTrayIconLogin()}),i(67,"label"),r(68,15),o()()()(),i(69,"section")(70,"div",43)(71,"h3"),r(72,16),o(),i(73,"p"),R(74,Kt,1,1),o(),R(75,Jt,1,0,"spk-progress-bar",55),o(),i(76,"div",56)(77,"div",57),p("click",function(){return n.setNewChannel("")}),i(78,"spk-radio",58),r(79,17),o(),i(80,"p"),r(81,18),o()(),i(82,"div",57),p("click",function(){return n.setNewChannel("stable")}),i(83,"spk-radio",58),r(84,19),o(),i(85,"p"),r(86,20),o()(),i(87,"div",57),p("click",function(){return n.setNewChannel("beta")}),i(88,"spk-radio",58),r(89,21),o(),i(90,"p"),r(91,22),o()(),i(92,"div",57),p("click",function(){return n.setNewChannel("experimental")}),i(93,"spk-radio",58),r(94,23),o(),i(95,"p"),r(96,24),o()(),i(97,"div",57),p("click",function(){return n.setNewChannel("canary")}),i(98,"spk-radio",58),r(99,25),o(),i(100,"p"),r(101,26),o()()()()(),O(102,"spk-divider"),i(103,"form",59),p("submit",function(){return n.submit()}),i(104,"section")(105,"div",43)(106,"h3"),r(107,27),o(),i(108,"p"),r(109,28),o()(),i(110,"div",44)(111,"div",60)(112,"spk-select",61),O(113,"input",62),x(114,Qt,2,2,"spk-option",52,F),o(),i(116,"spk-select",63),O(117,"input",64),x(118,Yt,2,2,"spk-option",52,F),o()()()(),i(120,"section")(121,"div",43)(122,"h3"),r(123,29),o(),i(124,"p"),Ye(125,30),O(126,"a",65)(127,"br")(128,"br"),Ze(),o()(),i(129,"div",44)(130,"spk-select",66),O(131,"input",67),x(132,Zt,2,2,"spk-option",52,F),o()()()()),e&2){let a,c,I;l(7),C("disabled",n.settingsForm.untouched),l(8),D(n.remoteControlStatus()),l(11),E("active",!n.isDarkMode()),l(),E("active",n.isDarkMode()),l(8),g(n.showPassphraseForm()?35:36),l(9),C("displayFn",n.languageDisplay())("hideClearButton",!0),l(),G("ngModel",n.langCtrl),C("ngModelOptions",nt(35,Xt)),l(),X(n.languageOptions()),l(9),E("active",n.allowRemoteAccess()),l(3),g(n.allowRemoteAccess()?58:-1),l(8),E("active",n.disableTrayIconLogin()),l(8),g(n.updateChannel()!==""&&((a=n.sysinfo())!=null&&a.ServerVersion)?74:-1),l(),g(n.updatingChannel()?75:-1),l(3),E("active",n.updateChannel()===""),l(),ie((c=n.sysinfo())==null?null:c.DefaultUpdateChannel),oe(79),l(2),ie((I=n.sysinfo())==null?null:I.ServerVersionType),oe(81),l(2),E("active",n.updateChannel()==="stable"),l(5),E("active",n.updateChannel()==="beta"),l(5),E("active",n.updateChannel()==="experimental"),l(5),E("active",n.updateChannel()==="canary"),l(5),C("formGroup",n.settingsForm),l(9),C("hideClearButton",!0),l(2),X(n.timeOptions()),l(2),C("displayFn",n.typeDisplay())("hideClearButton",!0),l(2),X(n.timeTypeOptions()),l(12),C("displayFn",n.usageDisplay()),l(2),X(n.usageStatisticsOptions())}},dependencies:[Q,lt,q,K,at,J,pt,rt,ct,_t,Pt,ee,Et,ut,Ct,Nt,mt,ft,Mt,Y,St,gt,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%}.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}"],changeDetection:0})};export{re as default};
|
|
1
|
+
import{a as se,b as ae}from"./chunk-N3GBABZB.js";import{a as Z}from"./chunk-M27H5SJL.js";import{a as W}from"./chunk-PD4M6YP7.js";import{a as ht}from"./chunk-IHYJHBCC.js";import{a as st}from"./chunk-PIVMNQL6.js";import{a as Pt}from"./chunk-ZUGIRXAF.js";import"./chunk-GE3T3AG3.js";import{b as q,d as K,e as at,g as J,h as lt,l as rt,m as _t,o as ct,p as dt,q as Q,r as pt}from"./chunk-OROSSCXB.js";import{b as j}from"./chunk-O2MZ5CAQ.js";import{a as St,b as Tt,g as ut,k as gt,l as Y,o as mt,p as Ct,q as Et,r as Nt,w as ft,x as Mt}from"./chunk-ZTSITRHY.js";import"./chunk-NJSJNACP.js";import"./chunk-BSZZLSIX.js";import"./chunk-BUARZS4A.js";import"./chunk-O53NVQ2A.js";import{Ab as x,Bb as X,Cb as i,Db as o,Eb as O,F as ne,G as b,Ib as M,Kc as w,Lc as it,Mc as ot,N as y,Oa as Je,Ob as Ye,Pb as Ze,Qb as r,Ra as l,Rb as ie,Sb as oe,Tb as et,U as je,Ub as p,Vb as d,Xa as Qe,Ya as S,Yb as tt,_ as N,b as Ve,c as ze,ca as We,da as qe,eb as H,fa as T,ga as u,hc as h,ic as D,jc as V,k as Ue,ka as Ke,kb as R,l as k,mc as G,n as Be,nc as A,oc as $,q as He,r as te,rc as nt,tb as C,vb as E,yb as g,z as L,zb as F}from"./chunk-VGQ6X3AL.js";import"./chunk-C6Q5SG76.js";function Rt(s,t,e){!t&&qe(s);let n=t??N(Ke);return e?We(n,e):n}function le(...s){let{normalizedSources:t,hasInitValue:e,operator:n,options:a}=Gt(s),c=Rt(le,a?.injector);return e?ae(te(t).pipe(n),{initialValue:a.initialValue,injector:c}):ae(te(t).pipe(n),{injector:c,requireSync:!0})}function Gt(s){if(!s||!s.length||typeof s[0]!="object")throw new TypeError("derivedFrom needs sources");let t=typeof s[1]=="function";if(s.length==3&&!t)throw new TypeError("derivedFrom needs pipeable operator as a second argument");t||s.splice(1,0,Ve);let[e,n,a]=s,c=!!a&&"initialValue"in a;return{normalizedSources:Object.entries(e).reduce((P,[m,f])=>{if(Qe(f))P[m]=se(f,{injector:a?.injector}).pipe(y(it(f)));else if(Be(f))P[m]=f.pipe(ne());else if(typeof f=="function"){let U=w(f);P[m]=se(U,{injector:a?.injector}).pipe(y(f()))}else P[m]=Ue(f).pipe(ne());return P},Array.isArray(e)?[]:{}),operator:n,hasInitValue:c,options:a}}var v=class s{#e=N(j);#i=N(W);repeatRegisterTimer=null;state=S("unknown");claimUrl=S(null);registerUrl=S("");status=w(()=>{let t=this.state();return t==="enabled"?"Remote control is enabled but not connected":t==="connected"?"Remote control is connected":t==="registering"?"Registering machine...":t==="registeringfaulted"?"Registration failed":t==="registered"?"Registered, waiting for accept":t==="disabled"?"Remote control is configured but not enabled":t==="unknown"?"...loading...":"Remote control is not set up"});sysInfoEffect=ot(()=>{let t=this.#i.systemInfo();t&&this.registerUrl.set(t.RemoteControlRegistrationUrl??"")});#t(t){t.RegistrationUrl&&this.claimUrl.set(t.RegistrationUrl),t.IsConnected?this.state.set("connected"):t.IsEnabled?this.state.set("enabled"):t.CanEnable?this.state.set("disabled"):t.IsRegisteringFaulted?this.state.set("registeringfaulted"):t.IsRegistering?t.RegistrationUrl!=null&&t.RegistrationUrl.trim().length>0?this.state.set("registered"):this.state.set("registering"):this.state.set("inactive");let e=this.state();console.log("currentState: ",e),this.repeatRegisterTimer!==null&&(clearTimeout(this.repeatRegisterTimer),this.repeatRegisterTimer=null),e==="registering"&&(this.repeatRegisterTimer=setTimeout(()=>{this.#e.postApiV1RemotecontrolRegister({requestBody:{RegistrationUrl:""}}).subscribe({next:n=>this.#t(n),error:n=>this.#n(n)})},5e3)),(e==="enabled"||e==="registered")&&(this.repeatRegisterTimer=setTimeout(()=>{this.#e.getApiV1RemotecontrolStatus().subscribe({next:n=>this.#t(n),error:n=>this.#n(n)})},5e3)),t.IsRegistering&&t.CanEnable&&this.#e.deleteApiV1RemotecontrolRegister().subscribe({next:n=>this.#t(n)})}#n(t){this.#e.getApiV1RemotecontrolStatus().subscribe({next:e=>this.#t(e)})}refreshRemoteControlStatus(){this.#e.getApiV1RemotecontrolStatus().subscribe({next:t=>this.#t(t),error:t=>this.#n(t)})}beginRemoteRegistration(){this.state.set("registering"),this.#e.postApiV1RemotecontrolRegister({requestBody:{RegistrationUrl:this.registerUrl()}}).subscribe({next:t=>this.#t(t),error:t=>this.#n(t)})}cancelRemoteRegistration(){this.#e.deleteApiV1RemotecontrolRegister().subscribe({next:t=>this.#t(t),error:t=>this.#n(t)})}enableRemoteControl(){this.#e.postApiV1RemotecontrolEnable().subscribe({next:t=>this.#t(t),error:t=>this.#n(t)})}disableRemoteControl(){this.#e.postApiV1RemotecontrolDisable().subscribe({next:t=>this.#t(t),error:t=>this.#n(t)})}deleteRemoteControl(){let t=this;confirm("Are you sure you want to delete the remote control registration?")&&t.#e.deleteApiV1RemotecontrolRegistration().subscribe({next:e=>t.#t(e),error:e=>t.#n(e)})}static \u0275fac=function(e){return new(e||s)};static \u0275prov=je({token:s,factory:s.\u0275fac,providedIn:"root"})};function bt(s,t){if(s&1){let e=M();i(0,"spk-form-field",10)(1,"input",11),$("ngModelChange",function(a){T(e);let c=d(2);return A(c.registerUrl,a)||(c.registerUrl=a),u(a)}),o()(),i(2,"button",12),p("click",function(){T(e);let a=d(2);return u(a.register())}),r(3,0),o()}if(s&2){let e=d(2);l(),G("ngModel",e.registerUrl)}}function wt(s,t){if(s&1&&(i(0,"div",8)(1,"label"),r(2,1),o(),i(3,"a",13),h(4),o()()),s&2){let e=d(2);l(3),tt("href",e.claimUrl(),Je),l(),D(e.claimUrl())}}function vt(s,t){s&1&&(i(0,"div",8)(1,"label"),r(2,2),o()())}function kt(s,t){if(s&1){let e=M();i(0,"button",12),p("click",function(){T(e);let a=d(2);return u(a.cancel())}),r(1,3),o()}}function Lt(s,t){if(s&1){let e=M();i(0,"button",12),p("click",function(){T(e);let a=d(2);return u(a.disable())}),r(1,4),o()}}function Ft(s,t){if(s&1){let e=M();i(0,"button",12),p("click",function(){T(e);let a=d(2);return u(a.enable())}),r(1,5),o(),i(2,"button",14),p("click",function(){T(e);let a=d(2);return u(a.delete())}),r(3,6),o()}}function xt(s,t){if(s&1&&(i(0,"div",7),R(1,bt,4,1)(2,wt,5,2,"div",8)(3,vt,3,0,"div",8)(4,kt,2,0,"button",9)(5,Lt,2,0,"button",9)(6,Ft,4,0),o()),s&2){let e=d();l(),g(e.state()==="inactive"?1:-1),l(),g(e.state()==="registered"?2:-1),l(),g(e.state()==="registering"?3:-1),l(),g(e.state()==="registering"||e.state()==="registeringfaulted"||e.state()==="registered"?4:-1),l(),g(e.state()==="connected"||e.state()==="enabled"?5:-1),l(),g(e.state()==="disabled"?6:-1)}}var ee=class s{#e=N(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(e){return new(e||s)};static \u0275cmp=H({type:s,selectors:[["app-remote-control"]],decls:1,vars:1,consts:()=>{let t;t=$localize`Register for remote control`;let e;e=$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 c;c=$localize`Disable remote control`;let I;I=$localize`Enable remote control`;let P;return P=$localize`Delete remote control setup`,[t,e,n,a,c,I,P,[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(e,n){e&1&&R(0,xt,7,6,"div",7),e&2&&g(n.state()!=="unknown"?0:-1)},dependencies:[Q,q,K,J,Y],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 Xt=()=>({standalone:!0});function Dt(s,t){s&1&&(i(0,"spk-icon",72),h(1,"check"),o())}function Vt(s,t){s&1&&(i(0,"spk-icon",73),h(1,"prohibit"),o())}function zt(s,t){if(s&1){let e=M();i(0,"button",77),p("click",function(){T(e);let a=d(2);return u(a.updatePassphrase())}),r(1,34),o()}if(s&2){let e=d(2);E("loader",e.isUpdating())}}function Ut(s,t){if(s&1){let e=M();i(0,"spk-tooltip",76)(1,"button",78),p("click",function(){T(e);let a=d(2);return u(a.updatePassphrase())}),r(2,35),o()()}if(s&2){let e=d(2);l(),E("loader",e.isUpdating()),C("disabled",!0)}}function Bt(s,t){if(s&1){let e=M();i(0,"spk-form-field")(1,"label",68),r(2,31),o(),i(3,"input",69),$("ngModelChange",function(a){T(e);let c=d();return A(c.passphrase,a)||(c.passphrase=a),u(a)}),o()(),i(4,"spk-form-field")(5,"label",70),r(6,32),o(),i(7,"input",71),$("ngModelChange",function(a){T(e);let c=d();return A(c.repeatPassphrase,a)||(c.repeatPassphrase=a),u(a)}),o(),R(8,Dt,2,0,"spk-icon",72)(9,Vt,2,0,"spk-icon",73),o(),i(10,"div",49)(11,"button",74),p("click",function(){T(e);let a=d();return u(a.cancelPasswordChange())}),r(12,33),o(),R(13,zt,2,2,"button",75)(14,Ut,3,3,"spk-tooltip",76),o()}if(s&2){let e=d();l(3),G("ngModel",e.passphrase),l(4),C("disabled",e.passphrase().length===0),G("ngModel",e.repeatPassphrase),l(),g(e.passphrase().length!==0&&e.passphrase()===e.repeatPassphrase()?8:9),l(3),E("loader",e.isUpdating()),l(2),g(e.passphrase().length!==0&&e.passphrase()===e.repeatPassphrase()?13:14)}}function Ht(s,t){s&1&&(i(0,"spk-icon",79),h(1,"check"),o())}function jt(s,t){if(s&1){let e=M();i(0,"div",49)(1,"button",74),p("click",function(){T(e);let a=d();return u(a.openPassphraseForm())}),r(2,36),o(),R(3,Ht,2,0,"spk-icon",79),o()}if(s&2){let e=d();l(3),g(e.passwordUpdated()?3:-1)}}function Wt(s,t){if(s&1&&(i(0,"spk-option",52),h(1),o()),s&2){let e=t.$implicit;C("value",e.value),l(),V(" ",e.label," ")}}function qt(s,t){if(s&1){let e=M();i(0,"spk-form-field")(1,"label",80),r(2,37),o(),i(3,"textarea",81),$("ngModelChange",function(a){T(e);let c=d();return A(c.allowedHostnames,a)||(c.allowedHostnames=a),u(a)}),o()(),i(4,"spk-alert",82),r(5,38),o(),i(6,"button",77),p("click",function(){T(e);let a=d();return u(a.updateAllowedHostnames())}),r(7,39),o()}if(s&2){let e=d();l(3),G("ngModel",e.allowedHostnames),l(3),E("loader",e.updatingAllowedHosts())}}function Kt(s,t){if(s&1&&h(0),s&2){let e,n=d();V(" ",(e=n.sysinfo())==null?null:e.ServerVersion," ")}}function Jt(s,t){s&1&&O(0,"spk-progress-bar",55)}function Qt(s,t){if(s&1&&(i(0,"spk-option",52),h(1),o()),s&2){let e=t.$implicit;C("value",e),l(),D(e)}}function Yt(s,t){if(s&1){let e=M();i(0,"spk-option",83),p("click",function(){let a=T(e).$implicit,c=d();return u(c.pauseSettings.controls.timeType.setValue(a.value))}),h(1),o()}if(s&2){let e=t.$implicit;C("value",e.value),l(),V(" ",e.label," ")}}function Zt(s,t){if(s&1&&(i(0,"spk-option",52),h(1),o()),s&2){let e=t.$implicit;C("value",e.value),l(),V(" ",e.label," ")}}var z=new dt,Ot=[{value:"s",label:$localize`Seconds`},{value:"m",label:$localize`Minutes`},{value:"h",label:$localize`Hours`}],yt=[{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`}],re=class s{#e=N(ht);#i=N(W);#t=N(j);#n=N(v);#o=N(st);#s=this.#o.getItem("locale")??"en-US";sysinfo=this.#i.systemInfo;isDarkMode=this.#e.isDarkMode;editAs=S("list");langCtrl=S(this.#s);remoteControlStatus=this.#n.status;settingsForm=z.group({pauseSettings:z.group({time:z.control(0),timeType:z.control("s")}),usageStatistics:z.control("")});updatingChannel=S(!1);updateChannel=S("");setNewChannel(t){let e=this.updateChannel();this.updateChannel.set(t),this.#t.patchApiV1Serversettings({requestBody:{"update-channel":t}}).pipe(b(()=>this.updatingChannel.set(!1)),L(()=>(this.updateChannel.set(e),k(null)))).subscribe()}allowRemoteAccess=S(!1);allowedHostnames=S("");loadedAllowedHostnames=S("");updatingRemoteAccess=S(!1);updatingAllowedHosts=S(!1);updateRemoteAccess(){let t=this.allowRemoteAccess(),e=!t;this.allowRemoteAccess.set(e),e||this.#t.patchApiV1Serversettings({requestBody:{"server-listen-interface":e?"any":"loopback"}}).pipe(b(()=>this.updatingRemoteAccess.set(!1)),L(()=>(this.allowRemoteAccess.set(t),k(null)))).subscribe()}updateAllowedHostnames(){let t=this.loadedAllowedHostnames(),e=this.allowedHostnames();this.updatingAllowedHosts.set(!0),this.#t.patchApiV1Serversettings({requestBody:{"server-listen-interface":"any","allowed-hostnames":e}}).pipe(b(()=>this.updatingAllowedHosts.set(!1)),L(()=>(this.allowedHostnames.set(t),k(null)))).subscribe()}updatingDisableTrayIconLogin=S(!1);disableTrayIconLogin=S(!1);saveDisableTrayIconLogin(){let t=this.disableTrayIconLogin(),e=!t;this.updatingDisableTrayIconLogin.set(!0),this.disableTrayIconLogin.set(e),this.#t.patchApiV1Serversettings({requestBody:{"disable-tray-icon-login":e?"True":"False"}}).pipe(b(()=>this.updatingDisableTrayIconLogin.set(!1)),L(()=>(this.disableTrayIconLogin.set(t),k(null)))).subscribe()}showPassphraseForm=S(!1);isUpdating=S(!1);passphrase=S("");repeatPassphrase=S("");passwordUpdated=S(!1);updatePassphrase(){this.passphrase()===this.repeatPassphrase()&&(this.isUpdating.set(!0),this.#t.patchApiV1Serversettings({requestBody:{"server-passphrase":this.passphrase()}}).pipe(b(()=>this.isUpdating.set(!1))).subscribe({next:()=>{this.showPassphraseForm.set(!1),this.passwordUpdated.set(!0),setTimeout(()=>{this.passwordUpdated.set(!1)},3e3)}}))}openPassphraseForm(){this.showPassphraseForm.set(!0)}cancelPasswordChange(){this.showPassphraseForm.set(!1)}get pauseSettings(){return this.settingsForm.controls.pauseSettings}languageOptions=w(()=>{let t=this.langCtrl();return t?Z.filter(e=>e.label.toLowerCase().includes(t.toLowerCase())):Z});usageStatisticsOptions=S(yt);timeTypeOptions=S(Ot);timeOptions=le([this.pauseSettings.controls.timeType.valueChanges.pipe(y("s")),this.pauseSettings.controls.time.valueChanges.pipe(y(null))],ze(He(([t,e])=>{let n=this.#a(t);return e!==null?n.filter(a=>a.toString().includes(e.toString())):n}),y([])));#a(t){let e=t==="h"?25:61;return new Array(e).fill(0).map((n,a)=>a)}ngOnInit(){this.getServerSettings()}saveLocale(t){this.#o.setItem("locale",t),window.location.reload()}submit(){let t=`${this.pauseSettings.controls.time.value}${this.pauseSettings.controls.timeType.value}`;this.#t.patchApiV1Serversettings({requestBody:{"usage-reporter-level":this.settingsForm.controls.usageStatistics.value,"startup-delay":t==="0s"?"":t}}).subscribe()}getServerSettings(){return this.#t.getApiV1Serversettings().subscribe({next:t=>{let e=t["startup-delay"],n=e.slice(-1),a=e.slice(0,-1),c=["s","m","h"];this.settingsForm.patchValue({pauseSettings:{time:parseInt(a==""?"0":a),timeType:c.includes(n)?n:"s"},usageStatistics:t["usage-reporter-level"]}),this.disableTrayIconLogin.set(t["disable-tray-icon-login"]!=="False"),this.updateChannel.set(t["update-channel"]),this.allowRemoteAccess.set(t["server-listen-interface"]==="any"),this.allowedHostnames.set(t["allowed-hostnames"]),this.loadedAllowedHostnames.set(t["allowed-hostnames"])}})}languageDisplay(){let t=this;return()=>{let e=t.langCtrl();return e?Z.find(n=>n.value===e)?.label??null:null}}typeDisplay(){let t=this;return()=>{let e=t.settingsForm.value.pauseSettings?.timeType;return e==null?null:Ot.find(n=>n.value===e)?.label??null}}usageDisplay(){let t=this;return()=>{let e=t.settingsForm.value.usageStatistics;return e==null?null:yt.find(n=>n.value===e)?.label??null}}setDarkMode(){this.#e.setDarkMode()}setLightMode(){this.#e.setLightMode()}static \u0275fac=function(e){return new(e||s)};static \u0275cmp=H({type:s,selectors:[["app-settings"]],decls:134,vars:36,consts:()=>{let t;t=$localize`Settings`;let e;e=$localize`Configure your backup settings.`;let n;n=$localize` Save changes `;let a;a=$localize`Remote access control`;let c;c=$localize`Color theme`;let I;I=$localize`Customize your application theme`;let P;P=$localize`Passwords`;let m;m=$localize`Change server passphrase`;let f;f=$localize`Language`;let U;U=$localize`Select a language for the platform`;let _e;_e=$localize`Allow remote access (requires restart)`;let ce;ce=$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 de;de=$localize`Allow remote access`;let pe;pe=$localize`Prevent tray icon automatic log-in`;let Se;Se=$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 Te;Te=$localize`Prevent tray icon automatic log-in`;let ue;ue=$localize`Update channel`;let ge;ge=$localize` Default (${"\uFFFD0\uFFFD"}:INTERPOLATION:) `;let me;me=$localize`Same as the base install version: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let Ce;Ce=$localize`Stable`;let Ee;Ee=$localize`Official releases`;let Ne;Ne=$localize`Beta`;let fe;fe=$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 Me;Me=$localize` Experimental `;let he;he=$localize`Specific builds for developers only. Not for use with important data.`;let Pe;Pe=$localize`Canary`;let Re;Re=$localize`Individual builds for developers only. Not for use with important data.`;let Ie;Ie=$localize`Pause after startup or hibernation`;let Oe;Oe=$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 ye;ye=$localize`Usage statistics`;let B;B=$localize` Usage reports help us improve the user experience and evaluate impact of new features. We use them to generate ${"\uFFFD#126\uFFFD"}:START_LINK:public usage statistics.${"\uFFFD/#126\uFFFD"}:CLOSE_LINK:${"[\uFFFD#127\uFFFD\uFFFD/#127\uFFFD|\uFFFD#128\uFFFD\uFFFD/#128\uFFFD]"}:LINE_BREAK:${"[\uFFFD#127\uFFFD\uFFFD/#127\uFFFD|\uFFFD#128\uFFFD\uFFFD/#128\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. `,B=et(B);let Ge;Ge=$localize`Enter new password`;let Ae;Ae=$localize`Repeat password`;let $e;$e=$localize`Password have to be filled and have to match`;let be;be=$localize`Passphrase`;let we;we=$localize`Repeat passphrase`;let ve;ve=$localize`Cancel`;let ke;ke=$localize` Update passphrase `;let Le;Le=$localize` Update passphrase `;let Fe;Fe=$localize`Change password`;let xe;xe=$localize`Allowed hostnames`;let Xe;Xe=$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 De;return De=$localize` Update allowed hostnames `,[t,e,n,a,c,I,P,m,f,U,_e,ce,de,pe,Se,Te,ue,ge,me,Ce,Ee,Ne,fe,Me,he,Pe,Re,Ie,Oe,ye,B,be,we,ve,ke,Le,Fe,xe,Xe,De,[1,"content"],[1,"title"],["type","submit","spk-button","",1,"raised","primary",3,"disabled"],[1,"left"],[1,"right"],[1,"themes"],["src","assets/images/light-theme.png","alt","light theme",3,"click"],["src","assets/images/dark-theme.png","alt","dark theme",3,"click"],[1,"right","passphrase-form"],[1,"actions"],[3,"change","displayFn","hideClearButton"],["type","search",3,"ngModelChange","ngModel","ngModelOptions"],[3,"value"],[1,"right","remote-access-form"],[1,"primary","raised",3,"click"],[1,"indeterminate","primary"],[1,"right","radios"],[1,"radio-option",3,"click"],[1,"primary","raised"],[1,"content",3,"submit","formGroup"],["formGroupName","pauseSettings",1,"field-row"],[3,"hideClearButton"],["type","search","formControlName","time"],[3,"displayFn","hideClearButton"],["type","text","formControlName","timeType"],["href","#"],[3,"displayFn"],["type","text","formControlName","usageStatistics"],["for","password"],["type","password","name","password","autocomplete","disabled","placeholder",Ge,"tabindex","1",3,"ngModelChange","ngModel"],["for","repeatPassword"],["type","password","name","repeatPassword","autocomplete","disabled","placeholder",Ae,"tabindex","2",3,"ngModelChange","disabled","ngModel"],["suffix","",1,"spk-success"],["suffix",""],["spk-button","",3,"click"],["spk-button","",1,"raised","primary",3,"loader"],["message",$e,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"],[3,"click","value"]]},template:function(e,n){if(e&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,"button",42),r(9,2),o()(),i(10,"section")(11,"div",43)(12,"h3"),r(13,3),o(),i(14,"p"),h(15),o()(),i(16,"div",44),O(17,"app-remote-control"),o()(),i(18,"section")(19,"div",43)(20,"h3"),r(21,4),o(),i(22,"p"),r(23,5),o()(),i(24,"div",44)(25,"div",45)(26,"img",46),p("click",function(){return n.setLightMode()}),o(),i(27,"img",47),p("click",function(){return n.setDarkMode()}),o()()()(),i(28,"section")(29,"div",43)(30,"h3"),r(31,6),o(),i(32,"p"),r(33,7),o()(),i(34,"div",48),R(35,Bt,15,7)(36,jt,4,1,"div",49),o()(),i(37,"section")(38,"div",43)(39,"h3"),r(40,8),o(),i(41,"p"),r(42,9),o()(),i(43,"div",44)(44,"spk-select",50),p("change",function(c){return n.saveLocale(c)}),i(45,"input",51),$("ngModelChange",function(c){return A(n.langCtrl,c)||(n.langCtrl=c),c}),o(),x(46,Wt,2,2,"spk-option",52,F),o()()(),i(48,"section")(49,"div",43)(50,"h3"),r(51,10),o(),i(52,"p"),r(53,11),o()(),i(54,"div",53)(55,"spk-toggle",54),p("click",function(){return n.updateRemoteAccess()}),i(56,"label"),r(57,12),o()(),R(58,qt,8,3),o()(),i(59,"section")(60,"div",43)(61,"h3"),r(62,13),o(),i(63,"p"),r(64,14),o()(),i(65,"div",44)(66,"spk-toggle",54),p("click",function(){return n.saveDisableTrayIconLogin()}),i(67,"label"),r(68,15),o()()()(),i(69,"section")(70,"div",43)(71,"h3"),r(72,16),o(),i(73,"p"),R(74,Kt,1,1),o(),R(75,Jt,1,0,"spk-progress-bar",55),o(),i(76,"div",56)(77,"div",57),p("click",function(){return n.setNewChannel("")}),i(78,"spk-radio",58),r(79,17),o(),i(80,"p"),r(81,18),o()(),i(82,"div",57),p("click",function(){return n.setNewChannel("stable")}),i(83,"spk-radio",58),r(84,19),o(),i(85,"p"),r(86,20),o()(),i(87,"div",57),p("click",function(){return n.setNewChannel("beta")}),i(88,"spk-radio",58),r(89,21),o(),i(90,"p"),r(91,22),o()(),i(92,"div",57),p("click",function(){return n.setNewChannel("experimental")}),i(93,"spk-radio",58),r(94,23),o(),i(95,"p"),r(96,24),o()(),i(97,"div",57),p("click",function(){return n.setNewChannel("canary")}),i(98,"spk-radio",58),r(99,25),o(),i(100,"p"),r(101,26),o()()()()(),O(102,"spk-divider"),i(103,"form",59),p("submit",function(){return n.submit()}),i(104,"section")(105,"div",43)(106,"h3"),r(107,27),o(),i(108,"p"),r(109,28),o()(),i(110,"div",44)(111,"div",60)(112,"spk-select",61),O(113,"input",62),x(114,Qt,2,2,"spk-option",52,F),o(),i(116,"spk-select",63),O(117,"input",64),x(118,Yt,2,2,"spk-option",52,F),o()()()(),i(120,"section")(121,"div",43)(122,"h3"),r(123,29),o(),i(124,"p"),Ye(125,30),O(126,"a",65)(127,"br")(128,"br"),Ze(),o()(),i(129,"div",44)(130,"spk-select",66),O(131,"input",67),x(132,Zt,2,2,"spk-option",52,F),o()()()()),e&2){let a,c,I;l(8),C("disabled",n.settingsForm.untouched),l(7),D(n.remoteControlStatus()),l(11),E("active",!n.isDarkMode()),l(),E("active",n.isDarkMode()),l(8),g(n.showPassphraseForm()?35:36),l(9),C("displayFn",n.languageDisplay())("hideClearButton",!0),l(),G("ngModel",n.langCtrl),C("ngModelOptions",nt(35,Xt)),l(),X(n.languageOptions()),l(9),E("active",n.allowRemoteAccess()),l(3),g(n.allowRemoteAccess()?58:-1),l(8),E("active",n.disableTrayIconLogin()),l(8),g(n.updateChannel()!==""&&((a=n.sysinfo())!=null&&a.ServerVersion)?74:-1),l(),g(n.updatingChannel()?75:-1),l(3),E("active",n.updateChannel()===""),l(),ie((c=n.sysinfo())==null?null:c.DefaultUpdateChannel),oe(79),l(2),ie((I=n.sysinfo())==null?null:I.ServerVersionType),oe(81),l(2),E("active",n.updateChannel()==="stable"),l(5),E("active",n.updateChannel()==="beta"),l(5),E("active",n.updateChannel()==="experimental"),l(5),E("active",n.updateChannel()==="canary"),l(5),C("formGroup",n.settingsForm),l(9),C("hideClearButton",!0),l(2),X(n.timeOptions()),l(2),C("displayFn",n.typeDisplay())("hideClearButton",!0),l(2),X(n.timeTypeOptions()),l(12),C("displayFn",n.usageDisplay()),l(2),X(n.usageStatisticsOptions())}},dependencies:[Q,lt,q,K,at,J,pt,rt,ct,_t,Pt,ee,Et,ut,Ct,Nt,mt,ft,Mt,Y,St,gt,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%}.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}"],changeDetection:0})};export{re as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{a as h}from"./chunk-T5I4AY74.js";import"./chunk-O2MZ5CAQ.js";import"./chunk-J76HBC5J.js";import"./chunk-MSK2MH2K.js";import{g as M}from"./chunk-ZTSITRHY.js";import"./chunk-NJSJNACP.js";import"./chunk-BUARZS4A.js";import{Cb as t,Db as i,Eb as g,Qb as l,Ra as u,Wb as C,Xb as c,_ as m,eb as s,hc as O,kb as _,yb as f}from"./chunk-VGQ6X3AL.js";import"./chunk-C6Q5SG76.js";var v=["*",[["","footer",""]]],T=["*","[footer]"],r=class n{static \u0275fac=function(e){return new(e||n)};static \u0275cmp=s({type:n,selectors:[["app-custom-card"]],ngContentSelectors:T,decls:11,vars:0,consts:[[1,"card"],["src","/assets/noise/auth-noise.svg",1,"noise"],[1,"header-title"],["src","/assets/duplicati/duplicati.svg","alt",""],[1,"bg"]],template:function(e,a){e&1&&(C(v),t(0,"div",0),g(1,"img",1),t(2,"header")(3,"div",2),g(4,"img",3),O(5," Duplicati "),i()(),t(6,"main"),c(7),t(8,"footer"),c(9,1),i()()(),g(10,"div",4))},styles:['[_nghost-%COMP%]{height:100vh;width:100vw;display:flex;align-items:center;justify-content:center;background-color:var(--base-level-20)}body.dark [_nghost-%COMP%] .card[_ngcontent-%COMP%]:before{background:radial-gradient(rgba(var(--primary-rgb-900),1),#0000 60%)}.card[_ngcontent-%COMP%]{max-width:480px;width:100%;position:relative;z-index:100;background-color:var(--base-level-10);border-radius:var(--shape-5);box-shadow:var(--box-shadow-40);border:1px solid var(--base-level-30);overflow:hidden}.card[_ngcontent-%COMP%]:before{content:"";position:absolute;height:480px;transform:translateY(-285px);left:0;right:0;z-index:-2;background:radial-gradient(rgba(var(--primary-rgb-100),1),#0000 60%)}.card[_ngcontent-%COMP%] img.noise[_ngcontent-%COMP%]{position:absolute;height:480px;width:100%;transform:translateY(-285px);left:0;right:0;z-index:-1;mask-image:radial-gradient(#000,#0000 60%)}header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;padding:2rem 2rem 0;gap:12px;position:relative;z-index:10}.header-title[_ngcontent-%COMP%]{font:var(--title-30);display:flex;align-items:center;gap:10px}.header-title[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:28px;filter:drop-shadow(0 2px 3px rgba(0,0,0,.3))}main[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;padding:2rem;gap:2.5rem;position:relative;z-index:10}main[_ngcontent-%COMP%] footer[_ngcontent-%COMP%]{font:var(--paragraph-40);color:var(--base-level-60R);text-align:center;text-wrap:balance}.bg[_ngcontent-%COMP%]{position:fixed;inset:0;width:100vw;height:100vh;background-image:url(/assets/backgrounds/base-bg.svg);background-size:cover;background-position:center;background-repeat:no-repeat}body.dark[_ngcontent-%COMP%] .bg[_ngcontent-%COMP%]{opacity:1}footer[_ngcontent-%COMP%]:empty{display:none}'],changeDetection:0})};function x(n,o){n&1&&(t(0,"h3"),l(1,0),i())}function y(n,o){n&1&&(t(0,"h3"),l(1,1),i(),t(2,"button",3),l(3,2),i())}var d=class n{#e=m(h);isLoggingOut=this.#e.isLoggingOut;ngOnInit(){this.#e.logout()}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=s({type:n,selectors:[["app-logout"]],decls:3,vars:1,consts:()=>{let o;o=$localize`Logging out...`;let e;e=$localize`You have successfully logged out your being redirected to login page.`;let a;return a=$localize`Go to login page`,[o,e,a,["spk-button","","routerLink","/",1,"raised","primary"]]},template:function(e,a){e&1&&(t(0,"app-custom-card"),_(1,x,2,0,"h3")(2,y,4,0),i()),e&2&&(u(),f(a.isLoggingOut()?1:2))},dependencies:[r,M],styles:["[_nghost-%COMP%]{display:block}"],changeDetection:0})};export{d as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as p}from"./chunk-O2MZ5CAQ.js";import{c as l}from"./chunk-J76HBC5J.js";import{D as e,G as a,Q as o,U as u,Ya as n,_ as r}from"./chunk-VGQ6X3AL.js";var c=class i{#s=r(l);#e=r(p);#t=n(null);#i=n(!1);token=this.#t.asReadonly();isLoggingOut=this.#i.asReadonly();login(t){return this.#e.postApiV1AuthLogin({requestBody:{Password:t,RememberMe:!0}}).pipe(e(1),o(s=>this.#t.set(s.AccessToken??null)))}refreshToken(){return this.#e.postApiV1AuthRefresh().pipe(e(1),o(t=>this.#t.set(t.AccessToken??null)))}logout(){this.#i.set(!0),this.#e.postApiV1AuthRefreshLogout().pipe(e(1),a(()=>{this.#i.set(!1),this.#t.set(null),this.#s.navigate(["/login"])})).subscribe()}static \u0275fac=function(s){return new(s||i)};static \u0275prov=u({token:i,factory:i.\u0275fac,providedIn:"root"})};export{c as a};
|
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-
|
|
23
|
+
<link rel="modulepreload" href="chunk-M27H5SJL.js"><link rel="modulepreload" href="chunk-PD4M6YP7.js"><link rel="modulepreload" href="chunk-T5I4AY74.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-JPI7I2SR.js" type="module"></script></body>
|
|
24
24
|
</html>
|
package/main-JPI7I2SR.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{b as se,c as ie}from"./chunk-M27H5SJL.js";import{a as N}from"./chunk-PD4M6YP7.js";import{a as w}from"./chunk-T5I4AY74.js";import{a as b}from"./chunk-EXAIEGUA.js";import{a as y}from"./chunk-PIVMNQL6.js";import{d as te}from"./chunk-O2MZ5CAQ.js";import{b as Z,c as Q,f as Y,g as ee}from"./chunk-J76HBC5J.js";import{a as X}from"./chunk-MSK2MH2K.js";import{c as oe}from"./chunk-ZTSITRHY.js";import{a as $,b as z,d as B,e as _,f as q}from"./chunk-NJSJNACP.js";import{a as re}from"./chunk-BSZZLSIX.js";import{ua as K}from"./chunk-BUARZS4A.js";import{b as ne}from"./chunk-O53NVQ2A.js";import{Bc as D,Cc as G,Eb as F,G as C,M as j,Mc as J,O as S,Q as P,U as R,X as H,Ya as d,_ as n,d as L,eb as W,ka as U,m as k,q as V,y as E,z as O}from"./chunk-VGQ6X3AL.js";import"./chunk-C6Q5SG76.js";var T=class e{#o=n(y);#s=n(b);ngOnInit(){this.#s.fetchConfig(),this.#o.clearAllNotCurrentVersion()}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=W({type:e,selectors:[["app-root"]],decls:1,vars:0,template:function(t,r){t&1&&F(0,"router-outlet")},dependencies:[Z],encapsulation:2})};var pe={production:!0,baseUrl:"/api",machineServerUrl:"${WS_URL}",defaultTimeout:3e4};var u=new H("ENVIRONMENT");var I=class e{#o=n(te);isLoaded=d(!1);webmodules=d(null);preload(o=!1){let t=this.#o.getApiV1Webmodules().pipe(P(r=>this.webmodules.set(r)),C(()=>this.isLoaded.set(!0)));if(o)return t;t.subscribe()}static \u0275fac=function(t){return new(t||e)};static \u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})};var he=()=>{let e=n(w);return e.token()?!0:e.refreshToken().pipe(V(()=>!0))},fe=()=>{let e=n(b),o=n(U),t=[o.get(N).preload(!0),o.get(N).preloadFilterGroups(!0),o.get(I).preload(!0)];return e.configLoaded===null?E(t):e.configLoaded?.pipe(S(()=>E(t)))},ce=[{path:"",children:[{path:"login",canActivate:[],loadComponent:()=>import("./chunk-34N3NDDX.js")},{path:"logout",loadComponent:()=>import("./chunk-HARDXXQK.js")},{path:"",canActivate:[he],children:[{path:"",canActivate:[fe],loadComponent:()=>import("./chunk-4N2WKEQR.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-FI43YAHP.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 M=null,le=(e,o)=>{let t=n(w),r=n(Q),c=n(y),i=n(u),m=c.getItem("locale"),s=n(oe),p=se(m),f=e.url==="/api/v1/auth/login",l=e;if(t.token()&&e.url.startsWith(i.baseUrl)){let a=e.headers.set("Authorization",`Bearer ${t.token()}`);m&&m!=="en-US"&&(a=a.set("X-Ui-Language",p)),l=e.clone({headers:a})}return o(l).pipe(O(a=>{if(s.error(a.message),!f&&a.status===401&&!M&&(M=t.refreshToken().pipe(j())),!f&&a.status===401)return M.pipe(S(()=>o(e.clone({headers:e.headers.set("Authorization",`Bearer ${t.token()}`)}))),O(g=>(r.navigate(["/logout"]),k(()=>g))),C(()=>M=null));let h=`Error Code: ${a.status}, Message: ${a.message}`;return k(()=>({error:a,message:h}))}))};var ge="1.0.0",me="portal-proxy-client",ye=1,A=class e{#o=1e3;#s=n(u);#t=d("disconnected");#l=d(this.#o);#i=d(!1);#n=d(!1);#a=d(null);isConnectedToMachineServer=this.#n.asReadonly();wsState=this.#t.asReadonly();#p=[];#r={};#e=null;#m=new TextDecoder("utf-8");#c=null;#d=J(()=>{let o=this.#i(),t=this.#l(),r=this.#a();if(!r||!o||!t||t<this.#o){this.#c&&window.clearInterval(this.#c);return}this.#c=window.setInterval(()=>{this.connectToMachineServer(r)},t)});utf8Atob(o){let t=Uint8Array.from(atob(o),c=>c.charCodeAt(0)),r=this.#m.decode(t);return r?JSON.parse(r):null}connectToMachineServer(o,t){let r=t?.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(o),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 s={token:o,publicKey:"",clientVersion:ge,protocolVersion:ye},p=this.createResponse(i,"authportal",s);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 m=JSON.parse(i.payload??"");if(m.accepted===!1){this.disconnectFromMachineServer("Authentication failed");return}for(this.#t.set("authenticated"),this.#n.set(!0);this.#p.length>0;){let s=this.#p.pop();s&&this.#r[s.messageId]&&this.activateCommand(s)}}else if(this.wsState()==="authenticated"){if(i.type!=="command"){console.warn(`Unexpected message type, expected 'command' but got '${i.type}'`);return}let s=this.#r[i.messageId];if(s){if(i.errorMessage){s.reject(i.errorMessage);return}else{let p=JSON.parse(i.payload??"");p.body=p?.body==null?null:this.utf8Atob(p.body),s.resolve(p)}delete this.#r[i.messageId],window.clearTimeout(s.timer)}}})}disconnectFromMachineServer(o=null){o&&console.error(o),this.#e?.close(),this.#e=null,this.#t.set("disconnected"),this.#n.set(!1)}createResponse(o,t,r){let c={from:me,to:o.from,type:t,messageId:o.messageId,payload:JSON.stringify(r)};return JSON.stringify(c)}sendCommand(o,t,r,c,i,m,s=5e3){return(this.wsState()==="disconnected"||this.wsState()==="error")&&this.connectToMachineServer(o),new Promise((p,f)=>{let l=crypto.randomUUID(),h={from:me,to:t,type:"command",messageId:l,payload:JSON.stringify({method:r,path:c,body:i,headers:m})},g={resolve:p,reject:f,timer:window.setTimeout(()=>{let v=this.#r[l];v&&(delete this.#r[l],v.reject("Timeout"))},s)};this.#r[l]=g,this.#n()?this.activateCommand(h):this.#p.push(h)})}activateCommand(o){this.#e?.send(JSON.stringify(o))}static \u0275fac=function(t){return new(t||e)};static \u0275prov=R({token:e,factory:e.\u0275fac,providedIn:"root"})};function be(e){if(typeof e!="string")return null;let t=new TextEncoder().encode(e);return window.btoa(String.fromCharCode(...t))}var de=(e,o)=>{let r=n(b).config(),c=n(u);if(r===null)return o(e);let i=n(A),m=be(e.body),s={};e.headers.keys().forEach(a=>{s[a]=e.headers.get(a)??""});let p=e.headers.get("timeout"),f=p!==null?parseInt(p):c.defaultTimeout,l=i.sendCommand(r.accessToken,r.clientId,e.method,e.url,m,s,f);return new L(a=>{l.then(h=>{let g=new $;s!=null&&Object.keys(s).forEach(x=>{g.set(x,s[x])});let v=new z({body:h.body,status:h.code,statusText:"OK",headers:g});a.next(v),a.complete()})})};var ue={providers:[D(),Y(ce,ee()),B(q(),_([de,le])),y,{provide:u,useValue:pe},{provide:G,useValue:ie()},ne,K,re]};X(T,ue);
|
package/package.json
CHANGED
package/chunk-4MGFY2JV.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as M}from"./chunk-YT3L2PHL.js";import"./chunk-PIVMNQL6.js";import"./chunk-O2MZ5CAQ.js";import"./chunk-J76HBC5J.js";import"./chunk-MSK2MH2K.js";import{g as h}from"./chunk-ZTSITRHY.js";import"./chunk-NJSJNACP.js";import"./chunk-BUARZS4A.js";import{Cb as t,Db as i,Eb as g,Qb as l,Ra as u,Wb as C,Xb as c,_ as m,eb as s,hc as O,kb as _,yb as f}from"./chunk-VGQ6X3AL.js";import"./chunk-C6Q5SG76.js";var v=["*",[["","footer",""]]],T=["*","[footer]"],r=class n{static \u0275fac=function(e){return new(e||n)};static \u0275cmp=s({type:n,selectors:[["app-custom-card"]],ngContentSelectors:T,decls:11,vars:0,consts:[[1,"card"],["src","/assets/noise/auth-noise.svg",1,"noise"],[1,"header-title"],["src","/assets/duplicati/duplicati.svg","alt",""],[1,"bg"]],template:function(e,a){e&1&&(C(v),t(0,"div",0),g(1,"img",1),t(2,"header")(3,"div",2),g(4,"img",3),O(5," Duplicati "),i()(),t(6,"main"),c(7),t(8,"footer"),c(9,1),i()()(),g(10,"div",4))},styles:['[_nghost-%COMP%]{height:100vh;width:100vw;display:flex;align-items:center;justify-content:center;background-color:var(--base-level-20)}body.dark [_nghost-%COMP%] .card[_ngcontent-%COMP%]:before{background:radial-gradient(rgba(var(--primary-rgb-900),1),#0000 60%)}.card[_ngcontent-%COMP%]{max-width:480px;width:100%;position:relative;z-index:100;background-color:var(--base-level-10);border-radius:var(--shape-5);box-shadow:var(--box-shadow-40);border:1px solid var(--base-level-30);overflow:hidden}.card[_ngcontent-%COMP%]:before{content:"";position:absolute;height:480px;transform:translateY(-285px);left:0;right:0;z-index:-2;background:radial-gradient(rgba(var(--primary-rgb-100),1),#0000 60%)}.card[_ngcontent-%COMP%] img.noise[_ngcontent-%COMP%]{position:absolute;height:480px;width:100%;transform:translateY(-285px);left:0;right:0;z-index:-1;mask-image:radial-gradient(#000,#0000 60%)}header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;padding:2rem 2rem 0;gap:12px;position:relative;z-index:10}.header-title[_ngcontent-%COMP%]{font:var(--title-30);display:flex;align-items:center;gap:10px}.header-title[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:28px;filter:drop-shadow(0 2px 3px rgba(0,0,0,.3))}main[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;padding:2rem;gap:2.5rem;position:relative;z-index:10}main[_ngcontent-%COMP%] footer[_ngcontent-%COMP%]{font:var(--paragraph-40);color:var(--base-level-60R);text-align:center;text-wrap:balance}.bg[_ngcontent-%COMP%]{position:fixed;inset:0;width:100vw;height:100vh;background-image:url(/assets/backgrounds/base-bg.svg);background-size:cover;background-position:center;background-repeat:no-repeat}body.dark[_ngcontent-%COMP%] .bg[_ngcontent-%COMP%]{opacity:1}footer[_ngcontent-%COMP%]:empty{display:none}'],changeDetection:0})};function x(n,o){n&1&&(t(0,"h3"),l(1,0),i())}function y(n,o){n&1&&(t(0,"h3"),l(1,1),i(),t(2,"button",3),l(3,2),i())}var d=class n{#e=m(M);isLoggingOut=this.#e.isLoggingOut;ngOnInit(){this.#e.logout()}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=s({type:n,selectors:[["app-logout"]],decls:3,vars:1,consts:()=>{let o;o=$localize`Logging out...`;let e;e=$localize`You have successfully logged out your being redirected to login page.`;let a;return a=$localize`Go to login page`,[o,e,a,["spk-button","","routerLink","/",1,"raised","primary"]]},template:function(e,a){e&1&&(t(0,"app-custom-card"),_(1,x,2,0,"h3")(2,y,4,0),i()),e&2&&(u(),f(a.isLoggingOut()?1:2))},dependencies:[r,h],styles:["[_nghost-%COMP%]{display:block}"],changeDetection:0})};export{d as default};
|
package/chunk-AX4MPJ65.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as F}from"./chunk-YT3L2PHL.js";import"./chunk-PIVMNQL6.js";import{b as h,c as N,d as S,e as b,h as w,l as y,o as L,p as M,r as P}from"./chunk-OROSSCXB.js";import"./chunk-O2MZ5CAQ.js";import{c as C}from"./chunk-J76HBC5J.js";import"./chunk-MSK2MH2K.js";import{a as v,g as O,l as E}from"./chunk-ZTSITRHY.js";import"./chunk-NJSJNACP.js";import"./chunk-BUARZS4A.js";import{Cb as t,Db as i,Eb as f,G as p,Ra as m,Ub as _,Ya as d,_ as s,eb as c,hc as n,tb as u,vb as g}from"./chunk-VGQ6X3AL.js";import"./chunk-C6Q5SG76.js";var G=new M,a=class l{#e=s(C);#t=s(F);isLoading=d(!1);loginForm=G.group({pass:G.control("",N.required)});submit(){let e=this.loginForm.value.pass;e&&(this.isLoading.set(!0),this.#t.login(e).pipe(p(()=>this.isLoading.set(!1))).subscribe({next:()=>this.#e.navigate(["/"])}))}static \u0275fac=function(o){return new(o||l)};static \u0275cmp=c({type:l,selectors:[["app-login"]],decls:13,vars:3,consts:()=>{let e;return e=$localize`Enter your password`,[[3,"submit","formGroup"],[1,"login-row"],["for","password"],["href","https://docs.duplicati.com/detailed-descriptions/duplicati-access-password","target","_blank","rel","noopener noreferrer"],["type","password","name","password","autocomplete","current-password","placeholder",e,"tabindex","1","formControlName","pass"],["spk-button","","type","submit",1,"raised","primary"]]},template:function(o,r){o&1&&(t(0,"form",0),_("submit",function(){return r.submit()}),t(1,"div",1)(2,"spk-form-field")(3,"label",2),n(4," Password "),t(5,"a",3)(6,"spk-icon"),n(7,"question"),i()()(),f(8,"input",4),i(),t(9,"button",5),n(10," Login "),t(11,"spk-icon"),n(12,"arrow-right"),i()()()()),o&2&&(u("formGroup",r.loginForm),m(9),g("loader",r.isLoading()))},dependencies:[P,w,h,S,b,y,L,E,v,O],styles:["[_nghost-%COMP%]{display:block}form[_ngcontent-%COMP%]{width:100vw;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem}h3[_ngcontent-%COMP%]{font:var(--title-30)}.login-row[_ngcontent-%COMP%]{display:flex;align-items:flex-end;gap:.5rem}"],changeDetection:0})};export{a as default};
|
package/chunk-YT3L2PHL.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{a as c}from"./chunk-PIVMNQL6.js";import{b as m}from"./chunk-O2MZ5CAQ.js";import{c as u}from"./chunk-J76HBC5J.js";import{D as e,G as l,Mc as h,Q as i,U as a,Ya as o,_ as s}from"./chunk-VGQ6X3AL.js";var p=class r{#e=s(c);#i=s(u);#s=s(m);#t=o(this.#e.getItemParsed("token")??null);#r=o(this.#e.getItemParsed("tokenSetTime")??null);#o=o(!1);tokenSetTime=this.#r.asReadonly();token=this.#t.asReadonly();isLoggingOut=this.#o.asReadonly();#n=h(()=>{if(!this.#t()){this.#e.clearAll(),this.#i.navigate(["/login"]);return}let t=Date.now();this.#e.setItemParsed("tokenSetTime",t),this.#e.setItemParsed("token",this.#t()),this.#r.set(this.#t()?t:null)});login(t="helloworld"){return this.#s.postApiV1AuthLogin({requestBody:{Password:t,RememberMe:!0}}).pipe(e(1),i(n=>this.#t.set(n.AccessToken??null)))}refreshToken(){return this.#s.postApiV1AuthRefresh().pipe(e(1),i(t=>this.#t.set(t.AccessToken??null)))}logout(){this.#o.set(!0),this.#s.postApiV1AuthRefreshLogout().pipe(e(1),l(()=>this.#o.set(!1)),i(t=>{this.#t.set(null),this.#e.clearAll(),this.#i.navigate(["/login"])})).subscribe({error:t=>{this.#t.set(null),this.#e.clearAll(),this.#i.navigate(["/login"])}})}static \u0275fac=function(n){return new(n||r)};static \u0275prov=a({token:r,factory:r.\u0275fac,providedIn:"root"})};export{p as a};
|
package/main-UKLCRGBL.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
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-4N2WKEQR.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-E36Y2NND.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);
|