@duplicati/ngclient 0.0.233 → 0.0.235
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.
- package/assets/sh.woff2 +0 -0
- package/chunk-29_4gGIi.js +2 -0
- package/{chunk-C3gUxHQM.js → chunk-3YzyUT-a.js} +1 -1
- package/chunk-6-sszNfh.js +1 -0
- package/chunk-7T5O8Syb.js +1 -0
- package/{chunk-CS2J-6VZ.js → chunk-B61kkU_h.js} +1 -1
- package/chunk-B891gwjc.js +1 -0
- package/chunk-BDJqKfxm.js +1 -0
- package/chunk-BEUeHgR9.js +1 -0
- package/chunk-BEzhTDp8.js +2 -0
- package/{chunk-DDWDcSq2.js → chunk-BGuvkLC9.js} +1 -1
- package/{chunk-DXEgz1tV.js → chunk-BJOhC2d8.js} +1 -1
- package/chunk-BOKNwzSl.js +2 -0
- package/chunk-BSCc2xDv.js +1 -0
- package/chunk-BWSg9cLt.js +2 -0
- package/chunk-BWvawawS.js +2 -0
- package/chunk-B_I_9Y7k.js +1 -0
- package/chunk-Bgd5lu61.js +1 -0
- package/chunk-BjqgOGb9.js +2 -0
- package/chunk-Bq_vr6Q3.js +2 -0
- package/{chunk-C9OqpwwE.js → chunk-Brfc2m61.js} +1 -1
- package/{chunk-C9ecLR93.js → chunk-Btvi2S15.js} +11 -11
- package/chunk-C0KXp4hd.js +1 -0
- package/chunk-C0XQD9NK.js +1 -0
- package/chunk-C1-31fA7.js +1 -0
- package/chunk-C185qUb-.js +1 -0
- package/{chunk-CyqqlRjO.js → chunk-C1py21yb.js} +2 -2
- package/chunk-C4Uv1C-T.js +1 -0
- package/{chunk-B1c7h-_w.js → chunk-CFgDqLU0.js} +1 -1
- package/{chunk-aCJqF9DH.js → chunk-CGnjVnmu.js} +1 -1
- package/{chunk-DidJB9ig.js → chunk-CKUlUN3q.js} +1 -1
- package/chunk-CLlZiOaO.js +2 -0
- package/chunk-CQVPqpMp.js +2 -0
- package/chunk-CSrYlKTK.js +2 -0
- package/chunk-CdzKkYEw.js +2 -0
- package/chunk-Cj_yOpND.js +1 -0
- package/chunk-ClFp7JLZ.js +1 -0
- package/{chunk-DGvC49aU.js → chunk-Cm7JSdTO.js} +1 -1
- package/{chunk-D1pDZLJ9.js → chunk-CnZx831x.js} +1 -1
- package/chunk-CsVpmA6t.js +1 -0
- package/chunk-Css7wqTG.js +2 -0
- package/chunk-CxbeRJcJ.js +1 -0
- package/chunk-CzoH_Agx.js +1 -0
- package/chunk-CzsiJ0k-.js +1 -0
- package/chunk-D04TnMUn.js +2 -0
- package/{chunk-BstaUtD_.js → chunk-D2P9ER0I.js} +1 -1
- package/{chunk-mA4J4_nC.js → chunk-D38QrkIM.js} +1 -1
- package/chunk-D4g_OF7M.js +1 -0
- package/chunk-D5V6OY_2.js +2 -0
- package/{chunk-FTZ5atHM.js → chunk-D6IQFx6m.js} +1 -1
- package/chunk-D6y9RCQD.js +1 -0
- package/chunk-D7UddV5F.js +1 -0
- package/chunk-D9jPw9Ov.js +1 -0
- package/chunk-DA7rrIf8.js +1 -0
- package/chunk-DB0aGcRM.js +1 -0
- package/{chunk-DhiIZLrA.js → chunk-DBkkb6OR.js} +3 -3
- package/chunk-DE8p9-HP.js +1 -0
- package/chunk-DFLxy15J.js +1 -0
- package/chunk-DHkdQ4u3.js +3 -0
- package/chunk-DKRWta24.js +2 -0
- package/chunk-DSeMtMg3.js +1 -0
- package/chunk-DWCofCiP.js +14 -0
- package/chunk-DXLQftDm.js +1 -0
- package/{chunk-lymL5FDY.js → chunk-DYV1Pbu1.js} +1 -1
- package/chunk-DaXXLSfy.js +2 -0
- package/chunk-Dbq-qyNL.js +3 -0
- package/{chunk-8Y8ReLEn.js → chunk-DkVHfoYw.js} +2 -2
- package/chunk-DmCJ7w-M.js +1 -0
- package/{chunk-MDqH8T3Z.js → chunk-DneBfCBh.js} +2 -2
- package/{chunk-CX3Axjpk.js → chunk-DuRr4rDS.js} +1 -1
- package/chunk-Dv_fBX0w.js +1 -0
- package/chunk-IqMUABbN.js +1 -0
- package/chunk-Kq2ZFJSk.js +1 -0
- package/chunk-NAAMYA7J.js +1 -0
- package/chunk-NiMN4Rl6.js +1 -0
- package/chunk-OQ_HQ9EL.js +1 -0
- package/chunk-W1dL7dqQ.js +4 -0
- package/chunk-_OzpLe0L.js +1 -0
- package/chunk-ayE11Iz-.js +1 -0
- package/chunk-fDWfSg6Y.js +3 -0
- package/chunk-gId840Er.js +1 -0
- package/{chunk-B6c2NXNy.js → chunk-iGzJokt-.js} +1 -1
- package/{chunk-BmmYJhOf.js → chunk-iU19kwHx.js} +1 -1
- package/chunk-m8vMm7S6.js +1 -0
- package/chunk-xD8qjoz4.js +1 -0
- package/chunk-xI8Kkqgy.js +1 -0
- package/{chunk-h6n5A491.js → chunk-zOY5leQB.js} +1 -1
- package/index.html +1 -1
- package/main-2ZYVV4C4.js +21 -0
- package/package.json +1 -1
- package/assets/dest-icons/sia_logo_dark.92db63f5.svg +0 -6
- package/chunk-AuCOjHXM.js +0 -1
- package/chunk-B1wZ4poV.js +0 -1
- package/chunk-B5Y6lgE8.js +0 -1
- package/chunk-BZgAzrl9.js +0 -2
- package/chunk-B_cIFQAl.js +0 -1
- package/chunk-BaSm1lsB.js +0 -2
- package/chunk-Bgw6E0Xu.js +0 -2
- package/chunk-Bj7EyCHb.js +0 -1
- package/chunk-BrtdRb9j.js +0 -1
- package/chunk-BsNCg00z.js +0 -2
- package/chunk-BxpXVeOr.js +0 -1
- package/chunk-ByL8ndec.js +0 -1
- package/chunk-BzJX1fKw.js +0 -1
- package/chunk-C7AeY2HY.js +0 -2
- package/chunk-C7gG_Yh_.js +0 -2
- package/chunk-CGsQCBkP.js +0 -1
- package/chunk-CIe9Bupz.js +0 -1
- package/chunk-CIw_h8oP.js +0 -1
- package/chunk-CP6xnjgo.js +0 -3
- package/chunk-CWgXi-7W.js +0 -1
- package/chunk-Ca1aaA1h.js +0 -1
- package/chunk-CfxBiw7I.js +0 -1
- package/chunk-CgJAbgNN.js +0 -1
- package/chunk-ChUm8bnG.js +0 -1
- package/chunk-CkRbgemk.js +0 -2
- package/chunk-ClRItSzt.js +0 -1
- package/chunk-CsIAXoYP.js +0 -1
- package/chunk-CuJ_uEdr.js +0 -1
- package/chunk-CvSsZZty.js +0 -1
- package/chunk-D2G7_0hG.js +0 -2
- package/chunk-D3PhthfU.js +0 -2
- package/chunk-D55uWC7G.js +0 -1
- package/chunk-DD_wKpGc.js +0 -1
- package/chunk-DGxk44Me.js +0 -2
- package/chunk-DM11Gu0H.js +0 -1
- package/chunk-DV8bRznt.js +0 -2
- package/chunk-DWiO0A6h.js +0 -2
- package/chunk-DbbyVAGl.js +0 -1
- package/chunk-DcdpG1YG.js +0 -3
- package/chunk-Dk-Wgx3e.js +0 -1
- package/chunk-DuYKanVS.js +0 -1
- package/chunk-DwmssGG9.js +0 -2
- package/chunk-DxFBzFom.js +0 -1
- package/chunk-Dz5guW4b.js +0 -3
- package/chunk-I5dxaHZ4.js +0 -2
- package/chunk-K2iai6rC.js +0 -1
- package/chunk-L8hQtTzU.js +0 -1
- package/chunk-Y-xXBGKy.js +0 -1
- package/chunk-Z81HNfgo.js +0 -1
- package/chunk-aYCYzU5Q.js +0 -1
- package/chunk-bt6lhYfG.js +0 -1
- package/chunk-eiyaQxBt.js +0 -1
- package/chunk-jy8x4GhV.js +0 -1
- package/chunk-ksSA-rDF.js +0 -1
- package/chunk-mflQLMHH.js +0 -2
- package/chunk-nuwlP4Wz.js +0 -14
- package/chunk-uGh0bVbu.js +0 -4
- package/main-3NL5M6JB.js +0 -16
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import {t as te}from'./chunk-DmCJ7w-M.js';import'./chunk-C1-31fA7.js';import {O}from'./chunk-iU19kwHx.js';import {m}from'./chunk-C185qUb-.js';import {r}from'./chunk-BEUeHgR9.js';import {J}from'./chunk-CGnjVnmu.js';import'./chunk-DuRr4rDS.js';import {N as Nt$1}from'./chunk-C1py21yb.js';import {c}from'./chunk-3YzyUT-a.js';import {D}from'./chunk-CKUlUN3q.js';import {c1 as Ms,c2 as j,c3 as ft,c4 as go,T,a6 as be,f,I,c5 as f$1,G as Ge,N as Nt,Q as Qa,C as Zu,c6 as wt,au as h,g as gw,v as v$1,a as N,u as ue,d as Ig,Z as Zi,o as oC,W as Wl,l as lT,w as Hg,t as bD,F as Fg,j as jg,n as lm,b4 as cg,b as bE,c as uT,K as Kg,z as vg,a3 as XC,M as MD,av as Vg,aw as iC,y as cm,s as sC,p as qC,ab as J$1,B as w1,ad as sy,b7 as lg,b8 as sT,b9 as aT,O as qg,R as hC,af as eo,E as E1,ag as D1,bd as ce,S as lC,U as ql,Y as uC,X as Gl,H as HC,ao as Bg,V as Eg,aD as sm,ah as Yg,x as xC,h as aC,J as im,i as ET,P as Pd,L as Ld,as as Yp,a9 as QC,aa as Yl}from'./main-2ZYVV4C4.js';import {d}from'./chunk-BGuvkLC9.js';import {F as Fe}from'./chunk-DBkkb6OR.js';import {B as Bn$1,Z as Ze,o as on,R as Rn$1,J as Jt,G as Gn$1}from'./chunk-iGzJokt-.js';import {a as at}from'./chunk-DneBfCBh.js';import {v}from'./chunk-Bq_vr6Q3.js';import {R}from'./chunk-D9jPw9Ov.js';import'./chunk-CnZx831x.js';import'./chunk-Cm7JSdTO.js';var gn=[[["label"]],[["input","type","range"]]],Cn=["label","input[type=range]"],dn=(()=>{class i{constructor(){this.hasInput=Ge(false),this.#n=T(eo),this.#i=null,this.#e=null,this.#t=0,this.unit=E1(""),this.value=D1(this.#t),this.inputState=Ge({min:0,max:100,step:1}),this.color=E1(null),this.variant=E1(null),this.size=E1(null),this.sharp=E1(void 0),this.alwaysShow=E1(void 0),this.hostClasses=ce("rangeSlider",{color:this.color,variant:this.variant,size:this.size,sharp:this.sharp,alwaysShow:this.alwaysShow}),this.valuePercentage=Nt(()=>{let{min:e,max:n}=this.inputState(),a=this.value()??e;if(isNaN(a))return 0;let l=n-e;if(l===0)return 0;let m=(a-e)/l*100;return Math.max(0,Math.min(100,m))}),this.trackFilledPercentage=Nt(()=>this.valuePercentage()),this.thumbPositionPercentage=Nt(()=>this.valuePercentage()),this.syncModelToInputEffect=Qa(()=>{let e=this.value();if(this.#e){let n=parseFloat(this.#e.value);(isNaN(n)||String(n)!==String(e))&&(this.#e.value=String(e));}});}#n;#i;#e;#t;ngAfterViewInit(){this.#e=this.#n.nativeElement.querySelector('input[type="range"]'),this.#e?(this.hasInput.set(true),this.#a(this.#e),this.#e.oninput=()=>{this.setNewInputValue(this.#e.value);},this.#e.addEventListener("inputValueChanged",e=>{this.setNewInputValue(e.detail.value);}),queueMicrotask(()=>this.#s(true)),this.#r()):console.error('ShipRangeSlider: No <input type="range"> element found projected inside.');}setNewInputValue(e){let n=parseFloat(e??"0");if(!isNaN(n)){let{min:a,max:l}=this.inputState();this.value.set(Math.max(a,Math.min(l,n)));}}trackEvent(e){if(!this.#e||this.#e.readOnly||this.#e.disabled){e.preventDefault(),e.stopPropagation();return}if(e.target===this.#e||e.target?.closest(".thumb, .min-indicator, .max-indicator"))return;let a=e.currentTarget.getBoundingClientRect(),l=e.clientX-a.left,m=a.width,{min:u,max:E,step:f}=this.inputState(),W=E-u;if(m>0&&W!==0&&f>0){let Q=(l/m*W+u-u)/f,J=u+Math.round(Q)*f,V=this.#o(f);J=parseFloat(J.toFixed(V));let Y=Math.max(u,Math.min(E,J));this.value.set(Y);}}#s(e=false){if(!this.#e)return;let n=parseFloat(this.#e.min??"0")??0,a=parseFloat(this.#e.max??"100")??100,l=this.#e.step,m=1;if(l&&l.toLowerCase()!=="any"){let E=parseFloat(l);!isNaN(E)&&E>0&&(m=E);}this.inputState.set({min:n,max:a,step:m});let u=parseFloat(this.#e.value??String(n))??n;if(e&&this.value()!==this.#t){let E=this.value(),f=Math.max(n,Math.min(a,E));u!==f&&(this.#e.value=String(f)),E!==f&&this.value.set(f);}else {let E=Math.max(n,Math.min(a,u));this.value()!==E&&this.value.set(E);}}#r(){if(!this.#e||typeof MutationObserver>"u")return;let e=["min","max","step","value","readonly","disabled"];this.#i=new MutationObserver(n=>{let a=false;for(let l of n)if(l.type==="attributes"&&e.includes(l.attributeName??"")){a=true;break}a&&this.#s(false);}),this.#i.observe(this.#e,{attributes:true,attributeFilter:e});}#o(e){if(isNaN(e)||Math.floor(e)===e)return 0;let a=e.toString().split(".")[1];return a?a.length:0}#a(e){Object.defineProperty(e,"value",{configurable:true,get(){return Object.getOwnPropertyDescriptor(Object.getPrototypeOf(e),"value").get.call(this)},set(n){Object.getOwnPropertyDescriptor(Object.getPrototypeOf(e),"value").set.call(this,n);let l=new CustomEvent("inputValueChanged",{bubbles:true,cancelable:true,detail:{value:n}});return this.dispatchEvent(l),n}});}ngOnDestroy(){this.#i&&this.#i.disconnect(),this.#e&&(this.#e.oninput=null);}static{this.\u0275fac=function(n){return new(n||i)};}static{this.\u0275cmp=gw({type:i,selectors:[["sh-range-slider"]],hostVars:6,hostBindings:function(n,a){n&2&&(xC(a.hostClasses()),Kg("sh-range-slider",true)("has-input",a.hasInput()));},inputs:{unit:[1,"unit"],value:[1,"value"],color:[1,"color"],variant:[1,"variant"],size:[1,"size"],sharp:[1,"sharp"],alwaysShow:[1,"alwaysShow"]},outputs:{value:"valueChange"},ngContentSelectors:Cn,decls:15,vars:10,consts:[[1,"label"],[1,"input-wrap"],[1,"min-indicator"],[1,"track-wrap",3,"click"],[1,"track"],[1,"track-filled"],[1,"thumb-wrap"],[1,"thumb"],[1,"value-indicator"],[1,"max-indicator"]],template:function(n,a){n&1&&(lC(gn),ql(0,"div",0),uC(1),Gl(),ql(2,"div",1)(3,"div",2),HC(4),Gl(),ql(5,"div",3),Bg("click",function(m){return a.trackEvent(m)}),uC(6,1),ql(7,"div",4),Eg(8,"div",5),Gl(),ql(9,"div",6)(10,"div",7)(11,"div",8),HC(12),Gl()()()(),ql(13,"div",9),HC(14),Gl()()),n&2&&(bE(4),sm("",a.inputState().min,"",a.unit()),bE(4),Yg("width",a.trackFilledPercentage(),"%"),bE(),Yg("left",a.thumbPositionPercentage(),"%"),bE(3),sm("",a.value(),"",a.unit()),bE(2),sm("",a.inputState().max,"",a.unit()));},styles:[`sh-range-slider{--rs-h: 2.5rem;--rs-f: var(--paragraph-30);--rs-unit-g: .75rem;--rs-unit-c: var(--base-8);--rst: var(--base-3);--rst-bc: var(--base-1);--rst-bg: var(--base-4);--rst-h: .5rem;--rst-s: calc(var(--shape-2) / 2);--rs-thumb-c: var(--base-8);--rs-thumb-bc: var(--base-1);--rs-thumb-value-bg: var(--base-4);--rs-thumb-arrow: var(--rs-thumb-value-bg);--rs-thumb-value-c: var(--base-8);--rs-thumb-si: 1rem;--rs-thumb-w: var(--rs-thumb-si);--rs-thumb-s: calc(var(--rs-thumb-w) / 2);display:flex;flex-direction:column;width:100%;font:var(--rs-f)}sh-range-slider.sharp{--rst-s: .125rem;--rs-thumb-s: .125rem;--rs-thumb-bc: transparent !important}sh-range-slider .label{display:flex;align-items:center;gap:.5rem;padding-bottom:.25rem}sh-range-slider .label>label{display:flex;align-items:center;gap:.25rem}sh-range-slider .label sh-icon{color:var(--grey-500);font-size:1rem}sh-range-slider .label:empty{display:none}sh-range-slider[readonly]:not([readonly=false]),sh-range-slider:has(input[type=range][readonly]:not([readonly=false])),sh-range-slider[disabled]:not([disabled=false]),sh-range-slider:has(input[type=range][disabled]:not([disabled=false])){opacity:.4;pointer-events:none;-webkit-user-select:none;user-select:none;cursor:initial}sh-range-slider:has(input[type=range][readonly]) .thumb .value-indicator,sh-range-slider.always-show .thumb .value-indicator{opacity:1}sh-range-slider input[type=range]{appearance:none;width:100%;height:100%;position:absolute;inset:0;opacity:0;margin:0;z-index:1000}sh-range-slider .input-wrap{display:flex;align-items:center;justify-content:center;width:100%;min-height:var(--rs-h);position:relative;gap:var(--rs-unit-g)}sh-range-slider .thumb-wrap{position:absolute;top:0}sh-range-slider .thumb{position:relative;margin-top:calc(-1 * var(--rs-thumb-si) / 4);width:var(--rs-thumb-w);height:var(--rs-thumb-si);border-radius:var(--rs-thumb-s);background-color:var(--rs-thumb-c);border:1px solid var(--rs-thumb-bc);box-shadow:var(--box-shadow-20);transform:translate(-50%)}sh-range-slider .track-wrap{position:relative;width:100%;height:var(--rst-h)}sh-range-slider .track{position:relative;width:100%;height:var(--rst-h);border-radius:var(--rst-s);background-color:var(--rst);border:1px solid var(--rst-bc);overflow:hidden}sh-range-slider .track-filled{position:absolute;top:0;left:0;bottom:0;background:var(--rst-bg);width:0}sh-range-slider .min-indicator,sh-range-slider .max-indicator{white-space:nowrap;color:var(--rs-unit-c)}sh-range-slider input[type=range]:hover~.thumb-wrap .value-indicator,sh-range-slider input[type=range]:focus~.thumb-wrap .value-indicator{opacity:1}sh-range-slider .value-indicator{position:absolute;top:-1.875rem;height:1.5rem;min-width:1.5rem;border-radius:var(--shape-2);left:50%;margin:auto;transform:translate(-50%);padding:.25rem .5rem;background:var(--rs-thumb-value-bg);color:var(--rs-thumb-value-c);white-space:nowrap;opacity:0;transition:opacity 125ms linear;-webkit-user-select:none;user-select:none;pointer-events:none}sh-range-slider .value-indicator:after{content:"";border-top:.3125rem solid var(--rs-thumb-arrow);border-left:.3125rem solid transparent;border-right:.3125rem solid transparent;position:absolute;top:calc(100% - 1px);left:50%;margin-left:-.3125rem}sh-range-slider.primary{--rst-bg: var(--primary-8);--rs-thumb-arrow: var(--primary-8);--rs-thumb-value-bg: var(--primary-8);--rs-thumb-value-c: #fff}sh-range-slider.accent{--rst-bg: var(--accent-8);--rs-thumb-arrow: var(--accent-8);--rs-thumb-value-bg: var(--accent-8);--rs-thumb-value-c: #fff}sh-range-slider.warn{--rst-bg: var(--warn-8);--rs-thumb-arrow: var(--warn-8);--rs-thumb-value-bg: var(--warn-8);--rs-thumb-value-c: #fff}sh-range-slider.error{--rst-bg: var(--error-8);--rs-thumb-arrow: var(--error-8);--rs-thumb-value-bg: var(--error-8);--rs-thumb-value-c: #fff}sh-range-slider.success{--rst-bg: var(--success-8);--rs-thumb-arrow: var(--success-8);--rs-thumb-value-bg: var(--success-8);--rs-thumb-value-c: #fff}sh-range-slider.simple{--rst-h: 1rem;--rst-s: var(--shape-2)}sh-range-slider.simple .thumb{width:1px;height:var(--rst-h);margin-top:0;border-radius:0;border:none;box-shadow:none}sh-range-slider.simple.primary{--rst-bg: var(--primary-8);--rst: var(--primary-2);--rs-thumb-c: var(--primary-8);--rs-thumb-bc: var(--base-1);--rs-thumb-value-bg: var(--primary-8);--rs-thumb-value-c: var(--primary-2)}sh-range-slider.simple.accent{--rst-bg: var(--accent-8);--rst: var(--accent-2);--rs-thumb-c: var(--accent-8);--rs-thumb-bc: var(--base-1);--rs-thumb-value-bg: var(--accent-8);--rs-thumb-value-c: var(--accent-2)}sh-range-slider.simple.warn{--rst-bg: var(--warn-8);--rst: var(--warn-2);--rs-thumb-c: var(--warn-8);--rs-thumb-bc: var(--base-1);--rs-thumb-value-bg: var(--warn-8);--rs-thumb-value-c: var(--warn-2)}sh-range-slider.simple.error{--rst-bg: var(--error-8);--rst: var(--error-2);--rs-thumb-c: var(--error-8);--rs-thumb-bc: var(--base-1);--rs-thumb-value-bg: var(--error-8);--rs-thumb-value-c: var(--error-2)}sh-range-slider.simple.success{--rst-bg: var(--success-8);--rst: var(--success-2);--rs-thumb-c: var(--success-8);--rs-thumb-bc: var(--base-1);--rs-thumb-value-bg: var(--success-8);--rs-thumb-value-c: var(--success-2)}sh-range-slider.outlined{--rst: var(--base-1);--rst-bc: var(--base-4);--rs-thumb-c: var(--base-6);--rs-thumb-bc: var(--base-1);--rs-thumb-arrow: var(--base-4)}sh-range-slider.outlined.primary,sh-range-slider.outlined.accent,sh-range-slider.outlined.warn,sh-range-slider.outlined.error,sh-range-slider.outlined.success{--rst: var(--base-2)}sh-range-slider.outlined.primary{--rst-bg: var(--primary-4);--rst-bc: var(--primary-8);--rs-thumb-c: var(--primary-8);--rs-thumb-bc: var(--base-1);--rs-thumb-value-bg: var(--primary-4);--rs-thumb-value-c: var(--primary-8);--rs-thumb-arrow: var(--primary-4)}sh-range-slider.outlined.accent{--rs-thumb-c: var(--accent-4);--rs-thumb-bc: var(--base-1);--rs-thumb-value-bg: var(--accent-4);--rs-thumb-value-c: var(--accent-8);--rs-thumb-arrow: var(--accent-4)}sh-range-slider.outlined.warn{--rs-thumb-c: var(--warn-4);--rs-thumb-bc: var(--base-1);--rs-thumb-value-bg: var(--warn-4);--rs-thumb-value-c: var(--warn-8);--rs-thumb-arrow: var(--warn-4)}sh-range-slider.outlined.error{--rs-thumb-c: var(--error-4);--rs-thumb-bc: var(--base-1);--rs-thumb-value-bg: var(--error-4);--rs-thumb-value-c: var(--error-8);--rs-thumb-arrow: var(--error-4)}sh-range-slider.outlined.success{--rs-thumb-c: var(--success-4);--rs-thumb-bc: var(--base-1);--rs-thumb-value-bg: var(--success-4);--rs-thumb-value-c: var(--success-8);--rs-thumb-arrow: var(--success-4)}sh-range-slider.flat{--rs-thumb-c: #fff;--rs-thumb-bc: var(--base-4)}sh-range-slider.flat.primary,sh-range-slider.flat.accent,sh-range-slider.flat.warn,sh-range-slider.flat.error,sh-range-slider.flat.success{--rst: var(--base-3);--rs-thumb-c: #fff;--rs-thumb-bc: var(--base-4);--rs-thumb-value-bg: var(--base-8);--rs-thumb-value-c: #fff}sh-range-slider.flat.primary{--rst-bg: var(--primary-8);--rs-thumb-value-bg: var(--primary-8)}sh-range-slider.flat.accent{--rst-bg: var(--accent-8);--rs-thumb-value-bg: var(--accent-8)}sh-range-slider.flat.warn{--rst-bg: var(--warn-8);--rs-thumb-value-bg: var(--warn-8)}sh-range-slider.flat.error{--rst-bg: var(--error-8);--rs-thumb-value-bg: var(--error-8)}sh-range-slider.flat.success{--rst-bg: var(--success-8);--rs-thumb-value-bg: var(--success-8)}sh-range-slider.raised{--rst-bg: var(--base-g2);--rs-thumb-c: #fff;--rs-thumb-bc: var(--base-4)}sh-range-slider.raised.primary,sh-range-slider.raised.accent,sh-range-slider.raised.warn,sh-range-slider.raised.error,sh-range-slider.raised.success{--rst: var(--base-3);--rs-thumb-c: #fff;--rs-thumb-bc: var(--base-4);--rs-thumb-value-bg: var(--base-g6);--rs-thumb-value-c: #fff}sh-range-slider.raised.primary{--rst-bg: var(--primary-g2);--rs-thumb-arrow: var(--primary-8);--rs-thumb-value-bg: var(--primary-g3)}sh-range-slider.raised.accent{--rst-bg: var(--accent-g2);--rs-thumb-arrow: var(--accent-8);--rs-thumb-value-bg: var(--accent-8)}sh-range-slider.raised.warn{--rst-bg: var(--warn-g2);--rs-thumb-arrow: var(--warn-8);--rs-thumb-value-bg: var(--warn-8)}sh-range-slider.raised.error{--rst-bg: var(--error-g2);--rs-thumb-arrow: var(--error-8);--rs-thumb-value-bg: var(--error-8)}sh-range-slider.raised.success{--rst-bg: var(--success-g2);--rs-thumb-arrow: var(--success-8);--rs-thumb-value-bg: var(--success-8)}
|
|
2
|
+
`],encapsulation:2});}}return i})();var pn=["formRef"],En=()=>[import('./chunk-CSrYlKTK.js').then(i=>i.OptionsListComponent)];function mn(i,t){i&1&&(Zi(0,"sh-alert",3),oC(1,1),Wl());}function Nn(i,t){if(i&1){let e=ET();Zi(0,"app-options-list",5),lm("optionsChange",function(a){Pd(e);let l=aC();return qC(l.settings,a)||(l.settings=a),Ld(a)}),Wl();}if(i&2){let e=aC();cm("options",e.settings),vg("hasFreeTextSettings",true);}}var K=class i{#n=T(R);#i=T(J$1);formRef=w1.required("formRef");settings=Ge([]);isSubmitting=Ge(false);isLoadingOptions=Ge(true);saved=Ge(false);lastRecievedServerSettings=Ge({});serverSettingsEffect=Qa(()=>{let t=this.#n.serverSettings();if(t===void 0)return;this.lastRecievedServerSettings.set(t),this.isLoadingOptions.set(true);let e=Object.entries(t);e.forEach(([n,a],l)=>{if(n.startsWith("--")){let m=n.substring(2);this.settings.update(u=>(u.some(E=>E.Name===m||E.Name===n)||u.push({Name:n,Value:a}),u));}l===e.length-1&&this.isLoadingOptions.set(false);});});submit(){this.isSubmitting.set(true);let t=this.settings(),e=this.lastRecievedServerSettings(),n=t.map(u=>u.Name?.startsWith("--")?u.Name:`--${u.Name}`),l=Object.keys(e).filter(u=>u.startsWith("--")).filter(u=>!n.includes(u)),m=t.reduce((u,E)=>{let f=E.Name?.startsWith("--")?E.Name:`--${E.Name}`;return u[f]=E.Value,u},{});l.forEach(u=>{m[u]=null;}),sy(()=>this.#i.patchApiV1Serversettings({body:m})).pipe(Zu(()=>this.isSubmitting.set(false))).subscribe({next:()=>{this.#n.refreshServerSettings(),this.saved.set(true),setTimeout(()=>{this.saved.set(false);},3e3);}});}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=gw({type:i,selectors:[["app-advanced-options-settings"]],viewQuery:function(e,n){e&1&&qg(n.formRef,pn,5),e&2&&hC();},decls:8,vars:4,consts:()=>{let t;t=$localize`${"\uFFFD#4\uFFFD"}:START_TAG_SH_ICON:floppy-disk${"\uFFFD/#4\uFFFD"}:CLOSE_TAG_SH_ICON: Save settings `;let e;return e=$localize`Settings saved`,[t,e,[1,"actions"],[1,"success"],["shButton","","type","button",1,"raised","primary",3,"click"],[3,"optionsChange","options","hasFreeTextSettings"]]},template:function(e,n){e&1&&(Zi(0,"div",2),lT(1,mn,2,0,"sh-alert",3),Zi(2,"button",4),Hg("click",function(){return n.submit()}),Fg(3,0),Ig(4,"sh-icon"),jg(),Wl()(),lg(5,Nn,1,2),sT(6,5,En)),e&2&&(bE(),uT(n.saved()?1:-1),bE(),Kg("loading",n.isSubmitting()),bE(4),aT(!n.isLoadingOptions()));},dependencies:[Gn$1,v$1,N,ue],styles:["[_nghost-%COMP%]{display:block;width:100%;max-width:40.625rem;justify-self:flex-end}.actions[_ngcontent-%COMP%]{display:flex;gap:.5rem;justify-content:flex-end;margin-bottom:.5rem}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.form-wrap[_ngcontent-%COMP%]{display:grid;grid-template-columns:2fr 2.5rem;gap:.5rem;align-items:flex-end}.remote-volume-wrap[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem}.remote-volume-wrap[_ngcontent-%COMP%] p.warning[_ngcontent-%COMP%]{color:#7d7d00}.row-inputs[_ngcontent-%COMP%]{display:flex;align-items:flex-end;gap:.5rem}.row-inputs[_ngcontent-%COMP%] > *[_ngcontent-%COMP%]{flex:1 0}.advanced-option[_ngcontent-%COMP%]{display:grid;gap:.5rem;grid-template-columns:1fr 1fr 2.5rem;align-items:flex-end}"]})};function fn(i,t){if(i&1){let e=ET();Zi(0,"sh-form-field",12)(1,"input",13),lm("ngModelChange",function(a){Pd(e);let l=aC(2);return qC(l.registerUrl,a)||(l.registerUrl=a),Ld(a)}),Wl(),bD(),Wl(),Zi(2,"button",14),Hg("click",function(){Pd(e);let a=aC(2);return Ld(a.register())}),oC(3,0),Wl();}if(i&2){let e=aC(2);bE(),cm("ngModel",e.registerUrl),MD();}}function In(i,t){if(i&1&&(Zi(0,"div",9)(1,"label"),oC(2,1),Wl(),Zi(3,"a",15),HC(4),Wl()()),i&2){let e=aC(2);bE(3),vg("href",QC(e.claimUrl()),Yp),bE(),im(e.claimUrl());}}function Mn(i,t){i&1&&(Zi(0,"div",9)(1,"label"),oC(2,2),Wl()());}function Pn(i,t){if(i&1){let e=ET();Zi(0,"button",14),Hg("click",function(){Pd(e);let a=aC(2);return Ld(a.cancel())}),oC(1,3),Wl();}}function On(i,t){if(i&1){let e=ET();Zi(0,"button",14),Hg("click",function(){Pd(e);let a=aC(2);return Ld(a.disable())}),oC(1,4),Wl();}}function bn(i,t){if(i&1){let e=ET();Zi(0,"button",14),Hg("click",function(){Pd(e);let a=aC(2);return Ld(a.enable())}),oC(1,5),Wl(),Zi(2,"button",16),Hg("click",function(){Pd(e);let a=aC(2);return Ld(a.delete())}),oC(3,6),Wl();}}function Rn(i,t){i&1&&(Fg(0,7,1),Ig(1,"sh-icon"),jg());}function Gn(i,t){i&1&&(Fg(0,7,2),Ig(1,"sh-icon"),jg());}function vn(i,t){if(i&1){let e=ET();Zi(0,"sh-chip",17),Hg("click",function(){Pd(e);let a=aC(2);return Ld(a.copyReportingUrl())}),Fg(1,7),lT(2,Rn,2,0,"sh-icon")(3,Gn,2,0,"sh-icon"),jg(),Wl();}if(i&2){let e=aC(2);bE(2),uT(e.copiedReportingUrl()===true?2:3);}}function yn(i,t){if(i&1&&(Zi(0,"div",8),lT(1,fn,4,1),lT(2,In,5,3,"div",9),lT(3,Mn,3,0,"div",9),lT(4,Pn,2,0,"button",10),lT(5,On,2,0,"button",10),lT(6,bn,4,0),lT(7,vn,4,1,"sh-chip",11),Wl()),i&2){let e=aC();bE(),uT(e.state()==="inactive"?1:-1),bE(),uT(e.state()==="registered"?2:-1),bE(),uT(e.state()==="registering"?3:-1),bE(),uT(e.state()==="registering"||e.state()==="registeringfaulted"||e.state()==="registered"?4:-1),bE(),uT(e.state()==="connected"||e.state()==="connecting"?5:-1),bE(),uT(e.state()==="disabled"?6:-1),bE(),uT(e.additionalReportingUrl()!==""&&e.state()!=="registered"?7:-1);}}var Se=class i{#n=T(v);#i=T(R);state=this.#n.state;claimUrl=this.#n.claimUrl;registerUrl=this.#n.registerUrl;additionalReportingUrl=Nt(()=>{let t=this.#i.serverSettings();return t&&t["additional-report-url"]||""});copiedReportingUrl=Ge(false);ngOnInit(){this.#n.refreshRemoteControlStatus();}cancel(){this.#n.cancelRemoteRegistration();}register(){this.#n.beginRemoteRegistration();}disable(){this.#n.disableRemoteControl();}enable(){this.#n.enableRemoteControl();}delete(){this.#n.deleteRemoteControl();}copyReportingUrl(){let t=this.additionalReportingUrl();t&&(this.copiedReportingUrl.set(true),setTimeout(()=>this.copiedReportingUrl.set(false),2e3),navigator.clipboard.writeText(t));}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=gw({type:i,selectors:[["app-remote-control"]],decls:1,vars:1,consts:()=>{let t;t=$localize`Register on console`;let e;e=$localize`Machine is now registered, open this link to add it to your account:`;let n;n=$localize`Registering, please wait...`;let a;a=$localize`Cancel registration`;let l;l=$localize`Disable console connection`;let m;m=$localize`Enable console connection`;let u;u=$localize` Delete console connection setup `;let E;return E=$localize` Reporting configured by server ${"\uFFFD*2:1\uFFFD"}:START_BLOCK_IF:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SH_ICON:check${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SH_ICON:${"\uFFFD/*2:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*3:2\uFFFD"}:START_BLOCK_ELSE:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SH_ICON:copy${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SH_ICON:${"\uFFFD/*3:2\uFFFD"}:CLOSE_BLOCK_ELSE:`,E=sC(E),[t,e,n,a,l,m,u,E,[1,"field-row"],[1,"field-col"],["type","button","shButton","",1,"raised"],[1,"reporting-url","primary","simple"],["label","Registration URL","for","remoteControlRegisterUrl"],["type","text","sh-input","","id","remoteControlRegisterUrl","name","remoteControlRegisterUrl",3,"ngModelChange","ngModel"],["type","button","shButton","",1,"raised",3,"click"],["target","_blank",3,"href"],["type","button","shButton","",1,"raised","error",3,"click"],[1,"reporting-url","primary","simple",3,"click"]]},template:function(e,n){e&1&&lT(0,yn,8,7,"div",8),e&2&&uT(n.state()!=="unknown"?0:-1);},dependencies:[Bn$1,Ze,Rn$1,Jt,Fe,v$1,D,N],styles:["[_nghost-%COMP%]{display:block}[_nghost-%COMP%] button[_ngcontent-%COMP%]{white-space:nowrap}.field-row[_ngcontent-%COMP%]{display:flex;gap:.5rem;width:100%}.field-row[_ngcontent-%COMP%] sh-form-field[_ngcontent-%COMP%], .field-row[_ngcontent-%COMP%] sh-select[_ngcontent-%COMP%]{flex:1 0}.reporting-url[_ngcontent-%COMP%]{cursor:pointer;-webkit-user-select:none;user-select:none;margin-top:.25rem}"]})};var fe=[{value:"default",label:$localize`System default ($value)`},{value:"information",label:$localize`Usage statistics, warnings, errors, and crashes`},{value:"warning",label:$localize`Warnings, errors and crashes`},{value:"error",label:$localize`Errors and crashes`},{value:"crash",label:$localize`Crashes only`},{value:"none",label:$localize`None / disabled`}],Fn=new Set(["information","warning","error","crash","none"]),Tn=i=>{let t=(i??"").trim().toLowerCase();return t==="disabled"?"none":Fn.has(t)?t:"default"},un=i=>i==="default"?"":i;var Te=()=>({standalone:true});function $n(i,t){i&1&&(Zi(0,"sh-chip",97),oC(1,35),Wl());}function An(i,t){if(i&1&&(Zi(0,"section")(1,"div",73)(2,"h3"),oC(3,34),Wl(),Zi(4,"p"),HC(5),Wl()(),Zi(6,"div",74),lT(7,$n,2,0,"sh-chip",97),Wl()()),i&2){let e=aC();bE(5),im(e.remoteControlStatus()),bE(2),uT(e.additionalReportingUrl()!==""&&e.remoteControlState()!=="registered"?7:-1);}}function Ln(i,t){if(i&1&&(Zi(0,"label"),Fg(1,39),Ig(2,"sh-icon",98),jg(),Wl()),i&2){let e=aC(3);bE(2),vg("shTooltip",e.remoteControlTooltip());}}function wn(i,t){if(i&1&&(Zi(0,"label"),Fg(1,40),Ig(2,"sh-icon",98),jg(),Wl()),i&2){let e=aC(3);bE(2),vg("shTooltip",e.remoteControlTooltip());}}function Dn(i,t){if(i&1&&(Zi(0,"label"),Fg(1,41),Ig(2,"sh-icon",98),jg(),Wl()),i&2){let e=aC(3);bE(2),vg("shTooltip",e.connectionStatusIndicatorTooltip());}}function xn(i,t){if(i&1&&(Zi(0,"label"),Fg(1,42),Ig(2,"sh-icon",98),jg(),Wl()),i&2){let e=aC(3);bE(2),vg("shTooltip",e.connectionStatusIndicatorTooltip());}}function kn(i,t){if(i&1){let e=ET();Zi(0,"section")(1,"div",73)(2,"h3"),oC(3,37),Wl(),Zi(4,"p"),oC(5,38),Wl()(),Zi(6,"div",82)(7,"sh-toggle",83),Hg("checkedChange",function(a){Pd(e);let l=aC(2);return Ld(l.toggleConsoleControl(a))}),lT(8,Ln,3,1,"label")(9,wn,3,1,"label"),Wl(),Zi(10,"sh-toggle",83),Hg("checkedChange",function(a){Pd(e);let l=aC(2);return Ld(l.saveHideConsoleConnectionStatus(a))}),lT(11,Dn,3,1,"label")(12,xn,3,1,"label"),Wl()()();}if(i&2){let e=aC(2);bE(7),vg("checked",!e.consoleControlDisabled()),bE(),uT(e.consoleControlDisabled()?8:9),bE(2),vg("checked",!e.hideConsoleConnectionStatus()),bE(),uT(e.hideConsoleConnectionStatus()?11:12);}}function Xn(i,t){i&1&&(Zi(0,"label"),oC(1,45),Wl());}function Jn(i,t){i&1&&(Zi(0,"label"),oC(1,46),Wl());}function Vn(i,t){if(i&1){let e=ET();Zi(0,"section")(1,"div",73)(2,"h3"),oC(3,43),Wl(),Zi(4,"p"),oC(5,44),Wl()(),Zi(6,"div",74)(7,"sh-toggle",83),Hg("checkedChange",function(a){Pd(e);let l=aC(2);return Ld(l.saveHideConsoleConnectionStatus(a))}),lT(8,Xn,2,0,"label")(9,Jn,2,0,"label"),Wl()()();}if(i&2){let e=aC(2);bE(7),vg("checked",!e.hideConsoleConnectionStatus()),bE(),uT(e.hideConsoleConnectionStatus()?8:9);}}function zn(i,t){if(i&1&&(Zi(0,"section")(1,"div",73)(2,"h3"),oC(3,36),Wl(),Zi(4,"p"),HC(5),Wl()(),Zi(6,"div",74),Ig(7,"app-remote-control"),Wl()(),lT(8,kn,13,4,"section")(9,Vn,10,2,"section")),i&2){let e=aC();bE(5),im(e.remoteControlStatus()),bE(3),uT(e.remoteControlState()!="inactive"?8:9);}}function Un(i,t){i&1&&(Zi(0,"sh-icon",103),HC(1,"check"),Wl());}function Bn(i,t){i&1&&(Zi(0,"sh-icon",104),HC(1,"prohibit"),Wl());}function Hn(i,t){if(i&1){let e=ET();Zi(0,"button",108),Hg("click",function(){Pd(e);let a=aC(2);return Ld(a.updatePassphrase())}),oC(1,50),Wl();}if(i&2){let e=aC(2);Kg("loading",e.isUpdating());}}function Wn(i,t){if(i&1){let e=ET();Zi(0,"button",109),Hg("click",function(){Pd(e);let a=aC(2);return Ld(a.updatePassphrase())}),oC(1,51),Wl();}if(i&2){let e=aC(2);Kg("loading",e.isUpdating()),vg("disabled",true);}}function jn(i,t){if(i&1){let e=ET();Zi(0,"sh-form-field")(1,"label",99),oC(2,47),Wl(),Zi(3,"input",100),lm("ngModelChange",function(a){Pd(e);let l=aC();return qC(l.passphrase,a)||(l.passphrase=a),Ld(a)}),Wl(),bD(),Wl(),Zi(4,"sh-form-field")(5,"label",101),oC(6,48),Wl(),Zi(7,"input",102),lm("ngModelChange",function(a){Pd(e);let l=aC();return qC(l.repeatPassphrase,a)||(l.repeatPassphrase=a),Ld(a)}),Wl(),bD(),lT(8,Un,2,0,"sh-icon",103)(9,Bn,2,0,"sh-icon",104),Wl(),Zi(10,"div",79)(11,"button",105),Hg("click",function(){Pd(e);let a=aC();return Ld(a.cancelPasswordChange())}),oC(12,49),Wl(),lT(13,Hn,2,2,"button",106)(14,Wn,2,3,"button",107),Wl();}if(i&2){let e=aC();bE(3),cm("ngModel",e.passphrase),MD(),bE(4),vg("disabled",e.passphrase().length===0),cm("ngModel",e.repeatPassphrase),MD(),bE(),uT(e.passphrase().length!==0&&e.passphrase()===e.repeatPassphrase()?8:9),bE(3),Kg("loading",e.isUpdating()),bE(2),uT(e.passphrase().length!==0&&e.passphrase()===e.repeatPassphrase()?13:14);}}function qn(i,t){i&1&&(Zi(0,"sh-icon",110),HC(1,"check"),Wl());}function Kn(i,t){if(i&1){let e=ET();Zi(0,"div",79)(1,"button",105),Hg("click",function(){Pd(e);let a=aC();return Ld(a.openPassphraseForm())}),oC(2,52),Wl(),lT(3,qn,2,0,"sh-icon",110),Wl();}if(i&2){let e=aC();bE(3),uT(e.passwordUpdated()?3:-1);}}function Qn(i,t){i&1&&(Zi(0,"label"),oC(1,53),Wl());}function Yn(i,t){i&1&&(Zi(0,"label"),oC(1,54),Wl());}function Zn(i,t){i&1&&(Zi(0,"label"),oC(1,55),Wl());}function ei(i,t){i&1&&(Zi(0,"label"),oC(1,56),Wl());}function ti(i,t){i&1&&(Fg(0,13,1),Ig(1,"span"),jg());}function ni(i,t){i&1&&(Fg(0,13,2),Ig(1,"span"),jg());}function ii(i,t){if(i&1){let e=ET();Zi(0,"sh-form-field")(1,"label",111),oC(2,57),Wl(),Zi(3,"textarea",112),lm("ngModelChange",function(a){Pd(e);let l=aC();return qC(l.allowedHostnames,a)||(l.allowedHostnames=a),Ld(a)}),Wl(),bD(),Wl(),Zi(4,"sh-alert",113),oC(5,58),Wl(),Zi(6,"button",108),Hg("click",function(){Pd(e);let a=aC();return Ld(a.updateAllowedHostnames())}),oC(7,59),Wl();}if(i&2){let e=aC();bE(3),cm("ngModel",e.allowedHostnames),MD(),bE(3),Kg("loading",e.updatingAllowedHosts());}}function oi(i,t){if(i&1){let e=ET();Zi(0,"section")(1,"div",73)(2,"h3"),oC(3,60),Wl(),Zi(4,"p"),oC(5,61),Wl()(),Zi(6,"div",74)(7,"sh-select",114)(8,"input",81),Hg("ngModelChange",function(a){Pd(e);let l=aC();return Ld(l.updatePowerMode(a))}),Wl(),bD(),Wl()()();}if(i&2){let e=aC();bE(7),vg("options",e.powerModeOptions())("isClearable",false),bE(),vg("ngModel",e.powerModeCtrl())("ngModelOptions",XC(4,Te)),MD();}}function si(i,t){if(i&1&&(Zi(0,"p"),oC(1,62),Wl()),i&2){let e=aC();bE(),Vg(e.sysinfo()?.ServerVersionName),iC(1);}}function ai(i,t){i&1&&Ig(0,"sh-progress-bar",87);}function ri(i,t){if(i&1&&HC(0),i&2){let e=t.$implicit;Yl(" ",e.label," ");}}function li(i,t){if(i&1&&HC(0),i&2){let e=t.$implicit;Yl(" ",e.label," ");}}function _i(i,t){if(i&1){let e=ET();Zi(0,"section")(1,"div",73)(2,"h3"),oC(3,63),Wl(),Zi(4,"p")(5,"span"),oC(6,64),Wl(),Zi(7,"a",115),oC(8,65),Wl(),Ig(9,"br")(10,"br"),Zi(11,"span"),oC(12,66),Wl()()(),Zi(13,"div",74)(14,"sh-select",116)(15,"input",81),Hg("ngModelChange",function(a){Pd(e);let l=aC();return Ld(l.updateUsageStatistics(a))}),Wl(),bD(),cg(16,li,1,1,"ng-template"),Wl()()();}if(i&2){let e=aC();bE(14),vg("options",e.usageStatisticsOptions())("isLoading",e.updatingUsageStatistics()),bE(),vg("ngModel",e.usageStatistics())("ngModelOptions",XC(4,Te)),MD();}}function ci(i,t){i&1&&(Zi(0,"label"),oC(1,69),Wl());}function di(i,t){i&1&&(Zi(0,"label"),oC(1,70),Wl());}function Si(i,t){if(i&1){let e=ET();Zi(0,"section")(1,"div",73)(2,"h3"),oC(3,67),Wl(),Zi(4,"p"),oC(5,68),Wl()(),Zi(6,"div",82)(7,"p"),HC(8,"Backup process isolation"),Wl(),Zi(9,"sh-toggle",83),Hg("checkedChange",function(a){Pd(e);let l=aC();return Ld(l.saveControllerIpcState(a))}),lT(10,ci,2,0,"label")(11,di,2,0,"label"),Wl()()();}if(i&2){let e=aC();bE(9),vg("checked",e.isControllerIpcEnabled()),bE(),uT(e.isControllerIpcEnabled()?10:11);}}function Ti(i,t,e){let[n]=Ms(i,e?.equal),a=n,l=n[j],m;return a.set=u=>{clearTimeout(m),m=setTimeout(()=>{ft(l,u);},t);},a.update=u=>{clearTimeout(m),m=setTimeout(()=>{go(l,u);},t);},a}var ui=[{value:"none",label:$localize`None`},{value:"s",label:$localize`Seconds`},{value:"m",label:$localize`Minutes`},{value:"h",label:$localize`Hours`}],Ie=class i{#n=T(be);#i=T(m);#e=T(f);#t=T(R);#s=T(v);#r=T(I);#o=T(r);#a=T(f$1);#_=this.#a.getItem("locale")??"en-US";sysinfo=this.#e.systemInfo;isDarkMode=this.#i.isDarkMode;editAs=Ge("list");previousLang=this.#_;langCtrl=Ge(this.#_);powerModeCtrl=Ge("");usageStatistics=Ge("default");updatingUsageStatistics=Ge(false);remoteControlStatus=this.#s.statusMessage;remoteControlState=this.#s.state;updatingChannel=Ge(false);updateChannel=Ge("");isUsingRelay=this.#r.relayIsEnabled;defaultClient=Ge(this.#S());hasIpcController=this.#e.hasIpcController;usageStatisticsDisabled=Nt(()=>(this.#e.systemInfo()?.DefaultUsageReportLevel??"").toLowerCase()==="disabled");additionalReportingUrl=Nt(()=>{let t=this.#t.serverSettings();return t&&t["additional-report-url"]||""});#T=Qa(()=>{let t=this.#e.systemInfo()?.DefaultUsageReportLevel??"",e=fe;e[0].label=$localize`System default (${t})`,this.usageStatisticsOptions.set(e);});remoteControlTooltip=Ge($localize`Disabling console control will disable remote access to this machine from the console, but will keep the
|
|
3
|
+
registration intact and allow pushing settings from the console.`);connectionStatusIndicatorTooltip=Ge($localize`Hides the connection status indicator in the status bar. Useful if you are not using the remote console.`);setNewChannel(t){this.updateChannel();this.updateChannel.set(t),this.#t.setUpdateChannel(t).pipe(Zu(()=>this.updatingChannel.set(false))).subscribe();}allowRemoteAccess=Ge(false);allowedHostnames=Ge("");loadedAllowedHostnames=Ge("");updatingRemoteAccess=Ge(false);updatingAllowedHosts=Ge(false);updatingConsoleControl=Ge(false);consoleControlDisabled=Ge(false);hideConsoleConnectionStatus=this.#t.isConsoleConnectionStatusHidden;isControllerIpcEnabled=this.#t.isControllerIpcEnabled;fileTreeFoldersFirst=this.#o.foldersFirst;fileTreeCaseSensitiveSort=this.#o.caseSensitiveSort;setFileTreeFoldersFirst(t){this.#o.setFoldersFirst(t);}setFileTreeCaseSensitiveSort(t){this.#o.setCaseSensitiveSort(t);}updateRemoteAccess(t){this.allowRemoteAccess.set(t),this.#t.setRemoteAccessInterface(t?"any":"loopback").pipe(Zu(()=>this.updatingRemoteAccess.set(false))).subscribe();}updateAllowedHostnames(){let t=this.allowedHostnames();this.updatingAllowedHosts.set(true),this.#t.setRemoteAccessAllowedHostnames(t).pipe(Zu(()=>this.updatingAllowedHosts.set(false))).subscribe();}toggleConsoleControl(t){this.consoleControlDisabled.set(!t),this.#t.setDisableConsoleControl(!t).pipe(Zu(()=>this.updatingConsoleControl.set(false))).subscribe();}updatingDisableTrayIconLogin=Ge(false);disableTrayIconLogin=Ge(false);saveDisableTrayIconLogin(t){let e=t;this.updatingDisableTrayIconLogin.set(true),this.#t.setDisableTrayIconLogin(e).pipe(Zu(()=>this.updatingDisableTrayIconLogin.set(false))).subscribe();}updatingHideConsoleConnectionStatus=Ge(false);saveHideConsoleConnectionStatus(t){this.updatingHideConsoleConnectionStatus.set(true),this.#t.setHideConsoleConnectionStatus(!t).pipe(Zu(()=>this.updatingHideConsoleConnectionStatus.set(false))).subscribe();}updatingControllerIpcState=Ge(false);saveControllerIpcState(t){this.updatingControllerIpcState.set(true),this.#t.setControllerIpcState(!!t).pipe(Zu(()=>this.updatingControllerIpcState.set(false))).subscribe();}showPassphraseForm=Ge(false);isUpdating=Ge(false);passphrase=Ge("");repeatPassphrase=Ge("");passwordUpdated=Ge(false);updatePassphrase(){this.passphrase()===this.repeatPassphrase()&&(this.isUpdating.set(true),this.#t.setRemoteAccessPassword(this.passphrase()).pipe(Zu(()=>this.isUpdating.set(false))).subscribe({next:()=>{this.showPassphraseForm.set(false),this.passwordUpdated.set(true),setTimeout(()=>{this.passwordUpdated.set(false);},3e3);}}));}openPassphraseForm(){this.showPassphraseForm.set(true);}cancelPasswordChange(){this.showPassphraseForm.set(false);}languageOptions=Ge([...wt].sort((t,e)=>t.label.localeCompare(e.label)));powerModeOptions=Nt(()=>{let t=this.#e.systemInfo();return !t?.PowerModeProviders||t.PowerModeProviders.filter(e=>e!==""&&e!=="None").length==0?[]:t.PowerModeProviders.map(e=>({value:e==""?"default":e,label:e===""?$localize`Default`:e}))});usageStatisticsOptions=Ge(fe);timeTypeOptions=Ge(ui);timeType=Ge("none");timeValue=Ti(0,300);timeRange=Nt(()=>this.timeType()==="h"?[1,24]:[1,60]);updateLocale(t){!t||t===""||t===this.previousLang||(this.#a.setItem("locale",t),window.location.reload());}updateTimeValue(t){this.timeValue.set(t),this.#c();}updateTimeType(t){this.timeType()==="none"&&this.timeValue.set(1),this.timeType.set(t),this.#c();}#l;#c(){this.#l&&clearTimeout(this.#l),this.#l=setTimeout(()=>{let t=this.timeValue(),e=this.timeType(),n=e==="none"||t===0?"":`${t}${e}`;n!==this.#t.serverSettings()?.["startup-delay"]&&this.#t.setStartupDelay(n).subscribe();},1e3);}updateUsageStatistics(t){let e=this.usageStatistics();t!==e&&(this.usageStatistics.set(t),this.updatingUsageStatistics.set(true),this.#t.setUsageReporterLevel(un(t)).subscribe());}updatePowerMode(t){this.powerModeCtrl()!==t&&(t==="default"&&(t=""),this.#t.setPowerModeProvider(t).subscribe());}serverSettingsEffect=Qa(()=>{let t=this.#t.serverSettings();if(t===void 0)return;let e=t["startup-delay"],n=e.slice(-1),a=e.slice(0,-1),l=["s","m","h"];this.disableTrayIconLogin.set(t["disable-tray-icon-login"]!=="False"),this.updateChannel.set(t["update-channel"]),this.allowRemoteAccess.set(t["server-listen-interface"]==="any"),this.allowedHostnames.set(t["allowed-hostnames"]),this.loadedAllowedHostnames.set(t["allowed-hostnames"]),this.consoleControlDisabled.set(t["disable-console-control"]==="True"),this.usageStatistics.set(Tn(t["usage-reporter-level"])),this.timeType.set(e==""?"none":l.includes(n)?n:"none"),this.timeValue.set(e==""?0:parseInt(a));let m=t["power-mode-provider"]===""||t["power-mode-provider"]==null?"default":t["power-mode-provider"];this.powerModeCtrl.set(m);});setDarkMode(){this.#i.setDarkMode();}setLightMode(){this.#i.setLightMode();}changeDefaultClientTo(t){this.defaultClient()!==t&&(t==="ngax"?this.#n.open(h,{data:{title:$localize`Use legacy UI by default`,message:$localize`Are you sure you want to use the legacy user interface by default? This is not recommended unless you have a specific reason.`,confirmText:$localize`Use legacy UI by default`,cancelText:$localize`Cancel`},closed:e=>{e&&(window.location.href="/ngax",this.#d(t));}}):this.#d(t));}openLegacyUI(){this.#n.open(h,{data:{title:$localize`Open legacy UI`,message:$localize`Are you sure you want to open the legacy user interface? This is not recommended unless you have a specific reason.`,confirmText:$localize`Open legacy UI`,cancelText:$localize`Cancel`},closed:t=>{t&&window.open("/ngax","_blank");}});}#d(t){var e=new Date;e.setTime(e.getTime()+2160*60*60*1e3),document.cookie="default-client="+t+"; expires="+e.toUTCString()+"; path=/",this.defaultClient.set(t);}#S(){let t=document.cookie.split(";");for(let e=0;e<t.length;e++){let n=t[e].trim();if(n.startsWith("default-client="))return n.substring(15)}return "ngclient"}static \u0275fac=function(e){return new(e||i)};static \u0275cmp=gw({type:i,selectors:[["app-settings"]],decls:143,vars:42,consts:()=>{let t;t=$localize`Settings`;let e;e=$localize`Configure your backup settings.`;let n;n=$localize`Color theme`;let a;a=$localize`Customize your application theme`;let l;l=$localize`Passwords`;let m;m=$localize`Change server passphrase`;let u;u=$localize`Language`;let E;E=$localize`Select a language for the platform`;let f;f=$localize`File tree sorting`;let W;W=$localize`Configure how files and folders are sorted in the file tree.`;let ue;ue=$localize`Use legacy interface`;let Q;Q=$localize`Use the old user interface, not recommended unless you have a specific reason.`;let J;J=$localize`${"\uFFFD#60\uFFFD"}:START_TAG_SH_ICON:arrow-square-right${"\uFFFD/#60\uFFFD"}:CLOSE_TAG_SH_ICON: Open legacy UI `;let V;V=$localize`${"\uFFFD#63\uFFFD"}:START_TAG_SH_ICON:swap${"\uFFFD/#63\uFFFD"}:CLOSE_TAG_SH_ICON:${"\uFFFD*64:1\uFFFD"}:START_BLOCK_IF:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SPAN:Set current UI as default${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SPAN:${"\uFFFD/*64:1\uFFFD"}:CLOSE_BLOCK_IF:${"\uFFFD*65:2\uFFFD"}:START_BLOCK_ELSE:${"[\uFFFD#1:1\uFFFD|\uFFFD#1:2\uFFFD]"}:START_TAG_SPAN:Set legacy UI as default${"[\uFFFD/#1:1\uFFFD|\uFFFD/#1:2\uFFFD]"}:CLOSE_TAG_SPAN:${"\uFFFD/*65:2\uFFFD"}:CLOSE_BLOCK_ELSE:`,V=sC(V);let Y;Y=$localize`Allow remote access (requires restart)`;let Me;Me=$localize` By allowing remote access, the server listens to requests from any machine on your network. If you enable this option, make sure you are always using the computer on a secure firewall protected network. `;let Pe;Pe=$localize`Allow remote access`;let Oe;Oe=$localize`Prevent tray icon automatic log-in`;let be;be=$localize` By default, the tray icon will open the user interface with a token that unlocks the user interface. This ensures that you can access the user interface from the tray icon, while requiring others to enter a password. If you prefer having to type in the password, even when accessing the user interface from the tray icon, enable this option. `;let Re;Re=$localize`Prevent tray icon automatic log-in`;let Ge;Ge=$localize`Update channel`;let ve;ve=$localize` Default (${"\uFFFD0\uFFFD"}:INTERPOLATION:) `;let ye;ye=$localize`Same as the base install version: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let Fe;Fe=$localize`Stable`;let $e;$e=$localize`Official stable release.`;let Ae;Ae=$localize`Beta`;let Le;Le=$localize` Try out the new features that we are working on. Test a backup and restore before using this in production environments. `;let we;we=$localize`Experimental`;let De;De=$localize`Early previews of new features. Not for use with important data.`;let xe;xe=$localize`Canary`;let ke;ke=$localize`Builds for developers and testers only. Not for use with important data.`;let Xe;Xe=$localize`Pause after startup or hibernation`;let Je;Je=$localize` Duplicati will run when started, but will remain in paused state for the duration. Duplicati will occupy minimal system resources and no backups will be run. `;let Ve;Ve=$localize`Advanced options`;let ze;ze=$localize`Console connection status`;let Ue;Ue=$localize`Reporting configured by server`;let Be;Be=$localize`Connect to console`;let He;He=$localize`Configure console control`;let We;We=$localize` You can control various settings for the remote console connection. If you are not using the console, you can also hide the connection status indicator. `;let je;je=$localize` Remote control disabled ${"\uFFFD#2\uFFFD"}:START_TAG_SH_ICON:info${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_ICON:`;let qe;qe=$localize` Remote control enabled ${"\uFFFD#2\uFFFD"}:START_TAG_SH_ICON:info${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_ICON:`;let Ke;Ke=$localize` Console connection status is hidden ${"\uFFFD#2\uFFFD"}:START_TAG_SH_ICON:info${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_ICON:`;let Qe;Qe=$localize` Console connection status is visible ${"\uFFFD#2\uFFFD"}:START_TAG_SH_ICON:info${"\uFFFD/#2\uFFFD"}:CLOSE_TAG_SH_ICON:`;let Ye;Ye=$localize`Toggle console connection status`;let Ze;Ze=$localize`Toggle the visibility of the console connection status indicator.`;let et;et=$localize`Console connection status is hidden`;let tt;tt=$localize`Console connection status is visible`;let nt;nt=$localize`Enter new password`;let it;it=$localize`Repeat password`;let ge;ge=$localize`Password have to be filled and have to match`;let ot;ot=$localize`Passphrase`;let st;st=$localize`Repeat passphrase`;let at;at=$localize`Cancel`;let rt;rt=$localize` Update passphrase `;let lt;lt=$localize` Update passphrase `;let _t;_t=$localize`Change password`;let ct;ct=$localize`Folders are shown before files`;let dt;dt=$localize`Files and folders are mixed together`;let St;St=$localize`Sorting is case sensitive`;let Tt;Tt=$localize`Sorting is case insensitive`;let ut;ut=$localize`Allowed hostnames`;let gt;gt=$localize` To prevent various DNS based attacks, Duplicati limits the allowed hostnames to the ones listed here. Direct IP access and localhost is always allowed. Multiple hostnames can be supplied with a semicolon separator. If any of the allowed hostnames is an asterisk (*), all hostnames are allowed and this feature is disabled. If the field is empty, only IP address and localhost access is allowed. `;let Ct;Ct=$localize` Update allowed hostnames `;let pt;pt=$localize`Power mode provider`;let Et;Et=$localize` The power mode provider monitors the system for when it enters a low power state and pauses Duplicati. When the system resumes, Duplicati will resume as well. Choosing the None option disables detection of low power states and Duplicati will run all the time. `;let mt;mt=$localize`Installed version: ${"\uFFFD0\uFFFD"}:INTERPOLATION:`;let Nt;Nt=$localize`Usage statistics`;let ht;ht=$localize` Usage reports help us improve the user experience and evaluate impact of new features. We use them to generate `;let ft;ft=$localize`public usage statistics.`;let It;It=$localize` All usage reports are sent anonymously and do not contain any personal information. They contain information about hardware and operating system, the type of backend, backup duration, overall size of source data and similar data. They do not contain paths, filenames, usernames, passwords or similar sensitive information. `;let Mt;Mt=$localize`Experimental options`;let Pt;Pt=$localize`Toggle experimental options.`;let Ot;Ot=$localize`Operations run in an isolated process`;let bt;return bt=$localize`Operations run inside the server process`,[t,e,n,a,l,m,u,E,f,W,ue,Q,J,V,Y,Me,Pe,Oe,be,Re,Ge,ve,ye,Fe,$e,Ae,Le,we,De,xe,ke,Xe,Je,Ve,ze,Ue,Be,He,We,je,qe,Ke,Qe,Ye,Ze,et,tt,ot,st,at,rt,lt,_t,ct,dt,St,Tt,ut,gt,Ct,pt,Et,mt,Nt,ht,ft,It,Mt,Pt,Ot,bt,[1,"content"],[1,"title"],[1,"left"],[1,"right"],[1,"themes"],["src","assets/images/light-theme.png","alt","light theme",3,"click"],["src","assets/images/dark-theme.png","alt","dark theme",3,"click"],[1,"right","passphrase-form"],[1,"actions"],["value","value","label","label",3,"options","isClearable","inlineSearch"],["type","text",3,"ngModelChange","ngModel","ngModelOptions"],[1,"right","multiple"],[1,"primary","raised",3,"checkedChange","checked"],[1,"right","buttons"],["shButton","",1,"primary",3,"click"],[1,"right","remote-access-form"],[1,"indeterminate","primary"],[1,"right","radios"],[1,"radio-option",3,"click"],[1,"primary","raised",3,"checked"],[1,"field-row"],[1,"raised","primary",3,"unit"],["type","range",3,"ngModelChange","min","max","disabled","ngModel","ngModelOptions"],["label","label","value","value",3,"options","isClearable"],["type","text",3,"ngModelChange","ngModel"],[1,"advanced-settings"],[1,"reporting-url","primary","simple"],["suffix","",3,"shTooltip"],["for","password"],["type","password","name","password","autocomplete","new-password","placeholder",nt,"tabindex","1",3,"ngModelChange","ngModel"],["for","repeatPassword"],["type","password","name","repeatPassword","autocomplete","new-password","placeholder",it,"tabindex","2",3,"ngModelChange","disabled","ngModel"],["suffix","",1,"sh-success"],["suffix",""],["shButton","",3,"click"],["shButton","",1,"raised","primary",3,"loading"],["shButton","","shTooltip",ge,1,"raised","primary",3,"loading","disabled"],["shButton","",1,"raised","primary",3,"click"],["shButton","","shTooltip",ge,1,"raised","primary",3,"click","disabled"],[1,"sh-success"],["for","allowedHostnames"],["type","text","id","allowedHostnames",3,"ngModelChange","ngModel"],["type","primary"],["value","value","label","label",3,"options","isClearable"],["href","https://usage-reporter.duplicati.com/","target","_blank"],["label","label","value","value",3,"options","isLoading"]]},template:function(e,n){e&1&&(Ig(0,"app-status-bar"),Zi(1,"div",71)(2,"header")(3,"div",72)(4,"h2"),oC(5,0),Wl(),Zi(6,"p"),oC(7,1),Wl()()(),lT(8,An,8,2,"section")(9,zn,10,2),Zi(10,"section")(11,"div",73)(12,"h3"),oC(13,2),Wl(),Zi(14,"p"),oC(15,3),Wl()(),Zi(16,"div",74)(17,"div",75)(18,"img",76),Hg("click",function(){return n.setLightMode()}),Wl(),Zi(19,"img",77),Hg("click",function(){return n.setDarkMode()}),Wl()()()(),Zi(20,"section")(21,"div",73)(22,"h3"),oC(23,4),Wl(),Zi(24,"p"),oC(25,5),Wl()(),Zi(26,"div",78),lT(27,jn,15,7)(28,Kn,4,1,"div",79),Wl()(),Zi(29,"section")(30,"div",73)(31,"h3"),oC(32,6),Wl(),Zi(33,"p"),oC(34,7),Wl()(),Zi(35,"div",74)(36,"sh-select",80)(37,"input",81),Hg("ngModelChange",function(l){return n.updateLocale(l)}),Wl(),bD(),Wl()()(),Zi(38,"section")(39,"div",73)(40,"h3"),oC(41,8),Wl(),Zi(42,"p"),oC(43,9),Wl()(),Zi(44,"div",82)(45,"sh-toggle",83),Hg("checkedChange",function(l){return n.setFileTreeFoldersFirst(l)}),lT(46,Qn,2,0,"label")(47,Yn,2,0,"label"),Wl(),Zi(48,"sh-toggle",83),Hg("checkedChange",function(l){return n.setFileTreeCaseSensitiveSort(l)}),lT(49,Zn,2,0,"label")(50,ei,2,0,"label"),Wl()()(),Zi(51,"section")(52,"div",73)(53,"h3"),oC(54,10),Wl(),Zi(55,"p"),oC(56,11),Wl()(),Zi(57,"div",84)(58,"button",85),Hg("click",function(){return n.openLegacyUI()}),Fg(59,12),Ig(60,"sh-icon"),jg(),Wl(),Zi(61,"button",85),Hg("click",function(){return n.changeDefaultClientTo(n.defaultClient()==="ngclient"?"ngax":"ngclient")}),Fg(62,13),Ig(63,"sh-icon"),lT(64,ti,2,0,"span")(65,ni,2,0,"span"),jg(),Wl()()(),Zi(66,"section")(67,"div",73)(68,"h3"),oC(69,14),Wl(),Zi(70,"p"),oC(71,15),Wl()(),Zi(72,"div",86)(73,"sh-toggle",83),Hg("checkedChange",function(l){return n.updateRemoteAccess(l)}),Zi(74,"label"),oC(75,16),Wl()(),lT(76,ii,8,3),Wl()(),Zi(77,"section")(78,"div",73)(79,"h3"),oC(80,17),Wl(),Zi(81,"p"),oC(82,18),Wl()(),Zi(83,"div",74)(84,"sh-toggle",83),Hg("checkedChange",function(l){return n.saveDisableTrayIconLogin(l)}),Zi(85,"label"),oC(86,19),Wl()()()(),lT(87,oi,9,5,"section"),Zi(88,"section")(89,"div",73)(90,"h3"),oC(91,20),Wl(),lT(92,si,2,1,"p"),lT(93,ai,1,0,"sh-progress-bar",87),Wl(),Zi(94,"div",88)(95,"div",89),Hg("click",function(){return n.setNewChannel("")}),Zi(96,"sh-radio",90),oC(97,21),Wl(),Zi(98,"p"),oC(99,22),Wl()(),Zi(100,"div",89),Hg("click",function(){return n.setNewChannel("stable")}),Zi(101,"sh-radio",90),oC(102,23),Wl(),Zi(103,"p"),oC(104,24),Wl()(),Zi(105,"div",89),Hg("click",function(){return n.setNewChannel("beta")}),Zi(106,"sh-radio",90),oC(107,25),Wl(),Zi(108,"p"),oC(109,26),Wl()(),Zi(110,"div",89),Hg("click",function(){return n.setNewChannel("experimental")}),Zi(111,"sh-radio",90),oC(112,27),Wl(),Zi(113,"p"),oC(114,28),Wl()(),Zi(115,"div",89),Hg("click",function(){return n.setNewChannel("canary")}),Zi(116,"sh-radio",90),oC(117,29),Wl(),Zi(118,"p"),oC(119,30),Wl()()()(),Zi(120,"section")(121,"div",73)(122,"h3"),oC(123,31),Wl(),Zi(124,"p"),oC(125,32),Wl()(),Zi(126,"div",74)(127,"div",91)(128,"sh-range-slider",92)(129,"input",93),lm("ngModelChange",function(l){return qC(n.timeValue,l)||(n.timeValue=l),l}),Hg("ngModelChange",function(l){return n.updateTimeValue(l)}),Wl(),bD(),Wl(),Zi(130,"sh-select",94)(131,"input",95),Hg("ngModelChange",function(l){return n.updateTimeType(l)}),Wl(),bD(),cg(132,ri,1,1,"ng-template"),Wl()()()(),lT(133,_i,17,5,"section"),lT(134,Si,12,2,"section"),Wl(),Ig(135,"sh-divider"),Zi(136,"div",71)(137,"section")(138,"div",96)(139,"h3"),oC(140,33),Wl(),Ig(141,"app-advanced-options-settings"),Wl()()(),Ig(142,"sh-divider")),e&2&&(bE(8),uT(n.isUsingRelay()?8:9),bE(10),Kg("active",!n.isDarkMode()),bE(),Kg("active",n.isDarkMode()),bE(8),uT(n.showPassphraseForm()?27:28),bE(9),vg("options",n.languageOptions())("isClearable",false)("inlineSearch",true),bE(),vg("ngModel",n.langCtrl())("ngModelOptions",XC(40,Te)),MD(),bE(8),vg("checked",n.fileTreeFoldersFirst()),bE(),uT(n.fileTreeFoldersFirst()?46:47),bE(2),vg("checked",n.fileTreeCaseSensitiveSort()),bE(),uT(n.fileTreeCaseSensitiveSort()?49:50),bE(15),uT(n.defaultClient()==="ngax"?64:65),bE(9),vg("checked",n.allowRemoteAccess()),bE(3),uT(n.allowRemoteAccess()?76:-1),bE(8),vg("checked",n.disableTrayIconLogin()),bE(3),uT(n.powerModeOptions().length>0?87:-1),bE(5),uT(n.sysinfo()?.ServerVersion?92:-1),bE(),uT(n.updatingChannel()?93:-1),bE(3),vg("checked",n.updateChannel()===""),bE(),Vg(n.sysinfo()?.DefaultUpdateChannel),iC(97),bE(2),Vg(n.sysinfo()?.ServerVersionType),iC(99),bE(2),vg("checked",n.updateChannel()==="stable"),bE(5),vg("checked",n.updateChannel()==="beta"),bE(5),vg("checked",n.updateChannel()==="experimental"),bE(5),vg("checked",n.updateChannel()==="canary"),bE(12),vg("unit",n.timeType()==="none"?"s":n.timeType()),bE(),vg("min",n.timeRange()[0])("max",n.timeRange()[1])("disabled",n.timeType()==="none"),cm("ngModel",n.timeValue),vg("ngModelOptions",XC(41,Te)),MD(),bE(),vg("options",n.timeTypeOptions())("isClearable",false),bE(),vg("ngModel",n.timeType()),MD(),bE(2),uT(n.usageStatisticsDisabled()?-1:133),bE(),uT(n.hasIpcController()?134:-1));},dependencies:[Bn$1,Ze,on,Rn$1,Jt,Gn$1,te,Se,K,v$1,O,dn,d,J,at,Fe,N,c,ue,Nt$1,D],styles:["[_nghost-%COMP%]{display:block}.content[_ngcontent-%COMP%]{display:flex;flex-direction:column;padding:0 2rem 2rem}header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;padding:2rem 0;background:var(--base-1);border-bottom:1px solid var(--base-4)}header[_ngcontent-%COMP%] .title[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem}section[_ngcontent-%COMP%]{display:grid;grid-template-columns:1fr 1fr;gap:1rem;padding:2rem 0;border-top:1px solid var(--base-4)}@media only screen and (max-width:768px){section[_ngcontent-%COMP%]{grid-template-columns:1fr}}section[_ngcontent-%COMP%]:first-of-type{border-top:0}section[_ngcontent-%COMP%] .left[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.25rem;align-items:flex-start}section[_ngcontent-%COMP%] .left[_ngcontent-%COMP%] sh-button-group[_ngcontent-%COMP%]{margin-top:.25rem}section[_ngcontent-%COMP%] .left[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{text-wrap:balance;width:50%}.passphrase-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:flex-start;gap:1rem}.passphrase-form[_ngcontent-%COMP%] .actions[_ngcontent-%COMP%]{display:flex;align-items:center;gap:.5rem}.remote-access-form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.themes[_ngcontent-%COMP%]{display:flex;gap:.5rem}.themes[_ngcontent-%COMP%] img[_ngcontent-%COMP%]{max-width:15rem;border-radius:var(--shape-3);cursor:pointer}.themes[_ngcontent-%COMP%] img.active[_ngcontent-%COMP%]{border:2px solid var(--primary-8)}.radios[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}.radio-option[_ngcontent-%COMP%]{cursor:pointer}.radio-option[_ngcontent-%COMP%] sh-radio[_ngcontent-%COMP%]{color:var(--base-8);margin-bottom:.25rem}.radio-option[_ngcontent-%COMP%] p[_ngcontent-%COMP%]{text-wrap:balance;color:var(--base-9)}.field-col[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:.5rem}.field-row[_ngcontent-%COMP%]{display:flex;gap:.5rem;width:100%}.field-row[_ngcontent-%COMP%] sh-form-field[_ngcontent-%COMP%], .field-row[_ngcontent-%COMP%] sh-select[_ngcontent-%COMP%]{flex:1 0}.advanced-settings[_ngcontent-%COMP%]{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr;gap:1rem}.right.buttons[_ngcontent-%COMP%]{display:flex;flex-direction:row;gap:1rem}.right.multiple[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1rem}"]})};
|
|
4
|
+
export{Ti as debounceSignal,Ie as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {m}from'./chunk-7T5O8Syb.js';import {l as le}from'./chunk-29_4gGIi.js';import'./chunk-BEUeHgR9.js';import'./chunk-CGnjVnmu.js';import'./chunk-BJOhC2d8.js';import'./chunk-fDWfSg6Y.js';import {N as Nt$1}from'./chunk-C1py21yb.js';import'./chunk-D38QrkIM.js';import'./chunk-3YzyUT-a.js';import'./chunk-CKUlUN3q.js';import {T,ab as J,f,e as ee,ax as W,G as Ge$1,N as Nt,Q as Qa,ad as sy,C as Zu,g as gw,v as v$1,a as N,_ as _t,aL as ci,aJ as m$1,l as lT,Z as Zi,F as Fg,d as Ig,j as jg,W as Wl,w as Hg,c as uT,b as bE,z as vg,a3 as XC,o as oC,i as ET,P as Pd,h as aC,L as Ld,t as bD,b4 as cg,M as MD,n as lm,p as qC,y as cm,H as HC,av as Vg,aw as iC,aO as sb,aD as sm,aP as lb,aa as Yl,aT as cb,J as im}from'./main-2ZYVV4C4.js';import {d}from'./chunk-BGuvkLC9.js';import {F as Fe$1}from'./chunk-DBkkb6OR.js';import {B as Bn,Z as Ze,R as Rn,J as Jt}from'./chunk-iGzJokt-.js';import'./chunk-CnZx831x.js';import'./chunk-Cm7JSdTO.js';var me=()=>["/"],v=()=>({standalone:true});function Pe(n,t){n&1&&(Zi(0,"div",11),Ig(1,"sh-progress-bar",16),Zi(2,"p"),oC(3,2),Wl()());}function he(n,t){n&1&&(Zi(0,"div",12)(1,"p"),oC(2,3),Wl()());}function Le(n,t){if(n&1&&(HC(0),sb(1,"bytes")),n&2){let e=aC().$implicit;Yl(" (",cb(1,1,e.FileSizes),") ");}}function Fe(n,t){if(n&1&&(Ig(0,"br"),Zi(1,"span",23),HC(2),Wl()),n&2){let e=aC().$implicit;bE(2),im(e.Label);}}function fe(n,t){if(n&1&&(Zi(0,"div",22),HC(1),sb(2,"date"),lT(3,Le,2,3),lT(4,Fe,3,1),Wl()),n&2){let e=t.$implicit;bE(),sm(" ",e.Version,": ",lb(2,4,e.Time,"medium")," "),bE(2),uT(e.FileSizes?3:-1),bE(),uT(e.Label?4:-1);}}function Ie(n,t){n&1&&Ig(0,"sh-progress-bar",21);}function Ne(n,t){n&1&&(Zi(0,"sh-icon",31),HC(1,"spinner"),Wl());}function Me(n,t){n&1&&(Zi(0,"sh-icon"),HC(1,"magnifying-glass"),Wl());}function Re(n,t){if(n&1){let e=ET();Zi(0,"button",34),Hg("click",function(){Pd(e);let i=aC(4);return Ld(i.clearSearch())}),Zi(1,"sh-icon"),HC(2,"x-circle"),Wl(),Zi(3,"span"),oC(4,8),Wl()();}}function ye(n,t){n&1&&(Zi(0,"span"),oC(1,9),Wl());}function Oe(n,t){if(n&1&&(Zi(0,"span"),oC(1,10),Wl()),n&2){let e=aC(5);bE(),Vg(e.searchResults().length),iC(1);}}function Ae(n,t){if(n&1&&(Zi(0,"div",33),lT(1,ye,2,0,"span")(2,Oe,2,1,"span"),Wl()),n&2){let e=aC(4);bE(),uT(e.searchResults().length===0?1:2);}}function Ge(n,t){if(n&1){let e=ET();Zi(0,"div",27)(1,"sh-form-field")(2,"label",28),oC(3,6),Wl(),Zi(4,"input",29),lm("ngModelChange",function(i){Pd(e);let l=aC(3);return qC(l.searchQuery,i)||(l.searchQuery=i),Ld(i)}),Hg("keydown.enter",function(i){Pd(e);let l=aC(3);return i.preventDefault(),Ld(l.performSearch())}),Wl(),bD(),Wl(),Zi(5,"button",30),Hg("click",function(){Pd(e);let i=aC(3);return Ld(i.performSearch())}),lT(6,Ne,2,0,"sh-icon",31)(7,Me,2,0,"sh-icon"),Zi(8,"span"),oC(9,7),Wl()(),lT(10,Re,5,0,"button",32),Wl(),lT(11,Ae,3,1,"div",33);}if(n&2){let e=aC(3);bE(4),cm("ngModel",e.searchQuery),vg("ngModelOptions",XC(6,v)),MD(),bE(),vg("disabled",e.isSearching()||!e.searchQuery().trim()),bE(),uT(e.isSearching()?6:7),bE(4),uT(e.isSearchMode()?10:-1),bE(),uT(e.isSearchMode()&&!e.isSearching()?11:-1);}}function be(n,t){if(n&1){let e=ET();lT(0,Ge,12,7),Zi(1,"app-file-tree",24)(2,"label",25),oC(3,5),Wl(),Zi(4,"input",26),lm("ngModelChange",function(i){Pd(e);let l=aC(2);return qC(l.selectedPaths,i)||(l.selectedPaths=i),Ld(i)}),Wl(),bD(),Wl();}if(n&2){let e=aC(2);uT(e.canSearch()?0:-1),bE(),vg("rootPaths",e.rootPaths())("backupSettings",e.backupSettings())("multiSelect",true)("showFiles",true)("searchMode",e.isSearchMode())("searchResults",e.searchResults()),bE(3),cm("ngModel",e.selectedPaths),vg("ngModelOptions",XC(9,v)),MD();}}function xe(n,t){if(n&1){let e=ET();Zi(0,"div",17)(1,"sh-select",18)(2,"label",19),oC(3,4),Wl(),Zi(4,"input",20),Hg("ngModelChange",function(i){Pd(e);let l=aC();return Ld(l.onVersionChange(i))}),Wl(),bD(),cg(5,fe,5,7,"ng-template"),Wl()(),lT(6,Ie,1,0,"sh-progress-bar",21),lT(7,be,5,10);}if(n&2){let e=aC();bE(),vg("options",e.versions())("isClearable",false),bE(3),vg("ngModel",e.selectedVersion())("ngModelOptions",XC(6,v)),MD(),bE(2),uT(e.loadingRootPath()?6:-1),bE(),uT(e.showFileTree()?7:-1);}}var $=class n{#n=T(J);#t=T(f);#e=T(m);#i=T(ee);#o=T(W);versions=this.#e.versions;isLoadingVersions=this.#e.isLoadingVersions;selectedVersion=this.#e.selectedVersion;selectedPaths=this.#e.selectedPaths;selectedPathsArray=this.#e.selectedPathsArray;backupSettings=Ge$1(null);rootPaths=Ge$1([]);showFileTree=Ge$1(false);loadingRootPath=Ge$1(false);canSearch=Nt(()=>this.#t.hasV2ListOperations());searchQuery=Ge$1("");isSearching=Ge$1(false);searchResults=Ge$1([]);hasSearched=Ge$1(false);isSearchMode=Nt(()=>this.searchQuery().length>0&&this.hasSearched());versionEffect=Qa(()=>{let t=this.selectedVersion();if(t===null)return;let e=this.versions().find(i=>i.Version===parseInt(t));if(!e?.Time)return;let a=this.#e.backupId();a&&this.loadVersion({id:a,time:e.Time});});onVersionChange(t){this.selectedPaths.set(""),this.clearSearch(),this.selectedVersion.set(t);}loadVersion(t){this.loadingRootPath.set(true),this.showFileTree.set(false),this.backupSettings.set(t),sy(()=>this.#n.postApiV2BackupListFolder({body:{BackupId:t.id,Time:t.time,Paths:null,PageSize:0,Page:0,ReturnExtended:true}})).pipe(Zu(()=>{this.loadingRootPath.set(false),this.showFileTree.set(true);})).subscribe({next:e=>{let a=(e.Data??[]).map(i=>i.Path??"");this.rootPaths.set(a.length>0?a:["/"]);}});}performSearch(){let t=this.searchQuery().trim(),e=this.backupSettings();if(!t||!e)return;let a=parseInt(this.selectedVersion()??"");Number.isNaN(a)||(this.isSearching.set(true),this.searchResults.set([]),this.hasSearched.set(true),sy(()=>this.#n.postApiV2BackupSearch({body:{BackupId:e.id,Time:null,Version:[a],Filters:[t],Paths:null,PageSize:1e3,Page:0,ReturnExtended:false,SearchMetadata:false}})).pipe(Zu(()=>this.isSearching.set(false))).subscribe({next:i=>{this.searchResults.set(i.Data??[]);},error:()=>{this.searchResults.set([]);}}));}clearSearch(){this.searchQuery.set(""),this.searchResults.set([]),this.hasSearched.set(false);}next(){this.selectedPathsArray().length!==0&&this.#i.navigate(["../version-scope"],{relativeTo:this.#o});}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=gw({type:n,selectors:[["app-purge-select-files"]],decls:10,vars:4,consts:()=>{let t;t=$localize`${"\uFFFD#6\uFFFD"}:START_TAG_SH_ICON:arrow-left${"\uFFFD/#6\uFFFD"}:CLOSE_TAG_SH_ICON: Exit `;let e;e=$localize`${"\uFFFD#9\uFFFD"}:START_TAG_SH_ICON:arrow-right${"\uFFFD/#9\uFFFD"}:CLOSE_TAG_SH_ICON: Continue `;let a;a=$localize`Fetching versions from destination...`;let i;i=$localize`No versions found for this backup.`;let l;l=$localize`Select a version...`;let U;U=$localize`Version`;let B;B=$localize`Path`;let D;D=$localize`Enter search term...`;let w;w=$localize`Search files`;let V;V=$localize`Search`;let k;k=$localize`Clear`;let J;J=$localize`0 results found`;let K;return K=$localize`Found ${"\uFFFD0\uFFFD"}:INTERPOLATION: result(s)`,[t,e,a,i,U,B,w,V,k,J,K,[1,"loading-state"],[1,"empty-state"],[1,"form-actions"],["shButton","","type","button",3,"routerLink"],["shButton","","type","button",1,"raised","primary",3,"click","disabled"],[1,"primary","indeterminate"],[1,"version-picker"],["value","Version",3,"options","isClearable"],["for","version"],["type","text","id","version","placeholder",l,3,"ngModelChange","ngModel","ngModelOptions"],[1,"indeterminate","primary"],[1,"custom-option"],[1,"label"],[1,"fill",3,"rootPaths","backupSettings","multiSelect","showFiles","searchMode","searchResults"],["for","path"],["type","text","id","path",3,"ngModelChange","ngModel","ngModelOptions"],[1,"search-container"],["for","search"],["type","text","id","search","placeholder",D,3,"ngModelChange","keydown.enter","ngModel","ngModelOptions"],["shButton","","type","button",1,"small",3,"click","disabled"],[1,"spinner"],["shButton","","type","button",1,"small","secondary"],[1,"search-results-info"],["shButton","","type","button",1,"small","secondary",3,"click"]]},template:function(e,a){e&1&&(lT(0,Pe,4,0,"div",11)(1,he,3,0,"div",12)(2,xe,8,7),Zi(3,"div",13)(4,"button",14),Fg(5,0),Ig(6,"sh-icon"),jg(),Wl(),Zi(7,"button",15),Hg("click",function(){return a.next()}),Fg(8,1),Ig(9,"sh-icon"),jg(),Wl()()),e&2&&(uT(a.isLoadingVersions()?0:a.versions().length===0?1:2),bE(4),vg("routerLink",XC(3,me)),bE(3),vg("disabled",a.selectedPathsArray().length===0));},dependencies:[Bn,Ze,Rn,Jt,le,v$1,Fe$1,N,d,Nt$1,_t,ci,m$1],styles:["[_nghost-%COMP%]{display:flex;flex-direction:column;flex:1 0;min-height:25rem;overflow:hidden;gap:1rem;padding-top:2rem;padding-bottom:1.5rem}.loading-state[_ngcontent-%COMP%], .empty-state[_ngcontent-%COMP%]{padding:2rem 0;display:flex;flex-direction:column;gap:1rem}.version-picker[_ngcontent-%COMP%] .label[_ngcontent-%COMP%]{color:var(--base-9)}.search-container[_ngcontent-%COMP%]{display:flex;align-items:flex-end;gap:.5rem}.search-container[_ngcontent-%COMP%] sh-form-field[_ngcontent-%COMP%]{flex:1}.search-results-info[_ngcontent-%COMP%]{color:var(--base-8);font-size:var(--small)}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"]})};export{$ as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {w}from'./chunk-DKRWta24.js';import {w as w$1}from'./chunk-Brfc2m61.js';import'./chunk-CSrYlKTK.js';import {t as te}from'./chunk-DmCJ7w-M.js';import'./chunk-C1-31fA7.js';import'./chunk-iU19kwHx.js';import'./chunk-C185qUb-.js';import {K as Ke}from'./chunk-DWCofCiP.js';import'./chunk-6-sszNfh.js';import'./chunk-Kq2ZFJSk.js';import'./chunk-zOY5leQB.js';import'./chunk-29_4gGIi.js';import'./chunk-BEUeHgR9.js';import'./chunk-CGnjVnmu.js';import'./chunk-BJOhC2d8.js';import'./chunk-fDWfSg6Y.js';import'./chunk-DuRr4rDS.js';import'./chunk-C1py21yb.js';import'./chunk-D38QrkIM.js';import'./chunk-3YzyUT-a.js';import'./chunk-CKUlUN3q.js';import {T,ax as W,e as ee,G as Ge,Q as Qa,bb as k$1,g as gw,$ as lr,_ as _t,a8 as To,d as Ig,l as lT,Z as Zi,W as Wl,b as bE,c as uT,aF as JC,K as Kg,h as aC,o as oC,z as vg,a3 as XC,b0 as eb}from'./main-2ZYVV4C4.js';import'./chunk-CFgDqLU0.js';import'./chunk-BGuvkLC9.js';import'./chunk-DBkkb6OR.js';import'./chunk-iGzJokt-.js';import'./chunk-DneBfCBh.js';import'./chunk-Bq_vr6Q3.js';import'./chunk-D9jPw9Ov.js';import {L}from'./chunk-Cm7JSdTO.js';import'./chunk-CnZx831x.js';var b=()=>["/restore-from-files/destination"],x=()=>["/restore-from-files/encryption"],k=()=>["/restore-from-files/select-files"],J=()=>["/restore-from-files/options"],X=t=>["/restore",t,"select-files"],D=t=>["/restore",t,"options"];function z(t,i){t&1&&(Zi(0,"div",7),oC(1,0),Wl(),Zi(2,"div",7),oC(3,1),Wl(),Zi(4,"div",8),oC(5,2),Wl(),Zi(6,"div",8),oC(7,3),Wl()),t&2&&(vg("routerLink",XC(4,b)),bE(2),vg("routerLink",XC(5,x)),bE(2),vg("routerLink",XC(6,k)),bE(2),vg("routerLink",XC(7,J)));}function B(t,i){if(t&1&&(Zi(0,"div",7),oC(1,4),Wl(),Zi(2,"div",7),oC(3,5),Wl()),t&2){let e=aC(2);vg("routerLink",eb(2,X,e.backupId())),bE(2),vg("routerLink",eb(4,D,e.backupId()));}}function U(t,i){if(t&1&&(Zi(0,"sh-stepper",6),lT(1,z,8,8)(2,B,4,6),Wl()),t&2){let e=aC();bE(),uT(e.isFileRestore()?1:2);}}var P=class t{#e=T(W);#i=T(ee);#t=T(w);#n=L(this.#e.params);#o=L(this.#e.url);#s=L(this.#e.children[0].url);backupId=this.#t.backupId;isFileRestore=this.#t.isFileRestore;isFullWidthPage=Ge(false);isSelectFilesPage=Ge(false);paramsChanged=Qa(()=>{let i=this.#s(),e=this.#n()?.id,n=!!this.#o()?.find(r=>r.path==="restore-from-files"),c=!!i?.find(r=>r.path==="select-files"),R=!!i?.find(r=>r.path==="progress");this.isSelectFilesPage.set(c),this.isFullWidthPage.set(R||c),this.#t.init(e,n);});ngOnInit(){this.#i.events.subscribe(i=>{if(i instanceof k$1){let e=i.urlAfterRedirects;this.isSelectFilesPage.set(e.includes("select-files")),this.isFullWidthPage.set(e.includes("progress")||e.includes("select-files"));}});}static \u0275fac=function(e){return new(e||t)};static \u0275cmp=gw({type:t,selectors:[["app-restore-flow"]],hostVars:4,hostBindings:function(e,n){e&2&&Kg("full-width",n.isFullWidthPage())("fill-height",n.isSelectFilesPage());},features:[JC([w,Ke])],decls:4,vars:1,consts:()=>{let i;i=$localize` Destination `;let e;e=$localize` Encryption `;let n;n=$localize` Select files `;let c;c=$localize` Options `;let R;R=$localize` Select files `;let r;return r=$localize`Options`,[i,e,n,c,R,r,[1,"primary"],["tabindex","-1","routerLinkActive","active",3,"routerLink"],["tabindex","-1","routerLinkActive","active",1,"inactive",3,"routerLink"]]},template:function(e,n){e&1&&(Ig(0,"app-status-bar"),lT(1,U,3,1,"sh-stepper",6),Zi(2,"section"),Ig(3,"router-outlet"),Wl()),e&2&&(bE(),uT(n.isFullWidthPage()?-1:1));},dependencies:[w$1,te,lr,_t,To],styles:["[_nghost-%COMP%]{display:block}.full-width[_nghost-%COMP%] section[_ngcontent-%COMP%]{max-width:62.5rem}.fill-height[_nghost-%COMP%]{display:flex;flex-direction:column;height:100%;overflow:hidden}.fill-height[_nghost-%COMP%] section[_ngcontent-%COMP%]{display:flex;flex-direction:column;flex:1 0;overflow:hidden;width:100%}sh-stepper[_ngcontent-%COMP%]{margin:2.5rem 2rem;width:calc(100% - 4rem)}section[_ngcontent-%COMP%]{max-width:31.25rem;margin:0 auto 2.5rem}@media only screen and (max-width:768px){section[_ngcontent-%COMP%]{padding:0 2rem}}.inactive[_ngcontent-%COMP%]{pointer-events:none;opacity:.5}"]})};export{P as default};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import {j as jn,m as me}from'./chunk-iGzJokt-.js';import {ak as l$1,T,ab as J$1,ay as De,I as I$1,N as Nt,ad as sy,aI as pt,aA as N,a_ as ee$1,G as Ge,aj as m$1,C as Zu,bW as n$1}from'./main-2ZYVV4C4.js';var y=class{constructor(t){this.loader=t;}loader;_data=Ge(void 0);_isLoading=false;_loaded=false;load(){return !this._loaded&&!this._isLoading&&(this._isLoading=true,this.loader().pipe(Zu(()=>this._isLoading=false)).subscribe(t=>{this._data.set(t),this._loaded=true;})),this._data.asReadonly()}value(){return this._data.asReadonly()}isLoading(){return this._isLoading}isLoaded(){return this._loaded}reset(){this._data.set(void 0),this._loaded=false;}};function J(e){return !("personalLicensedUser"in e)}function q(e){if(J(e))return m$1(l$1({},e),{personal:e.personal,personalLicensedUser:null,personalUnlicensedUser:null});let s=e,{personalLicensedUser:t,personalUnlicensedUser:o}=s,r=n$1(s,["personalLicensedUser","personalUnlicensedUser"]);return m$1(l$1({},r),{personal:t+o,personalLicensedUser:t,personalUnlicensedUser:o})}var d=class e{#e=T(J$1);#s=T(De);#i=T(I$1);#o=new y(()=>this.getS3Config("Providers"));#a=new y(()=>this.getS3Config("Regions"));#r=new y(()=>this.getS3Config("RegionHosts"));#l=new y(()=>this.getS3Config("StorageClasses"));#c=Nt(()=>{let t=this.#o.value()(),o=this.#r.value()(),r=[...t??[],...o?.map(s=>({key:`Amazon ${s.key}`,value:s.value}))??[]];return Array.from(new Map(r.map(s=>[s.value,s])).values())});#u=new y(()=>this.getStorjConfig("Satellites"));#p=new y(()=>this.getStorjConfig("AuthenticationMethods"));#m=new y(()=>this.getOpenstackConfig("Providers"));#d=new y(()=>this.getOpenstackConfig("Versions"));#g=new y(()=>this.getGcsConfig("Locations"));#h=new y(()=>this.getGcsConfig("StorageClasses"));getS3AllProviders(){return this.#o.load(),this.#r.load(),this.#c}getS3ProvidersFiltered(t){return Nt(()=>this.getS3AllProviders()().filter(t))}getS3Providers(){return this.#o.load()}getS3Regions(){return this.#a.load()}getS3RegionHosts(){return this.#r.load()}getS3StorageClasses(){return this.#l.load()}getStorjSatellites(){return this.#u.load()}getStorjAuthenticationMethods(){return this.#p.load()}getOpenstackProviders(){return this.#m.load()}getOpenstackVersions(){return this.#d.load()}getGcsLocations(){return this.#g.load()}getGcsStorageClasses(){return this.#h.load()}getS3Config(t){return sy(()=>this.#e.postApiV1WebmoduleByModulekey({path:{modulekey:"s3-getconfig"},body:{"s3-config":t}})).pipe(pt(o=>this.#t(o)))}createS3IamUser(t,o){return sy(()=>this.#e.postApiV1WebmoduleByModulekey({path:{modulekey:"s3-iamconfig"},body:{"s3-operation":"CanCreateUser","s3-username":t,"s3-password":o}}))}createS3PolicyIAM(t){return sy(()=>this.#e.postApiV1WebmoduleByModulekey({path:{modulekey:"s3-iamconfig"},body:{"s3-operation":"GetPolicyDoc",path:t}}))}getStorjConfig(t){return sy(()=>this.#e.postApiV1WebmoduleByModulekey({path:{modulekey:"storj-getconfig"},body:{"storj-config":t}})).pipe(pt(o=>this.#t(o)))}getOpenstackConfig(t){return sy(()=>this.#e.postApiV1WebmoduleByModulekey({path:{modulekey:"openstack-getconfig"},body:{"openstack-config":t}})).pipe(pt(o=>this.#t(o)))}getGcsConfig(t){return sy(()=>this.#e.postApiV1WebmoduleByModulekey({path:{modulekey:"gcs-getconfig"},body:{"gcs-config":t}})).pipe(pt(o=>this.#t(o)))}#t(t){return (t.Result&&typeof t.Result=="object"&&Object.entries(t.Result).map(([o,r])=>({key:o,value:r})))??[]}getDuplicatiStorageBackups(t){return sy(()=>this.#e.postApiV1WebmoduleByModulekey({path:{modulekey:"duplicati-list-backups"},body:{action:"ListBackups",url:t}})).pipe(pt(o=>this.#t(o)),pt(o=>o.find(r=>r.key==="folders")?.value),pt(o=>JSON.parse(o)))}getFilenApiKey(t,o){return sy(()=>this.#e.postApiV1WebmoduleByModulekey({path:{modulekey:"filen-get-api-key"},body:{"filen-operation":"GetApiKey","backup-id":o??"",url:t}})).pipe(pt(r=>this.#t(r)),pt(r=>r.find(s=>s.key==="api-key")?.value))}getOffice365Counts(t,o,r){let s={"Content-Type":"application/json"};return this.#i.relayIsEnabled()&&(s.timeout=`${300*1e3}`),this.#s.post(`${N()}/api/v1/webmodule/office365`,JSON.stringify({"backup-id":r??"","source-prefix":o,operation:"CountItems",url:t}),{headers:s}).pipe(pt(i=>this.#t(i)),pt(i=>i.find(c=>c.key==="counts")?.value),pt(i=>{let c=JSON.parse(i);return {users:c.users,groups:c.groups,sites:q(c.sites)}}))}getOffice365Permissions(t,o,r){return this.#n("office365",t,o,r)}getGsuitePermissions(t,o,r){return this.#n("googleworkspace",t,o,r)}#n(t,o,r,s){return this.#s.post(`${N()}/api/v1/webmodule/${t}`,JSON.stringify({"backup-id":s??"","source-prefix":r,operation:"CheckPermissions",url:o}),{headers:{"Content-Type":"application/json"}}).pipe(pt(i=>this.#t(i)),pt(i=>i.find(c=>c.key==="permissions")?.value),pt(i=>JSON.parse(i)))}static \u0275fac=function(o){return new(o||e)};static \u0275prov=ee$1({token:e,factory:e.\u0275fac,providedIn:"root"})};var n=new jn,p={type:"error",message:$localize`Using a leading slash is most likely wrong, and will result in objects being created with a leading slash in the name.`},I={description:$localize`Unknown destination type`,sourceDescription:null,icon:"assets/dest-icons/file-system.png",isDefaultEntry:true,customFields:{path:{type:"String",name:"path",doubleSlash:p,shortDescription:$localize`Path`,formElement:e=>n.control(e??"")}},mapper:{to:e=>u(e,null,null,e.custom.path),from:(e,t,o)=>{let s=o.startsWith(`${e}:///`)?o.split(`${e}:///`)[1]:o.split(`${e}://`)[1];return l$1({destinationType:e,custom:{path:s.split("?")[0]}},l(e,t))}}},P={key:"s3",displayName:$localize`S3 Compatible`,description:$localize`Store backups in any S3 compatible bucket.`,sourceDescription:$localize`Use files from any S3 compatible bucket as a remote source.`,icon:"assets/dest-icons/s3compat.png",customFields:{bucket:{type:"Bucketname",name:"bucket",shortDescription:$localize`Bucket name`,longDescription:$localize`Bucket name`,formElement:e=>n.control(e??""),isMandatory:true},path:{type:"Path",name:"path",doubleSlash:p,shortDescription:$localize`Folder path`,longDescription:$localize`Folder path`,formElement:e=>n.control(e??"")}},dynamicFields:[{name:"s3-server-name",order:1,shortDescription:$localize`Server`,longDescription:$localize`The hostname of the S3 compatible server to connect to`,type:"NonValidatedSelectableString",loadOptions:e=>e.get(d).getS3AllProviders(),isMandatory:true,formElement:e=>n.control(e??"")},{name:"auth-username",isMandatory:true},{name:"auth-password",isMandatory:true},{name:"use-ssl"}],advancedFields:[{name:"s3-client",type:"Enumeration",loadOptions:()=>Ge([{key:"AWS Library",value:"aws"},{key:"MinIO Library",value:"minio"}]),validate:e=>({type:"warning",message:$localize`Invalid client selected`})}],mapper:{to:e=>{let{bucket:t,path:o}=e.custom;return u(e,t,null,o)},from:(e,t,o)=>{let{bucket:r,path:s}=m(t);return l$1({destinationType:e,custom:{path:s,bucket:r}},l(e,t))}}},O=[{key:"file",displayName:$localize`File system`,description:$localize`Store backups on your local file system.`,sourceDescription:$localize`Use files from your local file system as a remote source.`,icon:"assets/dest-icons/file-system.png",searchTerms:"local disk harddrive localdisk filesystem unc server share drive",sortOrder:110,customFields:{path:{type:"FolderTree",name:"path",doubleSlash:p,shortDescription:$localize`File path`,longDescription:$localize`The path to store the backup`,formElement:e=>n.control(e??""),isMandatory:true}},mapper:{to:e=>u(e,null,null,e.custom.path),from:(e,t,o)=>{let r=o.startsWith("file:///"),s=decodeURIComponent(r?o.split("file:///")[1]:o.split("file://")[1]),c=s.slice(1).startsWith(":\\")||s.slice(1).startsWith(":/")||s.startsWith("\\\\")?s:"/"+s;return l$1({destinationType:e,custom:{path:c.split("?")[0]}},l(e,t))}}},{key:"duplicati",displayName:$localize`Duplicati Storage`,description:$localize`Store backups with Duplicati Storage.`,sourceDescription:$localize`Use files from Duplicati Storage as a remote source.`,icon:"assets/dest-icons/duplicati.png",searchTerms:"duplicati internal built-in",sortOrder:100,dynamicFields:[{name:"duplicati-backup-id",type:"DuplicatiBackupId",isMandatory:true,shortDescription:$localize`Unique Backup ID`,longDescription:$localize`A unique identifier for the backup job. It is recommended to not change this value.`}],mapper:{to:e=>u(e,null,null,null),from:(e,t,o)=>l$1({destinationType:e},l(e,t)),default:e=>e&&e.length>0?`duplicati://?duplicati-backup-id=${encodeURIComponent(e)}`:"duplicati://"}},{key:"ssh",displayName:$localize`SFTP (SSH)`,description:$localize`Store backups with SFTP (SSH).`,sourceDescription:$localize`Use files from SFTP (SSH) as a remote source.`,icon:"assets/dest-icons/ssh.png",searchTerms:"sftp scp secure shell",sortOrder:80,customFields:{server:{type:"Hostname",name:"server",shortDescription:$localize`Server`,longDescription:$localize`The server to connect to`,formElement:e=>n.control(e??""),isMandatory:true},port:{type:"Integer",name:"port",shortDescription:$localize`Port`,longDescription:$localize`The port to connect to`,formElement:e=>n.control(e??"",[me.required,me.max(65535)])},path:{type:"Path",name:"path",shortDescription:$localize`Folder path`,longDescription:$localize`Folder path`,doubleSlash:{type:"warning",message:$localize`Using a leading slash makes the path absolute, pointing to the root of the filesystem.`},formElement:e=>n.control(e??"")}},dynamicFields:[{name:"auth-username",shortDescription:$localize`Username`,longDescription:$localize`Username`,isMandatory:true},{name:"auth-password",shortDescription:$localize`Password`,longDescription:$localize`Password`}],advancedFields:[{type:"FileTree",name:"ssh-keyfile",accepts:".key,",shortDescription:$localize`This is a path to a private key file locally on the machine`,longDescription:$localize`This is a path to a private key file locally on the machine`},{type:"FreeText",name:"ssh-key",shortDescription:$localize`SSH private key`,longDescription:$localize`An SSH private key. Supported formats are OpenSSL, OpenSSH, PuTTY, and PEM.`}],mapper:{to:e=>{let{server:t,port:o,path:r}=e.custom;return u(e,t,o,r)},from:(e,t,o)=>{let{server:r,port:s,path:i}=m(t);return l$1({destinationType:e,custom:{server:r,port:s,path:i}},l(e,t))}}},{key:"s3",displayName:$localize`S3 Compatible`,description:$localize`Store backups in any S3 compatible bucket.`,sourceDescription:$localize`Use files from any S3 compatible bucket as a remote source.`,icon:"assets/dest-icons/s3compat.png",searchTerms:"spaces cloud digitalocean cloudian minio linode bunnycdn oracle cloudflare alibaba huawei tencent baidu jd ucloud qiniu aliyun tcloud tencent ",sortOrder:90,customFields:{bucket:{type:"Bucketname",name:"bucket",shortDescription:$localize`Bucket name`,longDescription:$localize`Bucket name`,formElement:e=>n.control(e??""),isMandatory:true},path:{type:"Path",name:"path",doubleSlash:p,shortDescription:$localize`Folder path`,longDescription:$localize`Folder path`,formElement:e=>n.control(e??"")}},dynamicFields:[{name:"s3-server-name",order:1,shortDescription:$localize`Server`,longDescription:$localize`The hostname of the S3 compatible server to connect to`,type:"NonValidatedSelectableString",loadOptions:e=>e.get(d).getS3AllProviders(),isMandatory:true,formElement:e=>n.control(e??"")},{name:"use-ssl",order:2},{name:"auth-username",isMandatory:true},{name:"auth-password",isMandatory:true}],advancedFields:[{name:"s3-client",type:"Enumeration",loadOptions:()=>Ge([{key:"AWS Library",value:"aws"},{key:"MinIO Library",value:"minio"}])},{name:"s3-storage-class",type:"NonValidatedSelectableString",loadOptions:e=>e.get(d).getS3StorageClasses()},{name:"s3-location-constraint",type:"NonValidatedSelectableString",loadOptions:e=>e.get(d).getS3Regions()}],mapper:{to:e=>{let{bucket:t,path:o}=e.custom;return u(e,t,null,o)},from:(e,t,o)=>{let{bucket:r,path:s}=m(t);return l$1({destinationType:e,custom:{path:s,bucket:r}},l(e,t))}}},{key:"s3",customKey:"s3-aws",displayName:$localize`Amazon S3`,description:$localize`Store backups in Amazon S3.`,sourceDescription:$localize`Use files from Amazon S3 as a remote source.`,icon:"assets/dest-icons/aws.png",searchTerms:"amazon aws",customFields:{bucket:{type:"Bucketname",name:"bucket",shortDescription:$localize`Bucket name`,longDescription:$localize`Bucket name`,formElement:e=>n.control(e??""),isMandatory:true},path:{type:"Path",name:"path",doubleSlash:p,shortDescription:$localize`Folder path`,longDescription:$localize`Folder path`,formElement:e=>n.control(e??"")}},dynamicFields:[{name:"s3-server-name",order:1,shortDescription:$localize`Server`,longDescription:$localize`The hostname of the S3 compatible server to connect to`,type:"NonValidatedSelectableString",loadOptions:e=>e.get(d).getS3ProvidersFiltered(t=>t.value.endsWith(".amazonaws.com")),isMandatory:true,formElement:e=>n.control(e??"")},{name:"use-ssl",order:2},{name:"auth-username",isMandatory:true},{name:"auth-password",isMandatory:true}],advancedFields:[{name:"s3-client",type:"Enumeration",loadOptions:()=>Ge([{key:"AWS Library",value:"aws"},{key:"MinIO Library",value:"minio"}])},{name:"s3-storage-class",type:"NonValidatedSelectableString",loadOptions:e=>e.get(d).getS3StorageClasses()},{name:"s3-location-constraint",type:"NonValidatedSelectableString",loadOptions:e=>e.get(d).getS3Regions()}],mapper:{to:e=>{let{bucket:t,path:o}=e.custom;return e.dynamic["s3-server-name"]?.endsWith(".amazonaws.com")&&(e.destinationType="s3"),u(e,t,null,o)},from:(e,t,o)=>{let{bucket:r,path:s}=m(t);return l$1({destinationType:e,custom:{path:s,bucket:r}},l(e,t))},default:e=>"s3-aws://?use-ssl=true",intercept:e=>e.searchParams.get("s3-server-name")?.endsWith(".amazonaws.com")??false}},{key:"gcs",displayName:$localize`Google Cloud Storage`,description:$localize`Store backups in Google Cloud Storage.`,sourceDescription:$localize`Use files from Google Cloud Storage as a remote source.`,icon:"assets/dest-icons/google-cloud.png",oauthField:"authid",searchTerms:"gcp googlecloud",sortOrder:70,customFields:{bucket:{type:"Bucketname",name:"bucket",shortDescription:$localize`Bucket name`,longDescription:$localize`Bucket name`,formElement:e=>n.control(e??""),isMandatory:true},path:{type:"Path",name:"path",doubleSlash:p,shortDescription:$localize`Folder path`,longDescription:$localize`Folder path`,formElement:e=>n.control(e??"")}},dynamicFields:[{name:"authid",isMandatory:true,longDescription:$localize`An OAuth token with access to the Google Cloud Storage. Not required if service account JSON is provided.`}],advancedFields:[{name:"gcs-location",type:"NonValidatedSelectableString",loadOptions:e=>e.get(d).getGcsLocations()},{name:"gcs-storage-class",type:"NonValidatedSelectableString",loadOptions:e=>e.get(d).getGcsStorageClasses()},{name:"gcs-service-account-file",type:"FileTree",accepts:".json,",shortDescription:$localize`Service account JSON file`,longDescription:$localize`Pick the path to a file with service account JSON.`},{name:"gcs-service-account-json",type:"FreeText",shortDescription:$localize`Service account JSON`,longDescription:$localize`Paste the service account JSON here.`}],mapper:{to:e=>{let{bucket:t,path:o}=e.custom;return u(e,t,null,o)},from:(e,t,o)=>{let{bucket:r,path:s}=m(t);return l$1({destinationType:e,custom:{path:s,bucket:r}},l(e,t))}}},{key:"googledrive",displayName:$localize`Google Drive`,description:$localize`Store backups in Google Drive.`,sourceDescription:$localize`Use files from Google Drive as a remote source.`,icon:"assets/dest-icons/google-drive.png",oauthField:"authid",searchTerms:"gdrive",customFields:{path:{type:"Path",name:"path",doubleSlash:p,shortDescription:$localize`Folder path`,longDescription:$localize`Folder path`,formElement:e=>n.control(e??"")}},dynamicFields:[{name:"authid",type:"Password",isMandatory:true}],mapper:{to:e=>u(e,null,null,e.custom.path),from:(e,t,o)=>l$1({destinationType:e,custom:{path:f(t)}},l(e,t))}},{key:"pcloud",displayName:$localize`pCloud`,description:$localize`Store backups in pCloud.`,sourceDescription:$localize`Use files from pCloud as a remote source.`,icon:"assets/dest-icons/pcloud.png",oauthField:"authid",customFields:{server:{type:"Enumeration",name:"server",loadOptions:()=>Ge([{key:"pCloud Global",value:"api.pcloud.com"},{key:"pCloud Europe",value:"eapi.pcloud.com"}]),shortDescription:$localize`Server`,longDescription:$localize`Server`,formElement:e=>n.control(e??""),isMandatory:true},path:{type:"Path",name:"path",doubleSlash:p,shortDescription:$localize`Folder path`,longDescription:$localize`Folder path`,formElement:e=>n.control(e??"")}},dynamicFields:[{name:"authid",type:"Password",oauthVersion:2,isMandatory:true}],mapper:{to:e=>{let{server:t,path:o}=e.custom;return u(e,t,null,o)},from:(e,t,o)=>{let{server:r,path:s}=m(t);return l$1({destinationType:e,custom:{server:r,path:s}},l(e,t))}}},{key:"azure",displayName:$localize`Azure Blob Storage`,description:$localize`Store backups in Azure Blob Storage.`,sourceDescription:$localize`Use files from Azure Blob Storage as a remote source.`,icon:"assets/dest-icons/azure.png",searchTerms:"microsoft ms",sortOrder:60,customFields:{path:{type:"Path",name:"path",doubleSlash:p,shortDescription:$localize`Container name`,longDescription:$localize`Container name`,formElement:e=>n.control(e??"")}},dynamicFields:[{name:"auth-username",shortDescription:$localize`Account name`,isMandatory:true},{name:"auth-password",shortDescription:$localize`Access key`,isMandatory:true}],mapper:{to:e=>u(e,null,null,e.custom.path),from:(e,t,o)=>l$1({destinationType:e,custom:{path:f(t)}},l(e,t))}},{key:"onedrivev2",displayName:$localize`OneDrive`,description:$localize`Store backups in OneDrive.`,sourceDescription:$localize`Use files from OneDrive as a remote source.`,icon:"assets/dest-icons/one-drive.png",oauthField:"authid",searchTerms:"micorsoft ms",customFields:{path:{type:"Path",name:"path",doubleSlash:p,shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,formElement:e=>n.control(e??"")}},dynamicFields:[{name:"authid",isMandatory:true}],mapper:{to:e=>u(e,null,null,e.custom.path),from:(e,t,o)=>l$1({destinationType:e,custom:{path:f(t)}},l(e,t))}},{key:"od4b",displayName:$localize`OneDrive Business (deprecated)`,description:$localize`Store backups in OneDrive Business. Deprecated, use Sharepoint instead.`,sourceDescription:$localize`Use files from OneDrive Business as a remote source. Deprecated, use SharePoint instead.`,icon:"assets/dest-icons/one-drive.png",searchTerms:"microsoft ms",sortOrder:-1,customFields:{server:{type:"Hostname",name:"server",shortDescription:$localize`Server`,longDescription:$localize`Server`,formElement:e=>n.control(e??""),isMandatory:true},port:{type:"Integer",name:"port",shortDescription:$localize`Port`,longDescription:$localize`Port`,formElement:e=>n.control(e??"")},path:{type:"Path",name:"path",doubleSlash:p,shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,formElement:e=>n.control(e??"")}},dynamicFields:[{name:"auth-username",shortDescription:$localize`Account name`,isMandatory:true},{name:"auth-password",shortDescription:$localize`Access key`,isMandatory:true}],mapper:{to:e=>{let{port:t,server:o,path:r}=e.custom;return u(e,o,t,r)},from:(e,t,o)=>{let{server:r,port:s,path:i}=m(t);return l$1({destinationType:e,custom:{server:r,port:s,path:i}},l(e,t))}}},{key:"mssp",displayName:$localize`Microsoft SharePoint (deprecated)`,description:$localize`Store backups in Microsoft SharePoint using legacy API.`,sourceDescription:$localize`Use files from Microsoft SharePoint as a remote source using the legacy API.`,icon:"assets/dest-icons/sharepoint.png",searchTerms:"microsoft ms",sortOrder:-1,customFields:{server:{type:"Hostname",name:"server",shortDescription:$localize`Server`,longDescription:$localize`Server`,formElement:e=>n.control(e??""),isMandatory:true},port:{type:"Integer",name:"port",shortDescription:$localize`Port`,longDescription:$localize`Port`,formElement:e=>n.control(e??"")},path:{type:"String",name:"path",doubleSlash:p,shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,formElement:e=>n.control(e??"")}},dynamicFields:[{name:"auth-username",shortDescription:$localize`Account name`,isMandatory:true},{name:"auth-password",shortDescription:$localize`Access key`,isMandatory:true}],mapper:{to:e=>{let{port:t,server:o,path:r}=e.custom;return u(e,o,t,r)},from:(e,t,o)=>{let{server:r,port:s,path:i}=m(t);return l$1({destinationType:e,custom:{server:r,port:s,path:i}},l(e,t))}}},{key:"sharepoint",displayName:$localize`Microsoft SharePoint`,description:$localize`Store backups in Microsoft SharePoint.`,sourceDescription:$localize`Use files from Microsoft SharePoint as a remote source.`,icon:"assets/dest-icons/sharepoint.png",oauthField:"authid",searchTerms:"microsoft ms",customFields:{path:{type:"Path",name:"path",doubleSlash:p,shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,formElement:e=>n.control(e??"")}},dynamicFields:[{name:"site-id",isMandatory:true},{name:"authid",isMandatory:true}],mapper:{to:e=>u(e,null,null,e.custom.path),from:(e,t,o)=>l$1({destinationType:e,custom:{path:f(t)}},l(e,t))}},{key:"dropbox",displayName:$localize`Dropbox`,description:$localize`Store backups in Dropbox.`,sourceDescription:$localize`Use files from Dropbox as a remote source.`,icon:"assets/dest-icons/dropbox.png",oauthField:"authid",searchTerms:"dbx",customFields:{path:{type:"Path",name:"path",doubleSlash:p,shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,formElement:e=>n.control(e??"")}},dynamicFields:[{name:"authid",isMandatory:true}],mapper:{to:e=>u(e,null,null,e.custom.path),from:(e,t,o)=>l$1({destinationType:e,custom:{path:f(t)}},l(e,t))}},{key:"box",displayName:$localize`Box.com`,description:$localize`Store backups in Box.com.`,sourceDescription:$localize`Use files from Box.com as a remote source.`,icon:"assets/dest-icons/box-com.png",oauthField:"authid",customFields:{path:{type:"Path",name:"path",doubleSlash:p,shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,formElement:e=>n.control(e??"")}},dynamicFields:[{name:"authid",isMandatory:true}],mapper:{to:e=>u(e,null,null,e.custom.path),from:(e,t,o)=>l$1({destinationType:e,custom:{path:f(t)}},l(e,t))}},{key:"jottacloud",displayName:$localize`Jottacloud`,description:$localize`Store backups in Jottacloud.`,sourceDescription:$localize`Use files from Jottacloud as a remote source.`,icon:"assets/dest-icons/jottacloud.png",oauthField:"authid",customFields:{path:{type:"Path",name:"path",doubleSlash:p,shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,formElement:e=>n.control(e??"")}},dynamicFields:[{name:"authid",isMandatory:true}],mapper:{to:e=>u(e,null,null,e.custom.path),from:(e,t,o)=>l$1({destinationType:e,custom:{path:f(t)}},l(e,t))}},{key:"b2",displayName:$localize`B2 Cloud Storage`,description:$localize`Store backups in B2 Cloud Storage.`,sourceDescription:$localize`Use files from B2 Cloud Storage as a remote source.`,icon:"assets/dest-icons/backblaze.png",searchTerms:"backblaze",customFields:{bucket:{type:"Bucketname",name:"bucket",shortDescription:$localize`Bucket name`,longDescription:$localize`Bucket name`,formElement:e=>n.control(e??""),isMandatory:true,validate:e=>{function t(o){if(!o)return false;let r=o.length;return !(r<6||r>63||!/^[a-zA-Z0-9.-]+$/.test(o)||!/^[a-zA-Z0-9]/.test(o)||!/[a-zA-Z0-9]$/.test(o)||/^\d{1,3}(\.\d{1,3}){3}$/.test(o)||/(\.\.)|(\.-)|(-\.)/.test(o)||o.toLowerCase().startsWith("b2-"))}return t(e)?null:{type:"error",message:$localize`Invalid bucket name.`}}},path:{type:"Path",name:"path",doubleSlash:p,shortDescription:$localize`Path in the bucket`,longDescription:$localize`Path in the bucket`,formElement:e=>n.control(e??"")}},dynamicFields:[{name:"auth-username",shortDescription:$localize`Application ID`,isMandatory:true},{name:"auth-password",shortDescription:$localize`Application Key`,isMandatory:true}],mapper:{to:e=>{let{bucket:t,path:o}=e.custom;return u(e,t,null,o)},from:(e,t,o)=>{let{bucket:r,path:s}=m(t);return l$1({destinationType:e,custom:{path:s,bucket:r}},l(e,t))}}},{key:"e2",displayName:$localize`IDrive e2`,description:$localize`Store backups in IDrive e2.`,sourceDescription:$localize`Use files from IDrive e2 as a remote source.`,icon:"assets/dest-icons/idrive-e2.png",customFields:{bucket:{type:"Bucketname",name:"bucket",shortDescription:$localize`Bucket name`,longDescription:$localize`Bucket name`,formElement:e=>n.control(e??""),isMandatory:true},path:{type:"String",name:"path",doubleSlash:p,shortDescription:$localize`Path in the bucket`,longDescription:$localize`Path in the bucket`,formElement:e=>n.control(e??"")}},dynamicFields:[{name:"auth-username",shortDescription:$localize`Access ID`,isMandatory:true},{name:"auth-password",shortDescription:$localize`Access Secret`,isMandatory:true}],mapper:{to:e=>{let{bucket:t,path:o}=e.custom;return u(e,t,null,o)},from:(e,t,o)=>{let{bucket:r,path:s}=m(t);return l$1({destinationType:e,custom:{bucket:r,path:s}},l(e,t))}}},{key:"mega",displayName:$localize`Mega.nz`,description:$localize`Store backups in Mega.nz.`,sourceDescription:$localize`Use files from Mega.nz as a remote source.`,icon:"assets/dest-icons/mega-nz.png",sortOrder:-1,customFields:{path:{type:"Path",name:"path",doubleSlash:p,shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,formElement:e=>n.control(e??"")}},dynamicFields:[{name:"auth-username",shortDescription:$localize`Username`,isMandatory:true},{name:"auth-password",shortDescription:$localize`Password`,isMandatory:true}],mapper:{to:e=>{let t=e.custom.path;return u(e,null,null,t)},from:(e,t,o)=>l$1({destinationType:e,custom:{path:f(t)}},l(e,t))}},{key:"msgroup",displayName:$localize`Microsoft Office 365 Group`,description:$localize`Store backups in Microsoft Office 365 Group.`,sourceDescription:$localize`Use files from Microsoft Office 365 Group as a remote source.`,icon:"assets/dest-icons/office-365.png",oauthField:"authid",searchTerms:"ms",customFields:{groupEmail:{type:"Email",name:"groupEmail",shortDescription:$localize`Group email`,longDescription:$localize`Group email`,formElement:e=>n.control(e??"",[me.email]),isMandatory:true},path:{type:"Path",name:"path",doubleSlash:p,shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,formElement:e=>n.control(e??"")}},dynamicFields:[{name:"authid",isMandatory:true}],mapper:{to:e=>u(e,null,null,e.custom.path),from:(e,t,o)=>l$1({destinationType:e,custom:{path:f(t)}},l(e,t))}},{key:"cloudfiles",displayName:$localize`Rackspace CloudFiles`,description:$localize`Store backups in Rackspace CloudFiles.`,sourceDescription:$localize`Use files from Rackspace CloudFiles as a remote source.`,icon:"assets/dest-icons/rackspace.png",customFields:{server:{type:"Hostname",name:"server",shortDescription:$localize`Server`,longDescription:$localize`Server`,formElement:e=>n.control(e??""),isMandatory:true},port:{type:"Integer",name:"port",shortDescription:$localize`Port`,longDescription:$localize`Port`,formElement:e=>n.control(e??"")},path:{type:"Path",name:"path",doubleSlash:p,shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,formElement:e=>n.control(e??"")}},dynamicFields:[{name:"auth-username",shortDescription:$localize`Username`,isMandatory:true},{name:"auth-password",shortDescription:$localize`Password`,isMandatory:true}],mapper:{to:e=>{let{port:t,server:o,path:r}=e.custom;return u(e,o,t,r)},from:(e,t,o)=>{let{server:r,port:s,path:i}=m(t);return l$1({destinationType:e,custom:{server:r,port:s,path:i}},l(e,t))}}},{key:"rclone",displayName:$localize`Rclone`,description:$localize`Store backups in Rclone.`,sourceDescription:$localize`Use files from Rclone as a remote source.`,icon:"assets/dest-icons/rclone.png",searchTerms:"rcl",dynamicFields:[{name:"rclone-local-repository",shortDescription:$localize`Local repository`,defaultValue:""},{name:"rclone-remote-repository",shortDescription:$localize`Remote repository`,defaultValue:""},{name:"rclone-remote-path",type:"Path",shortDescription:$localize`Path on remote repository`,defaultValue:""}],mapper:{to:e=>{let t=e.dynamic["rclone-remote-repository"],o=e.dynamic["rclone-remote-path"],r=Object.entries(e.dynamic).filter(([s])=>!["rclone-remote-repository","rclone-remote-path"].includes(s));return V(e.destinationType??"rclone",t,null,o,[...Object.entries(e.advanced??{}),...r])},from:(e,t,o)=>{let{advanced:r,dynamic:s}=l(e,t),{bucket:i,path:c}=m(t);return {destinationType:e,dynamic:l$1({"rclone-remote-repository":i,"rclone-remote-path":c},s),advanced:l$1({},r)}}}},{key:"openstack",displayName:$localize`OpenStack Object Storage`,description:$localize`Store backups in OpenStack Object Storage.`,sourceDescription:$localize`Use files from OpenStack Object Storage as a remote source.`,icon:"assets/dest-icons/open-stack.png",searchTerms:"swift",customFields:{bucket:{type:"Bucketname",name:"bucket",shortDescription:$localize`Bucket`,longDescription:$localize`Bucket`,formElement:e=>n.control(e??""),isMandatory:true}},dynamicFields:[{name:"openstack-authuri",shortDescription:$localize`Auth URI`,type:"Enumeration",loadOptions:e=>e.get(d).getOpenstackProviders(),isMandatory:true},{name:"openstack-version",shortDescription:$localize`Version`,type:"Enumeration",loadOptions:e=>e.get(d).getOpenstackVersions()},{name:"openstack-domain-name",type:"Hostname",shortDescription:$localize`Domain name`},{name:"openstack-tenant-name",shortDescription:$localize`Tenant name`},{name:"openstack-region",shortDescription:$localize`Region`}],mapper:{to:e=>{let{bucket:t}=e.custom;return u(e,t,null,null)},from:(e,t,o)=>{let{bucket:r,path:s}=m(t);return l$1({destinationType:e,custom:{path:s,bucket:r}},l(e,t))}}},{key:"webdav",displayName:$localize`WebDAV`,description:$localize`Store backups in WebDAV.`,sourceDescription:$localize`Use files from WebDAV as a remote source.`,icon:"assets/dest-icons/webdav.png",searchTerms:"web dav",customFields:{server:{type:"Hostname",name:"server",shortDescription:$localize`Server`,longDescription:$localize`Server`,formElement:e=>n.control(e??""),isMandatory:true},port:{type:"Integer",name:"port",shortDescription:$localize`Port`,longDescription:$localize`Port`,formElement:e=>n.control(e??"")},path:{type:"Path",name:"path",doubleSlash:p,shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,formElement:e=>n.control(e??"")}},dynamicFields:[{name:"use-ssl",shortDescription:$localize`Use SSL`},{name:"auth-username",shortDescription:$localize`Username`,isMandatory:true},{name:"auth-password",shortDescription:$localize`Password`,isMandatory:true}],advancedFields:[{type:"FileTree",name:"debug-propfind-file",accepts:".txt,.log"}],mapper:{to:e=>{let{server:t,port:o,path:r}=e.custom,s=typeof r=="string"?r.replace(/^\/+/,""):r;return u(e,t,o,s)},from:(e,t,o)=>{let{server:r,port:s,path:i}=m(t);return l$1({destinationType:e,custom:{server:r,port:s,path:i}},l(e,t))}}},{key:"aftp",displayName:$localize`Alternative FTP`,description:$localize`Store backups in FTP.`,sourceDescription:$localize`Use files from FTP as a remote source.`,icon:"assets/dest-icons/ftp.png",searchTerms:"alt file transfer protocol ftps",customFields:{server:{type:"Hostname",name:"server",shortDescription:$localize`Server`,longDescription:$localize`Server`,formElement:e=>n.control(e??""),isMandatory:true},port:{type:"Integer",name:"port",shortDescription:$localize`Port`,longDescription:$localize`Port`,formElement:e=>n.control(e??"")},path:{type:"Path",name:"path",shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,doubleSlash:{type:"warning",message:$localize`Using a leading slash makes the path absolute, pointing to the root of the filesystem.`},formElement:e=>n.control(e??"")}},dynamicFields:[{name:"auth-username",shortDescription:$localize`Username`,isMandatory:true},{name:"auth-password",shortDescription:$localize`Password`,isMandatory:true}],mapper:{to:e=>{let{server:t,port:o,path:r}=e.custom;return u(e,t,o,r)},from:(e,t,o)=>{let{server:r,port:s,path:i}=m(t);return l$1({destinationType:e,custom:{server:r,port:s,path:i}},l(e,t))}}},{key:"ftp",displayName:$localize`FTP`,description:$localize`Store backups in FTP.`,sourceDescription:$localize`Use files from FTP as a remote source.`,icon:"assets/dest-icons/ftp.png",searchTerms:"file transfer protocol ftps",customFields:{server:{type:"Hostname",name:"server",shortDescription:$localize`Server`,longDescription:$localize`Server`,formElement:e=>n.control(e??""),isMandatory:true},port:{type:"Integer",name:"port",shortDescription:$localize`Port`,longDescription:$localize`Port`,formElement:e=>n.control(e??"")},path:{type:"Path",name:"path",shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,doubleSlash:{type:"warning",message:$localize`Using a leading slash makes the path absolute, pointing to the root of the filesystem.`},formElement:e=>n.control(e??"")}},dynamicFields:[{name:"auth-username",shortDescription:$localize`Username`,isMandatory:true},{name:"auth-password",shortDescription:$localize`Password`,isMandatory:true}],mapper:{to:e=>{let{port:t,server:o,path:r}=e.custom;return u(e,o,t,r)},from:(e,t,o)=>{let{server:r,port:s,path:i}=m(t);return l$1({destinationType:e,custom:{server:r,port:s,path:i}},l(e,t))}}},{key:"sia",displayName:$localize`Sia Decentrilized Cloud`,description:$localize`Store backups in Sia Decentrilized Cloud.`,sourceDescription:$localize`Use files from Sia Decentralized Cloud as a remote source.`,icon:"assets/dest-icons/sia-cloud.png",customFields:{server:{type:"Hostname",name:"server",shortDescription:$localize`Server`,longDescription:$localize`Server`,formElement:e=>n.control(e??""),isMandatory:true}},dynamicFields:["sia-targetpath","sia-password","sia-redundancy"],mapper:{to:e=>{let t=e.custom.server,o=e.dynamic["sia-targetpath"],r=[...Object.entries(e.advanced),...Object.entries(e.dynamic).filter(([s])=>s!=="sia-targetpath")];return V(e.destinationType??"sia",t,null,o,r)},from:(e,t,o)=>l$1({destinationType:e,custom:{path:f(t)}},l(e,t))}},{key:"cos",displayName:$localize`Tencent COS`,description:$localize`Store backups in Tencent COS.`,sourceDescription:$localize`Use files from Tencent COS as a remote source.`,icon:"assets/dest-icons/tencent-cloud.png",customFields:{bucket:{name:"bucket",type:"Bucketname",shortDescription:$localize`Bucket`,isMandatory:true,formElement:e=>n.control(e??"")},path:{type:"Path",name:"path",doubleSlash:p,shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,formElement:e=>n.control(e??"")}},dynamicFields:[{name:"cos-region",shortDescription:$localize`Region`},{name:"cos-app-id",shortDescription:$localize`COS App Id`,isMandatory:true},{name:"cos-secret-id",shortDescription:$localize`COS Secret Id`,isMandatory:true},{name:"cos-secret-key",shortDescription:$localize`COS Secret Key`,isMandatory:true}],mapper:{to:e=>{let{bucket:t,path:o}=e.custom,r=m$1(l$1({},e),{advanced:m$1(l$1({},e.advanced),{"cos-bucket":t})});return u(r,null,null,o)},from:(e,t,o)=>{let r=l(e,t),s=r.advanced["cos-bucket"];return delete r.advanced["cos-bucket"],l$1({destinationType:e,custom:{path:f(t),bucket:s}},r)}}},{key:"tahoe",displayName:$localize`Tahoe LAFS`,description:$localize`Store backups in Tahoe LAFS.`,sourceDescription:$localize`Use files from Tahoe LAFS as a remote source.`,icon:"assets/dest-icons/tahoelafs.png",searchTerms:"least authority file system",customFields:{server:{type:"Hostname",name:"server",shortDescription:$localize`Server`,longDescription:$localize`Server`,formElement:e=>n.control(e??""),isMandatory:true},port:{type:"Integer",name:"port",shortDescription:$localize`Port`,longDescription:$localize`Port`,formElement:e=>n.control(e??"")},path:{type:"Path",name:"path",doubleSlash:p,shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,formElement:e=>n.control(e??"")}},dynamicFields:[{name:"use-ssl",shortDescription:$localize`Use SSL`}],mapper:{to:e=>{let{server:t,port:o,path:r}=e.custom;return u(e,t,o,r)},from:(e,t,o)=>{let{server:r,port:s,path:i}=m(t);return l$1({destinationType:e,custom:{server:r,port:s,path:i}},l(e,t))}}},{key:"smb",displayName:$localize`Windows Share (SMB)`,description:$localize`Store backups on SMB storage.`,sourceDescription:$localize`Use files from SMB storage as a remote source.`,icon:"assets/dest-icons/smb.png",searchTerms:"cifs samba",customFields:{server:{type:"Hostname",name:"server",shortDescription:$localize`Server`,longDescription:$localize`Server`,formElement:e=>n.control(e??""),isMandatory:true},share:{type:"Hostname",name:"share",shortDescription:$localize`Share Name`,longDescription:$localize`Share Name`,formElement:e=>n.control(e??""),isMandatory:true},path:{type:"Path",name:"path",doubleSlash:p,shortDescription:$localize`Path on server`,longDescription:$localize`Path on server`,formElement:e=>n.control(e??"")}},dynamicFields:["transport",{name:"auth-username",isMandatory:true},{name:"auth-password",isMandatory:true},"auth-domain"],mapper:{to:e=>{let{share:t,server:o,path:r}=e.custom;return u(e,o,null,x(t,r))},from:(e,t,o)=>{let{server:r,path:s}=m(t),i=s.split("/")[0],c=s.split("/").slice(1).join("/");return l$1({destinationType:e,custom:{server:r,share:i,path:c}},l(e,t))}}},{key:"cifs",displayName:$localize`CIFS (deprecated)`,description:$localize`Same as SMB backend, but with a different name. Use SMB instead.`,sourceDescription:$localize`Use files from CIFS storage as a remote source. Deprecated, use SMB instead.`,icon:"assets/dest-icons/smb.png",sortOrder:-1,mapper:I.mapper},{key:"filen",displayName:$localize`Filen.io`,description:$localize`Store backups in Filen.io.`,sourceDescription:$localize`Use files from Filen.io as a remote source.`,icon:"assets/dest-icons/filen.png",customFields:{path:{type:"Path",name:"path",doubleSlash:p,shortDescription:$localize`Path on Filen`,longDescription:$localize`Path on Filen`,formElement:e=>n.control(e??"")}},dynamicFields:[{name:"auth-username",isMandatory:true},{name:"auth-password",isMandatory:true},{name:"two-factor-code",type:"Filen2FACode"}],mapper:{to:e=>u(e,null,null,e.custom.path),from:(e,t,o)=>l$1({destinationType:e,custom:{path:f(t)}},l(e,t))}},{key:"filejump",displayName:$localize`Filejump`,description:$localize`Store backups in Filejump.`,sourceDescription:$localize`Use files from Filejump as a remote source.`,icon:"assets/dest-icons/file-jump.png",sortOrder:-1,customFields:{path:{type:"Path",name:"path",doubleSlash:p,shortDescription:$localize`Path on Filejump`,longDescription:$localize`Path on Filejump`,formElement:e=>n.control(e??"")}},dynamicFields:[{type:"Password",name:"api-token",shortDescription:$localize`API Token`,longDescription:$localize`Filejump API Token`,formElement:e=>n.control(e??""),isMandatory:true}],mapper:{to:e=>{let{path:t}=e.custom;return u(e,null,null,t)},from:(e,t,o)=>l$1({destinationType:e,custom:{path:f(t)}},l(e,t))}},{key:"storj",customKey:"storjAccessGrant",displayName:$localize`Storj Access Grant`,description:$localize`Store backups in Storj Access Grant.`,sourceDescription:$localize`Use files from Storj with an access grant as a remote source.`,icon:"assets/dest-icons/storj.png",dynamicFields:[{name:"storj-shared-access",shortDescription:$localize`Access Grant`,isMandatory:true},{name:"storj-bucket",type:"Bucketname",shortDescription:$localize`Bucket`,isMandatory:true},{name:"storj-folder",type:"Path",shortDescription:$localize`Path on server`,doubleSlash:p},{name:"storj-satellite",shortDescription:$localize`Satellite`,type:"NonValidatedSelectableString",loadOptions:e=>e.get(d).getStorjSatellites(),isMandatory:true}],mapper:{to:e=>{let t={"storj-auth-method":"Acccess grant"};return `storj://storj.io/config${v([...Object.entries(e.advanced),...Object.entries(e.dynamic),...Object.entries(t)])}`},from:(e,t,o)=>{let r=l(e,t);return delete r.advanced["storj-auth-method"],l$1({destinationType:e},r)},intercept:e=>e.protocol!=="storj:"?false:!!(e.searchParams.get("storj-shared-access")||e.searchParams.get("storj-auth-method")==="Acccess grant"),default:()=>"storj://?storj-shared-access=&storj-auth-method=Acccess+grant"}},{key:"storj",customKey:"storjApiKey",displayName:$localize`Storj API Key`,description:$localize`Store backups in Storj API Key.`,sourceDescription:$localize`Use files from Storj with an API key as a remote source.`,icon:"assets/dest-icons/storj.png",dynamicFields:[{name:"storj-satellite",shortDescription:$localize`Satellite`,type:"NonValidatedSelectableString",loadOptions:e=>e.get(d).getStorjSatellites(),isMandatory:true},{name:"storj-api-key",shortDescription:$localize`API Key`,isMandatory:true},{name:"storj-secret",shortDescription:$localize`Secret`,isMandatory:true},{name:"storj-bucket",type:"Bucketname",shortDescription:$localize`Bucket`,isMandatory:true},{name:"storj-folder",type:"Path",shortDescription:$localize`Path on server`,doubleSlash:p}],mapper:{to:e=>{let t={"storj-auth-method":"API key"};return `storj://storj.io/config${v([...Object.entries(e.advanced),...Object.entries(e.dynamic),...Object.entries(t)])}`},from:(e,t,o)=>{let r=l("storjApiKey",t);return delete r.advanced["storj-auth-method"],l$1({destinationType:e},r)},intercept:e=>e.protocol!=="storj:"?false:!!(e.searchParams.get("storj-api-key")||e.searchParams.get("storj-secret")||e.searchParams.get("storj-auth-method")==="API key"),default:()=>"storj://?storj-api-key=&storj-secret=&storj-auth-method=API+key"}},{key:"aliyunoss",displayName:$localize`Aliyun OSS`,description:$localize`Store backups in Aliyun OSS`,sourceDescription:$localize`Use files from Aliyun OSS as a remote source.`,icon:"assets/dest-icons/aliyun.png",customFields:{bucket:{type:"Bucketname",name:"bucket",shortDescription:$localize`Bucket name`,formElement:e=>n.control(e??""),isMandatory:true},path:{type:"Path",name:"path",doubleSlash:p,shortDescription:$localize`Path in bucket`,longDescription:$localize`Path in bucket`,formElement:e=>n.control(e??"")}},dynamicFields:[{name:"oss-endpoint",isMandatory:true},{name:"oss-access-key-id",isMandatory:true},{name:"oss-access-key-secret",isMandatory:true}],mapper:{to:e=>{let{bucket:t,path:o}=e.custom,r=m$1(l$1({},e),{advanced:m$1(l$1({},e.advanced),{"oss-bucket-name":t})});return u(r,null,null,o)},from:(e,t,o)=>{let r=l(e,t),s=r.advanced["oss-bucket-name"];return delete r.advanced["oss-bucket-name"],l$1({destinationType:e,custom:{path:f(t),bucket:s}},r)}}},{key:"office365",displayName:$localize`Microsoft 365`,description:$localize`Create backups of Microsoft 365 data.`,sourceDescription:$localize`Use Microsoft 365 data as a remote source.`,searchTerms:"office o365 office365 m365 ms365",icon:"assets/dest-icons/office365.png",isNonFree:true,dynamicFields:[{name:"auth-username",shortDescription:$localize`Client ID`,longDescription:$localize`Application (client) ID from your Azure AD app registration.`,isMandatory:true},{name:"auth-password",shortDescription:$localize`Client Secret`,longDescription:$localize`Client Secret from your Azure AD app registration.`,isMandatory:true},{name:"office365-tenant-id",shortDescription:$localize`Tenant ID`,isMandatory:true}],advancedFields:[{name:"office365-certificate-path",type:"FileTree"}],mapper:{to:e=>`office365://${v([...Object.entries(e.advanced),...Object.entries(e.dynamic)])}`,from:(e,t,o)=>{let{advanced:r,dynamic:s}=l(e,t);return {destinationType:e,advanced:l$1({},r),dynamic:l$1({},s)}}}},{key:"googleworkspace",displayName:$localize`Google Workspace`,description:$localize`Create backups of Google Workspace data.`,sourceDescription:$localize`Use Google Workspace data as a remote source.`,icon:"assets/dest-icons/googleworkspace.png",isNonFree:true,dynamicFields:[{name:"google-admin-email",type:"Email",shortDescription:$localize`Admin Email`,longDescription:$localize`Email address of the Google Workspace admin user.`,isMandatory:true},{name:"google-service-account-json",type:"FreeText",shortDescription:$localize`Service account JSON`,longDescription:$localize`Paste the service account JSON here.`,isMandatory:true}],advancedFields:[{name:"google-service-account-file",type:"FileTree",accepts:".json,",shortDescription:$localize`Service account JSON file`,longDescription:$localize`Pick the path to a file with service account JSON.`}],mapper:{to:e=>`googleworkspace://${v([...Object.entries(e.advanced),...Object.entries(e.dynamic)])}`,from:(e,t,o)=>{let{advanced:r,dynamic:s}=l(e,t);return {destinationType:e,advanced:l$1({},r),dynamic:l$1({},s)}}}},{key:"drimecloud",displayName:$localize`Drime Cloud`,description:$localize`Store backups in Drime Cloud.`,sourceDescription:$localize`Use files from Drime Cloud as a remote source.`,icon:"assets/dest-icons/drime.png",customFields:{path:{type:"Path",name:"path",doubleSlash:p,shortDescription:$localize`Path in Drime Cloud`,longDescription:$localize`Path in Drime Cloud`,formElement:e=>n.control(e??"")}},dynamicFields:[{name:"api-token",isMandatory:true}],mapper:{to:e=>u(e,null,null,e.custom.path),from:(e,t,o)=>l$1({destinationType:e,custom:{path:f(t)}},l(e,t))}},g("rabata","Rabata.io",null,"assets/dest-icons/rabata.png",[".rabata.io"]),g("wasabi","Wasabi Hot Storage",null,"assets/dest-icons/wasabi.png",[".wasabisys.com"]),g("impossiblecloud","Impossible Cloud",null,"assets/dest-icons/impossiblecloud.png",[".impossibleapi.net"]),g("scaleway","Scaleway",null,"assets/dest-icons/scaleway.png",[".scw.cloud"]),g("hosteurope","Hosteurope",null,"assets/dest-icons/hosteurope.png",[".hosteurope.de"]),g("dunkel","Dunkel",null,"assets/dest-icons/dunkel.png",[".dunkel.de"]),g("dreamhost","DreamHost",null,"assets/dest-icons/dreamhost.png",[".dreamhost.com"]),g("dincloud","dinCloud",null,"assets/dest-icons/dincloud.png",[".dincloud.com"]),g("polisystems","Poli Systems",null,"assets/dest-icons/polisystems.png",[".polisystems.ch"]),g("ibmcos","IBM COS",null,"assets/dest-icons/ibmcos.png",[".softlayer.net"]),g("storadera","Storadera",null,"assets/dest-icons/storadera.png",[".storadera.com"]),g("infomaniak","Infomaniak",null,"assets/dest-icons/infomaniak.png",[".infomaniak.com",".infomaniak.cloud"]),g("sakuracloud","\u3055\u304F\u3089\u306E\u30AF\u30E9\u30A6\u30C9",null,"assets/dest-icons/sakuracloud.png",[".sakurastorage.jp"]),g("seagatelyve","Seagate Lyve",null,"assets/dest-icons/seagatelyve.png",[".lyvecloud.seagate.com"]),g("internxt","Internxt",null,"assets/dest-icons/internxt.png",[".internxt.com"]),g("selectel","Selectel",null,"assets/dest-icons/selectel.png",[".storage.selcloud.ru",".srvstorage.uz",".srvstorage.kz"])],_={".amazonaws.com":"Amazon S3",".impossibleapi.net":"Impossible Cloud S3",".scw.cloud":"Scaleway S3",".hosteurope.de":"Hosteurope S3",".dunkel.de":"Dunkel S3",".dreamhost.com":"DreamHost S3",".dincloud.com":"dinCloud S3",".polisystems.ch":"Poli Systems S3",".softlayer.net":"IBM COS (S3)",".storadera.com":"Storadera S3",".wasabisys.com":"Wasabi S3",".infomaniak.com":"Infomaniak S3",".infomaniak.cloud":"Infomaniak S3",".sakurastorage.jp":"\u3055\u304F\u3089\u306E\u30AF\u30E9\u30A6\u30C9 S3",".lyvecloud.seagate.com":"Seagate Lyve S3",".digitaloceanspaces.com":"DigitalOcean S3",".backblazeb2.com":"Backblaze B2 S3",".cloudian.com":"Cloudian S3",".min.io":"MinIO S3",".linodeobjects.com":"Linode S3",".bunnycdn.com":"BunnyCDN S3",".azure.com":"Microsoft Azure S3",".googleapis.com":"Google Cloud Storage S3",".ibm.com":"IBM Cloud S3",".oracle.com":"Oracle Cloud S3",".cloudflare.com":"Cloudflare S3",".alibaba.com":"Alibaba Cloud S3",".huawei.com":"Huawei Cloud S3",".tencent.com":"Tencent Cloud S3",".baidu.com":"Baidu Cloud S3",".jd.com":"JD Cloud S3",".ucloud.cn":"UCloud S3",".qiniu.com":"Qiniu Cloud S3",".aliyuncs.com":"Aliyun S3",".tcloud.com":"TCloud S3",".tencentcloudapi.com":"Tencent Cloud S3",".rabata.io":"Rabata S3",".internxt.com":"Internxt S3",".storage.selcloud.ru":"Selectel S3",".srvstorage.uz":"Selectel S3",".srvstorage.kz":"Selectel S3"};var Z=new jn,F=class{host;hostname;exactHostname;pathname;port;protocol;search;username;password;searchParams;originalUrl;constructor(t){let o=new URL(t);this.originalUrl=t,this.host=o.host,this.hostname=o.hostname,this.exactHostname=this.extractExactHostname(t),this.pathname=o.pathname,this.port=o.port,this.protocol=o.protocol,this.search=o.search,this.username=o.username,this.password=o.password,this.searchParams=o.searchParams;}extractExactHostname(t){let o=t.match(/^[a-zA-Z][a-zA-Z0-9+.-]*:\/\/(?:[^@\/?#]*@)?(\[[a-fA-F0-9:.]+\]|[^:\/?#]+)/);return o?o[1]:""}};function u(e,t,o,r){return V(e.destinationType??"file",t,o,r,[...Object.entries(e.advanced),...Object.entries(e.dynamic)])}function V(e,t,o,r,s){let i=v(s),c=encodeURIComponent(Y(t)),S=c==""?"":c+ee(o),k=r??"",E=k.slice(1).startsWith(":\\")&&e=="file"?"file:///":`${e}://`,$=x(S,X(k));return `${E}${$}${i}`}function Q(e){return e==null||e===""?"":e.startsWith("/")?e.substring(1):e}function x(...e){if(e.length===0)return "";if(e.length===1)return e[0]??"";let t="";for(let o of e)o==null||o===""||(t+=t.endsWith("/")||t==""?o:"/"+o);return t}function X(e){return e.split("/").map(encodeURIComponent).join("/")}function f(e){if(e==null||e==="")return "";if(typeof e=="string")try{e=new F(e);}catch{return ""}return decodeURIComponent(e.exactHostname??"")+decodeURIComponent(e.pathname=="/"?"":e.pathname??"")}function Y(e){return e==null||e===""?"":e.endsWith("/")?e.substring(0,e.length-1):e}function ee(e){return e==null||e===""?"":":"+e.toString()}function Le(e){return e?e.startsWith("diskimage:")?"assets/dest-icons/external-harddrive.png":G(e).icon:""}function Ne(e){if(!e)return "";if(e.startsWith("diskimage:"))return $localize`Local disk`;let t=G(e);return t?t.displayName:"Unknown"}function G(e){try{let o=new F(e),r=O.find(s=>s.mapper.intercept?.(o));if(r)return r}catch{}let t=e.split("://")[0];return A(t)}var te={file:{Display:$localize`Local`,Icon:null}};function Ie(e){if(!e)return "";let t=G(e);if(!t)return "";let o=te[t.key];if(o?.Display)return o.Display;if(t.key==="s3"){let r="http://null?"+e.split("?")[1],i=new URL(r).searchParams.get("s3-server-name")?.toLowerCase()??"";for(let[c,S]of Object.entries(_))if(i.endsWith(c))return S}return t.displayName}function A(e){return O.find(o=>o.key===e||o.customKey===e)??O.find(o=>`${o.key}s`===e)??null??l$1({key:e,displayName:e},I)}function xe(e){return O.filter(t=>t.key===e||t.customKey===e)}function m(e){return {bucket:decodeURIComponent(e.exactHostname),server:decodeURIComponent(e.exactHostname||e.hostname),port:e.port,path:Q(decodeURIComponent(e.pathname))}}function l(e,t){let o={},r={},s=A(e);return t.searchParams.forEach((i,c)=>{s?.dynamicFields?.some(k=>k===c||k?.name===c)?r[c]=decodeURIComponent(i):o[c]=decodeURIComponent(i);}),{advanced:o,dynamic:r}}function v(e,t=false){let o=e.map(([s,i])=>`${s}=${i?encodeURIComponent(i.toString()):""}`).join("&");return o?(t?"":"?")+o:""}function Be(e){let t=e.destinationType??"";return A(t)?.mapper.to(e)??""}function je(e){let t=e.split("://")[0],o=e.split("://")[1],r=t==="file"?"http://dummy":o==""||o.startsWith("?")?`${t}://`+o:"http://"+o;if(!o)return null;let s=G(e),i="";if(`${s.key}s`===t&&(i+=r.indexOf("?")===-1?"?":"&",i+="use-ssl=true",e=s.key+e.substring(t.length)),t==="file"&&o.indexOf("?")!==-1&&(i+=i.indexOf("?")===-1?"?":"&",i+=o.split("?")[1]??""),t==="file"&&o.startsWith("%")&&!o.startsWith("%5C"))return A(t).mapper.from(t,new F("http://localhost"+i),e);try{let c=new F(r+i);if(c.host==="undefined")return null;let S=o.split("?")[0].split("/")[0],k=c.host!=""&&!isNaN(Number(c.host.replaceAll(".",""))),w=S.split("."),E=w.length===4&&w.every($=>$.length&&$.length<=3&&!isNaN(Number($))&&parseInt($)<=255);return k&&!E?null:s.mapper.from(s.key,c,e)}catch(c){return console.error("Error while parsing target path",e,r+i,c),null}}function K(e){return typeof e!="string"||!e.trim()?[]:e.split(`
|
|
2
|
+
`).map(t=>t.trim()).filter(t=>t).map(t=>{let[o,...r]=t.split("="),s=r.join("=").trim();return o.trim()?[o.trim(),s]:null}).filter(t=>t!==null)}function Te(e){return K(e).map(([t,o])=>({Name:t,Value:o}))}function Re(e){return Object.fromEntries(K(e))}function We(e){if(!e)return false;let t=e.length;return !(t<3||t>63||!/^[a-z0-9.-]+$/.test(e)||!/^[a-z0-9]/.test(e)||!/[a-z0-9]$/.test(e)||/^\d{1,3}(\.\d{1,3}){3}$/.test(e)||/(\.\.)|(\.-)|(-\.)/.test(e))}function He(e){if(!e||e.length>253)return false;let t=e.split(".");for(let o of t)if(!o||o.length>63||!/^[a-zA-Z0-9]([-a-zA-Z0-9]*[a-zA-Z0-9])?$/.test(o))return false;return true}function g(e,t,o,r,s){return m$1(l$1({},P),{customKey:`s3-${e}`,icon:r??P.icon,displayName:$localize`${t} (S3)`,description:$localize`Store backups in ${t} storage.`,dynamicFields:[...(P.dynamicFields??[]).filter(i=>i?.name!=="s3-server-name"),{name:"s3-server-name",order:1,shortDescription:$localize`Server`,longDescription:$localize`The hostname of the ${t} endpoint`,type:"NonValidatedSelectableString",loadOptions:i=>i.get(d).getS3ProvidersFiltered(c=>s.some(S=>c.value.endsWith(S))),isMandatory:true,formElement:i=>Z.control(i??"")}],mapper:m$1(l$1({},P.mapper),{to:i=>{let{bucket:c,path:S}=i.custom;return s.some(k=>i.dynamic["s3-server-name"]?.endsWith(k))&&(i.destinationType="s3"),u(i,c,null,S)},default:i=>`s3-${e}://?use-ssl=true`,intercept:i=>s.some(c=>i.searchParams.get("s3-server-name")?.endsWith(c))??false})})}
|
|
3
|
+
export{A,Be as B,G,He as H,Ie as I,Le as L,Ne as N,Re as R,Te as T,We as W,d,f,je as j,xe as x};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import {OptionsListComponent as Oe}from'./chunk-CSrYlKTK.js';import {I as I$1}from'./chunk-zOY5leQB.js';import {F as Fe}from'./chunk-DBkkb6OR.js';import {j as jn,G as Gn,T as Tn,Z as Ze,R as Rn,P as Pn,g as gn,h as hn}from'./chunk-iGzJokt-.js';import {L}from'./chunk-Cm7JSdTO.js';import {T,ab as J,e as ee$1,ax as W,G as Ge,N as Nt,ad as sy,C as Zu,g as gw,a as N,v,Z as Zi,w as Hg,l as lT,aR as zl,o as oC,aS as Ql,n as lm,W as Wl,F as Fg,d as Ig,j as jg,z as vg,b as bE,c as uT,y as cm,a6 as be,au as h,a_ as ee$2,p as qC,t as bD,M as MD}from'./main-2ZYVV4C4.js';import'./chunk-Kq2ZFJSk.js';import'./chunk-29_4gGIi.js';import'./chunk-BEUeHgR9.js';import'./chunk-CGnjVnmu.js';import'./chunk-BJOhC2d8.js';import'./chunk-fDWfSg6Y.js';import'./chunk-DuRr4rDS.js';import'./chunk-C1py21yb.js';import'./chunk-D38QrkIM.js';import'./chunk-3YzyUT-a.js';import'./chunk-CKUlUN3q.js';import'./chunk-BGuvkLC9.js';import'./chunk-DneBfCBh.js';import'./chunk-CnZx831x.js';var d=class r{#t=T(be);destinationTargetUrl=Ge(null);destinationTestSignal=Ge(null);encryptionForm=ee();temporaryBackupId=Ge(null);updateTargetUrl(e){this.destinationTargetUrl.set(e);}showErrorDialog(e){this.#t.open(h,{data:{title:$localize`Error occured`,message:e,confirmText:$localize`OK`,cancelText:void 0},closed:n=>{}});}static \u0275fac=function(n){return new(n||r)};static \u0275prov=ee$2({token:r,factory:r.\u0275fac,providedIn:"root"})};function oe(r,e){r&1&&(Zi(0,"p"),oC(1,3),Wl());}function ie(r,e){r&1&&(Zi(0,"sh-form-field")(1,"label",11),oC(2,4),Wl(),Ig(3,"input",12),bD(),Wl()),r&2&&(bE(3),MD());}var te=new jn,ee=()=>te.group({passphrase:te.control("")}),I=class r{#t=T(J);#e=T(d);#n=T(ee$1);#o=T(W);encryptionForm=this.#e.encryptionForm;creatingTemporaryBackup=Ge(false);settings=Ge([]);hasEncryptedBackup=Nt(()=>{let e=this.#e.destinationTestSignal();return e==="testing"||typeof e=="string"?true:e?.containsEncryptedBackupFiles??true});passphraseSignal=L(this.encryptionForm.controls.passphrase.valueChanges);showEncryptionField=Ge(false);isValidConfig=Nt(()=>{if(!this.#e.destinationTargetUrl())return false;let n=this.#e.destinationTestSignal();return !(typeof n!="string"&&(n?.containsEncryptedBackupFiles??false)&&!this.passphraseSignal())});next(){let e=this.#e.destinationTargetUrl();if(!e)throw new Error("No target URL");this.creatingTemporaryBackup.set(true);let n=this.encryptionForm.value?.passphrase??null,t=[];n?t.push({Name:"--passphrase",Value:n}):t.push({Name:"--no-encryption",Value:"true"}),this.settings().forEach(i=>{let o=i.Name?.trim();o&&o!=="--"&&(o.startsWith("--")||(o=`--${o}`),t.push({Name:o,Value:i.Value??""}));}),sy(()=>this.#t.postApiV1Backups({body:{Backup:{TargetURL:e,Settings:t}},query:{temporary:true}})).pipe(Zu(()=>this.creatingTemporaryBackup.set(false))).subscribe({next:i=>{let o=i.ID;this.#e.temporaryBackupId.set(o),this.#n.navigate(["../select-config"],{relativeTo:this.#o});},error:i=>{console.error(i);}});}back(){this.#n.navigate(["../destination"],{relativeTo:this.#o});}static \u0275fac=function(n){return new(n||r)};static \u0275cmp=gw({type:r,selectors:[["app-import-destination-encryption"]],decls:14,vars:6,consts:()=>{let e;e=$localize`Advanced options`;let n;n=$localize`${"\uFFFD#10\uFFFD"}:START_TAG_SH_ICON:arrow-left${"\uFFFD/#10\uFFFD"}:CLOSE_TAG_SH_ICON: Back `;let t;t=$localize`${"\uFFFD#13\uFFFD"}:START_TAG_SH_ICON:arrow-right${"\uFFFD/#13\uFFFD"}:CLOSE_TAG_SH_ICON: Continue `;let i;i=$localize`The backup does not contain encrypted files.`;let o;o=$localize`Enter backup passphrase if defined.`;let P;return P=$localize`Password`,[e,n,t,i,P,[3,"submit","formGroup"],["title",""],[3,"optionsChange","options","hasFreeTextSettings"],[1,"form-actions"],["shButton","","type","button",3,"click"],["shButton","","type","submit",1,"raised","primary",3,"disabled"],["for","password"],["type","password","id","password","autocomplete","disabled","placeholder",o,"formControlName","passphrase"]]},template:function(n,t){n&1&&(Zi(0,"form",5),Hg("submit",function(){return t.next()}),lT(1,oe,2,0,"p"),lT(2,ie,4,0,"sh-form-field"),Zi(3,"sh-toggle-card"),zl(4,6),oC(5,0),Ql(),Zi(6,"app-options-list",7),lm("optionsChange",function(o){return qC(t.settings,o)||(t.settings=o),o}),Wl()(),Zi(7,"div",8)(8,"button",9),Hg("click",function(){return t.back()}),Fg(9,1),Ig(10,"sh-icon"),jg(),Wl(),Zi(11,"button",10),Fg(12,2),Ig(13,"sh-icon"),jg(),Wl()()()),n&2&&(vg("formGroup",t.encryptionForm),bE(),uT(t.hasEncryptedBackup()?-1:1),bE(),uT(t.hasEncryptedBackup()||t.showEncryptionField()?2:-1),bE(4),cm("options",t.settings),vg("hasFreeTextSettings",true),bE(5),vg("disabled",!t.isValidConfig()));},dependencies:[Gn,Tn,Ze,Rn,Pn,gn,hn,Fe,N,v,I$1,Oe],styles:["[_nghost-%COMP%]{display:block}form[_ngcontent-%COMP%]{display:flex;flex-direction:column;gap:1.5rem}.form-actions[_ngcontent-%COMP%]{display:flex;justify-content:space-between}"]})};var chunkL763FBUQ=/*#__PURE__*/Object.freeze({__proto__:null,createEncryptionForm:ee,default:I});export{chunkL763FBUQ as c,d};
|