@duplicati/ngclient 0.0.178 → 0.0.181

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 (151) hide show
  1. package/assets/dest-icons/dincloud.png +0 -0
  2. package/assets/dest-icons/dreamhost.png +0 -0
  3. package/assets/dest-icons/dunkel.png +0 -0
  4. package/assets/dest-icons/duplicati.png +0 -0
  5. package/assets/dest-icons/hosteurope.png +0 -0
  6. package/assets/dest-icons/ibmcos.png +0 -0
  7. package/assets/dest-icons/impossiblecloud.png +0 -0
  8. package/assets/dest-icons/infomaniak.png +0 -0
  9. package/assets/dest-icons/internxt.png +0 -0
  10. package/assets/dest-icons/polisystems.png +0 -0
  11. package/assets/dest-icons/rabata.png +0 -0
  12. package/assets/dest-icons/sakuracloud.png +0 -0
  13. package/assets/dest-icons/scaleway.png +0 -0
  14. package/assets/dest-icons/seagatelyve.png +0 -0
  15. package/assets/dest-icons/storadera.png +0 -0
  16. package/assets/dest-icons/wasabi.png +0 -0
  17. package/assets/sh.woff2 +0 -0
  18. package/chunk-2JD6CIZ4.js +1 -0
  19. package/chunk-2PAQOFN3.js +1 -0
  20. package/chunk-2QP2Y5QS.js +1 -0
  21. package/chunk-2XXH473G.js +1 -0
  22. package/chunk-3BGJPVDV.js +1 -0
  23. package/chunk-3U36LG4E.js +1 -0
  24. package/{chunk-66GTW6AR.js → chunk-44TUAFTV.js} +1 -1
  25. package/chunk-4BAHV6VO.js +1 -0
  26. package/{chunk-5HQJVUNE.js → chunk-4N3AWKEK.js} +1 -1
  27. package/chunk-4NN5ZM73.js +1 -0
  28. package/chunk-4QGMMHYT.js +1 -0
  29. package/chunk-4VEFX5WQ.js +2 -0
  30. package/{chunk-WILUKPQ3.js → chunk-5DJAX2HH.js} +1 -1
  31. package/{chunk-6KSFCVWH.js → chunk-5JYCHNFV.js} +1 -1
  32. package/chunk-5QAV2WXY.js +1 -0
  33. package/chunk-5QZIKR6A.js +1 -0
  34. package/chunk-5YSRDRTE.js +7 -0
  35. package/{chunk-UT542KNO.js → chunk-6AJQBDVV.js} +1 -1
  36. package/chunk-6ALGXRIS.js +1 -0
  37. package/chunk-6GC4UPHS.js +1 -0
  38. package/{chunk-6KLZAB4D.js → chunk-7XS6T6TX.js} +1 -1
  39. package/{chunk-GO4NSDR6.js → chunk-A4LPGPDU.js} +1 -1
  40. package/chunk-AABUGLWU.js +1 -0
  41. package/{chunk-T5LLH46J.js → chunk-AS6Z56AD.js} +1 -1
  42. package/{chunk-GH6EHG4Z.js → chunk-B2Y54P3R.js} +1 -1
  43. package/{chunk-BKANUILG.js → chunk-BGTK25UG.js} +1 -1
  44. package/{chunk-OWEK4OHZ.js → chunk-CR3C6XYB.js} +1 -1
  45. package/{chunk-5MXXIFJM.js → chunk-DI73L7JI.js} +1 -1
  46. package/{chunk-FBWFZMGL.js → chunk-DW332N2S.js} +1 -1
  47. package/{chunk-WHLIHNEE.js → chunk-EBQRGLJL.js} +1 -1
  48. package/{chunk-Y4IW22ZU.js → chunk-ETAHWUMY.js} +1 -1
  49. package/{chunk-U63HBLGG.js → chunk-FK7JFD5B.js} +1 -1
  50. package/{chunk-AJXTVI3H.js → chunk-FOQJA6X2.js} +1 -1
  51. package/chunk-FQYMMYS4.js +1 -0
  52. package/{chunk-6Y3RYZEE.js → chunk-FQZFKTPW.js} +1 -1
  53. package/chunk-H4TNKM4Y.js +1 -0
  54. package/chunk-HPNLQHW6.js +1 -0
  55. package/{chunk-EIZKIIDW.js → chunk-HSUSP2MR.js} +1 -1
  56. package/chunk-IW4RDAIN.js +2 -0
  57. package/{chunk-AJMSZFGR.js → chunk-JGQOVZKK.js} +1 -1
  58. package/{chunk-WLXOWWZB.js → chunk-JJJ5UALU.js} +1 -1
  59. package/{chunk-YQSTMC2K.js → chunk-JW4235US.js} +1 -1
  60. package/{chunk-SD4AWG7T.js → chunk-JWO4FPWJ.js} +1 -1
  61. package/{chunk-D7TCA6E7.js → chunk-KRXQDBGB.js} +1 -1
  62. package/chunk-KSMDO4WE.js +1 -0
  63. package/{chunk-JTQDY6AH.js → chunk-LDLSFKM4.js} +1 -1
  64. package/chunk-LFISHZZP.js +1 -0
  65. package/{chunk-M7SLT3MF.js → chunk-LMCAVLBO.js} +1 -1
  66. package/{chunk-PW55LN2T.js → chunk-LX37357J.js} +1 -1
  67. package/{chunk-AGPZBYW6.js → chunk-ME77WZZI.js} +1 -1
  68. package/{chunk-TJYZBTTS.js → chunk-MHRECQ5Y.js} +1 -1
  69. package/chunk-MRAKGZE6.js +1 -0
  70. package/{chunk-NEQW3H7F.js → chunk-MXH4QJKB.js} +1 -1
  71. package/{chunk-PJLZ7V22.js → chunk-NDPFWL4Y.js} +1 -1
  72. package/{chunk-PTSGXV6M.js → chunk-NJ2XZSM6.js} +1 -1
  73. package/{chunk-GMNCWLGX.js → chunk-O4OTZE5N.js} +1 -1
  74. package/chunk-OTPG7USH.js +1 -0
  75. package/{chunk-6CYY2QG6.js → chunk-PAMKTLG5.js} +1 -1
  76. package/chunk-PCFTQ4BE.js +1 -0
  77. package/{chunk-56FBKSBN.js → chunk-PKPBSTZA.js} +1 -1
  78. package/{chunk-G4FG3YUE.js → chunk-PUV7YKEQ.js} +1 -1
  79. package/chunk-QG566HCB.js +1 -0
  80. package/chunk-QHQQ5BDV.js +1 -0
  81. package/{chunk-FIBRO5I3.js → chunk-QPTSKQZ2.js} +2 -2
  82. package/{chunk-CGKL2MHM.js → chunk-QZRRXR3V.js} +1 -1
  83. package/{chunk-MIUFEQ3S.js → chunk-RXVG6AZW.js} +1 -1
  84. package/chunk-SBWCJMHH.js +1 -0
  85. package/chunk-SFR3XMV4.js +1 -0
  86. package/chunk-T2WO6CVD.js +4 -0
  87. package/{chunk-CHUTAXTB.js → chunk-T7WSF7RL.js} +1 -1
  88. package/chunk-TEGY2W63.js +1 -0
  89. package/{chunk-NEV6JB5M.js → chunk-TELPJYLN.js} +1 -1
  90. package/chunk-TT3S63BX.js +1 -0
  91. package/{chunk-JTZ2JEV4.js → chunk-TT4FAVLM.js} +1 -1
  92. package/{chunk-OC3JR7EH.js → chunk-VEWX3KXN.js} +1 -1
  93. package/{chunk-LF24JF3M.js → chunk-VHOAXFIJ.js} +1 -1
  94. package/chunk-VW35MTSI.js +1 -0
  95. package/{chunk-FXF5TO2Q.js → chunk-VYJNNEM5.js} +1 -1
  96. package/chunk-WIVARGP6.js +1 -0
  97. package/chunk-XADL5RYU.js +1 -0
  98. package/chunk-XKHIN6T2.js +2 -0
  99. package/{chunk-WA7KEG63.js → chunk-XZ35H3QB.js} +1 -1
  100. package/chunk-XZ37OAYY.js +1 -0
  101. package/chunk-YDDSLDHZ.js +1 -0
  102. package/chunk-YEYDDZIG.js +1 -0
  103. package/chunk-YV32N6PE.js +1 -0
  104. package/chunk-ZHTPSBYJ.js +1 -0
  105. package/{chunk-IH4WNUW5.js → chunk-ZXVCNNR6.js} +1 -1
  106. package/index.html +43 -1
  107. package/main-RYFYCW3E.js +1 -0
  108. package/package.json +1 -1
  109. package/assets/favicon.ico +0 -0
  110. package/chunk-27UON6YV.js +0 -2
  111. package/chunk-3CJTIOP4.js +0 -1
  112. package/chunk-4IUPBI2K.js +0 -1
  113. package/chunk-5UXRNNTT.js +0 -1
  114. package/chunk-6O5DBV6Y.js +0 -1
  115. package/chunk-76LEHUPM.js +0 -1
  116. package/chunk-7IQ5FSGI.js +0 -1
  117. package/chunk-AO4ZIHUL.js +0 -1
  118. package/chunk-AYN5EDSZ.js +0 -1
  119. package/chunk-B5LH4P4E.js +0 -1
  120. package/chunk-BGYXB4MY.js +0 -1
  121. package/chunk-BUO6CCKF.js +0 -1
  122. package/chunk-EBKB4YCL.js +0 -1
  123. package/chunk-F3RWB4I6.js +0 -1
  124. package/chunk-FCCYQZ63.js +0 -1
  125. package/chunk-H6UYYWCU.js +0 -1
  126. package/chunk-J5LEAYPL.js +0 -1
  127. package/chunk-KR56GPXG.js +0 -2
  128. package/chunk-LUQFHR44.js +0 -1
  129. package/chunk-N4ADMNNU.js +0 -1
  130. package/chunk-PCLJOXMF.js +0 -1
  131. package/chunk-PF2QQ2YW.js +0 -1
  132. package/chunk-PNECF7JS.js +0 -1
  133. package/chunk-PUOOECEB.js +0 -1
  134. package/chunk-QF5K4MHH.js +0 -1
  135. package/chunk-QWNOPLJC.js +0 -1
  136. package/chunk-QZJ7QZZ4.js +0 -1
  137. package/chunk-R6XDJFPE.js +0 -1
  138. package/chunk-RMOTUTEQ.js +0 -1
  139. package/chunk-RYXU2QDS.js +0 -1
  140. package/chunk-SS7TCWY5.js +0 -1
  141. package/chunk-TXPM764C.js +0 -1
  142. package/chunk-U4T4BSPF.js +0 -1
  143. package/chunk-VSLN6R7K.js +0 -1
  144. package/chunk-WNOXOC4X.js +0 -1
  145. package/chunk-WS7QWRRY.js +0 -1
  146. package/chunk-WWIKIIGV.js +0 -7
  147. package/chunk-WWIXPGSZ.js +0 -1
  148. package/chunk-XRXXVFJ4.js +0 -1
  149. package/chunk-XYHHESIX.js +0 -4
  150. package/chunk-XZZDJCRM.js +0 -1
  151. package/main-OOXK65IC.js +0 -1
@@ -0,0 +1 @@
1
+ import{a as _e}from"./chunk-4VEFX5WQ.js";import{a as le}from"./chunk-AS6Z56AD.js";import"./chunk-IW4RDAIN.js";import{j as ae}from"./chunk-XADL5RYU.js";import"./chunk-O4OTZE5N.js";import{a as ie,b as oe,c as se}from"./chunk-WIVARGP6.js";import"./chunk-MHRECQ5Y.js";import"./chunk-6Q6SSTBK.js";import"./chunk-5DJAX2HH.js";import"./chunk-6ALGXRIS.js";import"./chunk-DW332N2S.js";import"./chunk-AABUGLWU.js";import"./chunk-TELPJYLN.js";import"./chunk-5QZIKR6A.js";import{B as ee,H as ne,P as te,c as H,e as q,i as Y,k as j,s as Q,u as Z}from"./chunk-HPNLQHW6.js";import"./chunk-BGTK25UG.js";import{b as W,d as V}from"./chunk-A4LPGPDU.js";import"./chunk-PKPBSTZA.js";import"./chunk-QPTSKQZ2.js";import"./chunk-OTPG7USH.js";import"./chunk-TT3S63BX.js";import{$ as N,Ab as o,Bb as m,Ib as h,Mc as J,Pa as c,Pb as S,Qb as C,Rb as r,Sc as X,Vb as I,W as g,Xb as p,aa as P,cb as z,cc as v,dc as x,gc as K,la as B,oc as u,pc as d,qc as T,sb as E,tb as f,xc as U,yb as O,zb as t}from"./chunk-T2WO6CVD.js";import"./chunk-7CGTOI24.js";var re=["formRef"],ce=()=>["--skip-files-larger-than","dblock-size","encryption-module","no-encryption","--no-encryption","compression-module","--exclude-files-attributes","keep-time","keep-versions","retention-policy"];function pe(a,l){a&1&&(S(0,1,1),m(1,"sh-icon",20),C())}function ue(a,l){a&1&&(t(0,"p",21),r(1,6),o())}function de(a,l){a&1&&(t(0,"p"),r(1,7),o())}function Te(a,l){if(a&1){let n=h();t(0,"p"),r(1,8),o(),t(2,"app-timespan",18),T("ngModelChange",function(s){N(n);let i=p();return d(i.optionsFields.backupRetentionTime,s)||(i.optionsFields.backupRetentionTime=s),P(s)}),t(3,"label",30),r(4,9),o()()}if(a&2){let n=p();c(2),O("customId","backupRetentionTime"),u("ngModel",n.optionsFields.backupRetentionTime)}}function Se(a,l){if(a&1){let n=h();t(0,"p"),r(1,10),o(),t(2,"sh-form-field")(3,"label",31),r(4,11),o(),t(5,"input",32),T("ngModelChange",function(s){N(n);let i=p();return d(i.optionsFields.backupRetentionVersions,s)||(i.optionsFields.backupRetentionVersions=s),P(s)}),o()()}if(a&2){let n=p();c(5),u("ngModel",n.optionsFields.backupRetentionVersions)}}function Ce(a,l){a&1&&(t(0,"p"),r(1,12),o())}function Oe(a,l){if(a&1){let n=h();t(0,"p"),r(1,13),o(),t(2,"sh-form-field")(3,"p"),r(4,14),o(),t(5,"label",33),r(6,15),o(),t(7,"input",34),T("ngModelChange",function(s){N(n);let i=p();return d(i.optionsFields.backupRetentionCustom,s)||(i.optionsFields.backupRetentionCustom=s),P(s)}),o()()}if(a&2){let n=p();c(7),u("ngModel",n.optionsFields.backupRetentionCustom)}}var me=[{value:"all",name:$localize`Keep all backups`},{value:"time",name:$localize`Delete backups that are older than`},{value:"versions",name:$localize`Keep a specific number of backups`},{value:"smart",name:$localize`Smart backup retention`},{value:"custom",name:$localize`Custom backup retention`}],ge=1024*1024*1024*2,Ne=1024*1024*5,F=class a{#e=g(ae);#n=g(V);#t=g(W);formRef=X.required("formRef");isSubmitting=this.#e.isSubmitting;settings=this.#e.settings;optionsFields=this.#e.optionsFields;applicationOptions=this.#e.applicationOptions;retentionOptions=B(me);exceededVolumeSize=J(()=>{let{size:l,unit:n}=oe(this.optionsFields.remoteVolumeSize());if(l==null||n===null||n===void 0)return!1;let e=l*Math.pow(1024,ie.findIndex(s=>s.value===n));return e>ge||e<Ne});goBack(){this.#n.navigate(["schedule"],{relativeTo:this.#t.parent})}submit(){this.#e.submit()}static \u0275fac=function(n){return new(n||a)};static \u0275cmp=z({type:a,selectors:[["app-advanced-options-settings"]],viewQuery:function(n,e){n&1&&v(e.formRef,re,5),n&2&&x()},decls:30,vars:16,consts:()=>{let l;l=$localize`Options`;let n;n=$localize` Remote volume size ${"\uFFFD*7:1\uFFFD"}:START_BLOCK_IF:${"\uFFFD#1:1\uFFFD"}:START_TAG_SH_ICON:warning${"\uFFFD/#1:1\uFFFD"}:CLOSE_TAG_SH_ICON:${"\uFFFD/*7:1\uFFFD"}:CLOSE_BLOCK_IF:`;let e;e=$localize` The backups will be split up into multiple files called volumes. Here you can set the maximum size of the individual volume files. ${"\uFFFD#11\uFFFD"}:START_LINK: Read more ${"\uFFFD#12\uFFFD"}:START_TAG_SH_ICON:arrow-square-out${"\uFFFD/#12\uFFFD"}:CLOSE_TAG_SH_ICON:${"\uFFFD/#11\uFFFD"}:CLOSE_LINK:`;let s;s=$localize`Backup retention`;let i;i=$localize`${"\uFFFD#26\uFFFD"}:START_TAG_SH_ICON:arrow-left${"\uFFFD/#26\uFFFD"}:CLOSE_TAG_SH_ICON: Go back `;let M;M=$localize`${"\uFFFD#29\uFFFD"}:START_TAG_SH_ICON:arrow-right${"\uFFFD/#29\uFFFD"}:CLOSE_TAG_SH_ICON: Submit `;let R;R=$localize` The chosen size is outside the recommended range. This may cause performance issues, excessively large temporary files or other problems. `;let A;A=$localize`Nothing will be deleted. The backup size will grow with each change.`;let b;b=$localize`If at least one newer backup is found, all backups older than this date are deleted.`;let y;y=$localize`Time to keep versions`;let $;$=$localize`Once there are more backups than the specified number, the oldest backups are deleted.`;let k;k=$localize`Number of versions`;let L;L=$localize` Over time backups will be deleted automatically. There will remain one backup for each of the last 7 days, each of the last 4 weeks, each of the last 12 months. There will always be at least one remaining backup. `;let w;w=$localize` Enter a retention strategy manually. Placeholders are D/W/Y for days/weeks/years and U for unlimited. The syntax is: 7D:1D,4W:1W,36M:1M. This example keeps one backup for each of the next 7 days, one for each of the next 4 weeks, and one for each of the next 36 months. This can also be written as 1W:1D,1M:1W,3Y:1M. `;let G;G=$localize`Once there are more backups than the specified number, the oldest backups are deleted.`;let D;return D=$localize`Retention expression`,[l,n,e,s,i,M,R,A,b,y,$,k,L,w,G,D,[1,"title-30"],[1,"remote-volume-wrap"],[3,"ngModelChange","customId","ngModel"],["for","size"],[1,"warning"],[1,"warn"],["href","https://forum.duplicati.com/t/choosing-sizes-in-duplicati/17683","target","_blank",1,"sh-primary"],["suffix",""],["value","value","label","name",3,"options","inlineSearch","isClearable"],["type","text",3,"ngModelChange","ngModel"],[3,"optionsChange","options","applicationOptions","hasFreeTextSettings","hiddenOptions"],[1,"form-actions"],["shButton","","type","button",3,"click"],["shButton","",1,"raised","primary",3,"click"],["for","backupRetentionTime"],["for","backupRetentionVersions"],["type","number","id","backupRetentionVersions",3,"ngModelChange","ngModel"],["for","backupRetentionCustom"],["type","text","id","backupRetentionCustom",3,"ngModelChange","ngModel"]]},template:function(n,e){n&1&&(t(0,"section")(1,"h3",16),r(2,0),o(),t(3,"div",17)(4,"app-size",18),T("ngModelChange",function(i){return d(e.optionsFields.remoteVolumeSize,i)||(e.optionsFields.remoteVolumeSize=i),i}),t(5,"label",19),S(6,1),E(7,pe,2,0,"sh-icon",20),C(),o()(),E(8,ue,2,0,"p",21),t(9,"p"),S(10,2),t(11,"a",22),m(12,"sh-icon",23),o(),C(),o()(),t(13,"sh-select",24)(14,"label",19),r(15,3),o(),t(16,"input",25),T("ngModelChange",function(i){return d(e.optionsFields.backupRetention,i)||(e.optionsFields.backupRetention=i),i}),o()(),E(17,de,2,0,"p")(18,Te,5,2)(19,Se,6,1)(20,Ce,2,0,"p")(21,Oe,8,1),t(22,"app-options-list",26),T("optionsChange",function(i){return d(e.settings,i)||(e.settings=i),i}),o(),t(23,"div",27)(24,"button",28),I("click",function(){return e.goBack()}),S(25,4),m(26,"sh-icon"),C(),o(),t(27,"button",29),I("click",function(){return e.submit()}),S(28,5),m(29,"sh-icon"),C(),o()()()),n&2&&(c(4),O("customId","size"),u("ngModel",e.optionsFields.remoteVolumeSize),c(3),f(e.exceededVolumeSize()?7:-1),c(),f(e.exceededVolumeSize()?8:-1),c(5),O("options",e.retentionOptions())("inlineSearch",!0)("isClearable",!1),c(3),u("ngModel",e.optionsFields.backupRetention),c(),f(e.optionsFields.backupRetention()==="all"?17:e.optionsFields.backupRetention()==="time"?18:e.optionsFields.backupRetention()==="versions"?19:e.optionsFields.backupRetention()==="smart"?20:e.optionsFields.backupRetention()==="custom"?21:-1),c(5),u("options",e.settings),O("applicationOptions",e.applicationOptions())("hasFreeTextSettings",!0)("hiddenOptions",U(15,ce)),c(5),K("loader",e.isSubmitting()))},dependencies:[Q,H,j,q,Y,_e,se,le,ee,Z,te,ne],styles:["[_nghost-%COMP%]{display:block;width:100%;max-width:37.5rem;padding:2.5rem}section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem;padding-bottom:1.5rem}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}.form-wrap[_ngcontent-%COMP%]{display:grid;grid-template-columns:2fr 2.5rem;gap:.5rem;align-items:flex-end}.remote-volume-wrap[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem}.remote-volume-wrap[_ngcontent-%COMP%] p.warning[_ngcontent-%COMP%]{color:#7d7d00}.row-inputs[_ngcontent-%COMP%]{display:flex;align-items:flex-end;gap:.5rem}.advanced-option[_ngcontent-%COMP%]{display:grid;gap:.5rem;grid-template-columns:1fr 1fr 2.5rem;align-items:flex-end}sh-select[_ngcontent-%COMP%]{--miw: p2r(120)}"],changeDetection:0})};export{F as default};
@@ -0,0 +1 @@
1
+ import{a as b,c as _}from"./chunk-BGTK25UG.js";import{d as T}from"./chunk-A4LPGPDU.js";import{a as y,d as O}from"./chunk-QPTSKQZ2.js";import{ua as P,va as o}from"./chunk-OTPG7USH.js";import{C as l,E as N,M as g,R as a,W as i,f as I,i as S,l as E,la as n,p as R,wa as v,z as A}from"./chunk-T2WO6CVD.js";var c=class r{platformId=i(v);STORAGE_VERSION="v1";APP_NAME="duplicati";PERSISTED_PREFIX="persist:";getItemParsed(e,t=!1){return o(this.platformId)?null:JSON.parse(localStorage.getItem(`${this.STORAGE_VERSION}:${t?this.PERSISTED_PREFIX:""}${this.APP_NAME}:${e}`)??"null")}setItemParsed(e,t,s=!1){if(!o(this.platformId))return localStorage.setItem(`${this.STORAGE_VERSION}:${s?this.PERSISTED_PREFIX:""}${this.APP_NAME}:${e}`,JSON.stringify(t))}get length(){return P(this.platformId)?localStorage.length:0}getItem(e){return o(this.platformId)?null:localStorage.getItem(`${this.STORAGE_VERSION}:${this.APP_NAME}:${e}`)??null}setItem(e,t){if(!o(this.platformId))return localStorage.setItem(`${this.STORAGE_VERSION}:${this.APP_NAME}:${e}`,t)}removeItem(e){o(this.platformId)||(localStorage.removeItem(`${this.STORAGE_VERSION}:${this.APP_NAME}:${e}`),localStorage.removeItem(`${this.STORAGE_VERSION}:${this.PERSISTED_PREFIX}${this.APP_NAME}:${e}`))}clearAllNotCurrentVersion(){if(!o(this.platformId))for(var e in localStorage)!e.startsWith(this.STORAGE_VERSION)&&e.includes(this.APP_NAME)&&localStorage.removeItem(e)}clearAll(){o(this.platformId)||localStorage.clear()}clear(){if(!o(this.platformId))for(var e in localStorage)e.includes(this.APP_NAME)&&!e.includes(this.PERSISTED_PREFIX)&&localStorage.removeItem(e)}key(e){return o(this.platformId)?null:localStorage.key(e)}static \u0275fac=function(t){return new(t||r)};static \u0275prov=a({token:r,factory:r.\u0275fac})};var f=class r{#i=i(c);#r=n(null);#t=window.self!==window.top;#s=n(this.#t);relayIsEnabled=this.#s.asReadonly();config=this.#r.asReadonly();configLoaded=this.#t?new S:null;isLoading=n(this.#t);parentIframeListner=null;parentOrigin="*";fetchConfig(){this.#o(),this.#t&&(this.#s.set(!0),this.parentIframeListner=new AbortController,this.#e("connected"),window.addEventListener("message",e=>{if(e.data.startsWith("access:")){let t=e.data.replace("access:",""),s=JSON.parse(t);if(!s?.accessToken||!s?.clientId){this.#e("error:invalid-config"),this.#s.set(!1);return}if(typeof s.clientId!="string"){this.#e("error:invalid-config"),this.#s.set(!1);return}if(typeof s.accessToken!="string"){this.#e("error:invalid-config"),this.#s.set(!1);return}let m=this.#i.getItem("locale")??"en-US",p=s.locale??"en-US";m!==p&&(this.#i.setItem("locale",p),window.location.reload()),this.#r.set(s),this.configLoaded?.next(!0),this.isLoading.set(!1),this.#e("handshake-complete")}},{signal:this.parentIframeListner.signal}))}#e(e){window.parent.postMessage(e,"*")}#o(){this.parentIframeListner&&(this.parentIframeListner.abort(),this.parentIframeListner=null)}setConfig(e){this.#r.set(e)}clearConfig(){this.#r.set(null)}static \u0275fac=function(t){return new(t||r)};static \u0275prov=a({token:r,factory:r.\u0275fac,providedIn:"root"})};var u="PROXY_AUTHED_FAKE_TOKEN",h="refreshNonce",d="v1:persist:duplicati:refreshNonce",k=class r{#i=i(T);#r=i(O);#t=i(_);#s=i(f);#e=n(null);#o=n(!1);token=this.#e.asReadonly();isLoggingOut=this.#o.asReadonly();setRefreshNonce(e,t){if(!e){sessionStorage.removeItem(h);return}t?localStorage.setItem(d,e||""):sessionStorage.setItem(h,e||"")}getRefreshNonceBody(){let e=sessionStorage.getItem(h),t=localStorage.getItem(d),s=e||t;return{requestBody:s?{requestBody:{Nonce:s}}:void 0,local:s===t}}login(e,t){return this.#t.postApiV1AuthLogin({requestBody:{Password:e,RememberMe:t}}).pipe(l(1),g(s=>{s.AccessToken?(this.#e.set(s.AccessToken),this.setRefreshNonce(s.RefreshNonce,t)):this.#e.set(null)}))}refreshToken(){if(this.#s.relayIsEnabled())return this.#e.set(u),new I(s=>{s.next({AccessToken:u}),s.complete()});let{requestBody:e,local:t}=this.getRefreshNonceBody();return this.#t.postApiV1AuthRefresh(e).pipe(l(1),g(s=>{s.AccessToken&&(this.#e.set(s.AccessToken),this.setRefreshNonce(s.RefreshNonce,t))}))}checkProxyAuthed(){let e=new y({"custom-proxy-check":"true"}),t=b.BASE||"";return this.#r.get(`${t}/api/v1/systeminfo`,{headers:e}).pipe(R(()=>(this.#e.set(u),!0)),A(()=>E(!1)))}logout(){this.#o.set(!0);let{requestBody:e,local:t}=this.getRefreshNonceBody();sessionStorage.removeItem(h),t&&localStorage.removeItem(d),this.#t.postApiV1AuthRefreshLogout(e).pipe(l(1),N(()=>{this.#o.set(!1),this.#e.set(null),this.#i.navigate(["/login"])})).subscribe()}static \u0275fac=function(t){return new(t||r)};static \u0275prov=a({token:r,factory:r.\u0275fac,providedIn:"root"})};export{c as a,f as b,u as c,k as d};
@@ -0,0 +1,7 @@
1
+ import{a as Gt}from"./chunk-AS6Z56AD.js";import{a as yt,b as Re,c as Ot,d as Ft,e as At,f as wt,h as Mt,i as Lt,j as Pt}from"./chunk-IW4RDAIN.js";import{j as $t}from"./chunk-XADL5RYU.js";import{c as vt,d as Vt}from"./chunk-WIVARGP6.js";import{a as Dt}from"./chunk-LFISHZZP.js";import{a as U}from"./chunk-5DJAX2HH.js";import{a as xt}from"./chunk-6ALGXRIS.js";import{a as Et,b as It}from"./chunk-DW332N2S.js";import{a as ue}from"./chunk-TELPJYLN.js";import{B as Ce,C as pt,E as mt,H as Pe,K as Ct,L as ut,O as gt,P as Tt,V as ft,W as St,Y as Nt,a as st,c as se,e as de,i as ce,k as dt,s as pe,t as ct,u as me,z as Le}from"./chunk-HPNLQHW6.js";import{c as ht}from"./chunk-BGTK25UG.js";import{e as _t}from"./chunk-A4LPGPDU.js";import{_ as rt}from"./chunk-OTPG7USH.js";import{$ as f,Ab as d,Ac as Me,Bb as R,D as He,E as $e,Fb as xe,Gb as fe,Gc as oe,Hb as P,Ib as E,K as je,M as qe,Ma as Qe,Mc as $,Pa as r,Pb as H,Qb as j,Qc as ot,R as Ie,Rb as _e,Rc as ae,Sc as at,Ub as Ye,Uc as lt,Vb as h,W as w,Xb as l,Yb as De,Zb as ye,aa as S,cb as Z,cc as Ze,da as We,dc as et,ec as y,f as Ee,fc as tt,gc as Oe,hb as x,jc as m,kc as nt,l as Je,la as k,lc as A,mc as Se,na as Te,oc as Fe,p as Xe,pc as Ae,qc as we,rc as X,sb as u,sc as M,tb as g,tc as p,ub as te,uc as Ge,wb as ne,wc as it,xb as ie,xc as be,yb as c,yc as v,zb as s,zc as B}from"./chunk-T2WO6CVD.js";import{a as z,b as he}from"./chunk-7CGTOI24.js";var bt=class n{#e=w(ht);#t=w(Le);#n=w(ue);testDestination(t,e,o,i,a){return this.#n.hasV2TestOperations()?this.testDestinationv2(t,e,o,i,a):this.testDestinationv1(t,e,o,i,a)}testDestinationv2(t,e,o,i,a){return new Ee(_=>{this.#e.postApiV2DestinationTest({requestBody:{DestinationUrl:t,BackupId:e=="new"?null:e,AutoCreate:!1,Options:null}}).subscribe({next:C=>{if(C.Success){this.emitSuccessV2(_,t,o,C);return}this.handleGenericError(_,t,o,C.Error??"Unknown error",a)},error:C=>{let N=C?.error?.body??C?.error?.requestBody;if(N?.Data?.FolderExists===!1||N?.StatusCode==="missing-folder"){i?this.handleMissingFolder(_,t,o):this.handleGenericError(_,t,o,$localize`The remote destination folder does not exist.`,a);return}if(N?.Data?.HostCertificate){this.handleMissingCertificate(_,t,o,N.Data?.HostCertificate);return}if(N?.Data?.ReportedHostKey){this.handleIncorrectKey(_,t,o,N.Data.ReportedHostKey,N.Data.AcceptedHostKey??null);return}this.handleGenericError(_,t,o,C?.message??"Unknown error",a)}})})}testDestinationv1(t,e,o,i,a){return new Ee(_=>{this.#e.postApiV1RemoteoperationTest({requestBody:{path:t,backupId:e=="new"?null:e}}).subscribe({next:C=>{_.next({action:"success",targetUrl:t,testAgain:!1,destinationIndex:o}),_.complete()},error:C=>{this.handleDestinationErrorv1(C.message,t,o,i,a).subscribe(N=>{_.next(N)})}})})}handleMissingFolder(t,e,o){this.#t.open(U,{data:{title:$localize`Create folder`,message:$localize`The remote destination folder does not exist, do you want to create it?`,confirmText:$localize`Create folder`,cancelText:$localize`Cancel`},closed:i=>{if(!i){this.reportNoAction(t,e,o,$localize`The remote folder does not exist.`);return}this.#n.hasV2TestOperations()?this.#e.postApiV2DestinationTest({requestBody:{DestinationUrl:e,AutoCreate:!0,Options:null}}).subscribe({next:a=>{if(a.Success){this.emitSuccessV2(t,e,o,a);return}else this.handleFolderCreateFailure(t,e,o,a.Error??$localize`Unknown error`)},error:a=>{this.handleFolderCreateFailure(t,e,o,a.message??$localize`Unknown error`)}}):this.#e.postApiV1RemoteoperationCreate({requestBody:{path:e}}).subscribe({next:()=>{this.handleFolderCreated(t,e,o)},error:a=>{this.handleFolderCreateFailure(t,e,o,a.message??$localize`Unknown error`)}})}})}handleFolderCreateFailure(t,e,o,i){this.#t.open(U,{data:{title:$localize`Error creating folder`,message:$localize`The remote destination folder could not be created. ${i}`,confirmText:$localize`OK`,cancelText:null},closed:()=>{t.next({action:"generic-error",targetUrl:e,testAgain:!1,destinationIndex:o}),t.complete()}})}emitSuccessV2(t,e,o,i){t.next({action:"success",targetUrl:e,testAgain:!1,destinationIndex:o,anyFilesFound:!i.Data?.FolderIsEmpty,containsBackup:i.Data?.FolderContainsBackupFiles??void 0,containsEncryptedBackupFiles:i.Data?.FolderContainsEncryptedBackupFiles??void 0}),t.complete()}handleFolderCreated(t,e,o){this.#t.open(U,{data:{title:$localize`Folder created`,message:$localize`The remote destination folder was created successfully.`,confirmText:$localize`OK`,cancelText:null},closed:()=>{t.next({action:"test-again",targetUrl:e,testAgain:!0,destinationIndex:o}),t.complete()}})}reportNoAction(t,e,o,i){t.next({action:"generic-error",targetUrl:e,errorMessage:i,testAgain:!1,destinationIndex:o}),t.complete()}handleMissingCertificate(t,e,o,i){this.#t.open(U,{maxWidth:"500px",data:{title:$localize`Trust the certificate`,message:$localize`The server is using a certificate that is not trusted.
2
+ If this is a self-signed certificate, you can choose to trust this certificate.
3
+ The server reported the certificate hash: ${i}`,confirmText:$localize`Trust the certificate`,cancelText:$localize`Cancel`},closed:a=>{if(!a){this.reportNoAction(t,e,o,$localize`The server certificate is not trusted.`);return}t.next({action:"trust-cert",targetUrl:e,testAgain:!0,certData:i,destinationIndex:o}),t.complete()}})}handleIncorrectKey(t,e,o,i,a){a?this.#t.open(U,{maxWidth:"500px",data:{title:$localize`The host key has changed`,message:$localize`The host key has changed, please check with the server administrator if this is correct,
4
+ otherwise you could be the victim of a MAN-IN-THE-MIDDLE attack.
5
+ Do you want to REPLACE your CURRENT host key ${a}
6
+ with the REPORTED host key: ${i}?`,confirmText:$localize`Approve`,cancelText:$localize`Cancel`},closed:_=>{if(!_){this.reportNoAction(t,e,o,$localize`The host key was not approved.`);return}t.next({action:"approve-host-key",targetUrl:e,testAgain:!0,reportedHostKey:i,destinationIndex:o}),t.complete()}}):this.#t.open(U,{maxWidth:"500px",data:{title:$localize`Approve host key?`,message:$localize`No certificate was specified, please verify that the reported host key is correct: ${i}`,confirmText:$localize`Approve`,cancelText:$localize`Cancel`},closed:_=>{if(!_){this.reportNoAction(t,e,o,$localize`The host key was not approved.`);return}t.next({action:"approve-host-key",targetUrl:e,testAgain:!0,reportedHostKey:i,destinationIndex:o}),t.complete()}})}handleGenericError(t,e,o,i,a){function _(){t.next({action:"generic-error",targetUrl:e,testAgain:!1,destinationIndex:o,errorMessage:i}),t.complete()}if(a){_();return}this.#t.open(U,{maxWidth:"500px",data:{title:$localize`Test connection failed`,message:i,cancelText:$localize`OK`},closed:C=>_()})}handleDestinationErrorv1(t,e,o,i,a){return new Ee(_=>{if(t==="missing-folder"){i?this.handleMissingFolder(_,e,o):this.handleGenericError(_,e,o,$localize`The remote destination folder does not exist.`,a);return}if(t.startsWith("incorrect-cert:")){let C=t.split("incorrect-cert:")[1];this.handleMissingCertificate(_,e,o,C);return}if(t.startsWith("incorrect-host-key:")){let C=t.split('incorrect-host-key:"')[1].split('",')[0],N=t.split('accepted-host-key:"')[1].split('",')[0];this.handleIncorrectKey(_,e,o,C,N);return}this.handleGenericError(_,e,o,t,a)})}static \u0275fac=function(e){return new(e||n)};static \u0275prov=Ie({token:n,factory:n.\u0275fac,providedIn:"root"})};var Kt=["*"];function zt(n,t){n&1&&(s(0,"sh-chip",4),m(1,"Special"),d())}function Ut(n,t){n&1&&(s(0,"sh-chip",5),m(1,"Deprecated"),d())}var ve=class n{destination=ae.required();static \u0275fac=function(e){return new(e||n)};static \u0275cmp=Z({type:n,selectors:[["app-destination-list-item"]],inputs:{destination:[1,"destination"]},ngContentSelectors:Kt,decls:11,vars:7,consts:[[1,"type-b"],[1,"icon"],[3,"src","alt"],[1,"name"],[1,"small","simple","primary"],[1,"small","simple","warn"],[1,"description"],[1,"actions"]],template:function(e,o){if(e&1&&(De(),s(0,"sh-card",0)(1,"div",1),R(2,"img",2),d(),s(3,"div",3),m(4),u(5,zt,2,0,"sh-chip",4)(6,Ut,2,0,"sh-chip",5),d(),s(7,"div",6),m(8),d(),s(9,"div",7),ye(10),d()()),e&2){let i=o.destination();r(2),c("src",Ge(i.icon),Qe)("alt",Ge(i.displayName)),r(2),A(" ",i.displayName," "),r(),g((i.sortOrder??0)==-2?5:(i.sortOrder??0)<0?6:-1),r(3),nt(i.description)}},dependencies:[pt,mt],styles:['[_nghost-%COMP%]{display:block}sh-card[_ngcontent-%COMP%]{display:grid;align-items:center;grid-template-columns:3rem 1fr auto;grid-template-areas:"icon name actions" "icon description actions";gap:.25rem 1rem}sh-card[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{grid-area:icon;display:flex;align-items:center;justify-content:center;width:3rem;height:3rem;border-radius:var(--shape-2)}sh-card[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{object-fit:contain;width:100%;border-radius:var(--shape-2);overflow:hidden}sh-card[_ngcontent-%COMP%] .name[_ngcontent-%COMP%]{grid-area:name;font:var(--paragraph-10)}sh-card[_ngcontent-%COMP%] .description[_ngcontent-%COMP%]{grid-area:description;color:var(--base-8)}sh-card[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%]{grid-area:actions;display:flex;align-items:center;gap:.5rem}'],changeDetection:0})};var ge=class n{#e=w(ue);supportedDestinationTypes=$(()=>this.#e.backendModules().flatMap(t=>{if(!t?.Key)return null;let e=Ft(t.Key);if(e.length<=1){let o=Ot(t.Key);return o.isDefaultEntry===!0?[he(z({},o),{displayName:t.DisplayName||o.displayName||t.Key,description:t.Description||o.description||""})]:o}else return e}).filter(t=>t!==null));destinationTypeOptions=$(()=>this.supportedDestinationTypes().map(t=>({key:t.customKey??t.key,customKey:t.customKey??null,displayName:t.displayName,description:t.description,icon:t.icon,searchTerms:[t.displayName,t.description,t.key,t.searchTerms??"",t.customKey??""].join(" "),sortOrder:t.sortOrder??0})));backendModules=$(()=>this.#e.backendModules()??[]);static \u0275fac=function(e){return new(e||n)};static \u0275prov=Ie({token:n,factory:n.\u0275fac,providedIn:"root"})};function Jt(n,t){if(n&1){let e=E();s(0,"app-destination-list-item",3)(1,"button",4),h("click",function(){let i=f(e).$implicit,a=l();return S(a.setDestination.emit(i.customKey??i.key))}),H(2,0),R(3,"sh-icon"),j(),d()()}if(n&2){let e=t.$implicit;c("destination",e)}}var Rt=class n{#e=w(ge);setDestination=ot();destinationSearchTerm=k("");destinationTypeOptions=this.#e.destinationTypeOptions;destinationTypeOptionsFocused=$(()=>{let t=this.destinationTypeOptions(),e=this.destinationSearchTerm().toLowerCase(),o=[...t].sort((i,a)=>{let _=i.sortOrder??0,C=a.sortOrder??0;return _!==C?C-_:i.displayName.localeCompare(a.displayName)}).filter(i=>{let a=i.sortOrder??0;return a<0&&e?.length&&(i.key.toLocaleLowerCase()===e.toLocaleLowerCase()||i.customKey?.toLocaleLowerCase()===e.toLocaleLowerCase())?!0:a>=0});return e?o.filter(i=>i.searchTerms.toLowerCase().includes(e)):o});static \u0275fac=function(e){return new(e||n)};static \u0275cmp=Z({type:n,selectors:[["app-destination-list"]],outputs:{setDestination:"setDestination"},decls:5,vars:1,consts:()=>{let t;t=$localize`Search for destination...`;let e;return e=$localize` Choose ${"\uFFFD#3\uFFFD"}:START_TAG_SH_ICON:arrow-right${"\uFFFD/#3\uFFFD"}:CLOSE_TAG_SH_ICON:`,[e,["type","text","placeholder",t,3,"ngModelChange","ngModel"],[1,"list"],[3,"destination"],["shButton","","type","button",3,"click"]]},template:function(e,o){e&1&&(s(0,"sh-form-field")(1,"input",1),we("ngModelChange",function(a){return Ae(o.destinationSearchTerm,a)||(o.destinationSearchTerm=a),a}),d()(),s(2,"div",2),ne(3,Jt,4,1,"app-destination-list-item",3,te),d()),e&2&&(r(),Fe("ngModel",o.destinationSearchTerm),r(2),ie(o.destinationTypeOptionsFocused()))},dependencies:[ve,pe,se,de,ce,Pe,Ce,me],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;gap:1rem;height:100%;overflow:hidden}.list[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem;height:100%;overflow:auto;padding-bottom:1rem;border-bottom:.0625rem solid var(--base-4)}"],changeDetection:0})};var Xt=["fileInput"],Ht=[[["label"]]],jt=["label"],Ve=class n{customId=ae();content=k("");readonly=k(!1);placeholder=ae("Drop a file here or use the browse button");fileInputRef=at("fileInput");onFileSelected(t){let e=t.target;e.files&&e.files.length>0&&this.readFile(e.files[0])}onFileDrop(t){t.preventDefault(),t.dataTransfer?.files&&t.dataTransfer.files.length>0&&this.readFile(t.dataTransfer.files[0])}onDragOver(t){t.preventDefault()}readFile(t){let e=new FileReader;e.onload=()=>{this.content.set(e.result)},e.readAsText(t)}triggerBrowse(){return this.fileInputRef()?.nativeElement.click(),!1}onChange=()=>{};onTouched=()=>{};onChangeEffect=Te(()=>{this.onChange(this.content())});writeValue(t){this.content.set(t)}registerOnChange(t){this.onChange=t}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this.readonly.set(t)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=Z({type:n,selectors:[["app-file-drop-textarea"]],viewQuery:function(e,o){e&1&&Ze(o.fileInputRef,Xt,5),e&2&&et()},inputs:{customId:[1,"customId"],placeholder:[1,"placeholder"]},features:[it([{provide:st,useExisting:n,multi:!0}])],ngContentSelectors:jt,decls:9,vars:3,consts:[["fileInput",""],[1,"browse-btn"],["shButton","","type","button",1,"small","outlined",3,"click"],[1,"textarea-container","textarea-wrap",3,"drop","dragover"],["rows","10",3,"ngModelChange","placeholder","ngModel","disabled"],["type","file",1,"hidden",3,"change"]],template:function(e,o){if(e&1){let i=E();De(Ht),ye(0,0,["ngProjectAs","label",5,["label"]]),s(1,"div",1)(2,"button",2),h("click",function(){return f(i),S(o.triggerBrowse())}),s(3,"sh-icon"),m(4,"upload"),d()()(),s(5,"div",3),h("drop",function(_){return f(i),S(o.onFileDrop(_))})("dragover",function(_){return f(i),S(o.onDragOver(_))}),s(6,"textarea",4),we("ngModelChange",function(_){return f(i),Ae(o.content,_)||(o.content=_),S(_)}),d()(),s(7,"input",5,0),h("change",function(_){return f(i),S(o.onFileSelected(_))}),d()}e&2&&(r(6),c("placeholder",o.placeholder()),Fe("ngModel",o.content),c("disabled",o.readonly()))},dependencies:[pe,se,de,ce,me,Ce],styles:['[_nghost-%COMP%]{display:grid;grid-template-areas:"label browsebtn" "input input";grid-template-columns:8fr 1fr;gap:.5rem;align-items:flex-end}[_nghost-%COMP%] .browse-btn[_ngcontent-%COMP%]{grid-area:browsebtn}[_nghost-%COMP%] .label[_ngcontent-%COMP%]{grid-area:label;grid-column:1/-1}[_nghost-%COMP%] .textarea-wrap[_ngcontent-%COMP%]{grid-area:input;width:100%;border:none;font:var(--code-20)}[_nghost-%COMP%] .textarea-wrap[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%]{width:100%;color:var(--base-8);background-color:var(--base-1);border:1px solid var(--base-4);border-radius:var(--shape-3);padding:.5rem;resize:vertical;box-shadow:var(--box-shadow-10)}[_nghost-%COMP%] .textarea-wrap[_ngcontent-%COMP%] textarea[_ngcontent-%COMP%] .dark[_ngcontent-%COMP%]{background-color:var(--base-2)}[_nghost-%COMP%] .hidden[_ngcontent-%COMP%]{display:none}'],changeDetection:0})};var qt=(n,t,e,o)=>({index:n,fieldGroup:"custom",formView:t,destinationType:e,oauthField:o}),G=n=>({$implicit:n}),Wt=(n,t,e,o)=>({index:n,fieldGroup:"dynamic",formView:t,destinationType:e,oauthField:o}),Qt=()=>({updateOn:"blur"}),Yt=(n,t,e,o)=>({index:n,formView:t,fieldGroup:"advanced",destinationType:e,oauthField:o}),J=(n,t)=>({fieldGroup:n,formView:t}),Zt=()=>["/connect/logon"];function en(n,t){n&1&&P(0)}function tn(n,t){if(n&1&&x(0,en,1,0,"ng-container",24),n&2){let e=t.$implicit,o=t.$index;l();let i=y(15);l();let a=p(0),_=p(1);c("ngTemplateOutlet",i)("ngTemplateOutletContext",v(7,G,Me(2,qt,o,e,a,_.oauthField)))}}function nn(n,t){n&1&&P(0)}function on(n,t){if(n&1&&x(0,nn,1,0,"ng-container",24),n&2){let e=t.$implicit,o=t.$index;l();let i=y(15);l();let a=p(0),_=p(1);c("ngTemplateOutlet",i)("ngTemplateOutletContext",v(7,G,Me(2,Wt,o,e,a,_.oauthField)))}}function an(n,t){if(n&1){let e=E();s(0,"button",25),h("click",function(){f(e);let i=l(2);return S(i.showTextArea.set(!1))}),H(1,8),R(2,"sh-icon"),j(),d()}}function ln(n,t){if(n&1){let e=E();s(0,"button",32,2),h("click",function(){let i=f(e).$implicit,a=l(3);return S(a.addAdvancedOption(i))}),m(2),d()}if(n&2){let e=t.$implicit;r(2),A(" ",e.name," ")}}function rn(n,t){if(n&1){let e=E();s(0,"div",22)(1,"sh-menu",26)(2,"button",27),H(3,9),R(4,"sh-icon"),j(),d(),xe(5,28),ne(6,ln,3,1,"button",29,te),fe(),d(),s(8,"sh-menu")(9,"button",30)(10,"sh-icon"),m(11,"dots-three-vertical"),d()(),xe(12,28),s(13,"button",31),h("click",function(){f(e);let i=l(2);return S(i.showTextArea.set(!0))}),s(14,"sh-icon"),m(15,"link"),d(),m(16," Edit contents as text "),d(),fe(),d()()}if(n&2){l();let e=p(9);r(),c("searchable",!0),r(),c("disabled",e.length===0),r(4),ie(e)}}function _n(n,t){if(n&1){let e=E();s(0,"textarea",33),h("ngModelChange",function(i){f(e);let a=l(2);return S(a.updateSettingsFromText(i))}),d()}if(n&2){let e=l(2);c("ngModel",e.settingsAsText())("ngModelOptions",be(2,Qt))}}function sn(n,t){n&1&&P(0)}function dn(n,t){if(n&1&&x(0,sn,1,0,"ng-container",24),n&2){let e=t.$implicit,o=t.$index;l(2);let i=y(15),a=l(),_=p(0),C=p(1),N=a.getFormView("advanced",e)??a.getDefaultFormView(e);c("ngTemplateOutlet",i)("ngTemplateOutletContext",v(7,G,Me(2,Yt,o,N,_,C.oauthField)))}}function cn(n,t){if(n&1&&ne(0,dn,1,9,"ng-container",null,te),n&2){let e=l(2);ie(e.advancedFormFieldNames())}}function pn(n,t){n&1&&(s(0,"sup",42),m(1,"*"),d())}function mn(n,t){if(n&1&&(s(0,"sh-icon",43),m(1,"question"),d()),n&2){let e=l(2).$implicit;c("shTooltip",e.formView.longDescription)}}function Cn(n,t){if(n&1){let e=E();s(0,"app-file-tree",35)(1,"label",41),u(2,pn,2,0,"sup",42),m(3),u(4,mn,2,1,"sh-icon",43),d(),s(5,"input",44),h("ngModelChange",function(i){f(e);let a=l().$implicit,_=l(2);return S(_.updateFieldValue(a.fieldGroup,a.formView.name,i))}),d()()}if(n&2){let e=l().$implicit,o=p(1),i=p(2),a=p(3),_=p(4),C=p(5);c("startingPath",a)("accepts",e.formView.accepts)("showFiles",!0)("hideShortcuts",!0)("showHiddenNodes",!0)("selectFiles",!0),r(),c("for",C),r(),g(e.formView.isMandatory&&_?2:-1),r(),A(" ",o," "),r(),g(e.formView.longDescription?4:-1),r(),c("id",C)("ngModel",i)}}function un(n,t){n&1&&(s(0,"sup",45),m(1,"*"),d())}function gn(n,t){if(n&1&&(s(0,"sh-icon",43),m(1,"question"),d()),n&2){let e=l(2).$implicit;c("shTooltip",e.formView.longDescription)}}function Tn(n,t){if(n&1){let e=E();s(0,"app-file-tree",36)(1,"label",41),u(2,un,2,0,"sup",45),m(3),u(4,gn,2,1,"sh-icon",43),d(),s(5,"input",44),h("ngModelChange",function(i){f(e);let a=l().$implicit,_=l(2);return S(_.updateFieldValue(a.fieldGroup,a.formView.name,i))}),d()()}if(n&2){let e=l().$implicit,o=p(1),i=p(2),a=p(3),_=p(4),C=p(5);c("hideShortcuts",!0)("enableCreateFolder",!0)("startingPath",a),r(),c("for",C),r(),g(e.formView.isMandatory&&_?2:-1),r(),A(" ",o," "),r(),g(e.formView.longDescription?4:-1),r(),c("id",C)("ngModel",i)}}function fn(n,t){n&1&&(s(0,"sup",46),m(1,"*"),d())}function Sn(n,t){if(n&1&&(s(0,"sh-icon",43),m(1,"question"),d()),n&2){let e=l(2).$implicit;c("shTooltip",e.formView.longDescription)}}function Nn(n,t){n&1&&(s(0,"sh-icon",47),m(1," warning "),d())}function hn(n,t){n&1&&P(0)}function En(n,t){if(n&1&&(s(0,"sh-icon",51),m(1," link "),d()),n&2){l();let e=p(8),o=p(9);Oe("error",e&&o==="error")("warn",e&&o==="warning"),c("shTooltip",e)}}function In(n,t){n&1&&(s(0,"sh-icon",50),m(1,"envelope"),d())}function xn(n,t){n&1&&(s(0,"sh-icon",50),m(1,"hard-drives"),d())}function Dn(n,t){n&1&&(s(0,"sh-icon",50),m(1,"jar"),d())}function yn(n,t){n&1&&(s(0,"sh-icon",50),m(1,"textbox"),d())}function On(n,t){if(n&1){let e=E();s(0,"sh-form-field")(1,"label",41),u(2,fn,2,0,"sup",46),m(3),u(4,Sn,2,1,"sh-icon",43),u(5,Nn,2,0,"sh-icon",47),x(6,hn,1,0,"ng-container",24),d(),s(7,"input",48),h("keydown",function(i){f(e);let a=l().$implicit,_=l(2);return S(_.onKeyDown(a.fieldGroup,a.formView.name,a.formView.type,i))})("ngModelChange",function(i){f(e);let a=l().$implicit,_=l(2);return S(_.updateFieldValue(a.fieldGroup,a.formView.name,i))}),d(),X(8)(9),u(10,En,2,5,"sh-icon",49)(11,In,2,0,"sh-icon",50)(12,xn,2,0,"sh-icon",50)(13,Dn,2,0,"sh-icon",50)(14,yn,2,0,"sh-icon",50),d()}if(n&2){let e=l().$implicit,o=p(1),i=p(2),a=p(3),_=p(4),C=p(5);l();let N=y(17);r(),c("for",C),r(),g(e.formView.isMandatory&&_?2:-1),r(),A(" ",o," "),r(),g(e.formView.longDescription?4:-1),r(),g(_&&e.formView.type==="Path"?5:-1),r(),c("ngTemplateOutlet",N)("ngTemplateOutletContext",v(16,G,B(13,J,e.fieldGroup,e.formView))),r(),c("type",e.formView.type==="Email"?"email":"text")("id",C)("ngModel",i);let V=a,q=l().hasLeadingSlash(V??"");r(),M(q&&(e.formView.doubleSlash==null?null:e.formView.doubleSlash.message)),r(),M(e.formView.doubleSlash==null?null:e.formView.doubleSlash.type),r(),g(e.formView.type==="Path"?10:e.formView.type==="Email"?11:e.formView.type==="Hostname"?12:e.formView.type==="Bucketname"||e.formView.type==="BucketnameB2"?13:14)}}function Fn(n,t){n&1&&(s(0,"sup",52),m(1,"*"),d())}function An(n,t){if(n&1&&(s(0,"sh-icon",43),m(1,"question"),d()),n&2){let e=l(2).$implicit;c("shTooltip",e.formView.longDescription)}}function wn(n,t){n&1&&P(0)}function Mn(n,t){if(n&1){let e=E();s(0,"span",56),h("click",function(){f(e);let i=l(2).$implicit,a=l(2);return S(a.oauthStartTokenCreation(i.destinationType,i.fieldGroup,i.formView.name,i.formView.oauthVersion))}),m(1," AuthID "),d()}}function Ln(n,t){n&1&&(s(0,"sh-icon",50),m(1,"password"),d())}function Pn(n,t){if(n&1){let e=E();s(0,"sh-icon",57),h("click",function(){f(e);let i=l(2).$implicit;return S(i.formView.showPassword=!i.formView.showPassword)}),m(1," eye "),d()}}function vn(n,t){if(n&1){let e=E();s(0,"sh-icon",57),h("click",function(){f(e);let i=l(2).$implicit;return S(i.formView.showPassword=!i.formView.showPassword)}),m(1," eye-slash "),d()}}function Vn(n,t){if(n&1){let e=E();s(0,"sh-form-field")(1,"label",41),u(2,Fn,2,0,"sup",52),m(3),u(4,An,2,1,"sh-icon",43),x(5,wn,1,0,"ng-container",24),d(),s(6,"input",53),h("ngModelChange",function(i){f(e);let a=l().$implicit,_=l(2);return S(_.updateFieldValue(a.fieldGroup,a.formView.name,i))}),d(),u(7,Mn,2,0,"span",54)(8,Ln,2,0,"sh-icon",50),u(9,Pn,2,0,"sh-icon",55)(10,vn,2,0,"sh-icon",55),d()}if(n&2){let e=l().$implicit,o=p(1),i=p(2),a=p(4),_=p(5);l();let C=y(17);r(),c("for",_),r(),g(e.formView.isMandatory&&a?2:-1),r(),A(" ",o," "),r(),g(e.formView.longDescription?4:-1),r(),c("ngTemplateOutlet",C)("ngTemplateOutletContext",v(14,G,B(11,J,e.fieldGroup,e.formView))),r(),c("type",e.formView.showPassword?"text":"password")("id",_)("ngModel",i),r(),g(e.oauthField===e.formView.name?7:8),r(2),g(e.formView.showPassword?9:10)}}function $n(n,t){n&1&&(s(0,"sup",59),m(1,"*"),d())}function Gn(n,t){if(n&1&&(s(0,"sh-icon",43),m(1,"question"),d()),n&2){let e=l(3).$implicit;c("shTooltip",e.formView.longDescription)}}function bn(n,t){n&1&&P(0)}function Rn(n,t){if(n&1&&m(0),n&2){let e=t.$implicit;Se(" ",e.key," ",e.value&&e.value!=e.key?"("+e.value+")":""," ")}}function kn(n,t){if(n&1){let e=E();s(0,"sh-select",58)(1,"label",41),u(2,$n,2,0,"sup",59),m(3),u(4,Gn,2,1,"sh-icon",43),x(5,bn,1,0,"ng-container",24),d(),s(6,"input",44),h("ngModelChange",function(i){f(e);let a=l(2).$implicit,_=l(2);return S(_.updateFieldValue(a.fieldGroup,a.formView.name,i))}),d()(),x(7,Rn,1,2,"ng-template",null,3,oe)}if(n&2){let e=y(8);l();let o=p(0),i=l().$implicit,a=p(1),_=p(2),C=p(4),N=p(5);l();let V=y(17);c("options",o)("isClearable",!1)("optionTemplate",e),r(),c("for",N),r(),g(i.formView.isMandatory&&C?2:-1),r(),A(" ",a," "),r(),g(i.formView.longDescription?4:-1),r(),c("ngTemplateOutlet",V)("ngTemplateOutletContext",v(14,G,B(11,J,i.fieldGroup,i.formView))),r(),c("id",N)("ngModel",_)}}function Bn(n,t){if(n&1&&(X(0),u(1,kn,9,16)),n&2){let e=l().$implicit,o=M(l(2).mapOptions(e.formView));r(),g(o?1:-1)}}function Kn(n,t){n&1&&(s(0,"sup",62),m(1,"*"),d())}function zn(n,t){if(n&1&&(s(0,"sh-icon",43),m(1,"question"),d()),n&2){let e=l(3).$implicit;c("shTooltip",e.formView.longDescription)}}function Un(n,t){n&1&&P(0)}function Jn(n,t){if(n&1&&m(0),n&2){let e=t.$implicit;Se(" ",e.key," ",e.value&&e.value!=e.key?"("+e.value+")":""," ")}}function Xn(n,t){if(n&1){let e=E();s(0,"sh-select",61)(1,"label",41),u(2,Kn,2,0,"sup",62),m(3),u(4,zn,2,1,"sh-icon",43),x(5,Un,1,0,"ng-container",24),d(),s(6,"input",44),h("ngModelChange",function(i){f(e);let a=l(2).$implicit,_=l(2);return S(_.updateFieldValue(a.fieldGroup,a.formView.name,i))}),d()(),x(7,Jn,1,2,"ng-template",null,4,oe)}if(n&2){let e=y(8);l();let o=p(0),i=l().$implicit,a=p(1),_=p(2),C=p(4),N=p(5);l();let V=y(17);c("options",o)("asFreeText",!0)("inlineSearch",!0)("optionTemplate",e),r(),c("for",N),r(),g(i.formView.isMandatory&&C?2:-1),r(),A(" ",a," "),r(),g(i.formView.longDescription?4:-1),r(),c("ngTemplateOutlet",V)("ngTemplateOutletContext",v(15,G,B(12,J,i.fieldGroup,i.formView))),r(),c("id",N)("ngModel",_)}}function Hn(n,t){n&1&&R(0,"sh-progress-bar",60)}function jn(n,t){if(n&1&&(X(0),u(1,Xn,9,17)(2,Hn,1,0,"sh-progress-bar",60)),n&2){let e=l().$implicit,o=p(2),i=M(l(2).mapOptionsWithFreeText(e.formView,o));r(),g(i?1:2)}}function qn(n,t){n&1&&(s(0,"sup",64),m(1,"*"),d())}function Wn(n,t){if(n&1&&(s(0,"sh-icon",43),m(1,"question"),d()),n&2){let e=l(2).$implicit;c("shTooltip",e.formView.longDescription)}}function Qn(n,t){n&1&&P(0)}function Yn(n,t){if(n&1){let e=E();s(0,"app-size",63),h("ngModelChange",function(i){f(e);let a=l().$implicit,_=l(2);return S(_.updateFieldValue(a.fieldGroup,a.formView.name,i))}),s(1,"label",41),u(2,qn,2,0,"sup",64),m(3),u(4,Wn,2,1,"sh-icon",43),x(5,Qn,1,0,"ng-container",24),d()()}if(n&2){let e=l().$implicit,o=p(1),i=p(2),a=p(4),_=p(5);l();let C=y(17);c("inputType",e.Name)("ngModel",i)("customId",_),r(),c("for",_),r(),g(e.formView.isMandatory&&a?2:-1),r(),A(" ",o," "),r(),g(e.formView.longDescription?4:-1),r(),c("ngTemplateOutlet",C)("ngTemplateOutletContext",v(12,G,B(9,J,e.fieldGroup,e.formView)))}}function Zn(n,t){n&1&&(s(0,"sup",65),m(1,"*"),d())}function ei(n,t){if(n&1&&(s(0,"sh-icon",43),m(1,"question"),d()),n&2){let e=l(2).$implicit;c("shTooltip",e.formView.longDescription)}}function ti(n,t){n&1&&P(0)}function ni(n,t){if(n&1){let e=E();s(0,"sh-form-field")(1,"label",41),u(2,Zn,2,0,"sup",65),m(3),u(4,ei,2,1,"sh-icon",43),x(5,ti,1,0,"ng-container",24),d(),s(6,"input",66),h("ngModelChange",function(i){f(e);let a=l().$implicit,_=l(2);return S(_.updateFieldValue(a.fieldGroup,a.formView.name,i))}),d(),s(7,"sh-icon",50),m(8,"numpad"),d()()}if(n&2){let e=l().$implicit,o=p(1),i=p(2),a=p(4),_=p(5);l();let C=y(17);r(),c("for",_),r(),g(e.formView.isMandatory&&a?2:-1),r(),A(" ",o," "),r(),g(e.formView.longDescription?4:-1),r(),c("ngTemplateOutlet",C)("ngTemplateOutletContext",v(11,G,B(8,J,e.fieldGroup,e.formView))),r(),c("id",_)("ngModel",i)}}function ii(n,t){if(n&1&&(s(0,"sh-icon",43),m(1,"question"),d()),n&2){let e=l(2).$implicit;c("shTooltip",e.formView.longDescription)}}function oi(n,t){n&1&&P(0)}function ai(n,t){if(n&1){let e=E();s(0,"sh-toggle",67),h("click",function(){f(e);let i=l().$implicit,a=p(2),_=l(2);return S(_.updateFieldValue(i.fieldGroup,i.formView.name,_.isTrue(a)?"false":"true"))}),s(1,"label",41),m(2),u(3,ii,2,1,"sh-icon",43),x(4,oi,1,0,"ng-container",24),d()()}if(n&2){let e=l().$implicit,o=p(1),i=p(2),a=p(5);l();let _=y(17),C=l();Oe("active",C.isTrue(i)),r(),c("for",a),r(),A(" ",o," "),r(),g(e.formView.longDescription?3:-1),r(),c("ngTemplateOutlet",_)("ngTemplateOutletContext",v(10,G,B(7,J,e.fieldGroup,e.formView)))}}function li(n,t){n&1&&(s(0,"sup",69),m(1,"*"),d())}function ri(n,t){if(n&1&&(s(0,"sh-icon",43),m(1,"question"),d()),n&2){let e=l(3).$implicit;c("shTooltip",e.formView.longDescription)}}function _i(n,t){n&1&&P(0)}function si(n,t){if(n&1&&m(0),n&2){let e=t.$implicit;Se(" ",e.key," ",e.value&&e.value!=e.key?"("+e.value+")":""," ")}}function di(n,t){if(n&1){let e=E();s(0,"sh-select",68)(1,"label",41),u(2,li,2,0,"sup",69),m(3),u(4,ri,2,1,"sh-icon",43),x(5,_i,1,0,"ng-container",24),d(),s(6,"input",70),h("ngModelChange",function(i){f(e);let a=l(2).$implicit,_=l(2);return S(_.updateFieldValue(a.fieldGroup,a.formView.name,i))}),d()(),x(7,si,1,2,"ng-template",null,5,oe)}if(n&2){let e=y(8);l();let o=p(0),i=l().$implicit,a=p(1),_=p(2),C=p(4),N=p(5);l();let V=y(17);c("options",o)("selectMultiple",!0)("optionTemplate",e),r(),c("for",N),r(),g(i.formView.isMandatory&&C?2:-1),r(),A(" ",a," "),r(),g(i.formView.longDescription?4:-1),r(),c("ngTemplateOutlet",V)("ngTemplateOutletContext",v(13,G,B(10,J,i.fieldGroup,i.formView))),r(),c("ngModel",_)}}function ci(n,t){if(n&1&&(X(0),u(1,di,9,15)),n&2){let e=l().$implicit,o=M(l(2).mapOptions(e.formView));r(),g(o?1:-1)}}function pi(n,t){n&1&&(s(0,"sup",71),m(1,"*"),d())}function mi(n,t){if(n&1&&(s(0,"sh-icon",43),m(1,"question"),d()),n&2){let e=l(2).$implicit;c("shTooltip",e.formView.longDescription)}}function Ci(n,t){n&1&&P(0)}function ui(n,t){if(n&1){let e=E();s(0,"app-timespan",63),h("ngModelChange",function(i){f(e);let a=l().$implicit,_=l(2);return S(_.updateFieldValue(a.fieldGroup,a.formView.name,i))}),s(1,"label",41),u(2,pi,2,0,"sup",71),m(3),u(4,mi,2,1,"sh-icon",43),x(5,Ci,1,0,"ng-container",24),d()()}if(n&2){let e=l().$implicit,o=p(1),i=p(2),a=p(4),_=p(5);l();let C=y(17);c("inputType",e.formView.name)("ngModel",i)("customId",_),r(),c("for",_),r(),g(e.formView.isMandatory&&a?2:-1),r(),A(" ",o," "),r(),g(e.formView.longDescription?4:-1),r(),c("ngTemplateOutlet",C)("ngTemplateOutletContext",v(12,G,B(9,J,e.fieldGroup,e.formView)))}}function gi(n,t){n&1&&(s(0,"sup",73),m(1,"*"),d())}function Ti(n,t){if(n&1&&(s(0,"sh-icon",43),m(1,"question"),d()),n&2){let e=l(2).$implicit;c("shTooltip",e.formView.longDescription)}}function fi(n,t){n&1&&P(0)}function Si(n,t){if(n&1){let e=E();s(0,"app-file-drop-textarea",72),h("ngModelChange",function(i){f(e);let a=l().$implicit,_=l(2);return S(_.updateFieldValue(a.fieldGroup,a.formView.name,i))}),s(1,"label"),u(2,gi,2,0,"sup",73),m(3),u(4,Ti,2,1,"sh-icon",43),x(5,fi,1,0,"ng-container",24),d()()}if(n&2){let e=l().$implicit,o=p(2),i=p(4),a=p(5);l();let _=y(17);c("ngModel",o)("customId",a)("placeholder",e.formView.longDescription),r(2),g(e.formView.isMandatory&&i?2:-1),r(),A(" ",e.formView.shortDescription??e.formView.name," "),r(),g(e.formView.longDescription?4:-1),r(),c("ngTemplateOutlet",_)("ngTemplateOutletContext",v(11,G,B(8,J,e.fieldGroup,e.formView)))}}function Ni(n,t){n&1&&(R(0,"sh-spinner"),s(1,"span"),_e(2,10),d()),n&2&&tt("--spinner-size","16px")("--spinner-thickness","2px")}function hi(n,t){n&1&&(s(0,"div",76),_e(1,11),d())}function Ei(n,t){if(n&1&&m(0),n&2){let e=t.$implicit;Se(" ",e.key," ",e.value&&e.value!=e.key?"("+e.value+")":""," ")}}function Ii(n,t){if(n&1){let e=E();s(0,"sh-select",77)(1,"label",41)(2,"sup",78),m(3,"*"),d(),s(4,"span"),_e(5,12),d()(),s(6,"input",44),h("ngModelChange",function(i){f(e);let a=l(4).$implicit,_=l(2);return S(_.updateFieldValue(a.fieldGroup,a.formView.name,i))}),d()(),x(7,Ei,1,2,"ng-template",null,6,oe)}if(n&2){l(4);let e=p(2),o=p(5),i=l(2);c("options",i.restoreBackupIdOptions())("isClearable",!1),r(),c("for",o),r(5),c("id",o)("ngModel",e)}}function xi(n,t){if(n&1&&u(0,Ni,3,4)(1,hi,2,0,"div",76)(2,Ii,9,5),n&2){let e=l(5);g(e.isLoadingRestoreBackupIdOptions()?0:e.restoreBackupIdOptions().length==0?1:2)}}function Di(n,t){n&1&&(s(0,"sup",79),m(1,"*"),d())}function yi(n,t){if(n&1&&(s(0,"sh-icon",43),m(1,"question"),d()),n&2){let e=l(4).$implicit;c("shTooltip",e.formView.longDescription)}}function Oi(n,t){n&1&&P(0)}function Fi(n,t){if(n&1){let e=E();s(0,"button",81),h("click",function(){f(e),l(4);let i=p(5),a=l(2);return S(a.toggleDisabled(i))}),H(1,13),R(2,"sh-icon"),j(),d()}}function Ai(n,t){if(n&1){let e=E();s(0,"sh-form-field")(1,"label",41),u(2,Di,2,0,"sup",79),m(3),u(4,yi,2,1,"sh-icon",43),x(5,Oi,1,0,"ng-container",24),d(),s(6,"input",80),h("ngModelChange",function(i){f(e);let a=l(3).$implicit,_=l(2);return S(_.updateFieldValue(a.fieldGroup,a.formView.name,i))}),d(),s(7,"sh-icon",50),m(8,"textbox"),d()(),u(9,Fi,3,0,"button",40)}if(n&2){let e=l(3).$implicit,o=p(1),i=p(2),a=p(4),_=p(5);l();let C=y(17),N=l();r(),c("for",_),r(),g(e.formView.isMandatory&&a?2:-1),r(),A(" ",o," "),r(),g(e.formView.longDescription?4:-1),r(),c("ngTemplateOutlet",C)("ngTemplateOutletContext",v(15,G,B(12,J,e.fieldGroup,e.formView))),r(),c("type","text")("id",_)("ngModel",i)("placeholder",e.formView.longDescription)("disabled",!0),r(3),g(N.getIsDisabled(_)?9:-1)}}function wi(n,t){if(n&1&&(s(0,"div",74),u(1,xi,3,1)(2,Ai,10,17),d()),n&2){let e=l(4);r(),g(e.isRestoreFlow()?1:2)}}function Mi(n,t){if(n&1){let e=E();s(0,"div",82),H(1,14),R(2,"div")(3,"div"),j(),d(),s(4,"button",81),h("click",function(){f(e);let i=l(5);return S(i.openConsole())}),H(5,15),R(6,"sh-icon"),j(),d()}}function Li(n,t){n&1&&(s(0,"div",82),_e(1,16),d(),s(2,"button",83),H(3,17),R(4,"sh-icon"),j(),d()),n&2&&(r(2),c("routerLink",be(1,Zt)))}function Pi(n,t){if(n&1&&(s(0,"div",75),u(1,Mi,7,0)(2,Li,5,2),d()),n&2){let e=l(4);r(),g(e.isConnectedToConsole()?1:2)}}function vi(n,t){if(n&1&&u(0,wi,3,1,"div",74)(1,Pi,3,1,"div",75),n&2){let e=l(3);g(e.isConnectedToConsole()&&e.hasStorageApiKey()?0:1)}}function Vi(n,t){n&1&&(s(0,"sup",85),m(1,"*"),d())}function $i(n,t){if(n&1&&(s(0,"sh-icon",43),m(1,"question"),d()),n&2){let e=l(3).$implicit;c("shTooltip",e.formView.longDescription)}}function Gi(n,t){n&1&&P(0)}function bi(n,t){if(n&1){let e=E();s(0,"div",84)(1,"sh-form-field")(2,"label",41),u(3,Vi,2,0,"sup",85),m(4),u(5,$i,2,1,"sh-icon",43),x(6,Gi,1,0,"ng-container",24),d(),s(7,"input",86),h("ngModelChange",function(i){f(e);let a=l(2).$implicit,_=l(2);return S(_.updateFieldValue(a.fieldGroup,a.formView.name,i))}),d(),s(8,"sh-icon",50),m(9,"textbox"),d()(),s(10,"button",87),h("click",function(){f(e);let i=l(4);return S(i.authenticateFilen())}),H(11,18),R(12,"sh-icon"),j(),d()()}if(n&2){let e=l(2).$implicit,o=p(1),i=p(2),a=p(4),_=p(5);l();let C=y(17),N=l();r(2),c("for",_),r(),g(e.formView.isMandatory&&a?3:-1),r(),A(" ",o," "),r(),g(e.formView.longDescription?5:-1),r(),c("ngTemplateOutlet",C)("ngTemplateOutletContext",v(12,G,B(9,J,e.fieldGroup,e.formView))),r(),c("id",_)("ngModel",i),r(3),c("disabled",N.isAuthenticatingFilen())}}function Ri(n,t){if(n&1&&u(0,bi,13,14,"div",84),n&2){let e=l(3);g(e.hasFilenApiKey()?-1:0)}}function ki(n,t){if(n&1){let e=E();s(0,"button",81),h("click",function(){f(e);let i=l().$implicit,a=l(2);return S(a.removeAdvancedOption(i.formView.name))}),s(1,"sh-icon"),m(2,"x-circle"),d()()}}function Bi(n,t){if(n&1&&(s(0,"div",34),X(1)(2)(3)(4)(5),u(6,Cn,6,12,"app-file-tree",35)(7,Tn,6,9,"app-file-tree",36)(8,On,15,18,"sh-form-field")(9,Vn,11,16,"sh-form-field")(10,Bn,2,2)(11,jn,3,2)(12,Yn,6,14,"app-size",37)(13,ni,9,13,"sh-form-field")(14,ai,5,12,"sh-toggle",38)(15,ci,2,2)(16,ui,6,14,"app-timespan",37)(17,Si,6,13,"app-file-drop-textarea",39)(18,vi,2,1)(19,Ri,1,1),u(20,ki,3,0,"button",40),d()),n&2){let e=t.$implicit;l();let o=p(0),i=l();Oe("single-field",e.fieldGroup!=="advanced"),r(),M(e.formView.shortDescription??e.formView.name),r(),M(i.getFieldGroup(o,e.fieldGroup)[e.formView.name]),r();let a=M(i.getFieldValue(e.fieldGroup,e.formView.name));r(),M((a??"").toString().trim()===""),r(),M("destination-"+e.fieldGroup+"-"+e.index+"-"+(e.asHttpOptions?"http":"other")),r(),g(e.formView.type==="FileTree"?6:e.formView.type==="FolderTree"?7:e.formView.type==="String"||e.formView.type==="Path"||e.formView.type==="Email"||e.formView.type==="Hostname"||e.formView.type==="Bucketname"||e.formView.type==="BucketnameB2"?8:e.formView.type==="Password"?9:e.formView.type==="Enumeration"?10:e.formView.type==="NonValidatedSelectableString"?11:e.formView.type==="Size"?12:e.formView.type==="Integer"?13:e.formView.type==="Boolean"?14:e.formView.type==="Flags"?15:e.formView.type==="Timespan"||e.formView.type==="DateTime"?16:e.formView.type==="FreeText"?17:e.formView.type==="DuplicatiBackupId"?18:e.formView.type==="Filen2FACode"?19:-1),r(14),g(e.fieldGroup==="advanced"?20:-1)}}function Ki(n,t){if(n&1&&(s(0,"sh-icon",88),m(1,"x-circle"),d()),n&2){l();let e=p(0);c("shTooltip",(e==null?null:e.message)??"Invalid value")}}function zi(n,t){if(n&1&&(s(0,"sh-icon",89),m(1,"warning"),d()),n&2){l();let e=p(0);c("shTooltip",(e==null?null:e.message)??"Invalid value")}}function Ui(n,t){if(n&1&&(X(0),u(1,Ki,2,1,"sh-icon",88)(2,zi,2,1,"sh-icon",89)),n&2){let e=l().$implicit,o=p(0),i=M(e.formView.validate(o));r(),g((i==null?null:i.type)==="error"?1:(i==null?null:i.type)==="warning"?2:-1)}}function Ji(n,t){if(n&1&&(X(0),u(1,Ui,3,2)),n&2){let e=t.$implicit,i=(M(l(2).getFieldValue(e.fieldGroup,e.formView.name))??"").toString().trim()==="";r(),g(!i&&e.formView.validate?1:-1)}}function Xi(n,t){if(n&1&&(X(0),ne(1,tn,1,9,"ng-container",null,te),ne(3,on,1,9,"ng-container",null,te),s(5,"sh-toggle-card",19),xe(6,20)(7),_e(8,7),fe(),X(9),u(10,an,3,0,"button",21)(11,rn,17,2,"div",22),fe(),u(12,_n,1,3,"textarea",23)(13,cn,2,0),d(),x(14,Bi,21,9,"ng-template",null,0,oe)(16,Ji,2,2,"ng-template",null,1,oe)),n&2){let e=l(),o=p(1);M(e.destinationForm()),r(),ie(o.custom),r(2),ie(o.dynamic),r(2),c("disallowToggle",!0),r(4),M(e.nonSelectedAdvancedFormViews()),r(),g(e.showTextArea()?10:11),r(2),g(e.showTextArea()?12:13)}}var Bt=class n{#e=w($t);#t=w(ue);#n=w(xt);#s=w(ge);#a=w(Dt);#l=w(yt);#i=w(Le);injector=w(We);targetUrl=lt.required();useBackupState=ae(!1);#o=null;destinationType=$(()=>{let t=this.targetUrl();if(!t)return null;let e=Re(t);return this.#o=e?.customKey??e?.key,this.#o});refreshView=k(!1);destinationForm=k({custom:{},dynamic:{},advanced:{}});advancedFormFieldNames=$(()=>Object.keys(this.destinationForm().advanced??{}));destinationFormConfig=k(null);showTextArea=k(!1);isLoadingRestoreBackupIdOptions=k(!1);isRestoreFlow=$(()=>!this.useBackupState());restoreBackupIdOptions=It(Et(this.targetUrl).pipe(Xe(t=>{if(!t)return{authKey:null,url:null,isRestore:this.isRestoreFlow(),hasKey:this.hasStorageApiKey()};let e=t.indexOf("?"),o=e>=0?t.substring(e+1):"",i=new URLSearchParams(o),a=i.get("duplicati-auth-apiid")??"",_=i.get("duplicati-auth-apikey")??"";return{authKey:`${a}|${_}`,url:t}}),He((t,e)=>t.authKey===e.authKey),qe(({url:t})=>{this.lastRestoreAuthQueryUrl=t}),je(({url:t})=>t&&t.startsWith("duplicati://")&&this.hasStorageApiKey()&&this.isRestoreFlow()?(this.isLoadingRestoreBackupIdOptions.set(!0),this.#l.getDuplicatiStorageBackups(t).pipe($e(()=>this.isLoadingRestoreBackupIdOptions.set(!1)))):Je([]))),{initialValue:[]});isConnectedToConsole=$(()=>this.#a.state()==="connected");hasStorageApiKey=$(()=>(this.#n.serverSettings()?.["remote-control-storage-api-id"]??"").length>0);isAuthenticatingFilen=k(!1);hasFilenApiKey=$(()=>{let e=this.destinationForm().advanced["api-key"];return e&&e.length>0});nonSelectedAdvancedFormViews=$(()=>{let t=this.destinationFormConfig();if(!t)return[];let e=this.advancedFormFieldNames();return t.advanced.filter(o=>e.findIndex(i=>i===o.name)===-1)});destinationTypeEffect=Te(()=>{let t=this.targetUrl(),e=Re(t??""),o=e.key,i=e.customKey??o,a=this.#s.backendModules().find(D=>D.Key===o)??{Key:o,DisplayName:e.displayName,Description:e.description,Options:[]};if(!a||!a.Options||!o)return;let _=e&&e.oauthField?e.oauthField:null,C=e&&e.customFields?e.customFields:{},N=e&&e.dynamicFields?e.dynamicFields:[],V=e&&e.advancedFields?e.advancedFields:[],q=e&&e.ignoredAdvancedFields?e.ignoredAdvancedFields:[],K={destinationType:i,oauthField:_,custom:[],dynamic:[],advanced:[]};C&&Object.entries(C).forEach(([D,T],O)=>{let F=T.order??O,b=T.validate;!b&&T.type==="Bucketname"&&(b=L=>Lt(L)?null:{type:"error",message:$localize`Invalid bucket name.`}),b&&T.type==="Hostname"&&(b=L=>Pt(L)?null:{type:"error",message:$localize`Invalid hostname.`}),K.custom.push(z({order:900+F,validate:b},T))});for(let D=0;D<a.Options.length;D++){let T=a.Options[D];if(T.Deprecated)continue;let O=N.find(F=>F===T.Name||T.Aliases?.includes(F.name)||F.name===T.Name);if(O){let F=T.Aliases?.indexOf(O.name)??-1,b=T.Aliases&&F>-1?T.Aliases[F]:T.Name,L=O&&typeof O!="string",le=L?O?.defaultValue??T.DefaultValue:T.DefaultValue,re=L&&O?.order!==void 0?O.order:D,Q={name:b,type:T.Type,shortDescription:T.ShortDescription??void 0,longDescription:T.LongDescription??void 0,options:T.ValidValues,order:900+re},Y=L?z(z({},Q),O):Q;K.dynamic.push(Y)}else{let F=T.Name;if(q.find(ee=>ee===F))continue;let L=V.find(ee=>ee===F||ee.name===F),le=L&&typeof L!="string",re=le&&L?.order!==void 0?L.order:D,Q={name:F,type:T.Type,shortDescription:T.ShortDescription??void 0,longDescription:T.LongDescription??void 0,options:T.ValidValues,defaultValue:T.DefaultValue,order:900+re},Y=le?z(z({},Q),L):Q;K.advanced.push(Y)}}if(K.custom.sort((D,T)=>D.order-T.order),K.dynamic.sort((D,T)=>D.order-T.order),K.advanced.sort((D,T)=>D.order-T.order),this.destinationFormConfig.set(K),!t)return;let W=wt(t);W&&this.destinationForm.set({custom:W.custom,dynamic:W.dynamic,advanced:W.advanced})});destinationFormEffect=Te(()=>{let t=this.#o,e=this.destinationForm(),o=this.refreshView();if(!e||!t)return;let i=At({destinationType:t,custom:e.custom,dynamic:e.dynamic,advanced:e.advanced});i&&this.targetUrl.set(i)});getFieldValue(t,e){let i=this.destinationForm()[t][e];return i||null}getFormView(t,e){let i=this.destinationFormConfig()?.[t].find(a=>a.name===e);return i||null}getDefaultFormView(t){return{name:t,type:"String",shortDescription:t,longDescription:$localize`This is an undocumented option.`}}getFieldGroup(t,e){return t[e]}hasLeadingSlash(t){return t?.startsWith("/")??!1}addAdvancedOption(t){let e=this.destinationForm();e.advanced[t.name]=t.defaultValue,this.destinationForm.set(z({},e))}isTrue(t){if(typeof t=="boolean")return t;if(typeof t=="string"){let e=t.toLowerCase();return e==="true"||e==="1"||e==="yes"||e==="on"}return!1}onKeyDown(t,e,o,i){if(o==="Hostname"||o==="Bucketname"){if(["Backspace","Delete","ArrowLeft","ArrowRight","Tab","Home","End"].includes(i.key))return;if(i.key=="/"||i.key=="\\"||i.key==":"){i.preventDefault();return}}}updateFieldValue(t,e,o){let i=this.destinationForm();i[t][e]=o,this.destinationForm.set(z({},i))}removeAdvancedOption(t){let e=this.destinationForm();delete e.advanced[t],this.destinationForm.set(z({},e))}mapOptions(t){let e=t.loadOptions;if(e)return e(this.injector)();let o=t.options;return o?o.map(i=>({key:i,value:i})):null}mapOptionsWithFreeText(t,e){let o=this.mapOptions(t);return o?(e&&e.length>0&&(o.find(a=>a.value===e)||o.push({key:e,value:e})),o):null}#r=k(!1);oauthStartTokenCreation(t,e,o,i){this.#r.set(!0);let a=(i??1)==2?this.#t.defaultOAuthUrlV2():this.#t.defaultOAuthUrl(),_=this.#n.serverSettings()?.["--oauth-url"];if(_&&_.length>0&&(a=_),this.useBackupState()){let T=this.#e.mapFormsToSettings().find(O=>O.Name==="--oauth-url")?.Value;T&&T.length>0&&(a=T)}let C=this.destinationForm().advanced["oauth-url"];C&&C.length>0&&(a=C);let N=`${a}?type=${t}`,V=450,q=600,K=screen.width/2-V/2,W=screen.height/2-q/2,D=window.open(N,"_blank","height="+q+",width="+V+",menubar=0,status=0,titlebar=0,toolbar=0,left="+K+",top="+W);return window.addEventListener("message",T=>{let O=T.data.startsWith("authid:"),F=O?T.data.replace("authid:",""):null;O&&(this.destinationForm.update(b=>(b[e][o]=F,b)),this.#r.set(!1),this.refreshView.set(!this.refreshView()),D?.close())}),!1}settingsAsText=$(()=>{let t=this.destinationForm().advanced;return Object.entries(t).map(([e,o])=>{let i=e??"",a="";return typeof o=="boolean"?a=this.isTrue(o)?"True":"False":(typeof o=="number"||o!=null)&&(a=o.toString()),`${i}=${a}`}).join(`
7
+ `)});updateSettingsFromText(t){if(typeof t!="string")return;let e=Mt(t);this.destinationForm.update(o=>he(z({},o),{advanced:e}))}getIsDisabled(t){return document.getElementById(t)?.disabled??!0}toggleDisabled(t){let e=document.getElementById(t);e&&(e.disabled=!e.disabled)}openConsole(){this.#a.openConsole()}#_(t){var e=this.useBackupState()?this.#e.backupId():null;this.isAuthenticatingFilen.set(!0),this.#l.getFilenApiKey(t,e).pipe($e(()=>this.isAuthenticatingFilen.set(!1))).subscribe({next:o=>{if(o.length===0){this.#i.open(U,{data:{title:$localize`Authentication failed`,message:$localize`No API key was returned from the Filen server.`,confirmText:$localize`OK`}});return}this.destinationForm.update(i=>(i.advanced["api-key"]=o,i.dynamic["two-factor-code"]=null,i)),this.refreshView.set(!this.refreshView())},error:o=>{console.error("Error authenticating Filen",o),this.#i.open(U,{data:{title:$localize`Authentication failed`,message:$localize`An error occurred while requesting the Filen API key: ${o.message}`,confirmText:$localize`OK`}})}})}authenticateFilen(){let t=this.targetUrl();if(!t)return;let o=this.destinationForm().advanced["api-key"];if(o&&o.length>0){this.#i.open(U,{data:{title:$localize`Confirm re-authenticate?`,message:$localize`You already have an API key. Are you sure you want to re-authenticate?`,confirmText:$localize`Yes`,cancelText:$localize`Cancel`},closed:i=>{if(i){var a=new URL(t);a.searchParams.delete("api-key"),this.#_(a.toString())}}});return}this.#_(t)}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=Z({type:n,selectors:[["app-single-destination"]],inputs:{targetUrl:[1,"targetUrl"],useBackupState:[1,"useBackupState"]},outputs:{targetUrl:"targetUrlChange"},decls:3,vars:3,consts:()=>{let t;t=$localize`Advanced options`;let e;e=$localize` Show editor ${"\uFFFD#2\uFFFD"}:START_TAG_SH_ICON:link${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_ICON:`;let o;o=$localize` Add advanced option ${"\uFFFD#4\uFFFD"}:START_TAG_SH_ICON:plus${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_SH_ICON:`;let i;i=$localize`This field is mandatory`;let a;a=$localize`This field is mandatory`;let _;_=$localize`This field is mandatory`;let C;C=$localize`An empty path means storing data in the initial or root folder, which is not recommended`;let N;N=$localize`This field is mandatory`;let V;V=$localize`This field is mandatory`;let q;q=$localize`This field is mandatory`;let K;K=$localize`This field is mandatory`;let W;W=$localize`This field is mandatory`;let D;D=$localize`This field is mandatory`;let T;T=$localize`This field is mandatory`;let O;O=$localize`This field is mandatory`;let F;F=$localize`Loading available backups...`;let b;b=$localize`No backups found from this machine, contact support`;let L;L=$localize`This field is mandatory`;let le;le=$localize`Pick the backup to restore from`;let re;re=$localize`This field is mandatory`;let Q;Q=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SH_ICON:pencil${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_ICON:`;let Y;Y=$localize`${"[\uFFFD#2\uFFFD|\uFFFD#3\uFFFD]"}:START_TAG_DIV:An API key with storage access is required to use Duplicati storage.${"[\uFFFD/#2\uFFFD|\uFFFD/#3\uFFFD]"}:CLOSE_TAG_DIV:${"[\uFFFD#2\uFFFD|\uFFFD#3\uFFFD]"}:START_TAG_DIV:Visit the console and assign an API key to this machine.${"[\uFFFD/#2\uFFFD|\uFFFD/#3\uFFFD]"}:CLOSE_TAG_DIV:`,Y=Ye(Y);let ee;ee=$localize` Visit console ${"\uFFFD#6\uFFFD"}:START_TAG_SH_ICON:arrow-right${"\uFFFD/#6\uFFFD"}:CLOSE_TAG_SH_ICON:`;let Be;Be=$localize`Connect to the console to use Duplicati storage.`;let Ke;Ke=$localize` Connect now ${"\uFFFD#4\uFFFD"}:START_TAG_SH_ICON:arrow-right${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_SH_ICON:`;let ze;ze=$localize`This field is mandatory`;let Ue;return Ue=$localize` Authenticate now ${"\uFFFD#12\uFFFD"}:START_TAG_SH_ICON:arrow-right${"\uFFFD/#12\uFFFD"}:CLOSE_TAG_SH_ICON:`,[["fieldTemplate",""],["validateTemplate",""],["option",""],["enumOptionTemplate",""],["nonValidatedOptionTemplate",""],["optionTemplate",""],["backupIdOptionTemplate",""],t,e,o,F,b,le,Q,Y,ee,Be,Ke,Ue,[1,"advanced-options",3,"disallowToggle"],["title",""],["shButton","","type","button",1,"outlined","small"],[1,"actions"],["wrap","off","placeholder","Paste advanced options here, one per line.",1,"raw-text-area",3,"ngModel","ngModelOptions"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],["shButton","","type","button",1,"outlined","small",3,"click"],[3,"searchable"],["shButton","","type","button",1,"outlined","small",3,"disabled"],["menu",""],["type","button"],["shButton","","type","button",1,"small"],["shButton","","type","button",1,"small",3,"click"],["type","button",3,"click"],["wrap","off","placeholder","Paste advanced options here, one per line.",1,"raw-text-area",3,"ngModelChange","ngModel","ngModelOptions"],[1,"field-row"],[3,"startingPath","accepts","showFiles","hideShortcuts","showHiddenNodes","selectFiles"],[3,"hideShortcuts","enableCreateFolder","startingPath"],[3,"inputType","ngModel","customId"],[1,"primary","raised",3,"active"],[3,"ngModel","customId","placeholder"],["shButton","","type","button",1,"outlined"],[3,"for"],["shTooltip",i],[1,"primary",3,"shTooltip"],["type","text",3,"ngModelChange","id","ngModel"],["shTooltip",a],["shTooltip",_],["shTooltip",C,1,"warn"],["autocomplete","off",3,"keydown","ngModelChange","type","id","ngModel"],["prefix","",3,"error","warn","shTooltip"],["prefix",""],["prefix","",3,"shTooltip"],["shTooltip",N],["autocomplete","off",3,"ngModelChange","type","id","ngModel"],["prefix","",1,"link"],["suffix","",1,"clickable"],["prefix","",1,"link",3,"click"],["suffix","",1,"clickable",3,"click"],["label","key","value","value",3,"options","isClearable","optionTemplate"],["shTooltip",V],[1,"indeterminate","primary"],["label","key","value","value",3,"options","asFreeText","inlineSearch","optionTemplate"],["shTooltip",q],[3,"ngModelChange","inputType","ngModel","customId"],["shTooltip",K],["shTooltip",W],["type","number",3,"ngModelChange","id","ngModel"],[1,"primary","raised",3,"click"],["key","key","value","value",1,"primary","raised",3,"options","selectMultiple","optionTemplate"],["shTooltip",D],["type","text","id","text",3,"ngModelChange","ngModel"],["shTooltip",T],[3,"ngModelChange","ngModel","customId","placeholder"],["shTooltip",O],[1,"duplicati-backup-id"],[1,"duplicati-backup-id-console"],[1,"no-backups-found"],[3,"options","isClearable"],["shTooltip",L],["shTooltip",re],["autocomplete","off",3,"ngModelChange","type","id","ngModel","placeholder","disabled"],["shButton","","type","button",1,"outlined",3,"click"],[1,"info"],["shButton","","type","button",1,"outlined",3,"routerLink"],[1,"filen-2fa-setup"],["shTooltip",ze],["type","text","autocomplete","off",3,"ngModelChange","id","ngModel"],["shButton","","type","button",1,"outlined",3,"click","disabled"],[1,"error",3,"shTooltip"],[1,"warn",3,"shTooltip"]]},template:function(e,o){if(e&1&&(X(0)(1),u(2,Xi,18,5)),e&2){let i=M(o.destinationType());r();let a=M(o.destinationFormConfig());r(),g(i&&a?2:-1)}},dependencies:[ct,se,dt,de,pe,ce,rt,_t,Vt,vt,Gt,Ve,Pe,Ce,me,ft,Ct,Tt,Nt,St,ut,gt],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.advanced-options[_ngcontent-%COMP%]{position:relative;z-index:1}textarea[_ngcontent-%COMP%] ~ grammarly-extension[_ngcontent-%COMP%]{display:none}sh-select[_ngcontent-%COMP%]{--miw: p2r(120)}[prefix].link[_ngcontent-%COMP%]{cursor:pointer;text-decoration:underline;color:var(--primary-8)}.clickable[_ngcontent-%COMP%]{cursor:pointer;color:var(--primary-8)}label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem}label[_ngcontent-%COMP%] sh-icon[_ngcontent-%COMP%]{font-size:1rem}.field-row[_ngcontent-%COMP%]{display:grid;align-items:flex-end;grid-template-columns:1fr 2.5rem;gap:.5rem}.field-row.single-field[_ngcontent-%COMP%]{display:block}.actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem}.raw-text-area[_ngcontent-%COMP%]{min-height:12rem;white-space:pre}.filen-2fa-setup[_ngcontent-%COMP%], .duplicati-backup-id[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:8px;align-items:flex-end}.duplicati-backup-id[_ngcontent-%COMP%] sh-select[_ngcontent-%COMP%]{width:100%}.duplicati-backup-id-console[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:8px;align-items:center}.duplicati-backup-id-console[_ngcontent-%COMP%] .info[_ngcontent-%COMP%]{width:100%;display:flex;flex-direction:column;gap:4px}"],changeDetection:0})};export{bt as a,ve as b,ge as c,Rt as d,Bt as e};
@@ -1 +1 @@
1
- import{a as K}from"./chunk-AO4ZIHUL.js";import"./chunk-SS7TCWY5.js";import"./chunk-6Q6SSTBK.js";import{a as z}from"./chunk-WILUKPQ3.js";import"./chunk-NEV6JB5M.js";import"./chunk-CGKL2MHM.js";import"./chunk-QWNOPLJC.js";import{B as U,H as x,I as V,W as j,b as E,c as A,e as R,f as b,j as y,p as B,q as $,r as v,t as G,u as k,x as L,z as w}from"./chunk-RYXU2QDS.js";import{b as J}from"./chunk-BKANUILG.js";import{d as O,e as M}from"./chunk-GO4NSDR6.js";import"./chunk-56FBKSBN.js";import"./chunk-FIBRO5I3.js";import"./chunk-RMOTUTEQ.js";import"./chunk-QF5K4MHH.js";import{Ab as i,Bb as u,E as g,Pa as l,Pb as D,Qb as h,Rb as _,Ub as I,Vb as d,W as s,cb as f,gc as P,la as c,sb as C,tb as S,xc as N,yb as p,zb as a}from"./chunk-XYHHESIX.js";import"./chunk-7CGTOI24.js";var X=()=>["/"];function H(m,o){m&1&&(a(0,"sh-form-field")(1,"label",14),_(2,3),i(),u(3,"input",15),i())}var F=new v,T=class m{#t=s(L);#o=s(w);#i=s(J);#n=s(K);#e=s(O);isImporting=c(!1);isSecureFile=c(!1);isValid=c(!1);importForm=F.group({config:F.control(""),cmdline:F.control(!1),import_metadata:F.control(!1),direct:F.control(!1),passphrase:F.control("")});selectedFile=c([]);onFileDropped(o){let e=o[0];if(e){let t=new FileReader;this.isSecureFile.set(e.type!=="application/json"),t.onload=this.#r.bind(this),t.readAsArrayBuffer(e)}}#r(o){let e=o.target?.result;this.isSecureFile.set(this.#a(e)!=="json"),this.importForm.patchValue({config:this.#s(e)}),this.isValid.set(this.importForm.value.config!=="")}#a(o){let e=new Uint8Array(o);if(e.length>=5&&e[0]===65&&e[1]===69&&e[2]===83&&e[4]===0)return"aes";try{let t=new TextDecoder().decode(o),n=JSON.parse(t);if(typeof n=="object"&&n!==null)return"json"}catch{}return"unknown"}#s(o){let e=new Uint8Array(o),t=e.byteLength,n="";for(let r=0;r<t;r++)n+=String.fromCharCode(e[r]);return btoa(n)}submit(){this.isImporting.set(!0);let o=this.importForm.value.direct??!1;this.#i.postApiV1BackupsImport({requestBody:this.importForm.value}).pipe(g(()=>this.isImporting.set(!1))).subscribe({next:e=>{if(o){this.#t.success("Backup imported successfully."),this.#e.navigate(["/"]);return}let t=this.#n.addDraftBackup(e.data);this.#e.navigate(["/backup-draft",t])},error:e=>{let t=e.message||$localize`Unknown error`;this.#o.open(z,{data:{title:$localize`Failed to import backup`,message:t,confirmText:$localize`OK`,cancelText:void 0}})}})}static \u0275fac=function(e){return new(e||m)};static \u0275cmp=f({type:m,selectors:[["app-import"]],decls:19,vars:8,consts:()=>{let o;o=$localize` Import backup configuration ${"\uFFFD#3\uFFFD"}:START_TAG_DIV:${"\uFFFD#4\uFFFD"}:START_TAG_BUTTON:${"[\uFFFD#5\uFFFD|\uFFFD#7\uFFFD]"}:START_TAG_SH_ICON:arrow-left${"[\uFFFD/#5\uFFFD|\uFFFD/#7\uFFFD]"}:CLOSE_TAG_SH_ICON: Back ${"[\uFFFD/#4\uFFFD|\uFFFD/#6\uFFFD]"}:CLOSE_TAG_BUTTON:${"\uFFFD#6\uFFFD"}:START_TAG_BUTTON_1:${"[\uFFFD#5\uFFFD|\uFFFD#7\uFFFD]"}:START_TAG_SH_ICON:download-simple${"[\uFFFD/#5\uFFFD|\uFFFD/#7\uFFFD]"}:CLOSE_TAG_SH_ICON: Import ${"[\uFFFD/#4\uFFFD|\uFFFD/#6\uFFFD]"}:CLOSE_TAG_BUTTON:${"\uFFFD/#3\uFFFD"}:CLOSE_TAG_DIV:`,o=I(o);let e;e=$localize`Import Metadata`;let t;t=$localize`Save now`;let n;return n=$localize`Passphrase`,[o,e,t,n,[1,"actions"],["shButton","","type","button",1,"outlined",3,"routerLink"],["shButton","","type","submit",1,"raised","primary",3,"click","disabled"],["autocomplete","off",3,"formGroup"],["accept",".json,.aes",3,"filesChange","files"],[1,"primary","raised"],["for","importMetadata"],["type","checkbox","formControlName","import_metadata"],["for","direct"],["type","checkbox","formControlName","direct"],["for","passphrase"],["type","password","formControlName","passphrase"]]},template:function(e,t){e&1&&(a(0,"header")(1,"h3"),D(2,0),a(3,"div",4)(4,"button",5),u(5,"sh-icon"),i(),a(6,"button",6),d("click",function(){return t.submit()}),u(7,"sh-icon"),i()(),h(),i()(),a(8,"form",7)(9,"sh-file-upload",8),d("filesChange",function(r){return t.onFileDropped(r)}),i(),C(10,H,4,0,"sh-form-field"),a(11,"sh-toggle",9)(12,"label",10),_(13,1),i(),u(14,"input",11),i(),a(15,"sh-toggle",9)(16,"label",12),_(17,2),i(),u(18,"input",13),i()()),e&2&&(l(4),p("routerLink",N(7,X)),l(2),P("loader",t.isImporting()),p("disabled",t.isImporting()||!t.isValid()),l(2),p("formGroup",t.importForm),l(),p("files",t.selectedFile()),l(),S(t.isSecureFile()?10:-1))},dependencies:[G,y,A,E,R,b,$,B,M,x,k,U,j,V],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;gap:2rem;padding:3rem}h3[_ngcontent-%COMP%]{font:var(--title-30);display:flex;align-items:center;justify-content:space-between}.actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem;max-width:31.25rem}sh-file-upload[_ngcontent-%COMP%]{width:100%}"],changeDetection:0})};export{T as default};
1
+ import{a as K}from"./chunk-4NN5ZM73.js";import"./chunk-6Q6SSTBK.js";import{a as z}from"./chunk-5DJAX2HH.js";import"./chunk-QZRRXR3V.js";import"./chunk-AABUGLWU.js";import"./chunk-TELPJYLN.js";import"./chunk-5QZIKR6A.js";import{B as U,H as x,I as V,W as j,b as E,c as A,e as R,f as b,j as y,p as B,q as $,r as v,t as G,u as k,x as L,z as w}from"./chunk-HPNLQHW6.js";import{c as J}from"./chunk-BGTK25UG.js";import{d as O,e as M}from"./chunk-A4LPGPDU.js";import"./chunk-PKPBSTZA.js";import"./chunk-QPTSKQZ2.js";import"./chunk-OTPG7USH.js";import"./chunk-TT3S63BX.js";import{Ab as i,Bb as u,E as g,Pa as l,Pb as D,Qb as h,Rb as _,Ub as I,Vb as d,W as s,cb as f,gc as P,la as c,sb as C,tb as S,xc as N,yb as p,zb as a}from"./chunk-T2WO6CVD.js";import"./chunk-7CGTOI24.js";var X=()=>["/"];function H(m,o){m&1&&(a(0,"sh-form-field")(1,"label",14),_(2,3),i(),u(3,"input",15),i())}var F=new v,T=class m{#t=s(L);#o=s(w);#i=s(J);#n=s(K);#e=s(O);isImporting=c(!1);isSecureFile=c(!1);isValid=c(!1);importForm=F.group({config:F.control(""),cmdline:F.control(!1),import_metadata:F.control(!1),direct:F.control(!1),passphrase:F.control("")});selectedFile=c([]);onFileDropped(o){let e=o[0];if(e){let t=new FileReader;this.isSecureFile.set(e.type!=="application/json"),t.onload=this.#r.bind(this),t.readAsArrayBuffer(e)}}#r(o){let e=o.target?.result;this.isSecureFile.set(this.#a(e)!=="json"),this.importForm.patchValue({config:this.#s(e)}),this.isValid.set(this.importForm.value.config!=="")}#a(o){let e=new Uint8Array(o);if(e.length>=5&&e[0]===65&&e[1]===69&&e[2]===83&&e[4]===0)return"aes";try{let t=new TextDecoder().decode(o),n=JSON.parse(t);if(typeof n=="object"&&n!==null)return"json"}catch{}return"unknown"}#s(o){let e=new Uint8Array(o),t=e.byteLength,n="";for(let r=0;r<t;r++)n+=String.fromCharCode(e[r]);return btoa(n)}submit(){this.isImporting.set(!0);let o=this.importForm.value.direct??!1;this.#i.postApiV1BackupsImport({requestBody:this.importForm.value}).pipe(g(()=>this.isImporting.set(!1))).subscribe({next:e=>{if(o){this.#t.success("Backup imported successfully."),this.#e.navigate(["/"]);return}let t=this.#n.addDraftBackup(e.data);this.#e.navigate(["/backup-draft",t])},error:e=>{let t=e.message||$localize`Unknown error`;this.#o.open(z,{data:{title:$localize`Failed to import backup`,message:t,confirmText:$localize`OK`,cancelText:void 0}})}})}static \u0275fac=function(e){return new(e||m)};static \u0275cmp=f({type:m,selectors:[["app-import"]],decls:19,vars:8,consts:()=>{let o;o=$localize` Import backup configuration ${"\uFFFD#3\uFFFD"}:START_TAG_DIV:${"\uFFFD#4\uFFFD"}:START_TAG_BUTTON:${"[\uFFFD#5\uFFFD|\uFFFD#7\uFFFD]"}:START_TAG_SH_ICON:arrow-left${"[\uFFFD/#5\uFFFD|\uFFFD/#7\uFFFD]"}:CLOSE_TAG_SH_ICON: Back ${"[\uFFFD/#4\uFFFD|\uFFFD/#6\uFFFD]"}:CLOSE_TAG_BUTTON:${"\uFFFD#6\uFFFD"}:START_TAG_BUTTON_1:${"[\uFFFD#5\uFFFD|\uFFFD#7\uFFFD]"}:START_TAG_SH_ICON:download-simple${"[\uFFFD/#5\uFFFD|\uFFFD/#7\uFFFD]"}:CLOSE_TAG_SH_ICON: Import ${"[\uFFFD/#4\uFFFD|\uFFFD/#6\uFFFD]"}:CLOSE_TAG_BUTTON:${"\uFFFD/#3\uFFFD"}:CLOSE_TAG_DIV:`,o=I(o);let e;e=$localize`Import Metadata`;let t;t=$localize`Save now`;let n;return n=$localize`Passphrase`,[o,e,t,n,[1,"actions"],["shButton","","type","button",1,"outlined",3,"routerLink"],["shButton","","type","submit",1,"raised","primary",3,"click","disabled"],["autocomplete","off",3,"formGroup"],["accept",".json,.aes",3,"filesChange","files"],[1,"primary","raised"],["for","importMetadata"],["type","checkbox","formControlName","import_metadata"],["for","direct"],["type","checkbox","formControlName","direct"],["for","passphrase"],["type","password","formControlName","passphrase"]]},template:function(e,t){e&1&&(a(0,"header")(1,"h3"),D(2,0),a(3,"div",4)(4,"button",5),u(5,"sh-icon"),i(),a(6,"button",6),d("click",function(){return t.submit()}),u(7,"sh-icon"),i()(),h(),i()(),a(8,"form",7)(9,"sh-file-upload",8),d("filesChange",function(r){return t.onFileDropped(r)}),i(),C(10,H,4,0,"sh-form-field"),a(11,"sh-toggle",9)(12,"label",10),_(13,1),i(),u(14,"input",11),i(),a(15,"sh-toggle",9)(16,"label",12),_(17,2),i(),u(18,"input",13),i()()),e&2&&(l(4),p("routerLink",N(7,X)),l(2),P("loader",t.isImporting()),p("disabled",t.isImporting()||!t.isValid()),l(2),p("formGroup",t.importForm),l(),p("files",t.selectedFile()),l(),S(t.isSecureFile()?10:-1))},dependencies:[G,y,A,E,R,b,$,B,M,x,k,U,j,V],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;gap:2rem;padding:3rem}h3[_ngcontent-%COMP%]{font:var(--title-30);display:flex;align-items:center;justify-content:space-between}.actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem;max-width:31.25rem}sh-file-upload[_ngcontent-%COMP%]{width:100%}"],changeDetection:0})};export{T as default};
@@ -0,0 +1 @@
1
+ import{b as d}from"./chunk-DW332N2S.js";import{a as u,b as E}from"./chunk-AABUGLWU.js";import{c as p}from"./chunk-BGTK25UG.js";import{Mc as o,R as v,W as s,la as h,na as l,z as g}from"./chunk-T2WO6CVD.js";import{a as i}from"./chunk-7CGTOI24.js";var A="shown-welcome-page-v1",_="hide-console-connection-status",f="disable-console-control",C="disable-trayicon-login",S="server-listen-interface",O="allowed-hostnames",b="server-passphrase",R="update-channel",T="startup-delay",D="usage-reporter-level",N="power-mode-provider",m=class n{#t=s(p);#r=s(u);#s=s(E);#n=d(this.#t.getApiV1Serversettings());#e=h(void 0);serverSettings=o(()=>this.#e()||this.#n());#o=l(()=>{let e=this.#r.serverSettings();e&&this.#e.set(e)});constructor(){this.#r.subscribe("serversettings")}isConsoleConnectionStatusHidden=o(()=>{let e=this.serverSettings();return e?e[_]==="True":!1});refreshServerSettings(){this.#s.getConnectionMethod()!=="websocket"&&this.#t.getApiV1Serversettings().subscribe({next:e=>{this.#e.set(e)}})}#i(e,t){var r=i({},e);for(let[a,c]of Object.entries(t))c===null?delete r[a]:r[a]=c;return r}patchServerSettings(e){let t=i({},this.serverSettings());return this.#e.set(this.#i(this.serverSettings()??{},e)),this.#t.patchApiV1Serversettings({requestBody:e}).pipe(g(r=>{throw this.#e.set(t),r}))}patchServerSetting(e,t){let r={};return r[e]=t,this.patchServerSettings(r)}setShownWelcomePage(){return this.patchServerSetting(A,"true")}setHideConsoleConnectionStatus(e){return this.patchServerSetting(_,e?"True":"False")}setDisableTrayIconLogin(e){return this.patchServerSetting(C,e?"True":"False")}setDisableConsoleControl(e){return this.patchServerSetting(f,e?"True":"False")}setRemoteAccessInterface(e){return this.patchServerSetting(S,e)}setRemoteAccessAllowedHostnames(e){var t={[O]:e};return this.serverSettings()?.[S]==="loopback"&&(t[S]="any"),this.patchServerSettings(t)}setRemoteAccessPassword(e){return this.patchServerSetting(b,e)}setUpdateChannel(e){return this.patchServerSetting(R,e)}setStartupDelay(e){return this.patchServerSetting(T,e)}setUsageReporterLevel(e){return this.patchServerSetting(D,e)}setPowerModeProvider(e){return this.patchServerSetting(N,e)}static \u0275fac=function(t){return new(t||n)};static \u0275prov=v({token:n,factory:n.\u0275fac,providedIn:"root"})};export{m as a};
@@ -0,0 +1 @@
1
+ import{$ as ha,A as I,Aa as Ka,B as J,Ba as La,C as K,Ca as Ma,D as L,Da as Na,E as M,Ea as Oa,F as N,Fa as Pa,G as O,Ga as Qa,H as P,I as Q,J as R,K as S,L as T,M as U,N as V,O as W,P as X,Q as Y,R as Z,S as _,T as $,U as aa,V as ba,W as ca,X as da,Y as ea,Z as fa,_ as ga,a as i,aa as ia,b as j,ba as ja,c as k,ca as ka,d as l,da as la,e as m,ea as ma,f as n,fa as na,g as o,ga as oa,h as p,ha as pa,i as q,ia as qa,j as r,ja as ra,k as s,ka as sa,l as t,la as ta,m as u,ma as ua,n as v,na as va,o as w,oa as wa,p as x,pa as xa,q as y,qa as Aa,r as z,ra as Ba,s as A,sa as Ca,t as B,ta as Da,u as C,ua as Ea,v as D,va as Fa,w as E,wa as Ga,x as F,xa as Ha,y as G,ya as Ia,z as H,za as Ja}from"./chunk-OTPG7USH.js";import{a as c,b as d,c as e,d as f,e as g,f as h,g as ya,h as za}from"./chunk-TT3S63BX.js";import{ea as a,za as b}from"./chunk-T2WO6CVD.js";import"./chunk-7CGTOI24.js";export{k as APP_BASE_HREF,ha as AsyncPipe,h as BrowserPlatformLocation,wa as CommonModule,ua as CurrencyPipe,ma as DATE_PIPE_DEFAULT_OPTIONS,la as DATE_PIPE_DEFAULT_TIMEZONE,a as DOCUMENT,na as DatePipe,sa as DecimalPipe,q as FormStyle,s as FormatWidth,n as HashLocationStrategy,oa as I18nPluralPipe,pa as I18nSelectPipe,b as IMAGE_CONFIG,Ja as IMAGE_LOADER,qa as JsonPipe,ra as KeyValuePipe,g as LOCATION_INITIALIZED,m as Location,j as LocationStrategy,ia as LowerCasePipe,W as NgClass,X as NgComponentOutlet,Z as NgFor,Z as NgForOf,Y as NgForOfContext,_ as NgIf,$ as NgIfContext,V as NgLocaleLocalization,U as NgLocalization,Qa as NgOptimizedImage,da as NgPlural,ea as NgPluralCase,fa as NgStyle,aa as NgSwitch,ba as NgSwitchCase,ca as NgSwitchDefault,ga as NgTemplateOutlet,o as NumberFormatStyle,t as NumberSymbol,Pa as PRECONNECT_CHECK_BLOCKLIST,l as PathLocationStrategy,ta as PercentPipe,f as PlatformLocation,xa as PlatformNavigation,p as Plural,va as SlicePipe,ja as TitleCasePipe,r as TranslationWidth,ka as UpperCasePipe,Ga as VERSION,Ha as ViewportScroller,u as WeekDay,za as XhrFactory,R as formatCurrency,Q as formatDate,T as formatNumber,S as formatPercent,O as getCurrencySymbol,J as getLocaleCurrencyCode,I as getLocaleCurrencyName,H as getLocaleCurrencySymbol,C as getLocaleDateFormat,E as getLocaleDateTimeFormat,x as getLocaleDayNames,w as getLocaleDayPeriods,N as getLocaleDirection,z as getLocaleEraNames,L as getLocaleExtraDayPeriodRules,M as getLocaleExtraDayPeriods,A as getLocaleFirstDayOfWeek,v as getLocaleId,y as getLocaleMonthNames,G as getLocaleNumberFormat,F as getLocaleNumberSymbol,K as getLocalePluralCase,D as getLocaleTimeFormat,B as getLocaleWeekEndRange,P as getNumberOfCurrencyDigits,Ea as isPlatformBrowser,Fa as isPlatformServer,Ka as provideCloudflareLoader,La as provideCloudinaryLoader,Ma as provideImageKitLoader,Na as provideImgixLoader,Oa as provideNetlifyLoader,Ba as registerLocaleData,e as \u0275DomAdapter,Aa as \u0275NavigationAdapterForLocation,Ia as \u0275NullViewportScroller,Ca as \u0275PLATFORM_BROWSER_ID,Da as \u0275PLATFORM_SERVER_ID,c as \u0275getDOM,i as \u0275normalizeQueryParams,ya as \u0275parseCookieValue,d as \u0275setRootDomAdapter};
@@ -1,2 +1,2 @@
1
- import{b as P}from"./chunk-BKANUILG.js";import"./chunk-FIBRO5I3.js";import"./chunk-QF5K4MHH.js";import{Cb as o,Db as i,E as p,Mc as x,Pa as s,R as h,W as r,Xb as L,cb as u,fc as E,jc as a,kc as M,la as c,sb as f,tb as C,ub as _,wb as v,xb as b}from"./chunk-XYHHESIX.js";import"./chunk-7CGTOI24.js";var l=class e{#e=r(P);isLoaded=c(!1);crashLog=c(null);load(){this.isLoaded()||this.#e.getApiV1LogdataCrashlog().pipe(p(()=>this.isLoaded.set(!0))).subscribe({next:t=>{this.crashLog.set(t.Logdata??null)}})}static \u0275fac=function(n){return new(n||e)};static \u0275prov=h({token:e,factory:e.\u0275fac,providedIn:"root"})};function O(e,t){e&1&&(o(0,"div",0),a(1,"Loading ..."),i())}function S(e,t){e&1&&(o(0,"div",0),a(1,"No crash log found"),i())}function w(e,t){if(e&1&&(o(0,"li"),a(1),i()),e&2){let n=t.$implicit;s(),M(n)}}function D(e,t){if(e&1&&(o(0,"div",2)(1,"code")(2,"ol",3),v(3,w,2,1,"li",null,_),i()()()),e&2){let n=L();E("grid-column","1 / -1")("height","auto"),s(3),b(n.breakIntoLines(n.crashLog()))}}var g=class e{#e=r(l);logsLoading=x(()=>!this.#e.isLoaded());crashLog=this.#e.crashLog;ngOnInit(){this.#e.load()}breakIntoLines(t){return t?t.split(`
1
+ import{c as P}from"./chunk-BGTK25UG.js";import"./chunk-QPTSKQZ2.js";import"./chunk-TT3S63BX.js";import{Cb as o,Db as i,E as p,Mc as x,Pa as s,R as h,W as r,Xb as L,cb as u,fc as E,jc as a,kc as M,la as c,sb as f,tb as C,ub as _,wb as v,xb as b}from"./chunk-T2WO6CVD.js";import"./chunk-7CGTOI24.js";var l=class e{#e=r(P);isLoaded=c(!1);crashLog=c(null);load(){this.isLoaded()||this.#e.getApiV1LogdataCrashlog().pipe(p(()=>this.isLoaded.set(!0))).subscribe({next:t=>{this.crashLog.set(t.Logdata??null)}})}static \u0275fac=function(n){return new(n||e)};static \u0275prov=h({token:e,factory:e.\u0275fac,providedIn:"root"})};function O(e,t){e&1&&(o(0,"div",0),a(1,"Loading ..."),i())}function S(e,t){e&1&&(o(0,"div",0),a(1,"No crash log found"),i())}function w(e,t){if(e&1&&(o(0,"li"),a(1),i()),e&2){let n=t.$implicit;s(),M(n)}}function D(e,t){if(e&1&&(o(0,"div",2)(1,"code")(2,"ol",3),v(3,w,2,1,"li",null,_),i()()()),e&2){let n=L();E("grid-column","1 / -1")("height","auto"),s(3),b(n.breakIntoLines(n.crashLog()))}}var g=class e{#e=r(l);logsLoading=x(()=>!this.#e.isLoaded());crashLog=this.#e.crashLog;ngOnInit(){this.#e.load()}breakIntoLines(t){return t?t.split(`
2
2
  `):[]}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=u({type:e,selectors:[["app-crashlogs"]],decls:5,vars:1,consts:[[1,"loading"],[2,"white-space","pre-wrap",3,"grid-column","height"],[2,"white-space","pre-wrap"],[1,"line-numbers-ol"]],template:function(n,d){if(n&1&&(o(0,"h3"),a(1,"Crash log"),i(),f(2,O,2,0,"div",0)(3,S,2,0,"div",0)(4,D,5,4,"div",1)),n&2){let m;s(2),C(d.logsLoading()?2:d.crashLog()==null||((m=d.crashLog())==null?null:m.length)===0?3:4)}},styles:["[_nghost-%COMP%]{display:block;padding:0 2.5rem}h3[_ngcontent-%COMP%]{font:var(--title-30);margin:0 0 1.25rem}sh-table[_ngcontent-%COMP%]{--table-columns: auto auto 1fr auto}sh-table[_ngcontent-%COMP%] td.id[_ngcontent-%COMP%]{justify-content:center}sh-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:has(code){padding:1rem .75rem;overflow:hidden}sh-table[_ngcontent-%COMP%] td[_ngcontent-%COMP%]:has(code) code[_ngcontent-%COMP%]{background:color-mix(in srgb,var(--base-8),#000 70%);color:#fff;padding:2.5rem 2.5rem 2.5rem 1.5rem;border-radius:var(--shape-3);overflow:auto;white-space:pre}"],changeDetection:0})};export{g as default};