@duplicati/ngclient 0.0.63 → 0.0.64

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