@duplicati/ngclient 0.0.134 → 0.0.136

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/spk.woff2 +0 -0
  2. package/{chunk-FC45TEB6.js → chunk-2BX65XJQ.js} +1 -1
  3. package/{chunk-5MMV45NA.js → chunk-2G6TVFPZ.js} +1 -1
  4. package/chunk-2W6BEUGU.js +1 -0
  5. package/{chunk-U44OBOIE.js → chunk-32366MQR.js} +1 -1
  6. package/chunk-3B3CD5KI.js +1 -0
  7. package/{chunk-D3OE4S5N.js → chunk-42LUYQ5S.js} +1 -1
  8. package/{chunk-EQS67O4J.js → chunk-43A44MVC.js} +1 -1
  9. package/chunk-4NAIBN6Y.js +1 -0
  10. package/chunk-4WF2SEOM.js +1 -0
  11. package/chunk-6ABAW3RM.js +1 -0
  12. package/chunk-6JDDO2JR.js +1 -0
  13. package/chunk-6JQM2X3B.js +1 -0
  14. package/chunk-6NTCVCCY.js +1 -0
  15. package/{chunk-Y7OD7PZG.js → chunk-7HKUM56D.js} +1 -1
  16. package/{chunk-HMK6M2N7.js → chunk-7MV7VPDB.js} +1 -1
  17. package/chunk-7N3LIJV6.js +1 -0
  18. package/{chunk-EW3XN62R.js → chunk-AFLQOHXV.js} +1 -1
  19. package/{chunk-5RPDEEQ3.js → chunk-B26UYXA3.js} +1 -1
  20. package/{chunk-ZUXVEXBA.js → chunk-B5ABLFSQ.js} +1 -1
  21. package/{chunk-ZIJ7ZEHR.js → chunk-BCHZRC5K.js} +1 -1
  22. package/chunk-BTMXQPBB.js +7 -0
  23. package/chunk-CWLTHXVS.js +1 -0
  24. package/chunk-D7KAEUGB.js +1 -0
  25. package/{chunk-O4HSW7GI.js → chunk-DBD6FOQL.js} +1 -1
  26. package/{chunk-XD6MBGQY.js → chunk-DNJOKPEL.js} +1 -1
  27. package/{chunk-5CUMYXCI.js → chunk-EKP3ML6M.js} +1 -1
  28. package/{chunk-IVP5ZHDB.js → chunk-ELFZD53L.js} +1 -1
  29. package/chunk-FCCV5HAI.js +6 -0
  30. package/chunk-FHZLYBIT.js +1 -0
  31. package/chunk-FUEIZLWH.js +1 -0
  32. package/{chunk-B6DE3TTE.js → chunk-FUZLIOUQ.js} +1 -1
  33. package/{chunk-OQHMS5HM.js → chunk-FZG6OXT3.js} +1 -1
  34. package/{chunk-PSPK4OPB.js → chunk-HDV3QKLN.js} +1 -1
  35. package/chunk-HLYFP2CB.js +1 -0
  36. package/chunk-HU5PJ35D.js +1 -0
  37. package/chunk-IQHBPLHL.js +1 -0
  38. package/{chunk-VVJBMGZR.js → chunk-J6SAG7QN.js} +1 -1
  39. package/chunk-JFOXV66M.js +1 -0
  40. package/chunk-JM7VAPIC.js +1 -0
  41. package/{chunk-BKHSNMGE.js → chunk-JOUBVX7V.js} +1 -1
  42. package/chunk-K6ISVHYD.js +1 -0
  43. package/{chunk-PL2MNRTA.js → chunk-L5Y36SCW.js} +1 -1
  44. package/chunk-LDIHJZUP.js +1 -0
  45. package/chunk-LDIZ5E5Z.js +1 -0
  46. package/chunk-LFMC622O.js +1 -0
  47. package/{chunk-JDCGGJ7O.js → chunk-LKJ2SBQA.js} +1 -1
  48. package/chunk-M3URTEVE.js +2 -0
  49. package/chunk-MQTQESMQ.js +1 -0
  50. package/chunk-MVUGI7Y7.js +1 -0
  51. package/chunk-NSIELNIY.js +1 -0
  52. package/chunk-OHMTS3T7.js +1 -0
  53. package/chunk-P3AZ3DXZ.js +1 -0
  54. package/chunk-P4KFR7NY.js +1 -0
  55. package/chunk-P4KOC4NP.js +1 -0
  56. package/{chunk-TTFJPAWM.js → chunk-POGTGPHE.js} +1 -1
  57. package/chunk-PVLT4ZGI.js +1 -0
  58. package/{chunk-MDO4PWV6.js → chunk-QBJGIKPM.js} +1 -1
  59. package/chunk-QECYPB3W.js +1 -0
  60. package/{chunk-CRALFIWB.js → chunk-QVEGV6V6.js} +1 -1
  61. package/{chunk-NZD6UMYZ.js → chunk-ROOTIQEO.js} +1 -1
  62. package/{chunk-WBYTRHI7.js → chunk-SLJD5T2G.js} +1 -1
  63. package/chunk-SMQWGV7N.js +1 -0
  64. package/chunk-T5KDR4TA.js +1 -0
  65. package/{chunk-4VPA3END.js → chunk-UFP4XKZF.js} +1 -1
  66. package/{chunk-XZWXLEK2.js → chunk-UFQWL2QF.js} +1 -1
  67. package/{chunk-PEPDXQBY.js → chunk-VPTK3JCV.js} +1 -1
  68. package/{chunk-UZTRBMWL.js → chunk-VRE6C66C.js} +1 -1
  69. package/{chunk-QNWYJ7OR.js → chunk-WF6EAWTW.js} +1 -1
  70. package/{chunk-J64ETWKB.js → chunk-WRWIBPXL.js} +1 -1
  71. package/{chunk-3Q5JEF3K.js → chunk-WXARH2SG.js} +1 -1
  72. package/chunk-WXAZWUCA.js +1 -0
  73. package/chunk-X3RII7G2.js +1 -0
  74. package/{chunk-L6BZ6TEU.js → chunk-X7SFNRJF.js} +1 -1
  75. package/{chunk-TIPHYMRQ.js → chunk-XBJRRUMO.js} +1 -1
  76. package/chunk-XIIFTZ5G.js +1 -0
  77. package/{chunk-CFESUDFC.js → chunk-XLKQSWFD.js} +1 -1
  78. package/chunk-Y5IRBMLB.js +1 -0
  79. package/chunk-Y5UKX3VC.js +1 -0
  80. package/chunk-YZYJP5XH.js +1 -0
  81. package/{chunk-VG6LA5R3.js → chunk-ZFCSCXTC.js} +1 -1
  82. package/chunk-ZFONU33Q.js +1 -0
  83. package/index.html +2 -2
  84. package/locale/messages.de.json +1 -1
  85. package/locale/messages.it.json +2 -2
  86. package/locale/messages.nl_NL.json +2 -2
  87. package/{main-RQTAFLAT.js → main-HYB6MFRZ.js} +1 -1
  88. package/package.json +1 -1
  89. package/styles-IH5IS4WG.css +1 -0
  90. package/chunk-3UUTPGTW.js +0 -1
  91. package/chunk-4WUC2NLU.js +0 -1
  92. package/chunk-5XSYLFRW.js +0 -1
  93. package/chunk-62DY5NTG.js +0 -1
  94. package/chunk-67XQIEG5.js +0 -1
  95. package/chunk-67YRCRMI.js +0 -7
  96. package/chunk-6HFJTYBK.js +0 -1
  97. package/chunk-7J7GUBLS.js +0 -1
  98. package/chunk-BC3MLJH3.js +0 -1
  99. package/chunk-BHSG643V.js +0 -1
  100. package/chunk-BSRYIN2F.js +0 -1
  101. package/chunk-DE64A2ZS.js +0 -1
  102. package/chunk-DNBOZ26J.js +0 -1
  103. package/chunk-DQM3ATT4.js +0 -1
  104. package/chunk-EVINCUTE.js +0 -1
  105. package/chunk-EWZGGCZ7.js +0 -1
  106. package/chunk-FATQ7BT6.js +0 -1
  107. package/chunk-FZTQVXG4.js +0 -1
  108. package/chunk-G6LCHQJE.js +0 -1
  109. package/chunk-GORQL5YP.js +0 -1
  110. package/chunk-GP2W7XZF.js +0 -1
  111. package/chunk-HD37ILAE.js +0 -6
  112. package/chunk-HE5L47WR.js +0 -1
  113. package/chunk-HJQBTK5I.js +0 -1
  114. package/chunk-HLBBIEIQ.js +0 -1
  115. package/chunk-HWUEL5ZO.js +0 -1
  116. package/chunk-IDAED3OA.js +0 -1
  117. package/chunk-IPC6G72N.js +0 -1
  118. package/chunk-JHVU3HSL.js +0 -1
  119. package/chunk-O3JEFNCL.js +0 -1
  120. package/chunk-OHEFY2D6.js +0 -1
  121. package/chunk-OTM4ZTG4.js +0 -1
  122. package/chunk-SAISKISU.js +0 -1
  123. package/chunk-SMNWIGMY.js +0 -1
  124. package/chunk-SSMDFXE3.js +0 -1
  125. package/chunk-UWF5JLY2.js +0 -1
  126. package/chunk-V6WRFB7W.js +0 -1
  127. package/chunk-VFVXE2DC.js +0 -1
  128. package/chunk-WESN3ZUC.js +0 -1
  129. package/chunk-Y4IRFRVB.js +0 -1
  130. package/chunk-YW7YXFSC.js +0 -1
  131. package/chunk-ZCT7SRIM.js +0 -1
  132. package/chunk-ZQYPQTU3.js +0 -2
  133. package/styles-4QA7NM7N.css +0 -1
@@ -0,0 +1 @@
1
+ import{ea as dt}from"./chunk-CWLTHXVS.js";import{$b as rt,Ab as Z,Db as ve,Eb as ee,Fc as qe,Hc as F,Ic as N,Mc as ce,Nc as w,Oc as ie,Pa as it,Pc as ct,Qa as E,Qb as B,Qc as U,Rb as O,Sa as _e,Sb as j,Sc as pt,Tb as D,U as Ee,Ua as me,Wa as nt,X as Ze,Yb as ot,Yc as ze,Z as P,Zb as te,_b as se,a as Je,aa as et,ab as A,ac as G,bc as z,ca as tt,cb as Se,cc as at,da as H,dc as oe,ea as L,ec as R,fb as ge,fc as He,gc as ae,ha as Te,hc as ye,ja as Me,jb as Re,jc as Le,kc as je,lc as Be,ma as Ie,mc as lt,na as I,nc as le,ob as st,oc as K,rb as Ve,sb as W,sc as We,ta as $,tb as q,tc as ke,ub as Pe,vb as Ae,wb as Fe,xb as re,yb as _,zb as S}from"./chunk-BTMXQPBB.js";import{a as ne,b as pe,c as Ke,d as h,e as b,f as T,g as x}from"./chunk-EUDKD2JW.js";var Y=["*"],Dt=[[["","icon",""]],[["","title",""]],"*",[["","content",""]]],Ot=["[icon]","[title]","*","[content]"];function bt(t,e){t&1&&(_(0,"spk-icon",3),R(1,"info"),S())}function Et(t,e){t&1&&(_(0,"spk-icon",3),R(1,"info"),S())}function Tt(t,e){t&1&&(_(0,"spk-icon",3),R(1,"warning"),S())}function Mt(t,e){t&1&&(_(0,"spk-icon",3),R(1,"warning-octagon"),S())}function It(t,e){t&1&&(_(0,"spk-icon",3),R(1,"check-circle"),S())}function Rt(t,e){t&1&&(_(0,"spk-icon",3),R(1,"question"),S())}function Vt(t,e){if(t&1){let o=ee();_(0,"spk-icon",7),B("click",function(){H(o);let n=O();return L(n.removeAlert())}),R(1,"plus"),S()}}var Pt=["dialogRef"];function At(t,e){if(t&1){let o=ee();_(0,"div",4),B("click",function(){H(o);let n=O();return L(n.isOpen.set(!1))}),S()}}var Ft=["spk-button",""];var Ht=["triggerRef"],Lt=["popoverRef"],jt=[[["","trigger",""]],"*"],Bt=["[trigger]","*"];var Wt=()=>({closeOnButton:!1,closeOnEsc:!0});var qt=[[["label"]],[["","prefix",""]],[["","textPrefix",""]],[["input"]],[["textarea"]],[["","textSuffix",""]],[["","suffix",""]],[["","error",""]],[["","hint",""]]],zt=["label","[prefix]","[textPrefix]","input","textarea","[textSuffix]","[suffix]","[error]","[hint]"],ut=["input"],Nt=[[["label"]]],Ut=["label"];function $t(t,e){if(t&1&&(_(0,"div",3),R(1),S()),t&2){let o=O();E(),He(o.files()[0].name)}}function Qt(t,e){if(t&1&&(_(0,"div",3),R(1),S()),t&2){let o=O();E(),ae("",o.files().length," files selected")}}function Yt(t,e){if(t&1&&(_(0,"div",4),R(1),S()),t&2){let o=O();E(),He(o.filesOver()?o.overlayText():o.placeholder())}}var Xt=["optionsRef"],Gt=["*",[["","menu",""]]],Kt=["*","[menu]"];function Jt(t,e){t&1&&(_(0,"spk-icon",5),R(1,"caret-down"),S())}var Zt=[[["label"]],[["input","type","range"]]],ei=["label","input[type=range]"],ti=["optionsWrap"],ii=[[["label"]],[["input"]],[["textarea"]]],ni=["label","input","textarea"],si=()=>({closeOnButton:!1,closeOnEsc:!1}),Ye=t=>({$implicit:t});function oi(t,e){if(t&1&&R(0),t&2){let o=O();ae(" ",o.inputValue()," ")}}function ri(t,e){t&1&&ve(0)}function ai(t,e){if(t&1&&ge(0,ri,1,0,"ng-container",13),t&2){let o=O(3).$implicit;O(2);let i=K(2);re("ngTemplateOutlet",i)("ngTemplateOutletContext",ke(2,Ye,o))}}function li(t,e){if(t&1&&R(0),t&2){let o=O(3).$implicit,i=O(2);ae(" ",i.getLabel(o)," ")}}function ci(t,e){if(t&1){let o=ee();_(0,"spk-chip",11),W(1,ai,1,4,"ng-container")(2,li,1,1),_(3,"spk-icon",12),B("click",function(n){H(o);let s=O(2).$index,u=O(2);return L(u.removeSelectedOptionByIndex(n,s))}),R(4,"x-bold"),S()()}if(t&2){let o=O(4),i=K(2);oe(o.selectClasses()),E(),q(i?1:2)}}function pi(t,e){t&1&&ve(0)}function di(t,e){if(t&1&&ge(0,pi,1,0,"ng-container",13),t&2){let o=O(4).$implicit;O(2);let i=K(2);re("ngTemplateOutlet",i)("ngTemplateOutletContext",ke(2,Ye,o))}}function ui(t,e){if(t&1&&R(0),t&2){let o=O(4).$implicit,i=O(2);ae(" ",i.getLabel(o)," ")}}function hi(t,e){if(t&1&&W(0,di,1,4,"ng-container")(1,ui,1,1),t&2){O(5);let o=K(2);q(o?0:1)}}function fi(t,e){if(t&1&&W(0,hi,2,1),t&2){O(4);let o=K(5);q(o?-1:0)}}function mi(t,e){if(t&1&&W(0,ci,5,3,"spk-chip",10)(1,fi,1,1),t&2){O(3);let o=K(4);q(o?0:1)}}function gi(t,e){if(t&1&&W(0,mi,2,1),t&2){let o=e.$implicit;q(o?0:-1)}}function vi(t,e){if(t&1&&Ae(0,gi,1,1,null,null,Pe),t&2){O();let o=K(1);Fe(o)}}function Ci(t,e){t&1&&ve(0)}function _i(t,e){if(t&1&&ge(0,Ci,1,0,"ng-container",14),t&2){O(2);let o=K(0);re("ngTemplateOutlet",o)}}function Si(t,e){if(t&1&&R(0),t&2){let o=O(2);ae(" ",o.placeholderText()??""," ")}}function yi(t,e){if(t&1&&W(0,_i,1,1,"ng-container")(1,Si,1,1),t&2){O();let o=K(0);q(o?0:1)}}function ki(t,e){t&1&&(_(0,"spk-icon",6),R(1,"caret-down"),S())}function wi(t,e){t&1&&Z(0,"spk-spinner",7)}function xi(t,e){t&1&&(_(0,"spk-icon",6),R(1,"list-magnifying-glass"),S())}function Di(t,e){t&1&&(_(0,"spk-icon",6),R(1,"magnifying-glass"),S())}function Oi(t,e){if(t&1){let o=ee();_(0,"spk-icon",15),B("click",function(n){H(o);let s=O();return L(s.clear(n))}),R(1,"x-bold"),S()}}function bi(t,e){t&1&&(_(0,"spk-icon",6),R(1,"caret-down"),S())}function Ei(t,e){t&1&&(_(0,"spk-icon",6),R(1,"caret-up"),S())}function Ti(t,e){if(t&1&&Z(0,"spk-checkbox"),t&2){let o=O().$index,i=O();oe(i.selectClasses()),z("active",i.isSelected(o))}}function Mi(t,e){t&1&&ve(0)}function Ii(t,e){if(t&1&&ge(0,Mi,1,0,"ng-container",13),t&2){let o=O().$implicit;O();let i=K(3);re("ngTemplateOutlet",i)("ngTemplateOutletContext",ke(2,Ye,o))}}function Ri(t,e){if(t&1&&R(0),t&2){let o=O().$implicit,i=O();ae(" ",i.getLabel(o)," ")}}function Vi(t,e){if(t&1){let o=ee();_(0,"li",16),B("click",function(){let n=H(o).$index,s=O();return L(s.toggleOptionByIndex(n))}),W(1,Ti,1,4,"spk-checkbox",17),W(2,Ii,1,4,"ng-container")(3,Ri,1,1),S()}if(t&2){let o=e.$index,i=O(),n=K(3);z("selected",i.isSelected(o))("focused",o===i.focusedOptionIndex()),E(),q(i.selectMultiple()?1:-1),E(),q(n?2:3)}}var Pi=["dragImageElement"],Ai=[[["","sidenav",""]],[["","sidenav-closed-topbar",""]],"*"],Fi=["[sidenav]","[sidenav-closed-topbar]","*"];function Hi(t,e){t&1&&Z(0,"div",1,0)}function Li(t,e){if(t&1){let o=ee();_(0,"div",7),B("drop",function(n){H(o);let s=O();return L(s.drop(n))})("dragover",function(n){H(o);let s=O();return L(s.dragOver(n))})("dragenter",function(){H(o);let n=O();return L(n.dragEnter())})("dragleave",function(){H(o);let n=O();return L(n.dragLeave())}),S()}}function ji(t,e){if(t&1){let o=ee();_(0,"div",8),B("dragstart",function(n){H(o);let s=O();return L(s.dragStart(n))})("dragend",function(n){H(o);let s=O();return L(s.dragEnd(n))})("drag",function(n){H(o);let s=O();return L(s.drag(n))})("touchstart",function(n){H(o);let s=O();return L(s.touchStart(n))})("touchmove",function(n){H(o);let s=O();return L(s.touchMove(n))})("touchend",function(n){H(o);let s=O();return L(s.touchEnd(n))})("touchcancel",function(n){H(o);let s=O();return L(s.touchCancel(n))}),S()}}var Bi=["thead"],Wi=[[["","table-header",""]],"*",[["","table-no-rows",""]]],qi=["[table-header]","*","[table-no-rows]"];function zi(t,e){t&1&&Z(0,"spk-progress-bar",1)}function Ni(t,e){t&1&&(_(0,"div",2),D(1,2),S())}var Ui=[[["","title",""]],"*"],$i=["[title]","*"];function Qi(t,e){t&1&&R(0,"Title")}function Yi(t,e){t&1&&(_(0,"spk-icon",1),R(1,"caret-down"),S())}var Xi=["bold","thin","light","fill"],ue=(()=>{var e,o;let i=class i{constructor(){b(this,e,P($));b(this,o,P(me))}ngAfterContentInit(){let s=h(this,e).nativeElement.textContent?.trim();if(!s)return;let u=s.split("-").at(-1);u&&Xi.includes(u)&&h(this,o).addClass(h(this,e).nativeElement,u)}};e=new WeakMap,o=new WeakMap,i.\u0275fac=function(u){return new(u||i)},i.\u0275cmp=A({type:i,selectors:[["spk-icon"]],ngContentSelectors:Y,decls:1,vars:0,template:function(u,f){u&1&&(j(),D(0))},encapsulation:2,changeDetection:0});let t=i;return t})(),En=(()=>{let e=class e{constructor(){this._el=P($),this.alertService=w(null),this.id=w(null),this.alertClasses=F(()=>this._el.nativeElement.classList.toString())}removeAlert(){this.id()&&this.alertService()&&this.alertService()?.removeAlert(this.id())}};e.\u0275fac=function(n){return new(n||e)},e.\u0275cmp=A({type:e,selectors:[["spk-alert"]],inputs:{alertService:[1,"alertService"],id:[1,"id"]},ngContentSelectors:Ot,decls:17,vars:4,consts:[["ref",""],[1,"alert"],[1,"icon"],[1,"state-icon"],[1,"title"],[1,"close-icon"],[1,"content"],[1,"close-icon",3,"click"]],template:function(n,s){if(n&1&&(j(Dt),_(0,"div",1)(1,"div",2,0),D(3),S(),_(4,"div",2),W(5,bt,2,0,"spk-icon",3)(6,Et,2,0,"spk-icon",3)(7,Tt,2,0,"spk-icon",3)(8,Mt,2,0,"spk-icon",3)(9,It,2,0,"spk-icon",3)(10,Rt,2,0,"spk-icon",3),S(),_(11,"div",4),D(12,1),D(13,2),S(),W(14,Vt,2,0,"spk-icon",5),_(15,"div",6),D(16,3),S()()),n&2){let u=rt(2);E(),G("display",u.children.length?"block":"none");let f=s.alertClasses();E(4),q(f.includes("primary")?5:f.includes("accent")?6:f.includes("warn")?7:f.includes("error")?8:f.includes("success")?9:10),E(9),q(s.id()?14:-1)}},dependencies:[ue],encapsulation:2,changeDetection:0});let t=e;return t})();function Xe(){return Date.now().toString(36)+Math.random().toString(36).substring(2)}var Tn=(()=>{let e=class e{constructor(){this.alertHistory=I([]),this.alertHistoryIsOpen=I(!1),this.alertHistoryIsHidden=I(!0)}error(i){this.addAlert({type:"error",title:i??"An error occured"})}success(i){this.addAlert({type:"success",title:i})}question(i){this.addAlert({type:"question",title:i})}warning(i){this.addAlert({type:"warn",title:i})}info(i){this.addAlert({type:"primary",title:i})}addAlert(i){let n=Xe();this.alertHistory.update(s=>[pe(ne({},i),{isOpen:!0,animateIn:!0,animateOut:!1,id:n}),...s]),setTimeout(()=>{this.alertHistory.update(s=>s.map(u=>pe(ne({},u),{animateIn:u.id===n?!1:u.animateIn})))},40),setTimeout(()=>{this.hideAlert(n)},2500)}removeAlert(i){this.alertHistory.update(n=>n.map(s=>pe(ne({},s),{animateOut:s.id===i?!1:s.animateOut}))),setTimeout(()=>{this.alertHistory.update(n=>n.filter(s=>s.id!==i))},300)}hideAlert(i){this.alertHistory.update(n=>n.map(s=>pe(ne({},s),{isOpen:s.id===i?!1:s.isOpen})))}setHidden(i){this.alertHistoryIsHidden.set(i)}};e.\u0275fac=function(n){return new(n||e)},e.\u0275prov=Ee({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})(),be=new Ze("Sparkle UI Config"),Gi={class:"default",width:void 0,maxWidth:void 0,height:void 0,maxHeight:void 0,closeOnButton:!0,closeOnEsc:!0,closeOnOutsideClick:!0},Ki=(()=>{var e;let o=class o{constructor(){b(this,e);T(this,e,P(be,{optional:!0})),this.dialogRef=ie("dialogRef"),this.isOpen=U(!1),this.options=w(),this.closed=ce(),this.defaultOptionMerge=F(()=>ne(pe(ne({},Gi),{class:h(this,e)?.dialogType??"default"}),this.options())),this.abortController=null,this.isOpenEffect=N(()=>{let n=this.dialogRef()?.nativeElement;this.abortController&&this.abortController.abort(),this.abortController=new AbortController,this.isOpen()?(n?.showModal(),n?.addEventListener("close",()=>{this.isOpen.set(!1),this.closed.emit()},{signal:this.abortController?.signal}),document.addEventListener("keydown",s=>{s.key==="Escape"&&!this.defaultOptionMerge().closeOnEsc&&s.preventDefault(),s.key==="Escape"&&this.defaultOptionMerge().closeOnEsc&&this.isOpen.set(!1)},{signal:this.abortController?.signal})):(this.closed.emit(),n?.close())})}ngOnDestroy(){this.abortController?.abort()}};e=new WeakMap,o.\u0275fac=function(s){return new(s||o)},o.\u0275cmp=A({type:o,selectors:[["spk-dialog"]],viewQuery:function(s,u){s&1&&te(u.dialogRef,Pt,5),s&2&&se()},inputs:{isOpen:[1,"isOpen"],options:[1,"options"]},outputs:{isOpen:"isOpenChange",closed:"closed"},ngContentSelectors:Y,decls:5,vars:11,consts:[["dialogRef",""],["spkDialog",""],[1,"content"],[1,"closeable-overlay"],[1,"closeable-overlay",3,"click"]],template:function(s,u){if(s&1&&(j(),_(0,"dialog",1,0)(2,"div",2),D(3),S(),W(4,At,1,0,"div",3),S()),s&2){let f=u.defaultOptionMerge();oe(f.class),G("width",f.width??"")("max-width",f.maxWidth??"")("max-height",f.maxHeight??"")("height",f.height??""),E(4),q(u.defaultOptionMerge().closeOnOutsideClick?4:-1)}},encapsulation:2,changeDetection:0});let t=o;return t})(),Mn=(()=>{var e,o,i,ht,Ce;let u=class u{constructor(){b(this,i);b(this,e);b(this,o);T(this,e,document.querySelector("body")),T(this,o,P(st)),this.compRef=null,this.insertedCompRef=null,this.closedFieldSub=null,this.compClosedSub=null}open(l,r){let d=h(this,o).injector,m=x(this,i,ht).call(this),k=r||{},{data:v,closed:a}=k,c=Ke(k,["data","closed"]);this.compRef&&x(this,i,Ce).call(this),this.insertedCompRef=ze(l,{environmentInjector:d}),this.compRef=ze(Ki,{hostElement:m,environmentInjector:d,projectableNodes:[[this.insertedCompRef.location.nativeElement]]});let p=this.insertedCompRef.instance?.data,g=this.insertedCompRef.instance?.closed;if(v){if(Ie(p))this.insertedCompRef.setInput("data",v);else if(!Ie(p))throw new Error("data is not an input signal on the passed component")}g instanceof qe&&(this.closedFieldSub=g.subscribe((...M)=>{a?.(...M),x(this,i,Ce).call(this)})),h(this,o).attachView(this.insertedCompRef.hostView),h(this,o).attachView(this.compRef.hostView),this.insertedCompRef.changeDetectorRef.detectChanges(),this.compRef.changeDetectorRef.detectChanges(),this.compRef.instance.isOpen.set(!0),this.compRef.setInput("options",c),this.compRef.instance.closed.subscribe(()=>C());let y=this;function C(){var M;g&&g instanceof qe?g.emit(!1):a?.(void 0),x(M=y,i,Ce).call(M)}return{component:this.insertedCompRef.instance,close:C}}ngOnDestroy(){x(this,i,Ce).call(this)}};e=new WeakMap,o=new WeakMap,i=new WeakSet,ht=function(){let l=document.createElement("spk-dialog-ref");return l.id="spk-dialog-ref",document.getElementById("spk-dialog-ref")||h(this,e).append(l),document.getElementById("spk-dialog-ref")},Ce=function(){this.insertedCompRef&&(h(this,o).detachView(this.insertedCompRef.hostView),this.closedFieldSub?.unsubscribe(),this.insertedCompRef.destroy()),this.compRef&&(h(this,o).detachView(this.compRef.hostView),this.compClosedSub?.unsubscribe(),this.compRef.destroy())},u.\u0275fac=function(r){return new(r||u)},u.\u0275prov=Ee({token:u,factory:u.\u0275fac,providedIn:"root"});let t=u;return t})(),In=(()=>{let e=class e{};e.\u0275fac=function(n){return new(n||e)},e.\u0275cmp=A({type:e,selectors:[["spk-button-group"]],ngContentSelectors:Y,decls:1,vars:0,template:function(n,s){n&1&&(j(),D(0))},encapsulation:2,changeDetection:0});let t=e;return t})(),Ji=(()=>{let e=class e{};e.\u0275fac=function(n){return new(n||e)},e.\u0275cmp=A({type:e,selectors:[["","spk-button",""]],attrs:Ft,ngContentSelectors:Y,decls:1,vars:0,template:function(n,s){n&1&&(j(),D(0))},encapsulation:2,changeDetection:0});let t=e;return t})(),Rn=(()=>{var e;let o=class o{constructor(){b(this,e);T(this,e,P(be,{optional:!0})),this.class=I(h(this,e)?.cardType??"default")}};e=new WeakMap,o.\u0275fac=function(s){return new(s||o)},o.\u0275cmp=A({type:o,selectors:[["spk-card"]],hostVars:2,hostBindings:function(s,u){s&2&&oe(u.class())},ngContentSelectors:Y,decls:1,vars:0,template:function(s,u){s&1&&(j(),D(0))},encapsulation:2,changeDetection:0});let t=o;return t})(),Zi=(()=>{var e;let o=class o{constructor(){b(this,e,P($))}onClick(){h(this,e).nativeElement.querySelector("input")&&h(this,e).nativeElement.querySelector("input").focus()}};e=new WeakMap,o.\u0275fac=function(s){return new(s||o)},o.\u0275cmp=A({type:o,selectors:[["spk-checkbox"]],hostBindings:function(s,u){s&1&&B("click",function(){return u.onClick()})},ngContentSelectors:Y,decls:6,vars:0,consts:[[1,"box"],[1,"inherit","default-indicator"],[1,"inherit","indeterminate-indicator"]],template:function(s,u){s&1&&(j(),_(0,"div",0)(1,"spk-icon",1),R(2,"check"),S(),_(3,"spk-icon",2),R(4,"minus"),S()(),D(5))},dependencies:[ue],encapsulation:2,changeDetection:0});let t=o;return t})(),en=(()=>{let e=class e{};e.\u0275fac=function(n){return new(n||e)},e.\u0275cmp=A({type:e,selectors:[["spk-chip"]],ngContentSelectors:Y,decls:2,vars:0,template:function(n,s){n&1&&(j(),_(0,"div"),D(1),S())},encapsulation:2,changeDetection:0});let t=e;return t})();var tn=["scroll","auto"],nn={width:void 0,height:void 0,closeOnButton:!0,closeOnEsc:!0},ft=(()=>{var e,o,i,mt,we;let u=class u{constructor(){b(this,i);b(this,e);b(this,o);T(this,e,P(pt)),T(this,o,4),this.SUPPORTS_ANCHOR=typeof CSS<"u"&&CSS.supports("position-anchor","--abc")&&CSS.supports("anchor-name","--abc"),this.above=w(!1),this.right=w(!1),this.onHover=w(!1),this.asMultiLayer=w(!1),this.markForCheck=w(null),this._above=I(this.above()),this._right=I(this.right()),this.disableOpenByClick=w(!1),this.isOpen=U(!1),this.options=w(),this.closed=ce(),this.defaultOptionMerge=F(()=>ne(ne({},nn),this.options())),this.triggerRef=ie.required("triggerRef"),this.popoverRef=ie.required("popoverRef"),this.id=I("--"+Xe()),this.menuStyle=I(null),this.openAbort=null,this.openEffect=N(()=>{let l=this.popoverRef()?.nativeElement;if(this.isOpen()){this.openAbort&&this.openAbort.abort(),this.openAbort=new AbortController;let d={signal:this.openAbort?.signal};l?.showPopover(),document.addEventListener("keydown",m=>{m.key==="Escape"&&!this.defaultOptionMerge().closeOnEsc&&m.preventDefault(),m.key==="Escape"&&this.defaultOptionMerge().closeOnEsc&&this.isOpen.set(!1)},d),setTimeout(()=>{x(this,i,mt).call(this,this.popoverRef()?.nativeElement).addEventListener("scroll",()=>x(this,i,we).call(this),d),window?.addEventListener("resize",()=>x(this,i,we).call(this),d),x(this,i,we).call(this)})}else l.hidePopover(),this.openAbort?.abort(),this.closed.emit()}),this.markForCheckEffect=N(()=>{this.markForCheck()&&h(this,e).markForCheck()})}toggleIsOpen(l){l.preventDefault(),l.stopPropagation(),this.disableOpenByClick()||this.isOpen.set(!this.isOpen())}eventClose(l){l.stopPropagation(),l.preventDefault(),this.isOpen.set(!1)}};e=new WeakMap,o=new WeakMap,i=new WeakSet,mt=function(l){let r=l.parentElement;for(;r;){if(tn.indexOf(window?.getComputedStyle(r).overflowY)>-1&&r.scrollHeight>r.clientHeight)return r;r=r.parentElement}return document.documentElement},we=function(){let l=this.triggerRef()?.nativeElement.getBoundingClientRect(),r=this.popoverRef()?.nativeElement.getBoundingClientRect(),d=l.left,m=l.bottom,v=d,a=m+h(this,o),c=v+r.width>window?.innerWidth,p=a+r.height>window?.innerHeight;if(this.SUPPORTS_ANCHOR)this._above.set(p),this._right.set(c);else{if(v=d,a=m+h(this,o),p){let y=l.top-r.height-h(this,o);y<0||(a=y)}c&&(v=l.right-r.width,v<0&&(v=0));let g={left:v+"px",top:a+"px"};this.menuStyle.set(g)}},u.\u0275fac=function(r){return new(r||u)},u.\u0275cmp=A({type:u,selectors:[["spk-popover"]],viewQuery:function(r,d){r&1&&(te(d.triggerRef,Ht,5),te(d.popoverRef,Lt,5)),r&2&&se(2)},hostVars:6,hostBindings:function(r,d){r&2&&z("above",d.above())("right",d.right())("multi-layer",d.asMultiLayer())},inputs:{above:[1,"above"],right:[1,"right"],onHover:[1,"onHover"],asMultiLayer:[1,"asMultiLayer"],markForCheck:[1,"markForCheck"],disableOpenByClick:[1,"disableOpenByClick"],isOpen:[1,"isOpen"],options:[1,"options"]},outputs:{isOpen:"isOpenChange",closed:"closed"},ngContentSelectors:Bt,decls:10,vars:6,consts:[["triggerRef",""],["popoverRef",""],[1,"trigger",3,"click"],[1,"trigger-wrapper"],["spk-button","",1,"outlined"],["popover","",1,"popover"],[1,"overlay",3,"click"]],template:function(r,d){if(r&1){let m=ee();j(jt),_(0,"div",2,0),B("click",function(a){return H(m),L(d.toggleIsOpen(a))}),_(2,"div",3),D(3),S(),_(4,"button",4),R(5,"Open popover"),S()(),_(6,"div",5,1)(8,"div",6),B("click",function(a){return H(m),L(d.isOpen()&&d.eventClose(a))}),S(),D(9,1),S()}r&2&&(G("anchor-name",d.id()),E(6),at(d.menuStyle()),G("position-anchor",d.id()))},dependencies:[Ji],encapsulation:2,changeDetection:0});let t=u;return t})();var Vn=(()=>{let e=class e{};e.\u0275fac=function(n){return new(n||e)},e.\u0275cmp=A({type:e,selectors:[["spk-divider"]],ngContentSelectors:Y,decls:1,vars:0,template:function(n,s){n&1&&(j(),D(0))},encapsulation:2,changeDetection:0});let t=e;return t})(),Ge=(()=>{var e;let o=class o{constructor(){b(this,e,P($));Re(()=>{let n=typeof CSS<"u"&&CSS.supports("field-sizing","content"),s=h(this,e).nativeElement.querySelector("textarea");if(!n&&s!==null){let l=function(){s.style.height="auto",s.style.height=s.scrollHeight+"px"},r=function(){setTimeout(l,0)};var u=l,f=r;s.addEventListener("change",l),s.addEventListener("cut",r),s.addEventListener("paste",r),s.addEventListener("drop",r),s.addEventListener("keydown",r),s.focus(),s.select(),l()}})}onClick(){h(this,e).nativeElement.querySelector("input")&&h(this,e).nativeElement.querySelector("input").focus(),h(this,e).nativeElement.querySelector("textarea")&&h(this,e).nativeElement.querySelector("textarea").focus()}};e=new WeakMap,o.\u0275fac=function(s){return new(s||o)},o.\u0275cmp=A({type:o,selectors:[["spk-form-field"]],hostBindings:function(s,u){s&1&&B("click",function(){return u.onClick()})},ngContentSelectors:zt,decls:15,vars:0,consts:[[1,"input-wrap"],[1,"prefix"],[1,"suffix"],[1,"helpers"],[1,"error-wrap"],[1,"hint"]],template:function(s,u){s&1&&(j(qt),D(0),_(1,"div",0)(2,"div",1),D(3,1),D(4,2),S(),D(5,3),D(6,4),_(7,"div",2),D(8,5),D(9,6),S()(),_(10,"div",3)(11,"div",4),D(12,7),S(),_(13,"div",5),D(14,8),S()())},encapsulation:2,changeDetection:0});let t=o;return t})(),Pn=(()=>{let e=class e{constructor(){this._el=P($),this.inputRef=ie.required("input"),this.filesOver=I(!1),this.multiple=w(),this.accept=w(null),this.placeholder=U("Click or drag files here"),this.overlayText=w("Drop files here"),this.files=U([]),this.fileUploadClasses=F(()=>this._el.nativeElement.classList.toString()),this.inputEffect=N(()=>{let i=this.inputRef().nativeElement;i&&(i.placeholder&&this.placeholder.set(i.placeholder),i.addEventListener("dragover",n=>{n.preventDefault(),this.filesOver.set(!0)}),i.addEventListener("dragleave",n=>{n.preventDefault(),this.filesOver.set(!1)}),i.addEventListener("drop",n=>{n.preventDefault(),this.filesOver.set(!1);let s=n.dataTransfer?.files;s&&s.length>0&&(this.handleFileUpload(Array.from(s)),i.files=s)}),i.addEventListener("change",n=>{n.preventDefault(),this.handleFileUpload(Array.from(n.target.files))}))})}handleFileUpload(i){this.multiple()?this.files.update(n=>[...n,...i]):this.files.set(i)}};e.\u0275fac=function(n){return new(n||e)},e.\u0275cmp=A({type:e,selectors:[["spk-file-upload"]],viewQuery:function(n,s){n&1&&te(s.inputRef,ut,5),n&2&&se()},inputs:{multiple:[1,"multiple"],accept:[1,"accept"],placeholder:[1,"placeholder"],overlayText:[1,"overlayText"],files:[1,"files"]},outputs:{placeholder:"placeholderChange",files:"filesChange"},ngContentSelectors:Ut,decls:12,vars:7,consts:[["inputWrap",""],["input",""],["ngProjectAs","input",5,["input"],1,"input"],[1,"files-text"],[1,"placeholder"],["type","file"],[1,"bg-overlay"],["suffix",""]],template:function(n,s){n&1&&(j(Nt),_(0,"spk-form-field"),D(1,0,["ngProjectAs","label",5,["label"]]),_(2,"div",2,0),W(4,$t,2,1,"div",3)(5,Qt,2,1,"div",3)(6,Yt,2,1,"div",4),Z(7,"input",5,1)(9,"div",6),S(),_(10,"spk-icon",7),R(11,"upload-simple"),S()()),n&2&&(oe(s.fileUploadClasses()),E(4),q(s.files().length===1?4:s.files().length>1?5:6),E(3),Ve("multiple",s.multiple())("accept",s.accept()),E(2),z("files-over",s.filesOver()))},dependencies:[Ge,ue],encapsulation:2,changeDetection:0});let t=e;return t})(),An=(()=>{let e=class e{};e.\u0275fac=function(n){return new(n||e)},e.\u0275cmp=A({type:e,selectors:[["spk-list"]],ngContentSelectors:Y,decls:1,vars:0,template:function(n,s){n&1&&(j(),D(0))},encapsulation:2,changeDetection:0});let t=e;return t})();function gt(t,e){let o=e?.injector||(tt(gt),P(Te)),{debounce:i=0,initialValue:n=void 0,transform:s=C=>C,compare:u=(C,k)=>C===k,forceType:f=void 0,returnPreviousValue:l=!0}=e||{},r=I(n),d=o.get(Me),m=F(()=>{let C=t()?.nativeElement;if(C instanceof HTMLInputElement||C instanceof HTMLTextAreaElement)return g(C)}),v=!1,a,c=null;return N(()=>{let C=m();if(!C)return r.set(l&&a?s(a):void 0);n!==void 0&&C.value===""?r.set(n):C.value!==""&&p();let k=M=>{c!==null&&clearTimeout(c),c=setTimeout(()=>{c=null,p()},i)};C.addEventListener("input",k),C.addEventListener("inputValueChanged",k),d.onDestroy(()=>{C.removeEventListener("input",k),C.removeEventListener("inputValueChanged",k),c!==null&&clearTimeout(c)})},{injector:o}),N(()=>{let C=m();if(!C)return;let k=r()??"",M=k==null?"":String(k);C.value!==M&&(a=M,C.value=M,C.dispatchEvent(new Event("input")))},{injector:o}),r;function p(){if(!v){v=!0;try{let C=m();if(!C)return;let k=C.value,M=f?y(k,f):s(k);a=k,u(r(),M)||r.set(M)}finally{v=!1}}}function g(C){return Object.defineProperty(C,"value",{configurable:!0,get(){return Object.getOwnPropertyDescriptor(Object.getPrototypeOf(C),"value").get.call(this)},set(k){Object.getOwnPropertyDescriptor(Object.getPrototypeOf(C),"value").set.call(this,k);let V=new CustomEvent("inputValueChanged",{bubbles:!0,cancelable:!0,detail:{value:k}});return this.dispatchEvent(V),k}}),C}function y(C,k){switch(k){case"string":return C.toString();case"number":let M=Number(C);return isNaN(M)?void 0:M;case"boolean":return C.toLowerCase()==="true"?!0:C.toLowerCase()==="false"?!1:void 0;default:return C}}}function vt(t,e){let o=P(Te),i=o.get(Me),n=I([]),s=null,u=null,f=(r,d)=>{u&&u.disconnect();let m=Array.from(r.nativeElement.querySelectorAll(d.join(",")));n.set(m),typeof MutationObserver<"u"&&(u=new MutationObserver(v=>{requestAnimationFrame(()=>{let a=Array.from(r.nativeElement.querySelectorAll(d.join(",")));n.set(a)})}),u.observe(r.nativeElement,{childList:!0,subtree:!0})),i.onDestroy(()=>l())};s=N(()=>{let r=typeof t=="function"&&t[Je]?t():t,d=typeof e=="function"?e():e;r&&d?.length>0?f(r,d):(n.set([]),u&&(u.disconnect(),u=null))},{injector:o});function l(){s&&s.destroy(),u&&u.disconnect()}return{signal:n.asReadonly(),destroy:l}}var Fn=(()=>{var e,o,Ct,Ne;let s=class s{constructor(){b(this,o);b(this,e);T(this,e,P(me)),this.above=w(!1),this.right=w(!1),this.asMultiLayer=w(!1),this.openIndicator=w(!1),this.disabled=w(!1),this.customOptionElementSelectors=w(["button"]),this.keepClickedOptionActive=w(!1),this.closeOnClick=w(!0),this.isOpen=U(!1),this.closed=ce(),this.searchable=w(!1),this.activeOptionIndex=I(-1),this.inputRef=ie("input"),this.optionsRef=ie("optionsRef"),this.options=vt(this.optionsRef,this.customOptionElementSelectors),this.optionsEl=F(()=>this.options.signal().filter(f=>!f.disabled)),this.inputValue=gt(this.inputRef),this.abortController=null,this.optionsEffect=N(()=>{if(!this.isOpen())return;this.abortController&&(this.abortController.abort(),this.abortController=null),this.abortController=new AbortController;let f=this.inputRef()?.nativeElement;f&&(queueMicrotask(()=>f.focus()),this.closeOnClick()||this.optionsRef()?.nativeElement?.addEventListener("click",r=>{let d=r.target,m=this.activeElements();if(!m.length){let a=this.optionsEl();this.activeElements.set(a),m=a}let v=m.findIndex(a=>a===d);v>-1&&(this.activeOptionIndex.set(v),f.focus())}),f.addEventListener("keydown",l=>{let r=this.activeOptionIndex();l.key==="ArrowDown"?(l.preventDefault(),this.activeOptionIndex.set(this.nextActiveIndex(r))):l.key==="ArrowUp"?(l.preventDefault(),this.activeOptionIndex.set(this.prevActiveIndex(r))):l.key==="Enter"?(l.preventDefault(),r>-1&&(this.activeElements()[r].click(),queueMicrotask(()=>this.close("active")))):l.key==="Tab"&&(l.preventDefault(),this.close("closed"))},{signal:this.abortController.signal}))}),this._lastElementList=[],this.activeElements=I([]),this.lastInputValue="",this.inputValueEffect=N(()=>{if(!this.searchable())return;let l=(this.inputValue()??"").toLowerCase();if(x(this,o,Ne).call(this),!l||l==="")return;let r=this._lastElementList.length&&l.length>this.lastInputValue.length?this._lastElementList:this.optionsEl();this.lastInputValue=l;for(let d=0;d<r.length;d++){let m=r[d],v=m.textContent?.toLowerCase()||"",a=x(this,o,Ct).call(this,v,l);m.value=a}r=r.filter(d=>d.value>0).sort((d,m)=>m.value-d.value);for(let d=0;d<r.length;d++)h(this,e).setStyle(r[d],"order",d);this.activeElements.set(r),this._lastElementList=r}),this.activeOptionIndexEffect=N(()=>{let f=this.activeElements(),l=this.activeOptionIndex();for(let r=0;r<f.length;r++)f[r].classList.remove("active");l>-1&&(f[l].scrollIntoView({block:"center"}),f[l].classList.add("active"))})}nextActiveIndex(f){let l=this.activeElements();if(!l.length){let d=this.optionsEl();this.activeElements.set(d),l=d}if(f===-1||f===l.length-1)return 0;let r=f+1;return l[r].disabled?this.nextActiveIndex(r):r}prevActiveIndex(f){let l=this.activeElements();if(!l.length){let d=this.optionsEl();this.activeElements.set(d),l=d}if(f===0||f===-1)return l.length-1;let r=f-1;return l[r].disabled?this.prevActiveIndex(r):r}close(f="closed",l){this.inputValue.set(""),this.closeOnClick()&&((!this.keepClickedOptionActive()||f==="closed")&&x(this,o,Ne).call(this),this.isOpen.set(!1),this.closed.emit(f==="active"))}ngOnDestroy(){this.abortController&&(this.abortController.abort(),this.abortController=null)}};e=new WeakMap,o=new WeakSet,Ct=function(f,l){if(!l)return 0;let r=0,d=-1,m=0,v=!0;for(let a=0;a<l.length;a++){let c=l[a];if(f.length>d+1&&f[d+1]===c)r+=a===0?100:150,d++,m++;else{let p=f.indexOf(c,d+1);if(a>0&&(v=!1),p===-1)return 0;r+=100,d=p,m++}}return v&&l.length===m&&(r+=1e3),r+=m*20,r},Ne=function(){this.activeOptionIndex.set(-1);let f=this.optionsEl();for(let l=0;l<f.length;l++)f[l].classList.remove("active")},s.\u0275fac=function(l){return new(l||s)},s.\u0275cmp=A({type:s,selectors:[["spk-menu"]],viewQuery:function(l,r){l&1&&(te(r.inputRef,ut,5),te(r.optionsRef,Xt,5)),l&2&&se(2)},hostVars:6,hostBindings:function(l,r){l&2&&z("disabled",r.disabled())("has-search",r.searchable())("multi-layer",r.asMultiLayer())},inputs:{above:[1,"above"],right:[1,"right"],asMultiLayer:[1,"asMultiLayer"],openIndicator:[1,"openIndicator"],disabled:[1,"disabled"],customOptionElementSelectors:[1,"customOptionElementSelectors"],keepClickedOptionActive:[1,"keepClickedOptionActive"],closeOnClick:[1,"closeOnClick"],isOpen:[1,"isOpen"],searchable:[1,"searchable"]},outputs:{isOpen:"isOpenChange",closed:"closed"},ngContentSelectors:Kt,decls:12,vars:14,consts:[["formFieldWrapper",""],["input",""],["optionsRef",""],[3,"isOpenChange","closed","isOpen","disableOpenByClick","above","right","asMultiLayer","options"],["trigger","",3,"click"],[1,"open-indicator"],[1,"form-field-wrap"],[1,"small","stretch"],["type","text","placeholder","Search"],[1,"options",3,"click"]],template:function(l,r){if(l&1){let d=ee();j(Gt),_(0,"spk-popover",3,0),Be("isOpenChange",function(v){return H(d),je(r.isOpen,v)||(r.isOpen=v),L(v)}),B("closed",function(){return H(d),L(r.close("fromPopover"))}),_(2,"div",4),B("click",function(){return H(d),L(!r.disabled()&&r.isOpen.set(!0))}),D(3),W(4,Jt,2,0,"spk-icon",5),S(),_(5,"div",6)(6,"spk-form-field",7),Z(7,"input",8,1),S()(),_(9,"div",9,2),B("click",function(){return H(d),L(r.close("active"))}),D(11,1),S()()}l&2&&(Le("isOpen",r.isOpen),re("disableOpenByClick",!0)("above",r.above())("right",r.right())("asMultiLayer",r.asMultiLayer())("options",We(13,Wt)),E(2),z("is-open",r.isOpen()),E(2),q(r.openIndicator()?4:-1),E(2),z("hidden",r.searchable()===!1),E(3),z("searching",r.searchable()&&r.inputValue()!==""))},dependencies:[ft,Ge,ue],encapsulation:2,changeDetection:0});let t=s;return t})(),sn=(()=>{let e=class e{constructor(){this.value=w(void 0)}};e.\u0275fac=function(n){return new(n||e)},e.\u0275cmp=A({type:e,selectors:[["spk-progress-bar"]],inputs:{value:[1,"value"]},decls:1,vars:2,consts:[[1,"progress-bar"]],template:function(n,s){n&1&&Z(0,"div",0),n&2&&G("width",s.value(),"%")},encapsulation:2,changeDetection:0});let t=e;return t})(),Hn=(()=>{var e;let o=class o{constructor(){b(this,e,P($))}onClick(){h(this,e).nativeElement.querySelector("input")&&h(this,e).nativeElement.querySelector("input").focus()}};e=new WeakMap,o.\u0275fac=function(s){return new(s||o)},o.\u0275cmp=A({type:o,selectors:[["spk-radio"]],hostBindings:function(s,u){s&1&&B("click",function(){return u.onClick()})},ngContentSelectors:Y,decls:2,vars:0,consts:[[1,"radio"]],template:function(s,u){s&1&&(j(),Z(0,"div",0),D(1))},encapsulation:2,changeDetection:0});let t=o;return t})(),Ln=(()=>{var e,o,i,n,s,Ue,_t,St,yt;let d=class d{constructor(){b(this,s);b(this,e);b(this,o);b(this,i);b(this,n);T(this,e,P($)),T(this,o,null),T(this,i,null),T(this,n,0),this.alwaysShowThumb=w(!1),this.unit=w(""),this.value=U(h(this,n)),this.inputState=I({min:0,max:100,step:1}),this.valuePercentage=F(()=>{let{min:v,max:a}=this.inputState(),c=this.value()??v;if(isNaN(c))return 0;let p=a-v;if(p===0)return 0;let g=(c-v)/p*100;return Math.max(0,Math.min(100,g))}),this.trackFilledPercentage=F(()=>this.valuePercentage()),this.thumbPositionPercentage=F(()=>this.valuePercentage()),this.syncModelToInputEffect=N(()=>{let v=this.value();if(h(this,i)){let a=parseFloat(h(this,i).value);(isNaN(a)||String(a)!==String(v))&&(h(this,i).value=String(v))}})}get hasInputElement(){return!!h(this,i)}ngAfterViewInit(){T(this,i,h(this,e).nativeElement.querySelector('input[type="range"]')),h(this,i)?(x(this,s,yt).call(this,h(this,i)),h(this,i).oninput=()=>{this.setNewInputValue(h(this,i).value)},h(this,i).addEventListener("inputValueChanged",v=>{this.setNewInputValue(v.detail.value)}),queueMicrotask(()=>x(this,s,Ue).call(this,!0)),x(this,s,_t).call(this)):console.error('SparkleRangeSliderComponent: No <input type="range"> element found projected inside.')}setNewInputValue(v){let a=parseFloat(v??"0");if(!isNaN(a)){let{min:c,max:p}=this.inputState();this.value.set(Math.max(c,Math.min(p,a)))}}trackEvent(v){if(!h(this,i)||h(this,i).readOnly||h(this,i).disabled){v.preventDefault(),v.stopPropagation();return}if(v.target===h(this,i)||v.target?.closest(".thumb, .min-indicator, .max-indicator"))return;let c=v.currentTarget.getBoundingClientRect(),p=v.clientX-c.left,g=c.width,{min:y,max:C,step:k}=this.inputState(),M=C-y;if(g>0&&M!==0&&k>0){let Q=(p/g*M+y-y)/k,J=y+Math.round(Q)*k,he=x(this,s,St).call(this,k);J=parseFloat(J.toFixed(he));let fe=Math.max(y,Math.min(C,J));this.value.set(fe)}}ngOnDestroy(){h(this,o)&&h(this,o).disconnect(),h(this,i)&&(h(this,i).oninput=null)}};e=new WeakMap,o=new WeakMap,i=new WeakMap,n=new WeakMap,s=new WeakSet,Ue=function(v=!1){if(!h(this,i))return;let a=parseFloat(h(this,i).min??"0")??0,c=parseFloat(h(this,i).max??"100")??100,p=h(this,i).step,g=1;if(p&&p.toLowerCase()!=="any"){let C=parseFloat(p);!isNaN(C)&&C>0&&(g=C)}this.inputState.set({min:a,max:c,step:g});let y=parseFloat(h(this,i).value??String(a))??a;if(v&&this.value()!==h(this,n)){let C=this.value(),k=Math.max(a,Math.min(c,C));y!==k&&(h(this,i).value=String(k)),C!==k&&this.value.set(k)}else{let C=Math.max(a,Math.min(c,y));this.value()!==C&&this.value.set(C)}},_t=function(){if(!h(this,i)||typeof MutationObserver>"u")return;let v=["min","max","step","value","readonly","disabled"];T(this,o,new MutationObserver(a=>{let c=!1;for(let p of a)if(p.type==="attributes"&&v.includes(p.attributeName??"")){c=!0;break}c&&x(this,s,Ue).call(this,!1)})),h(this,o).observe(h(this,i),{attributes:!0})},St=function(v){if(isNaN(v)||Math.floor(v)===v)return 0;let c=v.toString().split(".")[1];return c?c.length:0},yt=function(v){Object.defineProperty(v,"value",{configurable:!0,get(){return Object.getOwnPropertyDescriptor(Object.getPrototypeOf(v),"value").get.call(this)},set(a){Object.getOwnPropertyDescriptor(Object.getPrototypeOf(v),"value").set.call(this,a);let p=new CustomEvent("inputValueChanged",{bubbles:!0,cancelable:!0,detail:{value:a}});return this.dispatchEvent(p),a}})},d.\u0275fac=function(a){return new(a||d)},d.\u0275cmp=A({type:d,selectors:[["spk-range-slider"]],hostVars:2,hostBindings:function(a,c){a&2&&z("has-input",c.hasInputElement)},inputs:{alwaysShowThumb:[1,"alwaysShowThumb"],unit:[1,"unit"],value:[1,"value"]},outputs:{value:"valueChange"},ngContentSelectors:ei,decls:15,vars:12,consts:[[1,"label"],[1,"input-wrap"],[1,"min-indicator"],[1,"track-wrap",3,"click"],[1,"track"],[1,"track-filled"],[1,"thumb-wrap"],[1,"thumb"],[1,"value-indicator"],[1,"max-indicator"]],template:function(a,c){a&1&&(j(Zt),_(0,"div",0),D(1),S(),_(2,"div",1)(3,"div",2),R(4),S(),_(5,"div",3),B("click",function(g){return c.trackEvent(g)}),D(6,1),_(7,"div",4),Z(8,"div",5),S(),_(9,"div",6)(10,"div",7)(11,"div",8),R(12),S()()()(),_(13,"div",9),R(14),S()()),a&2&&(E(4),ye("",c.inputState().min,"",c.unit()),E(4),G("width",c.trackFilledPercentage(),"%"),E(),G("left",c.thumbPositionPercentage(),"%"),E(),z("always-show",c.alwaysShowThumb()),E(2),ye("",c.value(),"",c.unit()),E(2),ye("",c.inputState().max,"",c.unit()))},encapsulation:2,changeDetection:0});let t=d;return t})(),on=(()=>{let e=class e{};e.\u0275fac=function(n){return new(n||e)},e.\u0275cmp=A({type:e,selectors:[["spk-spinner"]],decls:0,vars:0,template:function(n,s){},encapsulation:2,changeDetection:0});let t=e;return t})(),jn=(()=>{var e,o,i,$e,s,Qe,X,kt,wt,xt;let m=class m{constructor(){b(this,i);b(this,e);b(this,o);b(this,s);T(this,e,P($)),this.value=w(),this.label=w(),this.asFreeText=w(!1),this.placeholder=w(),this.readonly=U(!1),this.disabled=U(!1),this.lazySearch=w(!1),this.inlineSearch=w(!1),this.asText=w(!1),this.isClearable=w(!0),this.selectMultiple=w(!1),this.optionTemplate=w(null),this.selectedOptionTemplate=w(null),this.placeholderTemplate=w(null),this.isOpen=U(!1),this.isLoading=U(!1),this.options=U([]),this.selectedOptions=U([]),this.cleared=ce(),this.inlineTemplate=ct(_e),this.optionsWrapRef=ie.required("optionsWrap"),this.inputRefInput=I(null),T(this,o,typeof MutationObserver<"u"&&new MutationObserver(a=>{for(var c of a)c&&(c.target.nodeName==="INPUT"||c.target.nodeName==="TEXTAREA")&&(this.inputRefInput.set(new $(c.target)),h(this,o).disconnect())})),this.inputValue=I(""),this.prevInputValue=I(null),this.focusedOptionIndex=I(-1),this._isClearable=F(()=>this.selectMultiple()||this.isClearable()),this.selectClasses=F(()=>h(this,e).nativeElement.classList.toString()),this.stretch=F(()=>this.selectClasses().includes("stretch")),this.small=F(()=>this.selectClasses().includes("small")),this.placeholderText=F(()=>{let a=this.placeholder(),c=this.inputRefEl();return a||c?.placeholder||null}),this.selectedOptionValues=F(()=>{let a=this.selectedOptions(),c=this.value();return c?a.map(p=>x(this,i,X).call(this,p,c)):a}),this.filteredOptions=F(()=>{let a=this.options()||[],c=this.label(),p=this.value(),g=this.inlineSearch(),y=this.inputValue().toLowerCase(),C=x(this,i,wt).call(this,y);if(a.length<=0)return[];if(!g||y==="")return a;let M=a.filter(V=>{let Q=c?(x(this,i,X).call(this,V,c)??"").toString().toLowerCase():(V??"").toString().toLowerCase(),J=((p?x(this,i,X).call(this,V,p):V)??"").toString().toLowerCase(),he=C.test(Q),fe=C.test(J);return he||fe}).map(V=>{let Q=c?(x(this,i,X).call(this,V,c)??"").toString().toLowerCase():(V??"").toString().toLowerCase(),J=((p?x(this,i,X).call(this,V,p):V)??"").toString().toLowerCase(),he=x(this,i,$e).call(this,Q,y),fe=x(this,i,$e).call(this,J,y);return{item:V,score:Math.max(he,fe)}});return M.sort((V,Q)=>Q.score-V.score),M.map(V=>V.item)}),this.inputRefEl=F(()=>{let a=this.inputRefInput();if(a===null)return;let c=a?a.nativeElement:null;return c?(c.autocomplete="off",x(this,i,kt).call(this,c),c.addEventListener("focus",()=>{this.readonly()||this.open()}),this.hasSearch()&&c.addEventListener("input",p=>{let g=p.target.value,y=this.inputValue();g!==y&&(this.focusedOptionIndex.set(this.asFreeText()?-1:0),this.inputValue.set(g),this.updateInputElValue())}),c.addEventListener("inputValueChanged",p=>{let g=p.detail.value,y=this.inputValue();if(g!==y){if(g===""){this.clear();return}this.setSelectedOptionsFromValue(g),this.setInputValueFromSelectedOptions(),x(this,i,Qe).call(this)}}),c):(console.warn("<spk-select> input element not found are you missing to pass an <input> or <textarea> element to select component?"),null)}),this.openAbortController=null,this.isOpenEffect=N(()=>{if(this.isOpen()){this.openAbortController||(this.openAbortController=new AbortController);let c=this.inputRefEl();if(!c)return;c.addEventListener("keydown",p=>{if((p.key==="Escape"||p.key==="Tab")&&(p.preventDefault(),this.close()),(p.key==="Enter"||p.key===" ")&&(p.preventDefault(),this.toggleOptionByIndex(this.focusedOptionIndex())),p.key==="ArrowDown"){p.preventDefault();let g=this.focusedOptionIndex()+1;this.focusedOptionIndex.set(g>this.filteredOptions().length-1?0:g)}if(p.key==="ArrowUp"){p.preventDefault();let g=this.focusedOptionIndex()-1;this.focusedOptionIndex.set(g<0?this.filteredOptions().length-1:g)}},{signal:this.openAbortController?.signal})}else{if(!this.inputRefEl())return;this.openAbortController&&(this.openAbortController.abort(),this.openAbortController=null)}}),this._inputValue="",this.inputValueEffect=N(()=>{let a=this.inputValue();this._inputValue=a}),this.inputRefElEffect=N(()=>{let a=this.inputRefEl();a&&a.value!==this._inputValue&&(this.disabled.set(a.disabled),this.setSelectedOptionsFromValue(a.value),this.setInputValueFromSelectedOptions())}),this.selectedLabels=F(()=>{let a=this.selectedOptions();return this.label()?a.map(p=>this.getLabel(p)).join(", "):a.join(", ")}),this.inputState=F(()=>(this.selectedOptions().length>0||this.asFreeText()&&this.inputValue().length>0)&&!this.isOpen()?"selected":this.isLoading()?"loading":this.isOpen()&&(this.lazySearch()||this.inlineSearch())?"open-searching":this.isOpen()?"open":this.inlineSearch()||this.lazySearch()?"searching":"closed"),this.hasSearch=F(()=>this.inlineSearch()||this.lazySearch()),T(this,s,N(()=>{if(this.selectMultiple()&&this.hasSearch())return;let a=this.selectedOptions(),c=this.value(),p=a.map(g=>c?x(this,i,X).call(this,g,c):g).join(",");this.inputValue.set(p)}))}ngOnInit(){this.setInitInput()}setInitInput(){let a=h(this,e).nativeElement.querySelector("input");if(a){this.inputRefInput.set(new $(a));return}let c=h(this,e).nativeElement.querySelector("textarea");if(c){this.inputRefInput.set(new $(c));return}typeof MutationObserver<"u"&&h(this,o).observe(h(this,e).nativeElement,{attributes:!0,childList:!0,subtree:!0,characterData:!0})}setSelectedOptionsFromValue(a){let c=this.options()||[],p=this.value(),g=this.selectMultiple(),y=a.toString().split(",");if(y.length===0){this.selectedOptions.set([]);return}let C=g?y:[y[0]],k=c.filter(M=>{let V=p?x(this,i,X).call(this,M,p)?.toString():M?.toString();return V&&C.includes(V)});this.selectedOptions.set(g?k:[k[0]])}setInputValueFromSelectedOptions(){let a=this.selectedOptions(),c=this.value();if(a.length===0){this.inputValue.set(""),this.updateInputElValue();return}let p=a.map(g=>c?x(this,i,X).call(this,g,c):g).join(",");this.inputValue.set(p),this.updateInputElValue()}getLabel(a){let c=this.label();return c?x(this,i,X).call(this,a,c):a}toggleOptionByIndex(a,c){let p=this.filteredOptions()[a];if(this.asFreeText()&&a===-1||!p){this.close();return}c&&c.stopPropagation();let g=this.selectMultiple(),y=this._isClearable(),C=this.value(),k=this.selectedOptionValues(),M=C?x(this,i,X).call(this,p,C):p;this.prevInputValue.set(null),this.selectedOptions.update(V=>{let Q=k.indexOf(M);if(Q>-1){let J=[...V.slice(0,Q),...V.slice(Q+1)];return y||J.length>0?J:V}else return this.focusedOptionIndex.set(a),g?[...V,p]:[p]}),g?this.inputRefEl()?.focus():this.isOpen.set(!1),this.setInputValueFromSelectedOptions(),g&&this.hasSearch()&&(this.inputValue.set(""),this.updateInputElValue())}removeSelectedOptionByIndex(a,c){a.stopPropagation(),this.selectedOptions.update(p=>[...p.slice(0,c),...p.slice(c+1)]),this.setInputValueFromSelectedOptions()}isSelected(a){let c=this.value(),p=this.filteredOptions()[a],g=c?x(this,i,X).call(this,p,c):p;return this.selectedOptionValues().indexOf(g)>-1}open(){this.isOpen()||(this.isOpen.set(!0),this.hasSearch()&&(this.prevInputValue.set(this.inputValue()??""),this.inputValue.set(""),this.updateInputElValue()),this.selectMultiple()||x(this,i,Qe).call(this))}close(){this.isOpen.set(!1);let a=this.prevInputValue();if(this.asFreeText()){this.updateInputElValue();return}this.hasSearch()&&a&&(this.inputValue.set(a),this.setInputValueFromSelectedOptions()),this.selectMultiple()&&this.setInputValueFromSelectedOptions()}clear(a){a?.stopPropagation(),this.inputValue.set(""),this.selectedOptions.set([]),this.isOpen.set(!1),this.prevInputValue.set(null),this.cleared.emit(),this.updateInputElValue()}updateInputElValue(){let a=this.inputRefEl(),c=this.inputValue();a&&(a.value=c,a.dispatchEvent(new Event("input")))}ngOnDestroy(){this.openAbortController&&(this.openAbortController.abort(),this.openAbortController=null),typeof MutationObserver<"u"&&h(this,o).disconnect()}};e=new WeakMap,o=new WeakMap,i=new WeakSet,$e=function(a,c){if(!c)return 0;let p=0,g=-1,y=0,C=!0;for(let k=0;k<c.length;k++){let M=c[k];if(a.length>g+1&&a[g+1]===M)p+=k===0?100:150,g++,y++;else{let V=a.indexOf(M,g+1);if(k>0&&(C=!1),V===-1)return 0;p+=100,g=V,y++}}return C&&c.length===y&&(p+=1e3),p+=y*20,p},s=new WeakMap,Qe=function(){let a=this.selectedOptionValues()[0],c=this.value();if(a){let p=this.filteredOptions().findIndex(g=>c?x(this,i,X).call(this,g,c)===a:g===a);this.focusedOptionIndex.set(p)}else this.focusedOptionIndex.set(-1)},X=function(a,c){return c.split(".").reduce((p,g)=>p?.[g],a)},kt=function(a){Object.defineProperty(a,"value",{configurable:!0,get(){return Object.getOwnPropertyDescriptor(Object.getPrototypeOf(a),"value").get.call(this)},set(c){Object.getOwnPropertyDescriptor(Object.getPrototypeOf(a),"value").set.call(this,c);let g=new CustomEvent("inputValueChanged",{bubbles:!0,cancelable:!0,detail:{value:c}});return this.dispatchEvent(g),c}})},wt=function(a){let c=(a??"").toLowerCase(),p="^";for(let g of c)p+=".*"+x(this,i,xt).call(this,g);return p+=".*$",new RegExp(p,"i")},xt=function(a){return a.replace(/[-\/\\^$+?.()|[\]{}]/g,"\\$&")},m.\u0275fac=function(c){return new(c||m)},m.\u0275cmp=A({type:m,selectors:[["spk-select"]],contentQueries:function(c,p,g){c&1&&ot(g,p.inlineTemplate,_e,5),c&2&&se()},viewQuery:function(c,p){c&1&&te(p.optionsWrapRef,ti,5),c&2&&se()},hostVars:2,hostBindings:function(c,p){c&2&&z("multiple",p.selectMultiple())},inputs:{value:[1,"value"],label:[1,"label"],asFreeText:[1,"asFreeText"],placeholder:[1,"placeholder"],readonly:[1,"readonly"],disabled:[1,"disabled"],lazySearch:[1,"lazySearch"],inlineSearch:[1,"inlineSearch"],asText:[1,"asText"],isClearable:[1,"isClearable"],selectMultiple:[1,"selectMultiple"],optionTemplate:[1,"optionTemplate"],selectedOptionTemplate:[1,"selectedOptionTemplate"],placeholderTemplate:[1,"placeholderTemplate"],isOpen:[1,"isOpen"],isLoading:[1,"isLoading"],options:[1,"options"],selectedOptions:[1,"selectedOptions"]},outputs:{readonly:"readonlyChange",disabled:"disabledChange",isOpen:"isOpenChange",isLoading:"isLoadingChange",options:"optionsChange",selectedOptions:"selectedOptionsChange",cleared:"cleared"},ngContentSelectors:ni,decls:28,vars:22,consts:[["formFieldWrapper",""],["optionsWrap",""],[3,"isOpenChange","closed","isOpen","disableOpenByClick","options"],["trigger","",3,"click"],["ngProjectAs","input",5,["input"],1,"input"],[1,"selected-value"],["suffix",""],["suffix","",1,"primary"],[1,"sparkle-options"],[1,"option",3,"selected","focused"],[1,"small",3,"class"],[1,"small"],[3,"click"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[4,"ngTemplateOutlet"],["suffix","",3,"click"],[1,"option",3,"click"],[3,"class","active"]],template:function(c,p){if(c&1){let g=ee();j(ii),lt(0)(1)(2)(3)(4)(5),_(6,"spk-popover",2,0),Be("isOpenChange",function(C){return H(g),je(p.isOpen,C)||(p.isOpen=C),L(C)}),B("closed",function(){return H(g),L(p.close())}),_(8,"spk-form-field",3),B("click",function(){return H(g),L(p.open())}),D(9,0,["ngProjectAs","label",5,["label"]]),_(10,"div",4)(11,"div",5),W(12,oi,1,1)(13,vi,2,0)(14,yi,2,1),D(15,1),D(16,2),S()(),W(17,ki,2,0,"spk-icon",6)(18,wi,1,0,"spk-spinner",7)(19,xi,2,0,"spk-icon",6)(20,Di,2,0,"spk-icon",6)(21,Oi,2,0,"spk-icon",6)(22,bi,2,0,"spk-icon",6)(23,Ei,2,0,"spk-icon",6),S(),_(24,"div",8,1),Ae(26,Vi,4,6,"li",9,Pe),S()()}if(c&2){le(p.placeholderTemplate());let g=p.optionTemplate(),y=p.selectedOptionTemplate(),C=p.inlineTemplate();E();let k=le(p.selectedOptions()),M=p.inputState();E(),le(y||g||C),E(),le(g||C),E();let V=le(!p.asText()&&p.selectMultiple());E();let Q=le(p.isOpen()&&p.hasSearch()&&(V||p.inputValue().length>0));E(),Le("isOpen",p.isOpen),re("disableOpenByClick",!0)("options",We(21,si)),E(2),z("stretch",p.stretch())("small",p.small())("readonly",p.readonly()||p.disabled()),E(2),z("show-search-text",Q),E(),z("is-selected",M==="selected"),E(),q(p.asFreeText()&&p.inputValue().length>0&&!p.isOpen()?12:k.length>0?13:Q?-1:14),E(5),q(M==="closed"?17:M==="loading"?18:M==="open-searching"?19:M==="searching"?20:M==="selected"&&p._isClearable()?21:M==="selected"&&!p._isClearable()?22:23),E(9),Fe(p.filteredOptions())}},dependencies:[dt,ft,Ge,ue,Zi,on,en],encapsulation:2,changeDetection:0});let t=m;return t})(),Bn=(()=>{var e,o,i,xe,De;let u=class u{constructor(){b(this,i);b(this,e);b(this,o);T(this,e,P(be,{optional:!0})),T(this,o,I(h(this,e)?.sidenavType)),this.openWidth=280,this.openWidthTreshold=this.openWidth*.9,this.disableDrag=w(!1),this.isOpen=U(!1),this.type=w(void 0),this._type=F(()=>this.type()?this.type():h(this,e)?.sidenavType),this.dragImageElement=ie.required("dragImageElement"),this.dragIsEnding=I(!1),this.dragIsOnScreen=I(!0),this.isDragging=I(!1),this.dragPositionX=I(0),this.dragActualPositionX=F(()=>{let l=this.dragPositionX(),r=.32;return l>this.openWidthTreshold?this.openWidthTreshold+(l-this.openWidthTreshold)*r:l}),this.draggingStyle=F(()=>this._type()!=="overlay"?null:this.isDragging()?`translateX(${this.dragActualPositionX()}px)`:this.isOpen()?`translateX(${this.openWidth}px)`:"translateX(0px)"),this.draggingEffect=N(()=>{this.isDragging()&&document.body.classList.add("dragging")})}drop(l){l.stopPropagation(),x(this,i,xe).call(this,l.clientX)}dragEnd(l){(l.clientX<0||!this.dragIsOnScreen())&&x(this,i,xe).call(this,0)}dragEnter(){this.dragIsOnScreen.set(!0)}dragLeave(){this.dragIsOnScreen.set(!1)}dragOver(l){l.preventDefault(),x(this,i,De).call(this,l)}dragStart(l){l.stopPropagation(),this.isDragging.set(!0),x(this,i,De).call(this,l)}drag(l){l.stopPropagation(),setTimeout(()=>{this.isDragging()&&this.dragIsOnScreen()&&this.dragPositionX.set(l.clientX)}),x(this,i,De).call(this,l)}touchStart(l){l.stopPropagation(),this.isDragging.set(!0)}touchMove(l){l.stopPropagation(),setTimeout(()=>{this.isDragging()&&this.dragIsOnScreen()&&this.dragPositionX.set(l.touches[0].clientX)})}touchEnd(l){l.stopPropagation(),x(this,i,xe).call(this,l.changedTouches[0].clientX)}touchCancel(l){l.stopPropagation(),this.isDragging.set(!1)}};e=new WeakMap,o=new WeakMap,i=new WeakSet,xe=function(l){this.isDragging.set(!1),l<=0?this.isOpen.set(!1):l>this.openWidthTreshold?this.isOpen.set(!0):l<this.openWidthTreshold&&(!this.isOpen()&&l<this.openWidthTreshold*.6?this.isOpen.set(!0):this.isOpen.set(!1))},De=function(l){l.dataTransfer?.setDragImage(this.dragImageElement().nativeElement,0,0)},u.\u0275fac=function(r){return new(r||u)},u.\u0275cmp=A({type:u,selectors:[["spk-sidenav"]],viewQuery:function(r,d){r&1&&te(d.dragImageElement,Pi,5),r&2&&se()},hostVars:8,hostBindings:function(r,d){r&2&&(oe(d._type()),z("open",d.isOpen())("closed",!d.isOpen())("is-dragging",d.isDragging()))},inputs:{disableDrag:[1,"disableDrag"],isOpen:[1,"isOpen"],type:[1,"type"]},outputs:{isOpen:"isOpenChange"},ngContentSelectors:Fi,decls:10,vars:5,consts:[["dragImageElement",""],[1,"drag-image"],[1,"dropping-surface"],[1,"sidenav"],[1,"main-wrap"],["draggable","true",1,"dragable"],[1,"closed-topbar"],[1,"dropping-surface",3,"drop","dragover","dragenter","dragleave"],["draggable","true",1,"dragable",3,"dragstart","dragend","drag","touchstart","touchmove","touchend","touchcancel"]],template:function(r,d){r&1&&(j(Ai),W(0,Hi,2,0,"div",1),W(1,Li,1,0,"div",2),_(2,"div",3),D(3),S(),_(4,"div",4),W(5,ji,1,0,"div",5),_(6,"div",6),D(7,1),S(),_(8,"main"),D(9,2),S()()),r&2&&(q(d.type()==="overlay"?0:-1),E(),q(d.type()==="overlay"&&d.isDragging()?1:-1),E(3),G("transform",d.draggingStyle()),E(),q(d.type()==="overlay"&&!d.disableDrag()?5:-1))},encapsulation:2,changeDetection:0});let t=u;return t})();var Wn=(()=>{let e=class e{};e.\u0275fac=function(n){return new(n||e)},e.\u0275cmp=A({type:e,selectors:[["spk-stepper"]],ngContentSelectors:Y,decls:1,vars:0,template:function(n,s){n&1&&(j(),D(0))},encapsulation:2,changeDetection:0});let t=e;return t})();var qn=(()=>{var e;let o=class o{constructor(){b(this,e);T(this,e,P(rn)),this.spkSort=w(),this.sortAsc=F(()=>{let n=h(this,e).sortByColumn(),s=this.spkSort();return!n||!s?!1:n===s}),this.sortDesc=F(()=>{let n=h(this,e).sortByColumn(),s=this.spkSort();return!n||!s?!1:n===`-${s}`})}toggleSort(){let n=this.spkSort();n&&h(this,e).toggleSort(n)}};e=new WeakMap,o.\u0275fac=function(s){return new(s||o)},o.\u0275dir=Se({type:o,selectors:[["","spkSort",""]],hostAttrs:[1,"sortable"],hostVars:4,hostBindings:function(s,u){s&1&&B("mousedown",function(){return u.toggleSort()}),s&2&&z("sort-asc",u.sortAsc())("sort-desc",u.sortDesc())},inputs:{spkSort:[1,"spkSort"]}});let t=o;return t})();var de=1.5,rn=(()=>{var e,o,i,n,s,Oe;let f=class f{constructor(){b(this,s);b(this,e);b(this,o);b(this,i);b(this,n);T(this,e,P($)),T(this,o,P(be,{optional:!0})),this.loading=w(!1),this.data=w([]),this.dataChange=ce(),this.sortByColumn=U(null),this.thead=ie("thead"),this.columns=vt(this.thead,["TH"]),this.class=I(h(this,o)?.tableType??"default"),this.resizing=I(!1),this.sizeTrigger=I(!0),T(this,i,null),T(this,n,I(!1)),this.scrollXState=I(-1),this.scrollYState=I(-1),this.canScrollX=I(!1),this.canScrollY=I(!1),this.columnSizes=F(()=>{this.sizeTrigger();let r=this.columns.signal();return r.reduce((d,m,v)=>{let a=m,c=v===r.length-1;return a.dataset?.size?`${d} ${a.dataset.size}`:a.classList.contains("sticky")||a.classList.contains("sticky-end")?`${d} min-content`:c?`${d} 1fr`:`${d} 1fr`},"")}),this.e=N(()=>{let r=this.sortByColumn();if(r===null)return h(this,n).call(this)||(T(this,i,this.data()),h(this,n).set(!0)),this.dataChange.emit(structuredClone(h(this,i)));let d=r.startsWith("-")?r.slice(1):r,m=r.startsWith("-"),v=this.data().sort((a,c)=>{let p=a[d],g=c[d],y=0;return typeof p=="number"&&typeof g=="number"&&(y=p-g),p instanceof Date&&g instanceof Date&&(y=p.getTime()-g.getTime()),typeof p=="string"&&typeof g=="string"&&(y=p.localeCompare(g,void 0,{sensitivity:"base"})),m?-y:y});this.dataChange.emit(v)})}updateColumnSizes(){this.sizeTrigger.set(!this.sizeTrigger())}onScroll(){x(this,s,Oe).call(this)}onResize(r){x(this,s,Oe).call(this)}ngAfterViewInit(){queueMicrotask(()=>x(this,s,Oe).call(this))}toggleSort(r){let d=this.sortByColumn(),m=d===r?`-${r}`:d===`-${r}`?null:r;this.sortByColumn.set(m)}};e=new WeakMap,o=new WeakMap,i=new WeakMap,n=new WeakMap,s=new WeakSet,Oe=function(){let r=h(this,e).nativeElement,d=-1,m=-1,v=r.scrollWidth>r.clientWidth+de;if(v){let c=r.scrollLeft<=de;r.scrollWidth-(r.scrollLeft+r.clientWidth)<de?d=1:c||(d=0)}this.scrollXState.set(d),this.canScrollX.set(v);let a=r.scrollHeight>r.clientHeight+de;if(a){let c=r.scrollTop<=de;r.scrollHeight-(r.scrollTop+r.clientHeight)<de?m=1:c||(m=0)}this.scrollYState.set(m),this.canScrollY.set(a)},f.\u0275fac=function(d){return new(d||f)},f.\u0275cmp=A({type:f,selectors:[["spk-table"]],viewQuery:function(d,m){d&1&&te(m.thead,Bi,5),d&2&&se()},hostVars:18,hostBindings:function(d,m){d&1&&B("scroll",function(){return m.onScroll()})("resize",function(a){return m.onResize(a)},it),d&2&&(oe(m.class()),G("grid-template-columns",m.columnSizes()),z("resizing",m.resizing())("can-scroll-x",m.canScrollX())("can-scroll-y",m.canScrollY())("scrolled-x",m.scrollXState()>=0)("scrolled-x-end",m.scrollXState()===1)("scrolled-y",m.scrollYState()>=0)("scrolled-y-end",m.scrollYState()===1))},inputs:{loading:[1,"loading"],data:[1,"data"],sortByColumn:[1,"sortByColumn"]},outputs:{dataChange:"dataChange",sortByColumn:"sortByColumnChange"},ngContentSelectors:qi,decls:7,vars:2,consts:[["thead",""],[1,"indeterminate","primary"],[1,"no-rows"]],template:function(d,m){d&1&&(j(Wi),_(0,"thead",null,0),D(2),W(3,zi,1,0,"spk-progress-bar",1),S(),_(4,"tbody"),D(5,1),S(),W(6,Ni,2,0,"div",2)),d&2&&(E(3),q(m.loading()?3:-1),E(3),q(m.loading()?-1:6))},dependencies:[sn],encapsulation:2,changeDetection:0});let t=f;return t})(),zn=(()=>{let e=class e{};e.\u0275fac=function(n){return new(n||e)},e.\u0275cmp=A({type:e,selectors:[["spk-tabs"]],ngContentSelectors:Y,decls:1,vars:0,template:function(n,s){n&1&&(j(),D(0))},encapsulation:2,changeDetection:0});let t=e;return t})(),Nn=(()=>{let e=class e{constructor(){this.isActive=U(!1),this.disallowToggle=w(!1)}ngOnInit(){this.disallowToggle()&&this.isActive.set(!0)}toggle(){this.isActive.set(!this.isActive())}};e.\u0275fac=function(n){return new(n||e)},e.\u0275cmp=A({type:e,selectors:[["spk-toggle-card"]],hostVars:2,hostBindings:function(n,s){n&2&&z("active",s.isActive())},inputs:{isActive:[1,"isActive"],disallowToggle:[1,"disallowToggle"]},outputs:{isActive:"isActiveChange"},ngContentSelectors:$i,decls:7,vars:1,consts:[[3,"click"],[1,"toggle-icon"],[1,"collapsable"],[1,"content"]],template:function(n,s){n&1&&(j(Ui),_(0,"h3",0),B("click",function(){return s.disallowToggle()||s.toggle()}),D(1,0,null,Qi,1,0),W(3,Yi,2,0,"spk-icon",1),S(),_(4,"div",2)(5,"div",3),D(6,1),S()()),n&2&&(E(3),q(s.disallowToggle()?-1:3))},dependencies:[ue],encapsulation:2,changeDetection:0});let t=e;return t})(),Un=(()=>{let e=class e{};e.\u0275fac=function(n){return new(n||e)},e.\u0275cmp=A({type:e,selectors:[["spk-toggle"]],ngContentSelectors:Y,decls:3,vars:0,consts:[[1,"box"],[1,"knob"]],template:function(n,s){n&1&&(j(),_(0,"div",0),Z(1,"div",1),S(),D(2))},encapsulation:2,changeDetection:0});let t=e;return t})();var $n=(()=>{let e=class e{constructor(){this.filesOver=I(!1),this.filesDropped=ce()}onDragOver(i){i.preventDefault(),i.stopPropagation(),this.filesOver.set(!0)}onDragLeave(i){i.preventDefault(),i.stopPropagation(),this.filesOver.set(!1)}ondrop(i){i.preventDefault(),i.stopPropagation(),this.filesOver.set(!1);let n=i.dataTransfer?.files;n&&n.length>0&&this.filesDropped.emit(n)}};e.\u0275fac=function(n){return new(n||e)},e.\u0275dir=Se({type:e,selectors:[["","spkDragDrop",""]],hostVars:2,hostBindings:function(n,s){n&1&&B("dragover",function(f){return s.onDragOver(f)})("dragleave",function(f){return s.onDragLeave(f)})("drop",function(f){return s.ondrop(f)}),n&2&&z("filesover",s.filesOver())},outputs:{filesDropped:"filesDropped"}});let t=e;return t})();var an=(()=>{var e,o,i;let n=class n{constructor(){b(this,e);b(this,o);b(this,i);this.positionAnchorName=w.required(),this.anchorEl=w.required(),this.isOpen=w(!1),T(this,e,P($)),T(this,o,P(me)),T(this,i,null),this.SUPPORTS_ANCHOR=typeof CSS<"u"&&CSS.supports("position-anchor","--abc"),this.isBelow=I(!1),this.openEffect=N(()=>{this.isOpen()?setTimeout(()=>{h(this,e).nativeElement.showPopover(),this.calculateTooltipPosition()}):h(this,e).nativeElement.hidePopover()}),this.calculateTooltipPosition=()=>{if(!this.anchorEl())return;let u=this.anchorEl().nativeElement.getBoundingClientRect(),f=h(this,e).nativeElement,l=f.getBoundingClientRect();if(!(l.width===0&&l.height===0))if(this.SUPPORTS_ANCHOR)this.isBelow.set(u.top<l.bottom);else{let r=u.top-l.height<0,d=u.top-l.height,m=u.left+u.width/2-l.width/2;r?(d=u.top+u.height,this.isBelow.set(!0)):this.isBelow.set(!1),m+l.width>window?.innerWidth&&(m=u.right-l.width/2),m<0&&(m=-(l.width/2)),h(this,o).setStyle(f,"left",`${m}px`),h(this,o).setStyle(f,"top",`${d}px`),h(this,o).setStyle(f,"position","fixed")}},Re(()=>{T(this,i,new AbortController);let u={signal:h(this,i).signal,capture:!0};window?.addEventListener("scroll",this.calculateTooltipPosition,u),window?.addEventListener("resize",this.calculateTooltipPosition,{signal:h(this,i).signal}),setTimeout(()=>this.calculateTooltipPosition())})}ngOnDestroy(){h(this,i)?.abort()}};e=new WeakMap,o=new WeakMap,i=new WeakMap,n.\u0275fac=function(f){return new(f||n)},n.\u0275cmp=A({type:n,selectors:[["sparkle-tooltip-wrapper"]],hostAttrs:["role","tooltip"],hostVars:5,hostBindings:function(f,l){f&2&&(Ve("popover","auto"),G("position-anchor",l.positionAnchorName()),z("below",l.isBelow()))},inputs:{positionAnchorName:[1,"positionAnchorName"],anchorEl:[1,"anchorEl"],isOpen:[1,"isOpen"]},ngContentSelectors:Y,decls:2,vars:0,consts:[[1,"tooltip-content"]],template:function(f,l){f&1&&(j(),_(0,"div",0),D(1),S())},encapsulation:2});let t=n;return t})(),Qn=(()=>{var e,o,i,n,s,u;let f=class f{constructor(){b(this,e);b(this,o);b(this,i);b(this,n);b(this,s);b(this,u);this.spkTooltip=w.required(),T(this,e,P($)),T(this,o,P(nt)),T(this,i,P(et)),T(this,n,P(me)),T(this,s,null),T(this,u,null),this.anchorName=`--${Xe()}`,this.isOpen=I(!1)}onMouseEnter(){this.showTooltip()}onMouseLeave(){this.cleanupTooltip()}ngOnDestroy(){this.cleanupTooltip()}showTooltip(){if(h(this,s)||!this.spkTooltip())return;this.isOpen.set(!0);let r,d=this.spkTooltip();if(typeof d=="string")r=[[h(this,n).createText(d)]];else if(d instanceof _e)T(this,u,d.createEmbeddedView({})),h(this,u).detectChanges(),r=[h(this,u).rootNodes];else return;T(this,s,h(this,o).createComponent(an,{environmentInjector:h(this,i),projectableNodes:r})),h(this,s).setInput("positionAnchorName",this.anchorName),h(this,s).setInput("anchorEl",h(this,e)),h(this,s).setInput("isOpen",this.isOpen),h(this,s).changeDetectorRef.detectChanges()}cleanupTooltip(){this.isOpen.set(!1),h(this,s)&&(h(this,s).destroy(),T(this,s,null)),h(this,u)&&(h(this,u).destroy(),T(this,u,null))}};e=new WeakMap,o=new WeakMap,i=new WeakMap,n=new WeakMap,s=new WeakMap,u=new WeakMap,f.\u0275fac=function(d){return new(d||f)},f.\u0275dir=Se({type:f,selectors:[["","spkTooltip",""]],hostAttrs:[1,"tooltip"],hostVars:4,hostBindings:function(d,m){d&1&&B("mouseenter",function(){return m.onMouseEnter()})("mouseleave",function(){return m.onMouseLeave()}),d&2&&(G("anchor-name",m.anchorName),z("active",m.isOpen()))},inputs:{spkTooltip:[1,"spkTooltip"]}});let t=f;return t})();export{ue as a,En as b,Tn as c,Ki as d,Mn as e,In as f,Ji as g,Rn as h,Zi as i,en as j,Vn as k,Ge as l,Pn as m,An as n,Fn as o,sn as p,Hn as q,Ln as r,on as s,jn as t,Bn as u,Wn as v,qn as w,rn as x,zn as y,Nn as z,Un as A,$n as B,Qn as C};
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-HDV3QKLN.js";import"./chunk-LKJ2SBQA.js";import"./chunk-BTMXQPBB.js";import"./chunk-EUDKD2JW.js";export{a as DurationFormatPipe};
@@ -0,0 +1 @@
1
+ import{g as m}from"./chunk-3B3CD5KI.js";import{a as y}from"./chunk-XLKQSWFD.js";import{h as w}from"./chunk-FUEIZLWH.js";import"./chunk-XIIFTZ5G.js";import"./chunk-BCHZRC5K.js";import"./chunk-B26UYXA3.js";import{b as u}from"./chunk-LDIZ5E5Z.js";import"./chunk-ROOTIQEO.js";import"./chunk-FUZLIOUQ.js";import"./chunk-JM7VAPIC.js";import"./chunk-2BX65XJQ.js";import"./chunk-RHW5QVAY.js";import"./chunk-6JQM2X3B.js";import"./chunk-WXARH2SG.js";import"./chunk-NSIELNIY.js";import"./chunk-FZG6OXT3.js";import{a as L,b as M,c as N,d as I,e as h,f as G}from"./chunk-2W6BEUGU.js";import"./chunk-JFOXV66M.js";import{q as W,v}from"./chunk-Y5IRBMLB.js";import"./chunk-DNJOKPEL.js";import"./chunk-UFP4XKZF.js";import"./chunk-CWLTHXVS.js";import"./chunk-WIDMAJIO.js";import"./chunk-LKJ2SBQA.js";import{Ab as s,Ic as $,Kb as F,Lb as l,Qa as r,Rb as E,Z as c,ab as P,bc as D,na as C,rc as A,sb as T,sc as S,tb as g,tc as O,xb as _,yb as i,zb as n}from"./chunk-BTMXQPBB.js";import"./chunk-EUDKD2JW.js";var x=()=>["/restore-from-files/destination"],K=()=>["/restore-from-files/encryption"],X=()=>["/restore-from-files/select-files"],b=()=>["/restore-from-files/options"],z=t=>["/restore",t,"select-files"],B=t=>["/restore",t,"options"];function U(t,o){t&1&&(i(0,"div",6),F(1,0),s(2,"spk-radio"),l(),n(),i(3,"div",6),F(4,1),s(5,"spk-radio"),l(),n(),i(6,"div",6),F(7,2),s(8,"spk-radio"),l(),n(),i(9,"div",6),F(10,3),s(11,"spk-radio"),l(),n()),t&2&&(_("routerLink",S(4,x)),r(3),_("routerLink",S(5,K)),r(3),_("routerLink",S(6,X)),r(3),_("routerLink",S(7,b)))}function j(t,o){if(t&1&&(i(0,"div",6),F(1,4),s(2,"spk-radio"),l(),n(),i(3,"div",6),F(4,5),s(5,"spk-radio"),l(),n()),t&2){let e=E(2);_("routerLink",O(2,z,e.backupId())),r(3),_("routerLink",O(4,B,e.backupId()))}}function H(t,o){if(t&1&&(i(0,"spk-stepper"),T(1,U,12,8)(2,j,6,6),n()),t&2){let e=E();r(),g(e.isFileRestore()?1:2)}}var k=class t{#e=c(M);#o=c(I);#t=c(m);#i=u(this.#e.params);#n=u(this.#e.url);#s=u(this.#e.children[0].url);backupId=this.#t.backupId;isFileRestore=this.#t.isFileRestore;isProgressPage=C(!1);paramsChanged=$(()=>{let o=this.#s(),e=this.#i()?.id,a=!!this.#n()?.find(d=>d.path==="restore-from-files"),R=!!o?.find(d=>d.path==="progress");this.isProgressPage.set(R),this.#t.init(e,a)});ngOnInit(){this.#o.events.subscribe(o=>{if(o instanceof L){let e=o.urlAfterRedirects;this.isProgressPage.set(e.includes("progress"))}})}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=P({type:t,selectors:[["app-restore-flow"]],hostVars:2,hostBindings:function(e,a){e&2&&D("full-width",a.isProgressPage())},features:[A([m,w])],decls:4,vars:1,consts:()=>{let o;o=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SPK_RADIO:${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SPK_RADIO: Destination `;let e;e=$localize`${"\uFFFD#5\uFFFD"}:START_TAG_SPK_RADIO:${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_RADIO: Encryption `;let a;a=$localize`${"\uFFFD#8\uFFFD"}:START_TAG_SPK_RADIO:${"\uFFFD/#8\uFFFD"}:CLOSE_TAG_SPK_RADIO: Select files `;let R;R=$localize`${"\uFFFD#11\uFFFD"}:START_TAG_SPK_RADIO:${"\uFFFD/#11\uFFFD"}:CLOSE_TAG_SPK_RADIO: Options `;let d;d=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SPK_RADIO:${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SPK_RADIO: Select files `;let f;return f=$localize`${"\uFFFD#5\uFFFD"}:START_TAG_SPK_RADIO:${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_RADIO: Options `,[o,e,a,R,d,f,["step","","routerLinkActive","active",3,"routerLink"]]},template:function(e,a){e&1&&(s(0,"app-status-bar"),T(1,H,3,1,"spk-stepper"),i(2,"section"),s(3,"router-outlet"),n()),e&2&&(r(),g(a.isProgressPage()?-1:1))},dependencies:[v,W,y,N,h,G],styles:["[_nghost-%COMP%]{display:block}.full-width[_nghost-%COMP%] section[_ngcontent-%COMP%]{max-width:62.5rem}spk-stepper[_ngcontent-%COMP%]{max-width:31.25rem;margin:2.5rem auto}section[_ngcontent-%COMP%]{max-width:31.25rem;margin:0 auto 2.5rem}"],changeDetection:0})};export{k as default};
@@ -1 +1 @@
1
- import{a as Le,b as Re}from"./chunk-ZUXVEXBA.js";import{a as $e}from"./chunk-PL2MNRTA.js";import{a as x}from"./chunk-EQS67O4J.js";import"./chunk-NZD6UMYZ.js";import{a as fe}from"./chunk-B6DE3TTE.js";import"./chunk-VFVXE2DC.js";import"./chunk-FC45TEB6.js";import"./chunk-RHW5QVAY.js";import"./chunk-BHSG643V.js";import"./chunk-3Q5JEF3K.js";import{a as Ie}from"./chunk-IVP5ZHDB.js";import{c as Pe,d as Oe,e as he,i as De,r as ke,s as Ne,t as Me}from"./chunk-ZCT7SRIM.js";import{b as de,d as Ee}from"./chunk-OQHMS5HM.js";import{c as ce,e as pe,f as ue}from"./chunk-DQM3ATT4.js";import"./chunk-BSRYIN2F.js";import{C as Te,a as M,b as G,c as Se,e as ge,g as w,k as Fe,l as Ae,n as Ce,u as me}from"./chunk-DNBOZ26J.js";import{h as H}from"./chunk-XD6MBGQY.js";import"./chunk-GP2W7XZF.js";import"./chunk-WIDMAJIO.js";import{Bb as f,F as V,Fc as re,Gc as j,Hb as p,Ib as u,Jb as O,Kc as le,Mb as R,Mc as _e,Nb as g,Oa as r,Ob as c,Oc as Q,Wb as ne,X as A,Xb as oe,_a as N,_b as v,ac as $,ba as C,bc as F,ca as m,cc as X,dc as K,gc as z,hc as W,ic as q,jc as ie,kc as se,la as E,lc as y,pb as d,qb as S,qc as ae,rb as Z,sb as ee,tb as te,ub as h,vb as s,wb as i,xb as l}from"./chunk-67YRCRMI.js";import{a as Y,b as B}from"./chunk-EUDKD2JW.js";var Ge=["scroller"];function we(n,o){n&1&&(s(0,"spk-icon"),F(1,"bell-ringing"),i())}function He(n,o){n&1&&(s(0,"spk-icon"),F(1,"bell"),i())}function xe(n,o){if(n&1&&l(0,"app-notification",8),n&2){c(2);let e=y(6);h("index",0)("notification",e.content)}}function Ue(n,o){if(n&1&&(s(0,"div",11),F(1),i()),n&2){c(3);let e=y(6);r(),K(" ",e.content.content," ")}}function Ye(n,o){if(n&1&&(s(0,"spk-alert")(1,"div",10),F(2),i(),d(3,Ue,2,1,"div",11),i()),n&2){c(2);let e=y(6);$(e.content.type||"error"),r(2),X(e.content.title),r(),S(e.content.content?3:-1)}}function Be(n,o){if(n&1&&(s(0,"div",6),d(1,xe,1,2,"app-notification",8)(2,Ye,4,4,"spk-alert",9),i()),n&2){c();let e=y(6);r(),S(e.type==="notification"?1:2)}}function Ve(n,o){if(n&1){let e=f();s(0,"div",7)(1,"div",12)(2,"h6",13),p(3,2),s(4,"button",5),g("click",function(){C(e);let a=c();return m(a.toggleNotifications())}),l(5,"spk-icon"),i(),u(),i(),s(6,"div",14,0)(8,"div",15),l(9,"app-notifications"),i()()()()}}function Xe(n,o){if(n&1&&(s(0,"div",20),F(1),i()),n&2){let e=c().$implicit;r(),K(" ",e.content," ")}}function Ke(n,o){if(n&1){let e=f();s(0,"spk-alert",18,1),g("click",function(){let a=C(e).$implicit,_=c(2);return m(_.deleteAlertByIndex(a.id))}),s(2,"div",19),F(3),i(),d(4,Xe,2,1,"div",20),i()}if(n&2){let e=o.$implicit;$(e.type),h("id",e.id),r(3),X(e.title),r(),S(e.content?4:-1)}}function ze(n,o){n&1&&(s(0,"p",17),O(1,4),i())}function We(n,o){if(n&1){let e=f();s(0,"div",7)(1,"div",12)(2,"h6",13),p(3,3),s(4,"button",5),g("click",function(){C(e);let a=c();return m(a.toggleAlerts())}),l(5,"spk-icon"),i(),u(),i(),s(6,"div",14,0)(8,"div",15),ee(9,Ke,5,5,"spk-alert",16,Z,!1,ze,2,0,"p",17),i()()()()}if(n&2){let e=c();r(9),te(e.alertHistory())}}var ye=new ke,b=class n{#e=A(Se);#t=A(x);isSubmitting=E(!1);messageSent=E(!1);form=ye.group({message:ye.control("",[Oe.required])});notifications=this.#t.notifications;shownMessage=E(null);shownMessageInterval=null;alertHistory=this.#e.alertHistory;alertHistoryIsOpen=this.#e.alertHistoryIsOpen;alertHistoryIsHidden=this.#e.alertHistoryIsHidden;numberOfOpenAlerts=re(()=>this.alertHistory().filter(o=>o.isOpen).length);scroller=_e("scroller");isAlertsOpen=Q(!1);isNotificationsOpen=Q(!1);previousHistoryCount=E(null);previousNotificationsCount=E(null);constructor(){j(()=>{let o=this.alertHistory(),e=this.notifications();if(e.length===0){this.shownMessage.set(null);return}e.length&&this.previousHistoryCount()!==o.length&&!this.isNotificationsOpen()?(this.shownMessage.set({content:e[0],countDown:3,type:"notification"}),this.previousHistoryCount.set(o.length),this.shownMessageInterval=setInterval(()=>{let t=this.shownMessage();if(t?.countDown===0){this.shownMessage.set(null),this.shownMessageInterval=null;return}t!==null&&this.shownMessage.update(a=>B(Y({},a),{countDown:a.countDown-1}))},1e3)):o.length&&this.previousHistoryCount()!==o.length&&!this.isAlertsOpen()&&(this.shownMessage.set({content:o[0],countDown:3,type:"alert"}),this.previousHistoryCount.set(o.length),this.shownMessageInterval=setInterval(()=>{let t=this.shownMessage();if(t?.countDown===0){this.shownMessage.set(null),this.shownMessageInterval=null;return}t!==null&&this.shownMessage.update(a=>B(Y({},a),{countDown:a.countDown-1}))},1e3))}),j(()=>{this.alertHistoryIsOpen(),this.scrollToBottom()})}resetPreviewMessage(){this.shownMessage.set(null),this.shownMessageInterval=null}toggleAlerts(){this.isAlertsOpen()?this.isAlertsOpen.set(!1):(this.isAlertsOpen.set(!0),this.isNotificationsOpen.set(!1),this.resetPreviewMessage())}toggleNotifications(){this.isNotificationsOpen.set(!this.isNotificationsOpen()),this.isAlertsOpen()&&this.isAlertsOpen.set(!1)}deleteAlertByIndex(o){this.#e.removeAlert(o)}scrollToBottom(){this.scroller()&&this.scroller()?.nativeElement&&this.scroller().nativeElement.scrollTo(0,this.scroller().nativeElement.scrollHeight)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=N({type:n,selectors:[["app-service-hub"]],viewQuery:function(e,t){e&1&&ne(t.scroller,Ge,5),e&2&&oe()},inputs:{isAlertsOpen:[1,"isAlertsOpen"],isNotificationsOpen:[1,"isNotificationsOpen"]},outputs:{isAlertsOpen:"isAlertsOpenChange",isNotificationsOpen:"isNotificationsOpenChange"},decls:10,vars:9,consts:()=>{let o;o=$localize` Notifications ${"\uFFFD#4\uFFFD"}:START_TAG_BUTTON:${"\uFFFD#5\uFFFD"}:START_TAG_SPK_ICON:x-circle${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_ICON:${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_BUTTON:`;let e;e=$localize` Alerts ${"\uFFFD#4\uFFFD"}:START_TAG_BUTTON:${"\uFFFD#5\uFFFD"}:START_TAG_SPK_ICON:x-circle${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_ICON:${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_BUTTON:`;let t;return t=$localize`No alerts yet`,[["scroller",""],["alerts",""],o,e,t,["spk-button","",3,"click"],[1,"preview-alert-wrap"],[1,"alert-stream-modal"],[3,"index","notification"],[3,"class"],["sparkle-alert-title",""],["sparkle-alert-content",""],[1,"alert-stream-modal-content"],[1,"paragraph-20"],[1,"alert-stream-modal-list-scroller"],[1,"alert-stream-modal-list"],[3,"class","id"],[1,"no-alerts"],[3,"click","id"],["title",""],["content",""]]},template:function(e,t){if(e&1){let a=f();s(0,"button",5),g("click",function(){return C(a),m(t.toggleAlerts())}),s(1,"spk-icon"),F(2,"info"),i()(),s(3,"button",5),g("click",function(){return C(a),m(t.toggleNotifications())}),d(4,we,2,0,"spk-icon")(5,He,2,0,"spk-icon"),i(),ie(6),d(7,Be,3,1,"div",6),d(8,Ve,10,0,"div",7),d(9,We,12,1,"div",7)}if(e&2){$(t.alertHistory().length?"error":""),r(3),$(t.notifications().length?"error":""),r(),S(t.notifications().length?4:5),r(2);let a=se(t.shownMessage());r(),S(a?7:-1),r(),S(t.isNotificationsOpen()?8:-1),r(),S(t.isAlertsOpen()?9:-1)}},dependencies:[Me,G,M,w,Re,Le],styles:["[_nghost-%COMP%]{display:flex;position:fixed;gap:.5rem;bottom:1.5rem;right:1.5rem;z-index:5000}@media only screen and (max-width: 768px){[_nghost-%COMP%]{bottom:1rem;right:1rem}}[_nghost-%COMP%] h6[_ngcontent-%COMP%]{margin:0}.preview-alert-wrap[_ngcontent-%COMP%]{position:absolute;bottom:2.6875rem;right:0;display:flex;flex-direction:column;min-width:15.625rem}.helpdesk-modal[_ngcontent-%COMP%]{position:absolute;bottom:2.6875rem;right:0;display:flex;flex-direction:column}@media only screen and (max-width: 768px){.helpdesk-modal[_ngcontent-%COMP%]{bottom:2.6875rem}}.helpdesk-modal-content[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;gap:1rem;min-width:20rem;border:1px solid var(--base-4);background-color:var(--base-1);border-radius:var(--shape-2)}.helpdesk-modal-content[_ngcontent-%COMP%] .message-sent[_ngcontent-%COMP%]{padding:0 1rem 1rem;text-wrap:pretty}.helpdesk-modal-content[_ngcontent-%COMP%] h6[_ngcontent-%COMP%]{padding:1rem;border-bottom:1px solid var(--base-4);display:flex;align-items:center;justify-content:space-between}.helpdesk-modal-content[_ngcontent-%COMP%] form[_ngcontent-%COMP%]{padding:0 1rem 1rem;display:flex;flex-direction:column;align-items:flex-end;gap:1rem}.helpdesk-modal-content[_ngcontent-%COMP%] form[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{width:100%;text-wrap:pretty}.helpdesk-modal-content[_ngcontent-%COMP%] form[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:100%}.alert-stream-modal[_ngcontent-%COMP%]{position:absolute;bottom:2.6875rem;right:0;display:flex;flex-direction:column}@media only screen and (max-width: 768px){.alert-stream-modal[_ngcontent-%COMP%]{bottom:2.6875rem}}.alert-stream-modal-list-scroller[_ngcontent-%COMP%]{overflow-y:auto;max-height:18.75rem}.alert-stream-modal-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;padding:1rem;border-radius:var(--shape-2)}.alert-stream-modal-content[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;min-width:20rem;border:1px solid var(--base-4);background-color:var(--base-1);border-radius:var(--shape-2)}.alert-stream-modal-content[_ngcontent-%COMP%] h6[_ngcontent-%COMP%]{padding:1rem;border-bottom:1px solid var(--base-4);display:flex;align-items:center;justify-content:space-between}.no-alerts[_ngcontent-%COMP%]{padding:1rem;display:flex;flex-direction:column;gap:1rem;text-align:center}"],changeDetection:0})};function qe(n,o){n&1&&(s(0,"spk-icon",14),F(1,"check"),i())}function je(n,o){n&1&&(s(0,"spk-icon",15),F(1,"prohibit"),i())}function Qe(n,o){if(n&1){let e=f();s(0,"button",20),g("click",function(){C(e);let a=c();return m(a.updatePassphrase())}),O(1,5),i()}if(n&2){let e=c();v("loader",e.isUpdating())}}function Je(n,o){if(n&1){let e=f();s(0,"button",21),g("click",function(){C(e);let a=c();return m(a.updatePassphrase())}),O(1,6),i()}if(n&2){let e=c();v("loader",e.isUpdating()),h("disabled",!0)}}var U=class n{#e=A(H);closed=le();isUpdating=E(!1);passphrase=E("");repeatPassphrase=E("");updatePassphrase(){this.passphrase()===this.repeatPassphrase()&&(this.isUpdating.set(!0),this.#e.patchApiV1Serversettings({requestBody:{"server-passphrase":this.passphrase()}}).pipe(V(()=>this.isUpdating.set(!1))).subscribe({next:()=>this.closed.emit()}))}cancel(){this.isUpdating.set(!0),this.#e.patchApiV1Serversettings({requestBody:{"has-asked-for-password-change":"True"}}).pipe(V(()=>this.isUpdating.set(!1))).subscribe({next:()=>this.closed.emit()})}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=N({type:n,selectors:[["app-change-passphrase-alert-dialog"]],outputs:{closed:"closed"},decls:23,vars:7,consts:()=>{let o;o=$localize`Enter new password`;let e;e=$localize`Repeat password`;let t;t=$localize`Password have to be filled and have to match`;let a;a=$localize`Change passphrase`;let _;_=$localize` Duplicati needs to be secured with a passphrase and a random passphrase has been generated for you. ${"[\uFFFD#6\uFFFD\uFFFD/#6\uFFFD|\uFFFD#7\uFFFD\uFFFD/#7\uFFFD]"}:LINE_BREAK:${"[\uFFFD#6\uFFFD\uFFFD/#6\uFFFD|\uFFFD#7\uFFFD\uFFFD/#7\uFFFD]"}:LINE_BREAK: If you open Duplicati from the tray icon, you do not need a passphrase, but if you plan to open it from another location you need to set a passphrase you know. Do you want to set a passphrase now? `,_=R(_);let D;D=$localize`Passphrase`;let k;k=$localize`Repeat passphrase`;let I;I=$localize`Not now thanks`;let L;L=$localize` Yes, update passphrase now `;let T;return T=$localize` Yes, update passphrase now `,[a,_,D,k,I,L,T,["header",""],["content",""],["type","warning"],["for","password"],["type","password","name","password","autocomplete","disabled","placeholder",o,"tabindex","1",3,"ngModelChange","ngModel"],["for","repeatPassword"],["type","password","name","repeatPassword","autocomplete","disabled","placeholder",e,"tabindex","2",3,"ngModelChange","disabled","ngModel"],["suffix","",1,"spk-success"],["suffix",""],["footer",""],["spk-button","",3,"click"],["spk-button","",1,"raised","primary",3,"loader"],["spk-button","","spkTooltip",t,1,"raised","primary",3,"loader","disabled"],["spk-button","",1,"raised","primary",3,"click"],["spk-button","","spkTooltip",t,1,"raised","primary",3,"click","disabled"]]},template:function(e,t){e&1&&(s(0,"header",7)(1,"h3"),O(2,0),i()(),s(3,"div",8)(4,"spk-alert",9),p(5,1),l(6,"br")(7,"br"),u(),i(),s(8,"spk-form-field")(9,"label",10),O(10,2),i(),s(11,"input",11),q("ngModelChange",function(_){return W(t.passphrase,_)||(t.passphrase=_),_}),i()(),s(12,"spk-form-field")(13,"label",12),O(14,3),i(),s(15,"input",13),q("ngModelChange",function(_){return W(t.repeatPassphrase,_)||(t.repeatPassphrase=_),_}),i(),d(16,qe,2,0,"spk-icon",14)(17,je,2,0,"spk-icon",15),i()(),s(18,"footer",16)(19,"button",17),g("click",function(){return t.cancel()}),O(20,4),i(),d(21,Qe,2,2,"button",18)(22,Je,2,3,"button",19),i()),e&2&&(r(11),z("ngModel",t.passphrase),r(4),h("disabled",t.passphrase().length===0),z("ngModel",t.repeatPassphrase),r(),S(t.passphrase().length!==0&&t.passphrase()===t.repeatPassphrase()?16:17),r(3),v("loader",t.isUpdating()),r(2),S(t.passphrase().length!==0&&t.passphrase()===t.repeatPassphrase()?21:22))},dependencies:[Ne,Pe,he,De,G,Ae,M,Te],styles:["[_nghost-%COMP%]{display:block;--dialog-p: 1.5rem}[content][_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}"],changeDetection:0})};var Ze=()=>({exact:!0});function et(n,o){n&1&&(s(0,"spk-icon"),F(1,"sun"),i())}function tt(n,o){n&1&&(s(0,"spk-icon"),F(1,"moon"),i())}function nt(n,o){if(n&1){let e=f();s(0,"button",22),g("click",function(){C(e);let a=c();return m(a.changeDefaultClientTo("ngax"))}),p(1,7),l(2,"spk-icon"),u(),i(),s(3,"button",22),g("click",function(){C(e);let a=c();return m(a.logout())}),p(4,8),l(5,"spk-icon"),u(),i()}}var J=class n{#e=A($e);#t=A(H);#n=A(fe);#o=A(de);#i=A(ge);#s=A(x);#a=A(Ee);relayIsEnabled=this.#o.relayIsEnabled;isDarkMode=this.#e.isDarkMode;ngOnInit(){return this.#s.init(),this.#n.getBackups(!0),this.#t.getApiV1Serversettings().subscribe({next:o=>{let e=o["autogenerated-passphrase"]==="True",t=o["has-asked-for-password-change"]==="True";e&&!t&&this.#i.open(U,{maxWidth:"500px"})}})}toggleBodyClass(){this.#e.toggleBodyClass()}changeDefaultClientTo(o){this.#r(o),window.location.replace(`/${o}`)}logout(){this.#a.logout()}#r(o){var e=new Date;e.setTime(e.getTime()+90*24*60*60*1e3),document.cookie="default-client="+o+"; expires="+e.toUTCString()+"; path=/"}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=N({type:n,selectors:[["app-layout"]],decls:37,vars:4,consts:()=>{let o;o=$localize`${"\uFFFD#10\uFFFD"}:START_TAG_SPK_ICON:house${"\uFFFD/#10\uFFFD"}:CLOSE_TAG_SPK_ICON: Home `;let e;e=$localize`${"\uFFFD#13\uFFFD"}:START_TAG_SPK_ICON:database${"\uFFFD/#13\uFFFD"}:CLOSE_TAG_SPK_ICON: Add backup `;let t;t=$localize`${"\uFFFD#16\uFFFD"}:START_TAG_SPK_ICON:clock-counter-clockwise${"\uFFFD/#16\uFFFD"}:CLOSE_TAG_SPK_ICON: Restore `;let a;a=$localize`${"\uFFFD#19\uFFFD"}:START_TAG_SPK_ICON:gear${"\uFFFD/#19\uFFFD"}:CLOSE_TAG_SPK_ICON: Settings `;let _;_=$localize`${"\uFFFD#26\uFFFD"}:START_TAG_SPK_ICON:info${"\uFFFD/#26\uFFFD"}:CLOSE_TAG_SPK_ICON: About Duplicati `;let D;D=$localize`${"\uFFFD#29\uFFFD"}:START_TAG_SPK_ICON:files${"[\uFFFD/#29\uFFFD|\uFFFD/#30\uFFFD]"}:CLOSE_TAG_SPK_ICON: Documentation ${"\uFFFD#30\uFFFD"}:START_TAG_SPK_ICON_1:arrow-square-out${"[\uFFFD/#29\uFFFD|\uFFFD/#30\uFFFD]"}:CLOSE_TAG_SPK_ICON:`,D=R(D);let k;k=$localize`${"\uFFFD#33\uFFFD"}:START_TAG_SPK_ICON:chats-circle${"[\uFFFD/#33\uFFFD|\uFFFD/#34\uFFFD]"}:CLOSE_TAG_SPK_ICON: Visit forum ${"\uFFFD#34\uFFFD"}:START_TAG_SPK_ICON_1:arrow-square-out${"[\uFFFD/#33\uFFFD|\uFFFD/#34\uFFFD]"}:CLOSE_TAG_SPK_ICON:`,k=R(k);let I;I=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SPK_ICON:skip-back${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SPK_ICON: Use old UI `;let L;return L=$localize`${"\uFFFD#5\uFFFD"}:START_TAG_SPK_ICON:sign-out${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_ICON: Log out `,[o,e,t,a,_,D,k,I,L,["sidenav",""],["spk-button","",1,"icon","small",3,"click"],[1,"base-1","primary"],["action","","routerLink","/","routerLinkActive","active",3,"routerLinkActiveOptions"],["action","","routerLink","/add-backup","routerLinkActive","active"],["action","","routerLink","/restore","routerLinkActive","active"],["action","","routerLink","/settings","routerLinkActive","active"],[1,"spacer"],[1,"base-1l","primary"],["action","","routerLink","/about","routerLinkActive","active"],["href","https://docs.duplicati.com","target","_blank","action",""],["suffix",""],["href","https://forum.duplicati.com","target","_blank","action",""],["action","",3,"click"]]},template:function(e,t){e&1&&(s(0,"spk-sidenav")(1,"div",9)(2,"header"),l(3,"app-logo"),s(4,"button",10),g("click",function(){return t.toggleBodyClass()}),d(5,et,2,0,"spk-icon")(6,tt,2,0,"spk-icon"),i()(),s(7,"spk-list",11)(8,"button",12),p(9,0),l(10,"spk-icon"),u(),i(),s(11,"button",13),p(12,1),l(13,"spk-icon"),u(),i(),s(14,"button",14),p(15,2),l(16,"spk-icon"),u(),i(),s(17,"button",15),p(18,3),l(19,"spk-icon"),u(),i()(),l(20,"div",16),s(21,"spk-list",17),d(22,nt,6,0),l(23,"spk-divider"),s(24,"button",18),p(25,4),l(26,"spk-icon"),u(),i(),s(27,"a",19),p(28,5),l(29,"spk-icon")(30,"spk-icon",20),u(),i(),s(31,"a",21),p(32,6),l(33,"spk-icon")(34,"spk-icon",20),u(),i()()(),l(35,"router-outlet")(36,"app-service-hub"),i()),e&2&&(r(5),S(t.isDarkMode()?5:6),r(3),h("routerLinkActiveOptions",ae(3,Ze)),r(14),S(t.relayIsEnabled()?-1:22))},dependencies:[ce,pe,ue,me,M,Ce,w,Fe,b,Ie],styles:["[_nghost-%COMP%]{height:100vh;width:100%;overflow:hidden}header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:1.25rem;gap:.75rem}h3[title][_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between}div[sidenav][_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100vh}"],changeDetection:0})};export{J as default};
1
+ import{a as Le,b as Re}from"./chunk-B5ABLFSQ.js";import{a as $e}from"./chunk-L5Y36SCW.js";import{a as x}from"./chunk-43A44MVC.js";import"./chunk-ROOTIQEO.js";import{a as fe}from"./chunk-FUZLIOUQ.js";import"./chunk-JM7VAPIC.js";import"./chunk-2BX65XJQ.js";import"./chunk-RHW5QVAY.js";import"./chunk-6JQM2X3B.js";import"./chunk-WXARH2SG.js";import{a as Ie}from"./chunk-ELFZD53L.js";import{c as Pe,d as Oe,e as he,i as De,r as ke,s as Ne,t as Me}from"./chunk-NSIELNIY.js";import{b as de,d as Ee}from"./chunk-FZG6OXT3.js";import{c as ce,e as pe,f as ue}from"./chunk-2W6BEUGU.js";import"./chunk-JFOXV66M.js";import{C as Te,a as M,b as G,c as Se,e as ge,g as w,k as Fe,l as Ae,n as Ce,u as me}from"./chunk-Y5IRBMLB.js";import{h as H}from"./chunk-DNJOKPEL.js";import"./chunk-CWLTHXVS.js";import"./chunk-WIDMAJIO.js";import{Ab as l,Eb as f,H as V,Hc as re,Ic as j,Kb as p,Lb as u,Mb as O,Mc as le,Oc as _e,Pb as R,Qa as r,Qb as g,Qc as Q,Rb as c,Z as A,Zb as ne,_b as oe,ab as N,bc as v,da as C,dc as $,ea as m,ec as F,fc as X,gc as K,jc as z,kc as W,lc as q,mc as ie,na as E,nc as se,oc as y,sb as d,sc as ae,tb as S,ub as Z,vb as ee,wb as te,xb as h,yb as s,zb as i}from"./chunk-BTMXQPBB.js";import{a as Y,b as B}from"./chunk-EUDKD2JW.js";var Ge=["scroller"];function we(n,o){n&1&&(s(0,"spk-icon"),F(1,"bell-ringing"),i())}function He(n,o){n&1&&(s(0,"spk-icon"),F(1,"bell"),i())}function xe(n,o){if(n&1&&l(0,"app-notification",8),n&2){c(2);let e=y(6);h("index",0)("notification",e.content)}}function Ue(n,o){if(n&1&&(s(0,"div",11),F(1),i()),n&2){c(3);let e=y(6);r(),K(" ",e.content.content," ")}}function Ye(n,o){if(n&1&&(s(0,"spk-alert")(1,"div",10),F(2),i(),d(3,Ue,2,1,"div",11),i()),n&2){c(2);let e=y(6);$(e.content.type||"error"),r(2),X(e.content.title),r(),S(e.content.content?3:-1)}}function Be(n,o){if(n&1&&(s(0,"div",6),d(1,xe,1,2,"app-notification",8)(2,Ye,4,4,"spk-alert",9),i()),n&2){c();let e=y(6);r(),S(e.type==="notification"?1:2)}}function Ve(n,o){if(n&1){let e=f();s(0,"div",7)(1,"div",12)(2,"h6",13),p(3,2),s(4,"button",5),g("click",function(){C(e);let a=c();return m(a.toggleNotifications())}),l(5,"spk-icon"),i(),u(),i(),s(6,"div",14,0)(8,"div",15),l(9,"app-notifications"),i()()()()}}function Xe(n,o){if(n&1&&(s(0,"div",20),F(1),i()),n&2){let e=c().$implicit;r(),K(" ",e.content," ")}}function Ke(n,o){if(n&1){let e=f();s(0,"spk-alert",18,1),g("click",function(){let a=C(e).$implicit,_=c(2);return m(_.deleteAlertByIndex(a.id))}),s(2,"div",19),F(3),i(),d(4,Xe,2,1,"div",20),i()}if(n&2){let e=o.$implicit;$(e.type),h("id",e.id),r(3),X(e.title),r(),S(e.content?4:-1)}}function ze(n,o){n&1&&(s(0,"p",17),O(1,4),i())}function We(n,o){if(n&1){let e=f();s(0,"div",7)(1,"div",12)(2,"h6",13),p(3,3),s(4,"button",5),g("click",function(){C(e);let a=c();return m(a.toggleAlerts())}),l(5,"spk-icon"),i(),u(),i(),s(6,"div",14,0)(8,"div",15),ee(9,Ke,5,5,"spk-alert",16,Z,!1,ze,2,0,"p",17),i()()()()}if(n&2){let e=c();r(9),te(e.alertHistory())}}var ye=new ke,b=class n{#e=A(Se);#t=A(x);isSubmitting=E(!1);messageSent=E(!1);form=ye.group({message:ye.control("",[Oe.required])});notifications=this.#t.notifications;shownMessage=E(null);shownMessageInterval=null;alertHistory=this.#e.alertHistory;alertHistoryIsOpen=this.#e.alertHistoryIsOpen;alertHistoryIsHidden=this.#e.alertHistoryIsHidden;numberOfOpenAlerts=re(()=>this.alertHistory().filter(o=>o.isOpen).length);scroller=_e("scroller");isAlertsOpen=Q(!1);isNotificationsOpen=Q(!1);previousHistoryCount=E(null);previousNotificationsCount=E(null);constructor(){j(()=>{let o=this.alertHistory(),e=this.notifications();if(e.length===0){this.shownMessage.set(null);return}e.length&&this.previousHistoryCount()!==o.length&&!this.isNotificationsOpen()?(this.shownMessage.set({content:e[0],countDown:3,type:"notification"}),this.previousHistoryCount.set(o.length),this.shownMessageInterval=setInterval(()=>{let t=this.shownMessage();if(t?.countDown===0){this.shownMessage.set(null),this.shownMessageInterval=null;return}t!==null&&this.shownMessage.update(a=>B(Y({},a),{countDown:a.countDown-1}))},1e3)):o.length&&this.previousHistoryCount()!==o.length&&!this.isAlertsOpen()&&(this.shownMessage.set({content:o[0],countDown:3,type:"alert"}),this.previousHistoryCount.set(o.length),this.shownMessageInterval=setInterval(()=>{let t=this.shownMessage();if(t?.countDown===0){this.shownMessage.set(null),this.shownMessageInterval=null;return}t!==null&&this.shownMessage.update(a=>B(Y({},a),{countDown:a.countDown-1}))},1e3))}),j(()=>{this.alertHistoryIsOpen(),this.scrollToBottom()})}resetPreviewMessage(){this.shownMessage.set(null),this.shownMessageInterval=null}toggleAlerts(){this.isAlertsOpen()?this.isAlertsOpen.set(!1):(this.isAlertsOpen.set(!0),this.isNotificationsOpen.set(!1),this.resetPreviewMessage())}toggleNotifications(){this.isNotificationsOpen.set(!this.isNotificationsOpen()),this.isAlertsOpen()&&this.isAlertsOpen.set(!1)}deleteAlertByIndex(o){this.#e.removeAlert(o)}scrollToBottom(){this.scroller()&&this.scroller()?.nativeElement&&this.scroller().nativeElement.scrollTo(0,this.scroller().nativeElement.scrollHeight)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=N({type:n,selectors:[["app-service-hub"]],viewQuery:function(e,t){e&1&&ne(t.scroller,Ge,5),e&2&&oe()},inputs:{isAlertsOpen:[1,"isAlertsOpen"],isNotificationsOpen:[1,"isNotificationsOpen"]},outputs:{isAlertsOpen:"isAlertsOpenChange",isNotificationsOpen:"isNotificationsOpenChange"},decls:10,vars:9,consts:()=>{let o;o=$localize` Notifications ${"\uFFFD#4\uFFFD"}:START_TAG_BUTTON:${"\uFFFD#5\uFFFD"}:START_TAG_SPK_ICON:x-circle${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_ICON:${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_BUTTON:`;let e;e=$localize` Alerts ${"\uFFFD#4\uFFFD"}:START_TAG_BUTTON:${"\uFFFD#5\uFFFD"}:START_TAG_SPK_ICON:x-circle${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_ICON:${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_BUTTON:`;let t;return t=$localize`No alerts yet`,[["scroller",""],["alerts",""],o,e,t,["spk-button","",3,"click"],[1,"preview-alert-wrap"],[1,"alert-stream-modal"],[3,"index","notification"],[3,"class"],["sparkle-alert-title",""],["sparkle-alert-content",""],[1,"alert-stream-modal-content"],[1,"paragraph-20"],[1,"alert-stream-modal-list-scroller"],[1,"alert-stream-modal-list"],[3,"class","id"],[1,"no-alerts"],[3,"click","id"],["title",""],["content",""]]},template:function(e,t){if(e&1){let a=f();s(0,"button",5),g("click",function(){return C(a),m(t.toggleAlerts())}),s(1,"spk-icon"),F(2,"info"),i()(),s(3,"button",5),g("click",function(){return C(a),m(t.toggleNotifications())}),d(4,we,2,0,"spk-icon")(5,He,2,0,"spk-icon"),i(),ie(6),d(7,Be,3,1,"div",6),d(8,Ve,10,0,"div",7),d(9,We,12,1,"div",7)}if(e&2){$(t.alertHistory().length?"error":""),r(3),$(t.notifications().length?"error":""),r(),S(t.notifications().length?4:5),r(2);let a=se(t.shownMessage());r(),S(a?7:-1),r(),S(t.isNotificationsOpen()?8:-1),r(),S(t.isAlertsOpen()?9:-1)}},dependencies:[Me,G,M,w,Re,Le],styles:["[_nghost-%COMP%]{display:flex;position:fixed;gap:.5rem;bottom:1.5rem;right:1.5rem;z-index:5000}@media only screen and (max-width: 768px){[_nghost-%COMP%]{bottom:1rem;right:1rem}}[_nghost-%COMP%] h6[_ngcontent-%COMP%]{margin:0}.preview-alert-wrap[_ngcontent-%COMP%]{position:absolute;bottom:2.6875rem;right:0;display:flex;flex-direction:column;min-width:15.625rem}.helpdesk-modal[_ngcontent-%COMP%]{position:absolute;bottom:2.6875rem;right:0;display:flex;flex-direction:column}@media only screen and (max-width: 768px){.helpdesk-modal[_ngcontent-%COMP%]{bottom:2.6875rem}}.helpdesk-modal-content[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;gap:1rem;min-width:20rem;border:1px solid var(--base-4);background-color:var(--base-1);border-radius:var(--shape-2)}.helpdesk-modal-content[_ngcontent-%COMP%] .message-sent[_ngcontent-%COMP%]{padding:0 1rem 1rem;text-wrap:pretty}.helpdesk-modal-content[_ngcontent-%COMP%] h6[_ngcontent-%COMP%]{padding:1rem;border-bottom:1px solid var(--base-4);display:flex;align-items:center;justify-content:space-between}.helpdesk-modal-content[_ngcontent-%COMP%] form[_ngcontent-%COMP%]{padding:0 1rem 1rem;display:flex;flex-direction:column;align-items:flex-end;gap:1rem}.helpdesk-modal-content[_ngcontent-%COMP%] form[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{width:100%;text-wrap:pretty}.helpdesk-modal-content[_ngcontent-%COMP%] form[_ngcontent-%COMP%] mat-form-field[_ngcontent-%COMP%]{width:100%}.alert-stream-modal[_ngcontent-%COMP%]{position:absolute;bottom:2.6875rem;right:0;display:flex;flex-direction:column}@media only screen and (max-width: 768px){.alert-stream-modal[_ngcontent-%COMP%]{bottom:2.6875rem}}.alert-stream-modal-list-scroller[_ngcontent-%COMP%]{overflow-y:auto;max-height:18.75rem}.alert-stream-modal-list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;padding:1rem;border-radius:var(--shape-2)}.alert-stream-modal-content[_ngcontent-%COMP%]{position:relative;display:flex;flex-direction:column;min-width:20rem;border:1px solid var(--base-4);background-color:var(--base-1);border-radius:var(--shape-2)}.alert-stream-modal-content[_ngcontent-%COMP%] h6[_ngcontent-%COMP%]{padding:1rem;border-bottom:1px solid var(--base-4);display:flex;align-items:center;justify-content:space-between}.no-alerts[_ngcontent-%COMP%]{padding:1rem;display:flex;flex-direction:column;gap:1rem;text-align:center}"],changeDetection:0})};function qe(n,o){n&1&&(s(0,"spk-icon",14),F(1,"check"),i())}function je(n,o){n&1&&(s(0,"spk-icon",15),F(1,"prohibit"),i())}function Qe(n,o){if(n&1){let e=f();s(0,"button",20),g("click",function(){C(e);let a=c();return m(a.updatePassphrase())}),O(1,5),i()}if(n&2){let e=c();v("loader",e.isUpdating())}}function Je(n,o){if(n&1){let e=f();s(0,"button",21),g("click",function(){C(e);let a=c();return m(a.updatePassphrase())}),O(1,6),i()}if(n&2){let e=c();v("loader",e.isUpdating()),h("disabled",!0)}}var U=class n{#e=A(H);closed=le();isUpdating=E(!1);passphrase=E("");repeatPassphrase=E("");updatePassphrase(){this.passphrase()===this.repeatPassphrase()&&(this.isUpdating.set(!0),this.#e.patchApiV1Serversettings({requestBody:{"server-passphrase":this.passphrase()}}).pipe(V(()=>this.isUpdating.set(!1))).subscribe({next:()=>this.closed.emit()}))}cancel(){this.isUpdating.set(!0),this.#e.patchApiV1Serversettings({requestBody:{"has-asked-for-password-change":"True"}}).pipe(V(()=>this.isUpdating.set(!1))).subscribe({next:()=>this.closed.emit()})}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=N({type:n,selectors:[["app-change-passphrase-alert-dialog"]],outputs:{closed:"closed"},decls:23,vars:7,consts:()=>{let o;o=$localize`Enter new password`;let e;e=$localize`Repeat password`;let t;t=$localize`Password have to be filled and have to match`;let a;a=$localize`Change passphrase`;let _;_=$localize` Duplicati needs to be secured with a passphrase and a random passphrase has been generated for you. ${"[\uFFFD#6\uFFFD\uFFFD/#6\uFFFD|\uFFFD#7\uFFFD\uFFFD/#7\uFFFD]"}:LINE_BREAK:${"[\uFFFD#6\uFFFD\uFFFD/#6\uFFFD|\uFFFD#7\uFFFD\uFFFD/#7\uFFFD]"}:LINE_BREAK: If you open Duplicati from the tray icon, you do not need a passphrase, but if you plan to open it from another location you need to set a passphrase you know. Do you want to set a passphrase now? `,_=R(_);let D;D=$localize`Passphrase`;let k;k=$localize`Repeat passphrase`;let I;I=$localize`Not now thanks`;let L;L=$localize` Yes, update passphrase now `;let T;return T=$localize` Yes, update passphrase now `,[a,_,D,k,I,L,T,["header",""],["content",""],["type","warning"],["for","password"],["type","password","name","password","autocomplete","disabled","placeholder",o,"tabindex","1",3,"ngModelChange","ngModel"],["for","repeatPassword"],["type","password","name","repeatPassword","autocomplete","disabled","placeholder",e,"tabindex","2",3,"ngModelChange","disabled","ngModel"],["suffix","",1,"spk-success"],["suffix",""],["footer",""],["spk-button","",3,"click"],["spk-button","",1,"raised","primary",3,"loader"],["spk-button","","spkTooltip",t,1,"raised","primary",3,"loader","disabled"],["spk-button","",1,"raised","primary",3,"click"],["spk-button","","spkTooltip",t,1,"raised","primary",3,"click","disabled"]]},template:function(e,t){e&1&&(s(0,"header",7)(1,"h3"),O(2,0),i()(),s(3,"div",8)(4,"spk-alert",9),p(5,1),l(6,"br")(7,"br"),u(),i(),s(8,"spk-form-field")(9,"label",10),O(10,2),i(),s(11,"input",11),q("ngModelChange",function(_){return W(t.passphrase,_)||(t.passphrase=_),_}),i()(),s(12,"spk-form-field")(13,"label",12),O(14,3),i(),s(15,"input",13),q("ngModelChange",function(_){return W(t.repeatPassphrase,_)||(t.repeatPassphrase=_),_}),i(),d(16,qe,2,0,"spk-icon",14)(17,je,2,0,"spk-icon",15),i()(),s(18,"footer",16)(19,"button",17),g("click",function(){return t.cancel()}),O(20,4),i(),d(21,Qe,2,2,"button",18)(22,Je,2,3,"button",19),i()),e&2&&(r(11),z("ngModel",t.passphrase),r(4),h("disabled",t.passphrase().length===0),z("ngModel",t.repeatPassphrase),r(),S(t.passphrase().length!==0&&t.passphrase()===t.repeatPassphrase()?16:17),r(3),v("loader",t.isUpdating()),r(2),S(t.passphrase().length!==0&&t.passphrase()===t.repeatPassphrase()?21:22))},dependencies:[Ne,Pe,he,De,G,Ae,M,Te],styles:["[_nghost-%COMP%]{display:block;--dialog-p: 1.5rem}[content][_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}"],changeDetection:0})};var Ze=()=>({exact:!0});function et(n,o){n&1&&(s(0,"spk-icon"),F(1,"sun"),i())}function tt(n,o){n&1&&(s(0,"spk-icon"),F(1,"moon"),i())}function nt(n,o){if(n&1){let e=f();s(0,"button",22),g("click",function(){C(e);let a=c();return m(a.changeDefaultClientTo("ngax"))}),p(1,7),l(2,"spk-icon"),u(),i(),s(3,"button",22),g("click",function(){C(e);let a=c();return m(a.logout())}),p(4,8),l(5,"spk-icon"),u(),i()}}var J=class n{#e=A($e);#t=A(H);#n=A(fe);#o=A(de);#i=A(ge);#s=A(x);#a=A(Ee);relayIsEnabled=this.#o.relayIsEnabled;isDarkMode=this.#e.isDarkMode;ngOnInit(){return this.#s.init(),this.#n.getBackups(!0),this.#t.getApiV1Serversettings().subscribe({next:o=>{let e=o["autogenerated-passphrase"]==="True",t=o["has-asked-for-password-change"]==="True";e&&!t&&this.#i.open(U,{maxWidth:"500px"})}})}toggleBodyClass(){this.#e.toggleBodyClass()}changeDefaultClientTo(o){this.#r(o),window.location.replace(`/${o}`)}logout(){this.#a.logout()}#r(o){var e=new Date;e.setTime(e.getTime()+90*24*60*60*1e3),document.cookie="default-client="+o+"; expires="+e.toUTCString()+"; path=/"}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=N({type:n,selectors:[["app-layout"]],decls:37,vars:4,consts:()=>{let o;o=$localize`${"\uFFFD#10\uFFFD"}:START_TAG_SPK_ICON:house${"\uFFFD/#10\uFFFD"}:CLOSE_TAG_SPK_ICON: Home `;let e;e=$localize`${"\uFFFD#13\uFFFD"}:START_TAG_SPK_ICON:database${"\uFFFD/#13\uFFFD"}:CLOSE_TAG_SPK_ICON: Add backup `;let t;t=$localize`${"\uFFFD#16\uFFFD"}:START_TAG_SPK_ICON:clock-counter-clockwise${"\uFFFD/#16\uFFFD"}:CLOSE_TAG_SPK_ICON: Restore `;let a;a=$localize`${"\uFFFD#19\uFFFD"}:START_TAG_SPK_ICON:gear${"\uFFFD/#19\uFFFD"}:CLOSE_TAG_SPK_ICON: Settings `;let _;_=$localize`${"\uFFFD#26\uFFFD"}:START_TAG_SPK_ICON:info${"\uFFFD/#26\uFFFD"}:CLOSE_TAG_SPK_ICON: About Duplicati `;let D;D=$localize`${"\uFFFD#29\uFFFD"}:START_TAG_SPK_ICON:files${"[\uFFFD/#29\uFFFD|\uFFFD/#30\uFFFD]"}:CLOSE_TAG_SPK_ICON: Documentation ${"\uFFFD#30\uFFFD"}:START_TAG_SPK_ICON_1:arrow-square-out${"[\uFFFD/#29\uFFFD|\uFFFD/#30\uFFFD]"}:CLOSE_TAG_SPK_ICON:`,D=R(D);let k;k=$localize`${"\uFFFD#33\uFFFD"}:START_TAG_SPK_ICON:chats-circle${"[\uFFFD/#33\uFFFD|\uFFFD/#34\uFFFD]"}:CLOSE_TAG_SPK_ICON: Visit forum ${"\uFFFD#34\uFFFD"}:START_TAG_SPK_ICON_1:arrow-square-out${"[\uFFFD/#33\uFFFD|\uFFFD/#34\uFFFD]"}:CLOSE_TAG_SPK_ICON:`,k=R(k);let I;I=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SPK_ICON:skip-back${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SPK_ICON: Use old UI `;let L;return L=$localize`${"\uFFFD#5\uFFFD"}:START_TAG_SPK_ICON:sign-out${"\uFFFD/#5\uFFFD"}:CLOSE_TAG_SPK_ICON: Log out `,[o,e,t,a,_,D,k,I,L,["sidenav",""],["spk-button","",1,"icon","small",3,"click"],[1,"base-1","primary"],["action","","routerLink","/","routerLinkActive","active",3,"routerLinkActiveOptions"],["action","","routerLink","/add-backup","routerLinkActive","active"],["action","","routerLink","/restore","routerLinkActive","active"],["action","","routerLink","/settings","routerLinkActive","active"],[1,"spacer"],[1,"base-1l","primary"],["action","","routerLink","/about","routerLinkActive","active"],["href","https://docs.duplicati.com","target","_blank","action",""],["suffix",""],["href","https://forum.duplicati.com","target","_blank","action",""],["action","",3,"click"]]},template:function(e,t){e&1&&(s(0,"spk-sidenav")(1,"div",9)(2,"header"),l(3,"app-logo"),s(4,"button",10),g("click",function(){return t.toggleBodyClass()}),d(5,et,2,0,"spk-icon")(6,tt,2,0,"spk-icon"),i()(),s(7,"spk-list",11)(8,"button",12),p(9,0),l(10,"spk-icon"),u(),i(),s(11,"button",13),p(12,1),l(13,"spk-icon"),u(),i(),s(14,"button",14),p(15,2),l(16,"spk-icon"),u(),i(),s(17,"button",15),p(18,3),l(19,"spk-icon"),u(),i()(),l(20,"div",16),s(21,"spk-list",17),d(22,nt,6,0),l(23,"spk-divider"),s(24,"button",18),p(25,4),l(26,"spk-icon"),u(),i(),s(27,"a",19),p(28,5),l(29,"spk-icon")(30,"spk-icon",20),u(),i(),s(31,"a",21),p(32,6),l(33,"spk-icon")(34,"spk-icon",20),u(),i()()(),l(35,"router-outlet")(36,"app-service-hub"),i()),e&2&&(r(5),S(t.isDarkMode()?5:6),r(3),h("routerLinkActiveOptions",ae(3,Ze)),r(14),S(t.relayIsEnabled()?-1:22))},dependencies:[ce,pe,ue,me,M,Ce,w,Fe,b,Ie],styles:["[_nghost-%COMP%]{height:100vh;width:100%;overflow:hidden}header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:1.25rem;gap:.75rem}h3[title][_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between}div[sidenav][_ngcontent-%COMP%]{display:flex;flex-direction:column;height:100vh}"],changeDetection:0})};export{J as default};
@@ -0,0 +1 @@
1
+ import{d as $,r as E}from"./chunk-NSIELNIY.js";import{h as O}from"./chunk-DNJOKPEL.js";import{H as M,Hc as C,U as V,Z as G,na as D,r as f}from"./chunk-BTMXQPBB.js";import{a}from"./chunk-EUDKD2JW.js";var u=class{constructor(t){this.loader=t}_data=D(void 0);_isLoading=!1;_loaded=!1;load(){return!this._loaded&&!this._isLoading&&(this._isLoading=!0,this.loader().pipe(M(()=>this._isLoading=!1)).subscribe(t=>{this._data.set(t),this._loaded=!0})),this._data.asReadonly()}value(){return this._data.asReadonly()}isLoading(){return this._isLoading}isLoaded(){return this._loaded}reset(){this._data.set(void 0),this._loaded=!1}};var d=class e{#e=G(O);#o=new u(()=>this.getS3Config("Providers"));#n=new u(()=>this.getS3Config("Regions"));#r=new u(()=>this.getS3Config("RegionHosts"));#a=new u(()=>this.getS3Config("StorageClasses"));#i=C(()=>{let t=this.#o.value()(),o=this.#r.value()(),n=[...t??[],...o?.map(c=>({key:`Amazon ${c.key}`,value:c.value}))??[]];return Array.from(new Map(n.map(c=>[c.value,c])).values())});#s=new u(()=>this.getStorjConfig("Satellites"));#l=new u(()=>this.getStorjConfig("AuthenticationMethods"));#c=new u(()=>this.getOpenstackConfig("Providers"));#p=new u(()=>this.getOpenstackConfig("Versions"));#m=new u(()=>this.getGcsConfig("Locations"));#u=new u(()=>this.getGcsConfig("StorageClasses"));getS3AllProviders(){return this.#o.load(),this.#r.load(),this.#i}getS3Providers(){return this.#o.load()}getS3Regions(){return this.#n.load()}getS3RegionHosts(){return this.#r.load()}getS3StorageClasses(){return this.#a.load()}getStorjSatellites(){return this.#s.load()}getStorjAuthenticationMethods(){return this.#l.load()}getOpenstackProviders(){return this.#c.load()}getOpenstackVersions(){return this.#p.load()}getGcsLocations(){return this.#m.load()}getGcsStorageClasses(){return this.#u.load()}getS3Config(t){return this.#e.postApiV1WebmoduleByModulekey({modulekey:"s3-getconfig",requestBody:{"s3-config":t}}).pipe(f(o=>this.#t(o)))}createS3IamUser(t,o){return this.#e.postApiV1WebmoduleByModulekey({modulekey:"s3-iamconfig",requestBody:{"s3-operation":"CanCreateUser","s3-username":t,"s3-password":o}})}createS3PolicyIAM(t){return this.#e.postApiV1WebmoduleByModulekey({modulekey:"s3-iamconfig",requestBody:{"s3-operation":"GetPolicyDoc",path:t}})}getStorjConfig(t){return this.#e.postApiV1WebmoduleByModulekey({modulekey:"storj-getconfig",requestBody:{"storj-config":t}}).pipe(f(o=>this.#t(o)))}getOpenstackConfig(t){return this.#e.postApiV1WebmoduleByModulekey({modulekey:"openstack-getconfig",requestBody:{"openstack-config":t}}).pipe(f(o=>this.#t(o)))}getGcsConfig(t){return this.#e.postApiV1WebmoduleByModulekey({modulekey:"gcs-getconfig",requestBody:{"gcs-config":t}}).pipe(f(o=>this.#t(o)))}#t(t){return(t.Result&&typeof t.Result=="object"&&Object.entries(t.Result).map(([o,n])=>({key:o,value:n})))??[]}static \u0275fac=function(o){return new(o||e)};static \u0275prov=V({token:e,factory:e.\u0275fac,providedIn:"root"})};var r=new E,l={type:"error",message:$localize`Using a leading slash is most likely wrong, and will result in objects being created with a leading slash in the name.`},A={description:$localize`Unknown destination type`,customFields:{path:{type:"String",name:"path",doubleSlash:l,shortDescription:$localize`Path`,formElement:e=>r.control(e??"")}},mapper:{to:e=>s(e,null,null,e.custom.path),from:(e,t,o)=>{let c=o.startsWith(`${e}:///`)?o.split(`${e}:///`)[1]:o.split(`${e}://`)[1];return a({destinationType:e,custom:{path:c.split("?")[0]}},i(e,t))}}},L=[{key:"file",displayName:$localize`File system`,description:$localize`Store backups on your local file system.`,customFields:{path:{type:"FolderTree",name:"path",doubleSlash:l,shortDescription:$localize`File path`,longDescription:$localize`The path to store the backup`,formElement:e=>r.control(e??""),isMandatory:!0}},mapper:{to:e=>s(e,null,null,e.custom.path),from:(e,t,o)=>{let c=o.startsWith("file:///")?o.split("file:///")[1]:o.split("file://")[1],g=c.slice(1).startsWith(":\\")?c:"/"+c;return a({destinationType:e,custom:{path:g.split("?")[0]}},i(e,t))}}},{key:"ssh",displayName:$localize`SSH`,description:$localize`Store backups with SSH.`,customFields:{server:{type:"Hostname",name:"server",shortDescription:$localize`Server`,longDescription:$localize`The server to connect to`,formElement:e=>r.control(e??""),isMandatory:!0},port:{type:"Integer",name:"port",shortDescription:$localize`Port`,longDescription:$localize`The port to connect to`,formElement:e=>r.control(e??"",[$.required,$.max(65535)])},path:{type:"Path",name:"path",shortDescription:$localize`Folder path`,longDescription:$localize`Folder path`,doubleSlash:{type:"warning",message:$localize`Using a leading slash makes the path absolute, pointing to the root of the filesystem.`},formElement:e=>r.control(e??"")}},dynamicFields:[{name:"auth-username",isMandatory:!0}],advancedFields:[{type:"FileTree",name:"ssh-keyfile",accepts:".key,",shortDescription:$localize`This is a path to a private key file locally on the machine`,longDescription:$localize`This is a path to a private key file locally on the machine`},{type:"FreeText",name:"ssh-key",shortDescription:$localize`SSH private key`,longDescription:$localize`An SSH private key. Supported formats are OpenSSL, OpenSSH, PuTTY, and PEM.`}],mapper:{to:e=>{let{server:t,port:o,path:n}=e.custom;return s(e,t,o,n)},from:(e,t,o)=>a({destinationType:e,custom:{server:t.hostname,port:t.port,path:p(t.pathname)}},i(e,t))}},{key:"s3",displayName:$localize`S3 Compatible`,description:$localize`Store backups in any S3 compatible bucket.`,customFields:{bucket:{type:"Bucketname",name:"bucket",shortDescription:$localize`Bucket name`,longDescription:$localize`Bucket name`,formElement:e=>r.control(e??""),isMandatory:!0},path:{type:"Path",name:"path",doubleSlash:l,shortDescription:$localize`Folder path`,longDescription:$localize`Folder path`,formElement:e=>r.control(e??"")}},dynamicFields:[{name:"s3-server-name",order:1,shortDescription:$localize`Server`,longDescription:$localize`The hostname of the S3 compatible server to connect to`,type:"NonValidatedSelectableString",loadOptions:e=>e.get(d).getS3AllProviders(),isMandatory:!0,formElement:e=>r.control(e??"")},{name:"use-ssl",order:2},{name:"auth-username",isMandatory:!0},{name:"auth-password",isMandatory:!0}],advancedFields:[{name:"s3-client",type:"Enumeration",loadOptions:()=>D([{key:"AWS Library",value:"aws"},{key:"MinIO Library",value:"minio"}])},{name:"s3-storage-class",type:"NonValidatedSelectableString",loadOptions:e=>e.get(d).getS3StorageClasses()},{name:"s3-location-constraint",type:"NonValidatedSelectableString",loadOptions:e=>e.get(d).getS3Regions()}],mapper:{to:e=>{let{bucket:t,path:o}=e.custom;return s(e,t,null,o)},from:(e,t,o)=>a({destinationType:e,custom:{path:p(t.pathname),bucket:t.hostname}},i(e,t))}},{key:"gcs",displayName:$localize`Google Cloud Storage`,description:$localize`Store backups in Google Cloud Storage.`,oauthField:"authid",customFields:{path:{type:"Bucketname",name:"path",doubleSlash:l,shortDescription:$localize`Bucket name`,longDescription:$localize`Bucket name`,formElement:e=>r.control(e??""),isMandatory:!0}},dynamicFields:[{name:"authid",isMandatory:!0}],advancedFields:[{name:"gcs-location",type:"NonValidatedSelectableString",loadOptions:e=>e.get(d).getGcsLocations()},{name:"gcs-storage-class",type:"NonValidatedSelectableString",loadOptions:e=>e.get(d).getGcsStorageClasses()}],mapper:{to:e=>s(e,null,null,e.custom.path),from:(e,t,o)=>a({destinationType:e,custom:{path:h(t)}},i(e,t))}},{key:"googledrive",displayName:$localize`Google Drive`,description:$localize`Store backups in Google Drive.`,oauthField:"authid",customFields:{path:{type:"Path",name:"path",doubleSlash:l,shortDescription:$localize`Folder path`,longDescription:$localize`Folder path`,formElement:e=>r.control(e??"")}},dynamicFields:[{name:"authid",type:"Password",isMandatory:!0}],mapper:{to:e=>s(e,null,null,e.custom.path),from:(e,t,o)=>a({destinationType:e,custom:{path:h(t)}},i(e,t))}},{key:"pcloud",displayName:$localize`pCloud`,description:$localize`Store backups in pCloud.`,oauthField:"authid",customFields:{server:{type:"Enumeration",name:"server",loadOptions:()=>D([{key:"pCloud Global",value:"api.pcloud.com"},{key:"pCloud Europe",value:"eapi.pcloud.com"}]),shortDescription:$localize`Server`,longDescription:$localize`Server`,formElement:e=>r.control(e??""),isMandatory:!0},path:{type:"Path",name:"path",doubleSlash:l,shortDescription:$localize`Folder path`,longDescription:$localize`Folder path`,formElement:e=>r.control(e??"")}},dynamicFields:[{name:"authid",type:"Password",oauthVersion:2,isMandatory:!0}],mapper:{to:e=>{let{server:t,path:o}=e.custom;return s(e,t,null,o)},from:(e,t,o)=>{let n=t.pathname.replace(/^\//,"");return a({destinationType:e,custom:{server:t.hostname,path:n}},i(e,t))}}},{key:"azure",displayName:$localize`Azure Blob Storage`,description:$localize`Store backups in Azure Blob Storage.`,customFields:{path:{type:"Path",name:"path",doubleSlash:l,shortDescription:$localize`Container name`,longDescription:$localize`Container name`,formElement:e=>r.control(e??"")}},dynamicFields:[{name:"auth-username",shortDescription:$localize`Account name`,isMandatory:!0},{name:"auth-password",shortDescription:$localize`Access key`,isMandatory:!0}],mapper:{to:e=>s(e,null,null,e.custom.path),from:(e,t,o)=>a({destinationType:e,custom:{path:h(t)}},i(e,t))}},{key:"onedrivev2",displayName:$localize`OneDrive`,description:$localize`Store backups in OneDrive.`,oauthField:"authid",customFields:{path:{type:"Path",name:"path",doubleSlash:l,shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,formElement:e=>r.control(e??"")}},dynamicFields:[{name:"authid",isMandatory:!0}],mapper:{to:e=>s(e,null,null,e.custom.path),from:(e,t,o)=>a({destinationType:e,custom:{path:h(t)}},i(e,t))}},{key:"od4b",displayName:$localize`OneDrive Business`,description:$localize`Store backups in OneDrive Business.`,customFields:{server:{type:"Hostname",name:"server",shortDescription:$localize`Server`,longDescription:$localize`Server`,formElement:e=>r.control(e??""),isMandatory:!0},port:{type:"Integer",name:"port",shortDescription:$localize`Port`,longDescription:$localize`Port`,formElement:e=>r.control(e??"")},path:{type:"Path",name:"path",doubleSlash:l,shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,formElement:e=>r.control(e??"")}},dynamicFields:[{name:"auth-username",shortDescription:$localize`Account name`,isMandatory:!0},{name:"auth-password",shortDescription:$localize`Access key`,isMandatory:!0}],mapper:{to:e=>{let{port:t,server:o,path:n}=e.custom;return s(e,o,t,n)},from:(e,t,o)=>a({destinationType:e,custom:{server:t.hostname,port:t.port,path:p(t.pathname)}},i(e,t))}},{key:"mssp",displayName:$localize`Microsoft SharePoint`,description:$localize`Store backups in Microsoft SharePoint.`,customFields:{server:{type:"Hostname",name:"server",shortDescription:$localize`Server`,longDescription:$localize`Server`,formElement:e=>r.control(e??""),isMandatory:!0},port:{type:"Integer",name:"port",shortDescription:$localize`Port`,longDescription:$localize`Port`,formElement:e=>r.control(e??"")},path:{type:"String",name:"path",doubleSlash:l,shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,formElement:e=>r.control(e??"")}},dynamicFields:[{name:"auth-username",shortDescription:$localize`Account name`,isMandatory:!0},{name:"auth-password",shortDescription:$localize`Access key`,isMandatory:!0}],mapper:{to:e=>{let{port:t,server:o,path:n}=e.custom;return s(e,o,t,n)},from:(e,t,o)=>a({destinationType:e,custom:{server:t.hostname,port:t.port,path:p(t.pathname)}},i(e,t))}},{key:"sharepoint",displayName:$localize`Microsoft SharePoint v2`,description:$localize`Store backups in Microsoft SharePoint.`,oauthField:"authid",customFields:{path:{type:"Path",name:"path",doubleSlash:l,shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,formElement:e=>r.control(e??"")}},dynamicFields:[{name:"site-id",isMandatory:!0},{name:"authid",isMandatory:!0}],mapper:{to:e=>s(e,null,null,e.custom.path),from:(e,t,o)=>a({destinationType:e,custom:{path:h(t)}},i(e,t))}},{key:"dropbox",displayName:$localize`Dropbox`,description:$localize`Store backups in Dropbox.`,oauthField:"authid",customFields:{path:{type:"Path",name:"path",doubleSlash:l,shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,formElement:e=>r.control(e??"")}},dynamicFields:[{name:"authid",isMandatory:!0}],mapper:{to:e=>s(e,null,null,e.custom.path),from:(e,t,o)=>a({destinationType:e,custom:{path:h(t)}},i(e,t))}},{key:"box",displayName:$localize`Box.com`,description:$localize`Store backups in Box.com.`,oauthField:"authid",customFields:{path:{type:"Path",name:"path",doubleSlash:l,shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,formElement:e=>r.control(e??"")}},dynamicFields:[{name:"authid",isMandatory:!0}],mapper:{to:e=>s(e,null,null,e.custom.path),from:(e,t,o)=>a({destinationType:e,custom:{path:h(t)}},i(e,t))}},{key:"jottacloud",displayName:$localize`Jottacloud`,description:$localize`Store backups in Jottacloud.`,oauthField:"authid",customFields:{path:{type:"Path",name:"path",doubleSlash:l,shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,formElement:e=>r.control(e??"")}},dynamicFields:[{name:"authid",isMandatory:!0}],mapper:{to:e=>s(e,null,null,e.custom.path),from:(e,t,o)=>a({destinationType:e,custom:{path:h(t)}},i(e,t))}},{key:"b2",displayName:$localize`B2 Cloud Storage`,description:$localize`Store backups in B2 Cloud Storage.`,customFields:{bucket:{type:"Bucketname",name:"bucket",shortDescription:$localize`Bucket name`,longDescription:$localize`Bucket name`,formElement:e=>r.control(e??""),isMandatory:!0},path:{type:"Path",name:"path",doubleSlash:l,shortDescription:$localize`Path in the bucket`,longDescription:$localize`Path in the bucket`,formElement:e=>r.control(e??"")}},dynamicFields:[{name:"auth-username",shortDescription:$localize`Application ID`,isMandatory:!0},{name:"auth-password",shortDescription:$localize`Application Key`,isMandatory:!0}],mapper:{to:e=>{let{bucket:t,path:o}=e.custom;return s(e,t,null,o)},from:(e,t,o)=>a({destinationType:e,custom:{bucket:t.hostname,path:decodeURIComponent(t.pathname)}},i(e,t))}},{key:"e2",displayName:$localize`IDrive e2`,description:$localize`Store backups in IDrive e2.`,customFields:{bucket:{type:"Bucketname",name:"bucket",shortDescription:$localize`Bucket name`,longDescription:$localize`Bucket name`,formElement:e=>r.control(e??""),isMandatory:!0},path:{type:"String",name:"path",doubleSlash:l,shortDescription:$localize`Path in the bucket`,longDescription:$localize`Path in the bucket`,formElement:e=>r.control(e??"")}},dynamicFields:[{name:"auth-username",shortDescription:$localize`Access ID`,isMandatory:!0},{name:"auth-password",shortDescription:$localize`Access Secret`,isMandatory:!0}],mapper:{to:e=>{let{bucket:t,path:o}=e.custom;return s(e,t,null,o)},from:(e,t,o)=>a({destinationType:e,custom:{bucket:t.hostname,path:p(t.pathname)}},i(e,t))}},{key:"mega",displayName:$localize`Mega.nz`,description:$localize`Store backups in Mega.nz.`,customFields:{path:{type:"Path",name:"path",doubleSlash:l,shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,formElement:e=>r.control(e??"")}},dynamicFields:[{name:"auth-username",shortDescription:$localize`Username`,isMandatory:!0},{name:"auth-password",shortDescription:$localize`Password`,isMandatory:!0}],mapper:{to:e=>{let t=e.custom.path;return s(e,null,null,t)},from:(e,t,o)=>a({destinationType:e,custom:{path:h(t)}},i(e,t))}},{key:"msgroup",displayName:$localize`Microsoft Office 365 Group`,description:$localize`Store backups in Microsoft Office 365 Group.`,oauthField:"authid",customFields:{groupEmail:{type:"Email",name:"groupEmail",shortDescription:$localize`Group email`,longDescription:$localize`Group email`,formElement:e=>r.control(e??"",[$.email]),isMandatory:!0},path:{type:"Path",name:"path",doubleSlash:l,shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,formElement:e=>r.control(e??"")}},dynamicFields:[{name:"authid",isMandatory:!0}],mapper:{to:e=>s(e,null,null,e.custom.path),from:(e,t,o)=>a({destinationType:e,custom:{path:h(t)}},i(e,t))}},{key:"cloudfiles",displayName:$localize`Rackspace CloudFiles`,description:$localize`Store backups in Rackspace CloudFiles.`,customFields:{server:{type:"Hostname",name:"server",shortDescription:$localize`Server`,longDescription:$localize`Server`,formElement:e=>r.control(e??""),isMandatory:!0},port:{type:"Integer",name:"port",shortDescription:$localize`Port`,longDescription:$localize`Port`,formElement:e=>r.control(e??"")},path:{type:"Path",name:"path",doubleSlash:l,shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,formElement:e=>r.control(e??"")}},dynamicFields:[{name:"auth-username",shortDescription:$localize`Username`,isMandatory:!0},{name:"auth-password",shortDescription:$localize`Password`,isMandatory:!0}],mapper:{to:e=>{let{port:t,server:o,path:n}=e.custom;return s(e,o,t,n)},from:(e,t,o)=>a({destinationType:e,custom:{server:t.hostname,port:t.port,path:p(t.pathname)}},i(e,t))}},{key:"rclone",displayName:$localize`Rclone`,description:$localize`Store backups in Rclone.`,dynamicFields:[{name:"rclone-local-repository",shortDescription:$localize`Local repository`,defaultValue:""},{name:"rclone-remote-repository",shortDescription:$localize`Remote repository`,defaultValue:""},{name:"rclone-remote-path",type:"Path",shortDescription:$localize`Path on remote repository`,defaultValue:""}],mapper:{to:e=>{let t=e.dynamic["rclone-remote-repository"],o=e.dynamic["rclone-remote-path"],n=Object.entries(e.dynamic).filter(([c])=>!["rclone-remote-repository","rclone-remote-path"].includes(c));return F(e.destinationType??"rclone",t,null,o,[...Object.entries(e.advanced),...n])},from:(e,t,o)=>{let{advanced:n,dynamic:c}=i(e,t);return a({destinationType:e,dynamic:a({"rclone-remote-repository":t.hostname,"rclone-remote-path":t.pathname},c)},n)}}},{key:"openstack",displayName:$localize`OpenStack Object Storage`,description:$localize`Store backups in OpenStack Object Storage.`,customFields:{bucket:{type:"Bucketname",name:"bucket",shortDescription:$localize`Bucket`,longDescription:$localize`Bucket`,formElement:e=>r.control(e??""),isMandatory:!0}},dynamicFields:[{name:"openstack-authuri",shortDescription:$localize`Auth URI`,type:"Enumeration",loadOptions:e=>e.get(d).getOpenstackProviders(),isMandatory:!0},{name:"openstack-version",shortDescription:$localize`Version`,type:"Enumeration",loadOptions:e=>e.get(d).getOpenstackVersions()},{name:"openstack-domain-name",type:"Hostname",shortDescription:$localize`Domain name`},{name:"openstack-tenant-name",shortDescription:$localize`Tenant name`},{name:"openstack-region",shortDescription:$localize`Region`}],mapper:{to:e=>{let{bucket:t}=e.custom;return s(e,t,null,null)},from:(e,t,o)=>a({destinationType:e,custom:{path:p(t.pathname),bucket:t.hostname}},i(e,t))}},{key:"webdav",displayName:$localize`WebDAV`,description:$localize`Store backups in WebDAV.`,customFields:{server:{type:"Hostname",name:"server",shortDescription:$localize`Server`,longDescription:$localize`Server`,formElement:e=>r.control(e??""),isMandatory:!0},port:{type:"Integer",name:"port",shortDescription:$localize`Port`,longDescription:$localize`Port`,formElement:e=>r.control(e??"")},path:{type:"Path",name:"path",doubleSlash:l,shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,formElement:e=>r.control(e??"")}},dynamicFields:[{name:"use-ssl",shortDescription:$localize`Use SSL`},{name:"auth-username",shortDescription:$localize`Username`,isMandatory:!0},{name:"auth-password",shortDescription:$localize`Password`,isMandatory:!0}],mapper:{to:e=>{let{server:t,port:o,path:n}=e.custom;return s(e,t,o,n)},from:(e,t,o)=>a({destinationType:e,custom:{server:t.hostname,port:t.port,path:p(t.pathname)}},i(e,t))}},{key:"aftp",displayName:$localize`Alternative FTP`,description:$localize`Store backups in FTP.`,customFields:{server:{type:"Hostname",name:"server",shortDescription:$localize`Server`,longDescription:$localize`Server`,formElement:e=>r.control(e??""),isMandatory:!0},port:{type:"Integer",name:"port",shortDescription:$localize`Port`,longDescription:$localize`Port`,formElement:e=>r.control(e??"")},path:{type:"Path",name:"path",shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,doubleSlash:{type:"warning",message:$localize`Using a leading slash makes the path absolute, pointing to the root of the filesystem.`},formElement:e=>r.control(e??"")}},dynamicFields:[{name:"auth-username",shortDescription:$localize`Username`,isMandatory:!0},{name:"auth-password",shortDescription:$localize`Password`,isMandatory:!0}],mapper:{to:e=>{let{server:t,port:o,path:n}=e.custom;return s(e,t,o,n)},from:(e,t,o)=>a({destinationType:e,custom:{server:t.hostname,port:t.port,path:p(t.pathname)}},i(e,t))}},{key:"ftp",displayName:$localize`FTP`,description:$localize`Store backups in FTP.`,customFields:{server:{type:"Hostname",name:"server",shortDescription:$localize`Server`,longDescription:$localize`Server`,formElement:e=>r.control(e??""),isMandatory:!0},port:{type:"Integer",name:"port",shortDescription:$localize`Port`,longDescription:$localize`Port`,formElement:e=>r.control(e??"")},path:{type:"Path",name:"path",shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,doubleSlash:{type:"warning",message:$localize`Using a leading slash makes the path absolute, pointing to the root of the filesystem.`},formElement:e=>r.control(e??"")}},dynamicFields:[{name:"auth-username",shortDescription:$localize`Username`,isMandatory:!0},{name:"auth-password",shortDescription:$localize`Password`,isMandatory:!0}],mapper:{to:e=>{let{port:t,server:o,path:n}=e.custom;return s(e,o,t,n)},from:(e,t,o)=>a({destinationType:e,custom:{server:t.hostname,port:t.port,path:p(t.pathname)}},i(e,t))}},{key:"sia",displayName:$localize`Sia Decentrilized Cloud`,description:$localize`Store backups in Sia Decentrilized Cloud.`,customFields:{server:{type:"Hostname",name:"server",shortDescription:$localize`Server`,longDescription:$localize`Server`,formElement:e=>r.control(e??""),isMandatory:!0}},dynamicFields:["sia-targetpath","sia-password","sia-redundancy"],mapper:{to:e=>{let t=e.custom.server,o=e.dynamic["sia-targetpath"],n=[...Object.entries(e.advanced),...Object.entries(e.dynamic).filter(([c])=>c!=="sia-targetpath")];return F(e.destinationType??"sia",t,null,o,n)},from:(e,t,o)=>a({destinationType:e,custom:{path:p(t.pathname)}},i(e,t))}},{key:"cos",displayName:$localize`Tencent COS`,description:$localize`Store backups in Tencent COS.`,customFields:{path:{type:"Path",name:"path",doubleSlash:l,shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,formElement:e=>r.control(e??"")}},dynamicFields:[{name:"cos-bucket",type:"Bucketname",shortDescription:$localize`Bucket`,order:1,isMandatory:!0},{name:"cos-region",shortDescription:$localize`Region`,order:2},{name:"cos-app-id",shortDescription:$localize`COS App Id`,order:3,isMandatory:!0},{name:"cos-secret-id",shortDescription:$localize`COS Secret Id`,order:4,isMandatory:!0},{name:"cos-secret-key",shortDescription:$localize`COS Secret Key`,order:5,isMandatory:!0}],mapper:{to:e=>s(e,null,null,e.custom.path),from:(e,t,o)=>a({destinationType:e,custom:{path:p(t.pathname)}},i(e,t))}},{key:"tahoe",displayName:$localize`Tahoe LAFS`,description:$localize`Store backups in Tahoe LAFS.`,customFields:{server:{type:"Hostname",name:"server",shortDescription:$localize`Server`,longDescription:$localize`Server`,formElement:e=>r.control(e??""),isMandatory:!0},port:{type:"Integer",name:"port",shortDescription:$localize`Port`,longDescription:$localize`Port`,formElement:e=>r.control(e??"")},path:{type:"Path",name:"path",doubleSlash:l,shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,formElement:e=>r.control(e??"")}},dynamicFields:[{name:"use-ssl",shortDescription:$localize`Use SSL`}],mapper:{to:e=>{let{server:t,port:o,path:n}=e.custom;return s(e,t,o,n)},from:(e,t,o)=>a({destinationType:e,custom:{server:t.hostname,port:t.port,path:p(t.pathname)}},i(e,t))}},{key:"cifs",displayName:$localize`CIFS`,description:$localize`Store backups in CIFS.`,customFields:{server:{type:"Hostname",name:"server",shortDescription:$localize`Server`,longDescription:$localize`Server`,formElement:e=>r.control(e??""),isMandatory:!0},share:{type:"Hostname",name:"share",shortDescription:$localize`Share Name`,longDescription:$localize`Share Name`,formElement:e=>r.control(e??""),isMandatory:!0},path:{type:"Path",name:"path",doubleSlash:l,shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,formElement:e=>r.control(e??"")}},dynamicFields:["transport",{name:"auth-username",isMandatory:!0},{name:"auth-password",isMandatory:!0},"auth-domain"],mapper:{to:e=>{let{share:t,server:o,path:n}=e.custom;return s(e,o,null,b(t,n))},from:(e,t,o)=>{let n=t.pathname.split("/")[1],c=t.pathname.split("/").slice(2).join("/");return a({destinationType:e,custom:{server:t.hostname,share:n,path:c}},i(e,t))}}},{key:"filen",displayName:$localize`Filen.io`,description:$localize`Store backups in Filen.io.`,customFields:{path:{type:"Path",name:"path",doubleSlash:l,shortDescription:$localize`Path on Filen`,longDescription:$localize`Path on Filen`,formElement:e=>r.control(e??"")}},dynamicFields:[{name:"auth-username",isMandatory:!0},{name:"auth-password",isMandatory:!0}],mapper:{to:e=>s(e,null,null,e.custom.path),from:(e,t,o)=>a({destinationType:e,custom:{path:h(t)}},i(e,t))}},{key:"filejump",displayName:$localize`Filejump`,description:$localize`Store backups in Filejump.`,customFields:{path:{type:"Path",name:"path",doubleSlash:l,shortDescription:$localize`Path on Filejump`,longDescription:$localize`Path on Filejump`,formElement:e=>r.control(e??"")}},dynamicFields:[{type:"Password",name:"api-token",shortDescription:$localize`API Token`,longDescription:$localize`Filejump API Token`,formElement:e=>r.control(e??""),isMandatory:!0}],mapper:{to:e=>{let{path:t}=e.custom;return console.log(t),s(e,null,null,t)},from:(e,t,o)=>(console.log(t),a({destinationType:e,custom:{path:h(t)}},i(e,t)))}},{key:"storj",customKey:"storjAccessGrant",displayName:$localize`Storj Access Grant`,description:$localize`Store backups in Storj Access Grant.`,dynamicFields:[{name:"storj-shared-access",shortDescription:$localize`Access Grant`,isMandatory:!0},{name:"storj-bucket",type:"Bucketname",shortDescription:$localize`Bucket`,isMandatory:!0},{name:"storj-folder",type:"Path",shortDescription:$localize`Path on server`,doubleSlash:l},{name:"storj-satellite",shortDescription:$localize`Satellite`,type:"Enumeration",loadOptions:e=>e.get(d).getStorjSatellites(),isMandatory:!0}],mapper:{to:e=>{let t={"storj-auth-method":"Acccess grant"};return`storj://storj.io/config${k([...Object.entries(e.advanced),...Object.entries(e.dynamic),...Object.entries(t)])}`},from:(e,t,o)=>{let n=i(e,t);return delete n.advanced["storj-auth-method"],a({destinationType:e},n)}}},{key:"storj",customKey:"storjApiKey",displayName:$localize`Storj API Key`,description:$localize`Store backups in Storj API Key.`,dynamicFields:[{name:"storj-satellite",shortDescription:$localize`Satellite`,type:"Enumeration",loadOptions:e=>e.get(d).getStorjSatellites(),isMandatory:!0},{name:"storj-api-key",shortDescription:$localize`API Key`,isMandatory:!0},{name:"storj-secret",shortDescription:$localize`Secret`,isMandatory:!0},{name:"storj-bucket",type:"Bucketname",shortDescription:$localize`Bucket`,isMandatory:!0},{name:"storj-folder",type:"Path",shortDescription:$localize`Path on server`,doubleSlash:l}],mapper:{to:e=>{let t={"storj-auth-method":"API key"};return`storj://storj.io/config${k([...Object.entries(e.advanced),...Object.entries(e.dynamic),...Object.entries(t)])}`},from:(e,t,o)=>{let n=i(e,t);return delete n.advanced["storj-auth-method"],a({destinationType:e},n)}}},{key:"aliyunoss",displayName:$localize`Aliyun OSS`,description:$localize`Store backups in Aliyun OSS`,customFields:{bucket:{type:"Bucketname",name:"oss-bucket-name",shortDescription:$localize`Bucket name`,formElement:e=>r.control(e??""),isMandatory:!0},path:{type:"Path",name:"path",doubleSlash:l,shortDescription:$localize`Path in bucket`,longDescription:$localize`Path in bucket`,formElement:e=>r.control(e??"")}},dynamicFields:[{name:"oss-endpoint",isMandatory:!0},{name:"oss-access-key-id",isMandatory:!0},{name:"oss-access-key-secret",isMandatory:!0}],mapper:{to:e=>{let t=e.custom.path,o=e.custom["oss-bucket-name"];return s(e,o,null,t)},from:(e,t,o)=>a({destinationType:e,custom:{path:p(t.pathname),bucket:t.hostname}},i(e,t))}}],re={".amazonaws.com":"Amazon S3",".mycloudyplace.com":"MyCloudyPlace S3",".impossibleapi.net":"Impossible Cloud S3",".scw.cloud":"Scaleway S3",".hosteurope.de":"Hosteurope S3",".dunkel.de":"Dunkel S3",".dreamhost.com":"DreamHost S3",".dincloud.com":"dinCloud S3",".polisystems.ch":"Poli Systems S3",".softlayer.net":"IBM COS (S3)",".storadera.com":"Storadera S3",".wasabisys.com":"Wasabi S3",".infomaniak.com":"Infomaniak S3",".infomaniak.cloud":"Infomaniak S3",".sakurastorage.jp":"\u3055\u304F\u3089\u306E\u30AF\u30E9\u30A6\u30C9 S3",".lyvecloud.seagate.com":"Seagate Lyve S3",".digitaloceanspaces.com":"DigitalOcean S3",".backblazeb2.com":"Backblaze B2 S3",".cloudian.com":"Cloudian S3",".min.io":"MinIO S3",".linodeobjects.com":"Linode S3",".bunnycdn.com":"BunnyCDN S3",".azure.com":"Microsoft Azure S3",".googleapis.com":"Google Cloud Storage S3",".ibm.com":"IBM Cloud S3",".oracle.com":"Oracle Cloud S3",".cloudflare.com":"Cloudflare S3",".alibaba.com":"Alibaba Cloud S3",".huawei.com":"Huawei Cloud S3",".tencent.com":"Tencent Cloud S3",".baidu.com":"Baidu Cloud S3",".jd.com":"JD Cloud S3",".ucloud.cn":"UCloud S3",".qiniu.com":"Qiniu Cloud S3",".aliyuncs.com":"Aliyun S3",".tcloud.com":"TCloud S3",".tencentcloudapi.com":"Tencent Cloud S3"};function s(e,t,o,n){return F(e.destinationType??"file",t,o,n,[...Object.entries(e.advanced),...Object.entries(e.dynamic)])}function F(e,t,o,n,c){let m=k(c),g=R(t),S=g==""?"":g+U(o),v=b(S,n??"");return`${e}://${v}${m}`}function p(e){return e==null||e===""?"":e.startsWith("/")?e.substring(1):e}function b(...e){if(e.length===0)return"";if(e.length===1)return e[0]??"";let t="";for(let o of e)o==null||o===""||(t+=t.endsWith("/")||t==""?o:"/"+o);return t}function h(e){if(e==null||e==="")return"";if(typeof e=="string")try{e=new URL(e)}catch{return""}return(e.hostname??"")+(e.pathname=="/"?"":e.pathname??"")}function R(e){return e==null||e===""?"":e.endsWith("/")?e.substring(0,e.length-1):e}function U(e){return e==null||e===""?"":":"+e.toString()}function P(e){return L.find(o=>o.key===e||o.customKey===e)??a({key:e,displayName:e},A)}function i(e,t){let o={},n={},c=P(e);return t.searchParams.forEach((m,g)=>{c?.dynamicFields?.some(y=>y===g||y?.name===g)?n[g]=decodeURIComponent(m):o[g]=decodeURIComponent(m)}),{advanced:o,dynamic:n}}function k(e,t=!1){let o=e.map(([c,m])=>`${c}=${m?encodeURIComponent(m.toString()):""}`).join("&");return o?(t?"":"?")+o:""}function se(e){let t=e.destinationType??"";return P(t)?.mapper.to(e)??""}function le(e){let t=URL.canParse(e),o=e.split("://")[0],n=e.split("://")[1],c="http://"+n;if(!n)return null;if(n.startsWith("%")&&o==="file")return P(o).mapper.from(o,new URL("http://localhost"),e);try{let m=new URL(c);if(m.host==="undefined")return null;let g=n.split("?")[0].split("/")[0],S=!isNaN(Number(m.host.replaceAll(".",""))),y=g.split("."),v=y.length===4&&y.every(z=>z.length&&z.length<=3&&!isNaN(Number(z))&&parseInt(z)<=255);return S&&!v?null:P(o).mapper.from(o,m,e)}catch{return null}}export{P as a,se as b,le as c,re as d};
package/index.html CHANGED
@@ -59,9 +59,9 @@
59
59
  }
60
60
  }
61
61
  </style>
62
- <style>:root{--font-size:16px;font-size:var(--font-size)}html body{--sparkle-light:initial;--sparkle-dark: ;color-scheme:light dark;--primary-1:var(--sparkle-light, hsl(217, 91%, 95%)) var(--sparkle-dark, hsl(217, 91%, 9.5%));--primary-2:var(--sparkle-light, hsl(217, 91%, 90%)) var(--sparkle-dark, hsl(217, 91%, 15%));--primary-3:var(--sparkle-light, hsl(217, 91%, 85%)) var(--sparkle-dark, hsl(217, 91%, 22.5%));--primary-4:var(--sparkle-light, hsl(217, 91%, 80%)) var(--sparkle-dark, hsl(217, 91%, 30%));--primary-5:var(--sparkle-light, hsl(217, 91%, 75%)) var(--sparkle-dark, hsl(217, 91%, 37.5%));--primary-6:var(--sparkle-light, hsl(217, 91%, 70%)) var(--sparkle-dark, hsl(217, 91%, 45%));--primary-7:var(--sparkle-light, hsl(217, 91%, 65%)) var(--sparkle-dark, hsl(217, 91%, 52.5%));--primary-8:var(--sparkle-light, hsl(217, 91%, 60%)) var(--sparkle-dark, hsl(217, 91%, 60%));--primary-9:var(--sparkle-light, hsl(217, 91%, 46.5%)) var(--sparkle-dark, hsl(217, 91%, 70%));--primary-10:var(--sparkle-light, hsl(217, 91%, 33%)) var(--sparkle-dark, hsl(217, 91%, 80%));--primary-11:var(--sparkle-light, hsl(217, 91%, 19.5%)) var(--sparkle-dark, hsl(217, 91%, 90%));--primary-12:var(--sparkle-light, hsl(217, 91%, 6%)) var(--sparkle-dark, hsl(217, 91%, 100%));--primary-g2:linear-gradient(180deg, hsl(217, 91%, 70%) 0%, hsl(217, 91%, 60%) 50%);--primary-g3:linear-gradient(180deg, hsl(217, 91%, 80%) 0%, hsl(217, 91%, 60%) 50%);--accent-1:var(--sparkle-light, hsl(258, 90%, 95.75%)) var(--sparkle-dark, hsl(258, 90%, 9.25%));--accent-2:var(--sparkle-light, hsl(258, 90%, 91.5%)) var(--sparkle-dark, hsl(258, 90%, 16.5%));--accent-3:var(--sparkle-light, hsl(258, 90%, 87.25%)) var(--sparkle-dark, hsl(258, 90%, 24.75%));--accent-4:var(--sparkle-light, hsl(258, 90%, 83%)) var(--sparkle-dark, hsl(258, 90%, 33%));--accent-5:var(--sparkle-light, hsl(258, 90%, 78.75%)) var(--sparkle-dark, hsl(258, 90%, 41.25%));--accent-6:var(--sparkle-light, hsl(258, 90%, 74.5%)) var(--sparkle-dark, hsl(258, 90%, 49.5%));--accent-7:var(--sparkle-light, hsl(258, 90%, 70.25%)) var(--sparkle-dark, hsl(258, 90%, 57.75%));--accent-8:var(--sparkle-light, hsl(258, 90%, 66%)) var(--sparkle-dark, hsl(258, 90%, 66%));--accent-9:var(--sparkle-light, hsl(258, 90%, 51.15%)) var(--sparkle-dark, hsl(258, 90%, 74.5%));--accent-10:var(--sparkle-light, hsl(258, 90%, 36.3%)) var(--sparkle-dark, hsl(258, 90%, 83%));--accent-11:var(--sparkle-light, hsl(258, 90%, 21.45%)) var(--sparkle-dark, hsl(258, 90%, 91.5%));--accent-12:var(--sparkle-light, hsl(258, 90%, 6.6%)) var(--sparkle-dark, 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:var(--sparkle-light, hsl(37, 92%, 93.75%)) var(--sparkle-dark, hsl(37, 92%, 9.25%));--warn-2:var(--sparkle-light, hsl(37, 92%, 87.5%)) var(--sparkle-dark, hsl(37, 92%, 12.5%));--warn-3:var(--sparkle-light, hsl(37, 92%, 81.25%)) var(--sparkle-dark, hsl(37, 92%, 18.75%));--warn-4:var(--sparkle-light, hsl(37, 92%, 75%)) var(--sparkle-dark, hsl(37, 92%, 25%));--warn-5:var(--sparkle-light, hsl(37, 92%, 68.75%)) var(--sparkle-dark, hsl(37, 92%, 31.25%));--warn-6:var(--sparkle-light, hsl(37, 92%, 62.5%)) var(--sparkle-dark, hsl(37, 92%, 37.5%));--warn-7:var(--sparkle-light, hsl(37, 92%, 56.25%)) var(--sparkle-dark, hsl(37, 92%, 43.75%));--warn-8:var(--sparkle-light, hsl(37, 92%, 50%)) var(--sparkle-dark, hsl(37, 92%, 50%));--warn-9:var(--sparkle-light, hsl(37, 92%, 38.75%)) var(--sparkle-dark, hsl(37, 92%, 62.5%));--warn-10:var(--sparkle-light, hsl(37, 92%, 27.5%)) var(--sparkle-dark, hsl(37, 92%, 75%));--warn-11:var(--sparkle-light, hsl(37, 92%, 16.25%)) var(--sparkle-dark, hsl(37, 92%, 87.5%));--warn-12:var(--sparkle-light, hsl(37, 92%, 5%)) var(--sparkle-dark, 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:var(--sparkle-light, hsl(0, 84%, 95%)) var(--sparkle-dark, hsl(0, 84%, 7.5%));--error-2:var(--sparkle-light, hsl(0, 84%, 90%)) var(--sparkle-dark, hsl(0, 84%, 15%));--error-3:var(--sparkle-light, hsl(0, 84%, 85%)) var(--sparkle-dark, hsl(0, 84%, 22.5%));--error-4:var(--sparkle-light, hsl(0, 84%, 80%)) var(--sparkle-dark, hsl(0, 84%, 30%));--error-5:var(--sparkle-light, hsl(0, 84%, 75%)) var(--sparkle-dark, hsl(0, 27%, 10%));--error-6:var(--sparkle-light, hsl(0, 84%, 70%)) var(--sparkle-dark, hsl(0, 84%, 45%));--error-7:var(--sparkle-light, hsl(0, 84%, 65%)) var(--sparkle-dark, hsl(0, 84%, 52.5%));--error-8:var(--sparkle-light, hsl(0, 84%, 60%)) var(--sparkle-dark, hsl(0, 84%, 60%));--error-9:var(--sparkle-light, hsl(0, 84%, 46.5%)) var(--sparkle-dark, hsl(0, 84%, 70%));--error-10:var(--sparkle-light, hsl(0, 84%, 33%)) var(--sparkle-dark, hsl(0, 84%, 80%));--error-11:var(--sparkle-light, hsl(0, 84%, 19.5%)) var(--sparkle-dark, hsl(0, 84%, 90%));--error-12:var(--sparkle-light, hsl(0, 84%, 6%)) var(--sparkle-dark, 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:var(--sparkle-light, hsl(160, 84%, 92.38%)) var(--sparkle-dark, hsl(160, 84%, 7.88%));--success-2:var(--sparkle-light, hsl(160, 84%, 84.75%)) var(--sparkle-dark, hsl(160, 3%, 17%));--success-3:var(--sparkle-light, hsl(160, 84%, 77.13%)) var(--sparkle-dark, hsl(160, 84%, 14.63%));--success-4:var(--sparkle-light, hsl(160, 84%, 69.5%)) var(--sparkle-dark, hsl(160, 84%, 19.5%));--success-5:var(--sparkle-light, hsl(160, 84%, 61.88%)) var(--sparkle-dark, hsl(160, 84%, 24.38%));--success-6:var(--sparkle-light, hsl(160, 84%, 54.25%)) var(--sparkle-dark, hsl(160, 84%, 29.25%));--success-7:var(--sparkle-light, hsl(160, 84%, 46.63%)) var(--sparkle-dark, hsl(160, 84%, 34.13%));--success-8:var(--sparkle-light, hsl(160, 84%, 39%)) var(--sparkle-dark, hsl(160, 84%, 39%));--success-9:var(--sparkle-light, hsl(160, 84%, 30.23%)) var(--sparkle-dark, hsl(160, 84%, 54.25%));--success-10:var(--sparkle-light, hsl(160, 84%, 21.45%)) var(--sparkle-dark, hsl(160, 84%, 69.5%));--success-11:var(--sparkle-light, hsl(160, 84%, 12.67%)) var(--sparkle-dark, hsl(160, 84%, 84.75%));--success-12:var(--sparkle-light, hsl(160, 84%, 3.9%)) var(--sparkle-dark, 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:var(--sparkle-light, #fff) var(--sparkle-dark, hsl(0, 0%, 5.75%));--base-2:var(--sparkle-light, hsl(0, 0%, 98.05%)) var(--sparkle-dark, hsl(0, 0%, 8.75%));--base-3:var(--sparkle-light, hsl(0, 0%, 94.5%)) var(--sparkle-dark, hsl(0, 0%, 11.5%));--base-4:var(--sparkle-light, hsl(0, 0%, 84.75%)) var(--sparkle-dark, hsl(0, 0%, 17.25%));--base-5:var(--sparkle-light, hsl(0, 0%, 79.75%)) var(--sparkle-dark, hsl(0, 0%, 17.25%));--base-6:var(--sparkle-light, hsl(0, 0%, 66.25%)) var(--sparkle-dark, hsl(0, 0%, 28.75%));--base-7:var(--sparkle-light, hsl(0, 0%, 54.5%)) var(--sparkle-dark, hsl(0, 0%, 34.5%));--base-8:var(--sparkle-light, hsl(0, 0%, 46%)) var(--sparkle-dark, hsl(0, 0%, 46%));--base-9:var(--sparkle-light, hsl(0, 0%, 35.65%)) var(--sparkle-dark, hsl(0, 0%, 59.5%));--base-10:var(--sparkle-light, hsl(0, 0%, 25.3%)) var(--sparkle-dark, hsl(0, 0%, 73%));--base-11:var(--sparkle-light, hsl(0, 0%, 14.95%)) var(--sparkle-dark, hsl(0, 0%, 86.5%));--base-12:var(--sparkle-light, hsl(0, 0%, 4.6%)) var(--sparkle-dark, 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:before{content:"";width:1rem;height:1rem;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)}}</style><link rel="stylesheet" href="styles-4QA7NM7N.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-4QA7NM7N.css"></noscript></head>
62
+ <style>:root{--font-size:16px;font-size:var(--font-size)}html body{--sparkle-light:initial;--sparkle-dark: ;color-scheme:light dark;--primary-1:var(--sparkle-light, hsl(217, 91%, 95%)) var(--sparkle-dark, hsl(217, 91%, 9.5%));--primary-2:var(--sparkle-light, hsl(217, 91%, 90%)) var(--sparkle-dark, hsl(217, 91%, 15%));--primary-3:var(--sparkle-light, hsl(217, 91%, 85%)) var(--sparkle-dark, hsl(217, 91%, 22.5%));--primary-4:var(--sparkle-light, hsl(217, 91%, 80%)) var(--sparkle-dark, hsl(217, 91%, 30%));--primary-5:var(--sparkle-light, hsl(217, 91%, 75%)) var(--sparkle-dark, hsl(217, 91%, 37.5%));--primary-6:var(--sparkle-light, hsl(217, 91%, 70%)) var(--sparkle-dark, hsl(217, 91%, 45%));--primary-7:var(--sparkle-light, hsl(217, 91%, 65%)) var(--sparkle-dark, hsl(217, 91%, 52.5%));--primary-8:var(--sparkle-light, hsl(217, 91%, 60%)) var(--sparkle-dark, hsl(217, 91%, 60%));--primary-9:var(--sparkle-light, hsl(217, 91%, 46.5%)) var(--sparkle-dark, hsl(217, 91%, 70%));--primary-10:var(--sparkle-light, hsl(217, 91%, 33%)) var(--sparkle-dark, hsl(217, 91%, 80%));--primary-11:var(--sparkle-light, hsl(217, 91%, 19.5%)) var(--sparkle-dark, hsl(217, 91%, 90%));--primary-12:var(--sparkle-light, hsl(217, 91%, 6%)) var(--sparkle-dark, hsl(217, 91%, 100%));--primary-g2:linear-gradient(180deg, hsl(217, 91%, 70%) 0%, hsl(217, 91%, 60%) 50%);--primary-g3:linear-gradient(180deg, hsl(217, 91%, 80%) 0%, hsl(217, 91%, 60%) 50%);--accent-1:var(--sparkle-light, hsl(258, 90%, 95.75%)) var(--sparkle-dark, hsl(258, 90%, 9.25%));--accent-2:var(--sparkle-light, hsl(258, 90%, 91.5%)) var(--sparkle-dark, hsl(258, 90%, 16.5%));--accent-3:var(--sparkle-light, hsl(258, 90%, 87.25%)) var(--sparkle-dark, hsl(258, 90%, 24.75%));--accent-4:var(--sparkle-light, hsl(258, 90%, 83%)) var(--sparkle-dark, hsl(258, 90%, 33%));--accent-5:var(--sparkle-light, hsl(258, 90%, 78.75%)) var(--sparkle-dark, hsl(258, 90%, 41.25%));--accent-6:var(--sparkle-light, hsl(258, 90%, 74.5%)) var(--sparkle-dark, hsl(258, 90%, 49.5%));--accent-7:var(--sparkle-light, hsl(258, 90%, 70.25%)) var(--sparkle-dark, hsl(258, 90%, 57.75%));--accent-8:var(--sparkle-light, hsl(258, 90%, 66%)) var(--sparkle-dark, hsl(258, 90%, 66%));--accent-9:var(--sparkle-light, hsl(258, 90%, 51.15%)) var(--sparkle-dark, hsl(258, 90%, 74.5%));--accent-10:var(--sparkle-light, hsl(258, 90%, 36.3%)) var(--sparkle-dark, hsl(258, 90%, 83%));--accent-11:var(--sparkle-light, hsl(258, 90%, 21.45%)) var(--sparkle-dark, hsl(258, 90%, 91.5%));--accent-12:var(--sparkle-light, hsl(258, 90%, 6.6%)) var(--sparkle-dark, 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:var(--sparkle-light, hsl(37, 92%, 93.75%)) var(--sparkle-dark, hsl(37, 92%, 9.25%));--warn-2:var(--sparkle-light, hsl(37, 92%, 87.5%)) var(--sparkle-dark, hsl(37, 92%, 12.5%));--warn-3:var(--sparkle-light, hsl(37, 92%, 81.25%)) var(--sparkle-dark, hsl(37, 92%, 18.75%));--warn-4:var(--sparkle-light, hsl(37, 92%, 75%)) var(--sparkle-dark, hsl(37, 92%, 25%));--warn-5:var(--sparkle-light, hsl(37, 92%, 68.75%)) var(--sparkle-dark, hsl(37, 92%, 31.25%));--warn-6:var(--sparkle-light, hsl(37, 92%, 62.5%)) var(--sparkle-dark, hsl(37, 92%, 37.5%));--warn-7:var(--sparkle-light, hsl(37, 92%, 56.25%)) var(--sparkle-dark, hsl(37, 92%, 43.75%));--warn-8:var(--sparkle-light, hsl(37, 92%, 50%)) var(--sparkle-dark, hsl(37, 92%, 50%));--warn-9:var(--sparkle-light, hsl(37, 92%, 38.75%)) var(--sparkle-dark, hsl(37, 92%, 62.5%));--warn-10:var(--sparkle-light, hsl(37, 92%, 27.5%)) var(--sparkle-dark, hsl(37, 92%, 75%));--warn-11:var(--sparkle-light, hsl(37, 92%, 16.25%)) var(--sparkle-dark, hsl(37, 92%, 87.5%));--warn-12:var(--sparkle-light, hsl(37, 92%, 5%)) var(--sparkle-dark, 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:var(--sparkle-light, hsl(0, 84%, 95%)) var(--sparkle-dark, hsl(0, 84%, 7.5%));--error-2:var(--sparkle-light, hsl(0, 84%, 90%)) var(--sparkle-dark, hsl(0, 84%, 15%));--error-3:var(--sparkle-light, hsl(0, 84%, 85%)) var(--sparkle-dark, hsl(0, 84%, 22.5%));--error-4:var(--sparkle-light, hsl(0, 84%, 80%)) var(--sparkle-dark, hsl(0, 84%, 30%));--error-5:var(--sparkle-light, hsl(0, 84%, 75%)) var(--sparkle-dark, hsl(0, 27%, 10%));--error-6:var(--sparkle-light, hsl(0, 84%, 70%)) var(--sparkle-dark, hsl(0, 84%, 45%));--error-7:var(--sparkle-light, hsl(0, 84%, 65%)) var(--sparkle-dark, hsl(0, 84%, 52.5%));--error-8:var(--sparkle-light, hsl(0, 84%, 60%)) var(--sparkle-dark, hsl(0, 84%, 60%));--error-9:var(--sparkle-light, hsl(0, 84%, 46.5%)) var(--sparkle-dark, hsl(0, 84%, 70%));--error-10:var(--sparkle-light, hsl(0, 84%, 33%)) var(--sparkle-dark, hsl(0, 84%, 80%));--error-11:var(--sparkle-light, hsl(0, 84%, 19.5%)) var(--sparkle-dark, hsl(0, 84%, 90%));--error-12:var(--sparkle-light, hsl(0, 84%, 6%)) var(--sparkle-dark, 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:var(--sparkle-light, hsl(160, 84%, 92.38%)) var(--sparkle-dark, hsl(160, 84%, 7.88%));--success-2:var(--sparkle-light, hsl(160, 84%, 84.75%)) var(--sparkle-dark, hsl(160, 3%, 17%));--success-3:var(--sparkle-light, hsl(160, 84%, 77.13%)) var(--sparkle-dark, hsl(160, 84%, 14.63%));--success-4:var(--sparkle-light, hsl(160, 84%, 69.5%)) var(--sparkle-dark, hsl(160, 84%, 19.5%));--success-5:var(--sparkle-light, hsl(160, 84%, 61.88%)) var(--sparkle-dark, hsl(160, 84%, 24.38%));--success-6:var(--sparkle-light, hsl(160, 84%, 54.25%)) var(--sparkle-dark, hsl(160, 84%, 29.25%));--success-7:var(--sparkle-light, hsl(160, 84%, 46.63%)) var(--sparkle-dark, hsl(160, 84%, 34.13%));--success-8:var(--sparkle-light, hsl(160, 84%, 39%)) var(--sparkle-dark, hsl(160, 84%, 39%));--success-9:var(--sparkle-light, hsl(160, 84%, 30.23%)) var(--sparkle-dark, hsl(160, 84%, 54.25%));--success-10:var(--sparkle-light, hsl(160, 84%, 21.45%)) var(--sparkle-dark, hsl(160, 84%, 69.5%));--success-11:var(--sparkle-light, hsl(160, 84%, 12.67%)) var(--sparkle-dark, hsl(160, 84%, 84.75%));--success-12:var(--sparkle-light, hsl(160, 84%, 3.9%)) var(--sparkle-dark, 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:var(--sparkle-light, #fff) var(--sparkle-dark, hsl(0, 0%, 5.75%));--base-2:var(--sparkle-light, hsl(0, 0%, 98.05%)) var(--sparkle-dark, hsl(0, 0%, 8.75%));--base-3:var(--sparkle-light, hsl(0, 0%, 94.5%)) var(--sparkle-dark, hsl(0, 0%, 11.5%));--base-4:var(--sparkle-light, hsl(0, 0%, 84.75%)) var(--sparkle-dark, hsl(0, 0%, 17.25%));--base-5:var(--sparkle-light, hsl(0, 0%, 79.75%)) var(--sparkle-dark, hsl(0, 0%, 17.25%));--base-6:var(--sparkle-light, hsl(0, 0%, 66.25%)) var(--sparkle-dark, hsl(0, 0%, 28.75%));--base-7:var(--sparkle-light, hsl(0, 0%, 54.5%)) var(--sparkle-dark, hsl(0, 0%, 34.5%));--base-8:var(--sparkle-light, hsl(0, 0%, 46%)) var(--sparkle-dark, hsl(0, 0%, 46%));--base-9:var(--sparkle-light, hsl(0, 0%, 35.65%)) var(--sparkle-dark, hsl(0, 0%, 59.5%));--base-10:var(--sparkle-light, hsl(0, 0%, 25.3%)) var(--sparkle-dark, hsl(0, 0%, 73%));--base-11:var(--sparkle-light, hsl(0, 0%, 14.95%)) var(--sparkle-dark, hsl(0, 0%, 86.5%));--base-12:var(--sparkle-light, hsl(0, 0%, 4.6%)) var(--sparkle-dark, 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:before{content:"";width:1rem;height:1rem;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)}}</style><link rel="stylesheet" href="styles-IH5IS4WG.css" media="print" onload="this.media='all'"><noscript><link rel="stylesheet" href="styles-IH5IS4WG.css"></noscript></head>
63
63
  <body>
64
64
  <app-root></app-root>
65
65
  <div class="loading">Connecting ...</div>
66
- <link rel="modulepreload" href="chunk-ZQYPQTU3.js"><link rel="modulepreload" href="chunk-EQS67O4J.js"><link rel="modulepreload" href="chunk-NZD6UMYZ.js"><link rel="modulepreload" href="chunk-B6DE3TTE.js"><link rel="modulepreload" href="chunk-VFVXE2DC.js"><link rel="modulepreload" href="chunk-FC45TEB6.js"><link rel="modulepreload" href="chunk-RHW5QVAY.js"><link rel="modulepreload" href="chunk-BHSG643V.js"><link rel="modulepreload" href="chunk-3Q5JEF3K.js"><link rel="modulepreload" href="chunk-OQHMS5HM.js"><script src="polyfills-COBLRUJG.js" type="module"></script><script src="main-RQTAFLAT.js" type="module"></script></body>
66
+ <link rel="modulepreload" href="chunk-M3URTEVE.js"><link rel="modulepreload" href="chunk-43A44MVC.js"><link rel="modulepreload" href="chunk-ROOTIQEO.js"><link rel="modulepreload" href="chunk-FUZLIOUQ.js"><link rel="modulepreload" href="chunk-JM7VAPIC.js"><link rel="modulepreload" href="chunk-2BX65XJQ.js"><link rel="modulepreload" href="chunk-RHW5QVAY.js"><link rel="modulepreload" href="chunk-6JQM2X3B.js"><link rel="modulepreload" href="chunk-WXARH2SG.js"><link rel="modulepreload" href="chunk-FZG6OXT3.js"><script src="polyfills-COBLRUJG.js" type="module"></script><script src="main-HYB6MFRZ.js" type="module"></script></body>
67
67
  </html>
@@ -310,7 +310,7 @@
310
310
  "5249602569151695245": "Sortieren nach: {$START_TAG_STRONG}{$INTERPOLATION}{$CLOSE_TAG_STRONG}{$START_TAG_SPK_ICON}arrows-down-up{$CLOSE_TAG_SPK_ICON}",
311
311
  "7708270344948043036": "{$INTERPOLATION}",
312
312
  "4220765745195024064": "Dauer:",
313
- "4301968594246501194": "{VAR_PLURAL, plural, =0 {Noch keine Version} =1 {1 Version} other {{$INTERPOLATION} Versionen}}",
313
+ "4301968594246501194": "{VAR_PLURAL, plural, =0 {Noch keine Version} =1 {1 Version} other {{{INTERPOLATION}} Versionen}}",
314
314
  "3839108367953461894": "Keine Sicherungen gefunden",
315
315
  "2737753982083076672": "Sicherung {$START_TAG_NG_CONTAINER}{$CLOSE_TAG_NG_CONTAINER}",
316
316
  "8239510835983979014": "Typ {$START_TAG_NG_CONTAINER}{$CLOSE_TAG_NG_CONTAINER}",
@@ -83,7 +83,7 @@
83
83
  "5677009031193601274": "Se vuoi usare il backup successivamente, puoi esportare la configurazione prima di cancellarla.",
84
84
  "8770181154281540962": "Elimina file remoti",
85
85
  "1622563533269836843": "Elimina {$ICU} ({$INTERPOLATION_1}) dall'archivio remoto?",
86
- "8407137440564843816": "{VAR_PLURAL, plural, =1 {1 file} other {{$INTERPOLATION} file}}",
86
+ "8407137440564843816": "{VAR_PLURAL, plural, =1 {1 file} other {{{INTERPOLATION}} file}}",
87
87
  "9021887951960049161": "Conferma eliminazione",
88
88
  "5835203083538785597": "Sei sicuro di voler eliminare questo backup?",
89
89
  "4489627619329080013": "Elimina backup",
@@ -347,7 +347,7 @@
347
347
  "5249602569151695245": "Ordina per: {$START_TAG_STRONG}{$INTERPOLATION}{$CLOSE_TAG_STRONG}{$START_TAG_SPK_ICON}arrows-down-up{$CLOSE_TAG_SPK_ICON}",
348
348
  "7708270344948043036": "{$INTERPOLATION}",
349
349
  "4220765745195024064": "Durata:",
350
- "4301968594246501194": "{VAR_PLURAL, plural, =0 {Ancora nessuna versione} =1 {1 Versione} other {{$INTERPOLATION} Versioni}}",
350
+ "4301968594246501194": "{VAR_PLURAL, plural, =0 {Ancora nessuna versione} =1 {1 Versione} other {{{INTERPOLATION}} Versioni}}",
351
351
  "3839108367953461894": "Nessun backup trovato",
352
352
  "2737753982083076672": "Backup {$START_TAG_NG_CONTAINER}{$CLOSE_TAG_NG_CONTAINER}",
353
353
  "8239510835983979014": "Tipo {$START_TAG_NG_CONTAINER}{$CLOSE_TAG_NG_CONTAINER}",
@@ -83,7 +83,7 @@
83
83
  "5677009031193601274": "Als u de back-up later wilt gebruiken, kunt u de configuratie exporteren alvorens hem te verwijderen.",
84
84
  "8770181154281540962": "Verwijder remote bestanden",
85
85
  "1622563533269836843": "{$ICU} ({$INTERPOLATION_1}) uit de externe opslag verwijderen?",
86
- "8407137440564843816": "{VAR_PLURAL, plural, =1 {1 bestand} other {{$INTERPOLATION} bestanden}}",
86
+ "8407137440564843816": "{VAR_PLURAL, plural, =1 {1 bestand} other {{{INTERPOLATION}} bestanden}}",
87
87
  "9021887951960049161": "Bevestig verwijderen",
88
88
  "5835203083538785597": "Weet u zeker dat u deze back-up wilt verwijderen?",
89
89
  "4489627619329080013": "Verwijder back-up",
@@ -348,7 +348,7 @@
348
348
  "5249602569151695245": "Sorteren op: {$START_TAG_STRONG}{$INTERPOLATION}{$CLOSE_TAG_STRONG}{$START_TAG_SPK_ICON}arrows-down-up{$CLOSE_TAG_SPK_ICON}",
349
349
  "7708270344948043036": "{$INTERPOLATION}",
350
350
  "4220765745195024064": "Tijdsduur:",
351
- "4301968594246501194": "{VAR_PLURAL, plural, =0 {Nog geen versie} =1 {1 Versie} other {{$INTERPOLATION} Versies}}",
351
+ "4301968594246501194": "{VAR_PLURAL, plural, =0 {Nog geen versie} =1 {1 Versie} other {{{INTERPOLATION}} Versies}}",
352
352
  "3839108367953461894": "Geen back-ups gevonden",
353
353
  "2737753982083076672": "Back-up {$START_TAG_NG_CONTAINER}{$CLOSE_TAG_NG_CONTAINER}",
354
354
  "8239510835983979014": "Type {$START_TAG_NG_CONTAINER}{$CLOSE_TAG_NG_CONTAINER}",
@@ -1 +1 @@
1
- import{b as be,c as Ce}from"./chunk-ZQYPQTU3.js";import{a as he}from"./chunk-EQS67O4J.js";import{a as I}from"./chunk-NZD6UMYZ.js";import"./chunk-B6DE3TTE.js";import"./chunk-VFVXE2DC.js";import"./chunk-FC45TEB6.js";import{a as P}from"./chunk-RHW5QVAY.js";import{a as L}from"./chunk-BHSG643V.js";import{a as de}from"./chunk-3Q5JEF3K.js";import{a as b,b as C,c as ue,d as E}from"./chunk-OQHMS5HM.js";import{c as ie,d as ae,g as pe,h as ce}from"./chunk-DQM3ATT4.js";import{a as ee}from"./chunk-BSRYIN2F.js";import{c as le}from"./chunk-DNBOZ26J.js";import{a as te,b as oe,d as ne,e as re,f as se,i as me}from"./chunk-XD6MBGQY.js";import{a as ge}from"./chunk-4VPA3END.js";import{la as Y,qa as Z}from"./chunk-GP2W7XZF.js";import"./chunk-WIDMAJIO.js";import{a as ye}from"./chunk-PSPK4OPB.js";import{b as fe}from"./chunk-JDCGGJ7O.js";import{A as x,Ac as q,B as G,Bc as X,F as w,Gc as Q,L as J,N as R,P as B,S as k,V as $,X as s,_a as _,f as j,fa as K,i as D,la as d,n as F,o as U,r as S,xb as z}from"./chunk-67YRCRMI.js";import"./chunk-EUDKD2JW.js";var M=class e{#o=s(b);#s=s(C);ngOnInit(){this.#s.fetchConfig(),this.#o.clearAllNotCurrentVersion()}static \u0275fac=function(o){return new(o||e)};static \u0275cmp=_({type:e,selectors:[["app-root"]],decls:1,vars:0,template:function(o,n){o&1&&z(0,"router-outlet")},dependencies:[ie],encapsulation:2})};var Se={production:!0,baseUrl:"/api",machineServerUrl:"${WS_URL}",defaultTimeout:3e4};var h=new $("ENVIRONMENT");var A=class e{#o=s(me);isLoaded=d(!1);webmodules=d(null);preload(t=!1){let o=this.#o.getApiV1Webmodules().pipe(B(n=>this.webmodules.set(n)),w(()=>this.isLoaded.set(!0)));if(t)return o;o.subscribe()}static \u0275fac=function(o){return new(o||e)};static \u0275prov=k({token:e,factory:e.\u0275fac,providedIn:"root"})};var Me=()=>{let e=s(E);return e.token()?!0:e.checkProxyAuthed().pipe(R(t=>t?F(!0):e.refreshToken().pipe(S(()=>!0))))},Ae=()=>{let e=s(C),t=s(I),o=s(K),n=e.relayIsEnabled()?"longpoll":"websocket",i=[o.get(L).preload(!0),o.get(L).preloadFilterGroups(!0),o.get(A).preload(!0)];return e.configLoaded===null?x(i).pipe(S(()=>n)):e.configLoaded?.pipe(R(()=>x(i)))},Re=[{path:"",children:[{path:"login",canActivate:[],loadComponent:()=>import("./chunk-D3OE4S5N.js")},{path:"logout",loadComponent:()=>import("./chunk-QNWYJ7OR.js")},{path:"",canActivate:[Me],children:[{path:"",canActivate:[Ae],loadComponent:()=>import("./chunk-VG6LA5R3.js"),children:[{path:"",loadComponent:()=>import("./chunk-WESN3ZUC.js")},{path:"add-backup",loadComponent:()=>import("./chunk-TTFJPAWM.js")},{path:"backup/:id/export",loadComponent:()=>import("./chunk-SMNWIGMY.js")},{path:"backup/import",loadComponent:()=>import("./chunk-IPC6G72N.js")},{path:"backup-draft/:id",loadComponent:()=>import("./chunk-OTM4ZTG4.js"),loadChildren:()=>import("./chunk-OHEFY2D6.js")},{path:"backup/:id",loadComponent:()=>import("./chunk-OTM4ZTG4.js"),loadChildren:()=>import("./chunk-OHEFY2D6.js")},{path:"backup/:id/log",loadComponent:()=>import("./chunk-YW7YXFSC.js")},{path:"backup/:id/database",loadComponent:()=>import("./chunk-EWZGGCZ7.js")},{path:"backup/:id/commandline",loadComponent:()=>import("./chunk-XZWXLEK2.js")},{path:"backup/:id/commandline/:runId",loadComponent:()=>import("./chunk-UZTRBMWL.js")},{path:"backup/:id/delete",loadComponent:()=>import("./chunk-BC3MLJH3.js")},{path:"restore",children:[{path:"",loadComponent:()=>import("./chunk-62DY5NTG.js")},{path:"from-config",loadComponent:()=>import("./chunk-MDO4PWV6.js")}]},{path:"restore-from-files",loadComponent:()=>import("./chunk-3UUTPGTW.js"),loadChildren:()=>import("./chunk-FZTQVXG4.js")},{path:"restore-draft/:id",loadComponent:()=>import("./chunk-3UUTPGTW.js"),loadChildren:()=>import("./chunk-FZTQVXG4.js")},{path:"restore/:id",loadComponent:()=>import("./chunk-3UUTPGTW.js"),loadChildren:()=>import("./chunk-FZTQVXG4.js")},{path:"settings",loadComponent:()=>import("./chunk-FATQ7BT6.js")},{path:"about",loadComponent:()=>import("./chunk-VVJBMGZR.js"),children:[{path:"",redirectTo:"general",pathMatch:"full"},{path:"general",loadComponent:()=>import("./chunk-HMK6M2N7.js")},{path:"changelog",loadComponent:()=>import("./chunk-O4HSW7GI.js")},{path:"libraries",loadComponent:()=>import("./chunk-TIPHYMRQ.js")},{path:"system-info",loadComponent:()=>import("./chunk-CRALFIWB.js")},{path:"server-settings",loadComponent:()=>import("./chunk-5CUMYXCI.js")},{path:"logs",loadChildren:()=>import("./chunk-G6LCHQJE.js")},{path:"crashlogs",loadComponent:()=>import("./chunk-J64ETWKB.js")}]}]}]}]}];var V=null,Te=(e,t)=>{let o=s(E),n=s(ae),i=s(b),l=s(h),r=i.getItem("locale"),u=s(le),a=be(r),p=e.url==="/api/v1/auth/login",m=e.url==="/api/v1/auth/refresh",v=e.url==="/api/v1/progressstate",g=e.url==="/api/v1/remoteoperation/test",y=e.url==="/api/v1/filesystem/validate",T=e.url.startsWith("/api/v2/"),N=o.token(),H=e,W=e.headers.has("custom-proxy-check")||N===ue;if(N&&e.url.startsWith(l.baseUrl)&&!W){let c=e.headers.set("Authorization",`Bearer ${N}`);r&&r!=="en-US"&&(c=c.set("X-Ui-Language",a)),H=e.clone({headers:c})}return t(H).pipe(S(c=>{if(c.type===4&&c.status===200&&T){let f=c.body;if(f?.Success===!1)throw{status:200,message:f?.Error??"Unknown error",error:{Error:f?.Error??"Unknown error"},body:f}}return c}),G(c=>{let f=c.error?.Error||`Error Code: ${c.status}, Message: ${c.message}`;return!W&&(v&&c.status===404||g||y||u.error(f),m&&c.status===401&&(o.logout(),n.navigate(["/logout"])),!p&&!m&&c.status===401)?(V??=o.refreshToken().pipe(J()),V.pipe(R(()=>t(e.clone({headers:e.headers.set("Authorization",`Bearer ${o.token()}`)}))),w(()=>V=null))):U(()=>({error:c,message:f}))}))};var Oe="1.0.0",we=`portal-proxy-client-${P()}`,Ne=1,O=class e{#o=1e3;#s=s(h);#t=d("disconnected");#l=d(this.#o);#i=d(!1);#n=d(!1);#a=d(null);isConnectedToMachineServer=this.#n.asReadonly();wsState=this.#t.asReadonly();#p=[];#r={};#e=null;#m=new TextDecoder("utf-8");#c=null;#d=Q(()=>{let t=this.#i(),o=this.#l(),n=this.#a();if(!n||!t||!o||o<this.#o){this.#c&&window.clearInterval(this.#c);return}this.#c=window.setInterval(()=>{this.connectToMachineServer(n)},o)});utf8Atob(t){let o=Uint8Array.from(atob(t),i=>i.charCodeAt(0)),n=this.#m.decode(o);return n?JSON.parse(n):null}connectToMachineServer(t,o){let n=o?.reconnect??!1,i=this.wsState();(i==="disconnected"||i==="error"||n)&&(this.#e?.close(),this.#e=null),!this.#e&&(this.#e=new WebSocket(this.#s.machineServerUrl),this.#t.set("connecting"),this.#e.onopen=()=>{this.#t.set("connect"),this.#n.set(!0),this.#i.set(!1),this.#a.set(null)},this.#e.onclose=()=>{this.#t.set("disconnected"),this.#n.set(!1),this.#a.set(t),this.#i.set(!0)},this.#e.onerror=()=>{this.#t.set("error")},this.#e.onmessage=l=>{let r=JSON.parse(l.data);if(this.wsState()==="connect"){if(r.type!=="welcome"){this.disconnectFromMachineServer(`Unexpected message type, expected 'welcome' but got '${r.type}'`);return}let a={token:t,publicKey:"",clientVersion:Oe,protocolVersion:Ne},p=this.createResponse(r,"authportal",a);this.#t.set("welcome"),this.#e?.send(p)}else if(this.wsState()==="welcome"){if(r.type!=="authportal"){this.disconnectFromMachineServer(`Unexpected message type, expected 'authportal' but got '${r.type}'`);return}var u=JSON.parse(r.payload??"");if(u.accepted===!1){this.disconnectFromMachineServer("Authentication failed");return}for(this.#t.set("authenticated"),this.#n.set(!0);this.#p.length>0;){let a=this.#p.pop();a&&this.#r[a.messageId]&&this.activateCommand(a)}}else if(this.wsState()==="authenticated"){if(r.type!=="command"){console.warn(`Unexpected message type, expected 'command' but got '${r.type}'`);return}let a=this.#r[r.messageId];if(a){if(r.errorMessage){a.reject(r.errorMessage);return}else{let p=JSON.parse(r.payload??"");p.body=p?.body==null?null:this.utf8Atob(p.body),a.resolve(p)}delete this.#r[r.messageId],window.clearTimeout(a.timer)}}})}disconnectFromMachineServer(t=null){t&&console.error(t),this.#e?.close(),this.#e=null,this.#t.set("disconnected"),this.#n.set(!1)}createResponse(t,o,n){let i={from:we,to:t.from,type:o,messageId:t.messageId,payload:JSON.stringify(n)};return JSON.stringify(i)}sendCommand(t,o,n,i,l,r,u=5e3){return(this.wsState()==="disconnected"||this.wsState()==="error")&&this.connectToMachineServer(t),new Promise((a,p)=>{let m=P(),g={from:we,to:o,type:"command",messageId:m,payload:JSON.stringify({method:n,path:i,body:l,headers:r})},y={resolve:a,reject:p,timer:window.setTimeout(()=>{let T=this.#r[m];T&&(delete this.#r[m],T.reject("Timeout"))},u)};this.#r[m]=y,this.#n()?this.activateCommand(g):this.#p.push(g)})}activateCommand(t){this.#e?.send(JSON.stringify(t))}static \u0275fac=function(o){return new(o||e)};static \u0275prov=k({token:e,factory:e.\u0275fac,providedIn:"root"})};function xe(e){if(typeof e!="string")return null;let o=new TextEncoder().encode(e);return window.btoa(String.fromCharCode(...o))}function ke(e,t,o){let n=e.relayconfigState.config();if(n===null)return o(t);let i=xe(t.body),l={};t.headers.keys().forEach(p=>{l[p]=t.headers.get(p)??""});let r=t.headers.get("timeout"),u=r!==null?parseInt(r):e.defaultTimeout;t.url.startsWith("/api/v1/serverstate")&&t.url.includes("longpoll=true")&&(u=1e3*99);let a=e.relayWebsocket.sendCommand(n.accessToken,n.clientId,t.method,t.url,i,l,u);return new j(p=>{a.then(m=>{let v=new te;l!=null&&Object.keys(l).forEach(y=>{v.set(y,l[y])});let g=new oe({body:m.body,status:m.code,statusText:"OK",headers:v});p.next(g),p.complete()})})}var Ee=(e,t)=>{let o={relayconfigState:s(C),defaultTimeout:s(h).defaultTimeout,relayWebsocket:s(O)},n=o.relayconfigState.config();if(o.relayconfigState.configLoaded!==null&&n===null){let i=new D;return o.relayconfigState.configLoaded.subscribe(l=>{l&&ke(o,e,t).subscribe(i)}),i}return ke(o,e,t)};var Ie={providers:[q(),pe(Re,ce()),ne(se(),re([Ee,Te])),b,{provide:h,useValue:Se},{provide:X,useValue:Ce()},he,I,fe,Z,de,Y,ge,ye]};ee(M,Ie);
1
+ import{b as be,c as Ce}from"./chunk-M3URTEVE.js";import{a as he}from"./chunk-43A44MVC.js";import{a as I}from"./chunk-ROOTIQEO.js";import"./chunk-FUZLIOUQ.js";import"./chunk-JM7VAPIC.js";import"./chunk-2BX65XJQ.js";import{a as P}from"./chunk-RHW5QVAY.js";import{a as L}from"./chunk-6JQM2X3B.js";import{a as de}from"./chunk-WXARH2SG.js";import{a as b,b as C,c as ue,d as E}from"./chunk-FZG6OXT3.js";import{c as ie,d as ae,g as pe,h as ce}from"./chunk-2W6BEUGU.js";import{a as ee}from"./chunk-JFOXV66M.js";import{c as le}from"./chunk-Y5IRBMLB.js";import{a as te,b as oe,d as ne,e as re,f as se,i as me}from"./chunk-DNJOKPEL.js";import{a as ge}from"./chunk-UFP4XKZF.js";import{la as Y,qa as Z}from"./chunk-CWLTHXVS.js";import"./chunk-WIDMAJIO.js";import{a as ye}from"./chunk-HDV3QKLN.js";import{b as fe}from"./chunk-LKJ2SBQA.js";import{A as x,Ab as z,B as G,Cc as q,Dc as X,H as w,Ic as Q,N as J,P as R,R as B,U as k,X as $,Z as s,ab as _,f as j,ha as K,i as D,n as F,na as d,o as U,r as S}from"./chunk-BTMXQPBB.js";import"./chunk-EUDKD2JW.js";var M=class e{#o=s(b);#s=s(C);ngOnInit(){this.#s.fetchConfig(),this.#o.clearAllNotCurrentVersion()}static \u0275fac=function(o){return new(o||e)};static \u0275cmp=_({type:e,selectors:[["app-root"]],decls:1,vars:0,template:function(o,n){o&1&&z(0,"router-outlet")},dependencies:[ie],encapsulation:2})};var Se={production:!0,baseUrl:"/api",machineServerUrl:"${WS_URL}",defaultTimeout:3e4};var h=new $("ENVIRONMENT");var A=class e{#o=s(me);isLoaded=d(!1);webmodules=d(null);preload(t=!1){let o=this.#o.getApiV1Webmodules().pipe(B(n=>this.webmodules.set(n)),w(()=>this.isLoaded.set(!0)));if(t)return o;o.subscribe()}static \u0275fac=function(o){return new(o||e)};static \u0275prov=k({token:e,factory:e.\u0275fac,providedIn:"root"})};var Me=()=>{let e=s(E);return e.token()?!0:e.checkProxyAuthed().pipe(R(t=>t?F(!0):e.refreshToken().pipe(S(()=>!0))))},Ae=()=>{let e=s(C),t=s(I),o=s(K),n=e.relayIsEnabled()?"longpoll":"websocket",i=[o.get(L).preload(!0),o.get(L).preloadFilterGroups(!0),o.get(A).preload(!0)];return e.configLoaded===null?x(i).pipe(S(()=>n)):e.configLoaded?.pipe(R(()=>x(i)))},Re=[{path:"",children:[{path:"login",canActivate:[],loadComponent:()=>import("./chunk-42LUYQ5S.js")},{path:"logout",loadComponent:()=>import("./chunk-WF6EAWTW.js")},{path:"",canActivate:[Me],children:[{path:"",canActivate:[Ae],loadComponent:()=>import("./chunk-ZFCSCXTC.js"),children:[{path:"",loadComponent:()=>import("./chunk-7N3LIJV6.js")},{path:"add-backup",loadComponent:()=>import("./chunk-POGTGPHE.js")},{path:"backup/:id/export",loadComponent:()=>import("./chunk-OHMTS3T7.js")},{path:"backup/import",loadComponent:()=>import("./chunk-K6ISVHYD.js")},{path:"backup-draft/:id",loadComponent:()=>import("./chunk-FHZLYBIT.js"),loadChildren:()=>import("./chunk-QECYPB3W.js")},{path:"backup/:id",loadComponent:()=>import("./chunk-FHZLYBIT.js"),loadChildren:()=>import("./chunk-QECYPB3W.js")},{path:"backup/:id/log",loadComponent:()=>import("./chunk-4NAIBN6Y.js")},{path:"backup/:id/database",loadComponent:()=>import("./chunk-D7KAEUGB.js")},{path:"backup/:id/commandline",loadComponent:()=>import("./chunk-UFQWL2QF.js")},{path:"backup/:id/commandline/:runId",loadComponent:()=>import("./chunk-VRE6C66C.js")},{path:"backup/:id/delete",loadComponent:()=>import("./chunk-WXAZWUCA.js")},{path:"restore",children:[{path:"",loadComponent:()=>import("./chunk-6ABAW3RM.js")},{path:"from-config",loadComponent:()=>import("./chunk-QBJGIKPM.js")}]},{path:"restore-from-files",loadComponent:()=>import("./chunk-YZYJP5XH.js"),loadChildren:()=>import("./chunk-P3AZ3DXZ.js")},{path:"restore-draft/:id",loadComponent:()=>import("./chunk-YZYJP5XH.js"),loadChildren:()=>import("./chunk-P3AZ3DXZ.js")},{path:"restore/:id",loadComponent:()=>import("./chunk-YZYJP5XH.js"),loadChildren:()=>import("./chunk-P3AZ3DXZ.js")},{path:"settings",loadComponent:()=>import("./chunk-PVLT4ZGI.js")},{path:"about",loadComponent:()=>import("./chunk-J6SAG7QN.js"),children:[{path:"",redirectTo:"general",pathMatch:"full"},{path:"general",loadComponent:()=>import("./chunk-7MV7VPDB.js")},{path:"changelog",loadComponent:()=>import("./chunk-DBD6FOQL.js")},{path:"libraries",loadComponent:()=>import("./chunk-XBJRRUMO.js")},{path:"system-info",loadComponent:()=>import("./chunk-QVEGV6V6.js")},{path:"server-settings",loadComponent:()=>import("./chunk-EKP3ML6M.js")},{path:"logs",loadChildren:()=>import("./chunk-LDIHJZUP.js")},{path:"crashlogs",loadComponent:()=>import("./chunk-WRWIBPXL.js")}]}]}]}]}];var V=null,Te=(e,t)=>{let o=s(E),n=s(ae),i=s(b),l=s(h),r=i.getItem("locale"),u=s(le),a=be(r),p=e.url==="/api/v1/auth/login",m=e.url==="/api/v1/auth/refresh",v=e.url==="/api/v1/progressstate",g=e.url==="/api/v1/remoteoperation/test",y=e.url==="/api/v1/filesystem/validate",T=e.url.startsWith("/api/v2/"),N=o.token(),H=e,W=e.headers.has("custom-proxy-check")||N===ue;if(N&&e.url.startsWith(l.baseUrl)&&!W){let c=e.headers.set("Authorization",`Bearer ${N}`);r&&r!=="en-US"&&(c=c.set("X-Ui-Language",a)),H=e.clone({headers:c})}return t(H).pipe(S(c=>{if(c.type===4&&c.status===200&&T){let f=c.body;if(f?.Success===!1)throw{status:200,message:f?.Error??"Unknown error",error:{Error:f?.Error??"Unknown error"},body:f}}return c}),G(c=>{let f=c.error?.Error||`Error Code: ${c.status}, Message: ${c.message}`;return!W&&(v&&c.status===404||g||y||u.error(f),m&&c.status===401&&(o.logout(),n.navigate(["/logout"])),!p&&!m&&c.status===401)?(V??=o.refreshToken().pipe(J()),V.pipe(R(()=>t(e.clone({headers:e.headers.set("Authorization",`Bearer ${o.token()}`)}))),w(()=>V=null))):U(()=>({error:c,message:f}))}))};var Oe="1.0.0",we=`portal-proxy-client-${P()}`,Ne=1,O=class e{#o=1e3;#s=s(h);#t=d("disconnected");#l=d(this.#o);#i=d(!1);#n=d(!1);#a=d(null);isConnectedToMachineServer=this.#n.asReadonly();wsState=this.#t.asReadonly();#p=[];#r={};#e=null;#m=new TextDecoder("utf-8");#c=null;#d=Q(()=>{let t=this.#i(),o=this.#l(),n=this.#a();if(!n||!t||!o||o<this.#o){this.#c&&window.clearInterval(this.#c);return}this.#c=window.setInterval(()=>{this.connectToMachineServer(n)},o)});utf8Atob(t){let o=Uint8Array.from(atob(t),i=>i.charCodeAt(0)),n=this.#m.decode(o);return n?JSON.parse(n):null}connectToMachineServer(t,o){let n=o?.reconnect??!1,i=this.wsState();(i==="disconnected"||i==="error"||n)&&(this.#e?.close(),this.#e=null),!this.#e&&(this.#e=new WebSocket(this.#s.machineServerUrl),this.#t.set("connecting"),this.#e.onopen=()=>{this.#t.set("connect"),this.#n.set(!0),this.#i.set(!1),this.#a.set(null)},this.#e.onclose=()=>{this.#t.set("disconnected"),this.#n.set(!1),this.#a.set(t),this.#i.set(!0)},this.#e.onerror=()=>{this.#t.set("error")},this.#e.onmessage=l=>{let r=JSON.parse(l.data);if(this.wsState()==="connect"){if(r.type!=="welcome"){this.disconnectFromMachineServer(`Unexpected message type, expected 'welcome' but got '${r.type}'`);return}let a={token:t,publicKey:"",clientVersion:Oe,protocolVersion:Ne},p=this.createResponse(r,"authportal",a);this.#t.set("welcome"),this.#e?.send(p)}else if(this.wsState()==="welcome"){if(r.type!=="authportal"){this.disconnectFromMachineServer(`Unexpected message type, expected 'authportal' but got '${r.type}'`);return}var u=JSON.parse(r.payload??"");if(u.accepted===!1){this.disconnectFromMachineServer("Authentication failed");return}for(this.#t.set("authenticated"),this.#n.set(!0);this.#p.length>0;){let a=this.#p.pop();a&&this.#r[a.messageId]&&this.activateCommand(a)}}else if(this.wsState()==="authenticated"){if(r.type!=="command"){console.warn(`Unexpected message type, expected 'command' but got '${r.type}'`);return}let a=this.#r[r.messageId];if(a){if(r.errorMessage){a.reject(r.errorMessage);return}else{let p=JSON.parse(r.payload??"");p.body=p?.body==null?null:this.utf8Atob(p.body),a.resolve(p)}delete this.#r[r.messageId],window.clearTimeout(a.timer)}}})}disconnectFromMachineServer(t=null){t&&console.error(t),this.#e?.close(),this.#e=null,this.#t.set("disconnected"),this.#n.set(!1)}createResponse(t,o,n){let i={from:we,to:t.from,type:o,messageId:t.messageId,payload:JSON.stringify(n)};return JSON.stringify(i)}sendCommand(t,o,n,i,l,r,u=5e3){return(this.wsState()==="disconnected"||this.wsState()==="error")&&this.connectToMachineServer(t),new Promise((a,p)=>{let m=P(),g={from:we,to:o,type:"command",messageId:m,payload:JSON.stringify({method:n,path:i,body:l,headers:r})},y={resolve:a,reject:p,timer:window.setTimeout(()=>{let T=this.#r[m];T&&(delete this.#r[m],T.reject("Timeout"))},u)};this.#r[m]=y,this.#n()?this.activateCommand(g):this.#p.push(g)})}activateCommand(t){this.#e?.send(JSON.stringify(t))}static \u0275fac=function(o){return new(o||e)};static \u0275prov=k({token:e,factory:e.\u0275fac,providedIn:"root"})};function xe(e){if(typeof e!="string")return null;let o=new TextEncoder().encode(e);return window.btoa(String.fromCharCode(...o))}function ke(e,t,o){let n=e.relayconfigState.config();if(n===null)return o(t);let i=xe(t.body),l={};t.headers.keys().forEach(p=>{l[p]=t.headers.get(p)??""});let r=t.headers.get("timeout"),u=r!==null?parseInt(r):e.defaultTimeout;t.url.startsWith("/api/v1/serverstate")&&t.url.includes("longpoll=true")&&(u=1e3*99);let a=e.relayWebsocket.sendCommand(n.accessToken,n.clientId,t.method,t.url,i,l,u);return new j(p=>{a.then(m=>{let v=new te;l!=null&&Object.keys(l).forEach(y=>{v.set(y,l[y])});let g=new oe({body:m.body,status:m.code,statusText:"OK",headers:v});p.next(g),p.complete()})})}var Ee=(e,t)=>{let o={relayconfigState:s(C),defaultTimeout:s(h).defaultTimeout,relayWebsocket:s(O)},n=o.relayconfigState.config();if(o.relayconfigState.configLoaded!==null&&n===null){let i=new D;return o.relayconfigState.configLoaded.subscribe(l=>{l&&ke(o,e,t).subscribe(i)}),i}return ke(o,e,t)};var Ie={providers:[q(),pe(Re,ce()),ne(se(),re([Ee,Te])),b,{provide:h,useValue:Se},{provide:X,useValue:Ce()},he,I,fe,Z,de,Y,ge,ye]};ee(M,Ie);
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "0.0.134",
2
+ "version": "0.0.136",
3
3
  "name": "@duplicati/ngclient",
4
4
  "license": "MIT",
5
5
  "contributors": [