@duplicati/ngclient 0.0.210 → 0.0.212

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.
Files changed (133) hide show
  1. package/assets/sh.woff2 +0 -0
  2. package/{chunk-SUY5AQLW.js → chunk-22PELS6R.js} +1 -1
  3. package/chunk-2A5USVIH.js +1 -0
  4. package/{chunk-DMMZWQEZ.js → chunk-2D2IMXRC.js} +1 -1
  5. package/chunk-2JEQ7BV6.js +1 -0
  6. package/{chunk-U3SGWHNI.js → chunk-2NLWVJNK.js} +1 -1
  7. package/{chunk-RFB5A3B7.js → chunk-35APLYI4.js} +1 -1
  8. package/chunk-36UMECQ6.js +1 -0
  9. package/{chunk-IUJGDYFS.js → chunk-3AZTY4MH.js} +1 -1
  10. package/chunk-3PUCEFO5.js +1 -0
  11. package/{chunk-LGILJ5LY.js → chunk-3XCT4PYH.js} +1 -1
  12. package/{chunk-GVXQIOKE.js → chunk-52REVNJZ.js} +1 -1
  13. package/chunk-5ENU22GJ.js +1 -0
  14. package/{chunk-76USHURS.js → chunk-5FQ5SDPZ.js} +1 -1
  15. package/{chunk-ITA7DTN3.js → chunk-5L2OOKRZ.js} +1 -1
  16. package/chunk-5RK6PXUG.js +1 -0
  17. package/chunk-6DZ74HAA.js +1 -0
  18. package/chunk-6EOMDYWB.js +1 -0
  19. package/chunk-6HSYT4DG.js +11 -0
  20. package/{chunk-M7QNSQM2.js → chunk-7735MTTP.js} +1 -1
  21. package/{chunk-SLS3DCJP.js → chunk-ADB5QRUO.js} +1 -1
  22. package/{chunk-C6RVYQ4M.js → chunk-AMSFSVKQ.js} +1 -1
  23. package/{chunk-CKVJ36E5.js → chunk-AOMXVXMB.js} +1 -1
  24. package/{chunk-IZCDGVXJ.js → chunk-APAWDC4O.js} +1 -1
  25. package/chunk-AZRNX5LU.js +1 -0
  26. package/{chunk-OQ6BKP5N.js → chunk-BDQJFOCO.js} +1 -1
  27. package/chunk-BME6TJIR.js +1 -0
  28. package/{chunk-NBTTYKXH.js → chunk-BRL4YYWO.js} +1 -1
  29. package/{chunk-M3JOG5RD.js → chunk-CJVAK3WV.js} +1 -1
  30. package/{chunk-NYX7YT7G.js → chunk-CNYY7AQK.js} +1 -1
  31. package/{chunk-WOZTK7S5.js → chunk-CYY7RVDE.js} +1 -1
  32. package/{chunk-3KMV4PTJ.js → chunk-DTIGWCAE.js} +1 -1
  33. package/{chunk-X64LSE6Y.js → chunk-EQNDYV43.js} +1 -1
  34. package/chunk-EU6N52DH.js +1 -0
  35. package/{chunk-JFUWTLM7.js → chunk-FMDSOHVR.js} +1 -1
  36. package/{chunk-VAQ435AR.js → chunk-FSHBOASN.js} +1 -1
  37. package/{chunk-KXBEW3N2.js → chunk-G6V7E6VM.js} +1 -1
  38. package/{chunk-VTFVTC7O.js → chunk-GE3DHZ5E.js} +1 -1
  39. package/chunk-GO22QPW4.js +1 -0
  40. package/{chunk-YQD4QIGG.js → chunk-HHDCI6IF.js} +1 -1
  41. package/chunk-HVFJYWAN.js +1 -0
  42. package/chunk-IJY7JGOL.js +1 -0
  43. package/{chunk-BKQA64HZ.js → chunk-J6WVOYQ6.js} +1 -1
  44. package/{chunk-S2F2BNOG.js → chunk-JTPUS6BT.js} +1 -1
  45. package/{chunk-3ZCJK7PY.js → chunk-KHFOQETZ.js} +1 -1
  46. package/{chunk-BMWZYMK6.js → chunk-KHZ5AXGT.js} +1 -1
  47. package/chunk-L26PO2OC.js +1 -0
  48. package/chunk-L2QOWZDR.js +1 -0
  49. package/chunk-LOFKRPRH.js +1 -0
  50. package/{chunk-DWFQAX4H.js → chunk-LU7TIW3P.js} +1 -1
  51. package/chunk-M5RTYP7N.js +2 -0
  52. package/{chunk-I4XRVBRQ.js → chunk-MRSBKQQM.js} +1 -1
  53. package/{chunk-BDC5JQVQ.js → chunk-N5ZBB5VR.js} +1 -1
  54. package/chunk-NCXKMSRH.js +1 -0
  55. package/chunk-NK2B3YKP.js +1 -0
  56. package/{chunk-YE7IXREK.js → chunk-NRQEZLYN.js} +1 -1
  57. package/{chunk-NXF5BMPG.js → chunk-OBF6ZSYT.js} +1 -1
  58. package/chunk-OO32MPRQ.js +1 -0
  59. package/{chunk-AQWULDGL.js → chunk-OZEGNE5W.js} +1 -1
  60. package/chunk-PHN2W7W7.js +1 -0
  61. package/{chunk-2LSZ2I43.js → chunk-QAQMMCTH.js} +1 -1
  62. package/{chunk-GROPRXXJ.js → chunk-QQLV7J6T.js} +1 -1
  63. package/chunk-QRABW3YV.js +1 -0
  64. package/{chunk-I2BAH6NC.js → chunk-QRLREAIK.js} +1 -1
  65. package/chunk-QUXPHHDZ.js +1 -0
  66. package/{chunk-BEXYTIOL.js → chunk-R6TFME5I.js} +1 -1
  67. package/{chunk-ZVTMKBV5.js → chunk-S3FBC24H.js} +1 -1
  68. package/{chunk-LP2DMTA7.js → chunk-SHZXLIG5.js} +1 -1
  69. package/chunk-SI4C7DCS.js +1 -0
  70. package/chunk-ST6HBZ55.js +1 -0
  71. package/{chunk-T3YMO3FB.js → chunk-STGN2W4U.js} +1 -1
  72. package/chunk-TJNL6F5S.js +1 -0
  73. package/{chunk-UQLHXE6V.js → chunk-TVA237PQ.js} +1 -1
  74. package/{chunk-NBPZDFGF.js → chunk-TZEOQBIX.js} +2 -2
  75. package/chunk-UH2E7MMT.js +4 -0
  76. package/{chunk-FZQEPDIF.js → chunk-V2NDJVRA.js} +1 -1
  77. package/{chunk-JIJGVYNW.js → chunk-VDHWNNO7.js} +1 -1
  78. package/chunk-VEXVMT3W.js +1 -0
  79. package/{chunk-3A4HTZ7B.js → chunk-VGBTP4QP.js} +1 -1
  80. package/{chunk-EVMEYZB7.js → chunk-VI7MBIGT.js} +1 -1
  81. package/{chunk-LSIAE7ZL.js → chunk-WALKMFYR.js} +1 -1
  82. package/chunk-WLU7TGVD.js +1 -0
  83. package/chunk-WPVSY5MT.js +2 -0
  84. package/chunk-WT5O6MNC.js +1 -0
  85. package/{chunk-YF6ULZXZ.js → chunk-XCVBN7EK.js} +1 -1
  86. package/chunk-XZNYCTQB.js +1 -0
  87. package/chunk-Y3BYCXUX.js +1 -0
  88. package/{chunk-XHUQYWAM.js → chunk-Y4EMWRGE.js} +1 -1
  89. package/{chunk-LJBFPDG2.js → chunk-YGHS3INE.js} +1 -1
  90. package/{chunk-FKYRYVJD.js → chunk-YMUS7QSB.js} +1 -1
  91. package/{chunk-AYOFR344.js → chunk-ZXQSQRKN.js} +1 -1
  92. package/index.html +2 -2
  93. package/main-SIS2YGAN.js +1 -0
  94. package/package.json +1 -1
  95. package/ship-ui-assets/mcp/components.json +118 -47
  96. package/styles-43GHZ572.css +1 -0
  97. package/chunk-23BFPX3M.js +0 -2
  98. package/chunk-2DOT6WAE.js +0 -1
  99. package/chunk-2FD4SR65.js +0 -1
  100. package/chunk-3ULPLOSF.js +0 -1
  101. package/chunk-562BU33Q.js +0 -1
  102. package/chunk-7FYL7MVA.js +0 -1
  103. package/chunk-CJ5SZZQC.js +0 -1
  104. package/chunk-DJAQY2GM.js +0 -1
  105. package/chunk-DJJ3VITJ.js +0 -1
  106. package/chunk-DKA7IP53.js +0 -1
  107. package/chunk-ERITO7WM.js +0 -4
  108. package/chunk-F3TYSZ53.js +0 -1
  109. package/chunk-FG4GOBKA.js +0 -1
  110. package/chunk-G6ZV6LAU.js +0 -1
  111. package/chunk-I6Y22V2Q.js +0 -1
  112. package/chunk-I7U3XXJD.js +0 -1
  113. package/chunk-IGEX5B3E.js +0 -1
  114. package/chunk-INI4AJEU.js +0 -1
  115. package/chunk-KNB7LCAL.js +0 -1
  116. package/chunk-LTVI3WYF.js +0 -1
  117. package/chunk-MYHC4Y56.js +0 -1
  118. package/chunk-NDLPNBGE.js +0 -1
  119. package/chunk-PAPOSE5G.js +0 -1
  120. package/chunk-PRBKV7LX.js +0 -1
  121. package/chunk-PUBEHQ4W.js +0 -1
  122. package/chunk-Q72Y55NB.js +0 -1
  123. package/chunk-TDEVA3XM.js +0 -11
  124. package/chunk-UCR4I5MD.js +0 -1
  125. package/chunk-V43VAZTT.js +0 -1
  126. package/chunk-VOJGEOOO.js +0 -1
  127. package/chunk-VUABEJRL.js +0 -1
  128. package/chunk-W4HWOC3K.js +0 -1
  129. package/chunk-WQVQC2MC.js +0 -2
  130. package/chunk-YCLTQEU6.js +0 -1
  131. package/chunk-ZOOFKMMI.js +0 -1
  132. package/main-IO5OKXBW.js +0 -1
  133. package/styles-6WG7TD6T.css +0 -1
@@ -1 +1 @@
1
- import{a as K}from"./chunk-YF6ULZXZ.js";import"./chunk-6Q6SSTBK.js";import{a as z}from"./chunk-RFB5A3B7.js";import"./chunk-DWFQAX4H.js";import"./chunk-LTVI3WYF.js";import"./chunk-BEXYTIOL.js";import"./chunk-DKA7IP53.js";import{B as U,H as x,I as V,W as j,b as E,c as A,e as R,f as b,j as y,p as B,q as $,r as v,t as G,v as k,x as L,z as w}from"./chunk-YCLTQEU6.js";import{d as J}from"./chunk-2LSZ2I43.js";import{d as O,e as M}from"./chunk-BMWZYMK6.js";import"./chunk-7FYL7MVA.js";import"./chunk-NBTTYKXH.js";import"./chunk-OQ6BKP5N.js";import"./chunk-VAQ435AR.js";import{Ab as p,Bb as a,Cb as i,Db as u,E as T,Ra as l,Rb as D,Sb as h,Tb as _,Wb as I,Xb as d,Z as s,eb as f,ic as P,oa as c,ub as C,vb as S,zc as N}from"./chunk-ERITO7WM.js";import"./chunk-7CGTOI24.js";var X=()=>["/"];function H(m,o){m&1&&(a(0,"sh-form-field")(1,"label",14),_(2,3),i(),u(3,"input",15),i())}var F=new v,g=class m{#t=s(L);#o=s(w);#i=s(J);#n=s(K);#e=s(O);isImporting=c(!1);isSecureFile=c(!1);isValid=c(!1);importForm=F.group({config:F.control(""),cmdline:F.control(!1),import_metadata:F.control(!1),direct:F.control(!1),passphrase:F.control("")});selectedFile=c([]);onFileDropped(o){let e=o[0];if(e){let t=new FileReader;this.isSecureFile.set(e.type!=="application/json"),t.onload=this.#r.bind(this),t.readAsArrayBuffer(e)}}#r(o){let e=o.target?.result;this.isSecureFile.set(this.#a(e)!=="json"),this.importForm.patchValue({config:this.#s(e)}),this.isValid.set(this.importForm.value.config!=="")}#a(o){let e=new Uint8Array(o);if(e.length>=5&&e[0]===65&&e[1]===69&&e[2]===83&&e[4]===0)return"aes";try{let t=new TextDecoder().decode(o),n=JSON.parse(t);if(typeof n=="object"&&n!==null)return"json"}catch{}return"unknown"}#s(o){let e=new Uint8Array(o),t=e.byteLength,n="";for(let r=0;r<t;r++)n+=String.fromCharCode(e[r]);return btoa(n)}submit(){this.isImporting.set(!0);let o=this.importForm.value.direct??!1;this.#i.postApiV1BackupsImport({requestBody:this.importForm.value}).pipe(T(()=>this.isImporting.set(!1))).subscribe({next:e=>{if(o){this.#t.success("Backup imported successfully."),this.#e.navigate(["/"]);return}let t=this.#n.addDraftBackup(e.data);this.#e.navigate(["/backup-draft",t])},error:e=>{let t=e.message||$localize`Unknown error`;this.#o.open(z,{data:{title:$localize`Failed to import backup`,message:t,confirmText:$localize`OK`,cancelText:void 0}})}})}static \u0275fac=function(e){return new(e||m)};static \u0275cmp=f({type:m,selectors:[["app-import"]],decls:19,vars:8,consts:()=>{let o;o=$localize` Import backup configuration ${"\uFFFD#3\uFFFD"}:START_TAG_DIV:${"\uFFFD#4\uFFFD"}:START_TAG_BUTTON:${"[\uFFFD#5\uFFFD|\uFFFD#7\uFFFD]"}:START_TAG_SH_ICON:arrow-left${"[\uFFFD/#5\uFFFD|\uFFFD/#7\uFFFD]"}:CLOSE_TAG_SH_ICON: Back ${"[\uFFFD/#4\uFFFD|\uFFFD/#6\uFFFD]"}:CLOSE_TAG_BUTTON:${"\uFFFD#6\uFFFD"}:START_TAG_BUTTON_1:${"[\uFFFD#5\uFFFD|\uFFFD#7\uFFFD]"}:START_TAG_SH_ICON:download-simple${"[\uFFFD/#5\uFFFD|\uFFFD/#7\uFFFD]"}:CLOSE_TAG_SH_ICON: Import ${"[\uFFFD/#4\uFFFD|\uFFFD/#6\uFFFD]"}:CLOSE_TAG_BUTTON:${"\uFFFD/#3\uFFFD"}:CLOSE_TAG_DIV:`,o=I(o);let e;e=$localize`Import Metadata`;let t;t=$localize`Save now`;let n;return n=$localize`Passphrase`,[o,e,t,n,[1,"actions"],["shButton","","type","button",1,"outlined",3,"routerLink"],["shButton","","type","submit",1,"raised","primary",3,"click","disabled"],["autocomplete","off",3,"formGroup"],["accept",".json,.aes",3,"filesChange","files"],[1,"primary","raised"],["for","importMetadata"],["type","checkbox","formControlName","import_metadata"],["for","direct"],["type","checkbox","formControlName","direct"],["for","passphrase"],["type","password","autocomplete","disabled","formControlName","passphrase"]]},template:function(e,t){e&1&&(a(0,"header")(1,"h3"),D(2,0),a(3,"div",4)(4,"button",5),u(5,"sh-icon"),i(),a(6,"button",6),d("click",function(){return t.submit()}),u(7,"sh-icon"),i()(),h(),i()(),a(8,"form",7)(9,"sh-file-upload",8),d("filesChange",function(r){return t.onFileDropped(r)}),i(),C(10,H,4,0,"sh-form-field"),a(11,"sh-toggle",9)(12,"label",10),_(13,1),i(),u(14,"input",11),i(),a(15,"sh-toggle",9)(16,"label",12),_(17,2),i(),u(18,"input",13),i()()),e&2&&(l(4),p("routerLink",N(7,X)),l(2),P("loading",t.isImporting()),p("disabled",t.isImporting()||!t.isValid()),l(2),p("formGroup",t.importForm),l(),p("files",t.selectedFile()),l(),S(t.isSecureFile()?10:-1))},dependencies:[G,y,A,E,R,b,$,B,M,x,k,U,j,V],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;gap:2rem;padding:3rem}h3[_ngcontent-%COMP%]{font:var(--title-30);display:flex;align-items:center;justify-content:space-between}.actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem;max-width:31.25rem}sh-file-upload[_ngcontent-%COMP%]{width:100%}"],changeDetection:0})};export{g as default};
1
+ import{a as K}from"./chunk-XCVBN7EK.js";import"./chunk-6Q6SSTBK.js";import{a as z}from"./chunk-35APLYI4.js";import"./chunk-LU7TIW3P.js";import"./chunk-XZNYCTQB.js";import"./chunk-R6TFME5I.js";import"./chunk-AZRNX5LU.js";import{B as U,H as x,I as V,W as j,b as E,c as A,e as R,f as b,j as y,p as B,q as $,r as v,t as G,v as k,x as L,z as w}from"./chunk-NCXKMSRH.js";import{d as J}from"./chunk-QAQMMCTH.js";import{d as O,e as M}from"./chunk-KHZ5AXGT.js";import"./chunk-L2QOWZDR.js";import"./chunk-BRL4YYWO.js";import"./chunk-BDQJFOCO.js";import"./chunk-FSHBOASN.js";import{Bc as N,Cb as p,Db as a,Eb as i,F as T,Fb as u,Sa as l,Tb as D,Ub as h,Vb as _,Yb as I,Zb as d,_ as s,gb as f,kc as P,pa as c,wb as C,xb as S}from"./chunk-UH2E7MMT.js";import"./chunk-7CGTOI24.js";var X=()=>["/"];function H(m,o){m&1&&(a(0,"sh-form-field")(1,"label",14),_(2,3),i(),u(3,"input",15),i())}var F=new v,g=class m{#t=s(L);#o=s(w);#i=s(J);#n=s(K);#e=s(O);isImporting=c(!1);isSecureFile=c(!1);isValid=c(!1);importForm=F.group({config:F.control(""),cmdline:F.control(!1),import_metadata:F.control(!1),direct:F.control(!1),passphrase:F.control("")});selectedFile=c([]);onFileDropped(o){let e=o[0];if(e){let t=new FileReader;this.isSecureFile.set(e.type!=="application/json"),t.onload=this.#r.bind(this),t.readAsArrayBuffer(e)}}#r(o){let e=o.target?.result;this.isSecureFile.set(this.#a(e)!=="json"),this.importForm.patchValue({config:this.#s(e)}),this.isValid.set(this.importForm.value.config!=="")}#a(o){let e=new Uint8Array(o);if(e.length>=5&&e[0]===65&&e[1]===69&&e[2]===83&&e[4]===0)return"aes";try{let t=new TextDecoder().decode(o),n=JSON.parse(t);if(typeof n=="object"&&n!==null)return"json"}catch{}return"unknown"}#s(o){let e=new Uint8Array(o),t=e.byteLength,n="";for(let r=0;r<t;r++)n+=String.fromCharCode(e[r]);return btoa(n)}submit(){this.isImporting.set(!0);let o=this.importForm.value.direct??!1;this.#i.postApiV1BackupsImport({requestBody:this.importForm.value}).pipe(T(()=>this.isImporting.set(!1))).subscribe({next:e=>{if(o){this.#t.success("Backup imported successfully."),this.#e.navigate(["/"]);return}let t=this.#n.addDraftBackup(e.data);this.#e.navigate(["/backup-draft",t])},error:e=>{let t=e.message||$localize`Unknown error`;this.#o.open(z,{data:{title:$localize`Failed to import backup`,message:t,confirmText:$localize`OK`,cancelText:void 0}})}})}static \u0275fac=function(e){return new(e||m)};static \u0275cmp=f({type:m,selectors:[["app-import"]],decls:19,vars:8,consts:()=>{let o;o=$localize` Import backup configuration ${"\uFFFD#3\uFFFD"}:START_TAG_DIV:${"\uFFFD#4\uFFFD"}:START_TAG_BUTTON:${"[\uFFFD#5\uFFFD|\uFFFD#7\uFFFD]"}:START_TAG_SH_ICON:arrow-left${"[\uFFFD/#5\uFFFD|\uFFFD/#7\uFFFD]"}:CLOSE_TAG_SH_ICON: Back ${"[\uFFFD/#4\uFFFD|\uFFFD/#6\uFFFD]"}:CLOSE_TAG_BUTTON:${"\uFFFD#6\uFFFD"}:START_TAG_BUTTON_1:${"[\uFFFD#5\uFFFD|\uFFFD#7\uFFFD]"}:START_TAG_SH_ICON:download-simple${"[\uFFFD/#5\uFFFD|\uFFFD/#7\uFFFD]"}:CLOSE_TAG_SH_ICON: Import ${"[\uFFFD/#4\uFFFD|\uFFFD/#6\uFFFD]"}:CLOSE_TAG_BUTTON:${"\uFFFD/#3\uFFFD"}:CLOSE_TAG_DIV:`,o=I(o);let e;e=$localize`Import Metadata`;let t;t=$localize`Save now`;let n;return n=$localize`Passphrase`,[o,e,t,n,[1,"actions"],["shButton","","type","button",1,"outlined",3,"routerLink"],["shButton","","type","submit",1,"raised","primary",3,"click","disabled"],["autocomplete","off",3,"formGroup"],["accept",".json,.aes",3,"filesChange","files"],[1,"primary","raised"],["for","importMetadata"],["type","checkbox","formControlName","import_metadata"],["for","direct"],["type","checkbox","formControlName","direct"],["for","passphrase"],["type","password","autocomplete","disabled","formControlName","passphrase"]]},template:function(e,t){e&1&&(a(0,"header")(1,"h3"),D(2,0),a(3,"div",4)(4,"button",5),u(5,"sh-icon"),i(),a(6,"button",6),d("click",function(){return t.submit()}),u(7,"sh-icon"),i()(),h(),i()(),a(8,"form",7)(9,"sh-file-upload",8),d("filesChange",function(r){return t.onFileDropped(r)}),i(),C(10,H,4,0,"sh-form-field"),a(11,"sh-toggle",9)(12,"label",10),_(13,1),i(),u(14,"input",11),i(),a(15,"sh-toggle",9)(16,"label",12),_(17,2),i(),u(18,"input",13),i()()),e&2&&(l(4),p("routerLink",N(7,X)),l(2),P("loading",t.isImporting()),p("disabled",t.isImporting()||!t.isValid()),l(2),p("formGroup",t.importForm),l(),p("files",t.selectedFile()),l(),S(t.isSecureFile()?10:-1))},dependencies:[G,y,A,E,R,b,$,B,M,x,k,U,j,V],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;gap:2rem;padding:3rem}h3[_ngcontent-%COMP%]{font:var(--title-30);display:flex;align-items:center;justify-content:space-between}.actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem;max-width:31.25rem}sh-file-upload[_ngcontent-%COMP%]{width:100%}"],changeDetection:0})};export{g as default};
@@ -0,0 +1 @@
1
+ import{g as a,h as b,i as c,j as d}from"./chunk-6HSYT4DG.js";import"./chunk-5L2OOKRZ.js";import"./chunk-OO32MPRQ.js";import"./chunk-OBF6ZSYT.js";import"./chunk-6Q6SSTBK.js";import"./chunk-3AZTY4MH.js";import"./chunk-EQNDYV43.js";import"./chunk-35APLYI4.js";import"./chunk-YMUS7QSB.js";import"./chunk-ZXQSQRKN.js";import"./chunk-XZNYCTQB.js";import"./chunk-R6TFME5I.js";import"./chunk-AZRNX5LU.js";import"./chunk-NCXKMSRH.js";import"./chunk-QAQMMCTH.js";import"./chunk-KHZ5AXGT.js";import"./chunk-L2QOWZDR.js";import"./chunk-BRL4YYWO.js";import"./chunk-BDQJFOCO.js";import"./chunk-FSHBOASN.js";import"./chunk-UH2E7MMT.js";import"./chunk-7CGTOI24.js";export{a as SCHEDULE_DEFAULT_OPTIONS,c as SCHEDULE_FIELD_DEFAULTS,d as default,b as scheduleOptionToSchedule};
@@ -0,0 +1,2 @@
1
+ import{a as At}from"./chunk-52REVNJZ.js";import"./chunk-GO22QPW4.js";import{a as $t}from"./chunk-FMDSOHVR.js";import"./chunk-AOMXVXMB.js";import{a as yt}from"./chunk-3XCT4PYH.js";import"./chunk-Y4EMWRGE.js";import"./chunk-XCVBN7EK.js";import"./chunk-ADB5QRUO.js";import"./chunk-22PELS6R.js";import"./chunk-6Q6SSTBK.js";import"./chunk-MRSBKQQM.js";import{a as ee}from"./chunk-3AZTY4MH.js";import"./chunk-EQNDYV43.js";import{a as ae}from"./chunk-35APLYI4.js";import"./chunk-LU7TIW3P.js";import{a as x}from"./chunk-YMUS7QSB.js";import"./chunk-ZXQSQRKN.js";import"./chunk-XZNYCTQB.js";import{a as Ft}from"./chunk-R6TFME5I.js";import{a as Et,c as ut}from"./chunk-AZRNX5LU.js";import{B as D,E as mt,G as ft,H as Z,L as It,M as Mt,N as Pt,P as ht,W as Ot,Y as Rt,c as W,e as q,i as j,m as pt,s as K,t as Q,v as w,w as Y,z as Nt}from"./chunk-NCXKMSRH.js";import{d as Gt}from"./chunk-QAQMMCTH.js";import"./chunk-KHZ5AXGT.js";import"./chunk-L2QOWZDR.js";import"./chunk-BRL4YYWO.js";import"./chunk-BDQJFOCO.js";import"./chunk-FSHBOASN.js";import{$b as S,Bc as J,Cb as C,Db as s,Eb as o,F as G,Fb as m,Mb as I,Pa as _t,Rc as v,Sa as l,Tb as P,Ub as h,Vb as _,Wb as U,Xb as V,Yb as B,Yc as gt,Zb as d,_ as O,a as st,b as at,c as lt,da as u,ea as p,gb as b,gc as ct,hc as dt,kc as F,lb as oe,mb as rt,nc as $,oc as H,pa as c,pc as se,ra as k,sc as A,tb as Tt,tc as y,ub as St,uc as L,wb as g,xb as E,yc as Ct}from"./chunk-UH2E7MMT.js";import"./chunk-7CGTOI24.js";var Dt=["formRef"],xt=()=>[import("./chunk-BME6TJIR.js").then(n=>n.OptionsListComponent)];function kt(n,t){n&1&&(s(0,"sh-alert",3),_(1,1),o())}function Jt(n,t){if(n&1){let e=I();s(0,"app-options-list",5),L("optionsChange",function(a){u(e);let T=S();return y(T.settings,a)||(T.settings=a),p(a)}),o()}if(n&2){let e=S();A("options",e.settings),C("hasFreeTextSettings",!0)}}var X=class n{#e=O(x);#n=O(Gt);formRef=gt.required("formRef");settings=c([]);isSubmitting=c(!1);isLoadingOptions=c(!0);saved=c(!1);lastRecievedServerSettings=c({});serverSettingsEffect=k(()=>{let t=this.#e.serverSettings();if(t===void 0)return;this.lastRecievedServerSettings.set(t),this.isLoadingOptions.set(!0);let e=Object.entries(t);e.forEach(([i,a],T)=>{if(i.startsWith("--")){let f=i.substring(2);this.settings.update(N=>(N.some(M=>M.Name===f||M.Name===i)||N.push({Name:i,Value:a}),N))}T===e.length-1&&this.isLoadingOptions.set(!1)})});submit(){this.isSubmitting.set(!0);let t=this.settings(),e=this.lastRecievedServerSettings(),i=t.map(N=>N.Name?.startsWith("--")?N.Name:`--${N.Name}`),T=Object.keys(e).filter(N=>N.startsWith("--")).filter(N=>!i.includes(N)),f=t.reduce((N,M)=>{let R=M.Name?.startsWith("--")?M.Name:`--${M.Name}`;return N[R]=M.Value,N},{});T.forEach(N=>{f[N]=null}),this.#n.patchApiV1Serversettings({requestBody:f}).pipe(G(()=>this.isSubmitting.set(!1))).subscribe({next:()=>{this.#e.refreshServerSettings(),this.saved.set(!0),setTimeout(()=>{this.saved.set(!1)},3e3)}})}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=b({type:n,selectors:[["app-advanced-options-settings"]],viewQuery:function(e,i){e&1&&ct(i.formRef,Dt,5),e&2&&dt()},decls:8,vars:4,consts:()=>{let t;t=$localize`${"\uFFFD#4\uFFFD"}:START_TAG_SH_ICON:floppy-disk${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_SH_ICON: Save settings `;let e;return e=$localize`Settings saved`,[t,e,[1,"actions"],[1,"success"],["shButton","","type","button",1,"raised","primary",3,"click"],[3,"optionsChange","options","hasFreeTextSettings"]]},template:function(e,i){e&1&&(s(0,"div",2),g(1,kt,2,0,"sh-alert",3),s(2,"button",4),d("click",function(){return i.submit()}),P(3,0),m(4,"sh-icon"),h(),o()(),rt(5,Jt,1,2),Tt(6,5,xt)),e&2&&(l(),E(i.saved()?1:-1),l(),F("loading",i.isSubmitting()),l(4),St(!i.isLoadingOptions()))},dependencies:[Q,D,w,Y],styles:["[_nghost-%COMP%]{display:block;width:100%;max-width:40.625rem;justify-self:flex-end}.actions[_ngcontent-%COMP%]{display:flex;gap:.5rem;justify-content:flex-end;margin-bottom:.5rem}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.form-wrap[_ngcontent-%COMP%]{display:grid;grid-template-columns:2fr 2.5rem;gap:.5rem;align-items:flex-end}.remote-volume-wrap[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem}.remote-volume-wrap[_ngcontent-%COMP%] p.warning[_ngcontent-%COMP%]{color:#7d7d00}.row-inputs[_ngcontent-%COMP%]{display:flex;align-items:flex-end;gap:.5rem}.row-inputs[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{flex:1 0}.advanced-option[_ngcontent-%COMP%]{display:grid;gap:.5rem;grid-template-columns:1fr 1fr 2.5rem;align-items:flex-end}"],changeDetection:0})};function zt(n,t){if(n&1){let e=I();s(0,"sh-form-field",12)(1,"input",13),L("ngModelChange",function(a){u(e);let T=S(2);return y(T.registerUrl,a)||(T.registerUrl=a),p(a)}),o()(),s(2,"button",14),d("click",function(){u(e);let a=S(2);return p(a.register())}),_(3,0),o()}if(n&2){let e=S(2);l(),A("ngModel",e.registerUrl)}}function Ut(n,t){if(n&1&&(s(0,"div",9)(1,"label"),_(2,1),o(),s(3,"a",15),$(4),o()()),n&2){let e=S(2);l(3),C("href",Ct(e.claimUrl()),_t),l(),H(e.claimUrl())}}function Vt(n,t){n&1&&(s(0,"div",9)(1,"label"),_(2,2),o()())}function Bt(n,t){if(n&1){let e=I();s(0,"button",14),d("click",function(){u(e);let a=S(2);return p(a.cancel())}),_(1,3),o()}}function Ht(n,t){if(n&1){let e=I();s(0,"button",14),d("click",function(){u(e);let a=S(2);return p(a.disable())}),_(1,4),o()}}function Wt(n,t){if(n&1){let e=I();s(0,"button",14),d("click",function(){u(e);let a=S(2);return p(a.enable())}),_(1,5),o(),s(2,"button",16),d("click",function(){u(e);let a=S(2);return p(a.delete())}),_(3,6),o()}}function qt(n,t){n&1&&(P(0,7,1),m(1,"sh-icon"),h())}function jt(n,t){n&1&&(P(0,7,2),m(1,"sh-icon"),h())}function Kt(n,t){if(n&1){let e=I();s(0,"sh-chip",17),d("click",function(){u(e);let a=S(2);return p(a.copyReportingUrl())}),P(1,7),g(2,qt,2,0,"sh-icon")(3,jt,2,0,"sh-icon"),h(),o()}if(n&2){let e=S(2);l(2),E(e.copiedReportingUrl()===!0?2:3)}}function Qt(n,t){if(n&1&&(s(0,"div",8),g(1,zt,4,1),g(2,Ut,5,3,"div",9),g(3,Vt,3,0,"div",9),g(4,Bt,2,0,"button",10),g(5,Ht,2,0,"button",10),g(6,Wt,4,0),g(7,Kt,4,1,"sh-chip",11),o()),n&2){let e=S();l(),E(e.state()==="inactive"?1:-1),l(),E(e.state()==="registered"?2:-1),l(),E(e.state()==="registering"?3:-1),l(),E(e.state()==="registering"||e.state()==="registeringfaulted"||e.state()==="registered"?4:-1),l(),E(e.state()==="connected"||e.state()==="connecting"?5:-1),l(),E(e.state()==="disabled"?6:-1),l(),E(e.additionalReportingUrl()!==""?7:-1)}}var te=class n{#e=O(ee);#n=O(x);state=this.#e.state;claimUrl=this.#e.claimUrl;registerUrl=this.#e.registerUrl;additionalReportingUrl=v(()=>{let t=this.#n.serverSettings();return this.#e.state()==="inactive"?"":t&&t["additional-report-url"]||""});copiedReportingUrl=c(!1);ngOnInit(){this.#e.refreshRemoteControlStatus()}cancel(){this.#e.cancelRemoteRegistration()}register(){this.#e.beginRemoteRegistration()}disable(){this.#e.disableRemoteControl()}enable(){this.#e.enableRemoteControl()}delete(){this.#e.deleteRemoteControl()}copyReportingUrl(){let t=this.additionalReportingUrl();t&&(this.copiedReportingUrl.set(!0),setTimeout(()=>this.copiedReportingUrl.set(!1),2e3),navigator.clipboard.writeText(t))}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=b({type:n,selectors:[["app-remote-control"]],decls:1,vars:1,consts:()=>{let t;t=$localize`Register on console`;let e;e=$localize`Machine is now registered, open this link to add it to your account:`;let i;i=$localize`Registering, please wait...`;let a;a=$localize`Cancel registration`;let T;T=$localize`Disable console connection`;let f;f=$localize`Enable console connection`;let N;N=$localize` Delete console connection setup `;let M;return M=$localize` Reporting configured by server ${"\uFFFD*2:1\uFFFD"}:START_BLOCK_IF:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SH_ICON:check${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SH_ICON:${"\uFFFD/*2:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*3:2\uFFFD"}:START_BLOCK_ELSE:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SH_ICON:copy${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SH_ICON:${"\uFFFD/*3:2\uFFFD"}:CLOSE_BLOCK_ELSE:`,M=B(M),[t,e,i,a,T,f,N,M,[1,"field-row"],[1,"field-col"],["type","button","shButton","",1,"raised"],[1,"reporting-url","primary","simple"],["label","Registration URL","for","remoteControlRegisterUrl"],["type","text","sh-input","","id","remoteControlRegisterUrl","name","remoteControlRegisterUrl",3,"ngModelChange","ngModel"],["type","button","shButton","",1,"raised",3,"click"],["target","_blank",3,"href"],["type","button","shButton","",1,"raised","error",3,"click"],[1,"reporting-url","primary","simple",3,"click"]]},template:function(e,i){e&1&&g(0,Qt,8,7,"div",8),e&2&&E(i.state()!=="unknown"?0:-1)},dependencies:[K,W,q,j,Z,D,mt,w],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%] sh-form-field[_ngcontent-%COMP%], .field-row[_ngcontent-%COMP%] sh-select[_ngcontent-%COMP%]{flex:1 0}.reporting-url[_ngcontent-%COMP%]{cursor:pointer;-webkit-user-select:none;user-select:none;margin-top:.25rem}"],changeDetection:0})};function bt(...n){let t=c(...n);return Object.defineProperty(t,"value",{get:t.asReadonly(),set:t.set.bind(t)})}var ne=()=>({standalone:!0});function Yt(n,t){if(n&1&&(s(0,"label"),P(1,35),m(2,"sh-icon",85),h(),o()),n&2){let e=S(3);l(2),C("shTooltip",e.remoteControlTooltip())}}function Zt(n,t){if(n&1&&(s(0,"label"),P(1,36),m(2,"sh-icon",85),h(),o()),n&2){let e=S(3);l(2),C("shTooltip",e.remoteControlTooltip())}}function en(n,t){if(n&1&&(s(0,"label"),P(1,37),m(2,"sh-icon",85),h(),o()),n&2){let e=S(3);l(2),C("shTooltip",e.connectionStatusIndicatorTooltip())}}function tn(n,t){if(n&1&&(s(0,"label"),P(1,38),m(2,"sh-icon",85),h(),o()),n&2){let e=S(3);l(2),C("shTooltip",e.connectionStatusIndicatorTooltip())}}function nn(n,t){if(n&1){let e=I();s(0,"section")(1,"div",61)(2,"h3"),_(3,33),o(),s(4,"p"),_(5,34),o()(),s(6,"div",84)(7,"sh-toggle",73),d("checkedChange",function(a){u(e);let T=S(2);return p(T.toggleConsoleControl(a))}),g(8,Yt,3,1,"label")(9,Zt,3,1,"label"),o(),s(10,"sh-toggle",73),d("checkedChange",function(a){u(e);let T=S(2);return p(T.saveHideConsoleConnectionStatus(a))}),g(11,en,3,1,"label")(12,tn,3,1,"label"),o()()()}if(n&2){let e=S(2);l(7),C("checked",!e.consoleControlDisabled()),l(),E(e.consoleControlDisabled()?8:9),l(2),C("checked",!e.hideConsoleConnectionStatus()),l(),E(e.hideConsoleConnectionStatus()?11:12)}}function on(n,t){n&1&&(s(0,"label"),_(1,41),o())}function sn(n,t){n&1&&(s(0,"label"),_(1,42),o())}function an(n,t){if(n&1){let e=I();s(0,"section")(1,"div",61)(2,"h3"),_(3,39),o(),s(4,"p"),_(5,40),o()(),s(6,"div",62)(7,"sh-toggle",73),d("checkedChange",function(a){u(e);let T=S(2);return p(T.saveHideConsoleConnectionStatus(a))}),g(8,on,2,0,"label")(9,sn,2,0,"label"),o()()()}if(n&2){let e=S(2);l(7),C("checked",!e.hideConsoleConnectionStatus()),l(),E(e.hideConsoleConnectionStatus()?8:9)}}function ln(n,t){if(n&1&&(s(0,"section")(1,"div",61)(2,"h3"),_(3,32),o(),s(4,"p"),$(5),o()(),s(6,"div",62),m(7,"app-remote-control"),o()(),g(8,nn,13,4,"section")(9,an,10,2,"section")),n&2){let e=S();l(5),H(e.remoteControlStatus()),l(3),E(e.remoteControlState()!="inactive"?8:9)}}function _n(n,t){n&1&&(s(0,"sh-icon",90),$(1,"check"),o())}function rn(n,t){n&1&&(s(0,"sh-icon",91),$(1,"prohibit"),o())}function Tn(n,t){if(n&1){let e=I();s(0,"button",95),d("click",function(){u(e);let a=S(2);return p(a.updatePassphrase())}),_(1,46),o()}if(n&2){let e=S(2);F("loading",e.isUpdating())}}function Sn(n,t){if(n&1){let e=I();s(0,"button",96),d("click",function(){u(e);let a=S(2);return p(a.updatePassphrase())}),_(1,47),o()}if(n&2){let e=S(2);F("loading",e.isUpdating()),C("disabled",!0)}}function cn(n,t){if(n&1){let e=I();s(0,"sh-form-field")(1,"label",86),_(2,43),o(),s(3,"input",87),L("ngModelChange",function(a){u(e);let T=S();return y(T.passphrase,a)||(T.passphrase=a),p(a)}),o()(),s(4,"sh-form-field")(5,"label",88),_(6,44),o(),s(7,"input",89),L("ngModelChange",function(a){u(e);let T=S();return y(T.repeatPassphrase,a)||(T.repeatPassphrase=a),p(a)}),o(),g(8,_n,2,0,"sh-icon",90)(9,rn,2,0,"sh-icon",91),o(),s(10,"div",67)(11,"button",92),d("click",function(){u(e);let a=S();return p(a.cancelPasswordChange())}),_(12,45),o(),g(13,Tn,2,2,"button",93)(14,Sn,2,3,"button",94),o()}if(n&2){let e=S();l(3),A("ngModel",e.passphrase),l(4),C("disabled",e.passphrase().length===0),A("ngModel",e.repeatPassphrase),l(),E(e.passphrase().length!==0&&e.passphrase()===e.repeatPassphrase()?8:9),l(3),F("loading",e.isUpdating()),l(2),E(e.passphrase().length!==0&&e.passphrase()===e.repeatPassphrase()?13:14)}}function dn(n,t){n&1&&(s(0,"sh-icon",97),$(1,"check"),o())}function Cn(n,t){if(n&1){let e=I();s(0,"div",67)(1,"button",92),d("click",function(){u(e);let a=S();return p(a.openPassphraseForm())}),_(2,48),o(),g(3,dn,2,0,"sh-icon",97),o()}if(n&2){let e=S();l(3),E(e.passwordUpdated()?3:-1)}}function gn(n,t){n&1&&(P(0,11,1),m(1,"span"),h())}function En(n,t){n&1&&(P(0,11,2),m(1,"span"),h())}function un(n,t){if(n&1){let e=I();s(0,"sh-form-field")(1,"label",98),_(2,49),o(),s(3,"textarea",99),L("ngModelChange",function(a){u(e);let T=S();return y(T.allowedHostnames,a)||(T.allowedHostnames=a),p(a)}),o()(),s(4,"sh-alert",100),_(5,50),o(),s(6,"button",95),d("click",function(){u(e);let a=S();return p(a.updateAllowedHostnames())}),_(7,51),o()}if(n&2){let e=S();l(3),A("ngModel",e.allowedHostnames),l(3),F("loading",e.updatingAllowedHosts())}}function pn(n,t){if(n&1){let e=I();s(0,"section")(1,"div",61)(2,"h3"),_(3,52),o(),s(4,"p"),_(5,53),o()(),s(6,"div",62)(7,"sh-select",101)(8,"input",69),d("ngModelChange",function(a){u(e);let T=S();return p(T.updatePowerMode(a))}),o()()()()}if(n&2){let e=S();l(7),C("options",e.powerModeOptions())("isClearable",!1),l(),C("ngModel",e.powerModeCtrl())("ngModelOptions",J(4,ne))}}function Nn(n,t){if(n&1&&(s(0,"p"),_(1,54),o()),n&2){let e,i=S();l(),U((e=i.sysinfo())==null?null:e.ServerVersionName),V(1)}}function mn(n,t){n&1&&m(0,"sh-progress-bar",74)}function fn(n,t){if(n&1&&$(0),n&2){let e=t.$implicit;se(" ",e.label," ")}}function In(n,t){if(n&1&&$(0),n&2){let e=t.$implicit;se(" ",e.label," ")}}function Mn(n,t){if(n&1){let e=I();s(0,"section")(1,"div",61)(2,"h3"),_(3,55),o(),s(4,"p")(5,"span"),_(6,56),o(),s(7,"a",102),_(8,57),o(),m(9,"br")(10,"br"),s(11,"span"),_(12,58),o()()(),s(13,"div",62)(14,"sh-select",103)(15,"input",69),d("ngModelChange",function(a){u(e);let T=S();return p(T.updateUsageStatistics(a))}),o(),oe(16,In,1,1,"ng-template"),o()()()}if(n&2){let e=S();l(14),C("options",e.usageStatisticsOptions())("isLoading",e.updatingUsageStatistics()),l(),C("ngModel",e.usageStatistics())("ngModelOptions",J(4,ne))}}function Pn(n,t,e){let i=bt(n),a=i[st];e?.equal&&(a.equal=e.equal);let T;return i.set=f=>{clearTimeout(T),T=setTimeout(()=>at(a,f),t)},i.update=f=>{clearTimeout(T),T=setTimeout(()=>lt(a,f),t)},i}var hn=[{value:"none",label:$localize`None`},{value:"s",label:$localize`Seconds`},{value:"m",label:$localize`Minutes`},{value:"h",label:$localize`Hours`}],wt=[{value:"none",label:$localize`System default ($value)`},{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:"disabled",label:$localize`None / disabled`}],le=class n{#e=O(Nt);#n=O($t);#i=O(Ft);#t=O(x);#s=O(ee);#T=O(ut);#a=O(Et);#l=this.#a.getItem("locale")??"en-US";sysinfo=this.#i.systemInfo;isDarkMode=this.#n.isDarkMode;editAs=c("list");previousLang=this.#l;langCtrl=c(this.#l);powerModeCtrl=c("");usageStatistics=c("");updatingUsageStatistics=c(!1);remoteControlStatus=this.#s.status;remoteControlState=this.#s.state;updatingChannel=c(!1);updateChannel=c("");isUsingRelay=this.#T.relayIsEnabled;defaultClient=c(this.#S());usageStatisticsDisabled=v(()=>(this.#i.systemInfo()?.DefaultUsageReportLevel??"").toLowerCase()==="disabled");#c=k(()=>{let t=this.#i.systemInfo()?.DefaultUsageReportLevel??"",e=wt;e[0].label=$localize`System default (${t})`,this.usageStatisticsOptions.set(e)});remoteControlTooltip=c($localize`Disabling console control will disable remote access to this machine from the console, but will keep the
2
+ registration intact and allow pushing settings from the console.`);connectionStatusIndicatorTooltip=c($localize`Hides the connection status indicator in the status bar. Useful if you are not using the remote console.`);setNewChannel(t){let e=this.updateChannel();this.updateChannel.set(t),this.#t.setUpdateChannel(t).pipe(G(()=>this.updatingChannel.set(!1))).subscribe()}allowRemoteAccess=c(!1);allowedHostnames=c("");loadedAllowedHostnames=c("");updatingRemoteAccess=c(!1);updatingAllowedHosts=c(!1);updatingConsoleControl=c(!1);consoleControlDisabled=c(!1);hideConsoleConnectionStatus=this.#t.isConsoleConnectionStatusHidden;updateRemoteAccess(t){this.allowRemoteAccess.set(t),this.#t.setRemoteAccessInterface(t?"any":"loopback").pipe(G(()=>this.updatingRemoteAccess.set(!1))).subscribe()}updateAllowedHostnames(){let t=this.allowedHostnames();this.updatingAllowedHosts.set(!0),this.#t.setRemoteAccessAllowedHostnames(t).pipe(G(()=>this.updatingAllowedHosts.set(!1))).subscribe()}toggleConsoleControl(t){this.consoleControlDisabled.set(!t),this.#t.setDisableConsoleControl(!t).pipe(G(()=>this.updatingConsoleControl.set(!1))).subscribe()}updatingDisableTrayIconLogin=c(!1);disableTrayIconLogin=c(!1);saveDisableTrayIconLogin(t){let e=t;this.updatingDisableTrayIconLogin.set(!0),this.#t.setDisableTrayIconLogin(e).pipe(G(()=>this.updatingDisableTrayIconLogin.set(!1))).subscribe()}updatingHideConsoleConnectionStatus=c(!1);saveHideConsoleConnectionStatus(t){this.updatingHideConsoleConnectionStatus.set(!0),this.#t.setHideConsoleConnectionStatus(!t).pipe(G(()=>this.updatingHideConsoleConnectionStatus.set(!1))).subscribe()}showPassphraseForm=c(!1);isUpdating=c(!1);passphrase=c("");repeatPassphrase=c("");passwordUpdated=c(!1);updatePassphrase(){this.passphrase()===this.repeatPassphrase()&&(this.isUpdating.set(!0),this.#t.setRemoteAccessPassword(this.passphrase()).pipe(G(()=>this.isUpdating.set(!1))).subscribe({next:()=>{this.showPassphraseForm.set(!1),this.passwordUpdated.set(!0),setTimeout(()=>{this.passwordUpdated.set(!1)},3e3)}}))}openPassphraseForm(){this.showPassphraseForm.set(!0)}cancelPasswordChange(){this.showPassphraseForm.set(!1)}languageOptions=c(yt);powerModeOptions=v(()=>{let t=this.#i.systemInfo();return!t?.PowerModeProviders||t.PowerModeProviders.filter(e=>e!==""&&e!=="None").length==0?[]:t.PowerModeProviders.map(e=>({value:e==""?"default":e,label:e===""?$localize`Default`:e}))});usageStatisticsOptions=c(wt);timeTypeOptions=c(hn);timeType=c("none");timeValue=Pn(0,300);timeRange=v(()=>this.timeType()==="h"?[1,24]:[1,60]);updateLocale(t){!t||t===""||t===this.previousLang||(this.#a.setItem("locale",t),window.location.reload())}updateTimeValue(t){this.timeValue.set(t),this.#_()}updateTimeType(t){this.timeType()==="none"&&this.timeValue.set(1),this.timeType.set(t),this.#_()}#o;#_(){this.#o&&clearTimeout(this.#o),this.#o=setTimeout(()=>{let t=this.timeValue(),e=this.timeType(),i=e==="none"||t===0?"":`${t}${e}`;i!==this.#t.serverSettings()?.["startup-delay"]&&this.#t.setStartupDelay(i).subscribe()},1e3)}updateUsageStatistics(t){let e=this.usageStatistics();!t||t===""||t===e||(this.usageStatistics.set(t),this.updatingUsageStatistics.set(!0),this.#t.setUsageReporterLevel(t).subscribe())}updatePowerMode(t){this.powerModeCtrl()!==t&&(t==="default"&&(t=""),this.#t.setPowerModeProvider(t).subscribe())}serverSettingsEffect=k(()=>{let t=this.#t.serverSettings();if(t===void 0)return;let e=t["startup-delay"],i=e.slice(-1),a=e.slice(0,-1),T=["s","m","h"];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"]),this.consoleControlDisabled.set(t["disable-console-control"]==="True"),this.usageStatistics.set(t["usage-reporter-level"]===""?"none":t["usage-reporter-level"]),this.timeType.set(e==""?"none":T.includes(i)?i:"none"),this.timeValue.set(e==""?0:parseInt(a));let f=t["power-mode-provider"]===""||t["power-mode-provider"]==null?"default":t["power-mode-provider"];this.powerModeCtrl.set(f)});setDarkMode(){this.#n.setDarkMode()}setLightMode(){this.#n.setLightMode()}changeDefaultClientTo(t){this.defaultClient()!==t&&(t==="ngax"?this.#e.open(ae,{data:{title:$localize`Use legacy UI by default`,message:$localize`Are you sure you want to use the legacy user interface by default? This is not recommended unless you have a specific reason.`,confirmText:$localize`Use legacy UI by default`,cancelText:$localize`Cancel`},closed:e=>{e&&(window.location.href="/ngax",this.#r(t))}}):this.#r(t))}openLegacyUI(){this.#e.open(ae,{data:{title:$localize`Open legacy UI`,message:$localize`Are you sure you want to open the legacy user interface? This is not recommended unless you have a specific reason.`,confirmText:$localize`Open legacy UI`,cancelText:$localize`Cancel`},closed:t=>{t&&window.open("/ngax","_blank")}})}#r(t){var e=new Date;e.setTime(e.getTime()+2160*60*60*1e3),document.cookie="default-client="+t+"; expires="+e.toUTCString()+"; path=/",this.defaultClient.set(t)}#S(){let t=document.cookie.split(";");for(let e=0;e<t.length;e++){let i=t[e].trim();if(i.startsWith("default-client="))return i.substring(15)}return"ngclient"}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=b({type:n,selectors:[["app-settings"]],decls:128,vars:37,consts:()=>{let t;t=$localize`Settings`;let e;e=$localize`Configure your backup settings.`;let i;i=$localize`Color theme`;let a;a=$localize`Customize your application theme`;let T;T=$localize`Passwords`;let f;f=$localize`Change server passphrase`;let N;N=$localize`Language`;let M;M=$localize`Select a language for the platform`;let R;R=$localize`Use legacy interface`;let _e;_e=$localize`Use the old user interface, not recommended unless you have a specific reason.`;let re;re=$localize`${"\uFFFD#46\uFFFD"}:START_TAG_SH_ICON:arrow-square-right${"\uFFFD/#46\uFFFD"}:CLOSE_TAG_SH_ICON: Open legacy UI `;let z;z=$localize`${"\uFFFD#49\uFFFD"}:START_TAG_SH_ICON:swap${"\uFFFD/#49\uFFFD"}:CLOSE_TAG_SH_ICON:${"\uFFFD*50:1\uFFFD"}:START_BLOCK_IF:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SPAN:Set current UI as default${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SPAN:${"\uFFFD/*50:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*51:2\uFFFD"}:START_BLOCK_ELSE:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SPAN:Set legacy UI as default${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SPAN:${"\uFFFD/*51:2\uFFFD"}:CLOSE_BLOCK_ELSE:`,z=B(z);let Te;Te=$localize`Allow remote access (requires restart)`;let Se;Se=$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 ce;ce=$localize`Allow remote access`;let de;de=$localize`Prevent tray icon automatic log-in`;let Ce;Ce=$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 ge;ge=$localize`Prevent tray icon automatic log-in`;let Ee;Ee=$localize`Update channel`;let ue;ue=$localize` Default (${"\uFFFD0\uFFFD"}:INTERPOLATION:) `;let pe;pe=$localize`Same as the base install version: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let Ne;Ne=$localize`Stable`;let me;me=$localize`Official stable release.`;let fe;fe=$localize`Beta`;let Ie;Ie=$localize` Try out the new features that we are working on. Test a backup and restore before using this in production environments. `;let Me;Me=$localize`Experimental`;let Pe;Pe=$localize`Early previews of new features. Not for use with important data.`;let he;he=$localize`Canary`;let Oe;Oe=$localize`Builds for developers and testers only. Not for use with important data.`;let Re;Re=$localize`Pause after startup or hibernation`;let Ge;Ge=$localize` Duplicati will run when started, but will remain in paused state for the duration. Duplicati will occupy minimal system resources and no backups will be run. `;let Fe;Fe=$localize`Advanced options`;let $e;$e=$localize`Connect to console`;let Ae;Ae=$localize`Configure console control`;let ye;ye=$localize` You can control various settings for the remote console connection. If you are not using the console, you can also hide the connection status indicator. `;let Le;Le=$localize` Remote control disabled ${"\uFFFD#2\uFFFD"}:START_TAG_SH_ICON:info${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_ICON:`;let ve;ve=$localize` Remote control enabled ${"\uFFFD#2\uFFFD"}:START_TAG_SH_ICON:info${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_ICON:`;let be;be=$localize` Console connection status is hidden ${"\uFFFD#2\uFFFD"}:START_TAG_SH_ICON:info${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_ICON:`;let we;we=$localize` Console connection status is visible ${"\uFFFD#2\uFFFD"}:START_TAG_SH_ICON:info${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_ICON:`;let De;De=$localize`Toggle console connection status`;let xe;xe=$localize`Toggle the visibility of the console connection status indicator.`;let ke;ke=$localize`Console connection status is hidden`;let Je;Je=$localize`Console connection status is visible`;let Xe;Xe=$localize`Enter new password`;let ze;ze=$localize`Repeat password`;let ie;ie=$localize`Password have to be filled and have to match`;let Ue;Ue=$localize`Passphrase`;let Ve;Ve=$localize`Repeat passphrase`;let Be;Be=$localize`Cancel`;let He;He=$localize` Update passphrase `;let We;We=$localize` Update passphrase `;let qe;qe=$localize`Change password`;let je;je=$localize`Allowed hostnames`;let Ke;Ke=$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 Qe;Qe=$localize` Update allowed hostnames `;let Ye;Ye=$localize`Power mode provider`;let Ze;Ze=$localize` The power mode provider monitors the system for when it enters a low power state and pauses Duplicati. When the system resumes, Duplicati will resume as well. Choosing the None option disables detection of low power states and Duplicati will run all the time. `;let et;et=$localize`Installed version: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let tt;tt=$localize`Usage statistics`;let nt;nt=$localize` Usage reports help us improve the user experience and evaluate impact of new features. We use them to generate `;let it;it=$localize`public usage statistics.`;let ot;return ot=$localize` 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. `,[t,e,i,a,T,f,N,M,R,_e,re,z,Te,Se,ce,de,Ce,ge,Ee,ue,pe,Ne,me,fe,Ie,Me,Pe,he,Oe,Re,Ge,Fe,$e,Ae,ye,Le,ve,be,we,De,xe,ke,Je,Ue,Ve,Be,He,We,qe,je,Ke,Qe,Ye,Ze,et,tt,nt,it,ot,[1,"content"],[1,"title"],[1,"left"],[1,"right"],[1,"themes"],["src","assets/images/light-theme.png","alt","light theme",3,"click"],["src","assets/images/dark-theme.png","alt","dark theme",3,"click"],[1,"right","passphrase-form"],[1,"actions"],["value","value","label","label",3,"options","isClearable","inlineSearch"],["type","text",3,"ngModelChange","ngModel","ngModelOptions"],[1,"right","buttons"],["shButton","",1,"primary",3,"click"],[1,"right","remote-access-form"],[1,"primary","raised",3,"checkedChange","checked"],[1,"indeterminate","primary"],[1,"right","radios"],[1,"radio-option",3,"click"],[1,"primary","raised",3,"checked"],[1,"field-row"],[1,"raised","primary",3,"unit"],["type","range",3,"ngModelChange","min","max","disabled","ngModel","ngModelOptions"],["label","label","value","value",3,"options","isClearable"],["type","text",3,"ngModelChange","ngModel"],[1,"advanced-settings"],[1,"right","multiple"],["suffix","",3,"shTooltip"],["for","password"],["type","password","name","password","autocomplete","new-password","placeholder",Xe,"tabindex","1",3,"ngModelChange","ngModel"],["for","repeatPassword"],["type","password","name","repeatPassword","autocomplete","new-password","placeholder",ze,"tabindex","2",3,"ngModelChange","disabled","ngModel"],["suffix","",1,"sh-success"],["suffix",""],["shButton","",3,"click"],["shButton","",1,"raised","primary",3,"loading"],["shButton","","shTooltip",ie,1,"raised","primary",3,"loading","disabled"],["shButton","",1,"raised","primary",3,"click"],["shButton","","shTooltip",ie,1,"raised","primary",3,"click","disabled"],[1,"sh-success"],["for","allowedHostnames"],["type","text","id","allowedHostnames",3,"ngModelChange","ngModel"],["type","primary"],["value","value","label","label",3,"options","isClearable"],["href","https://usage-reporter.duplicati.com/","target","_blank"],["label","label","value","value",3,"options","isLoading"]]},template:function(e,i){if(e&1&&(m(0,"app-status-bar"),s(1,"div",59)(2,"header")(3,"div",60)(4,"h2"),_(5,0),o(),s(6,"p"),_(7,1),o()()(),g(8,ln,10,2),s(9,"section")(10,"div",61)(11,"h3"),_(12,2),o(),s(13,"p"),_(14,3),o()(),s(15,"div",62)(16,"div",63)(17,"img",64),d("click",function(){return i.setLightMode()}),o(),s(18,"img",65),d("click",function(){return i.setDarkMode()}),o()()()(),s(19,"section")(20,"div",61)(21,"h3"),_(22,4),o(),s(23,"p"),_(24,5),o()(),s(25,"div",66),g(26,cn,15,7)(27,Cn,4,1,"div",67),o()(),s(28,"section")(29,"div",61)(30,"h3"),_(31,6),o(),s(32,"p"),_(33,7),o()(),s(34,"div",62)(35,"sh-select",68)(36,"input",69),d("ngModelChange",function(T){return i.updateLocale(T)}),o()()()(),s(37,"section")(38,"div",61)(39,"h3"),_(40,8),o(),s(41,"p"),_(42,9),o()(),s(43,"div",70)(44,"button",71),d("click",function(){return i.openLegacyUI()}),P(45,10),m(46,"sh-icon"),h(),o(),s(47,"button",71),d("click",function(){return i.changeDefaultClientTo(i.defaultClient()==="ngclient"?"ngax":"ngclient")}),P(48,11),m(49,"sh-icon"),g(50,gn,2,0,"span")(51,En,2,0,"span"),h(),o()()(),s(52,"section")(53,"div",61)(54,"h3"),_(55,12),o(),s(56,"p"),_(57,13),o()(),s(58,"div",72)(59,"sh-toggle",73),d("checkedChange",function(T){return i.updateRemoteAccess(T)}),s(60,"label"),_(61,14),o()(),g(62,un,8,3),o()(),s(63,"section")(64,"div",61)(65,"h3"),_(66,15),o(),s(67,"p"),_(68,16),o()(),s(69,"div",62)(70,"sh-toggle",73),d("checkedChange",function(T){return i.saveDisableTrayIconLogin(T)}),s(71,"label"),_(72,17),o()()()(),g(73,pn,9,5,"section"),s(74,"section")(75,"div",61)(76,"h3"),_(77,18),o(),g(78,Nn,2,1,"p"),g(79,mn,1,0,"sh-progress-bar",74),o(),s(80,"div",75)(81,"div",76),d("click",function(){return i.setNewChannel("")}),s(82,"sh-radio",77),_(83,19),o(),s(84,"p"),_(85,20),o()(),s(86,"div",76),d("click",function(){return i.setNewChannel("stable")}),s(87,"sh-radio",77),_(88,21),o(),s(89,"p"),_(90,22),o()(),s(91,"div",76),d("click",function(){return i.setNewChannel("beta")}),s(92,"sh-radio",77),_(93,23),o(),s(94,"p"),_(95,24),o()(),s(96,"div",76),d("click",function(){return i.setNewChannel("experimental")}),s(97,"sh-radio",77),_(98,25),o(),s(99,"p"),_(100,26),o()(),s(101,"div",76),d("click",function(){return i.setNewChannel("canary")}),s(102,"sh-radio",77),_(103,27),o(),s(104,"p"),_(105,28),o()()()(),s(106,"section")(107,"div",61)(108,"h3"),_(109,29),o(),s(110,"p"),_(111,30),o()(),s(112,"div",62)(113,"div",78)(114,"sh-range-slider",79)(115,"input",80),L("ngModelChange",function(T){return y(i.timeValue,T)||(i.timeValue=T),T}),d("ngModelChange",function(T){return i.updateTimeValue(T)}),o()(),s(116,"sh-select",81)(117,"input",82),d("ngModelChange",function(T){return i.updateTimeType(T)}),o(),oe(118,fn,1,1,"ng-template"),o()()()(),g(119,Mn,17,5,"section"),o(),m(120,"sh-divider"),s(121,"div",59)(122,"section")(123,"div",83)(124,"h3"),_(125,31),o(),m(126,"app-advanced-options-settings"),o()()(),m(127,"sh-divider")),e&2){let a,T,f;l(8),E(i.isUsingRelay()?-1:8),l(9),F("active",!i.isDarkMode()),l(),F("active",i.isDarkMode()),l(8),E(i.showPassphraseForm()?26:27),l(9),C("options",i.languageOptions())("isClearable",!1)("inlineSearch",!0),l(),C("ngModel",i.langCtrl())("ngModelOptions",J(35,ne)),l(14),E(i.defaultClient()==="ngax"?50:51),l(9),C("checked",i.allowRemoteAccess()),l(3),E(i.allowRemoteAccess()?62:-1),l(8),C("checked",i.disableTrayIconLogin()),l(3),E(i.powerModeOptions().length>0?73:-1),l(5),E((a=i.sysinfo())!=null&&a.ServerVersion?78:-1),l(),E(i.updatingChannel()?79:-1),l(3),C("checked",i.updateChannel()===""),l(),U((T=i.sysinfo())==null?null:T.DefaultUpdateChannel),V(83),l(2),U((f=i.sysinfo())==null?null:f.ServerVersionType),V(85),l(2),C("checked",i.updateChannel()==="stable"),l(5),C("checked",i.updateChannel()==="beta"),l(5),C("checked",i.updateChannel()==="experimental"),l(5),C("checked",i.updateChannel()==="canary"),l(12),C("unit",i.timeType()==="none"?"s":i.timeType()),l(),C("min",i.timeRange()[0])("max",i.timeRange()[1])("disabled",i.timeType()==="none"),A("ngModel",i.timeValue),C("ngModelOptions",J(36,ne)),l(),C("options",i.timeTypeOptions())("isClearable",!1),l(),C("ngModel",i.timeType()),l(2),E(i.usageStatisticsDisabled()?-1:119)}},dependencies:[K,W,pt,q,j,Q,At,te,X,D,Mt,Pt,It,Ot,Rt,Z,w,ft,Y,ht],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;background:var(--base-1);border-bottom:1px solid var(--base-4)}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-4)}@media only screen and (max-width:768px){section[_ngcontent-%COMP%]{grid-template-columns:1fr}}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%] sh-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:15rem;border-radius:var(--shape-3);cursor:pointer}.themes[_ngcontent-%COMP%] img.active[_ngcontent-%COMP%]{border:2px solid var(--primary-8)}.radios[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.radio-option[_ngcontent-%COMP%]{cursor:pointer}.radio-option[_ngcontent-%COMP%] sh-radio[_ngcontent-%COMP%]{color:var(--base-8);margin-bottom:.25rem}.radio-option[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{text-wrap:balance;color:var(--base-9)}.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%] sh-form-field[_ngcontent-%COMP%], .field-row[_ngcontent-%COMP%] sh-select[_ngcontent-%COMP%]{flex:1 0}.advanced-settings[_ngcontent-%COMP%]{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr;gap:1rem}.right.buttons[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:1rem}.right.multiple[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}"],changeDetection:0})};export{Pn as debounceSignal,le as default};
@@ -0,0 +1 @@
1
+ import{e as a,f as b}from"./chunk-NRQEZLYN.js";import"./chunk-TZEOQBIX.js";import"./chunk-6HSYT4DG.js";import"./chunk-5L2OOKRZ.js";import"./chunk-OO32MPRQ.js";import"./chunk-OBF6ZSYT.js";import"./chunk-6Q6SSTBK.js";import"./chunk-MRSBKQQM.js";import"./chunk-3AZTY4MH.js";import"./chunk-EQNDYV43.js";import"./chunk-35APLYI4.js";import"./chunk-YMUS7QSB.js";import"./chunk-ZXQSQRKN.js";import"./chunk-XZNYCTQB.js";import"./chunk-R6TFME5I.js";import"./chunk-AZRNX5LU.js";import"./chunk-NCXKMSRH.js";import"./chunk-QAQMMCTH.js";import"./chunk-KHZ5AXGT.js";import"./chunk-L2QOWZDR.js";import"./chunk-BRL4YYWO.js";import"./chunk-BDQJFOCO.js";import"./chunk-FSHBOASN.js";import"./chunk-UH2E7MMT.js";import"./chunk-7CGTOI24.js";export{a as createRestoreSelectFilesForm,b as default};
@@ -1 +1 @@
1
- import{a as m}from"./chunk-6Q6SSTBK.js";import{a as r}from"./chunk-DWFQAX4H.js";import{b as B}from"./chunk-LTVI3WYF.js";import{a as k}from"./chunk-BEXYTIOL.js";import{d as b}from"./chunk-2LSZ2I43.js";import{C as i,E as u,M as c,Pc as d,U as o,Z as s,oa as a,qa as p}from"./chunk-ERITO7WM.js";var y="backupListOrderBy",v="backupListShowActualTimes",D=[{value:"id",label:$localize`Backup ID`},{value:"name",label:$localize`Backup name`},{value:"lastrun",label:$localize`Last run time`},{value:"nextrun",label:$localize`Next run time`},{value:"schedule",label:$localize`Is scheduled`},{value:"backend",label:$localize`Destination type`},{value:"sourcesize",label:$localize`Source size`},{value:"destinationsize",label:$localize`Destination size`},{value:"duration",label:$localize`Duration`},{value:"-id",label:$localize`Backup ID (descending)`},{value:"-name",label:$localize`Backup name (descending)`},{value:"-lastrun",label:$localize`Last run time (descending)`},{value:"-nextrun",label:$localize`Next run time (descending)`},{value:"-schedule",label:$localize`Is scheduled (descending)`},{value:"-backend",label:$localize`Destination type (descending)`},{value:"-sourcesize",label:$localize`Source size (descending)`},{value:"-destinationsize",label:$localize`Destination size (descending)`},{value:"-duration",label:$localize`Duration (descending)`}],g=class l{#s=s(b);#o=s(k);#e=s(B);#u=null;#t=a([]);#a=a([]);#l=a(!1);#n=a(null);#p=a(null);#c=r(v,"relative");#i=r(y,"id");orderByOptions=a(D);orderBy=this.#i.asReadonly();backups=this.#a.asReadonly();timeType=this.#c.asReadonly();backupsLoading=this.#l.asReadonly();startingBackup=this.#n.asReadonly();deletingBackup=this.#p.asReadonly();draftBackups=this.#t.asReadonly();#r=d(()=>this.#o.hasBackupListSubscribeOption()&&this.#e.getConnectionMethod()==="websocket");#d=p(()=>{let e=this.#e.backupListState();e&&this.#a.set(e)});addDraftBackup(e){let t=m();return this.#t.set([...this.#t(),{id:t,data:e}]),t}setOrderBy(e){this.#i.set(e),this.#e.isConnectionMethodSet()&&(this.#r()?this.#e.subscribe("backuplist",e):this.getBackups(!0))}setTimeType(e){this.#c.set(e)}removeDraftBackupById(e){this.#t.set(this.#t().filter(t=>t.id!==e))}getBackupById(e){return this.#a().find(t=>t.Backup?.ID===e)??null}getBackups(e=!1){if(!this.#e.isConnectionMethodSet())return;if(this.#r()){this.#e.subscribe("backuplist",this.#i());return}let t=this.#u,n=Date.now(),h=t&&n-t<900*1e3;t&&n-t<100||!e&&h&&this.#a().length||(this.#u=n,this.#l.set(!0),this.#s.getApiV1Backups({orderBy:this.#i()}).pipe(i(1),c(f=>this.#a.set(f)),u(()=>this.#l.set(!1))).subscribe())}startBackup(e){this.#n.set(e),this.#s.postApiV1BackupByIdStart({id:e}).pipe(i(1),c(()=>this.getBackups(!0)),u(()=>this.#n.set(null))).subscribe()}deleteBackup(e){return this.#s.deleteApiV1BackupById(e).pipe(i(1))}static \u0275fac=function(t){return new(t||l)};static \u0275prov=o({token:l,factory:l.\u0275fac,providedIn:"root"})};export{g as a};
1
+ import{a as m}from"./chunk-6Q6SSTBK.js";import{a as r}from"./chunk-LU7TIW3P.js";import{b as B}from"./chunk-XZNYCTQB.js";import{a as k}from"./chunk-R6TFME5I.js";import{d as b}from"./chunk-QAQMMCTH.js";import{D as i,F as u,N as c,Rc as d,V as o,_ as s,pa as a,ra as p}from"./chunk-UH2E7MMT.js";var y="backupListOrderBy",v="backupListShowActualTimes",D=[{value:"id",label:$localize`Backup ID`},{value:"name",label:$localize`Backup name`},{value:"lastrun",label:$localize`Last run time`},{value:"nextrun",label:$localize`Next run time`},{value:"schedule",label:$localize`Is scheduled`},{value:"backend",label:$localize`Destination type`},{value:"sourcesize",label:$localize`Source size`},{value:"destinationsize",label:$localize`Destination size`},{value:"duration",label:$localize`Duration`},{value:"-id",label:$localize`Backup ID (descending)`},{value:"-name",label:$localize`Backup name (descending)`},{value:"-lastrun",label:$localize`Last run time (descending)`},{value:"-nextrun",label:$localize`Next run time (descending)`},{value:"-schedule",label:$localize`Is scheduled (descending)`},{value:"-backend",label:$localize`Destination type (descending)`},{value:"-sourcesize",label:$localize`Source size (descending)`},{value:"-destinationsize",label:$localize`Destination size (descending)`},{value:"-duration",label:$localize`Duration (descending)`}],g=class l{#s=s(b);#o=s(k);#e=s(B);#u=null;#t=a([]);#a=a([]);#l=a(!1);#n=a(null);#p=a(null);#c=r(v,"relative");#i=r(y,"id");orderByOptions=a(D);orderBy=this.#i.asReadonly();backups=this.#a.asReadonly();timeType=this.#c.asReadonly();backupsLoading=this.#l.asReadonly();startingBackup=this.#n.asReadonly();deletingBackup=this.#p.asReadonly();draftBackups=this.#t.asReadonly();#r=d(()=>this.#o.hasBackupListSubscribeOption()&&this.#e.getConnectionMethod()==="websocket");#d=p(()=>{let e=this.#e.backupListState();e&&this.#a.set(e)});addDraftBackup(e){let t=m();return this.#t.set([...this.#t(),{id:t,data:e}]),t}setOrderBy(e){this.#i.set(e),this.#e.isConnectionMethodSet()&&(this.#r()?this.#e.subscribe("backuplist",e):this.getBackups(!0))}setTimeType(e){this.#c.set(e)}removeDraftBackupById(e){this.#t.set(this.#t().filter(t=>t.id!==e))}getBackupById(e){return this.#a().find(t=>t.Backup?.ID===e)??null}getBackups(e=!1){if(!this.#e.isConnectionMethodSet())return;if(this.#r()){this.#e.subscribe("backuplist",this.#i());return}let t=this.#u,n=Date.now(),h=t&&n-t<900*1e3;t&&n-t<100||!e&&h&&this.#a().length||(this.#u=n,this.#l.set(!0),this.#s.getApiV1Backups({orderBy:this.#i()}).pipe(i(1),c(f=>this.#a.set(f)),u(()=>this.#l.set(!1))).subscribe())}startBackup(e){this.#n.set(e),this.#s.postApiV1BackupByIdStart({id:e}).pipe(i(1),c(()=>this.getBackups(!0)),u(()=>this.#n.set(null))).subscribe()}deleteBackup(e){return this.#s.deleteApiV1BackupById(e).pipe(i(1))}static \u0275fac=function(t){return new(t||l)};static \u0275prov=o({token:l,factory:l.\u0275fac,providedIn:"root"})};export{g as a};
@@ -0,0 +1 @@
1
+ import{a as D}from"./chunk-R6TFME5I.js";import{c as j,e as q}from"./chunk-AZRNX5LU.js";import{z as b}from"./chunk-NCXKMSRH.js";import{a as x,d as v}from"./chunk-QAQMMCTH.js";import{ma as L}from"./chunk-BDQJFOCO.js";import{Gb as N,Gc as G,Hb as C,Ib as _,Ic as $,M as O,Rc as p,Sa as M,Tb as A,Ub as w,V as h,Vb as P,Wb as F,Xb as W,_ as c,f as m,g as y,gb as I,pa as n,ra as R}from"./chunk-UH2E7MMT.js";var S=class r{reconnectTimer=n(15e3);countdown=n(0);connectTimerEffect=R(()=>{let e=this.reconnectTimer();this.countdown.set(e/1e3)});interval=setInterval(()=>{if(this.countdown()<=1){this.countdown.set(this.reconnectTimer()/1e3);return}this.countdown.set(this.countdown()-1)},1e3);ngOnDestroy(){clearInterval(this.interval)}static \u0275fac=function(t){return new(t||r)};static \u0275cmp=I({type:r,selectors:[["app-disconnected-dialog"]],decls:8,vars:4,consts:()=>{let e;e=$localize`Reconnecting...`;let t;return t=$localize` The connection to the server is lost, attempting again in ${"\uFFFD#6\uFFFD"}:START_TAG_STRONG:0:${"\uFFFD0\uFFFD"}:INTERPOLATION:${"\uFFFD/#6\uFFFD"}:CLOSE_TAG_STRONG:`,[e,t,["header",""],["content",""]]},template:function(t,s){t&1&&(N(0,"header",2)(1,"h3"),P(2,0),C()(),N(3,"div",3)(4,"p"),A(5,1),_(6,"strong"),G(7,"number"),w(),C()()),t&2&&(M(7),F($(7,1,s.countdown(),"2.0-0")),W(5))},dependencies:[L],styles:["[_nghost-%COMP%]{display:block;padding:1rem}"],changeDetection:0})};var T=class r{dialog=c(b);#e=c(v);#i=n("disconnected");#s=n(null);#t=n(-1);#r=n(0);#l=n(!1);#u=new y;connectionStatus=this.#i.asReadonly();serverState=this.#s.asReadonly();#o=void 0;duration=c(j).relayIsEnabled()?"94s":"299s";start(){this.#l.set(!0),this.#u=new y,this.#c()}stop(){this.#u.next(),this.#u.complete(),this.#l.set(!1)}reconnect(){this.stop(),this.start()}reconnectIfNeeded(){this.#l()||this.reconnect()}#c(){this.#i.set("connecting"),this.#e.getApiV1Serverstate({lastEventId:this.#t(),longpoll:this.#t()>=0,duration:this.duration}).pipe(O(this.#u)).subscribe({next:e=>{e&&this.#a(e),this.#n()},error:e=>{let s=this.#r()+1,l=Math.min(5e3*s,3e4);this.#r.set(s),s>3&&this.#i.set("disconnected"),this.#o||(this.#o=this.dialog.open(S,{closeOnButton:!1,closeOnEsc:!1,closeOnOutsideClick:!1})),this.#o.component.reconnectTimer.set(l),setTimeout(()=>{this.#c()},l)}})}#a(e){this.#i.set("connected"),this.#s.set(e),this.#t.set(e.LastEventID??-1),this.#r.set(0)}#n(){this.#l()&&this.#c()}static \u0275fac=function(t){return new(t||r)};static \u0275prov=h({token:r,factory:r.\u0275fac,providedIn:"root"})};var u=!1,k=class r{#e=c(q);#i=c(D);dialog=c(b);#s=null;#t=n("disconnected");#r=n(null);#l=n(null);#u=n(null);#o=n(null);#c=n(null);#a=void 0;#n=n({legacystatus:!0});shouldConnect=n(!0);connectionStatus=this.#t.asReadonly();serverState=this.#r.asReadonly();serverProgress=this.#l.asReadonly();serverSettings=this.#u.asReadonly();subscriptions=this.#n.asReadonly();serverTaskQueue=this.#o.asReadonly();backupListState=this.#c.asReadonly();#p=null;taskCompleted=new m(e=>{this.#p=e});#h=0;#d=null;start(){this.shouldConnect.set(!0),this.#g()}#g(){this.#d&&(clearTimeout(this.#d),this.#d=null);let e=this.#e.token();if(!e){console.error("No access token available");return}let t=window.location.protocol==="https:"?"wss:":"ws:",s=window.location.port?`:${window.location.port}`:"";window.location.port==="4200"&&(s=":8200");let l=window.location.hostname,g=x.BASE||"",f=this.#e.xsrfQueryParam(),Q=this.#i.hasWebSocketAuth()?`${t}//${l}${s}${g}/notifications${f?`?${f}`:""}`:`${t}//${l}${s}${g}/notifications?token=${e}${f?`&${f}`:""}`;this.#t.set("connecting"),this.#s=new WebSocket(Q),this.#s.onopen=()=>{u&&console.log("WebSocket connection established"),this.#i.hasWebSocketAuth()?(this.#t.set("authenticating"),this.#s?.send(JSON.stringify({Version:1,Token:e,Action:"auth"}))):this.#S()},this.#s.onmessage=d=>{if(this.#t()==="authenticating")try{let o=JSON.parse(d.data);if(o.Success){u&&console.log("WebSocket authentication successful"),this.#S();return}else if(o?.Type==="legacystatus")u&&console.log("WebSocket authentication successful"),this.#S();else{console.error("WebSocket authentication failed:",o.Message),this.#t.set("disconnected"),this.#e.refreshToken().subscribe({next:()=>{this.reconnect()},error:i=>{console.error("Error refreshing token after WebSocket auth failed",i)}});return}}catch(o){console.error("Error parsing WebSocket authentication reply",o),this.#t.set("disconnected");return}try{let o=JSON.parse(d.data),a=o?.Type;if(a==="legacystatus"||a==null)u&&console.log("Received legacy status update:",o),this.#r.set(o);else if(a==="reply"){let i=o;i.Success||console.error("WebSocket reply error:",i.Message)}else if(a==="progress"){let i=o;u&&console.log("Received progress update:",i.Data),this.#l.set(i.Data)}else if(a==="serversettings"){let i=o;u&&console.log("Received server settings update:",i.Data),this.#u.set(i.Data)}else if(a==="taskqueue"){let i=o;u&&console.log("Received task update:",i.Data),this.#o.set(i.Data)}else if(a==="taskcompleted"){let i=o;u&&console.log("Received task completed:",i.Data),this.#p?.next(i.Data)}else if(a==="backuplist"){let i=o;u&&console.log("Received backup list update:",i.Data),this.#c.set(i.Data)}else console.warn("Unknown WebSocket message type:",a)}catch(o){console.error("Error parsing WebSocket message",o)}},this.#s.onclose=d=>{u&&console.log("WebSocket connection closed",d),this.#t.set("disconnected");var o=d.code===4401;o&&this.#e.refreshToken().subscribe({next:()=>{this.reconnect()},error:a=>{console.error("Error refreshing token",a)}}),this.shouldConnect()&&(this.#a||(this.#a=this.dialog.open(S,{closeOnButton:!1,closeOnEsc:!1,closeOnOutsideClick:!1}),this.#a.component.reconnectTimer.set(15e3)),this.#d&&clearTimeout(this.#d),this.#d=setTimeout(()=>this.#g(),5e3))},this.#s.onerror=d=>{console.error("WebSocket error",d),this.#t.set("disconnected")}}#S(){this.#t.set("connected");let e=this.#n();Object.keys(e).length>0&&Object.entries(e).forEach(([t,s])=>{s!=null&&this.sendSubscribeRequest(t,s)}),this.#a&&this.#a.close()}stop(){this.shouldConnect.set(!1),this.#s?.close()}reconnect(){this.#s?.close(),this.start()}reconnectIfNeeded(){this.#s?.readyState!==WebSocket.OPEN&&this.reconnect()}sendSubscribeRequest(e,t){this.#s?.send(JSON.stringify({Version:1,Id:`req-${++this.#h}`,Action:"sub",Service:e,Data:t||null}))}subscribe(e,t=void 0){let s=this.#n(),l=s[e];(!l||JSON.stringify(l)!==JSON.stringify(t||!0))&&(s[e]=t||!0,this.#n.set(s),this.#t()=="connected"&&this.sendSubscribeRequest(e,t))}unsubscribe(e){let t=this.#n();t[e]&&(delete t[e],this.#n.set(t),this.#t()=="connected"&&this.#s?.send(JSON.stringify({Version:1,Id:`req-${++this.#h}`,Action:"unsub",Service:e})))}static \u0275fac=function(t){return new(t||r)};static \u0275prov=h({token:r,factory:r.\u0275fac,providedIn:"root"})};var V=10,J=class r{#e=c(k);#i=c(T);#s=c(v);#t=c(D);#r=n("longpoll");#l=n(!1);#u=p(()=>this.#t.hasTaskCompletedOption()&&this.#r()==="websocket");#o={};#c=null;#a=!1;#n=[];constructor(){this.#e.subscribe("taskcompleted"),this.#e.taskCompleted.subscribe(e=>{if(this.#n.unshift(e),this.#n.length>V&&this.#n.pop(),!e.ID)return;let t=this.#o[e.ID];t&&(t.forEach(s=>{s.next(e),s.complete()}),delete this.#o[e.ID])})}connectionStatus=p(()=>this.#r()==="websocket"?this.#e.connectionStatus():this.#i.connectionStatus());isConnectionMethodSet=this.#l.asReadonly();serverState=p(()=>this.#r()==="websocket"?this.#e.serverState():this.#i.serverState());progressState=this.#e.serverProgress;taskQueueState=this.#e.serverTaskQueue;activeTaskQueueState=p(()=>this.#r()==="websocket"?this.#e.serverTaskQueue()?.map(t=>t.ID).filter(t=>t)??[]:(this.#i.serverState()?.SchedulerQueueIds??[]).map(t=>t.Item1).filter(t=>t));backupListState=p(()=>this.#e.backupListState());setConnectionMethod(e){e==="websocket"?(this.#e.reconnectIfNeeded(),this.#i.stop()):(this.#i.reconnectIfNeeded(),this.#e.stop()),this.#r.set(e),this.#l.set(!0)}getConnectionMethod(){return this.#r()}subscribe(e,t=null){this.#e.subscribe(e,t)}unsubscribe(e){this.#e.unsubscribe(e)}waitForTaskToComplete(e){return new m(t=>{let s=this.#n.find(l=>l.ID===e);if(s){t.next(s),t.complete();return}this.#o[e]=this.#o[e]||[],this.#o[e].push(t),this.#p()})}#p(){this.#a||this.#u()||(this.#a=!0,this.#h())}#h(){let e=Object.keys(this.#o).map(s=>parseInt(s,10));if(e.length===0){this.#d();return}let t=Math.min(...e);this.#s.getApiV1TaskByTaskid({taskid:t}).subscribe({next:s=>{s.TaskFinished!=null&&(this.#n.unshift(s),this.#n.length>V&&this.#n.pop(),this.#o[t].forEach(g=>{g.next(s),g.complete()}),delete this.#o[t])},complete:()=>{this.#c=window.setTimeout(()=>{this.#h()},1e3)},error:s=>{this.#c=window.setTimeout(()=>{this.#h()},3e3)}})}#d(){this.#c!==null&&(clearTimeout(this.#c),this.#c=null),this.#a=!1}static \u0275fac=function(t){return new(t||r)};static \u0275prov=h({token:r,factory:r.\u0275fac,providedIn:"root"})};export{k as a,J as b};
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-ADB5QRUO.js";import"./chunk-22PELS6R.js";import"./chunk-BDQJFOCO.js";import"./chunk-FSHBOASN.js";import"./chunk-UH2E7MMT.js";import"./chunk-7CGTOI24.js";export{a as RelativeTimePipe};
@@ -1 +1 @@
1
- import{a as B}from"./chunk-YF6ULZXZ.js";import{a as z}from"./chunk-I4XRVBRQ.js";import{a as R}from"./chunk-RFB5A3B7.js";import{b as _}from"./chunk-LTVI3WYF.js";import{a as $}from"./chunk-BEXYTIOL.js";import{z as S}from"./chunk-YCLTQEU6.js";import{d as P}from"./chunk-2LSZ2I43.js";import{E as u,K as k,Pc as n,U as h,Z as l,l as d,oa as c,p as m,qa as f}from"./chunk-ERITO7WM.js";import{a as s,b as r}from"./chunk-7CGTOI24.js";var F={Starting_Operation:$localize`Starting operation …`,Backup_Begin:$localize`Starting backup …`,Backup_PreBackupVerify:$localize`Verifying backend data …`,Backup_PostBackupTest:$localize`Verifying remote data …`,Backup_PreviousBackupFinalize:$localize`Completing previous backup …`,Backup_ProcessingFiles:$localize`Processing files to backup …`,Backup_Finalize:$localize`Completing backup …`,Backup_WaitForUpload:$localize`Waiting for upload to finish …`,Backup_Delete:$localize`Deleting unwanted files …`,Backup_Compact:$localize`Compacting remote data …`,Backup_VerificationUpload:$localize`Uploading verification file …`,Backup_PostBackupVerify:$localize`Verifying backend data …`,Backup_Lock:$localize`Locking remote data …`,Backup_Complete:$localize`Backup complete!`,Restore_Begin:$localize`Starting restore …`,Restore_RecreateDatabase:$localize`Rebuilding local database …`,Restore_PreRestoreVerify:$localize`Verifying remote data …`,Restore_CreateFileList:$localize`Building list of files to restore …`,Restore_CreateTargetFolders:$localize`Creating target folders …`,Restore_ScanForExistingFiles:$localize`Scanning existing files …`,Restore_ScanForLocalBlocks:$localize`Scanning for local blocks …`,Restore_PatchWithLocalBlocks:$localize`Patching files with local blocks …`,Restore_Download:$localize`Downloading files …`,Restore_PatchWithRemoteFiles:$localize`Patching files with remote data …`,Restore_VerifyRestoredFiles:$localize`Verifying restored files …`,Restore_Finaluze:$localize`Finalizing restore …`,Restore_Complete:$localize`Restore complete!`,Recreate_Begin:$localize`Starting database recreate …`,Recreate_Delete:$localize`Deleting old database …`,Recreate_Create:$localize`Creating new database …`,Recreate_Download:$localize`Downloading files …`,Recreate_Process:$localize`Processing files …`,Recreate_Complete:$localize`Database recreate complete!`,Verify_Begin:$localize`Starting verification …`,Verify_Download:$localize`Downloading files …`,Verify_Process:$localize`Processing files …`,Verify_Complete:$localize`Verification complete!`,BugReport_Begin:$localize`Starting bug report …`,BugReport_Gathering:$localize`Gathering information …`,BugReport_Complete:$localize`Bug report complete!`,List_Begin:$localize`Starting list …`,List_Download:$localize`Downloading files …`,List_Process:$localize`Processing files …`,List_Complete:$localize`List complete!`,Delete_Begin:$localize`Starting delete …`,Delete_Download:$localize`Downloading files …`,Delete_Process:$localize`Processing files …`,Delete_Complete:$localize`Delete complete!`,Compact_Begin:$localize`Starting compact …`,Compact_Download:$localize`Downloading files …`,Compact_Process:$localize`Processing files …`,Compact_Complete:$localize`Compact complete!`,Restore_DownloadingRemoteFiles:$localize`Downloading files …`,Restore_PostRestoreVerify:$localize`Verifying restored files …`,Recreate_Running:$localize`Recreating database …`,Vacuum_Running:$localize`Vacuuming database …`,Repair_Running:$localize`Repairing database …`,Verify_Running:$localize`Verifying files …`,BugReport_Running:$localize`Creating bug report …`,Delete_Listing:$localize`Listing remote files …`,Delete_Deleting:$localize`Deleting remote files …`,PurgeFiles_Begin:$localize`Listing remote files for purge …`,PurgeFiles_Process:$localize`Purging files …`,PurgeFiles_Compact:$localize`Compacting remote data …`,PurgeFiles_Complete:$localize`Purging files complete!`,ReadLockInfo_Running:$localize`Reading lock info …`,Error:$localize`Error!`};var C=class g{#i=l(z);#t=l(P);#o=l(B);#e=l(_);#c=l(S);#g=l($);#l=c(!1);#a=c(null);statusData=this.#a.asReadonly();lastState=null;serverState=n(()=>{let e=this.#e.serverState();return e?(e.ProposedSchedule=e.ProposedSchedule?.map(i=>r(s({},i),{backup:i.Item1?this.#o.getBackupById(i.Item1):null}))??null,this.lastState=e,e):this.lastState});hasProgressOnWebsocket=n(()=>this.#g.hasProgressSubscribeOption()&&this.#e.getConnectionMethod()==="websocket");clientIsRunning=n(()=>this.serverState()?.ProgramState==="Running");runningBackupId=n(()=>{let e=this.statusData();return!!(this.serverState()?.ActiveTask&&e?.task?.Status&&e?.task?.Status!=="Completed")?e?.BackupID??null:null});isResuming=c(!1);isFetching=this.#l.asReadonly();connectionStatus=this.#e.connectionStatus;pollingInterval;#m=f(()=>{let e=this.#e.serverState();e?.ActiveTask||this.#o.getBackups(!0),this.hasProgressOnWebsocket()&&(this.#e.subscribe("progress"),this.#e.subscribe("taskqueue")),e?.ActiveTask&&this.pollingInterval===void 0?this.startPollingProgress():e?.ActiveTask||this.stopPollingProgress()});#k=f(()=>{let e=this.#e.progressState(),i=this.#e.taskQueueState();if(e){let t=i?.find(o=>o.ID===e.TaskID)??null;this.#r(r(s({},e),{task:t}))}});setConnectionMethod(e){this.#e.setConnectionMethod(e)}startPollingProgress(){this.hasProgressOnWebsocket()?this.#e.subscribe("progress"):this.pollingInterval=setInterval(()=>{this.#s()},1e3)}stopPollingProgress(){clearInterval(this.pollingInterval)}fetchProgressState(){this.#s()}pauseResume(){return this.isResuming.set(!0),this.#t.postApiV1ServerstateResume().pipe(u(()=>this.isResuming.set(!1)))}resumeDialogCheck(e){if(!this.clientIsRunning()){this.#c.open(R,{data:{title:$localize`Server paused`,message:$localize`Server is currently paused. Do you want to resume now?`,confirmText:$localize`Resume`,cancelText:$localize`No, I'll resume later`},closed:i=>{i&&this.pauseResume().subscribe({next:()=>{e()}})}});return}e()}#s(){this.#l.set(!0),this.#t.getApiV1Progressstate().pipe(k(e=>{let i=e.TaskID??null;return i===null?d(e):this.#t.getApiV1TaskByTaskid({taskid:i}).pipe(m(t=>r(s({},e),{task:t??null})))}),u(()=>this.#l.set(!1))).subscribe({next:e=>{this.#r(e),this.serverState()?.ActiveTask==null&&this.stopPollingProgress()},error:e=>{e.status===404&&this.stopPollingProgress()}})}#r(e){let i=e.TaskID??null,t=e.BackupID??null;i!==null&&t!==null&&(e.backup=this.#o.getBackupById(t)),this.#a.set(r(s({},e),{progress:this.#p(e),statusText:this.#d(e),fileStatusText:this.#u(e),fileCountProgressText:this.#f(e),actionText:e.backup?.Backup?.Name??$localize`Running task`}))}#p(e){let i=-1;if(e.task&&e)if(e.Phase==="Backup_ProcessingFiles"||e.Phase==="Restore_DownloadingRemoteFiles")if(e.StillCounting)i=0;else{let t=e.CurrentFilecomplete?0:e.CurrentFileoffset,o=e.TotalFileCount-e.ProcessedFileCount,a=e.TotalFileSize-e.ProcessedFileSize-t;i=(e.ProcessedFileSize+t)/e.TotalFileSize,e.ProcessedFileCount===0?i=0:i>=.9&&(i=.9)}else e.Phase==="Backup_Finalize"||e.Phase==="Backup_WaitForUpload"?i=.9:e.Phase==="Backup_Delete"||e.Phase==="Backup_Compact"?i=.95:e.Phase==="Backup_VerificationUpload"||e.Phase==="Backup_PostBackupVerify"?i=.98:e.Phase==="Backup_Complete"?i=1:e.OverallProgress>0&&(i=e.OverallProgress);return i}#n(e){let i=(e.ActiveTransfers??[]).map(o=>o.BackendSpeed).reduce((o,a)=>(o??0)+(a??0),0)??-1,t=i<=0?e.BackendSpeed:i;return(t??-1)<0?"":` at ${this.#i.transform(t)}/s`}#u(e){let i=(["Backup_WaitForUpload","Backup_ProcessingFiles"].includes(e.Phase)?e?.BackendFileProgress:e.CurrentFileoffset)??0,t=(["Backup_WaitForUpload","Backup_ProcessingFiles"].includes(e.Phase)?e?.BackendFileSize:e.CurrentFilesize)??0;if(!e.CurrentFilename)return"";let o=e.CurrentFilename.length>42?"..."+e.CurrentFilename.slice(-42):e.CurrentFilename,a=(i/t*100).toFixed(1);return $localize`${o} | File processed: ${this.#i.transform(i)}/${this.#i.transform(t)} - ${a}%`}#f(e){return $localize`Files processed ${e.ProcessedFileCount}/${e.TotalFileCount}`}#d(e){let i="Running \u2026";if(e.task&&e){if(i=e.Phase?F[e.Phase]??e.Phase:"Running \u2026",e.TotalFileCount===0)return i;if(e.Phase==="Backup_ProcessingFiles"||e.Phase==="Restore_DownloadingRemoteFiles")if(e.StillCounting)i=`Counting (${e.TotalFileCount} files found, ${this.#i.transform(e.TotalFileSize)})`;else{let t=e.CurrentFilecomplete?0:e.CurrentFileoffset,o=e.TotalFileCount-e.ProcessedFileCount,a=e.TotalFileSize-e.ProcessedFileSize-t,b=e.Phase==="Restore_DownloadingRemoteFiles"?"Restoring: ":"",p=this.#n(e);e.Phase==="Backup_ProcessingFiles"&&o===0?i=`Completing upload ${p}`:e.BackendIsBlocking??!1?i=`Waiting for transfers ${p}`:i=`${b}${o} files (${this.#i.transform(a)}) to go ${p}`}else if(e.Phase==="Backup_WaitForUpload"){let t=this.#n(e);t!==""&&(i=`Waiting for upload to finish ${t}`)}}return i}static \u0275fac=function(i){return new(i||g)};static \u0275prov=h({token:g,factory:g.\u0275fac,providedIn:"root"})};export{F as a,C as b};
1
+ import{a as B}from"./chunk-XCVBN7EK.js";import{a as z}from"./chunk-MRSBKQQM.js";import{a as R}from"./chunk-35APLYI4.js";import{b as _}from"./chunk-XZNYCTQB.js";import{a as $}from"./chunk-R6TFME5I.js";import{z as S}from"./chunk-NCXKMSRH.js";import{d as P}from"./chunk-QAQMMCTH.js";import{F as u,L as k,Rc as n,V as h,_ as l,l as d,pa as c,q as m,ra as f}from"./chunk-UH2E7MMT.js";import{a as s,b as r}from"./chunk-7CGTOI24.js";var F={Starting_Operation:$localize`Starting operation …`,Backup_Begin:$localize`Starting backup …`,Backup_PreBackupVerify:$localize`Verifying backend data …`,Backup_PostBackupTest:$localize`Verifying remote data …`,Backup_PreviousBackupFinalize:$localize`Completing previous backup …`,Backup_ProcessingFiles:$localize`Processing files to backup …`,Backup_Finalize:$localize`Completing backup …`,Backup_WaitForUpload:$localize`Waiting for upload to finish …`,Backup_Delete:$localize`Deleting unwanted files …`,Backup_Compact:$localize`Compacting remote data …`,Backup_VerificationUpload:$localize`Uploading verification file …`,Backup_PostBackupVerify:$localize`Verifying backend data …`,Backup_Lock:$localize`Locking remote data …`,Backup_Complete:$localize`Backup complete!`,Restore_Begin:$localize`Starting restore …`,Restore_RecreateDatabase:$localize`Rebuilding local database …`,Restore_PreRestoreVerify:$localize`Verifying remote data …`,Restore_CreateFileList:$localize`Building list of files to restore …`,Restore_CreateTargetFolders:$localize`Creating target folders …`,Restore_ScanForExistingFiles:$localize`Scanning existing files …`,Restore_ScanForLocalBlocks:$localize`Scanning for local blocks …`,Restore_PatchWithLocalBlocks:$localize`Patching files with local blocks …`,Restore_Download:$localize`Downloading files …`,Restore_PatchWithRemoteFiles:$localize`Patching files with remote data …`,Restore_VerifyRestoredFiles:$localize`Verifying restored files …`,Restore_Finaluze:$localize`Finalizing restore …`,Restore_Complete:$localize`Restore complete!`,Recreate_Begin:$localize`Starting database recreate …`,Recreate_Delete:$localize`Deleting old database …`,Recreate_Create:$localize`Creating new database …`,Recreate_Download:$localize`Downloading files …`,Recreate_Process:$localize`Processing files …`,Recreate_Complete:$localize`Database recreate complete!`,Verify_Begin:$localize`Starting verification …`,Verify_Download:$localize`Downloading files …`,Verify_Process:$localize`Processing files …`,Verify_Complete:$localize`Verification complete!`,BugReport_Begin:$localize`Starting bug report …`,BugReport_Gathering:$localize`Gathering information …`,BugReport_Complete:$localize`Bug report complete!`,List_Begin:$localize`Starting list …`,List_Download:$localize`Downloading files …`,List_Process:$localize`Processing files …`,List_Complete:$localize`List complete!`,Delete_Begin:$localize`Starting delete …`,Delete_Download:$localize`Downloading files …`,Delete_Process:$localize`Processing files …`,Delete_Complete:$localize`Delete complete!`,Compact_Begin:$localize`Starting compact …`,Compact_Download:$localize`Downloading files …`,Compact_Process:$localize`Processing files …`,Compact_Complete:$localize`Compact complete!`,Restore_DownloadingRemoteFiles:$localize`Downloading files …`,Restore_PostRestoreVerify:$localize`Verifying restored files …`,Recreate_Running:$localize`Recreating database …`,Vacuum_Running:$localize`Vacuuming database …`,Repair_Running:$localize`Repairing database …`,Verify_Running:$localize`Verifying files …`,BugReport_Running:$localize`Creating bug report …`,Delete_Listing:$localize`Listing remote files …`,Delete_Deleting:$localize`Deleting remote files …`,PurgeFiles_Begin:$localize`Listing remote files for purge …`,PurgeFiles_Process:$localize`Purging files …`,PurgeFiles_Compact:$localize`Compacting remote data …`,PurgeFiles_Complete:$localize`Purging files complete!`,ReadLockInfo_Running:$localize`Reading lock info …`,Error:$localize`Error!`};var C=class g{#i=l(z);#t=l(P);#o=l(B);#e=l(_);#c=l(S);#g=l($);#l=c(!1);#a=c(null);statusData=this.#a.asReadonly();lastState=null;serverState=n(()=>{let e=this.#e.serverState();return e?(e.ProposedSchedule=e.ProposedSchedule?.map(i=>r(s({},i),{backup:i.Item1?this.#o.getBackupById(i.Item1):null}))??null,this.lastState=e,e):this.lastState});hasProgressOnWebsocket=n(()=>this.#g.hasProgressSubscribeOption()&&this.#e.getConnectionMethod()==="websocket");clientIsRunning=n(()=>this.serverState()?.ProgramState==="Running");runningBackupId=n(()=>{let e=this.statusData();return!!(this.serverState()?.ActiveTask&&e?.task?.Status&&e?.task?.Status!=="Completed")?e?.BackupID??null:null});isResuming=c(!1);isFetching=this.#l.asReadonly();connectionStatus=this.#e.connectionStatus;pollingInterval;#m=f(()=>{let e=this.#e.serverState();e?.ActiveTask||this.#o.getBackups(!0),this.hasProgressOnWebsocket()&&(this.#e.subscribe("progress"),this.#e.subscribe("taskqueue")),e?.ActiveTask&&this.pollingInterval===void 0?this.startPollingProgress():e?.ActiveTask||this.stopPollingProgress()});#k=f(()=>{let e=this.#e.progressState(),i=this.#e.taskQueueState();if(e){let t=i?.find(o=>o.ID===e.TaskID)??null;this.#r(r(s({},e),{task:t}))}});setConnectionMethod(e){this.#e.setConnectionMethod(e)}startPollingProgress(){this.hasProgressOnWebsocket()?this.#e.subscribe("progress"):this.pollingInterval=setInterval(()=>{this.#s()},1e3)}stopPollingProgress(){clearInterval(this.pollingInterval)}fetchProgressState(){this.#s()}pauseResume(){return this.isResuming.set(!0),this.#t.postApiV1ServerstateResume().pipe(u(()=>this.isResuming.set(!1)))}resumeDialogCheck(e){if(!this.clientIsRunning()){this.#c.open(R,{data:{title:$localize`Server paused`,message:$localize`Server is currently paused. Do you want to resume now?`,confirmText:$localize`Resume`,cancelText:$localize`No, I'll resume later`},closed:i=>{i&&this.pauseResume().subscribe({next:()=>{e()}})}});return}e()}#s(){this.#l.set(!0),this.#t.getApiV1Progressstate().pipe(k(e=>{let i=e.TaskID??null;return i===null?d(e):this.#t.getApiV1TaskByTaskid({taskid:i}).pipe(m(t=>r(s({},e),{task:t??null})))}),u(()=>this.#l.set(!1))).subscribe({next:e=>{this.#r(e),this.serverState()?.ActiveTask==null&&this.stopPollingProgress()},error:e=>{e.status===404&&this.stopPollingProgress()}})}#r(e){let i=e.TaskID??null,t=e.BackupID??null;i!==null&&t!==null&&(e.backup=this.#o.getBackupById(t)),this.#a.set(r(s({},e),{progress:this.#p(e),statusText:this.#d(e),fileStatusText:this.#u(e),fileCountProgressText:this.#f(e),actionText:e.backup?.Backup?.Name??$localize`Running task`}))}#p(e){let i=-1;if(e.task&&e)if(e.Phase==="Backup_ProcessingFiles"||e.Phase==="Restore_DownloadingRemoteFiles")if(e.StillCounting)i=0;else{let t=e.CurrentFilecomplete?0:e.CurrentFileoffset,o=e.TotalFileCount-e.ProcessedFileCount,a=e.TotalFileSize-e.ProcessedFileSize-t;i=(e.ProcessedFileSize+t)/e.TotalFileSize,e.ProcessedFileCount===0?i=0:i>=.9&&(i=.9)}else e.Phase==="Backup_Finalize"||e.Phase==="Backup_WaitForUpload"?i=.9:e.Phase==="Backup_Delete"||e.Phase==="Backup_Compact"?i=.95:e.Phase==="Backup_VerificationUpload"||e.Phase==="Backup_PostBackupVerify"?i=.98:e.Phase==="Backup_Complete"?i=1:e.OverallProgress>0&&(i=e.OverallProgress);return i}#n(e){let i=(e.ActiveTransfers??[]).map(o=>o.BackendSpeed).reduce((o,a)=>(o??0)+(a??0),0)??-1,t=i<=0?e.BackendSpeed:i;return(t??-1)<0?"":` at ${this.#i.transform(t)}/s`}#u(e){let i=(["Backup_WaitForUpload","Backup_ProcessingFiles"].includes(e.Phase)?e?.BackendFileProgress:e.CurrentFileoffset)??0,t=(["Backup_WaitForUpload","Backup_ProcessingFiles"].includes(e.Phase)?e?.BackendFileSize:e.CurrentFilesize)??0;if(!e.CurrentFilename)return"";let o=e.CurrentFilename.length>42?"..."+e.CurrentFilename.slice(-42):e.CurrentFilename,a=(i/t*100).toFixed(1);return $localize`${o} | File processed: ${this.#i.transform(i)}/${this.#i.transform(t)} - ${a}%`}#f(e){return $localize`Files processed ${e.ProcessedFileCount}/${e.TotalFileCount}`}#d(e){let i="Running \u2026";if(e.task&&e){if(i=e.Phase?F[e.Phase]??e.Phase:"Running \u2026",e.TotalFileCount===0)return i;if(e.Phase==="Backup_ProcessingFiles"||e.Phase==="Restore_DownloadingRemoteFiles")if(e.StillCounting)i=`Counting (${e.TotalFileCount} files found, ${this.#i.transform(e.TotalFileSize)})`;else{let t=e.CurrentFilecomplete?0:e.CurrentFileoffset,o=e.TotalFileCount-e.ProcessedFileCount,a=e.TotalFileSize-e.ProcessedFileSize-t,b=e.Phase==="Restore_DownloadingRemoteFiles"?"Restoring: ":"",p=this.#n(e);e.Phase==="Backup_ProcessingFiles"&&o===0?i=`Completing upload ${p}`:e.BackendIsBlocking??!1?i=`Waiting for transfers ${p}`:i=`${b}${o} files (${this.#i.transform(a)}) to go ${p}`}else if(e.Phase==="Backup_WaitForUpload"){let t=this.#n(e);t!==""&&(i=`Waiting for upload to finish ${t}`)}}return i}static \u0275fac=function(i){return new(i||g)};static \u0275prov=h({token:g,factory:g.\u0275fac,providedIn:"root"})};export{F as a,C as b};
@@ -1 +1 @@
1
- import{a as z}from"./chunk-YQD4QIGG.js";import{A as X,B as H,K as V,v as J}from"./chunk-YCLTQEU6.js";import"./chunk-2LSZ2I43.js";import{a as x,c as B,d as w,e as U,f as k}from"./chunk-BMWZYMK6.js";import"./chunk-7FYL7MVA.js";import"./chunk-NBTTYKXH.js";import"./chunk-OQ6BKP5N.js";import"./chunk-VAQ435AR.js";import{Ab as P,Bb as i,Cb as t,Db as _,Hb as R,Ib as M,Kb as f,Ra as C,Rb as l,Sb as s,Tb as b,Ub as v,Vb as y,Xb as a,Z as g,Zb as c,ca as F,da as T,eb as $,oa as p,ub as m,vb as D}from"./chunk-ERITO7WM.js";import"./chunk-7CGTOI24.js";function W(u,S){if(u&1){let n=f();i(0,"sh-menu",15)(1,"button",16),b(2,2),t(),R(3,17),i(4,"button",18),a("click",function(){F(n);let e=c();return T(e.updateLogLevel("Disabled"))}),l(5,3),_(6,"sh-icon"),s(),t(),i(7,"button",18),a("click",function(){F(n);let e=c();return T(e.updateLogLevel("Verbose"))}),l(8,4),_(9,"sh-icon"),s(),t(),i(10,"button",18),a("click",function(){F(n);let e=c();return T(e.updateLogLevel("ExplicitOnly"))}),l(11,5),_(12,"sh-icon"),s(),t(),i(13,"button",18),a("click",function(){F(n);let e=c();return T(e.updateLogLevel("Profiling"))}),l(14,6),_(15,"sh-icon"),s(),t(),i(16,"button",18),a("click",function(){F(n);let e=c();return T(e.updateLogLevel("Retry"))}),l(17,7),_(18,"sh-icon"),s(),t(),i(19,"button",18),a("click",function(){F(n);let e=c();return T(e.updateLogLevel("Information"))}),l(20,8),_(21,"sh-icon"),s(),t(),i(22,"button",18),a("click",function(){F(n);let e=c();return T(e.updateLogLevel("DryRun"))}),l(23,9),_(24,"sh-icon"),s(),t(),i(25,"button",18),a("click",function(){F(n);let e=c();return T(e.updateLogLevel("Warning"))}),l(26,10),_(27,"sh-icon"),s(),t(),i(28,"button",18),a("click",function(){F(n);let e=c();return T(e.updateLogLevel("Error"))}),l(29,11),_(30,"sh-icon"),s(),t(),M(),t()}if(u&2){let n=c();P("openIndicator",!0),C(2),v(n.logLevelByLabel()),y(2)}}var O=class u{#n=g(w);#e=g(z);logLevel=this.#e.logLevel;logLevelByLabel=this.#e.logLevelByLabel;currentUrl=p(this.#n.url);constructor(){this.#n.events.subscribe(S=>{S instanceof x&&this.currentUrl.set(S.urlAfterRedirects)})}updateLogLevel(S){this.#e.isPolling.set(!0),this.#e.updateLogLevel(S)}static \u0275fac=function(n){return new(n||u)};static \u0275cmp=$({type:u,selectors:[["app-logs"]],decls:10,vars:1,consts:()=>{let S;S=$localize`${"\uFFFD#4\uFFFD"}:START_TAG_SH_ICON:archive${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_SH_ICON: Stored `;let n;n=$localize`${"\uFFFD#7\uFFFD"}:START_TAG_SH_ICON:play${"\uFFFD/#7\uFFFD"}:CLOSE_TAG_SH_ICON: Live `;let o;o=$localize`Log level: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let e;e=$localize`${"\uFFFD#6\uFFFD"}:START_TAG_SH_ICON:bell-simple-slash${"\uFFFD/#6\uFFFD"}:CLOSE_TAG_SH_ICON: Disabled `;let E;E=$localize`${"\uFFFD#9\uFFFD"}:START_TAG_SH_ICON:megaphone-simple${"\uFFFD/#9\uFFFD"}:CLOSE_TAG_SH_ICON: Verbose `;let L;L=$localize`${"\uFFFD#12\uFFFD"}:START_TAG_SH_ICON:flow-arrow${"\uFFFD/#12\uFFFD"}:CLOSE_TAG_SH_ICON: Explicit only `;let N;N=$localize`${"\uFFFD#15\uFFFD"}:START_TAG_SH_ICON:speedometer${"\uFFFD/#15\uFFFD"}:CLOSE_TAG_SH_ICON: Profiling `;let I;I=$localize`${"\uFFFD#18\uFFFD"}:START_TAG_SH_ICON:arrow-arc-left${"\uFFFD/#18\uFFFD"}:CLOSE_TAG_SH_ICON: Retry `;let d;d=$localize`${"\uFFFD#21\uFFFD"}:START_TAG_SH_ICON:info${"\uFFFD/#21\uFFFD"}:CLOSE_TAG_SH_ICON: Information `;let h;h=$localize`${"\uFFFD#24\uFFFD"}:START_TAG_SH_ICON:person-simple-run${"\uFFFD/#24\uFFFD"}:CLOSE_TAG_SH_ICON: Dry run `;let G;G=$localize`${"\uFFFD#27\uFFFD"}:START_TAG_SH_ICON:warning${"\uFFFD/#27\uFFFD"}:CLOSE_TAG_SH_ICON: Warning `;let A;return A=$localize`${"\uFFFD#30\uFFFD"}:START_TAG_SH_ICON:warning-octagon${"\uFFFD/#30\uFFFD"}:CLOSE_TAG_SH_ICON: Error `,[S,n,o,e,E,L,N,I,d,h,G,A,[1,"filters"],["type","button","routerLink","/about/logs/stored","routerLinkActive","active"],["type","button","routerLink","/about/logs/live","routerLinkActive","active"],[3,"openIndicator"],["shButton","","type","button"],["menu",""],["shButton","","type","button",1,"small",3,"click"]]},template:function(n,o){n&1&&(i(0,"div",12)(1,"sh-button-group")(2,"button",13),l(3,0),_(4,"sh-icon"),s(),t(),i(5,"button",14),l(6,1),_(7,"sh-icon"),s(),t()(),m(8,W,31,2,"sh-menu",15),t(),_(9,"router-outlet")),n&2&&(C(8),D(o.currentUrl().startsWith("/about/logs/live")?8:-1))},dependencies:[H,X,J,V,B,k,U],styles:["[_nghost-%COMP%]{display:block}.filters[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem;padding:0 2rem;margin-bottom:1.25rem}"],changeDetection:0})};export{O as default};
1
+ import{a as z}from"./chunk-HHDCI6IF.js";import{A as X,B as H,K as V,v as J}from"./chunk-NCXKMSRH.js";import"./chunk-QAQMMCTH.js";import{a as x,c as B,d as w,e as U,f as k}from"./chunk-KHZ5AXGT.js";import"./chunk-L2QOWZDR.js";import"./chunk-BRL4YYWO.js";import"./chunk-BDQJFOCO.js";import"./chunk-FSHBOASN.js";import{$b as c,Cb as P,Db as i,Eb as t,Fb as _,Jb as R,Kb as M,Mb as f,Sa as C,Tb as l,Ub as s,Vb as b,Wb as y,Xb as v,Zb as a,_ as g,da as F,ea as T,gb as $,pa as p,wb as m,xb as D}from"./chunk-UH2E7MMT.js";import"./chunk-7CGTOI24.js";function W(u,S){if(u&1){let n=f();i(0,"sh-menu",16)(1,"button",17),b(2,2),t(),R(3,18),i(4,"button",19),a("click",function(){F(n);let e=c();return T(e.updateLogLevel("Disabled"))}),l(5,3),_(6,"sh-icon"),s(),t(),i(7,"button",19),a("click",function(){F(n);let e=c();return T(e.updateLogLevel("Verbose"))}),l(8,4),_(9,"sh-icon"),s(),t(),i(10,"button",19),a("click",function(){F(n);let e=c();return T(e.updateLogLevel("ExplicitOnly"))}),l(11,5),_(12,"sh-icon"),s(),t(),i(13,"button",19),a("click",function(){F(n);let e=c();return T(e.updateLogLevel("Profiling"))}),l(14,6),_(15,"sh-icon"),s(),t(),i(16,"button",19),a("click",function(){F(n);let e=c();return T(e.updateLogLevel("Retry"))}),l(17,7),_(18,"sh-icon"),s(),t(),i(19,"button",19),a("click",function(){F(n);let e=c();return T(e.updateLogLevel("Information"))}),l(20,8),_(21,"sh-icon"),s(),t(),i(22,"button",19),a("click",function(){F(n);let e=c();return T(e.updateLogLevel("DryRun"))}),l(23,9),_(24,"sh-icon"),s(),t(),i(25,"button",19),a("click",function(){F(n);let e=c();return T(e.updateLogLevel("Warning"))}),l(26,10),_(27,"sh-icon"),s(),t(),i(28,"button",19),a("click",function(){F(n);let e=c();return T(e.updateLogLevel("Error"))}),l(29,11),_(30,"sh-icon"),s(),t(),M(),t()}if(u&2){let n=c();P("openIndicator",!0),C(2),y(n.logLevelByLabel()),v(2)}}var O=class u{#n=g(w);#e=g(z);logLevel=this.#e.logLevel;logLevelByLabel=this.#e.logLevelByLabel;currentUrl=p(this.#n.url);constructor(){this.#n.events.subscribe(S=>{S instanceof x&&this.currentUrl.set(S.urlAfterRedirects)})}updateLogLevel(S){this.#e.isPolling.set(!0),this.#e.updateLogLevel(S)}static \u0275fac=function(n){return new(n||u)};static \u0275cmp=$({type:u,selectors:[["app-logs"]],decls:10,vars:1,consts:()=>{let S;S=$localize`${"\uFFFD#4\uFFFD"}:START_TAG_SH_ICON:archive${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_SH_ICON: Stored `;let n;n=$localize`${"\uFFFD#7\uFFFD"}:START_TAG_SH_ICON:play${"\uFFFD/#7\uFFFD"}:CLOSE_TAG_SH_ICON: Live `;let o;o=$localize`Log level: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let e;e=$localize`${"\uFFFD#6\uFFFD"}:START_TAG_SH_ICON:bell-simple-slash${"\uFFFD/#6\uFFFD"}:CLOSE_TAG_SH_ICON: Disabled `;let E;E=$localize`${"\uFFFD#9\uFFFD"}:START_TAG_SH_ICON:megaphone-simple${"\uFFFD/#9\uFFFD"}:CLOSE_TAG_SH_ICON: Verbose `;let L;L=$localize`${"\uFFFD#12\uFFFD"}:START_TAG_SH_ICON:flow-arrow${"\uFFFD/#12\uFFFD"}:CLOSE_TAG_SH_ICON: Explicit only `;let N;N=$localize`${"\uFFFD#15\uFFFD"}:START_TAG_SH_ICON:speedometer${"\uFFFD/#15\uFFFD"}:CLOSE_TAG_SH_ICON: Profiling `;let I;I=$localize`${"\uFFFD#18\uFFFD"}:START_TAG_SH_ICON:arrow-arc-left${"\uFFFD/#18\uFFFD"}:CLOSE_TAG_SH_ICON: Retry `;let d;d=$localize`${"\uFFFD#21\uFFFD"}:START_TAG_SH_ICON:info${"\uFFFD/#21\uFFFD"}:CLOSE_TAG_SH_ICON: Information `;let h;h=$localize`${"\uFFFD#24\uFFFD"}:START_TAG_SH_ICON:person-simple-run${"\uFFFD/#24\uFFFD"}:CLOSE_TAG_SH_ICON: Dry run `;let G;G=$localize`${"\uFFFD#27\uFFFD"}:START_TAG_SH_ICON:warning${"\uFFFD/#27\uFFFD"}:CLOSE_TAG_SH_ICON: Warning `;let A;return A=$localize`${"\uFFFD#30\uFFFD"}:START_TAG_SH_ICON:warning-octagon${"\uFFFD/#30\uFFFD"}:CLOSE_TAG_SH_ICON: Error `,[S,n,o,e,E,L,N,I,d,h,G,A,[1,"filters"],[1,"type-b"],["type","button","routerLink","/about/logs/stored","routerLinkActive","active"],["type","button","routerLink","/about/logs/live","routerLinkActive","active"],[3,"openIndicator"],["shButton","","type","button"],["menu",""],["shButton","","type","button",1,"small",3,"click"]]},template:function(n,o){n&1&&(i(0,"div",12)(1,"sh-button-group",13)(2,"button",14),l(3,0),_(4,"sh-icon"),s(),t(),i(5,"button",15),l(6,1),_(7,"sh-icon"),s(),t()(),m(8,W,31,2,"sh-menu",16),t(),_(9,"router-outlet")),n&2&&(C(8),D(o.currentUrl().startsWith("/about/logs/live")?8:-1))},dependencies:[H,X,J,V,B,k,U],styles:["[_nghost-%COMP%]{display:block}.filters[_ngcontent-%COMP%]{display:flex;align-items:center;gap:1rem;padding:0 2rem;margin-bottom:1.25rem}"],changeDetection:0})};export{O as default};
@@ -1 +1 @@
1
- import{b as d}from"./chunk-AYOFR344.js";import{a as u,b as E}from"./chunk-LTVI3WYF.js";import{d as p}from"./chunk-2LSZ2I43.js";import{Pc as o,U as v,Z as s,oa as h,qa as l,z as g}from"./chunk-ERITO7WM.js";import{a as i}from"./chunk-7CGTOI24.js";var A="shown-welcome-page-v1",_="hide-console-connection-status",f="disable-console-control",C="disable-tray-icon-login",S="server-listen-interface",O="allowed-hostnames",b="server-passphrase",R="update-channel",T="startup-delay",D="usage-reporter-level",N="power-mode-provider",m=class n{#t=s(p);#r=s(u);#s=s(E);#n=d(this.#t.getApiV1Serversettings());#e=h(void 0);serverSettings=o(()=>this.#e()||this.#n());#o=l(()=>{let e=this.#r.serverSettings();e&&this.#e.set(e)});constructor(){this.#r.subscribe("serversettings")}isConsoleConnectionStatusHidden=o(()=>{let e=this.serverSettings();return e?e[_]==="True":!1});refreshServerSettings(){this.#s.getConnectionMethod()!=="websocket"&&this.#t.getApiV1Serversettings().subscribe({next:e=>{this.#e.set(e)}})}#i(e,t){var r=i({},e);for(let[a,c]of Object.entries(t))c===null?delete r[a]:r[a]=c;return r}patchServerSettings(e){let t=i({},this.serverSettings());return this.#e.set(this.#i(this.serverSettings()??{},e)),this.#t.patchApiV1Serversettings({requestBody:e}).pipe(g(r=>{throw this.#e.set(t),r}))}patchServerSetting(e,t){let r={};return r[e]=t,this.patchServerSettings(r)}setShownWelcomePage(){return this.patchServerSetting(A,"true")}setHideConsoleConnectionStatus(e){return this.patchServerSetting(_,e?"True":"False")}setDisableTrayIconLogin(e){return this.patchServerSetting(C,e?"True":"False")}setDisableConsoleControl(e){return this.patchServerSetting(f,e?"True":"False")}setRemoteAccessInterface(e){return this.patchServerSetting(S,e)}setRemoteAccessAllowedHostnames(e){var t={[O]:e};return this.serverSettings()?.[S]==="loopback"&&(t[S]="any"),this.patchServerSettings(t)}setRemoteAccessPassword(e){return this.patchServerSetting(b,e)}setUpdateChannel(e){return this.patchServerSetting(R,e)}setStartupDelay(e){return this.patchServerSetting(T,e)}setUsageReporterLevel(e){return this.patchServerSetting(D,e)}setPowerModeProvider(e){return this.patchServerSetting(N,e)}static \u0275fac=function(t){return new(t||n)};static \u0275prov=v({token:n,factory:n.\u0275fac,providedIn:"root"})};export{m as a};
1
+ import{b as d}from"./chunk-ZXQSQRKN.js";import{a as u,b as E}from"./chunk-XZNYCTQB.js";import{d as p}from"./chunk-QAQMMCTH.js";import{A as g,Rc as o,V as v,_ as s,pa as h,ra as l}from"./chunk-UH2E7MMT.js";import{a as i}from"./chunk-7CGTOI24.js";var A="shown-welcome-page-v1",_="hide-console-connection-status",f="disable-console-control",C="disable-tray-icon-login",S="server-listen-interface",O="allowed-hostnames",b="server-passphrase",R="update-channel",T="startup-delay",D="usage-reporter-level",N="power-mode-provider",m=class n{#t=s(p);#r=s(u);#s=s(E);#n=d(this.#t.getApiV1Serversettings());#e=h(void 0);serverSettings=o(()=>this.#e()||this.#n());#o=l(()=>{let e=this.#r.serverSettings();e&&this.#e.set(e)});constructor(){this.#r.subscribe("serversettings")}isConsoleConnectionStatusHidden=o(()=>{let e=this.serverSettings();return e?e[_]==="True":!1});refreshServerSettings(){this.#s.getConnectionMethod()!=="websocket"&&this.#t.getApiV1Serversettings().subscribe({next:e=>{this.#e.set(e)}})}#i(e,t){var r=i({},e);for(let[a,c]of Object.entries(t))c===null?delete r[a]:r[a]=c;return r}patchServerSettings(e){let t=i({},this.serverSettings());return this.#e.set(this.#i(this.serverSettings()??{},e)),this.#t.patchApiV1Serversettings({requestBody:e}).pipe(g(r=>{throw this.#e.set(t),r}))}patchServerSetting(e,t){let r={};return r[e]=t,this.patchServerSettings(r)}setShownWelcomePage(){return this.patchServerSetting(A,"true")}setHideConsoleConnectionStatus(e){return this.patchServerSetting(_,e?"True":"False")}setDisableTrayIconLogin(e){return this.patchServerSetting(C,e?"True":"False")}setDisableConsoleControl(e){return this.patchServerSetting(f,e?"True":"False")}setRemoteAccessInterface(e){return this.patchServerSetting(S,e)}setRemoteAccessAllowedHostnames(e){var t={[O]:e};return this.serverSettings()?.[S]==="loopback"&&(t[S]="any"),this.patchServerSettings(t)}setRemoteAccessPassword(e){return this.patchServerSetting(b,e)}setUpdateChannel(e){return this.patchServerSetting(R,e)}setStartupDelay(e){return this.patchServerSetting(T,e)}setUsageReporterLevel(e){return this.patchServerSetting(D,e)}setPowerModeProvider(e){return this.patchServerSetting(N,e)}static \u0275fac=function(t){return new(t||n)};static \u0275prov=v({token:n,factory:n.\u0275fac,providedIn:"root"})};export{m as a};
@@ -1 +1 @@
1
- import{Oc as f,Pc as w,R as d,Rc as x,Sc as h,Z as v,ga as y,i as m,ia as l,oa as b,qa as D}from"./chunk-ERITO7WM.js";import{a as g,b as p}from"./chunk-7CGTOI24.js";function N(s,e){let o=e?.injector??v(y),n=new m(1),i=D(()=>{let t;try{t=s()}catch(u){f(()=>n.error(u));return}f(()=>n.next(t))},{injector:o,manualCleanup:!0});return o.get(l).onDestroy(()=>{i.destroy(),n.complete()}),n.asObservable()}function E(s,e){let n=!e?.manualCleanup?e?.injector?.get(l)??v(l):null,i=j(e?.equal),t;e?.requireSync?t=b({kind:0},{equal:i}):t=b({kind:1,value:e?.initialValue},{equal:i});let u,a=s.subscribe({next:r=>t.set({kind:1,value:r}),error:r=>{t.set({kind:2,error:r}),u?.()},complete:()=>{u?.()}});if(e?.requireSync&&t().kind===0)throw new d(601,!1);return u=n?.onDestroy(a.unsubscribe.bind(a)),w(()=>{let r=t();switch(r.kind){case 1:return r.value;case 2:throw r.error;case 0:throw new d(601,!1)}},{equal:e?.equal})}function j(s=Object.is){return(e,o)=>e.kind===1&&o.kind===1&&s(e.value,o.value)}function U(s){return x(p(g({},s),{loader:void 0,stream:e=>{let o,n=()=>o?.unsubscribe();e.abortSignal.addEventListener("abort",n);let i=b({value:void 0}),t,u=new Promise(c=>t=c);function a(c){i.set(c),t?.(i),t=void 0}let r=s.stream;if(r===void 0)throw new d(990,!1);return o=r(e).subscribe({next:c=>a({value:c}),error:c=>{a({error:h(c)}),e.abortSignal.removeEventListener("abort",n)},complete:()=>{t&&a({error:new d(991,!1)}),e.abortSignal.removeEventListener("abort",n)}}),u}}))}export{N as a,E as b,U as c};
1
+ import{Qc as f,Rc as w,S as d,Tc as x,Uc as h,_ as v,ha as y,i as m,ja as l,pa as b,ra as D}from"./chunk-UH2E7MMT.js";import{a as g,b as p}from"./chunk-7CGTOI24.js";function N(s,e){let o=e?.injector??v(y),n=new m(1),i=D(()=>{let t;try{t=s()}catch(u){f(()=>n.error(u));return}f(()=>n.next(t))},{injector:o,manualCleanup:!0});return o.get(l).onDestroy(()=>{i.destroy(),n.complete()}),n.asObservable()}function E(s,e){let n=!e?.manualCleanup?e?.injector?.get(l)??v(l):null,i=j(e?.equal),t;e?.requireSync?t=b({kind:0},{equal:i}):t=b({kind:1,value:e?.initialValue},{equal:i});let u,a=s.subscribe({next:r=>t.set({kind:1,value:r}),error:r=>{t.set({kind:2,error:r}),u?.()},complete:()=>{u?.()}});if(e?.requireSync&&t().kind===0)throw new d(601,!1);return u=n?.onDestroy(a.unsubscribe.bind(a)),w(()=>{let r=t();switch(r.kind){case 1:return r.value;case 2:throw r.error;case 0:throw new d(601,!1)}},{equal:e?.equal})}function j(s=Object.is){return(e,o)=>e.kind===1&&o.kind===1&&s(e.value,o.value)}function U(s){return x(p(g({},s),{loader:void 0,stream:e=>{let o,n=()=>o?.unsubscribe();e.abortSignal.addEventListener("abort",n);let i=b({value:void 0}),t,u=new Promise(c=>t=c);function a(c){i.set(c),t?.(i),t=void 0}let r=s.stream;if(r===void 0)throw new d(990,!1);return o=r(e).subscribe({next:c=>a({value:c}),error:c=>{a({error:h(c)}),e.abortSignal.removeEventListener("abort",n)},complete:()=>{t&&a({error:new d(991,!1)}),e.abortSignal.removeEventListener("abort",n)}}),u}}))}export{N as a,E as b,U as c};
package/index.html CHANGED
@@ -120,9 +120,9 @@
120
120
  }
121
121
  }
122
122
  </style>
123
- <style>:root{--font-size:16px;font-size:var(--font-size)}html{color-scheme:light dark}html body{--primary-1:light-dark(oklch(.95 .02 260), oklch(.17 .05 260));--primary-2:light-dark(oklch(.9 .04 260), oklch(.25 .09 260));--primary-3:light-dark(oklch(.86 .07 260), oklch(.32 .12 260));--primary-4:light-dark(oklch(.81 .09 260), oklch(.38 .15 260));--primary-5:light-dark(oklch(.76 .11 260), oklch(.45 .18 260));--primary-6:light-dark(oklch(.71 .14 260), oklch(.51 .21 260));--primary-7:light-dark(oklch(.67 .16 260), oklch(.57 .22 260));--primary-8:light-dark(oklch(.63 .19 260), oklch(.63 .19 260));--primary-9:light-dark(oklch(.52 .21 260), oklch(.71 .14 260));--primary-10:light-dark(oklch(.41 .16 260), oklch(.81 .09 260));--primary-11:light-dark(oklch(.29 .11 260), oklch(.9 .04 260));--primary-12:light-dark(oklch(.15 .04 260), oklch(.95 .02 260));--primary-g2:linear-gradient(180deg, oklch(.71 .14 260) 0%, oklch(.63 .19 260) 50%);--primary-g3:linear-gradient(180deg, oklch(.81 .09 260.01) 0%, oklch(.63 .19 260) 50%);--accent-1:light-dark(hsl(258, 90%, 95.75%), hsl(258, 90%, 9.25%));--accent-2:light-dark(hsl(258, 90%, 91.5%), hsl(258, 90%, 16.5%));--accent-3:light-dark(hsl(258, 90%, 87.25%), hsl(258, 90%, 24.75%));--accent-4:light-dark(hsl(258, 90%, 83%), hsl(258, 90%, 33%));--accent-5:light-dark(hsl(258, 89%, 78%), hsl(258, 90%, 41.25%));--accent-6:light-dark(hsl(258, 90%, 74.5%), hsl(258, 90%, 49.5%));--accent-7:light-dark(hsl(258, 90%, 70.25%), hsl(258, 90%, 57.75%));--accent-8:light-dark(hsl(258, 90%, 66%), hsl(258, 90%, 66%));--accent-9:light-dark(hsl(258, 90%, 51.15%), hsl(258, 90%, 74.5%));--accent-10:light-dark(hsl(258, 90%, 36.3%), hsl(258, 90%, 83%));--accent-11:light-dark(hsl(258, 90%, 21.45%), hsl(258, 90%, 91.5%));--accent-12:light-dark(hsl(258, 90%, 6.6%), hsl(258, 90%, 100%));--accent-g2:linear-gradient(180deg, hsl(258, 90%, 74.5%) 0%, hsl(258, 90%, 66%) 50%);--accent-g3:linear-gradient(180deg, hsl(258, 90%, 83%) 0%, hsl(258, 90%, 66%) 50%);--warn-1:light-dark(hsl(37, 92%, 93.75%), hsl(37, 92%, 9.25%));--warn-2:light-dark(hsl(37, 92%, 87.5%), hsl(37, 92%, 12.5%));--warn-3:light-dark(hsl(37, 92%, 81.25%), hsl(37, 92%, 18.75%));--warn-4:light-dark(hsl(37, 92%, 75%), hsl(37, 92%, 25%));--warn-5:light-dark(hsl(37, 92%, 68.75%), hsl(37, 92%, 31.25%));--warn-6:light-dark(hsl(37, 92%, 62.5%), hsl(37, 92%, 37.5%));--warn-7:light-dark(hsl(37, 92%, 56.25%), hsl(37, 92%, 43.75%));--warn-8:light-dark(hsl(37, 92%, 50%), hsl(37, 92%, 50%));--warn-9:light-dark(hsl(37, 92%, 38.75%), hsl(37, 92%, 62.5%));--warn-10:light-dark(hsl(37, 92%, 27.5%), hsl(37, 92%, 75%));--warn-11:light-dark(hsl(37, 92%, 16.25%), hsl(37, 92%, 87.5%));--warn-12:light-dark(hsl(37, 92%, 5%), hsl(37, 92%, 100%));--warn-g2:linear-gradient(180deg, hsl(37, 92%, 62.5%) 0%, hsl(37, 92%, 50%) 50%);--warn-g3:linear-gradient(180deg, hsl(37, 92%, 75%) 0%, hsl(37, 92%, 50%) 50%);--error-1:light-dark(hsl(0, 84%, 95%), hsl(0, 84%, 7.5%));--error-2:light-dark(hsl(0, 84%, 90%), hsl(0, 84%, 15%));--error-3:light-dark(hsl(0, 84%, 85%), hsl(0, 84%, 22.5%));--error-4:light-dark(hsl(0, 84%, 80%), hsl(0, 84%, 30%));--error-5:light-dark(hsl(0, 84%, 75%), hsl(0, 27%, 10%));--error-6:light-dark(hsl(0, 84%, 70%), hsl(0, 84%, 45%));--error-7:light-dark(hsl(0, 84%, 65%), hsl(0, 84%, 52.5%));--error-8:light-dark(hsl(0, 84%, 60%), hsl(0, 84%, 60%));--error-9:light-dark(hsl(0, 84%, 46.5%), hsl(0, 84%, 70%));--error-10:light-dark(hsl(0, 84%, 33%), hsl(0, 84%, 80%));--error-11:light-dark(hsl(0, 84%, 19.5%), hsl(0, 84%, 90%));--error-12:light-dark(hsl(0, 84%, 6%), hsl(0, 84%, 100%));--error-g2:linear-gradient(180deg, hsl(0, 84%, 70%) 0%, hsl(0, 84%, 60%) 50%);--error-g3:linear-gradient(180deg, hsl(0, 84%, 80%) 0%, hsl(0, 84%, 60%) 50%);--success-1:light-dark(hsl(160, 84%, 92.38%), hsl(160, 84%, 7.88%));--success-2:light-dark(hsl(160, 84%, 84.75%), hsl(160, 3%, 17%));--success-3:light-dark(hsl(160, 84%, 77.13%), hsl(160, 84%, 14.63%));--success-4:light-dark(hsl(160, 84%, 69.5%), hsl(160, 84%, 19.5%));--success-5:light-dark(hsl(160, 84%, 61.88%), hsl(160, 84%, 24.38%));--success-6:light-dark(hsl(160, 84%, 54.25%), hsl(160, 84%, 29.25%));--success-7:light-dark(hsl(160, 84%, 46.63%), hsl(160, 84%, 34.13%));--success-8:light-dark(hsl(160, 84%, 39%), hsl(160, 84%, 39%));--success-9:light-dark(hsl(160, 84%, 30.23%), hsl(160, 84%, 54.25%));--success-10:light-dark(hsl(160, 84%, 21.45%), hsl(160, 84%, 69.5%));--success-11:light-dark(hsl(160, 84%, 12.67%), hsl(160, 84%, 84.75%));--success-12:light-dark(hsl(160, 84%, 3.9%), hsl(160, 84%, 100%));--success-g2:linear-gradient(180deg, hsl(160, 84%, 54.25%) 0%, hsl(160, 84%, 39%) 50%);--success-g3:linear-gradient(180deg, hsl(160, 84%, 69.5%) 0%, hsl(160, 84%, 39%) 50%);--base-1:light-dark(#fff, hsl(0, 0%, 5.75%));--base-2:light-dark(hsl(0, 0%, 98.05%), hsl(0, 0%, 8.75%));--base-3:light-dark(hsl(0, 0%, 94.5%), hsl(0, 0%, 11.5%));--base-4:light-dark(hsl(0, 0%, 84.75%), hsl(0, 0%, 17.25%));--base-5:light-dark(hsl(0, 0%, 79.75%), hsl(0, 0%, 21%));--base-6:light-dark(hsl(0, 0%, 66.25%), hsl(0, 0%, 28.75%));--base-7:light-dark(hsl(0, 0%, 54.5%), hsl(0, 0%, 34.5%));--base-8:light-dark(hsl(0, 0%, 46%), hsl(0, 0%, 54%));--base-9:light-dark(hsl(0, 0%, 35.65%), hsl(0, 0%, 64.5%));--base-10:light-dark(hsl(0, 0%, 25.3%), hsl(0, 0%, 73%));--base-11:light-dark(hsl(0, 0%, 14.95%), hsl(0, 0%, 86.5%));--base-12:light-dark(hsl(0, 0%, 4.6%), hsl(0, 0%, 100%));--base-g2:linear-gradient(180deg, hsl(0, 0%, 66.25%) 0%, hsl(0, 0%, 46%) 50%);--base-g3:linear-gradient(180deg, hsl(0, 0%, 73%) 0%, hsl(0, 0%, 46%) 50%);--base-g6:linear-gradient(180deg, hsl(0, 0%, 25.3%) 0%, hsl(0, 0%, 14.95%) 50%);--base-g7:linear-gradient(180deg, hsl(0, 0%, 35.65%) 0%, hsl(0, 0%, 14.95%) 50%);--primary-c8:var(--light-text);--accent-c8:var(--light-text);--warn-c8:var(--light-text);--error-c8:var(--light-text);--success-c8:var(--light-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 / 1.125rem Inter Tight, sans-serif;--paragraph-40B:600 .75rem / normal Inter Tight, sans-serif;--code-10:500 1rem / normal monospace;--code-20:500 .875rem / normal monospace;--code-30:500 .75rem / normal monospace;--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);--dark-text:#000;--light-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-2)}body{margin:0;font:var(--paragraph-30);color:var(--base-12)}.loading{position:relative}.loading:after{content:"";width:1em;height:1em;border:2px solid var(--loader-c);border-bottom-color:transparent;border-radius:50%;display:flex;box-sizing:border-box;animation:rotation 1s linear infinite;margin:auto;inset:0;position:absolute}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@position-try --bottom-span-right{position-area:bottom span-right;inset:auto;top:.25rem}@position-try --bottom-span-left{position-area:bottom span-left;inset:auto;top:.25rem}@position-try --top-span-right{position-area:top span-right;inset:auto;bottom:.25rem}@position-try --top-span-left{position-area:top span-left;inset:auto;bottom:.25rem}@position-try --right-span-top{position-area:right span-top;inset:auto;left:.25rem}@position-try --left-span-top{position-area:left span-top;inset:auto;right:.25rem}@position-try --right-center{position-area:right center;inset:auto;left:.25rem}@position-try --left-center{position-area:left center;inset:auto;right:.25rem}@position-try --right-span-bottom{position-area:right span-bottom;inset:auto;left:.25rem}@position-try --left-span-bottom{position-area:left span-bottom;inset:auto;right:.25rem}</style><link rel="stylesheet" href="styles-6WG7TD6T.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-6WG7TD6T.css"></noscript></head>
123
+ <style>:root{--font-size:16px;font-size:var(--font-size)}html{color-scheme:light dark}html body{--primary-1:light-dark(oklch(.95 .02 260), oklch(.17 .05 260));--primary-2:light-dark(oklch(.9 .04 260), oklch(.25 .09 260));--primary-3:light-dark(oklch(.86 .07 260), oklch(.32 .12 260));--primary-4:light-dark(oklch(.81 .09 260), oklch(.38 .15 260));--primary-5:light-dark(oklch(.76 .11 260), oklch(.45 .18 260));--primary-6:light-dark(oklch(.71 .14 260), oklch(.51 .21 260));--primary-7:light-dark(oklch(.67 .16 260), oklch(.57 .22 260));--primary-8:light-dark(oklch(.63 .19 260), oklch(.63 .19 260));--primary-9:light-dark(oklch(.52 .21 260), oklch(.71 .14 260));--primary-10:light-dark(oklch(.41 .16 260), oklch(.81 .09 260));--primary-11:light-dark(oklch(.29 .11 260), oklch(.9 .04 260));--primary-12:light-dark(oklch(.15 .04 260), oklch(.95 .02 260));--primary-g2:linear-gradient(180deg, oklch(.71 .14 260) 0%, oklch(.63 .19 260) 50%);--primary-g3:linear-gradient(180deg, oklch(.81 .09 260.01) 0%, oklch(.63 .19 260) 50%);--accent-1:light-dark(hsl(258, 90%, 95.75%), hsl(258, 90%, 9.25%));--accent-2:light-dark(hsl(258, 90%, 91.5%), hsl(258, 90%, 16.5%));--accent-3:light-dark(hsl(258, 90%, 87.25%), hsl(258, 90%, 24.75%));--accent-4:light-dark(hsl(258, 90%, 83%), hsl(258, 90%, 33%));--accent-5:light-dark(hsl(258, 89%, 78%), hsl(258, 90%, 41.25%));--accent-6:light-dark(hsl(258, 90%, 74.5%), hsl(258, 90%, 49.5%));--accent-7:light-dark(hsl(258, 90%, 70.25%), hsl(258, 90%, 57.75%));--accent-8:light-dark(hsl(258, 90%, 66%), hsl(258, 90%, 66%));--accent-9:light-dark(hsl(258, 90%, 51.15%), hsl(258, 90%, 74.5%));--accent-10:light-dark(hsl(258, 90%, 36.3%), hsl(258, 90%, 83%));--accent-11:light-dark(hsl(258, 90%, 21.45%), hsl(258, 90%, 91.5%));--accent-12:light-dark(hsl(258, 90%, 6.6%), hsl(258, 90%, 100%));--accent-g2:linear-gradient(180deg, hsl(258, 90%, 74.5%) 0%, hsl(258, 90%, 66%) 50%);--accent-g3:linear-gradient(180deg, hsl(258, 90%, 83%) 0%, hsl(258, 90%, 66%) 50%);--warn-1:light-dark(hsl(37, 92%, 93.75%), hsl(37, 92%, 9.25%));--warn-2:light-dark(hsl(37, 92%, 87.5%), hsl(37, 92%, 12.5%));--warn-3:light-dark(hsl(37, 92%, 81.25%), hsl(37, 92%, 18.75%));--warn-4:light-dark(hsl(37, 92%, 75%), hsl(37, 92%, 25%));--warn-5:light-dark(hsl(37, 92%, 68.75%), hsl(37, 92%, 31.25%));--warn-6:light-dark(hsl(37, 92%, 62.5%), hsl(37, 92%, 37.5%));--warn-7:light-dark(hsl(37, 92%, 56.25%), hsl(37, 92%, 43.75%));--warn-8:light-dark(hsl(37, 92%, 50%), hsl(37, 92%, 50%));--warn-9:light-dark(hsl(37, 92%, 38.75%), hsl(37, 92%, 62.5%));--warn-10:light-dark(hsl(37, 92%, 27.5%), hsl(37, 92%, 75%));--warn-11:light-dark(hsl(37, 92%, 16.25%), hsl(37, 92%, 87.5%));--warn-12:light-dark(hsl(37, 92%, 5%), hsl(37, 92%, 100%));--warn-g2:linear-gradient(180deg, hsl(37, 92%, 62.5%) 0%, hsl(37, 92%, 50%) 50%);--warn-g3:linear-gradient(180deg, hsl(37, 92%, 75%) 0%, hsl(37, 92%, 50%) 50%);--error-1:light-dark(hsl(0, 84%, 95%), hsl(0, 84%, 7.5%));--error-2:light-dark(hsl(0, 84%, 90%), hsl(0, 84%, 15%));--error-3:light-dark(hsl(0, 84%, 85%), hsl(0, 84%, 22.5%));--error-4:light-dark(hsl(0, 84%, 80%), hsl(0, 84%, 30%));--error-5:light-dark(hsl(0, 84%, 75%), hsl(0, 27%, 10%));--error-6:light-dark(hsl(0, 84%, 70%), hsl(0, 84%, 45%));--error-7:light-dark(hsl(0, 84%, 65%), hsl(0, 84%, 52.5%));--error-8:light-dark(hsl(0, 84%, 60%), hsl(0, 84%, 60%));--error-9:light-dark(hsl(0, 84%, 46.5%), hsl(0, 84%, 70%));--error-10:light-dark(hsl(0, 84%, 33%), hsl(0, 84%, 80%));--error-11:light-dark(hsl(0, 84%, 19.5%), hsl(0, 84%, 90%));--error-12:light-dark(hsl(0, 84%, 6%), hsl(0, 84%, 100%));--error-g2:linear-gradient(180deg, hsl(0, 84%, 70%) 0%, hsl(0, 84%, 60%) 50%);--error-g3:linear-gradient(180deg, hsl(0, 84%, 80%) 0%, hsl(0, 84%, 60%) 50%);--success-1:light-dark(hsl(160, 84%, 92.38%), hsl(160, 84%, 7.88%));--success-2:light-dark(hsl(160, 84%, 84.75%), hsl(160, 3%, 17%));--success-3:light-dark(hsl(160, 84%, 77.13%), hsl(160, 84%, 14.63%));--success-4:light-dark(hsl(160, 84%, 69.5%), hsl(160, 84%, 19.5%));--success-5:light-dark(hsl(160, 84%, 61.88%), hsl(160, 84%, 24.38%));--success-6:light-dark(hsl(160, 84%, 54.25%), hsl(160, 84%, 29.25%));--success-7:light-dark(hsl(160, 84%, 46.63%), hsl(160, 84%, 34.13%));--success-8:light-dark(hsl(160, 84%, 39%), hsl(160, 84%, 39%));--success-9:light-dark(hsl(160, 84%, 30.23%), hsl(160, 84%, 54.25%));--success-10:light-dark(hsl(160, 84%, 21.45%), hsl(160, 84%, 69.5%));--success-11:light-dark(hsl(160, 84%, 12.67%), hsl(160, 84%, 84.75%));--success-12:light-dark(hsl(160, 84%, 3.9%), hsl(160, 84%, 100%));--success-g2:linear-gradient(180deg, hsl(160, 84%, 54.25%) 0%, hsl(160, 84%, 39%) 50%);--success-g3:linear-gradient(180deg, hsl(160, 84%, 69.5%) 0%, hsl(160, 84%, 39%) 50%);--base-1:light-dark(#fff, hsl(0, 0%, 5.75%));--base-2:light-dark(hsl(0, 0%, 98.05%), hsl(0, 0%, 8.75%));--base-3:light-dark(hsl(0, 0%, 94.5%), hsl(0, 0%, 11.5%));--base-4:light-dark(hsl(0, 0%, 84.75%), hsl(0, 0%, 17.25%));--base-5:light-dark(hsl(0, 0%, 79.75%), hsl(0, 0%, 21%));--base-6:light-dark(hsl(0, 0%, 66.25%), hsl(0, 0%, 28.75%));--base-7:light-dark(hsl(0, 0%, 54.5%), hsl(0, 0%, 34.5%));--base-8:light-dark(hsl(0, 0%, 46%), hsl(0, 0%, 54%));--base-9:light-dark(hsl(0, 0%, 35.65%), hsl(0, 0%, 64.5%));--base-10:light-dark(hsl(0, 0%, 25.3%), hsl(0, 0%, 73%));--base-11:light-dark(hsl(0, 0%, 14.95%), hsl(0, 0%, 86.5%));--base-12:light-dark(hsl(0, 0%, 4.6%), hsl(0, 0%, 100%));--base-g2:linear-gradient(180deg, hsl(0, 0%, 66.25%) 0%, hsl(0, 0%, 46%) 50%);--base-g3:linear-gradient(180deg, hsl(0, 0%, 73%) 0%, hsl(0, 0%, 46%) 50%);--base-g6:linear-gradient(180deg, hsl(0, 0%, 25.3%) 0%, hsl(0, 0%, 14.95%) 50%);--base-g7:linear-gradient(180deg, hsl(0, 0%, 35.65%) 0%, hsl(0, 0%, 14.95%) 50%);--primary-c8:var(--light-text);--accent-c8:var(--light-text);--warn-c8:var(--light-text);--error-c8:var(--light-text);--success-c8:var(--light-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 / 1.125rem Inter Tight, sans-serif;--paragraph-40B:600 .75rem / normal Inter Tight, sans-serif;--code-10:500 1rem / normal monospace;--code-20:500 .875rem / normal monospace;--code-30:500 .75rem / normal monospace;--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);--dark-text:#000;--light-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-2)}body{margin:0;font:var(--paragraph-30);color:var(--base-12)}.loading{position:relative}.loading:after{content:"";width:1em;height:1em;border:2px solid var(--loader-c);border-bottom-color:transparent;border-radius:50%;display:flex;box-sizing:border-box;animation:rotation 1s linear infinite;margin:auto;inset:0;position:absolute}@keyframes rotation{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@position-try --bottom-span-right{position-area:bottom span-right;inset:auto;top:.25rem}@position-try --bottom-span-left{position-area:bottom span-left;inset:auto;top:.25rem}@position-try --top-span-right{position-area:top span-right;inset:auto;bottom:.25rem}@position-try --top-span-left{position-area:top span-left;inset:auto;bottom:.25rem}@position-try --right-span-top{position-area:right span-top;inset:auto;left:.25rem}@position-try --left-span-top{position-area:left span-top;inset:auto;right:.25rem}@position-try --right-center{position-area:right center;inset:auto;left:.25rem}@position-try --left-center{position-area:left center;inset:auto;right:.25rem}@position-try --right-span-bottom{position-area:right span-bottom;inset:auto;left:.25rem}@position-try --left-span-bottom{position-area:left span-bottom;inset:auto;right:.25rem}</style><link rel="stylesheet" href="styles-43GHZ572.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-43GHZ572.css"></noscript></head>
124
124
  <body>
125
125
  <app-root></app-root>
126
126
  <div class="loading">Connecting ...</div>
127
- <link rel="modulepreload" href="chunk-LGILJ5LY.js"><link rel="modulepreload" href="chunk-S2F2BNOG.js"><link rel="modulepreload" href="chunk-3ZCJK7PY.js"><link rel="modulepreload" href="chunk-XHUQYWAM.js"><link rel="modulepreload" href="chunk-YF6ULZXZ.js"><link rel="modulepreload" href="chunk-SLS3DCJP.js"><link rel="modulepreload" href="chunk-SUY5AQLW.js"><link rel="modulepreload" href="chunk-6Q6SSTBK.js"><link rel="modulepreload" href="chunk-I4XRVBRQ.js"><link rel="modulepreload" href="chunk-RFB5A3B7.js"><script src="polyfills-7RKI4BGK.js" type="module"></script><script src="main-IO5OKXBW.js" type="module"></script></body>
127
+ <link rel="modulepreload" href="chunk-3XCT4PYH.js"><link rel="modulepreload" href="chunk-JTPUS6BT.js"><link rel="modulepreload" href="chunk-KHFOQETZ.js"><link rel="modulepreload" href="chunk-Y4EMWRGE.js"><link rel="modulepreload" href="chunk-XCVBN7EK.js"><link rel="modulepreload" href="chunk-ADB5QRUO.js"><link rel="modulepreload" href="chunk-22PELS6R.js"><link rel="modulepreload" href="chunk-6Q6SSTBK.js"><link rel="modulepreload" href="chunk-MRSBKQQM.js"><link rel="modulepreload" href="chunk-35APLYI4.js"><script src="polyfills-7RKI4BGK.js" type="module"></script><script src="main-SIS2YGAN.js" type="module"></script></body>
128
128
  </html>
@@ -0,0 +1 @@
1
+ import{b as Ie,c as ke}from"./chunk-3XCT4PYH.js";import{a as we}from"./chunk-JTPUS6BT.js";import{a as Ee}from"./chunk-KHFOQETZ.js";import{b as I}from"./chunk-Y4EMWRGE.js";import"./chunk-XCVBN7EK.js";import{a as Me}from"./chunk-ADB5QRUO.js";import{b as Te}from"./chunk-22PELS6R.js";import{a as V}from"./chunk-6Q6SSTBK.js";import{a as Se}from"./chunk-MRSBKQQM.js";import"./chunk-35APLYI4.js";import"./chunk-LU7TIW3P.js";import"./chunk-XZNYCTQB.js";import{a as H}from"./chunk-R6TFME5I.js";import{a as h,b as ye,c as v,d as Re,e as E}from"./chunk-AZRNX5LU.js";import{u as be,x as Ce}from"./chunk-NCXKMSRH.js";import{a as ge,e as ve}from"./chunk-QAQMMCTH.js";import{c as le,d as me,g as de,h as ue,i as he,j as fe}from"./chunk-KHZ5AXGT.js";import{a as ne}from"./chunk-L2QOWZDR.js";import{a as re,b as se,c as ie,e as ae,f as pe,g as ce}from"./chunk-BRL4YYWO.js";import{ha as te,ma as oe}from"./chunk-BDQJFOCO.js";import"./chunk-FSHBOASN.js";import{A as B,F as J,Fb as Y,L as T,Mc as Z,N as K,Nc as ee,V as C,Y as _,_ as s,f as F,g as W,gb as Q,ha as q,ia as z,l as $,m as G,pa as d,q as w,ra as X,z as P}from"./chunk-UH2E7MMT.js";import"./chunk-7CGTOI24.js";var k=class e{#e=s(h);#d=s(v);ngOnInit(){ye(),this.#d.fetchConfig(),this.#e.clearAllNotCurrentVersion()}static \u0275fac=function(t){return new(t||e)};static \u0275cmp=Q({type:e,selectors:[["app-root"]],decls:1,vars:0,template:function(t,n){t&1&&Y(0,"router-outlet")},dependencies:[le],encapsulation:2})};var Ae={production:!0,baseUrl:"/api",machineServerUrl:"${WS_URL}",defaultTimeout:3e4};var f=new _("ENVIRONMENT");var A=class e{#e=s(ve);isLoaded=d(!1);webmodules=d(null);preload(o=!1){let t=this.#e.getApiV1Webmodules().pipe(K(n=>this.webmodules.set(n)),J(()=>this.isLoaded.set(!0)));if(o)return t;t.subscribe()}static \u0275fac=function(t){return new(t||e)};static \u0275prov=C({token:e,factory:e.\u0275fac,providedIn:"root"})};var Ue=()=>{let e=s(E);return e.token()?!0:e.checkProxyAuthed().pipe(T(o=>o?$(!0):e.refreshToken().pipe(w(()=>!0))))},je=()=>{let e=s(v),o=s(I),t=s(q),n=e.relayIsEnabled()?"longpoll":"websocket",i=[t.get(H).preload(!0),t.get(H).preloadFilterGroups(!0),t.get(A).preload(!0)];return e.configLoaded===null?P(i).pipe(w(()=>n)):e.configLoaded?.pipe(T(()=>P(i)))},Fe=()=>!0,Ne={path:"connect/:typeParam",loadComponent:()=>import("./chunk-2D2IMXRC.js")},We=()=>{let e=s(h);return!e.getItem("locale")&&navigator.language&&e.setItem("locale",navigator.language),!0},Oe=[{path:"",children:[{path:"login",canActivate:[],loadComponent:()=>import("./chunk-S3FBC24H.js")},{path:"logout",loadComponent:()=>import("./chunk-OZEGNE5W.js")},{path:"",canActivate:[Ue],children:[{path:"",canActivate:[je,Fe,We],children:[{path:"welcome",loadComponent:()=>import("./chunk-GE3DHZ5E.js"),children:[{path:"",redirectTo:"select",pathMatch:"full"},{path:"select",loadComponent:()=>import("./chunk-5FQ5SDPZ.js")},Ne]},{path:"",loadComponent:()=>import("./chunk-TVA237PQ.js"),children:[{path:"",loadComponent:()=>import("./chunk-2JEQ7BV6.js")},Ne,{path:"destinations",loadComponent:()=>import("./chunk-ST6HBZ55.js")},{path:"add-backup",loadComponent:()=>import("./chunk-V2NDJVRA.js")},{path:"backup/:id/export",loadComponent:()=>import("./chunk-3PUCEFO5.js")},{path:"backup/import",loadComponent:()=>import("./chunk-WALKMFYR.js")},{path:"backup-draft/:id",loadComponent:()=>import("./chunk-L26PO2OC.js"),loadChildren:()=>import("./chunk-IJY7JGOL.js")},{path:"backup/:id",loadComponent:()=>import("./chunk-L26PO2OC.js"),loadChildren:()=>import("./chunk-IJY7JGOL.js")},{path:"backup/:id/log",loadComponent:()=>import("./chunk-SI4C7DCS.js")},{path:"backup/:id/database",loadComponent:()=>import("./chunk-7735MTTP.js")},{path:"backup/:id/commandline",loadComponent:()=>import("./chunk-N5ZBB5VR.js")},{path:"backup/:id/commandline/:runId",loadComponent:()=>import("./chunk-G6V7E6VM.js")},{path:"backup/:id/delete",loadComponent:()=>import("./chunk-QRLREAIK.js")},{path:"restore",children:[{path:"",loadComponent:()=>import("./chunk-NK2B3YKP.js")},{path:"from-config",loadComponent:()=>import("./chunk-AMSFSVKQ.js")}]},{path:"restore-from-files",loadComponent:()=>import("./chunk-QRABW3YV.js"),loadChildren:()=>import("./chunk-5ENU22GJ.js")},{path:"restore-draft/:id",loadComponent:()=>import("./chunk-QRABW3YV.js"),loadChildren:()=>import("./chunk-5ENU22GJ.js")},{path:"restore/:id",loadComponent:()=>import("./chunk-QRABW3YV.js"),loadChildren:()=>import("./chunk-5ENU22GJ.js")},{path:"status",loadComponent:()=>import("./chunk-6EOMDYWB.js")},{path:"settings",loadComponent:()=>import("./chunk-WPVSY5MT.js")},{path:"about",loadComponent:()=>import("./chunk-CJVAK3WV.js"),children:[{path:"",redirectTo:"general",pathMatch:"full"},{path:"general",loadComponent:()=>import("./chunk-VDHWNNO7.js")},{path:"changelog",loadComponent:()=>import("./chunk-APAWDC4O.js")},{path:"libraries",loadComponent:()=>import("./chunk-DTIGWCAE.js")},{path:"system-info",loadComponent:()=>import("./chunk-2NLWVJNK.js")},{path:"server-settings",loadComponent:()=>import("./chunk-VI7MBIGT.js")},{path:"logs",loadChildren:()=>import("./chunk-EU6N52DH.js")},{path:"crashlogs",loadComponent:()=>import("./chunk-J6WVOYQ6.js")}]}]}]}]}]}];var xe=(e,o)=>{let t=s(E),n=s(me),i=s(h),p=s(f),m=i.getItem("locale"),a=s(Ce),g=Ie(m),r=ge.BASE||"",c=e.url===`${r}/api/v1/auth/login`,u=e.url===`${r}/api/v1/auth/logout`,S=e.url===`${r}/api/v1/auth/refresh`,y=e.url===`${r}/api/v1/progressstate`,x=e.url===`${r}/api/v1/remoteoperation/test`,M=e.url===`${r}/api/v1/filesystem/validate`,De=e.url.startsWith(`${r}/api/v2/`),L=t.token(),U=e,j=e.headers.has("custom-proxy-check")||L===Re;if(L&&e.url.startsWith(r+p.baseUrl)&&!j){let l=e.headers.set("Authorization",`Bearer ${L}`);m&&m!=="en-US"&&(l=l.set("X-Ui-Language",g)),U=e.clone({headers:l})}return o(U).pipe(w(l=>{if(l.type===4&&l.status===200&&De){let b=l.body;if(b?.Success===!1)throw{status:200,message:b?.Error??"Unknown error",error:{Error:b?.Error??"Unknown error"},requestBody:b}}return l}),B(l=>{let b=l.error?.Error||`Error Code: ${l.status}, Message: ${l.message}`;if(!j){let R=!0;if((y&&l.status===404||x||M)&&(R=!1),S&&l.status===401&&(R=!1,t.logout(),n.navigate(["/logout"])),!c&&!S&&!u&&l.status===401)return R=!1,t.refreshToken().pipe(T(()=>o(e.clone({headers:e.headers.set("Authorization",`Bearer ${t.token()}`)}))));R&&a.error(b)}return G(()=>({error:l,message:b}))}))};var N=class e{#e=s(z);showError(o){let t=this.#e.querySelector("body > .loading");if(!t)return;t.classList.add("has-error"),t.innerHTML="";let n=this.#e.createElement("div");n.classList.add("loading-title"),n.textContent="Unable to connect";let i=this.#e.createElement("div");i.classList.add("loading-error"),i.textContent=o||"Unknown error";let p=this.#e.createElement("button");p.type="button",p.classList.add("retry-button"),p.textContent="Retry",p.addEventListener("click",()=>{this.#e.defaultView?.location.reload()}),t.append(n,i,p)}static \u0275fac=function(t){return new(t||e)};static \u0275prov=C({token:e,factory:e.\u0275fac,providedIn:"root"})};var $e="1.0.0",Le=`portal-proxy-client-${V()}`,Ge=1,O=class e{#e=1e3;#d=s(f);#u=s(N);#o=d("disconnected");#h=d(this.#e);#a=d(!1);#n=d(!1);#p=d(null);#c=d(null);#s=!1;isConnectedToMachineServer=this.#n.asReadonly();wsState=this.#o.asReadonly();#l=[];#r={};#t=null;#f=new TextDecoder("utf-8");#m=null;#y=X(()=>{let o=this.#a(),t=this.#h(),n=this.#p(),i=this.#c();if(!n||!i||!o||!t||t<this.#e){this.#m&&window.clearInterval(this.#m);return}this.#m=window.setInterval(()=>{this.connectToMachineServer(n,i)},t)});#i(o){this.#s||(this.#s=!0,this.#u.showError(o||"Unable to connect to the server."))}#g(){this.#s||(this.#s=!0)}utf8Atob(o){let t=Uint8Array.from(atob(o),i=>i.charCodeAt(0)),n=this.#f.decode(t);return n?JSON.parse(n):null}connectToMachineServer(o,t,n){let i=n?.reconnect??!1,p=this.wsState();(p==="disconnected"||p==="error"||i)&&(this.#t?.close(),this.#t=null),!this.#t&&(this.#s=!1,this.#t=new WebSocket(t),this.#o.set("connecting"),this.#t.onopen=()=>{this.#o.set("connect"),this.#n.set(!0),this.#a.set(!1),this.#p.set(null),this.#c.set(null)},this.#t.onclose=()=>{this.#o.set("disconnected"),this.#n.set(!1),this.#p.set(o),this.#c.set(t),this.#a.set(!0)},this.#t.onerror=()=>{this.#o.set("error")},this.#t.onmessage=m=>{let a=JSON.parse(m.data);if(this.wsState()==="connect"){if(a.type!=="welcome"){this.disconnectFromMachineServer(`Unexpected message type, expected 'welcome' but got '${a.type}'`);return}let r={token:o,publicKey:"",clientVersion:$e,protocolVersion:Ge},c=this.createResponse(a,"authportal",r);this.#o.set("welcome"),this.#t?.send(c)}else if(this.wsState()==="welcome"){if(a.type!=="authportal"){this.disconnectFromMachineServer(`Unexpected message type, expected 'authportal' but got '${a.type}'`);return}var g=JSON.parse(a.payload??"");if(g.accepted===!1){this.#i("Authentication failed"),this.disconnectFromMachineServer("Authentication failed");return}for(this.#o.set("authenticated"),this.#n.set(!0);this.#l.length>0;){let r=this.#l.pop();r&&this.#r[r.messageId]&&this.activateCommand(r)}}else if(this.wsState()==="authenticated"){if(a.type!=="command"){console.warn(`Unexpected message type, expected 'command' but got '${a.type}'`);return}let r=this.#r[a.messageId];if(r){if(a.errorMessage)this.#i(a.errorMessage),r.reject(a.errorMessage);else{let c=JSON.parse(a.payload??"");c.statusCode>=400?this.#i(c.body||`Initial request failed with status code ${c.statusCode}`):this.#g(),c.body=c?.body==null?null:this.utf8Atob(c.body),r.resolve(c)}delete this.#r[a.messageId],window.clearTimeout(r.timer)}}})}disconnectFromMachineServer(o=null){o&&console.error(o),this.#t?.close(),this.#t=null,this.#o.set("disconnected"),this.#n.set(!1)}createResponse(o,t,n){let i={from:Le,to:o.from,type:t,messageId:o.messageId,payload:JSON.stringify(n)};return JSON.stringify(i)}sendCommand(o,t,n,i,p,m,a,g=5e3){return(this.wsState()==="disconnected"||this.wsState()==="error")&&this.connectToMachineServer(o,n),new Promise((r,c)=>{let u=V(),y={from:Le,to:t,type:"command",messageId:u,payload:JSON.stringify({method:i,path:p,body:m,headers:a})},x={resolve:r,reject:c,timer:window.setTimeout(()=>{let M=this.#r[u];M&&(delete this.#r[u],this.#i("The request timed out before receiving a response."),M.reject("Timeout"))},g)};this.#r[u]=x,this.#n()?this.activateCommand(y):this.#l.push(y)})}activateCommand(o){this.#t?.send(JSON.stringify(o))}static \u0275fac=function(t){return new(t||e)};static \u0275prov=C({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))}function Pe(e,o,t){let n=e.relayconfigState.config();if(n===null)return t(o);let i=Be(o.body),p={};o.headers.keys().forEach(r=>{p[r]=o.headers.get(r)??""});let m=o.headers.get("timeout"),a=m!==null?parseInt(m):e.defaultTimeout;o.url.startsWith("/api/v1/serverstate")&&o.url.includes("longpoll=true")&&(a=1e3*99);let g=e.relayWebsocket.sendCommand(n.accessToken,n.clientId,n.machineServerUrl,o.method,o.url,i,p,a);return new F(r=>{g.then(c=>{let u=new re;p!=null&&Object.keys(p).forEach(y=>{u.set(y,p[y])});let S=new se({body:c.body,status:c.statusCode,statusText:"OK",headers:u});r.next(S),r.complete()}).catch(c=>{r.error(new ie({error:c??"Unknown error",status:0,statusText:c??"Unknown error"}))})})}var He=(e,o)=>{let t={relayconfigState:s(v),defaultTimeout:s(f).defaultTimeout,relayWebsocket:s(O)},n=t.relayconfigState.config();if(t.relayconfigState.configLoaded!==null&&n===null){let i=new W;return t.relayconfigState.configLoaded.subscribe(p=>{p&&Pe(t,e,o).subscribe(i)}),i}return Pe(t,e,o)};var Ve={providers:[Z(),ue(Oe,fe(),he(de)),ae(ce(),pe([He,xe])),h,{provide:f,useValue:Ae},{provide:ee,useValue:ke()},{provide:be,useValue:{alertVariant:"simple"}},we,I,Te,oe,Se,te,Me,Ee]};ne(k,Ve);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@duplicati/ngclient",
3
- "version": "0.0.210",
3
+ "version": "0.0.212",
4
4
  "license": "MIT",
5
5
  "contributors": [
6
6
  "sp90",