@duplicati/ngclient 0.0.166 → 0.0.168

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 (120) hide show
  1. package/chunk-23NBWWEN.js +1 -0
  2. package/chunk-2PYOYROT.js +1 -0
  3. package/{chunk-CO4VU5IU.js → chunk-33SCK3HX.js} +1 -1
  4. package/{chunk-2HQTO4LT.js → chunk-3HNIHWA3.js} +1 -1
  5. package/{chunk-SHNCRKXQ.js → chunk-3J76KG7L.js} +1 -1
  6. package/{chunk-OVLLX4US.js → chunk-3L2HST7Q.js} +1 -1
  7. package/chunk-3T4NJWLA.js +1 -0
  8. package/chunk-3ZEG6WVT.js +1 -0
  9. package/{chunk-WNHQELMC.js → chunk-4BGVLUYV.js} +1 -1
  10. package/{chunk-53V6KV3I.js → chunk-4MEL5WTX.js} +1 -1
  11. package/{chunk-GGNFAVSC.js → chunk-4PMLRVX5.js} +1 -1
  12. package/{chunk-53GUCO6P.js → chunk-5BMTCVLS.js} +1 -1
  13. package/chunk-5H3KA3BL.js +1 -0
  14. package/{chunk-XUQ74HFK.js → chunk-5K64UNNB.js} +1 -1
  15. package/{chunk-JGXPFEYZ.js → chunk-66KMXCBD.js} +1 -1
  16. package/{chunk-L7WPKNLR.js → chunk-66LPJUTC.js} +1 -1
  17. package/{chunk-3ADKRLYD.js → chunk-6DB3NZXR.js} +1 -1
  18. package/chunk-6GUZNCHD.js +1 -0
  19. package/chunk-6MMJ6EHL.js +1 -0
  20. package/chunk-7KUVROHU.js +1 -0
  21. package/chunk-7WIBNC6L.js +1 -0
  22. package/chunk-A6NUNQKN.js +1 -0
  23. package/{chunk-AY4BUZJQ.js → chunk-ABJWT6DQ.js} +1 -1
  24. package/{chunk-CMMGGY2S.js → chunk-B54TEGKW.js} +1 -1
  25. package/{chunk-OQ2HMOSQ.js → chunk-BTVYI2KD.js} +1 -1
  26. package/{chunk-HEST3B3S.js → chunk-CCM2D4BF.js} +1 -1
  27. package/{chunk-M2BAPEJT.js → chunk-CSY4BFC4.js} +1 -1
  28. package/{chunk-ZZBUNZZO.js → chunk-D2DI6ZER.js} +1 -1
  29. package/{chunk-X7XIFHAV.js → chunk-DU5QSRYH.js} +1 -1
  30. package/chunk-DY7VFO2O.js +1 -0
  31. package/{chunk-AROXMP46.js → chunk-EDLTOGSO.js} +1 -1
  32. package/{chunk-QLUEDPL4.js → chunk-F2QQDU4N.js} +1 -1
  33. package/{chunk-Y7PHGRGB.js → chunk-FAM42SZT.js} +1 -1
  34. package/{chunk-X6SJVQXW.js → chunk-FCZXIW2B.js} +1 -1
  35. package/chunk-G4JKMY4X.js +1 -0
  36. package/{chunk-V7OQKE2Z.js → chunk-GPDTWYQ7.js} +1 -1
  37. package/{chunk-R2N5UWYB.js → chunk-GS5QK7LF.js} +1 -1
  38. package/{chunk-NA6MTRHY.js → chunk-HFDNVEKY.js} +1 -1
  39. package/{chunk-7WATCQLK.js → chunk-HJRYTTGO.js} +1 -1
  40. package/{chunk-V5B247QH.js → chunk-HMM3KKPY.js} +1 -1
  41. package/{chunk-GRPEAINE.js → chunk-I2RHQQ3J.js} +1 -1
  42. package/{chunk-ULR2EPP5.js → chunk-I5AKUAZF.js} +1 -1
  43. package/{chunk-CMFSS355.js → chunk-IZQG3EV6.js} +1 -1
  44. package/{chunk-3O255C2R.js → chunk-JUWOEL4E.js} +1 -1
  45. package/{chunk-P7OKMMNZ.js → chunk-KBGIIJMM.js} +1 -1
  46. package/{chunk-YWZRYOES.js → chunk-L4GZJLYK.js} +1 -1
  47. package/chunk-L7A3FH7R.js +1 -0
  48. package/{chunk-G4Z3JAJB.js → chunk-LEZL7BSL.js} +1 -1
  49. package/chunk-LFRGO2IP.js +1 -0
  50. package/{chunk-HKYSIIV5.js → chunk-LFVCKT5O.js} +1 -1
  51. package/chunk-LGCYSN2C.js +1 -0
  52. package/{chunk-NY63VRAY.js → chunk-LJQN4G2O.js} +1 -1
  53. package/{chunk-HW7A5ZWV.js → chunk-M77IE672.js} +1 -1
  54. package/{chunk-LHOHOKP5.js → chunk-MBGTO6W7.js} +1 -1
  55. package/{chunk-YU5AMM6C.js → chunk-MP7JKTLP.js} +1 -1
  56. package/{chunk-SFSDLKTN.js → chunk-MR4EC7E2.js} +1 -1
  57. package/{chunk-ZXEF3CNK.js → chunk-MZMEFIHU.js} +1 -1
  58. package/{chunk-NDZU2O2Q.js → chunk-NHRDYV7W.js} +1 -1
  59. package/{chunk-ZZBZEHXF.js → chunk-NJ7S3XQO.js} +1 -1
  60. package/{chunk-ILGMXHEE.js → chunk-NOHHRZSK.js} +1 -1
  61. package/{chunk-KUP2T6AG.js → chunk-OLOFMEQN.js} +1 -1
  62. package/chunk-OZ6EMLFQ.js +1 -0
  63. package/{chunk-WPIVIZS6.js → chunk-PDBKO5D5.js} +1 -1
  64. package/{chunk-GHJ4MU3O.js → chunk-PG6KDQFA.js} +1 -1
  65. package/{chunk-VXJJGZ5F.js → chunk-PJAWWLYW.js} +1 -1
  66. package/{chunk-AUMCM45B.js → chunk-RECKKS2S.js} +1 -1
  67. package/{chunk-5RCKMVGY.js → chunk-RNNVKT2R.js} +1 -1
  68. package/{chunk-O2M7MRKP.js → chunk-S5O366BO.js} +1 -1
  69. package/{chunk-E4KSSC6K.js → chunk-T6C2OUI5.js} +1 -1
  70. package/{chunk-4IAJY6E3.js → chunk-TJ3WIU6Q.js} +1 -1
  71. package/chunk-TZP7VKPA.js +1 -0
  72. package/chunk-UNGFQSCM.js +1 -0
  73. package/{chunk-RRM5OZPV.js → chunk-UPGTBICK.js} +1 -1
  74. package/{chunk-W7NX3PWJ.js → chunk-UTONS2P4.js} +1 -1
  75. package/chunk-VIDWYXK5.js +1 -0
  76. package/{chunk-J64OAILA.js → chunk-VKR5DJQG.js} +1 -1
  77. package/{chunk-Q4I4JXKZ.js → chunk-VOYMNW22.js} +1 -1
  78. package/{chunk-QE4NBN5H.js → chunk-W2UO5LKI.js} +1 -1
  79. package/{chunk-QOQI2ALM.js → chunk-W4QCGFNO.js} +1 -1
  80. package/{chunk-3VHQLGKM.js → chunk-WEFZF25L.js} +1 -1
  81. package/{chunk-NXJQU7IR.js → chunk-X5FW56GT.js} +1 -1
  82. package/{chunk-ZQ56M63S.js → chunk-XE5OMGTJ.js} +1 -1
  83. package/{chunk-Y2LISX47.js → chunk-XTYBRFP6.js} +1 -1
  84. package/{chunk-SNVT3M5C.js → chunk-XY6KVQXK.js} +1 -1
  85. package/chunk-Y7PF5UJZ.js +1 -0
  86. package/chunk-YDCRZJMG.js +1 -0
  87. package/{chunk-EYFKXXER.js → chunk-ZV7VPSMZ.js} +1 -1
  88. package/index.html +1 -1
  89. package/locale/messages.da.json +57 -0
  90. package/locale/messages.de.json +33 -6
  91. package/locale/messages.it.json +57 -6
  92. package/locale/messages.ja_JP.json +1 -0
  93. package/locale/messages.nl_NL.json +15 -8
  94. package/locale/messages.sr_RS.json +1 -0
  95. package/locale/messages.sv_SE.json +1 -0
  96. package/locale/messages.zh-Hans.json +2 -5
  97. package/locale/messages.zh_CN.json +2 -5
  98. package/{main-L5HX5P6R.js → main-VFPROUDV.js} +1 -1
  99. package/package.json +1 -1
  100. package/chunk-25QJ7OWU.js +0 -1
  101. package/chunk-4N7O6OWH.js +0 -1
  102. package/chunk-A4HSV37F.js +0 -1
  103. package/chunk-BRPGUJ77.js +0 -1
  104. package/chunk-DPQEDR6U.js +0 -1
  105. package/chunk-EEXKY2IJ.js +0 -1
  106. package/chunk-FUPYLAQ6.js +0 -1
  107. package/chunk-HJSCQF6V.js +0 -1
  108. package/chunk-IMF5BUVN.js +0 -1
  109. package/chunk-IQ52IXSC.js +0 -1
  110. package/chunk-JXLBFHEH.js +0 -1
  111. package/chunk-KKLVMIFL.js +0 -1
  112. package/chunk-NLXY47SY.js +0 -1
  113. package/chunk-POAVE42X.js +0 -1
  114. package/chunk-QAY6UFT6.js +0 -1
  115. package/chunk-R3F6GIHW.js +0 -1
  116. package/chunk-SKFITJZT.js +0 -1
  117. package/chunk-TPYX7QC7.js +0 -1
  118. package/chunk-WJEUX75A.js +0 -1
  119. package/chunk-WKA7CSGA.js +0 -1
  120. package/chunk-ZSEZR472.js +0 -1
@@ -1 +1 @@
1
- import{a as We}from"./chunk-QLUEDPL4.js";import{a as Ve}from"./chunk-ZQ56M63S.js";import{b as $e}from"./chunk-P7OKMMNZ.js";import{A as Re,B as Ie,G as te,I as Le,K as Ae,O as Be,V as ke,a as Oe,c as U,e as Y,i as Z,k as ye,s as ee,u as xe,y as we,z as De}from"./chunk-HJSCQF6V.js";import{ea as Fe}from"./chunk-3ADKRLYD.js";import{$b as q,Ab as _e,Ac as Ne,B as ue,Bb as O,Bc as Q,Cb as c,Cc as ve,Db as d,Eb as X,H as ie,Jc as Se,Kb as ne,Lb as L,Qc as D,Ra as h,Rc as R,Sb as ge,Tb as fe,Ub as A,Vb as me,Vc as se,Wb as Ce,Wc as C,Xc as le,Yb as x,_ as j,_b as u,ac as w,bb as J,da as N,ea as v,fc as oe,gb as W,gc as Te,hc as re,ic as K,jc as y,mc as b,n as ce,nc as Ee,oa as P,oc as Pe,pc as be,r as H,rc as B,sc as k,tb as pe,tc as $,wb as S,x as de,xb as F,zb as he,zc as Me}from"./chunk-Y7PHGRGB.js";import{a as G,b as z}from"./chunk-EUDKD2JW.js";var qe=[[["label"]],[["","prefix",""]],[["","suffix",""]]],Ke=["label","[prefix]","[suffix]"];function Qe(o,t){if(o&1&&b(0),o&2){let e=t.$implicit,i=u();be("",e.label,"",i.hasPerSecond()?"/s":"")}}var Ue=["throttle-upload","throttle-download"],Ye=[{value:"B",label:"Bytes"},{value:"KB",label:"KB"},{value:"MB",label:"MB"},{value:"GB",label:"GB"},{value:"TB",label:"TB"},{value:"PB",label:"PB"}],Ze=o=>{if(!o||typeof o!="string"||o.length===0)return{size:0,unit:"MB"};let t=o.match(/^(\d+)(bytes|kb|mb|gb|tb|pb|b|kib|mib|gib|tib|pib)$/i);return t&&(t[2].toUpperCase()==="B"||t[2].toUpperCase()==="BYTES")?{size:1,unit:"KB"}:{size:t?parseInt(t[1],10):0,unit:t?t[2].toUpperCase():"MB"}},Ge=class o{customId=C();inputType=C();timespan=P(0);unit=P("MB");sizeOptions=P(Ye);readonly=P(!1);hasPerSecond=D(()=>{let t=this.inputType();return t&&Ue.includes(t)});onChange=()=>{};onTouched=()=>{};onChangeEffect=R(()=>{this.onChange(this.getValue())});writeValue(t){if(t){let e=Ze(t);e?queueMicrotask(()=>{this.timespan.set(e.size),this.unit.set(e.unit)}):(this.timespan.set(0),this.unit.set("MB"))}else this.timespan.set(0),this.unit.set("MB")}registerOnChange(t){this.onChange=t}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this.readonly.set(t)}getValue(){return`${this.timespan()}${this.unit()}`}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=J({type:o,selectors:[["app-size"]],inputs:{customId:[1,"customId"],inputType:[1,"inputType"]},features:[Me([{provide:Oe,useExisting:o,multi:!0}])],ngContentSelectors:Ke,decls:9,vars:10,consts:[[1,"label"],["type","number",3,"ngModelChange","id","ngModel","disabled"],["value","value","label","label",3,"options","readonly","isClearable"],["type","text",3,"ngModelChange","ngModel"]],template:function(e,i){e&1&&(q(qe),c(0,"div",0),w(1,0,["ngProjectAs","label",5,["label"]]),d(),c(2,"sh-form-field")(3,"input",1),$("ngModelChange",function(r){return k(i.timespan,r)||(i.timespan=r),r}),d(),w(4,1),w(5,2),d(),c(6,"sh-select",2)(7,"input",3),$("ngModelChange",function(r){return k(i.unit,r)||(i.unit=r),r}),d(),W(8,Qe,1,2,"ng-template"),d()),e&2&&(h(2),pe("readonly",i.readonly()||void 0),h(),O("id",i.customId()),B("ngModel",i.timespan),O("disabled",i.readonly()),h(3),K("--miw",0),O("options",i.sizeOptions())("readonly",i.readonly())("isClearable",!1),h(),B("ngModel",i.unit))},dependencies:[Be,te,ee,U,ye,Y,Z],styles:['[_nghost-%COMP%]{display:grid;grid-template-areas:"label label" "input unit";grid-template-columns:3fr 1fr;gap:.5rem;align-items:flex-end}[_nghost-%COMP%] .label[_ngcontent-%COMP%]{grid-area:label;grid-column:1/-1}[_nghost-%COMP%] sh-form-field[_ngcontent-%COMP%]{grid-area:input}[_nghost-%COMP%] sh-select[_ngcontent-%COMP%]{grid-area:unit}'],changeDetection:0})};var et=["treeContainer"],tt=["formRef"],it=[[["label"]],[["label"]],[["input"]]],nt=["label","label","input"],ot=o=>({children:o,level:0}),ze=o=>({$implicit:o}),rt=(o,t)=>({children:o,level:t}),st=()=>({maxWidth:"700px",width:"100%"}),lt=(o,t)=>t.id;function at(o,t){if(o&1){let e=L();c(0,"sh-button-group")(1,"button",19),x("click",function(){N(e);let n=u();return v(n.pathDiscoveryMethod.set("browse"))}),A(2,4),d(),c(3,"button",19),x("click",function(){N(e);let n=u();return v(n.pathDiscoveryMethod.set("path"))}),A(4,5),d()()}if(o&2){let e=u();h(),y("active",e.pathDiscoveryMethod()==="browse"),h(2),y("active",e.pathDiscoveryMethod()==="path")}}function ct(o,t){o&1&&X(0,"sh-progress-bar",12)}function dt(o,t){o&1&&(c(0,"sh-icon",24),b(1,"caret-down"),d())}function ut(o,t){o&1&&X(0,"sh-icon",24)}function pt(o,t){o&1&&(c(0,"sh-icon",24),b(1,"caret-right"),d())}function ht(o,t){o&1&&(c(0,"sh-icon",22),b(1,"folder-open"),d())}function _t(o,t){o&1&&(c(0,"sh-icon",22),b(1,"folder-user"),d())}function gt(o,t){o&1&&(c(0,"sh-icon",22),b(1,"file"),d())}function ft(o,t){o&1&&(c(0,"sh-icon",22),b(1,"folder"),d())}function mt(o,t){if(o&1&&(S(0,dt,2,0,"sh-icon",24)(1,ut,1,0,"sh-icon",24)(2,pt,2,0,"sh-icon",24),S(3,ht,2,0,"sh-icon",22)(4,_t,2,0,"sh-icon",22)(5,gt,2,0,"sh-icon",22)(6,ft,2,0,"sh-icon",22)),o&2){let e=u(2).$implicit;F(e.children.length?0:e.cls==="file"?1:2),h(3),F(e.children.length?3:e.id==="%HOME%"?4:e.cls==="file"?5:6)}}function Ct(o,t){o&1&&(c(0,"sh-icon",22),b(1,"desktop-tower"),d())}function Tt(o,t){o&1&&ne(0)}function Et(o,t){if(o&1&&W(0,Tt,1,0,"ng-container",13),o&2){let e=u(2).$implicit,i=u().$implicit;u();let n=re(7);O("ngTemplateOutlet",n)("ngTemplateOutletContext",Q(5,ze,ve(2,rt,e.children,i.level+1)))}}function Pt(o,t){if(o&1){let e=L();c(0,"div",20,3),x("click",function(){N(e);let n=u().$implicit,r=u(2);return v(r.toggleNode(n.id,n))}),c(2,"div",21),S(3,mt,7,2)(4,Ct,2,0,"sh-icon",22),d(),c(5,"div",23),x("click",function(n){N(e);let r=u().$implicit,a=u(2);return v(a.toggleSelectedNode(n,r))}),b(6),d()(),S(7,Et,1,7,"ng-container")}if(o&2){let e=u().$implicit,i=u().$implicit,n=u();y("accepted",e.accepted===!0)("active",e.evalState===n.TreeEvalEnum.Included)("indeterminate",e.isIndeterminate)("open",e.children.length)("usually-hidden",e.hidden)("root",i.level===0),h(2),y("file",e.cls==="file"),h(),F(e.id!=="/"?3:4),h(3),Pe(" ",e.text," "),h(),F(e.children.length>0?7:-1)}}function bt(o,t){if(o&1&&S(0,Pt,8,17),o&2){let e=t.$implicit,i=u(2);F(e.hidden&&i._showHiddenNodes()||!e.hidden?0:-1)}}function Mt(o,t){if(o&1&&(c(0,"sh-list"),he(1,bt,1,1,null,null,lt),d()),o&2){let e=t.$implicit;K("padding-left",e.level*.25,"rem"),h(),_e(e.children)}}function Nt(o,t){o&1&&ne(0)}function vt(o,t){if(o&1){let e=L();c(0,"sh-toggle",25),x("click",function(){N(e);let n=u();return v(n._showHiddenNodes.set(!n._showHiddenNodes()))}),A(1,6),d()}if(o&2){let e=u();y("active",e._showHiddenNodes()),h(),me(e.showFiles()?"files":"folders"),Ce(1)}}function St(o,t){if(o&1){let e=L();c(0,"button",26),x("click",function(){N(e);let n=u();return v(n.openCreateFolderDialog())}),A(1,7),d()}if(o&2){let e=u();O("disabled",!e.isCurrentPathFolder())}}function Ft(o,t){if(o&1){let e=L();c(0,"sh-dialog",27),$("isOpenChange",function(n){N(e);let r=u();return k(r.createFolderDialogOpen,n)||(r.createFolderDialogOpen=n),v(n)}),c(1,"header",28)(2,"h2"),A(3,8),d()(),c(4,"div",29)(5,"div"),b(6," Folder will be created under "),c(7,"pre"),b(8),d()(),c(9,"sh-form-field")(10,"textarea",30),$("ngModelChange",function(n){N(e);let r=u();return k(r.createFolderPath,n)||(r.createFolderPath=n),v(n)}),d()()(),c(11,"footer",31)(12,"button",32),x("click",function(){N(e);let n=u();return v(n.closeCreateFolderDialog(!1))}),b(13,"Cancel"),d(),c(14,"button",33),x("click",function(){N(e);let n=u();return v(n.closeCreateFolderDialog(!0))}),ge(15,9),X(16,"sh-icon"),fe(),d()()()}if(o&2){let e,i=u();B("isOpen",i.createFolderDialogOpen),O("options",Ne(5,st)),h(8),Ee(i.currentPath()),h(2),B("ngModel",i.createFolderPath),h(4),O("disabled",!((e=i.createFolderPath())!=null&&e.length))}}var He=(r=>(r[r.ExcludedByParent=-2]="ExcludedByParent",r[r.Excluded=-1]="Excluded",r[r.None=0]="None",r[r.Included=1]="Included",r[r.IncludedByParent=2]="IncludedByParent",r))(He||{}),M="/",ae=class o{#t=j($e);#n=j(Ve);#c=j(De);multiSelect=C(!1);disabled=C(!1);showFiles=C(!1);selectFiles=C(!1);accepts=C(null);startingPath=C(null);rootPaths=C([]);initialNodes=C([]);backupSettings=C(null);pathRefreshTrigger=C(!1);showHiddenNodes=C(!1);enableCreateFolder=C(!1);hideShortcuts=C(!1);includes=se();excludes=se();_showHiddenNodes=P(!1);createFolderDialogOpen=P(!1);createFolderPath=P(null);treeContainerRef=le("treeContainer");formRef=le("formRef");pathDiscoveryMethod=P("browse");isLoading=P(!1);currentPath=P("/");#o=P(null);treeSearchQuery=P("");treeNodes=P([]);pathDelimiter=D(()=>this.#n.systemInfo()?.DirectorySeparator??"");filterGroups=this.#n.filterGroups();isByBackupSettings=D(()=>{let t=this.backupSettings();return!(t===void 0||t?.id===void 0||t?.time===void 0)});searchableTreeNodes=D(()=>{let t=this.treeSearchQuery();return t?this.treeNodes().filter(e=>e.text?.toLowerCase().includes(t.toLowerCase())):this.treeNodes()});TreeEvalEnum=He;treeStructure=D(()=>{let t=this.showHiddenNodes(),e=this.currentPath().split("\0").filter(l=>l!==""&&l!==M),i=structuredClone(e);for(let l=0;l<i.length;l++){let m=i[l].slice(1);if(m.startsWith("{")&&m.endsWith("}")){let _=m.slice(1,-1),g=this.filterGroups?.FilterGroups[_];if(g&&g.length){let T=g.map(E=>`-${E}`);i.splice(l,1,...T)}}}let n=this.searchableTreeNodes(),r=this.rootPaths(),a=this.accepts(),f=this.pathDelimiter(),s=[];return r.length>0?s=r.map(l=>{let p=this.#r(i,l,"folder",null);return{id:l,resolvedpath:l,text:l,parentPath:"",children:[],evalState:p,isIndeterminate:!1,cls:this.#e(l,f)?"folder":"file"}}):s=[{id:M,resolvedpath:M,text:$localize`Computer`,parentPath:"",children:[],evalState:0,isIndeterminate:!1,cls:"folder"}],s.map(l=>{let p=new Map;if(!l.id)return;let m=l.id;a&&(l.accepted=!0),p.set(m,l);let _=r.length>0?n.filter(g=>g.parentPath.startsWith(m)):n;for(let g of _){if(!g.id)continue;let T=g.id;if(!g.cls||p.has(T))continue;let E=p.get(g.parentPath),V=g.hidden===!0&&t?0:this.#r(i,T,g.cls,E),I=z(G({},g),{isIndeterminate:this.isIndeterminate(i,T),evalState:V,children:[]});a&&(I.accepted=this.matchAccepts(a,I)),p.set(T,I),E&&E.children.push(I)}return l}),s});#d(t){let e=this.pathDelimiter();return t?t.endsWith(e)||t===M?t:t+e:M}#r(t,e,i,n){if(n&&n.evalState===-1)return-2;let r=0,a=this.pathDelimiter(),f=t.filter(p=>!p.startsWith("-")&&!p.startsWith("+")),s=t.filter(p=>p.startsWith("-")||p.startsWith("+")),l=this.multiSelect();if(f.length===0)return r;for(let p=0;p<f.length;p++){let m=f[p];if(e===m){r=1;break}if(!l||!this.#e(m,a))continue;if(e?.startsWith(m)){r=1;break}}if(s.length===0)return r;for(let p=0;p<s.length;p++){let m=s[p],_=m.slice(1),g=m.startsWith("-")?-1:1;if(this.#e(_,a)){if(i!=="folder")continue;if(e===_){r=g;break}}if(_.startsWith("*")&&_.endsWith(`*${a}`)){if(i!=="folder")continue;let E=_.slice(1,-2);if(E==="")break;if(e?.includes(E+a)){r=g;break}}if(_.startsWith("[.*")&&_.endsWith(`[^\\${a}]*]`)){if(i!=="file")continue;let E=_.slice(3,-7);if(new RegExp(E).test(e)){r=g;break}}if(_.startsWith("[")&&_.endsWith("]")){let E=_.slice(1,-1),V=this.translateCSharpRegex(E);if(new RegExp(`${V}`).test(e)){r=g;break}}if(_.startsWith("*.")){if(i!=="file"||_.replace("*.","").length===0)continue;if(this.#s(e,_,!0)){r=g;break}}if(_==="")continue;if(_===e){r=g;break}if(this.#s(e,_,!0)){r=g;break}}return r}translateCSharpRegex(t){let e=t;e=e.replace(/^@/,"");let i=/\(\?<(?<name>\w+)>(?<pattern>[^)]+)\)/g;return e=e.replace(i,(n,r,a)=>`(${a})`),e=e.replace(/\\/g,"\\\\"),e}isIndeterminate(t,e){return t.filter(i=>!i.startsWith("-")&&this.#e(i,this.pathDelimiter())).some(i=>i.startsWith(e))}isCurrentPathFolder(){let t=this.currentPath();return t?t.endsWith(this.pathDelimiter())||t.startsWith("%")&&t.endsWith("%")&&!t.includes(this.pathDelimiter()):!1}#s(t,e,i=!1){let n=e.replace(/\*/g,".*").replace(/\?/g,".").replace(/\[!([^\]]+)\]/g,"[^$1]");return new RegExp(`${n}${i?"$":""}`).test(t)}showHiddenNodesEffect=R(()=>this._showHiddenNodes.set(this.showHiddenNodes()));pathDiscoveryMethodEffect=R(()=>{let t=this.pathDiscoveryMethod(),e=this.#o();t==="browse"&&e&&this.currentPath.set(e.value)});matchAccepts(t,e){if(!t||e.cls==="folder"||e.id===M)return!0;let i=t.split(",");if(i.length===0)return!0;let n="."+e.id.slice(e.id.indexOf("."));return n?i.some(r=>n.endsWith(r)):!1}currentPathEffect=R(()=>{let t=this.#o();t&&(t.value=this.currentPath(),t.dispatchEvent(new Event("input")))});inputValueChangeAbortController=null;inputRefEffect=R(()=>{let t=this.formRef()?.nativeElement?.querySelector("input");t&&(this.#u(t),this.inputValueChangeAbortController&&this.inputValueChangeAbortController.abort(),this.inputValueChangeAbortController=new AbortController,t.addEventListener("inputValueChanged",e=>{this.currentPath.set(e.detail.value)},{signal:this.inputValueChangeAbortController.signal}),this.#o.set(t),t.autocomplete="off")});ngOnInit(){let t=this.startingPath();if(t)this.currentPath.set(t),this.#_(t);else{let e=this.rootPaths(),i=this.initialNodes();e&&e.length>0?(i&&i.length>0&&this.treeNodes.set(i.map(n=>({id:n.id,leaf:n.leaf,cls:n.cls,text:n.text,iconCls:n.iconCls,fileSize:n.fileSize,resolvedpath:n.resolvedpath,parentPath:this.getParentPath(n.id??"")}))),this.#i(null,e[0])):this.#i(null,M)}}getParentPath(t){let e=this.pathDelimiter(),i=t.split(e);return i.length<=1?M:(i.pop(),i.length!==0&&i.pop(),i.join(e)+e)}toggleSelectedNode(t,e){if(e.id===M||(t.stopPropagation(),e.evalState===-2))return;if(this.selectFiles()&&e.cls==="folder"){this.toggleNode(e.id,e);return}if(this.accepts()&&!e.accepted)return;let n=this.currentPath().split("\0").filter(s=>s!==""&&s!==M),a=this.isChildOfSelected(e)?`-${e.id}`:e.id,f=this.#e(e.id,this.pathDelimiter());if(this.multiSelect())if(n.includes(e.id))this.currentPath.set(n.filter(s=>s!==e.id&&!(f&&s.startsWith(a))).join("\0"));else if(n.some(s=>s==a))this.currentPath.set(n.filter(s=>s!==a).join("\0"));else{let s=f?n.filter(l=>!l.startsWith(e.id)):n;this.currentPath.set([...s,a].join("\0"))}else n.includes(e.id)?this.currentPath.set(n.filter(s=>s!==e.id).join("\0")):this.currentPath.set(e.id)}isChildOfSelected(t){return this.currentPath().split("\0").filter(i=>i!==""&&i!==M&&this.#e(i,this.pathDelimiter())).some(i=>t.id?.startsWith(i)||`-${t.id}`.startsWith(i))}toggleNode(t,e=null){e?.cls==="folder"&&(e?.children.length?this.treeNodes.update(i=>i.filter(n=>!n.id?.startsWith(e.id)||n.id===e.id)):this.#i(e,t))}openCreateFolderDialog(){return this.createFolderPath.set(null),this.createFolderDialogOpen.set(!0),!1}closeCreateFolderDialog(t){if(t&&this.createFolderPath()?.length&&this.isCurrentPathFolder()){let e=this.createFolderPath()?.trim();if(e){let i=this.currentPath(),n=this.#d(e),r=i+n;this.#t.postApiV1RemoteoperationCreate({requestBody:{path:"file://"+r}}).subscribe({next:()=>{this.currentPath.set(r),this.#i(null,i),setTimeout(()=>{this.#l()},500),this.createFolderDialogOpen.set(!1)},error:a=>{let f=a?.message?.match(/user-information\s*:\s*(.*?)(?:\s*,|$)/i),s=f?f[1]:a?.message||$localize`An error occurred while trying to create the folder.`;this.#c.open(We,{data:{title:$localize`Cannot create folder`,message:s,confirmText:$localize`OK`,cancelText:void 0}})}})}}else this.createFolderDialogOpen.set(!1);return!1}#l(){setTimeout(()=>{let e=this.treeContainerRef()?.nativeElement?.querySelector(".active");e&&e.scrollIntoView({behavior:"smooth",block:"center"})},100)}#u(t){return Object.defineProperty(t,"value",{configurable:!0,get(){return Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value").get.call(this)},set(e){return Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value").set.call(this,e),this.dispatchEvent(new CustomEvent("inputValueChanged",{bubbles:!0,cancelable:!0,detail:{value:e}})),e}}),t}#p(t){return this.#t.postApiV1Filesystem({showHidden:!0,requestBody:{path:t},onlyFolders:!this.showFiles()})}#h(t){let e=this.backupSettings();if(this.#n.hasV2ListOperations())return this.#t.postApiV2BackupListFolder({requestBody:{BackupId:e.id,Time:e.time,Paths:t?[t]:null,PageSize:0,Page:0}}).pipe(H(i=>i.Data??[]));{let i={id:e.id+"",prefixOnly:!1,folderContents:!0,time:e.time,filter:t?"@"+t:void 0};return this.#t.getApiV1BackupByIdFiles(i).pipe(H(n=>n.Files??[]))}}#a(t){return this.isByBackupSettings()?this.#h(t):this.#p(t)}#_(t){let e=this.pathDelimiter(),i=t.split("\0").filter(s=>s.startsWith("-")).map(s=>s.slice(1,-1)),r=t.split("\0").filter(s=>!s.startsWith("-")).filter(Boolean).map(s=>{let l=s.split(e);return l.at(-1)!==""&&l.pop(),l}),a=[M];r.forEach(s=>{s.forEach((l,p)=>{let m=s.slice(0,p+1).join(e);m!==""&&(a.includes(m)||a.push(m))})}),this.isLoading.set(!0);let f=a.map(s=>this.#a(s).pipe(H(l=>({status:"success",value:l,url:s})),ue(l=>ce({status:"error",value:l,url:s}))));de(f).pipe(ie(()=>this.isLoading.set(!1))).subscribe({next:s=>{let l=s.filter(m=>m.status==="success"),p=s.filter(m=>m.status==="error");this.treeNodes.update(m=>{let _=l.flatMap(T=>Array.isArray(T.value)?T.value.map(E=>z(G({},E),{parentPath:T.url})):[]),g=[...new Map([...m,..._].map(T=>[T.id,T])).values()];return this.#l(),this.hideShortcuts()?g.filter(T=>!T.id.startsWith("%")):g})}})}#e(t,e){return t.startsWith("%")&&t.endsWith("%")||t.endsWith(e)}#i(t=null,e=M){let i=this.pathDelimiter();this.isLoading.set(!0),this.#a(e).pipe(ie(()=>this.isLoading.set(!1))).subscribe({next:n=>{let r=this.isByBackupSettings()?n.map(a=>({text:a.Path.split(i).filter(f=>f!=="").pop(),id:a.Path,cls:this.#e(a.Path,i)?"folder":"file",leaf:t!==null,resolvedpath:a.Path,hidden:!1})):n;this.treeNodes.update(a=>{let f=r.map(l=>{let p=this.#e(l.id,i)?"folder":"file";return z(G({},l),{cls:p,parentPath:e})}),s=[...new Map([...a,...f].map(l=>[l.id,l])).values()];return this.hideShortcuts()?s.filter(l=>!l.id.startsWith("%")):s})}})}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=J({type:o,selectors:[["app-file-tree"]],viewQuery:function(e,i){e&1&&(oe(i.treeContainerRef,et,5),oe(i.formRef,tt,5)),e&2&&Te(2)},hostVars:2,hostBindings:function(e,i){e&2&&y("disabled",i.disabled())},inputs:{multiSelect:[1,"multiSelect"],disabled:[1,"disabled"],showFiles:[1,"showFiles"],selectFiles:[1,"selectFiles"],accepts:[1,"accepts"],startingPath:[1,"startingPath"],rootPaths:[1,"rootPaths"],initialNodes:[1,"initialNodes"],backupSettings:[1,"backupSettings"],pathRefreshTrigger:[1,"pathRefreshTrigger"],showHiddenNodes:[1,"showHiddenNodes"],enableCreateFolder:[1,"enableCreateFolder"],hideShortcuts:[1,"hideShortcuts"]},outputs:{includes:"includes",excludes:"excludes"},ngContentSelectors:nt,decls:18,vars:17,consts:()=>{let t;t=$localize` Browse path `;let e;e=$localize` Manually type path `;let i;i=$localize` Show hidden ${"\uFFFD0\uFFFD"}:INTERPOLATION: `;let n;n=$localize` Create folder `;let r;r=$localize`Enter new folder path`;let a;return a=$localize` Create folder ${"\uFFFD#16\uFFFD"}:START_TAG_SH_ICON:folder-plus${"\uFFFD/#16\uFFFD"}:CLOSE_TAG_SH_ICON:`,[["treeContainer",""],["recursiveTree",""],["formRef",""],["treeNode",""],t,e,i,n,r,a,[1,"section"],[1,"browse-files"],[1,"indeterminate","primary"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"footer"],[1,"primary","raised","browse-files-toggle",3,"active"],["shButton","","type","button",1,"small","create-folder",3,"disabled"],[1,"form-field"],[3,"isOpen","options"],["type","button",3,"click"],["action","",3,"click"],[1,"icon"],[1,"primary"],[1,"text",3,"click"],[1,"small"],[1,"primary","raised","browse-files-toggle",3,"click"],["shButton","","type","button",1,"small","create-folder",3,"click","disabled"],[3,"isOpenChange","isOpen","options"],["header",""],["content",""],["id","targetUrl","autocomplete","off",3,"ngModelChange","ngModel"],["footer",""],["shButton","","type","button",3,"click"],["shButton","",1,"raised","primary",3,"click","disabled"]]},template:function(e,i){if(e&1&&(q(it),S(0,at,5,4,"sh-button-group"),c(1,"div",10),w(2,0,["ngProjectAs","label",5,["label"]]),c(3,"div",11,0),S(5,ct,1,0,"sh-progress-bar",12),W(6,Mt,3,2,"ng-template",null,1,Se)(8,Nt,1,0,"ng-container",13),d(),c(9,"div",14),S(10,vt,2,3,"sh-toggle",15),S(11,St,2,1,"button",16),d()(),c(12,"div",17,2)(14,"sh-form-field"),w(15,1,["ngProjectAs","label",5,["label"]]),w(16,2,["ngProjectAs","input",5,["input"]]),d()(),S(17,Ft,17,6,"sh-dialog",18)),e&2){let n=re(7);F(i.multiSelect()?-1:0),h(),y("hidden",i.pathDiscoveryMethod()!=="browse"),h(2),y("visualize-accepted",i.accepts()),h(2),F(i.isLoading()?5:-1),h(3),O("ngTemplateOutlet",n)("ngTemplateOutletContext",Q(15,ze,Q(13,ot,i.treeStructure()))),h(2),F(!i.accepts()&&!i.isByBackupSettings()?10:-1),h(),F(i.enableCreateFolder()?11:-1),h(),y("hidden",i.pathDiscoveryMethod()!=="path"),h(5),F(i.createFolderDialogOpen()?17:-1)}},dependencies:[Ie,Re,ke,xe,te,Le,Ae,we,Fe,ee,U,Y,Z],styles:['[_nghost-%COMP%]{display:flex;flex-direction:column;gap:1rem}.disabled[_nghost-%COMP%]{opacity:.5;-webkit-user-select:none;user-select:none;pointer-events:none;position:relative}.disabled[_nghost-%COMP%]:before{content:"";position:absolute;inset:0;background:transparent}.fill[_nghost-%COMP%]{height:auto;overflow:hidden;flex:1 0}.fill[_nghost-%COMP%] .section[_ngcontent-%COMP%]{height:auto;overflow:hidden;flex:1 0;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto 1fr;grid-template-areas:"label toggle" "tree tree"}.fill[_nghost-%COMP%] .browse-files[_ngcontent-%COMP%]{resize:none;height:initial;grid-area:tree}.fill[_nghost-%COMP%] label[_ngcontent-%COMP%]{grid-area:label}.fill[_nghost-%COMP%] sh-toggle[_ngcontent-%COMP%]{grid-area:toggle;flex-direction:row-reverse}.section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.form-field.hidden[_ngcontent-%COMP%]{display:none}.browse-files[_ngcontent-%COMP%]{display:flex;gap:.5rem;padding:.5rem 1rem;height:12.5rem;border:1px solid var(--base-4);border-radius:var(--shape-3);overflow:auto;resize:vertical;background:var(--base-1);position:relative}.browse-files[_ngcontent-%COMP%] sh-progress-bar[_ngcontent-%COMP%]{position:absolute;top:0;left:0;right:0}.browse-files.visualize-accepted[_ngcontent-%COMP%] [action][_ngcontent-%COMP%]:not(.accepted){opacity:.5}.browse-files.visualize-accepted[_ngcontent-%COMP%] [action].accepted[_ngcontent-%COMP%]{opacity:1}.browse-files[_ngcontent-%COMP%] sh-list[_ngcontent-%COMP%]{--list-active-bg: var(--base-3);gap:.125rem;padding:0;height:min-content;min-width:min-content}.browse-files[_ngcontent-%COMP%] sh-list[_ngcontent-%COMP%] [action][_ngcontent-%COMP%]{padding:0;gap:0;border:1px solid transparent}.browse-files[_ngcontent-%COMP%] sh-list[_ngcontent-%COMP%] [action].active[_ngcontent-%COMP%]{border-color:transparent;--list-active-bg: var(--primary-2)}.browse-files[_ngcontent-%COMP%] sh-list[_ngcontent-%COMP%] [action].indeterminate[_ngcontent-%COMP%]{border-color:var(--primary-4)}.browse-files[_ngcontent-%COMP%] sh-list[_ngcontent-%COMP%] [action].usually-hidden[_ngcontent-%COMP%]{opacity:.6}.browse-files[_ngcontent-%COMP%] sh-list[_ngcontent-%COMP%] [action].root[_ngcontent-%COMP%]{gap:.25rem}.browse-files[_ngcontent-%COMP%] sh-list[_ngcontent-%COMP%] [action].root[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]:has(sh-icon:nth-child(2)){width:3rem}.browse-files[_ngcontent-%COMP%] sh-list[_ngcontent-%COMP%] [action].root[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{width:1.5rem}.browse-files[_ngcontent-%COMP%] sh-list[_ngcontent-%COMP%] [action][_ngcontent-%COMP%] .text[_ngcontent-%COMP%]{flex:1 0;height:100%;width:max-content;display:flex;align-items:center}.browse-files[_ngcontent-%COMP%] sh-list[_ngcontent-%COMP%] [action][_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{width:3rem;gap:.25rem;height:1.5rem;display:flex;align-items:center;justify-content:center;cursor:pointer}.browse-files[_ngcontent-%COMP%] sh-list[_ngcontent-%COMP%] [action][_ngcontent-%COMP%] .icon.file[_ngcontent-%COMP%]{width:3rem;padding:0 .25rem}.browse-files-toggle[_ngcontent-%COMP%]{color:var(--base-9)}.hidden[_ngcontent-%COMP%]{display:none}.footer[_ngcontent-%COMP%]{display:flex;flex-direction:row;justify-content:space-between;align-items:center}'],changeDetection:0})};export{Ye as a,Ze as b,Ge as c,ae as d};
1
+ import{a as We}from"./chunk-F2QQDU4N.js";import{a as Ve}from"./chunk-XE5OMGTJ.js";import{b as $e}from"./chunk-KBGIIJMM.js";import{A as Re,B as Ie,H as te,J as Le,L as Ae,P as Be,W as ke,a as Oe,c as U,e as Y,i as Z,k as ye,s as ee,u as xe,y as we,z as De}from"./chunk-LFRGO2IP.js";import{ea as Fe}from"./chunk-6DB3NZXR.js";import{$b as u,Ab as he,Ac as Me,B as ue,Bb as _e,Bc as Ne,Cb as O,Cc as Q,Db as c,Dc as ve,Eb as d,Fb as X,H as ie,Kc as Se,Lb as ne,Mb as L,Ra as h,Rc as D,Sc as R,Tb as ge,Ub as fe,Vb as A,Wb as me,Wc as se,Xb as Ce,Xc as C,Yc as le,Zb as x,_ as j,ac as q,bb as J,bc as w,da as N,ea as v,gb as W,gc as oe,hc as Te,ic as re,jc as K,kc as y,n as ce,nc as b,oa as P,oc as Ee,pc as Pe,qc as be,r as H,sc as B,tb as pe,tc as k,uc as $,wb as S,x as de,xb as F}from"./chunk-FAM42SZT.js";import{a as G,b as z}from"./chunk-EUDKD2JW.js";var qe=[[["label"]],[["","prefix",""]],[["","suffix",""]]],Ke=["label","[prefix]","[suffix]"];function Qe(o,t){if(o&1&&b(0),o&2){let e=t.$implicit,i=u();be("",e.label,"",i.hasPerSecond()?"/s":"")}}var Ue=["throttle-upload","throttle-download"],Ye=[{value:"B",label:"Bytes"},{value:"KB",label:"KB"},{value:"MB",label:"MB"},{value:"GB",label:"GB"},{value:"TB",label:"TB"},{value:"PB",label:"PB"}],Ze=o=>{if(!o||typeof o!="string"||o.length===0)return{size:0,unit:"MB"};let t=o.match(/^(\d+)(bytes|kb|mb|gb|tb|pb|b|kib|mib|gib|tib|pib)$/i);return t&&(t[2].toUpperCase()==="B"||t[2].toUpperCase()==="BYTES")?{size:1,unit:"KB"}:{size:t?parseInt(t[1],10):0,unit:t?t[2].toUpperCase():"MB"}},Ge=class o{customId=C();inputType=C();timespan=P(0);unit=P("MB");sizeOptions=P(Ye);readonly=P(!1);hasPerSecond=D(()=>{let t=this.inputType();return t&&Ue.includes(t)});onChange=()=>{};onTouched=()=>{};onChangeEffect=R(()=>{this.onChange(this.getValue())});writeValue(t){if(t){let e=Ze(t);e?queueMicrotask(()=>{this.timespan.set(e.size),this.unit.set(e.unit)}):(this.timespan.set(0),this.unit.set("MB"))}else this.timespan.set(0),this.unit.set("MB")}registerOnChange(t){this.onChange=t}registerOnTouched(t){this.onTouched=t}setDisabledState(t){this.readonly.set(t)}getValue(){return`${this.timespan()}${this.unit()}`}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=J({type:o,selectors:[["app-size"]],inputs:{customId:[1,"customId"],inputType:[1,"inputType"]},features:[Me([{provide:Oe,useExisting:o,multi:!0}])],ngContentSelectors:Ke,decls:9,vars:10,consts:[[1,"label"],["type","number",3,"ngModelChange","id","ngModel","disabled"],["value","value","label","label",3,"options","readonly","isClearable"],["type","text",3,"ngModelChange","ngModel"]],template:function(e,i){e&1&&(q(qe),c(0,"div",0),w(1,0,["ngProjectAs","label",5,["label"]]),d(),c(2,"sh-form-field")(3,"input",1),$("ngModelChange",function(r){return k(i.timespan,r)||(i.timespan=r),r}),d(),w(4,1),w(5,2),d(),c(6,"sh-select",2)(7,"input",3),$("ngModelChange",function(r){return k(i.unit,r)||(i.unit=r),r}),d(),W(8,Qe,1,2,"ng-template"),d()),e&2&&(h(2),pe("readonly",i.readonly()||void 0),h(),O("id",i.customId()),B("ngModel",i.timespan),O("disabled",i.readonly()),h(3),K("--miw",0),O("options",i.sizeOptions())("readonly",i.readonly())("isClearable",!1),h(),B("ngModel",i.unit))},dependencies:[Be,te,ee,U,ye,Y,Z],styles:['[_nghost-%COMP%]{display:grid;grid-template-areas:"label label" "input unit";grid-template-columns:3fr 1fr;gap:.5rem;align-items:flex-end}[_nghost-%COMP%] .label[_ngcontent-%COMP%]{grid-area:label;grid-column:1/-1}[_nghost-%COMP%] sh-form-field[_ngcontent-%COMP%]{grid-area:input}[_nghost-%COMP%] sh-select[_ngcontent-%COMP%]{grid-area:unit}'],changeDetection:0})};var et=["treeContainer"],tt=["formRef"],it=[[["label"]],[["label"]],[["input"]]],nt=["label","label","input"],ot=o=>({children:o,level:0}),ze=o=>({$implicit:o}),rt=(o,t)=>({children:o,level:t}),st=()=>({maxWidth:"700px",width:"100%"}),lt=(o,t)=>t.id;function at(o,t){if(o&1){let e=L();c(0,"sh-button-group")(1,"button",19),x("click",function(){N(e);let n=u();return v(n.pathDiscoveryMethod.set("browse"))}),A(2,4),d(),c(3,"button",19),x("click",function(){N(e);let n=u();return v(n.pathDiscoveryMethod.set("path"))}),A(4,5),d()()}if(o&2){let e=u();h(),y("active",e.pathDiscoveryMethod()==="browse"),h(2),y("active",e.pathDiscoveryMethod()==="path")}}function ct(o,t){o&1&&X(0,"sh-progress-bar",12)}function dt(o,t){o&1&&(c(0,"sh-icon",24),b(1,"caret-down"),d())}function ut(o,t){o&1&&X(0,"sh-icon",24)}function pt(o,t){o&1&&(c(0,"sh-icon",24),b(1,"caret-right"),d())}function ht(o,t){o&1&&(c(0,"sh-icon",22),b(1,"folder-open"),d())}function _t(o,t){o&1&&(c(0,"sh-icon",22),b(1,"folder-user"),d())}function gt(o,t){o&1&&(c(0,"sh-icon",22),b(1,"file"),d())}function ft(o,t){o&1&&(c(0,"sh-icon",22),b(1,"folder"),d())}function mt(o,t){if(o&1&&(S(0,dt,2,0,"sh-icon",24)(1,ut,1,0,"sh-icon",24)(2,pt,2,0,"sh-icon",24),S(3,ht,2,0,"sh-icon",22)(4,_t,2,0,"sh-icon",22)(5,gt,2,0,"sh-icon",22)(6,ft,2,0,"sh-icon",22)),o&2){let e=u(2).$implicit;F(e.children.length?0:e.cls==="file"?1:2),h(3),F(e.children.length?3:e.id==="%HOME%"?4:e.cls==="file"?5:6)}}function Ct(o,t){o&1&&(c(0,"sh-icon",22),b(1,"desktop-tower"),d())}function Tt(o,t){o&1&&ne(0)}function Et(o,t){if(o&1&&W(0,Tt,1,0,"ng-container",13),o&2){let e=u(2).$implicit,i=u().$implicit;u();let n=re(7);O("ngTemplateOutlet",n)("ngTemplateOutletContext",Q(5,ze,ve(2,rt,e.children,i.level+1)))}}function Pt(o,t){if(o&1){let e=L();c(0,"div",20,3),x("click",function(){N(e);let n=u().$implicit,r=u(2);return v(r.toggleNode(n.id,n))}),c(2,"div",21),S(3,mt,7,2)(4,Ct,2,0,"sh-icon",22),d(),c(5,"div",23),x("click",function(n){N(e);let r=u().$implicit,a=u(2);return v(a.toggleSelectedNode(n,r))}),b(6),d()(),S(7,Et,1,7,"ng-container")}if(o&2){let e=u().$implicit,i=u().$implicit,n=u();y("accepted",e.accepted===!0)("active",e.evalState===n.TreeEvalEnum.Included)("indeterminate",e.isIndeterminate)("open",e.children.length)("usually-hidden",e.hidden)("root",i.level===0),h(2),y("file",e.cls==="file"),h(),F(e.id!=="/"?3:4),h(3),Pe(" ",e.text," "),h(),F(e.children.length>0?7:-1)}}function bt(o,t){if(o&1&&S(0,Pt,8,17),o&2){let e=t.$implicit,i=u(2);F(e.hidden&&i._showHiddenNodes()||!e.hidden?0:-1)}}function Mt(o,t){if(o&1&&(c(0,"sh-list"),he(1,bt,1,1,null,null,lt),d()),o&2){let e=t.$implicit;K("padding-left",e.level*.25,"rem"),h(),_e(e.children)}}function Nt(o,t){o&1&&ne(0)}function vt(o,t){if(o&1){let e=L();c(0,"sh-toggle",25),x("click",function(){N(e);let n=u();return v(n._showHiddenNodes.set(!n._showHiddenNodes()))}),A(1,6),d()}if(o&2){let e=u();y("active",e._showHiddenNodes()),h(),me(e.showFiles()?"files":"folders"),Ce(1)}}function St(o,t){if(o&1){let e=L();c(0,"button",26),x("click",function(){N(e);let n=u();return v(n.openCreateFolderDialog())}),A(1,7),d()}if(o&2){let e=u();O("disabled",!e.isCurrentPathFolder())}}function Ft(o,t){if(o&1){let e=L();c(0,"sh-dialog",27),$("isOpenChange",function(n){N(e);let r=u();return k(r.createFolderDialogOpen,n)||(r.createFolderDialogOpen=n),v(n)}),c(1,"header",28)(2,"h2"),A(3,8),d()(),c(4,"div",29)(5,"div"),b(6," Folder will be created under "),c(7,"pre"),b(8),d()(),c(9,"sh-form-field")(10,"textarea",30),$("ngModelChange",function(n){N(e);let r=u();return k(r.createFolderPath,n)||(r.createFolderPath=n),v(n)}),d()()(),c(11,"footer",31)(12,"button",32),x("click",function(){N(e);let n=u();return v(n.closeCreateFolderDialog(!1))}),b(13,"Cancel"),d(),c(14,"button",33),x("click",function(){N(e);let n=u();return v(n.closeCreateFolderDialog(!0))}),ge(15,9),X(16,"sh-icon"),fe(),d()()()}if(o&2){let e,i=u();B("isOpen",i.createFolderDialogOpen),O("options",Ne(5,st)),h(8),Ee(i.currentPath()),h(2),B("ngModel",i.createFolderPath),h(4),O("disabled",!((e=i.createFolderPath())!=null&&e.length))}}var He=(r=>(r[r.ExcludedByParent=-2]="ExcludedByParent",r[r.Excluded=-1]="Excluded",r[r.None=0]="None",r[r.Included=1]="Included",r[r.IncludedByParent=2]="IncludedByParent",r))(He||{}),M="/",ae=class o{#t=j($e);#n=j(Ve);#c=j(De);multiSelect=C(!1);disabled=C(!1);showFiles=C(!1);selectFiles=C(!1);accepts=C(null);startingPath=C(null);rootPaths=C([]);initialNodes=C([]);backupSettings=C(null);pathRefreshTrigger=C(!1);showHiddenNodes=C(!1);enableCreateFolder=C(!1);hideShortcuts=C(!1);includes=se();excludes=se();_showHiddenNodes=P(!1);createFolderDialogOpen=P(!1);createFolderPath=P(null);treeContainerRef=le("treeContainer");formRef=le("formRef");pathDiscoveryMethod=P("browse");isLoading=P(!1);currentPath=P("/");#o=P(null);treeSearchQuery=P("");treeNodes=P([]);pathDelimiter=D(()=>this.#n.systemInfo()?.DirectorySeparator??"");filterGroups=this.#n.filterGroups();isByBackupSettings=D(()=>{let t=this.backupSettings();return!(t===void 0||t?.id===void 0||t?.time===void 0)});searchableTreeNodes=D(()=>{let t=this.treeSearchQuery();return t?this.treeNodes().filter(e=>e.text?.toLowerCase().includes(t.toLowerCase())):this.treeNodes()});TreeEvalEnum=He;treeStructure=D(()=>{let t=this.showHiddenNodes(),e=this.currentPath().split("\0").filter(l=>l!==""&&l!==M),i=structuredClone(e);for(let l=0;l<i.length;l++){let m=i[l].slice(1);if(m.startsWith("{")&&m.endsWith("}")){let _=m.slice(1,-1),g=this.filterGroups?.FilterGroups[_];if(g&&g.length){let T=g.map(E=>`-${E}`);i.splice(l,1,...T)}}}let n=this.searchableTreeNodes(),r=this.rootPaths(),a=this.accepts(),f=this.pathDelimiter(),s=[];return r.length>0?s=r.map(l=>{let p=this.#r(i,l,"folder",null);return{id:l,resolvedpath:l,text:l,parentPath:"",children:[],evalState:p,isIndeterminate:!1,cls:this.#e(l,f)?"folder":"file"}}):s=[{id:M,resolvedpath:M,text:$localize`Computer`,parentPath:"",children:[],evalState:0,isIndeterminate:!1,cls:"folder"}],s.map(l=>{let p=new Map;if(!l.id)return;let m=l.id;a&&(l.accepted=!0),p.set(m,l);let _=r.length>0?n.filter(g=>g.parentPath.startsWith(m)):n;for(let g of _){if(!g.id)continue;let T=g.id;if(!g.cls||p.has(T))continue;let E=p.get(g.parentPath),V=g.hidden===!0&&t?0:this.#r(i,T,g.cls,E),I=z(G({},g),{isIndeterminate:this.isIndeterminate(i,T),evalState:V,children:[]});a&&(I.accepted=this.matchAccepts(a,I)),p.set(T,I),E&&E.children.push(I)}return l}),s});#d(t){let e=this.pathDelimiter();return t?t.endsWith(e)||t===M?t:t+e:M}#r(t,e,i,n){if(n&&n.evalState===-1)return-2;let r=0,a=this.pathDelimiter(),f=t.filter(p=>!p.startsWith("-")&&!p.startsWith("+")),s=t.filter(p=>p.startsWith("-")||p.startsWith("+")),l=this.multiSelect();if(f.length===0)return r;for(let p=0;p<f.length;p++){let m=f[p];if(e===m){r=1;break}if(!l||!this.#e(m,a))continue;if(e?.startsWith(m)){r=1;break}}if(s.length===0)return r;for(let p=0;p<s.length;p++){let m=s[p],_=m.slice(1),g=m.startsWith("-")?-1:1;if(this.#e(_,a)){if(i!=="folder")continue;if(e===_){r=g;break}}if(_.startsWith("*")&&_.endsWith(`*${a}`)){if(i!=="folder")continue;let E=_.slice(1,-2);if(E==="")break;if(e?.includes(E+a)){r=g;break}}if(_.startsWith("[.*")&&_.endsWith(`[^\\${a}]*]`)){if(i!=="file")continue;let E=_.slice(3,-7);if(new RegExp(E).test(e)){r=g;break}}if(_.startsWith("[")&&_.endsWith("]")){let E=_.slice(1,-1),V=this.translateCSharpRegex(E);if(new RegExp(`${V}`).test(e)){r=g;break}}if(_.startsWith("*.")){if(i!=="file"||_.replace("*.","").length===0)continue;if(this.#s(e,_,!0)){r=g;break}}if(_==="")continue;if(_===e){r=g;break}if(this.#s(e,_,!0)){r=g;break}}return r}translateCSharpRegex(t){let e=t;e=e.replace(/^@/,"");let i=/\(\?<(?<name>\w+)>(?<pattern>[^)]+)\)/g;return e=e.replace(i,(n,r,a)=>`(${a})`),e=e.replace(/\\/g,"\\\\"),e}isIndeterminate(t,e){return t.filter(i=>!i.startsWith("-")&&this.#e(i,this.pathDelimiter())).some(i=>i.startsWith(e))}isCurrentPathFolder(){let t=this.currentPath();return t?t.endsWith(this.pathDelimiter())||t.startsWith("%")&&t.endsWith("%")&&!t.includes(this.pathDelimiter()):!1}#s(t,e,i=!1){let n=e.replace(/\*/g,".*").replace(/\?/g,".").replace(/\[!([^\]]+)\]/g,"[^$1]");return new RegExp(`${n}${i?"$":""}`).test(t)}showHiddenNodesEffect=R(()=>this._showHiddenNodes.set(this.showHiddenNodes()));pathDiscoveryMethodEffect=R(()=>{let t=this.pathDiscoveryMethod(),e=this.#o();t==="browse"&&e&&this.currentPath.set(e.value)});matchAccepts(t,e){if(!t||e.cls==="folder"||e.id===M)return!0;let i=t.split(",");if(i.length===0)return!0;let n="."+e.id.slice(e.id.indexOf("."));return n?i.some(r=>n.endsWith(r)):!1}currentPathEffect=R(()=>{let t=this.#o();t&&(t.value=this.currentPath(),t.dispatchEvent(new Event("input")))});inputValueChangeAbortController=null;inputRefEffect=R(()=>{let t=this.formRef()?.nativeElement?.querySelector("input");t&&(this.#u(t),this.inputValueChangeAbortController&&this.inputValueChangeAbortController.abort(),this.inputValueChangeAbortController=new AbortController,t.addEventListener("inputValueChanged",e=>{this.currentPath.set(e.detail.value)},{signal:this.inputValueChangeAbortController.signal}),this.#o.set(t),t.autocomplete="off")});ngOnInit(){let t=this.startingPath();if(t)this.currentPath.set(t),this.#_(t);else{let e=this.rootPaths(),i=this.initialNodes();e&&e.length>0?(i&&i.length>0&&this.treeNodes.set(i.map(n=>({id:n.id,leaf:n.leaf,cls:n.cls,text:n.text,iconCls:n.iconCls,fileSize:n.fileSize,resolvedpath:n.resolvedpath,parentPath:this.getParentPath(n.id??"")}))),this.#i(null,e[0])):this.#i(null,M)}}getParentPath(t){let e=this.pathDelimiter(),i=t.split(e);return i.length<=1?M:(i.pop(),i.length!==0&&i.pop(),i.join(e)+e)}toggleSelectedNode(t,e){if(e.id===M||(t.stopPropagation(),e.evalState===-2))return;if(this.selectFiles()&&e.cls==="folder"){this.toggleNode(e.id,e);return}if(this.accepts()&&!e.accepted)return;let n=this.currentPath().split("\0").filter(s=>s!==""&&s!==M),a=this.isChildOfSelected(e)?`-${e.id}`:e.id,f=this.#e(e.id,this.pathDelimiter());if(this.multiSelect())if(n.includes(e.id))this.currentPath.set(n.filter(s=>s!==e.id&&!(f&&s.startsWith(a))).join("\0"));else if(n.some(s=>s==a))this.currentPath.set(n.filter(s=>s!==a).join("\0"));else{let s=f?n.filter(l=>!l.startsWith(e.id)):n;this.currentPath.set([...s,a].join("\0"))}else n.includes(e.id)?this.currentPath.set(n.filter(s=>s!==e.id).join("\0")):this.currentPath.set(e.id)}isChildOfSelected(t){return this.currentPath().split("\0").filter(i=>i!==""&&i!==M&&this.#e(i,this.pathDelimiter())).some(i=>t.id?.startsWith(i)||`-${t.id}`.startsWith(i))}toggleNode(t,e=null){e?.cls==="folder"&&(e?.children.length?this.treeNodes.update(i=>i.filter(n=>!n.id?.startsWith(e.id)||n.id===e.id)):this.#i(e,t))}openCreateFolderDialog(){return this.createFolderPath.set(null),this.createFolderDialogOpen.set(!0),!1}closeCreateFolderDialog(t){if(t&&this.createFolderPath()?.length&&this.isCurrentPathFolder()){let e=this.createFolderPath()?.trim();if(e){let i=this.currentPath(),n=this.#d(e),r=i+n;this.#t.postApiV1RemoteoperationCreate({requestBody:{path:"file://"+r}}).subscribe({next:()=>{this.currentPath.set(r),this.#i(null,i),setTimeout(()=>{this.#l()},500),this.createFolderDialogOpen.set(!1)},error:a=>{let f=a?.message?.match(/user-information\s*:\s*(.*?)(?:\s*,|$)/i),s=f?f[1]:a?.message||$localize`An error occurred while trying to create the folder.`;this.#c.open(We,{data:{title:$localize`Cannot create folder`,message:s,confirmText:$localize`OK`,cancelText:void 0}})}})}}else this.createFolderDialogOpen.set(!1);return!1}#l(){setTimeout(()=>{let e=this.treeContainerRef()?.nativeElement?.querySelector(".active");e&&e.scrollIntoView({behavior:"smooth",block:"center"})},100)}#u(t){return Object.defineProperty(t,"value",{configurable:!0,get(){return Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value").get.call(this)},set(e){return Object.getOwnPropertyDescriptor(HTMLInputElement.prototype,"value").set.call(this,e),this.dispatchEvent(new CustomEvent("inputValueChanged",{bubbles:!0,cancelable:!0,detail:{value:e}})),e}}),t}#p(t){return this.#t.postApiV1Filesystem({showHidden:!0,requestBody:{path:t},onlyFolders:!this.showFiles()})}#h(t){let e=this.backupSettings();if(this.#n.hasV2ListOperations())return this.#t.postApiV2BackupListFolder({requestBody:{BackupId:e.id,Time:e.time,Paths:t?[t]:null,PageSize:0,Page:0}}).pipe(H(i=>i.Data??[]));{let i={id:e.id+"",prefixOnly:!1,folderContents:!0,time:e.time,filter:t?"@"+t:void 0};return this.#t.getApiV1BackupByIdFiles(i).pipe(H(n=>n.Files??[]))}}#a(t){return this.isByBackupSettings()?this.#h(t):this.#p(t)}#_(t){let e=this.pathDelimiter(),i=t.split("\0").filter(s=>s.startsWith("-")).map(s=>s.slice(1,-1)),r=t.split("\0").filter(s=>!s.startsWith("-")).filter(Boolean).map(s=>{let l=s.split(e);return l.at(-1)!==""&&l.pop(),l}),a=[M];r.forEach(s=>{s.forEach((l,p)=>{let m=s.slice(0,p+1).join(e);m!==""&&(a.includes(m)||a.push(m))})}),this.isLoading.set(!0);let f=a.map(s=>this.#a(s).pipe(H(l=>({status:"success",value:l,url:s})),ue(l=>ce({status:"error",value:l,url:s}))));de(f).pipe(ie(()=>this.isLoading.set(!1))).subscribe({next:s=>{let l=s.filter(m=>m.status==="success"),p=s.filter(m=>m.status==="error");this.treeNodes.update(m=>{let _=l.flatMap(T=>Array.isArray(T.value)?T.value.map(E=>z(G({},E),{parentPath:T.url})):[]),g=[...new Map([...m,..._].map(T=>[T.id,T])).values()];return this.#l(),this.hideShortcuts()?g.filter(T=>!T.id.startsWith("%")):g})}})}#e(t,e){return t.startsWith("%")&&t.endsWith("%")||t.endsWith(e)}#i(t=null,e=M){let i=this.pathDelimiter();this.isLoading.set(!0),this.#a(e).pipe(ie(()=>this.isLoading.set(!1))).subscribe({next:n=>{let r=this.isByBackupSettings()?n.map(a=>({text:a.Path.split(i).filter(f=>f!=="").pop(),id:a.Path,cls:this.#e(a.Path,i)?"folder":"file",leaf:t!==null,resolvedpath:a.Path,hidden:!1})):n;this.treeNodes.update(a=>{let f=r.map(l=>{let p=this.#e(l.id,i)?"folder":"file";return z(G({},l),{cls:p,parentPath:e})}),s=[...new Map([...a,...f].map(l=>[l.id,l])).values()];return this.hideShortcuts()?s.filter(l=>!l.id.startsWith("%")):s})}})}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=J({type:o,selectors:[["app-file-tree"]],viewQuery:function(e,i){e&1&&(oe(i.treeContainerRef,et,5),oe(i.formRef,tt,5)),e&2&&Te(2)},hostVars:2,hostBindings:function(e,i){e&2&&y("disabled",i.disabled())},inputs:{multiSelect:[1,"multiSelect"],disabled:[1,"disabled"],showFiles:[1,"showFiles"],selectFiles:[1,"selectFiles"],accepts:[1,"accepts"],startingPath:[1,"startingPath"],rootPaths:[1,"rootPaths"],initialNodes:[1,"initialNodes"],backupSettings:[1,"backupSettings"],pathRefreshTrigger:[1,"pathRefreshTrigger"],showHiddenNodes:[1,"showHiddenNodes"],enableCreateFolder:[1,"enableCreateFolder"],hideShortcuts:[1,"hideShortcuts"]},outputs:{includes:"includes",excludes:"excludes"},ngContentSelectors:nt,decls:18,vars:17,consts:()=>{let t;t=$localize` Browse path `;let e;e=$localize` Manually type path `;let i;i=$localize` Show hidden ${"\uFFFD0\uFFFD"}:INTERPOLATION: `;let n;n=$localize` Create folder `;let r;r=$localize`Enter new folder path`;let a;return a=$localize` Create folder ${"\uFFFD#16\uFFFD"}:START_TAG_SH_ICON:folder-plus${"\uFFFD/#16\uFFFD"}:CLOSE_TAG_SH_ICON:`,[["treeContainer",""],["recursiveTree",""],["formRef",""],["treeNode",""],t,e,i,n,r,a,[1,"section"],[1,"browse-files"],[1,"indeterminate","primary"],[4,"ngTemplateOutlet","ngTemplateOutletContext"],[1,"footer"],[1,"primary","raised","browse-files-toggle",3,"active"],["shButton","","type","button",1,"small","create-folder",3,"disabled"],[1,"form-field"],[3,"isOpen","options"],["type","button",3,"click"],["action","",3,"click"],[1,"icon"],[1,"primary"],[1,"text",3,"click"],[1,"small"],[1,"primary","raised","browse-files-toggle",3,"click"],["shButton","","type","button",1,"small","create-folder",3,"click","disabled"],[3,"isOpenChange","isOpen","options"],["header",""],["content",""],["id","targetUrl","autocomplete","off",3,"ngModelChange","ngModel"],["footer",""],["shButton","","type","button",3,"click"],["shButton","",1,"raised","primary",3,"click","disabled"]]},template:function(e,i){if(e&1&&(q(it),S(0,at,5,4,"sh-button-group"),c(1,"div",10),w(2,0,["ngProjectAs","label",5,["label"]]),c(3,"div",11,0),S(5,ct,1,0,"sh-progress-bar",12),W(6,Mt,3,2,"ng-template",null,1,Se)(8,Nt,1,0,"ng-container",13),d(),c(9,"div",14),S(10,vt,2,3,"sh-toggle",15),S(11,St,2,1,"button",16),d()(),c(12,"div",17,2)(14,"sh-form-field"),w(15,1,["ngProjectAs","label",5,["label"]]),w(16,2,["ngProjectAs","input",5,["input"]]),d()(),S(17,Ft,17,6,"sh-dialog",18)),e&2){let n=re(7);F(i.multiSelect()?-1:0),h(),y("hidden",i.pathDiscoveryMethod()!=="browse"),h(2),y("visualize-accepted",i.accepts()),h(2),F(i.isLoading()?5:-1),h(3),O("ngTemplateOutlet",n)("ngTemplateOutletContext",Q(15,ze,Q(13,ot,i.treeStructure()))),h(2),F(!i.accepts()&&!i.isByBackupSettings()?10:-1),h(),F(i.enableCreateFolder()?11:-1),h(),y("hidden",i.pathDiscoveryMethod()!=="path"),h(5),F(i.createFolderDialogOpen()?17:-1)}},dependencies:[Ie,Re,ke,xe,te,Le,Ae,we,Fe,ee,U,Y,Z],styles:['[_nghost-%COMP%]{display:flex;flex-direction:column;gap:1rem}.disabled[_nghost-%COMP%]{opacity:.5;-webkit-user-select:none;user-select:none;pointer-events:none;position:relative}.disabled[_nghost-%COMP%]:before{content:"";position:absolute;inset:0;background:transparent}.fill[_nghost-%COMP%]{height:auto;overflow:hidden;flex:1 0}.fill[_nghost-%COMP%] .section[_ngcontent-%COMP%]{height:auto;overflow:hidden;flex:1 0;display:grid;grid-template-columns:1fr auto;grid-template-rows:auto 1fr;grid-template-areas:"label toggle" "tree tree"}.fill[_nghost-%COMP%] .browse-files[_ngcontent-%COMP%]{resize:none;height:initial;grid-area:tree}.fill[_nghost-%COMP%] label[_ngcontent-%COMP%]{grid-area:label}.fill[_nghost-%COMP%] sh-toggle[_ngcontent-%COMP%]{grid-area:toggle;flex-direction:row-reverse}.section[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.form-field.hidden[_ngcontent-%COMP%]{display:none}.browse-files[_ngcontent-%COMP%]{display:flex;gap:.5rem;padding:.5rem 1rem;height:12.5rem;border:1px solid var(--base-4);border-radius:var(--shape-3);overflow:auto;resize:vertical;background:var(--base-1);position:relative}.browse-files[_ngcontent-%COMP%] sh-progress-bar[_ngcontent-%COMP%]{position:absolute;top:0;left:0;right:0}.browse-files.visualize-accepted[_ngcontent-%COMP%] [action][_ngcontent-%COMP%]:not(.accepted){opacity:.5}.browse-files.visualize-accepted[_ngcontent-%COMP%] [action].accepted[_ngcontent-%COMP%]{opacity:1}.browse-files[_ngcontent-%COMP%] sh-list[_ngcontent-%COMP%]{--list-active-bg: var(--base-3);gap:.125rem;padding:0;height:min-content;min-width:min-content}.browse-files[_ngcontent-%COMP%] sh-list[_ngcontent-%COMP%] [action][_ngcontent-%COMP%]{padding:0;gap:0;border:1px solid transparent}.browse-files[_ngcontent-%COMP%] sh-list[_ngcontent-%COMP%] [action].active[_ngcontent-%COMP%]{border-color:transparent;--list-active-bg: var(--primary-2)}.browse-files[_ngcontent-%COMP%] sh-list[_ngcontent-%COMP%] [action].indeterminate[_ngcontent-%COMP%]{border-color:var(--primary-4)}.browse-files[_ngcontent-%COMP%] sh-list[_ngcontent-%COMP%] [action].usually-hidden[_ngcontent-%COMP%]{opacity:.6}.browse-files[_ngcontent-%COMP%] sh-list[_ngcontent-%COMP%] [action].root[_ngcontent-%COMP%]{gap:.25rem}.browse-files[_ngcontent-%COMP%] sh-list[_ngcontent-%COMP%] [action].root[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]:has(sh-icon:nth-child(2)){width:3rem}.browse-files[_ngcontent-%COMP%] sh-list[_ngcontent-%COMP%] [action].root[_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{width:1.5rem}.browse-files[_ngcontent-%COMP%] sh-list[_ngcontent-%COMP%] [action][_ngcontent-%COMP%] .text[_ngcontent-%COMP%]{flex:1 0;height:100%;width:max-content;display:flex;align-items:center}.browse-files[_ngcontent-%COMP%] sh-list[_ngcontent-%COMP%] [action][_ngcontent-%COMP%] .icon[_ngcontent-%COMP%]{width:3rem;gap:.25rem;height:1.5rem;display:flex;align-items:center;justify-content:center;cursor:pointer}.browse-files[_ngcontent-%COMP%] sh-list[_ngcontent-%COMP%] [action][_ngcontent-%COMP%] .icon.file[_ngcontent-%COMP%]{width:3rem;padding:0 .25rem}.browse-files-toggle[_ngcontent-%COMP%]{color:var(--base-9)}.hidden[_ngcontent-%COMP%]{display:none}.footer[_ngcontent-%COMP%]{display:flex;flex-direction:row;justify-content:space-between;align-items:center}'],changeDetection:0})};export{Ye as a,Ze as b,Ge as c,ae as d};
@@ -1 +1 @@
1
- import{$ as ba,A as C,Aa as Ea,B as D,Ba as Fa,C as E,Ca as Ga,D as F,Da as Ha,E as G,Ea as Ia,F as H,Fa as Ja,G as I,Ga as Ka,H as J,Ha as La,I as K,Ia as Ma,J as L,Ja as Na,K as M,Ka as Oa,L as N,La as Pa,M as O,N as P,O as Q,P as R,Q as S,R as T,S as U,T as V,U as W,V as X,W as Y,X as Z,Y as _,Z as $,_ as aa,a as c,aa as ca,b as d,ba as da,c as e,ca as ea,d as f,da as fa,e as g,ea as ga,f as h,fa as ha,g as i,ga as ia,h as j,ha as ja,i as k,ia as ka,j as l,ja as la,k as m,ka as ma,l as n,la as na,m as o,ma as oa,n as p,na as pa,o as q,oa as qa,p as r,pa as ra,q as s,qa as sa,r as t,ra as ta,s as u,sa as ua,t as v,ta as va,u as w,ua as wa,v as x,va as za,w as y,wa as Aa,x as z,xa as Ba,y as A,ya as Ca,z as B,za as Da}from"./chunk-3ADKRLYD.js";import{a as xa,b as ya}from"./chunk-FPPZ4BUR.js";import{Ba as b,ja as a}from"./chunk-Y7PHGRGB.js";import"./chunk-EUDKD2JW.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,Ia 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,Pa 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,Oa as PRECONNECT_CHECK_BLOCKLIST,l as PathLocationStrategy,ta as PercentPipe,f as PlatformLocation,p as Plural,va as SlicePipe,ja as TitleCasePipe,r as TranslationWidth,ka as UpperCasePipe,Fa as VERSION,Ga as ViewportScroller,u as WeekDay,ya 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,Da as isPlatformBrowser,Ea as isPlatformServer,Ja as provideCloudflareLoader,Ka as provideCloudinaryLoader,La as provideImageKitLoader,Ma as provideImgixLoader,Na as provideNetlifyLoader,Aa as registerLocaleData,e as \u0275DomAdapter,Ha as \u0275NullViewportScroller,Ba as \u0275PLATFORM_BROWSER_ID,Ca as \u0275PLATFORM_SERVER_ID,za as \u0275PlatformNavigation,c as \u0275getDOM,i as \u0275normalizeQueryParams,xa as \u0275parseCookieValue,d as \u0275setRootDomAdapter};
1
+ import{$ as ba,A as C,Aa as Ea,B as D,Ba as Fa,C as E,Ca as Ga,D as F,Da as Ha,E as G,Ea as Ia,F as H,Fa as Ja,G as I,Ga as Ka,H as J,Ha as La,I as K,Ia as Ma,J as L,Ja as Na,K as M,Ka as Oa,L as N,La as Pa,M as O,N as P,O as Q,P as R,Q as S,R as T,S as U,T as V,U as W,V as X,W as Y,X as Z,Y as _,Z as $,_ as aa,a as c,aa as ca,b as d,ba as da,c as e,ca as ea,d as f,da as fa,e as g,ea as ga,f as h,fa as ha,g as i,ga as ia,h as j,ha as ja,i as k,ia as ka,j as l,ja as la,k as m,ka as ma,l as n,la as na,m as o,ma as oa,n as p,na as pa,o as q,oa as qa,p as r,pa as ra,q as s,qa as sa,r as t,ra as ta,s as u,sa as ua,t as v,ta as va,u as w,ua as wa,v as x,va as za,w as y,wa as Aa,x as z,xa as Ba,y as A,ya as Ca,z as B,za as Da}from"./chunk-6DB3NZXR.js";import{a as xa,b as ya}from"./chunk-FPPZ4BUR.js";import{Ba as b,ja as a}from"./chunk-FAM42SZT.js";import"./chunk-EUDKD2JW.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,Ia 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,Pa 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,Oa as PRECONNECT_CHECK_BLOCKLIST,l as PathLocationStrategy,ta as PercentPipe,f as PlatformLocation,p as Plural,va as SlicePipe,ja as TitleCasePipe,r as TranslationWidth,ka as UpperCasePipe,Fa as VERSION,Ga as ViewportScroller,u as WeekDay,ya 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,Da as isPlatformBrowser,Ea as isPlatformServer,Ja as provideCloudflareLoader,Ka as provideCloudinaryLoader,La as provideImageKitLoader,Ma as provideImgixLoader,Na as provideNetlifyLoader,Aa as registerLocaleData,e as \u0275DomAdapter,Ha as \u0275NullViewportScroller,Ba as \u0275PLATFORM_BROWSER_ID,Ca as \u0275PLATFORM_SERVER_ID,za as \u0275PlatformNavigation,c as \u0275getDOM,i as \u0275normalizeQueryParams,xa as \u0275parseCookieValue,d as \u0275setRootDomAdapter};
@@ -1,2 +1,2 @@
1
- import{a as ue}from"./chunk-KUP2T6AG.js";import{d as me}from"./chunk-WNHQELMC.js";import{c as de,d as Ce}from"./chunk-J64OAILA.js";import{a as ce}from"./chunk-ZQ56M63S.js";import{B as oe,G as re,J as ae,O as le,U as _e,V as se,X as pe,b as W,c as Y,e as Z,i as ee,k as te,s as ne,u as ie}from"./chunk-HJSCQF6V.js";import{ea as Q}from"./chunk-3ADKRLYD.js";import{Ab as P,Ac as j,Bb as c,Cb as a,Db as l,Eb as I,Ib as v,Jb as V,Jc as R,Kb as S,Lb as g,Qc as k,Ra as s,Sb as b,Tb as $,Ub as J,Wc as G,Yb as u,Zc as q,_ as K,_b as _,bb as H,da as d,ea as C,gb as f,hc as T,jc as B,mc as m,nc as A,oa as N,oc as D,uc as X,vc as z,wb as h,wc as x,xb as O,yb as M,zb as E}from"./chunk-Y7PHGRGB.js";import{a as w,b as L}from"./chunk-EUDKD2JW.js";var ge=[{name:"send-mail-to",type:"Email"},{name:"send-mail-from",type:"Email"},{name:"log-file",type:"FileTree"},{name:"compression-extension-file",type:"FileTree"},{name:"dbpath",type:"FileTree"},{name:"restore-path",type:"FileTree"},{name:"gpg-program-path",type:"FileTree"}];var xe=()=>({updateOn:"blur"});function Se(t,i){if(t&1){let e=g();a(0,"button",13),u("click",function(){d(e);let n=_();return C(n.showTextArea.set(!1))}),b(1,5),I(2,"sh-icon"),$(),l()}}function he(t,i){if(t&1){let e=g();a(0,"button",17,0),u("click",function(){let n=d(e).$implicit,r=_(3);return C(r.addSetting(n))}),a(2,"div",18)(3,"p"),m(4),l(),m(5),l()()}if(t&2){let e=i.$implicit;B("deprecated",e.deprecatedDescription),s(4),A(e.shortDescription),s(),D(" ",e.name," ")}}function Oe(t,i){if(t&1&&(a(0,"h3",9),m(1),l(),E(2,he,6,4,"button",16,M)),t&2){let e=i.$implicit;s(),A(e.displayName),s(),P(e.options)}}function Fe(t,i){if(t&1){let e=g();a(0,"sh-menu")(1,"button",19)(2,"sh-icon"),m(3,"dots-three-vertical"),l()(),v(4,15),a(5,"button",13),u("click",function(){d(e);let n=_(2);return C(n.addFreeTextSetting())}),b(6,7),I(7,"sh-icon"),$(),l(),a(8,"button",20),u("click",function(){d(e);let n=_(2);return C(n.showTextArea.set(!0))}),a(9,"sh-icon"),m(10,"link"),l(),m(11," Edit contents as text "),l(),V(),l()}}function we(t,i){if(t&1&&(a(0,"sh-menu",14)(1,"button",11),b(2,6),I(3,"sh-icon"),$(),l(),v(4,15),E(5,Oe,4,1,null,null,M),V(),l(),h(7,Fe,12,0,"sh-menu")),t&2){let e=_();c("searchable",!0),s(5),P(e.nonSelectedOptionsGrouped()),s(2),O(e.hasFreeTextSettings()?7:-1)}}function ye(t,i){if(t&1){let e=g();a(0,"textarea",21),u("ngModelChange",function(n){d(e);let r=_();return C(r.updateSettingsFromText(n))}),l()}if(t&2){let e=_();c("ngModel",e.settingsAsText())("ngModelOptions",j(2,xe))}}function Ie(t,i){t&1&&(a(0,"div",22),m(1,"Add a setting above to get started."),l())}function Ve(t,i){t&1&&(a(0,"sh-icon",30),m(1," warning-octagon "),l())}function Le(t,i){if(t&1&&(a(0,"sh-icon",31),m(1,"archive"),l()),t&2){let e=_(2).$implicit;c("shTooltip",e.FormView.deprecatedDescription)}}function Ne(t,i){if(t&1&&(a(0,"sh-icon",32),m(1,"question"),l()),t&2){let e=_(2).$implicit;c("shTooltip",e.FormView.longDescription)}}function Me(t,i){if(t&1&&(h(0,Ve,2,0,"sh-icon",30),a(1,"span"),m(2),l(),h(3,Le,2,1,"sh-icon",31)(4,Ne,2,1,"sh-icon",32)),t&2){let e=_().$implicit,o=x(1);O(o?0:-1),s(),B("deprecated",e.FormView.deprecatedDescription),s(),A(e.FormView.shortDescription),s(),O(e.FormView.deprecatedDescription?3:e.FormView.longDescription?4:-1)}}function Ee(t,i){t&1&&S(0)}function Pe(t,i){if(t&1){let e=g();a(0,"div",24)(1,"label"),f(2,Ee,1,0,"ng-container",33),l(),a(3,"div")(4,"sh-form-field")(5,"input",34),u("ngModelChange",function(n){d(e);let r=_().$implicit,p=_(2);return C(p.updateFreeTextSettingName(r,n))}),l(),a(6,"sh-icon",35),m(7,"rectangle-dashed"),l()()(),a(8,"div")(9,"sh-form-field")(10,"input",34),u("ngModelChange",function(n){d(e);let r=_().$implicit,p=_(2);return C(p.updateSettingValue(r,n))}),l(),a(11,"sh-icon",35),m(12,"textbox"),l()()()()}if(t&2){let e=_().$implicit,o=T(3);s(2),c("ngTemplateOutlet",o),s(3),c("ngModel",e.Name),s(5),c("ngModel",e.Value())}}function ve(t,i){t&1&&S(0)}function be(t,i){if(t&1){let e=g();a(0,"app-file-tree",25)(1,"label",36),f(2,ve,1,0,"ng-container",33),l(),a(3,"input",37),u("ngModelChange",function(n){d(e);let r=_().$implicit,p=_(2);return C(p.updateSettingValue(r,n))}),l()()}if(t&2){let e=_().$implicit,o=T(3),n=x(0);c("startingPath",e.Value())("accepts",e.FormView.accepts)("showFiles",!0)("showHiddenNodes",!0)("selectFiles",!0),s(),c("for",n),s(),c("ngTemplateOutlet",o),s(),c("id",n)("ngModel",e.Value())}}function $e(t,i){if(t&1){let e=g();a(0,"app-file-tree",26),I(1,"label",36),a(2,"input",37),u("ngModelChange",function(n){d(e);let r=_().$implicit,p=_(2);return C(p.updateSettingValue(r,n))}),l()()}if(t&2){let e=_().$implicit,o=x(0);c("startingPath",e.Value()),s(),c("for",o),s(),c("id",o)("ngModel",e.Value())}}function Ae(t,i){t&1&&S(0)}function De(t,i){t&1&&(a(0,"sh-icon",35),m(1,"link"),l())}function Re(t,i){t&1&&(a(0,"sh-icon",35),m(1,"hard-drives"),l())}function ke(t,i){t&1&&(a(0,"sh-icon",35),m(1,"jar"),l())}function Ge(t,i){t&1&&(a(0,"sh-icon",35),m(1,"envelope"),l())}function Be(t,i){t&1&&(a(0,"sh-icon",35),m(1,"textbox"),l())}function ze(t,i){if(t&1){let e=g();a(0,"sh-form-field")(1,"label",36),f(2,Ae,1,0,"ng-container",33),l(),a(3,"input",38),u("ngModelChange",function(n){d(e);let r=_().$implicit,p=_(2);return C(p.updateSettingValue(r,n))}),l(),h(4,De,2,0,"sh-icon",35)(5,Re,2,0,"sh-icon",35)(6,ke,2,0,"sh-icon",35)(7,Ge,2,0,"sh-icon",35)(8,Be,2,0,"sh-icon",35),l()}if(t&2){let e=_().$implicit,o=T(3),n=x(0);s(),c("for",n),s(),c("ngTemplateOutlet",o),s(),c("type",e.FormView.type==="Email"?"email":"text")("id",n)("ngModel",e.Value()),s(),O(e.FormView.type==="Path"?4:e.FormView.type==="Hostname"?5:e.FormView.type==="Bucketname"?6:e.FormView.type==="Email"?7:8)}}function Ue(t,i){t&1&&S(0)}function Ke(t,i){if(t&1){let e=g();a(0,"sh-icon",41),u("click",function(){d(e);let n=_(2).$implicit;return C(n.showPassword=!n.showPassword)}),m(1," eye "),l()}}function He(t,i){if(t&1){let e=g();a(0,"sh-icon",41),u("click",function(){d(e);let n=_(2).$implicit;return C(n.showPassword=!n.showPassword)}),m(1," eye-slash "),l()}}function Je(t,i){if(t&1){let e=g();a(0,"sh-form-field")(1,"label",36),f(2,Ue,1,0,"ng-container",33),l(),a(3,"input",39),u("ngModelChange",function(n){d(e);let r=_().$implicit,p=_(2);return C(p.updateSettingValue(r,n))}),l(),a(4,"sh-icon",35),m(5,"password"),l(),h(6,Ke,2,0,"sh-icon",40)(7,He,2,0,"sh-icon",40),l()}if(t&2){let e=_().$implicit,o=T(3),n=x(0);s(),c("for",n),s(),c("ngTemplateOutlet",o),s(),c("type",e.showPassword?"text":"password")("id",n)("ngModel",e.Value()),s(3),O(e.showPassword?6:7)}}function Xe(t,i){t&1&&S(0)}function je(t,i){if(t&1&&m(0),t&2){let e=i.$implicit;D(" ",e," ")}}function qe(t,i){if(t&1){let e=g();a(0,"sh-select",42)(1,"label",36),f(2,Xe,1,0,"ng-container",33),l(),a(3,"input",37),u("ngModelChange",function(n){d(e);let r=_().$implicit,p=_(2);return C(p.updateSettingValue(r,n))}),l()(),f(4,je,1,1,"ng-template",null,2,R)}if(t&2){let e=T(5),o=_().$implicit,n=T(3),r=x(0);c("options",o.FormView.options)("isClearable",!1)("optionTemplate",e),s(),c("for",r),s(),c("ngTemplateOutlet",n),s(),c("id",r)("ngModel",o.Value())}}function Qe(t,i){t&1&&S(0)}function We(t,i){if(t&1){let e=g();a(0,"app-size",43),u("ngModelChange",function(n){d(e);let r=_().$implicit,p=_(2);return C(p.updateSettingValue(r,n))}),a(1,"label",36),f(2,Qe,1,0,"ng-container",33),l()()}if(t&2){let e=_().$implicit,o=T(3),n=x(0);c("inputType",e.Name)("ngModel",e.Value())("customId",n),s(),c("for",n),s(),c("ngTemplateOutlet",o)}}function Ye(t,i){t&1&&S(0)}function Ze(t,i){if(t&1){let e=g();a(0,"sh-form-field")(1,"label",36),f(2,Ye,1,0,"ng-container",33),l(),a(3,"input",44),u("ngModelChange",function(n){d(e);let r=_().$implicit,p=_(2);return C(p.updateSettingValue(r,n))}),l(),a(4,"sh-icon",35),m(5,"numpad"),l()()}if(t&2){let e=_().$implicit,o=T(3),n=x(0);s(),c("for",n),s(),c("ngTemplateOutlet",o),s(),c("id",n)("ngModel",e.Value())}}function et(t,i){t&1&&S(0)}function tt(t,i){if(t&1){let e=g();a(0,"sh-toggle",28)(1,"label",36),f(2,et,1,0,"ng-container",33),l(),a(3,"input",45),u("ngModelChange",function(n){d(e);let r=_().$implicit,p=_(2);return C(p.updateSettingValue(r,n))}),l()()}if(t&2){let e=_().$implicit,o=T(3),n=x(0);s(),c("for",n),s(),c("ngTemplateOutlet",o),s(),c("id",n)("ngModel",e.Value())}}function nt(t,i){t&1&&S(0)}function it(t,i){if(t&1&&m(0),t&2){let e=i.$implicit;D(" ",e," ")}}function ot(t,i){if(t&1){let e=g();a(0,"sh-select",46)(1,"label",36),f(2,nt,1,0,"ng-container",33),l(),a(3,"input",47),u("ngModelChange",function(n){d(e);let r=_().$implicit,p=_(2);return C(p.updateSettingValue(r,n))}),l()(),f(4,it,1,1,"ng-template",null,3,R)}if(t&2){let e=T(5),o=_().$implicit,n=T(3),r=x(0);c("options",o.FormView.options)("selectMultiple",!0)("optionTemplate",e),s(),c("for",r),s(),c("ngTemplateOutlet",n),s(),c("ngModel",o.Value())}}function rt(t,i){t&1&&S(0)}function at(t,i){if(t&1){let e=g();a(0,"app-timespan",43),u("ngModelChange",function(n){d(e);let r=_().$implicit,p=_(2);return C(p.updateSettingValue(r,n))}),a(1,"label",36),f(2,rt,1,0,"ng-container",33),l()()}if(t&2){let e=_().$implicit,o=T(3),n=x(0);c("inputType",e.Name)("ngModel",e.Value())("customId",n),s(),c("for",n),s(),c("ngTemplateOutlet",o)}}function lt(t,i){if(t&1){let e=g();X(0)(1),f(2,Me,5,5,"ng-template",null,1,R),a(4,"div",23),h(5,Pe,13,3,"div",24)(6,be,4,9,"app-file-tree",25)(7,$e,3,4,"app-file-tree",26)(8,ze,9,6,"sh-form-field")(9,Je,8,6,"sh-form-field")(10,qe,6,7)(11,We,3,5,"app-size",27)(12,Ze,6,4,"sh-form-field")(13,tt,4,4,"sh-toggle",28)(14,ot,6,6)(15,at,3,5,"app-timespan",27),a(16,"button",29),u("click",function(){let n=d(e).$implicit,r=_(2);return C(r.removeSetting(n))}),a(17,"sh-icon"),m(18,"x-bold"),l()()()}if(t&2){let e=i.$implicit,o=i.$index,n=_(2);z("destination-"+e.Name+o),s(),z(n.inAppOptions(e.Name)),s(4),O(e.FormView.type==="FreeText"?5:e.FormView.type==="FileTree"?6:e.FormView.type==="FolderTree"?7:e.FormView.type==="String"||e.FormView.type==="Path"||e.FormView.type==="Decimal"||e.FormView.type==="Email"||e.FormView.type==="Hostname"||e.FormView.type==="Bucketname"?8:e.FormView.type==="Password"?9:e.FormView.type==="Enumeration"?10:e.FormView.type==="Size"?11:e.FormView.type==="Integer"?12:e.FormView.type==="Boolean"?13:e.FormView.type==="Flags"?14:e.FormView.type==="Timespan"||e.FormView.type==="DateTime"?15:-1)}}function _t(t,i){if(t&1&&(h(0,Ie,2,0,"div",22),E(1,lt,19,3,null,null,M)),t&2){let e=_();O(e.selectedSettings().length===0?0:-1),s(),P(e.selectedSettings())}}var fe=class t{#e=K(ce);options=q.required();hiddenOptions=G([]);hasFreeTextSettings=G(!1);applicationOptions=G();showTextArea=N(!1);allOptionsGrouped=this.#e.allOptionsGrouped;allOptions=this.#e.allOptions;selectedSettings=k(()=>{let i=this.hiddenOptions();return this.options().map(n=>{let r=this.allOptions().find(F=>F.name===n.Name?.replace("--","")),p=n.Value??"";if(r&&i.includes(r.name))return null;if(r){if(r.type==="Boolean"&&(p=this.isTrue(p)),r.type==="Integer"&&(p=parseInt(p)||0),r.type==="Enumeration"&&r.options){let y=p?.trim().toLowerCase(),U=r.options.find(Te=>(Te??"").trim().toLocaleLowerCase()===y);U&&(p=U)}let F=ge.find(y=>y.name===r?.name);return F&&(r=w(w({},r),F)),L(w({},n),{Value:N(p),FormView:r})}else if(this.hasFreeTextSettings())return L(w({},n),{Value:N(p),FormView:{name:n.Name,type:"FreeText",shortDescription:"Custom settings argument",longDescription:"Custom settings argument"}});return null}).filter(n=>n!==null)});nonSelectedOptionsGrouped=k(()=>{let i=this.options().map(o=>o.Name?.replace("--","")),e=this.hiddenOptions();return this.allOptionsGrouped().map(o=>L(w({},o),{options:o.options.filter(n=>!i.includes(n.name)&&!e.includes(n.name))})).filter(o=>o.options.length>0)});settingsAsText=k(()=>this.selectedSettings().map(i=>{let e=i.Value(),o="";return typeof e=="boolean"?o=this.isTrue(e)?"True":"False":(typeof e=="number"||e!=null)&&(o=e.toString()),`${i.Name??""}=${o}`}).join(`
1
+ import{a as ue}from"./chunk-OLOFMEQN.js";import{d as me}from"./chunk-4BGVLUYV.js";import{c as de,d as Ce}from"./chunk-VKR5DJQG.js";import{a as ce}from"./chunk-XE5OMGTJ.js";import{B as oe,H as re,K as ae,P as le,V as _e,W as se,Y as pe,b as W,c as Y,e as Z,i as ee,k as te,s as ne,u as ie}from"./chunk-LFRGO2IP.js";import{ea as Q}from"./chunk-6DB3NZXR.js";import{$b as _,Ab as E,Bb as P,Bc as j,Cb as c,Db as a,Eb as l,Fb as I,Jb as v,Kb as V,Kc as R,Lb as S,Mb as g,Ra as s,Rc as k,Tb as b,Ub as $,Vb as J,Xc as G,Zb as u,_ as K,_c as q,bb as H,da as d,ea as C,gb as f,ic as T,kc as B,nc as m,oa as N,oc as A,pc as D,vc as X,wb as h,wc as z,xb as O,xc as x,yb as M}from"./chunk-FAM42SZT.js";import{a as w,b as L}from"./chunk-EUDKD2JW.js";var ge=[{name:"send-mail-to",type:"Email"},{name:"send-mail-from",type:"Email"},{name:"log-file",type:"FileTree"},{name:"compression-extension-file",type:"FileTree"},{name:"dbpath",type:"FileTree"},{name:"restore-path",type:"FileTree"},{name:"gpg-program-path",type:"FileTree"}];var xe=()=>({updateOn:"blur"});function Se(t,i){if(t&1){let e=g();a(0,"button",13),u("click",function(){d(e);let n=_();return C(n.showTextArea.set(!1))}),b(1,5),I(2,"sh-icon"),$(),l()}}function he(t,i){if(t&1){let e=g();a(0,"button",17,0),u("click",function(){let n=d(e).$implicit,r=_(3);return C(r.addSetting(n))}),a(2,"div",18)(3,"p"),m(4),l(),m(5),l()()}if(t&2){let e=i.$implicit;B("deprecated",e.deprecatedDescription),s(4),A(e.shortDescription),s(),D(" ",e.name," ")}}function Oe(t,i){if(t&1&&(a(0,"h3",9),m(1),l(),E(2,he,6,4,"button",16,M)),t&2){let e=i.$implicit;s(),A(e.displayName),s(),P(e.options)}}function Fe(t,i){if(t&1){let e=g();a(0,"sh-menu")(1,"button",19)(2,"sh-icon"),m(3,"dots-three-vertical"),l()(),v(4,15),a(5,"button",13),u("click",function(){d(e);let n=_(2);return C(n.addFreeTextSetting())}),b(6,7),I(7,"sh-icon"),$(),l(),a(8,"button",20),u("click",function(){d(e);let n=_(2);return C(n.showTextArea.set(!0))}),a(9,"sh-icon"),m(10,"link"),l(),m(11," Edit contents as text "),l(),V(),l()}}function we(t,i){if(t&1&&(a(0,"sh-menu",14)(1,"button",11),b(2,6),I(3,"sh-icon"),$(),l(),v(4,15),E(5,Oe,4,1,null,null,M),V(),l(),h(7,Fe,12,0,"sh-menu")),t&2){let e=_();c("searchable",!0),s(5),P(e.nonSelectedOptionsGrouped()),s(2),O(e.hasFreeTextSettings()?7:-1)}}function ye(t,i){if(t&1){let e=g();a(0,"textarea",21),u("ngModelChange",function(n){d(e);let r=_();return C(r.updateSettingsFromText(n))}),l()}if(t&2){let e=_();c("ngModel",e.settingsAsText())("ngModelOptions",j(2,xe))}}function Ie(t,i){t&1&&(a(0,"div",22),m(1,"Add a setting above to get started."),l())}function Ve(t,i){t&1&&(a(0,"sh-icon",30),m(1," warning-octagon "),l())}function Le(t,i){if(t&1&&(a(0,"sh-icon",31),m(1,"archive"),l()),t&2){let e=_(2).$implicit;c("shTooltip",e.FormView.deprecatedDescription)}}function Ne(t,i){if(t&1&&(a(0,"sh-icon",32),m(1,"question"),l()),t&2){let e=_(2).$implicit;c("shTooltip",e.FormView.longDescription)}}function Me(t,i){if(t&1&&(h(0,Ve,2,0,"sh-icon",30),a(1,"span"),m(2),l(),h(3,Le,2,1,"sh-icon",31)(4,Ne,2,1,"sh-icon",32)),t&2){let e=_().$implicit,o=x(1);O(o?0:-1),s(),B("deprecated",e.FormView.deprecatedDescription),s(),A(e.FormView.shortDescription),s(),O(e.FormView.deprecatedDescription?3:e.FormView.longDescription?4:-1)}}function Ee(t,i){t&1&&S(0)}function Pe(t,i){if(t&1){let e=g();a(0,"div",24)(1,"label"),f(2,Ee,1,0,"ng-container",33),l(),a(3,"div")(4,"sh-form-field")(5,"input",34),u("ngModelChange",function(n){d(e);let r=_().$implicit,p=_(2);return C(p.updateFreeTextSettingName(r,n))}),l(),a(6,"sh-icon",35),m(7,"rectangle-dashed"),l()()(),a(8,"div")(9,"sh-form-field")(10,"input",34),u("ngModelChange",function(n){d(e);let r=_().$implicit,p=_(2);return C(p.updateSettingValue(r,n))}),l(),a(11,"sh-icon",35),m(12,"textbox"),l()()()()}if(t&2){let e=_().$implicit,o=T(3);s(2),c("ngTemplateOutlet",o),s(3),c("ngModel",e.Name),s(5),c("ngModel",e.Value())}}function ve(t,i){t&1&&S(0)}function be(t,i){if(t&1){let e=g();a(0,"app-file-tree",25)(1,"label",36),f(2,ve,1,0,"ng-container",33),l(),a(3,"input",37),u("ngModelChange",function(n){d(e);let r=_().$implicit,p=_(2);return C(p.updateSettingValue(r,n))}),l()()}if(t&2){let e=_().$implicit,o=T(3),n=x(0);c("startingPath",e.Value())("accepts",e.FormView.accepts)("showFiles",!0)("showHiddenNodes",!0)("selectFiles",!0),s(),c("for",n),s(),c("ngTemplateOutlet",o),s(),c("id",n)("ngModel",e.Value())}}function $e(t,i){if(t&1){let e=g();a(0,"app-file-tree",26),I(1,"label",36),a(2,"input",37),u("ngModelChange",function(n){d(e);let r=_().$implicit,p=_(2);return C(p.updateSettingValue(r,n))}),l()()}if(t&2){let e=_().$implicit,o=x(0);c("startingPath",e.Value()),s(),c("for",o),s(),c("id",o)("ngModel",e.Value())}}function Ae(t,i){t&1&&S(0)}function De(t,i){t&1&&(a(0,"sh-icon",35),m(1,"link"),l())}function Re(t,i){t&1&&(a(0,"sh-icon",35),m(1,"hard-drives"),l())}function ke(t,i){t&1&&(a(0,"sh-icon",35),m(1,"jar"),l())}function Ge(t,i){t&1&&(a(0,"sh-icon",35),m(1,"envelope"),l())}function Be(t,i){t&1&&(a(0,"sh-icon",35),m(1,"textbox"),l())}function ze(t,i){if(t&1){let e=g();a(0,"sh-form-field")(1,"label",36),f(2,Ae,1,0,"ng-container",33),l(),a(3,"input",38),u("ngModelChange",function(n){d(e);let r=_().$implicit,p=_(2);return C(p.updateSettingValue(r,n))}),l(),h(4,De,2,0,"sh-icon",35)(5,Re,2,0,"sh-icon",35)(6,ke,2,0,"sh-icon",35)(7,Ge,2,0,"sh-icon",35)(8,Be,2,0,"sh-icon",35),l()}if(t&2){let e=_().$implicit,o=T(3),n=x(0);s(),c("for",n),s(),c("ngTemplateOutlet",o),s(),c("type",e.FormView.type==="Email"?"email":"text")("id",n)("ngModel",e.Value()),s(),O(e.FormView.type==="Path"?4:e.FormView.type==="Hostname"?5:e.FormView.type==="Bucketname"?6:e.FormView.type==="Email"?7:8)}}function Ue(t,i){t&1&&S(0)}function Ke(t,i){if(t&1){let e=g();a(0,"sh-icon",41),u("click",function(){d(e);let n=_(2).$implicit;return C(n.showPassword=!n.showPassword)}),m(1," eye "),l()}}function He(t,i){if(t&1){let e=g();a(0,"sh-icon",41),u("click",function(){d(e);let n=_(2).$implicit;return C(n.showPassword=!n.showPassword)}),m(1," eye-slash "),l()}}function Je(t,i){if(t&1){let e=g();a(0,"sh-form-field")(1,"label",36),f(2,Ue,1,0,"ng-container",33),l(),a(3,"input",39),u("ngModelChange",function(n){d(e);let r=_().$implicit,p=_(2);return C(p.updateSettingValue(r,n))}),l(),a(4,"sh-icon",35),m(5,"password"),l(),h(6,Ke,2,0,"sh-icon",40)(7,He,2,0,"sh-icon",40),l()}if(t&2){let e=_().$implicit,o=T(3),n=x(0);s(),c("for",n),s(),c("ngTemplateOutlet",o),s(),c("type",e.showPassword?"text":"password")("id",n)("ngModel",e.Value()),s(3),O(e.showPassword?6:7)}}function Xe(t,i){t&1&&S(0)}function je(t,i){if(t&1&&m(0),t&2){let e=i.$implicit;D(" ",e," ")}}function qe(t,i){if(t&1){let e=g();a(0,"sh-select",42)(1,"label",36),f(2,Xe,1,0,"ng-container",33),l(),a(3,"input",37),u("ngModelChange",function(n){d(e);let r=_().$implicit,p=_(2);return C(p.updateSettingValue(r,n))}),l()(),f(4,je,1,1,"ng-template",null,2,R)}if(t&2){let e=T(5),o=_().$implicit,n=T(3),r=x(0);c("options",o.FormView.options)("isClearable",!1)("optionTemplate",e),s(),c("for",r),s(),c("ngTemplateOutlet",n),s(),c("id",r)("ngModel",o.Value())}}function Qe(t,i){t&1&&S(0)}function We(t,i){if(t&1){let e=g();a(0,"app-size",43),u("ngModelChange",function(n){d(e);let r=_().$implicit,p=_(2);return C(p.updateSettingValue(r,n))}),a(1,"label",36),f(2,Qe,1,0,"ng-container",33),l()()}if(t&2){let e=_().$implicit,o=T(3),n=x(0);c("inputType",e.Name)("ngModel",e.Value())("customId",n),s(),c("for",n),s(),c("ngTemplateOutlet",o)}}function Ye(t,i){t&1&&S(0)}function Ze(t,i){if(t&1){let e=g();a(0,"sh-form-field")(1,"label",36),f(2,Ye,1,0,"ng-container",33),l(),a(3,"input",44),u("ngModelChange",function(n){d(e);let r=_().$implicit,p=_(2);return C(p.updateSettingValue(r,n))}),l(),a(4,"sh-icon",35),m(5,"numpad"),l()()}if(t&2){let e=_().$implicit,o=T(3),n=x(0);s(),c("for",n),s(),c("ngTemplateOutlet",o),s(),c("id",n)("ngModel",e.Value())}}function et(t,i){t&1&&S(0)}function tt(t,i){if(t&1){let e=g();a(0,"sh-toggle",28)(1,"label",36),f(2,et,1,0,"ng-container",33),l(),a(3,"input",45),u("ngModelChange",function(n){d(e);let r=_().$implicit,p=_(2);return C(p.updateSettingValue(r,n))}),l()()}if(t&2){let e=_().$implicit,o=T(3),n=x(0);s(),c("for",n),s(),c("ngTemplateOutlet",o),s(),c("id",n)("ngModel",e.Value())}}function nt(t,i){t&1&&S(0)}function it(t,i){if(t&1&&m(0),t&2){let e=i.$implicit;D(" ",e," ")}}function ot(t,i){if(t&1){let e=g();a(0,"sh-select",46)(1,"label",36),f(2,nt,1,0,"ng-container",33),l(),a(3,"input",47),u("ngModelChange",function(n){d(e);let r=_().$implicit,p=_(2);return C(p.updateSettingValue(r,n))}),l()(),f(4,it,1,1,"ng-template",null,3,R)}if(t&2){let e=T(5),o=_().$implicit,n=T(3),r=x(0);c("options",o.FormView.options)("selectMultiple",!0)("optionTemplate",e),s(),c("for",r),s(),c("ngTemplateOutlet",n),s(),c("ngModel",o.Value())}}function rt(t,i){t&1&&S(0)}function at(t,i){if(t&1){let e=g();a(0,"app-timespan",43),u("ngModelChange",function(n){d(e);let r=_().$implicit,p=_(2);return C(p.updateSettingValue(r,n))}),a(1,"label",36),f(2,rt,1,0,"ng-container",33),l()()}if(t&2){let e=_().$implicit,o=T(3),n=x(0);c("inputType",e.Name)("ngModel",e.Value())("customId",n),s(),c("for",n),s(),c("ngTemplateOutlet",o)}}function lt(t,i){if(t&1){let e=g();X(0)(1),f(2,Me,5,5,"ng-template",null,1,R),a(4,"div",23),h(5,Pe,13,3,"div",24)(6,be,4,9,"app-file-tree",25)(7,$e,3,4,"app-file-tree",26)(8,ze,9,6,"sh-form-field")(9,Je,8,6,"sh-form-field")(10,qe,6,7)(11,We,3,5,"app-size",27)(12,Ze,6,4,"sh-form-field")(13,tt,4,4,"sh-toggle",28)(14,ot,6,6)(15,at,3,5,"app-timespan",27),a(16,"button",29),u("click",function(){let n=d(e).$implicit,r=_(2);return C(r.removeSetting(n))}),a(17,"sh-icon"),m(18,"x-bold"),l()()()}if(t&2){let e=i.$implicit,o=i.$index,n=_(2);z("destination-"+e.Name+o),s(),z(n.inAppOptions(e.Name)),s(4),O(e.FormView.type==="FreeText"?5:e.FormView.type==="FileTree"?6:e.FormView.type==="FolderTree"?7:e.FormView.type==="String"||e.FormView.type==="Path"||e.FormView.type==="Decimal"||e.FormView.type==="Email"||e.FormView.type==="Hostname"||e.FormView.type==="Bucketname"?8:e.FormView.type==="Password"?9:e.FormView.type==="Enumeration"?10:e.FormView.type==="Size"?11:e.FormView.type==="Integer"?12:e.FormView.type==="Boolean"?13:e.FormView.type==="Flags"?14:e.FormView.type==="Timespan"||e.FormView.type==="DateTime"?15:-1)}}function _t(t,i){if(t&1&&(h(0,Ie,2,0,"div",22),E(1,lt,19,3,null,null,M)),t&2){let e=_();O(e.selectedSettings().length===0?0:-1),s(),P(e.selectedSettings())}}var fe=class t{#e=K(ce);options=q.required();hiddenOptions=G([]);hasFreeTextSettings=G(!1);applicationOptions=G();showTextArea=N(!1);allOptionsGrouped=this.#e.allOptionsGrouped;allOptions=this.#e.allOptions;selectedSettings=k(()=>{let i=this.hiddenOptions();return this.options().map(n=>{let r=this.allOptions().find(F=>F.name===n.Name?.replace("--","")),p=n.Value??"";if(r&&i.includes(r.name))return null;if(r){if(r.type==="Boolean"&&(p=this.isTrue(p)),r.type==="Integer"&&(p=parseInt(p)||0),r.type==="Enumeration"&&r.options){let y=p?.trim().toLowerCase(),U=r.options.find(Te=>(Te??"").trim().toLocaleLowerCase()===y);U&&(p=U)}let F=ge.find(y=>y.name===r?.name);return F&&(r=w(w({},r),F)),L(w({},n),{Value:N(p),FormView:r})}else if(this.hasFreeTextSettings())return L(w({},n),{Value:N(p),FormView:{name:n.Name,type:"FreeText",shortDescription:"Custom settings argument",longDescription:"Custom settings argument"}});return null}).filter(n=>n!==null)});nonSelectedOptionsGrouped=k(()=>{let i=this.options().map(o=>o.Name?.replace("--","")),e=this.hiddenOptions();return this.allOptionsGrouped().map(o=>L(w({},o),{options:o.options.filter(n=>!i.includes(n.name)&&!e.includes(n.name))})).filter(o=>o.options.length>0)});settingsAsText=k(()=>this.selectedSettings().map(i=>{let e=i.Value(),o="";return typeof e=="boolean"?o=this.isTrue(e)?"True":"False":(typeof e=="number"||e!=null)&&(o=e.toString()),`${i.Name??""}=${o}`}).join(`
2
2
  `));updateSettingsFromText(i){if(typeof i!="string")return;let e=me(i);this.options.update(()=>e)}isTrue(i){if(typeof i=="boolean")return i;if(typeof i=="string"){let e=i.toLowerCase();return e==="true"||e==="1"||e==="yes"||e==="on"}return!1}inAppOptions(i){let e=this.applicationOptions()?.findIndex(o=>o.Name?.replace("--","")===i);return e===void 0?!1:e>-1}addFreeTextSetting(){this.hasFreeTextSettings()&&this.options.update(i=>[...i,{Filter:null,Name:"",Value:""}])}addSetting(i){this.options.update(e=>{let o=i.defaultValue??"";return i.type==="Boolean"&&(o=this.isTrue(o)),i.type==="Integer"&&(o=parseInt(o)||0),[...e,{Name:i.name,Value:o}]})}updateSettingValue(i,e){this.options.update(o=>{let n=[...o],r=n.findIndex(p=>p.Name===i.Name);if(i.FormView.type==="Boolean")return n[r].Value=this.isTrue(e)?"True":"False",n;if(i.FormView.type==="Integer")return n[r].Value=e.toString(),n;if(i.FormView.type==="Enumeration"&&i.FormView.options){let p=e?.trim().toLowerCase()??"",F=i.FormView.options.find(y=>(y??"").trim().toLocaleLowerCase()===p);if(F)return n[r].Value=F,n}return n[r].Value=e,n})}updateFreeTextSettingName(i,e){this.options.update(o=>{let n=[...o],r=n.findIndex(p=>p.Name===i.Name);return n[r].Name=e,n})}removeSetting(i){this.options.update(e=>e.filter(o=>o.Name!==i.Name))}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=H({type:t,selectors:[["app-options-list"]],inputs:{options:[1,"options"],hiddenOptions:[1,"hiddenOptions"],hasFreeTextSettings:[1,"hasFreeTextSettings"],applicationOptions:[1,"applicationOptions"]},outputs:{options:"optionsChange"},decls:9,vars:3,consts:()=>{let i;i=$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#3\uFFFD"}:START_TAG_SH_ICON:plus${"\uFFFD/#3\uFFFD"}:CLOSE_TAG_SH_ICON:`;let n;n=$localize`${"\uFFFD#7\uFFFD"}:START_TAG_SH_ICON:pen${"\uFFFD/#7\uFFFD"}:CLOSE_TAG_SH_ICON: New custom option `;let r;return r=$localize`By adding this option it will override the matching global option`,[["option",""],["defaultLabel",""],["enumOptionTemplate",""],["optionTemplate",""],i,e,o,n,[3,"disallowToggle"],["title",""],[1,"actions"],["shButton","","type","button",1,"outlined","small"],["wrap","off","placeholder","Paste advanced options here, one per line.",1,"raw-text-area",3,"ngModel","ngModelOptions"],["shButton","","type","button",1,"outlined","small",3,"click"],[3,"searchable"],["menu",""],["type","button",3,"deprecated"],["type","button",3,"click"],[1,"option-col"],["shButton","","type","button",1,"small"],["shButton","","type","button",1,"small",3,"click"],["wrap","off","placeholder","Paste advanced options here, one per line.",1,"raw-text-area",3,"ngModelChange","ngModel","ngModelOptions"],[1,"placeholder"],[1,"field-row"],[1,"form-column"],[3,"startingPath","accepts","showFiles","showHiddenNodes","selectFiles"],[3,"startingPath"],[3,"inputType","ngModel","customId"],[1,"primary","raised"],["shButton","","type","button",1,"outlined","remove-btn",3,"click"],["shTooltip",r,1,"error"],[1,"warn",3,"shTooltip"],[1,"primary",3,"shTooltip"],[4,"ngTemplateOutlet"],["type","text",3,"ngModelChange","ngModel"],["prefix",""],[3,"for"],["type","text",3,"ngModelChange","id","ngModel"],[3,"ngModelChange","type","id","ngModel"],["autocomplete","off",3,"ngModelChange","type","id","ngModel"],["suffix","",1,"clickable"],["suffix","",1,"clickable",3,"click"],[3,"options","isClearable","optionTemplate"],[3,"ngModelChange","inputType","ngModel","customId"],["type","number",3,"ngModelChange","id","ngModel"],["type","checkbox",3,"ngModelChange","id","ngModel"],[1,"primary","raised",3,"options","selectMultiple","optionTemplate"],["type","text","id","text",3,"ngModelChange","ngModel"]]},template:function(e,o){e&1&&(a(0,"sh-toggle-card",8),v(1,9)(2),J(3,4),V(),a(4,"div",10),h(5,Se,3,0,"button",11)(6,we,8,2),l(),V(),h(7,ye,1,3,"textarea",12)(8,_t,3,1),l()),e&2&&(c("disallowToggle",!0),s(5),O(o.showTextArea()?5:6),s(2),O(o.showTextArea()?7:8))},dependencies:[ne,Y,te,W,Z,ee,Ce,de,ue,Q,_e,re,oe,ae,pe,ie,le,se],styles:["[_nghost-%COMP%]{display:block}sh-select[_ngcontent-%COMP%]{--miw: p2r(120)}sh-toggle[_ngcontent-%COMP%] sh-icon[_ngcontent-%COMP%]{font-size:1rem}.placeholder[_ngcontent-%COMP%]{color:var(--base-9);text-align:center;padding:2rem 1rem}.field-row[_ngcontent-%COMP%]{display:grid;align-items:center;grid-template-columns:1fr 2.5rem;gap:.5rem;position:relative;z-index:1}.field-row[_ngcontent-%COMP%] .remove-btn[_ngcontent-%COMP%]{align-self:flex-end}.option-col[_ngcontent-%COMP%]{display:flex;flex-direction:column}.form-column[_ngcontent-%COMP%]{display:flex;gap:.25rem;flex-direction:column}label[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.25rem}sh-icon[_ngcontent-%COMP%]{font-size:1rem}.form-row[_ngcontent-%COMP%]{display:grid;grid-template-columns:3fr 1fr;gap:.5rem;align-items:flex-end}.actions[_ngcontent-%COMP%]{display:flex;gap:.5rem;justify-content:flex-end}.deprecated[_ngcontent-%COMP%]{text-decoration:line-through}.raw-text-area[_ngcontent-%COMP%]{min-height:12rem;white-space:pre}"],changeDetection:0})};export{fe as a};
@@ -1 +1 @@
1
- import{a as m}from"./chunk-QLUEDPL4.js";import{a as u}from"./chunk-ZQ56M63S.js";import{b as g}from"./chunk-P7OKMMNZ.js";import{z as a}from"./chunk-HJSCQF6V.js";import{Qc as l,Rc as c,V as n,_ as r,oa as s}from"./chunk-Y7PHGRGB.js";var f=class o{#s=r(a);#e=r(g);#r=r(u);repeatRegisterTimer=null;state=s("unknown");claimUrl=s(null);registerUrl=s("");customRegisterUrl=s("");status=l(()=>{let e=this.state();return e==="connecting"?$localize`Console connection is enabled but not connected`:e==="connected"?$localize`Connected to console`:e==="registering"?$localize`Registering machine...`:e==="registeringfaulted"?$localize`Registration failed`:e==="registered"?$localize`Registered, waiting for accept`:e==="disabled"?$localize`Console connection is configured but not enabled`:e==="unknown"?$localize`...loading...`:$localize`Console connection is not set up`});sysInfoEffect=c(()=>{let e=this.#r.systemInfo();e&&this.registerUrl.set(e.RemoteControlRegistrationUrl??"")});#t(e){e.RegistrationUrl&&this.claimUrl.set(e.RegistrationUrl),e.IsConnected?this.state.set("connected"):e.IsEnabled?this.state.set("connecting"):e.CanEnable?this.state.set("disabled"):e.IsRegisteringFaulted?this.state.set("registeringfaulted"):e.IsRegistering?e.RegistrationUrl!=null&&e.RegistrationUrl.trim().length>0?this.state.set("registered"):this.state.set("registering"):this.state.set("inactive");let t=this.state();this.repeatRegisterTimer!==null&&(clearTimeout(this.repeatRegisterTimer),this.repeatRegisterTimer=null),t==="registering"&&(this.repeatRegisterTimer=setTimeout(()=>{this.#e.postApiV1RemotecontrolRegister({requestBody:{RegistrationUrl:""}}).subscribe({next:i=>this.#t(i),error:i=>this.#i(i)})},5e3)),(t==="connecting"||t==="registered")&&(this.repeatRegisterTimer=setTimeout(()=>{this.#e.getApiV1RemotecontrolStatus().subscribe({next:i=>this.#t(i),error:i=>this.#i(i)})},5e3)),e.IsRegistering&&e.CanEnable&&this.#e.deleteApiV1RemotecontrolRegister().subscribe({next:i=>this.#t(i)})}#i(e){this.#e.getApiV1RemotecontrolStatus().subscribe({next:t=>{console.log("next",t),this.#t(t)}})}refreshRemoteControlStatus(){this.#e.getApiV1RemotecontrolStatus().subscribe({next:e=>this.#t(e),error:e=>this.#i(e)})}beginRemoteRegistration(e=!1){this.state.set("registering"),this.#e.postApiV1RemotecontrolRegister({requestBody:{RegistrationUrl:e?this.customRegisterUrl():this.registerUrl()}}).subscribe({next:t=>this.#t(t),error:t=>this.#i(t)})}cancelRemoteRegistration(){this.#e.deleteApiV1RemotecontrolRegister().subscribe({next:e=>this.#t(e),error:e=>this.#i(e)})}enableRemoteControl(){this.#e.postApiV1RemotecontrolEnable().subscribe({next:e=>this.#t(e),error:e=>this.#i(e)})}disableRemoteControl(){this.#e.postApiV1RemotecontrolDisable().subscribe({next:e=>this.#t(e),error:e=>this.#i(e)})}deleteRemoteControl(){let e=this;this.#s.open(m,{data:{title:$localize`Confirm delete`,message:$localize`Are you sure you want to delete the console registration?`,confirmText:$localize`Delete registration`,cancelText:$localize`Cancel`},closed:t=>{t&&e.#e.deleteApiV1RemotecontrolRegistration().subscribe({next:i=>e.#t(i),error:i=>e.#i(i)})}})}static \u0275fac=function(t){return new(t||o)};static \u0275prov=n({token:o,factory:o.\u0275fac,providedIn:"root"})};export{f as a};
1
+ import{a as m}from"./chunk-F2QQDU4N.js";import{a as u}from"./chunk-XE5OMGTJ.js";import{b as g}from"./chunk-KBGIIJMM.js";import{z as a}from"./chunk-LFRGO2IP.js";import{Rc as l,Sc as c,V as n,_ as r,oa as s}from"./chunk-FAM42SZT.js";var f=class o{#s=r(a);#e=r(g);#r=r(u);repeatRegisterTimer=null;state=s("unknown");claimUrl=s(null);registerUrl=s("");customRegisterUrl=s("");status=l(()=>{let e=this.state();return e==="connecting"?$localize`Console connection is enabled but not connected`:e==="connected"?$localize`Connected to console`:e==="registering"?$localize`Registering machine...`:e==="registeringfaulted"?$localize`Registration failed`:e==="registered"?$localize`Registered, waiting for accept`:e==="disabled"?$localize`Console connection is configured but not enabled`:e==="unknown"?$localize`...loading...`:$localize`Console connection is not set up`});sysInfoEffect=c(()=>{let e=this.#r.systemInfo();e&&this.registerUrl.set(e.RemoteControlRegistrationUrl??"")});#t(e){e.RegistrationUrl&&this.claimUrl.set(e.RegistrationUrl),e.IsConnected?this.state.set("connected"):e.IsEnabled?this.state.set("connecting"):e.CanEnable?this.state.set("disabled"):e.IsRegisteringFaulted?this.state.set("registeringfaulted"):e.IsRegistering?e.RegistrationUrl!=null&&e.RegistrationUrl.trim().length>0?this.state.set("registered"):this.state.set("registering"):this.state.set("inactive");let t=this.state();this.repeatRegisterTimer!==null&&(clearTimeout(this.repeatRegisterTimer),this.repeatRegisterTimer=null),t==="registering"&&(this.repeatRegisterTimer=setTimeout(()=>{this.#e.postApiV1RemotecontrolRegister({requestBody:{RegistrationUrl:""}}).subscribe({next:i=>this.#t(i),error:i=>this.#i(i)})},5e3)),(t==="connecting"||t==="registered")&&(this.repeatRegisterTimer=setTimeout(()=>{this.#e.getApiV1RemotecontrolStatus().subscribe({next:i=>this.#t(i),error:i=>this.#i(i)})},5e3)),e.IsRegistering&&e.CanEnable&&this.#e.deleteApiV1RemotecontrolRegister().subscribe({next:i=>this.#t(i)})}#i(e){this.#e.getApiV1RemotecontrolStatus().subscribe({next:t=>{console.log("next",t),this.#t(t)}})}refreshRemoteControlStatus(){this.#e.getApiV1RemotecontrolStatus().subscribe({next:e=>this.#t(e),error:e=>this.#i(e)})}beginRemoteRegistration(e=!1){this.state.set("registering"),this.#e.postApiV1RemotecontrolRegister({requestBody:{RegistrationUrl:e?this.customRegisterUrl():this.registerUrl()}}).subscribe({next:t=>this.#t(t),error:t=>this.#i(t)})}cancelRemoteRegistration(){this.#e.deleteApiV1RemotecontrolRegister().subscribe({next:e=>this.#t(e),error:e=>this.#i(e)})}enableRemoteControl(){this.#e.postApiV1RemotecontrolEnable().subscribe({next:e=>this.#t(e),error:e=>this.#i(e)})}disableRemoteControl(){this.#e.postApiV1RemotecontrolDisable().subscribe({next:e=>this.#t(e),error:e=>this.#i(e)})}deleteRemoteControl(){let e=this;this.#s.open(m,{data:{title:$localize`Confirm delete`,message:$localize`Are you sure you want to delete the console registration?`,confirmText:$localize`Delete registration`,cancelText:$localize`Cancel`},closed:t=>{t&&e.#e.deleteApiV1RemotecontrolRegistration().subscribe({next:i=>e.#t(i),error:i=>e.#i(i)})}})}static \u0275fac=function(t){return new(t||o)};static \u0275prov=n({token:o,factory:o.\u0275fac,providedIn:"root"})};export{f as a};
@@ -1 +1 @@
1
- import{a as w}from"./chunk-ZQ56M63S.js";import"./chunk-P7OKMMNZ.js";import{I as k,u as D}from"./chunk-HJSCQF6V.js";import"./chunk-XUQ74HFK.js";import{ea as A}from"./chunk-3ADKRLYD.js";import"./chunk-FPPZ4BUR.js";import{Ab as v,Bb as g,Bc as _,Cb as c,Cc as $,Db as l,Jc as R,Kb as u,Lb as M,Qc as b,Ra as r,Ub as N,Yb as E,_ as T,_b as s,bb as x,da as h,ea as y,gb as m,hc as C,ic as P,jc as S,mc as a,nc as F,oa as p,wb as d,xb as f,zb as I}from"./chunk-Y7PHGRGB.js";import"./chunk-EUDKD2JW.js";var Y=e=>({children:e,level:0}),L=e=>({$implicit:e}),j=(e,t)=>({children:e,level:t}),V=(e,t)=>t.id;function z(e,t){if(e&1&&(c(0,"sh-icon"),a(1,"caret-down"),l()),e&2){let n=s().$implicit;S("open",n.isOpen())}}function B(e,t){e&1&&(c(0,"sh-icon"),a(1,"dot"),l())}function J(e,t){e&1&&u(0)}function U(e,t){if(e&1&&m(0,J,1,0,"ng-container",3),e&2){let n=s().$implicit,o=s().$implicit;s();let i=C(3);g("ngTemplateOutlet",i)("ngTemplateOutletContext",_(5,L,$(2,j,n.children,o.level+1)))}}function X(e,t){if(e&1){let n=M();c(0,"div",4,1),E("click",function(){let i=h(n).$implicit,G=s(2);return y(i.children.length>0&&G.toggleNode(i))}),d(2,z,2,2,"sh-icon",5)(3,B,2,0,"sh-icon"),c(4,"div",6),a(5),l()(),d(6,U,1,7,"ng-container")}if(e&2){let n=t.$implicit;S("cannot-toggle",n.children.length===0)("open",n.isOpen()),r(2),f(n.children.length>0?2:3),r(3),F(n.text),r(),f(n.isOpen()?6:-1)}}function q(e,t){if(e&1&&(c(0,"sh-list"),I(1,X,7,7,null,null,V),l()),e&2){let n=t.$implicit;P("padding-left",n.level*.25,"rem"),r(),v(n.children)}}function H(e,t){e&1&&u(0)}var O=class e{#e=T(w);treeStructure=b(()=>{let t=this.#e.systemInfo();return this.processObject(t,0)});toggleNode(t){t.isOpen.update(n=>!n)}processObject(t,n){let o=[];for(let i in t)typeof t[i]=="object"?o.push({id:i,text:i,children:this.processObject(t[i],n+1),level:n,isOpen:p(!1)}):o.push({id:i,text:`${i}: ${t[i]}`,children:[],level:n,isOpen:p(!1)});return o}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=x({type:e,selectors:[["app-server-settings"]],decls:5,vars:6,consts:()=>{let t;return t=$localize`System info`,[["recursiveTree",""],["treeNode",""],t,[4,"ngTemplateOutlet","ngTemplateOutletContext"],["action","",3,"click"],[3,"open"],[1,"text"]]},template:function(n,o){if(n&1&&(c(0,"h3"),N(1,2),l(),m(2,q,3,2,"ng-template",null,0,R)(4,H,1,0,"ng-container",3)),n&2){let i=C(3);r(4),g("ngTemplateOutlet",i)("ngTemplateOutletContext",_(4,L,_(2,Y,o.treeStructure())))}},dependencies:[k,D,A],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;padding:0 2.5rem}h3[_ngcontent-%COMP%]{font:var(--title-30);margin:0 0 1.25rem}sh-icon[_ngcontent-%COMP%]{font-size:1rem}sh-list[_ngcontent-%COMP%]{padding:0}sh-list[_ngcontent-%COMP%] [action][_ngcontent-%COMP%]{padding:0}sh-list[_ngcontent-%COMP%] [action].cannot-toggle[_ngcontent-%COMP%]{cursor:initial}"],changeDetection:0})};export{O as default};
1
+ import{a as w}from"./chunk-XE5OMGTJ.js";import"./chunk-KBGIIJMM.js";import{J as k,u as D}from"./chunk-LFRGO2IP.js";import"./chunk-5K64UNNB.js";import{ea as A}from"./chunk-6DB3NZXR.js";import"./chunk-FPPZ4BUR.js";import{$b as s,Ab as I,Bb as v,Cb as g,Cc as _,Db as c,Dc as $,Eb as l,Kc as R,Lb as u,Mb as M,Ra as r,Rc as b,Vb as N,Zb as E,_ as T,bb as x,da as h,ea as y,gb as m,ic as C,jc as P,kc as S,nc as a,oa as p,oc as F,wb as d,xb as f}from"./chunk-FAM42SZT.js";import"./chunk-EUDKD2JW.js";var Y=e=>({children:e,level:0}),L=e=>({$implicit:e}),j=(e,t)=>({children:e,level:t}),V=(e,t)=>t.id;function z(e,t){if(e&1&&(c(0,"sh-icon"),a(1,"caret-down"),l()),e&2){let n=s().$implicit;S("open",n.isOpen())}}function B(e,t){e&1&&(c(0,"sh-icon"),a(1,"dot"),l())}function J(e,t){e&1&&u(0)}function U(e,t){if(e&1&&m(0,J,1,0,"ng-container",3),e&2){let n=s().$implicit,o=s().$implicit;s();let i=C(3);g("ngTemplateOutlet",i)("ngTemplateOutletContext",_(5,L,$(2,j,n.children,o.level+1)))}}function X(e,t){if(e&1){let n=M();c(0,"div",4,1),E("click",function(){let i=h(n).$implicit,G=s(2);return y(i.children.length>0&&G.toggleNode(i))}),d(2,z,2,2,"sh-icon",5)(3,B,2,0,"sh-icon"),c(4,"div",6),a(5),l()(),d(6,U,1,7,"ng-container")}if(e&2){let n=t.$implicit;S("cannot-toggle",n.children.length===0)("open",n.isOpen()),r(2),f(n.children.length>0?2:3),r(3),F(n.text),r(),f(n.isOpen()?6:-1)}}function q(e,t){if(e&1&&(c(0,"sh-list"),I(1,X,7,7,null,null,V),l()),e&2){let n=t.$implicit;P("padding-left",n.level*.25,"rem"),r(),v(n.children)}}function H(e,t){e&1&&u(0)}var O=class e{#e=T(w);treeStructure=b(()=>{let t=this.#e.systemInfo();return this.processObject(t,0)});toggleNode(t){t.isOpen.update(n=>!n)}processObject(t,n){let o=[];for(let i in t)typeof t[i]=="object"?o.push({id:i,text:i,children:this.processObject(t[i],n+1),level:n,isOpen:p(!1)}):o.push({id:i,text:`${i}: ${t[i]}`,children:[],level:n,isOpen:p(!1)});return o}static \u0275fac=function(n){return new(n||e)};static \u0275cmp=x({type:e,selectors:[["app-server-settings"]],decls:5,vars:6,consts:()=>{let t;return t=$localize`System info`,[["recursiveTree",""],["treeNode",""],t,[4,"ngTemplateOutlet","ngTemplateOutletContext"],["action","",3,"click"],[3,"open"],[1,"text"]]},template:function(n,o){if(n&1&&(c(0,"h3"),N(1,2),l(),m(2,q,3,2,"ng-template",null,0,R)(4,H,1,0,"ng-container",3)),n&2){let i=C(3);r(4),g("ngTemplateOutlet",i)("ngTemplateOutletContext",_(4,L,_(2,Y,o.treeStructure())))}},dependencies:[k,D,A],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;padding:0 2.5rem}h3[_ngcontent-%COMP%]{font:var(--title-30);margin:0 0 1.25rem}sh-icon[_ngcontent-%COMP%]{font-size:1rem}sh-list[_ngcontent-%COMP%]{padding:0}sh-list[_ngcontent-%COMP%] [action][_ngcontent-%COMP%]{padding:0}sh-list[_ngcontent-%COMP%] [action].cannot-toggle[_ngcontent-%COMP%]{cursor:initial}"],changeDetection:0})};export{O as default};
@@ -1 +1 @@
1
- import{a as K}from"./chunk-ULR2EPP5.js";import"./chunk-VXJJGZ5F.js";import"./chunk-6Q6SSTBK.js";import{a as z}from"./chunk-QLUEDPL4.js";import"./chunk-ZQ56M63S.js";import"./chunk-E4KSSC6K.js";import"./chunk-4IAJY6E3.js";import{b as J}from"./chunk-P7OKMMNZ.js";import{B as U,G as x,H as V,V as j,b as E,c as A,e as R,f as b,j as y,o as B,q as $,r as v,t as G,u as k,x as L,z as w}from"./chunk-HJSCQF6V.js";import{d as O,e as M}from"./chunk-G4Z3JAJB.js";import"./chunk-53V6KV3I.js";import"./chunk-XUQ74HFK.js";import"./chunk-3ADKRLYD.js";import"./chunk-FPPZ4BUR.js";import{Ac as N,Bb as p,Cb as a,Db as i,Eb as u,H as g,Ra as l,Sb as D,Tb as h,Ub as _,Xb as I,Yb as d,_ as s,bb as f,jc as P,oa as c,wb as C,xb as S}from"./chunk-Y7PHGRGB.js";import"./chunk-EUDKD2JW.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-I5AKUAZF.js";import"./chunk-PJAWWLYW.js";import"./chunk-6Q6SSTBK.js";import{a as z}from"./chunk-F2QQDU4N.js";import"./chunk-XE5OMGTJ.js";import"./chunk-T6C2OUI5.js";import"./chunk-TJ3WIU6Q.js";import{b as J}from"./chunk-KBGIIJMM.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,o as B,q as $,r as v,t as G,u as k,x as L,z as w}from"./chunk-LFRGO2IP.js";import{d as O,e as M}from"./chunk-LEZL7BSL.js";import"./chunk-4MEL5WTX.js";import"./chunk-5K64UNNB.js";import"./chunk-6DB3NZXR.js";import"./chunk-FPPZ4BUR.js";import{Bc as N,Cb as p,Db as a,Eb as i,Fb as u,H as g,Ra as l,Tb as D,Ub as h,Vb as _,Yb as I,Zb as d,_ as s,bb as f,kc as P,oa as c,wb as C,xb as S}from"./chunk-FAM42SZT.js";import"./chunk-EUDKD2JW.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 +1 @@
1
- import{b as l}from"./chunk-P7OKMMNZ.js";import{H as a,Qc as s,R as u,V as p,_ as d,oa as o}from"./chunk-Y7PHGRGB.js";var m=class r{#s=d(l);isLoaded=o(!1);systemInfo=o(null);filterGroups=o(null);backendModules=s(()=>this.systemInfo()?.BackendModules??[]);allOptionsGrouped=s(()=>{let e={displayName:"Default",options:this.systemInfo()?.Options?.map(this.#e)??[]},t=this.systemInfo()?.GenericModules?.map(n=>({displayName:n.DisplayName??n.Key,options:n.Options?.map(this.#e)??[]}))??[],i=this.systemInfo()?.CompressionModules?.map(n=>({displayName:n.DisplayName??n.Key,options:n.Options?.map(this.#e)??[]}))??[],c=this.systemInfo()?.EncryptionModules?.map(n=>({displayName:n.DisplayName??n.Key,options:n.Options?.map(this.#e)??[]}))??[];return[e,...t,...i,...c]});allOptions=s(()=>this.allOptionsGrouped().reduce((e,t)=>[...e,...t.options],[]));hasWebSocket=s(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:websocket"));hasV2ListOperations=s(()=>{let e=this.systemInfo()?.APIExtensions??[];return e.includes("v2:backup:list-filesets")&&e.includes("v2:backup:list-folder")});hasV2TestOperations=s(()=>(this.systemInfo()?.APIExtensions??[]).includes("v2:destination:test"));hasProgressSubscribeOption=s(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:subscribe:progress"));hasTaskSubscribeOption=s(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:subscribe:taskqueue"));hasTaskCompletedOption=s(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:subscribe:taskcompleted"));hasBackupListSubscribeOption=s(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:subscribe:backuplist"));hasWebSocketAuth=s(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:websocket:authenticate"));defaultOAuthUrl=s(()=>{let e=this.systemInfo()?.DefaultOAuthURL??"https://duplicati-oauth-handler.appspot.com/";return e.endsWith("/refresh")?e.slice(0,-8):e});defaultOAuthUrlV2=s(()=>{let e=this.systemInfo()?.DefaultOAuthURLv2??"https://oauth-service.duplicati.com/";return e.endsWith("/refresh")?e.slice(0,-8):e});preload(e=!1){let t=this.#s.getApiV1Systeminfo().pipe(u(i=>{this.systemInfo.set(i)}),a(()=>this.isLoaded.set(!0)));if(e)return t;t.subscribe()}preloadFilterGroups(e=!1){let t=this.#s.getApiV1SysteminfoFiltergroups().pipe(u(i=>{this.filterGroups.set(i)}),a(()=>this.isLoaded.set(!0)));if(e)return t;t.subscribe()}#e(e){return{name:e.Name,type:e.Type,shortDescription:e.ShortDescription??void 0,longDescription:e.LongDescription??void 0,deprecatedDescription:e.Deprecated??!1?e.DeprecationMessage??void 0:void 0,options:e.ValidValues,defaultValue:e.DefaultValue}}static \u0275fac=function(t){return new(t||r)};static \u0275prov=p({token:r,factory:r.\u0275fac,providedIn:"root"})};export{m as a};
1
+ import{b as l}from"./chunk-KBGIIJMM.js";import{H as a,R as u,Rc as s,V as p,_ as d,oa as o}from"./chunk-FAM42SZT.js";var m=class r{#s=d(l);isLoaded=o(!1);systemInfo=o(null);filterGroups=o(null);backendModules=s(()=>this.systemInfo()?.BackendModules??[]);allOptionsGrouped=s(()=>{let e={displayName:"Default",options:this.systemInfo()?.Options?.map(this.#e)??[]},t=this.systemInfo()?.GenericModules?.map(n=>({displayName:n.DisplayName??n.Key,options:n.Options?.map(this.#e)??[]}))??[],i=this.systemInfo()?.CompressionModules?.map(n=>({displayName:n.DisplayName??n.Key,options:n.Options?.map(this.#e)??[]}))??[],c=this.systemInfo()?.EncryptionModules?.map(n=>({displayName:n.DisplayName??n.Key,options:n.Options?.map(this.#e)??[]}))??[];return[e,...t,...i,...c]});allOptions=s(()=>this.allOptionsGrouped().reduce((e,t)=>[...e,...t.options],[]));hasWebSocket=s(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:websocket"));hasV2ListOperations=s(()=>{let e=this.systemInfo()?.APIExtensions??[];return e.includes("v2:backup:list-filesets")&&e.includes("v2:backup:list-folder")});hasV2TestOperations=s(()=>(this.systemInfo()?.APIExtensions??[]).includes("v2:destination:test"));hasProgressSubscribeOption=s(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:subscribe:progress"));hasTaskSubscribeOption=s(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:subscribe:taskqueue"));hasTaskCompletedOption=s(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:subscribe:taskcompleted"));hasBackupListSubscribeOption=s(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:subscribe:backuplist"));hasWebSocketAuth=s(()=>(this.systemInfo()?.APIExtensions??[]).includes("v1:websocket:authenticate"));defaultOAuthUrl=s(()=>{let e=this.systemInfo()?.DefaultOAuthURL??"https://duplicati-oauth-handler.appspot.com/";return e.endsWith("/refresh")?e.slice(0,-8):e});defaultOAuthUrlV2=s(()=>{let e=this.systemInfo()?.DefaultOAuthURLv2??"https://oauth-service.duplicati.com/";return e.endsWith("/refresh")?e.slice(0,-8):e});preload(e=!1){let t=this.#s.getApiV1Systeminfo().pipe(u(i=>{this.systemInfo.set(i)}),a(()=>this.isLoaded.set(!0)));if(e)return t;t.subscribe()}preloadFilterGroups(e=!1){let t=this.#s.getApiV1SysteminfoFiltergroups().pipe(u(i=>{this.filterGroups.set(i)}),a(()=>this.isLoaded.set(!0)));if(e)return t;t.subscribe()}#e(e){return{name:e.Name,type:e.Type,shortDescription:e.ShortDescription??void 0,longDescription:e.LongDescription??void 0,deprecatedDescription:e.Deprecated??!1?e.DeprecationMessage??void 0:void 0,options:e.ValidValues,defaultValue:e.DefaultValue}}static \u0275fac=function(t){return new(t||r)};static \u0275prov=p({token:r,factory:r.\u0275fac,providedIn:"root"})};export{m as a};
@@ -1 +1 @@
1
- import{d as M}from"./chunk-4IAJY6E3.js";import"./chunk-P7OKMMNZ.js";import{B as P}from"./chunk-HJSCQF6V.js";import{e as E}from"./chunk-G4Z3JAJB.js";import"./chunk-53V6KV3I.js";import"./chunk-XUQ74HFK.js";import"./chunk-3ADKRLYD.js";import"./chunk-FPPZ4BUR.js";import{$b as h,Cb as i,Db as a,Fb as r,Gb as l,Hb as c,Ra as C,Ub as d,_ as u,ac as m,bb as g,mc as T,wb as f,xb as O}from"./chunk-Y7PHGRGB.js";import"./chunk-EUDKD2JW.js";var L=["*",[["","footer",""]]],v=["*","[footer]"],s=class t{static \u0275fac=function(e){return new(e||t)};static \u0275cmp=g({type:t,selectors:[["app-custom-card"]],ngContentSelectors:v,decls:11,vars:0,consts:[[1,"card"],["src","/assets/noise/auth-noise.svg",1,"noise"],[1,"header-title"],["src","/assets/duplicati/duplicati.svg","alt",""],[1,"bg"]],template:function(e,o){e&1&&(h(L),r(0,"div",0),c(1,"img",1),r(2,"header")(3,"div",2),c(4,"img",3),T(5," Duplicati "),l()(),r(6,"main"),m(7),r(8,"footer"),m(9,1),l()()(),c(10,"div",4))},styles:['[_nghost-%COMP%]{height:100vh;width:100vw;display:flex;align-items:center;justify-content:center;background-color:var(--base-2)}body.dark [_nghost-%COMP%] .card[_ngcontent-%COMP%]:before{background:radial-gradient(rgba(var(--primary-rgb-900),1),#0000 60%)}.card[_ngcontent-%COMP%]{max-width:30rem;width:100%;position:relative;z-index:100;background-color:var(--base-1);border-radius:var(--shape-5);box-shadow:var(--box-shadow-40);border:1px solid var(--base-3);overflow:hidden}.card[_ngcontent-%COMP%]:before{content:"";position:absolute;height:30rem;transform:translateY(-17.8125rem);left:0;right:0;z-index:-2;background:radial-gradient(rgb(from var(--primary-1) r g b/1),#0000 60%)}.card[_ngcontent-%COMP%] img.noise[_ngcontent-%COMP%]{position:absolute;height:30rem;width:100%;transform:translateY(-17.8125rem);left:0;right:0;z-index:-1;-webkit-mask-image:radial-gradient(#000,#0000 60%);mask-image:radial-gradient(#000,#0000 60%)}header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;padding:2rem 2rem 0;gap:.75rem;position:relative;z-index:10}.header-title[_ngcontent-%COMP%]{font:var(--title-30);display:flex;align-items:center;gap:.625rem}.header-title[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:1.75rem;filter:drop-shadow(0 2px 3px rgba(0,0,0,.3))}main[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;padding:2rem;gap:2.5rem;position:relative;z-index:10}main[_ngcontent-%COMP%] footer[_ngcontent-%COMP%]{font:var(--paragraph-40);color:var(--base-9);text-align:center;text-wrap:balance}.bg[_ngcontent-%COMP%]{position:fixed;inset:0;width:100vw;height:100vh;background-image:url(/assets/backgrounds/base-bg.svg);background-size:cover;background-position:center;background-repeat:no-repeat}body.dark[_ngcontent-%COMP%] .bg[_ngcontent-%COMP%]{opacity:1}footer[_ngcontent-%COMP%]:empty{display:none}'],changeDetection:0})};function N(t,n){t&1&&(i(0,"h3"),d(1,0),a())}function y(t,n){t&1&&(i(0,"h3"),d(1,1),a(),i(2,"button",3),d(3,2),a())}var p=class t{#e=u(M);isLoggingOut=this.#e.isLoggingOut;ngOnInit(){this.#e.logout()}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=g({type:t,selectors:[["app-logout"]],decls:3,vars:1,consts:()=>{let n;n=$localize`Logging out...`;let e;e=$localize`You have successfully logged out your being redirected to login page.`;let o;return o=$localize`Go to login page`,[n,e,o,["shButton","","routerLink","/",1,"raised","primary"]]},template:function(e,o){e&1&&(i(0,"app-custom-card"),f(1,N,2,0,"h3")(2,y,4,0),a()),e&2&&(C(),O(o.isLoggingOut()?1:2))},dependencies:[s,P,E],styles:["[_nghost-%COMP%]{display:block}"],changeDetection:0})};export{p as default};
1
+ import{d as M}from"./chunk-TJ3WIU6Q.js";import"./chunk-KBGIIJMM.js";import{B as P}from"./chunk-LFRGO2IP.js";import{e as E}from"./chunk-LEZL7BSL.js";import"./chunk-4MEL5WTX.js";import"./chunk-5K64UNNB.js";import"./chunk-6DB3NZXR.js";import"./chunk-FPPZ4BUR.js";import{Db as i,Eb as a,Gb as r,Hb as l,Ib as c,Ra as C,Vb as d,_ as u,ac as h,bb as g,bc as m,nc as T,wb as f,xb as O}from"./chunk-FAM42SZT.js";import"./chunk-EUDKD2JW.js";var L=["*",[["","footer",""]]],v=["*","[footer]"],s=class t{static \u0275fac=function(e){return new(e||t)};static \u0275cmp=g({type:t,selectors:[["app-custom-card"]],ngContentSelectors:v,decls:11,vars:0,consts:[[1,"card"],["src","/assets/noise/auth-noise.svg",1,"noise"],[1,"header-title"],["src","/assets/duplicati/duplicati.svg","alt",""],[1,"bg"]],template:function(e,o){e&1&&(h(L),r(0,"div",0),c(1,"img",1),r(2,"header")(3,"div",2),c(4,"img",3),T(5," Duplicati "),l()(),r(6,"main"),m(7),r(8,"footer"),m(9,1),l()()(),c(10,"div",4))},styles:['[_nghost-%COMP%]{height:100vh;width:100vw;display:flex;align-items:center;justify-content:center;background-color:var(--base-2)}body.dark [_nghost-%COMP%] .card[_ngcontent-%COMP%]:before{background:radial-gradient(rgba(var(--primary-rgb-900),1),#0000 60%)}.card[_ngcontent-%COMP%]{max-width:30rem;width:100%;position:relative;z-index:100;background-color:var(--base-1);border-radius:var(--shape-5);box-shadow:var(--box-shadow-40);border:1px solid var(--base-3);overflow:hidden}.card[_ngcontent-%COMP%]:before{content:"";position:absolute;height:30rem;transform:translateY(-17.8125rem);left:0;right:0;z-index:-2;background:radial-gradient(rgb(from var(--primary-1) r g b/1),#0000 60%)}.card[_ngcontent-%COMP%] img.noise[_ngcontent-%COMP%]{position:absolute;height:30rem;width:100%;transform:translateY(-17.8125rem);left:0;right:0;z-index:-1;-webkit-mask-image:radial-gradient(#000,#0000 60%);mask-image:radial-gradient(#000,#0000 60%)}header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;padding:2rem 2rem 0;gap:.75rem;position:relative;z-index:10}.header-title[_ngcontent-%COMP%]{font:var(--title-30);display:flex;align-items:center;gap:.625rem}.header-title[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{height:1.75rem;filter:drop-shadow(0 2px 3px rgba(0,0,0,.3))}main[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;padding:2rem;gap:2.5rem;position:relative;z-index:10}main[_ngcontent-%COMP%] footer[_ngcontent-%COMP%]{font:var(--paragraph-40);color:var(--base-9);text-align:center;text-wrap:balance}.bg[_ngcontent-%COMP%]{position:fixed;inset:0;width:100vw;height:100vh;background-image:url(/assets/backgrounds/base-bg.svg);background-size:cover;background-position:center;background-repeat:no-repeat}body.dark[_ngcontent-%COMP%] .bg[_ngcontent-%COMP%]{opacity:1}footer[_ngcontent-%COMP%]:empty{display:none}'],changeDetection:0})};function N(t,n){t&1&&(i(0,"h3"),d(1,0),a())}function y(t,n){t&1&&(i(0,"h3"),d(1,1),a(),i(2,"button",3),d(3,2),a())}var p=class t{#e=u(M);isLoggingOut=this.#e.isLoggingOut;ngOnInit(){this.#e.logout()}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=g({type:t,selectors:[["app-logout"]],decls:3,vars:1,consts:()=>{let n;n=$localize`Logging out...`;let e;e=$localize`You have successfully logged out your being redirected to login page.`;let o;return o=$localize`Go to login page`,[n,e,o,["shButton","","routerLink","/",1,"raised","primary"]]},template:function(e,o){e&1&&(i(0,"app-custom-card"),f(1,N,2,0,"h3")(2,y,4,0),a()),e&2&&(C(),O(o.isLoggingOut()?1:2))},dependencies:[s,P,E],styles:["[_nghost-%COMP%]{display:block}"],changeDetection:0})};export{p as default};
@@ -1 +1 @@
1
- import{c as i}from"./chunk-G4Z3JAJB.js";import"./chunk-53V6KV3I.js";import"./chunk-XUQ74HFK.js";import"./chunk-3ADKRLYD.js";import"./chunk-FPPZ4BUR.js";import{Eb as c,bb as n}from"./chunk-Y7PHGRGB.js";import"./chunk-EUDKD2JW.js";var t=class o{static \u0275fac=function(e){return new(e||o)};static \u0275cmp=n({type:o,selectors:[["app-welcome"]],decls:1,vars:0,template:function(e,m){e&1&&c(0,"router-outlet")},dependencies:[i],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;min-height:100vh}"],changeDetection:0})};export{t as default};
1
+ import{c as i}from"./chunk-LEZL7BSL.js";import"./chunk-4MEL5WTX.js";import"./chunk-5K64UNNB.js";import"./chunk-6DB3NZXR.js";import"./chunk-FPPZ4BUR.js";import{Fb as c,bb as n}from"./chunk-FAM42SZT.js";import"./chunk-EUDKD2JW.js";var t=class o{static \u0275fac=function(e){return new(e||o)};static \u0275cmp=n({type:o,selectors:[["app-welcome"]],decls:1,vars:0,template:function(e,m){e&1&&c(0,"router-outlet")},dependencies:[i],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;min-height:100vh}"],changeDetection:0})};export{t as default};
@@ -0,0 +1 @@
1
+ import{a}from"./chunk-PDBKO5D5.js";import"./chunk-M77IE672.js";import"./chunk-FAM42SZT.js";import"./chunk-EUDKD2JW.js";export{a as DurationFormatPipe};
@@ -0,0 +1 @@
1
+ import{a as we,b as Ue,c as be}from"./chunk-EDLTOGSO.js";import"./chunk-OLOFMEQN.js";import{a as xe}from"./chunk-4BGVLUYV.js";import{j as Ge}from"./chunk-LGCYSN2C.js";import"./chunk-GS5QK7LF.js";import"./chunk-VKR5DJQG.js";import"./chunk-BTVYI2KD.js";import"./chunk-6Q6SSTBK.js";import"./chunk-LJQN4G2O.js";import"./chunk-I2RHQQ3J.js";import{a as $}from"./chunk-F2QQDU4N.js";import"./chunk-XE5OMGTJ.js";import"./chunk-KBGIIJMM.js";import{B,C as Re,H as k,K as Le,c as G,e as w,f as Oe,g as fe,i as U,j as Ae,r as Pe,s as b,u as v,w as Me,y as $e,z as ye}from"./chunk-LFRGO2IP.js";import{b as De,d as he}from"./chunk-LEZL7BSL.js";import"./chunk-4MEL5WTX.js";import"./chunk-5K64UNNB.js";import"./chunk-6DB3NZXR.js";import"./chunk-FPPZ4BUR.js";import{$b as _,Ab as _e,Bb as ce,Bc as Fe,Cb as N,Db as s,Eb as r,Fb as d,Jb as Te,Kb as de,Mb as p,Oa as re,Ra as l,Rc as L,Tb as u,Ub as C,Vb as h,Wb as z,Wc as Ne,Xb as J,Xc as Ie,Yb as ge,Yc as Ee,Zb as S,_ as I,ac as ue,bb as O,bc as Ce,da as c,ea as T,gc as Se,hc as pe,ia as se,kc as me,nc as f,oa as D,oc as X,sc as A,tc as P,uc as M,vc as H,wb as m,wc as j,xb as F,xc as x,yb as le,yc as W}from"./chunk-FAM42SZT.js";import"./chunk-EUDKD2JW.js";var ke=["*"],y=class o{destination=Ie.required();static \u0275fac=function(e){return new(e||o)};static \u0275cmp=O({type:o,selectors:[["app-destination-list-item"]],inputs:{destination:[1,"destination"]},ngContentSelectors:ke,decls:9,vars:6,consts:[[1,"type-b"],[1,"icon"],[3,"src","alt"],[1,"name"],[1,"description"],[1,"actions"]],template:function(e,i){if(e&1&&(ue(),s(0,"sh-card",0)(1,"div",1),d(2,"img",2),r(),s(3,"div",3),f(4),r(),s(5,"div",4),f(6),r(),s(7,"div",5),Ce(8),r()()),e&2){let t=i.destination();l(2),N("src",W(t.icon),re)("alt",W(t.displayName)),l(2),X(t.displayName),l(2),X(t.description)}},dependencies:[Re],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})};function Ve(o,n){if(o&1){let e=p();s(0,"app-destination-list-item",3)(1,"button",4),S("click",function(){let t=c(e).$implicit,a=_();return T(a.setDestination.emit(t.key))}),u(2,0),d(3,"sh-icon"),C(),r()()}if(o&2){let e=n.$implicit;N("destination",e)}}var K=class o{#i=I(Ue);setDestination=Ne();destinationSearchTerm=D("");destinationTypeOptions=this.#i.destinationTypeOptions;destinationTypeOptionsFocused=L(()=>{let n=this.destinationTypeOptions(),e=this.destinationSearchTerm().toLowerCase(),i=[...n].sort((t,a)=>{let E=t.sortOrder??0,R=a.sortOrder??0;return E!==R?R-E:t.displayName.localeCompare(a.displayName)}).filter(t=>(t.sortOrder??0)>=0);return e?i.filter(t=>t.searchTerms.toLowerCase().includes(e)):i});static \u0275fac=function(e){return new(e||o)};static \u0275cmp=O({type:o,selectors:[["app-destination-list"]],outputs:{setDestination:"setDestination"},decls:5,vars:1,consts:()=>{let n;n=$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",n,3,"ngModelChange","ngModel"],[1,"list"],[3,"destination"],["shButton","","type","button",3,"click"]]},template:function(e,i){e&1&&(s(0,"sh-form-field")(1,"input",1),M("ngModelChange",function(a){return P(i.destinationSearchTerm,a)||(i.destinationSearchTerm=a),a}),r()(),s(2,"div",2),_e(3,Ve,4,1,"app-destination-list-item",3,le),r()),e&2&&(l(),A("ngModel",i.destinationSearchTerm),l(2),ce(i.destinationTypeOptionsFocused()))},dependencies:[y,b,G,w,U,k,B,v],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 ze=["formRef"],Je=()=>({maxWidth:"700px",width:"100%"});function Xe(o,n){if(o&1){let e=p();s(0,"button",32),S("click",function(){c(e);let t=_();return T(t.testDestination(0,!0))}),h(1,4),r()}if(o&2){let e=_();me("loader",e.testSignal()=="testing"),N("disabled",e.testSignal()=="testing")}}function He(o,n){if(o&1){let e=p();s(0,"button",33),S("click",function(){c(e);let t=_();return T(t.openTargetUrlDialog())}),u(1,5),d(2,"sh-icon"),C(),r()}}function je(o,n){if(o&1){let e=p();s(0,"button",33),S("click",function(){c(e);let t=_(2);return T(t.copyTargetUrl())}),u(1,7),d(2,"sh-icon"),C(),r()}}function We(o,n){if(o&1){let e=p();s(0,"sh-menu")(1,"button",21)(2,"sh-icon"),f(3,"dots-three-vertical"),r()(),Te(4,34),s(5,"button",33),S("click",function(){c(e);let t=_();return T(t.openTargetUrlDialog())}),u(6,6),d(7,"sh-icon"),C(),r(),m(8,je,3,0,"button",21),de(),r()}if(o&2){_();let e=x(0);l(8),F(e?8:-1)}}function qe(o,n){o&1&&(s(0,"sh-alert"),u(1,8),d(2,"sh-icon",35),C(),r())}function Qe(o,n){o&1&&(s(0,"sh-alert",22),u(1,9),d(2,"sh-icon",35),C(),r())}function Ye(o,n){if(o&1&&(s(0,"sh-alert",23),u(1,10),d(2,"sh-icon",35),C(),r()),o&2){let e=_();l(2),z(e.testErrorMessage()),J(1)}}function Ze(o,n){if(o&1&&(s(0,"sh-alert",24),u(1,11),d(2,"sh-icon",35),C(),r()),o&2){let e=_();l(2),z(e.testErrorMessage()),J(1)}}function et(o,n){if(o&1){let e=p();s(0,"app-destination-list-item",25)(1,"button",28),S("click",function(){c(e);let t=_();return T(t.removeDestination())}),h(2,12),r()()}if(o&2){_();let e=x(15);N("destination",e)}}function tt(o,n){if(o&1){let e=p();s(0,"app-destination-list",36),S("setDestination",function(t){c(e);let a=_();return T(a.setDestination(t))}),r()}}function nt(o,n){if(o&1){let e=p();s(0,"app-single-destination",37),M("targetUrlChange",function(t){c(e);let a=_();return P(a.targetUrlModel,t)||(a.targetUrlModel=t),T(t)}),r()}if(o&2){let e=_();A("targetUrl",e.targetUrlModel),N("useBackupState",!0)}}function it(o,n){o&1&&(u(0,3,1),d(1,"sh-icon",30),C())}function ot(o,n){o&1&&(u(0,3,2),d(1,"sh-icon"),C())}function at(o,n){o&1&&(s(0,"h2"),h(1,15),r())}function st(o,n){o&1&&(s(0,"h2"),h(1,16),r())}function rt(o,n){if(o&1){let e=p();s(0,"sh-dialog",38),M("isOpenChange",function(t){c(e);let a=_();return P(a.targetUrlDialogOpen,t)||(a.targetUrlDialogOpen=t),T(t)}),s(1,"header",39)(2,"div",40),m(3,at,2,0,"h2")(4,st,2,0,"h2"),s(5,"sh-alert",23),h(6,13),r()()(),s(7,"div",41)(8,"sh-form-field")(9,"textarea",42),M("ngModelChange",function(t){c(e);let a=_();return P(a.targetUrlCtrl,t)||(a.targetUrlCtrl=t),T(t)}),r()()(),s(10,"footer",43)(11,"button",28),S("click",function(){c(e);let t=_();return T(t.closeTargetUrlDialog(!1))}),f(12,"Cancel"),r(),s(13,"button",44),S("click",function(){c(e);let t=_();return T(t.closeTargetUrlDialog(!0))}),u(14,14),d(15,"sh-icon"),C(),r()()()}if(o&2){let e=_(),i=x(0);A("isOpen",e.targetUrlDialogOpen),N("options",Fe(4,Je)),l(3),F(i?4:3),l(6),A("ngModel",e.targetUrlCtrl)}}var V=new Pe,wt=(o={destinations:[]})=>V.group({destinations:V.array(o.destinations)}),Ut=({key:o,customGroup:n,dynamicGroup:e,advancedGroup:i})=>V.group({destinationType:V.control(o),custom:n,dynamic:e,advanced:i}),q=class o{#i=I(he);#o=I(De);#e=I(Ge);#t=I(ye);#a=I(we);injector=I(se);formRef=Ee.required("formRef");targetUrlModel=this.#e.targetUrlModel;targetUrlCtrl=D(null);targetUrlInitial=D(null);targetUrlDialogOpen=D(!1);toggleNewDestination=D(!0);testSignal=this.#e.testSignal;testErrorMessage=this.#e.testErrorMessage;selectedDestinationType=L(()=>{let n=this.targetUrlModel();if(!n)return null;let e=n.split("://")[0];return xe(e)??null});selectedDestinationTypeOption=L(()=>{let n=this.selectedDestinationType();return n?{key:n.customKey??n.key,customKey:n.customKey??null,displayName:n.displayName,description:n.description,icon:n.icon}:null});copyTargetUrl(){navigator.clipboard.writeText(this.targetUrlModel()??"")}openTargetUrlDialog(){let n=this.targetUrlModel();this.targetUrlCtrl.set(n),this.targetUrlInitial.set(n),this.targetUrlDialogOpen.set(!0)}closeTargetUrlDialog(n=!1){this.targetUrlDialogOpen.set(!1);let e=this.targetUrlCtrl(),i=this.targetUrlInitial();!n||e===i||!e||this.#e.setTargetUrl(e)}testDestination(n,e,i){let t=this.targetUrlModel();t&&(this.#e.setTestState("testing"),this.#a.testDestination(t,this.#e.backupId(),n,!0,!0).subscribe({next:a=>{if(a.action==="success"){this.#e.setTestState("success"),this.#e.isNew()&&(a.containsBackup===!0?(this.#e.setTestState("warning",$localize`The remote destination already contains a backup. Please use a different folder for each backup.`),e||this.#t.open($,{data:{title:$localize`Folder contains backup`,message:$localize`The remote destination already contains a backup. You must use a different folder for each backup.`,confirmText:$localize`OK`,cancelText:void 0}})):a.anyFilesFound===!0&&(this.#e.setTestState("warning",$localize`The remote destination contains unknown files.`),e||this.#t.open($,{data:{title:$localize`Folder is not empty`,message:$localize`The remote destination is not empty. It is recommended to use an empty folder for the backup.`,confirmText:$localize`OK`,cancelText:void 0}}))),i?.();return}if(this.#e.setTestState("error",a.errorMessage??$localize`An error occurred while testing the destination.`),a.action==="generic-error"){i?.();return}let E=t.includes("?");a.action==="trust-cert"&&this.#e.setTargetUrl(t+`${E?"&":"?"}accept-specified-ssl-hash=${a.certData}`),a.action==="approve-host-key"&&this.#e.setTargetUrl(t+`${E?"&":"?"}ssh-fingerprint=${a.reportedHostKey}`),a.testAgain?this.testDestination(a.destinationIndex,e):i?.()}}))}setDestination(n){this.#e.setTargetUrl(`${n}://`,!0)}removeDestination(){this.#e.setTargetUrl(null,!0)}goBack(){this.#i.navigate(["general"],{relativeTo:this.#o.parent})}next(){let n=this.#e.isNew(),e=this.testSignal();if(!n){this.#n();return}if(e===""){this.#t.open($,{data:{title:$localize`Test destination`,message:$localize`You have not tested the destination yet. Do you want to test it now?`,confirmText:$localize`Test now`,cancelText:$localize`Skip test and continue`},closed:i=>{i?this.testDestination(0,!1,()=>{this.testSignal()==="success"?this.#n():this.#t.open($,{data:{title:$localize`Test did not succeed`,message:this.testErrorMessage()??$localize`Failed to test the destination.`,confirmText:$localize`OK`,cancelText:void 0}})}):this.#n()}});return}if(e!=="success"){this.#t.open($,{data:{title:$localize`Test destination`,message:$localize`The destination has not been tested successfully. Are you sure you want to continue?`,confirmText:$localize`Yes, continue`,cancelText:$localize`Cancel`},closed:i=>{i&&this.#n()}});return}this.#n()}#n(){this.#e.isNew()||this.#e.submit(!0),this.#i.navigate(["source-data"],{relativeTo:this.#o.parent})}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=O({type:o,selectors:[["app-destination"]],viewQuery:function(e,i){e&1&&Se(i.formRef,ze,5),e&2&&pe()},decls:28,vars:11,consts:()=>{let n;n=$localize`Backup destination`;let e;e=$localize`${"\uFFFD#22\uFFFD"}:START_TAG_SH_ICON:arrow-left${"\uFFFD/#22\uFFFD"}:CLOSE_TAG_SH_ICON: Go back `;let i;i=$localize`${"\uFFFD*25:1\uFFFD"}:START_BLOCK_IF:${"\uFFFD#1:1\uFFFD"}:START_TAG_SH_ICON:spinner${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SH_ICON:${"\uFFFD/*25:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*26:2\uFFFD"}:START_BLOCK_ELSE:${"\uFFFD#1:2\uFFFD"}:START_TAG_SH_ICON_1:arrow-right${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SH_ICON:${"\uFFFD/*26:2\uFFFD"}:CLOSE_BLOCK_ELSE: Continue `,i=ge(i);let t;t=$localize` Test destination `;let a;a=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SH_ICON:link${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_ICON: Set target URL `;let E;E=$localize`${"\uFFFD#7\uFFFD"}:START_TAG_SH_ICON:link${"\uFFFD/#7\uFFFD"}:CLOSE_TAG_SH_ICON: Edit target URL `;let R;R=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SH_ICON:copy${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_ICON: Copy URL to clipboard `;let Q;Q=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SH_ICON:spinner${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_ICON: Testing connection... `;let Y;Y=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SH_ICON:check${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_ICON: Connection tested successfully. `;let Z;Z=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SH_ICON:warning${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_ICON: ${"\uFFFD0\uFFFD"}:INTERPOLATION: `;let ee;ee=$localize`${"\uFFFD#2\uFFFD"}:START_TAG_SH_ICON:warning${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_ICON: ${"\uFFFD0\uFFFD"}:INTERPOLATION: `;let te;te=$localize`Change`;let ne;ne=$localize`Be careful, this will overwrite everything you have in your destination.`;let ie;ie=$localize` Override target URL ${"\uFFFD#15\uFFFD"}:START_TAG_SH_ICON:swap${"\uFFFD/#15\uFFFD"}:CLOSE_TAG_SH_ICON:`;let oe;oe=$localize`Set target URL`;let ae;return ae=$localize`Edit target URL`,[["formRef",""],n,e,i,t,a,E,R,Q,Y,Z,ee,te,ne,ie,oe,ae,[3,"submit"],[1,"title-30"],[1,"actions"],["shButton","","type","button",1,"small",3,"loader","disabled"],["shButton","","type","button",1,"small"],[1,"success"],[1,"warn"],[1,"error"],[1,"current-destination",3,"destination"],[3,"targetUrl","useBackupState"],[1,"form-actions"],["shButton","","type","button",3,"click"],["shButton","","type","submit",1,"raised","primary",3,"disabled"],[1,"loader"],[3,"isOpen","options"],["shButton","","type","button",1,"small",3,"click","disabled"],["shButton","","type","button",1,"small",3,"click"],["menu",""],["icon",""],[3,"setDestination"],[3,"targetUrlChange","targetUrl","useBackupState"],[3,"isOpenChange","isOpen","options"],["header",""],[1,"target-dialog-header"],["content",""],["id","targetUrl","autocomplete","off",3,"ngModelChange","ngModel"],["footer",""],["shButton","","type","submit",1,"raised","primary",3,"click"]]},template:function(e,i){if(e&1){let t=p();H(0),s(1,"form",17,0),S("submit",function(){return c(t),T(i.next())}),s(3,"header")(4,"h3",18)(5,"span"),h(6,1),r(),s(7,"div",19),m(8,Xe,2,3,"button",20),m(9,He,3,0,"button",21)(10,We,9,1,"sh-menu"),r()(),m(11,qe,3,0,"sh-alert")(12,Qe,3,0,"sh-alert",22)(13,Ye,3,1,"sh-alert",23)(14,Ze,3,1,"sh-alert",24),H(15),m(16,et,3,1,"app-destination-list-item",25),r(),m(17,tt,1,0,"app-destination-list"),m(18,nt,1,2,"app-single-destination",26),s(19,"div",27)(20,"button",28),S("click",function(){return c(t),T(i.goBack())}),u(21,2),d(22,"sh-icon"),C(),r(),s(23,"button",29),u(24,3),m(25,it,2,0,"sh-icon",30)(26,ot,2,0,"sh-icon"),C(),r()()(),m(27,rt,16,5,"sh-dialog",31)}if(e&2){let t=j(!!i.targetUrlModel());l(8),F(t?8:-1),l(),F(t?10:9),l(2),F(i.testSignal()=="testing"?11:i.testSignal()=="success"?12:i.testSignal()=="warning"?13:i.testSignal()=="error"?14:-1),l(4);let a=j(i.selectedDestinationTypeOption());l(),F(a?16:-1),l(),F(t?-1:17),l(),F(t?18:-1),l(5),N("disabled",i.testSignal()=="testing"||!t),l(2),F(i.testSignal()=="testing"?25:26),l(2),F(i.targetUrlDialogOpen()?27:-1)}},dependencies:[be,K,y,b,Ae,G,w,Oe,U,fe,B,k,Le,v,$e,Me],styles:["[_nghost-%COMP%]{display:block;width:100%;max-width:40rem;padding:2.5rem 2.5rem 0}header[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%], header[_ngcontent-%COMP%] sh-alert[_ngcontent-%COMP%]{width:100%}header[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;gap:.5rem}header[_ngcontent-%COMP%] p[_ngcontent-%COMP%] span[_ngcontent-%COMP%]{cursor:pointer;text-decoration:underline}header[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%]{display:flex;gap:.5rem}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem;height:100%;padding:0 0 2.5rem}.current-destination[_ngcontent-%COMP%]{margin:1rem 0 0}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}.most-common-destinations[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.most-common-destinations[_ngcontent-%COMP%] .tile[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem;padding:1rem;border:1px solid var(--base-4);border-radius:var(--shape-3);box-shadow:var(--box-shadow-10);background-color:var(--base-2);cursor:pointer}.most-common-destinations[_ngcontent-%COMP%] .tile[_ngcontent-%COMP%] h3[_ngcontent-%COMP%]{font:var(--paragraph-10);margin:0}.target-dialog-header[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;justify-content:space-between;gap:.5rem}"],changeDetection:0})};export{wt as createDestinationForm,Ut as createDestinationFormGroup,q as default};