@simpleangularcontrols/sac-bootstrap5 13.0.0-rc.2 → 13.0.0-rc.4
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/controls/checkbox/checkbox.d.ts +5 -5
- package/controls/checkbox/checkbox.module.d.ts +2 -1
- package/controls/checkbox/radiobuttons.d.ts +5 -5
- package/controls/contextmenu/contextmenu.d.ts +6 -6
- package/controls/contextmenu/contextmenuanchor.d.ts +2 -2
- package/controls/contextmenu/contextmenucontainer.d.ts +2 -2
- package/controls/datetime/date.d.ts +6 -6
- package/controls/datetime/datetime.d.ts +6 -6
- package/controls/datetime/datetime.module.d.ts +2 -1
- package/controls/datetime/time.d.ts +6 -6
- package/controls/form/form.d.ts +0 -8
- package/controls/input/input.d.ts +5 -5
- package/controls/input/input.module.d.ts +2 -1
- package/controls/input/inputarea.d.ts +5 -5
- package/controls/input/inputcurrency.d.ts +5 -5
- package/controls/input/inputdecimal.d.ts +5 -5
- package/controls/input/inputemail.d.ts +5 -5
- package/controls/input/inputinteger.d.ts +5 -5
- package/controls/input/inputpassword.d.ts +5 -5
- package/controls/input/inputsearch.d.ts +5 -5
- package/controls/layout/formlayout.directive.d.ts +6 -0
- package/controls/layout/formlayout.directive.ngfactory.d.ts +3 -0
- package/controls/layout/formlayout.directive.ngsummary.d.ts +1 -0
- package/controls/layout/layout.module.d.ts +10 -0
- package/controls/layout/layout.module.ngfactory.d.ts +3 -0
- package/controls/layout/layout.module.ngsummary.d.ts +1 -0
- package/controls/layout/tocontrolwidthcss.pipe.d.ts +19 -0
- package/controls/layout/tocontrolwidthcss.pipe.ngfactory.d.ts +3 -0
- package/controls/layout/tocontrolwidthcss.pipe.ngsummary.d.ts +1 -0
- package/controls/layout/tolabelwidthcss.pipe.d.ts +13 -0
- package/controls/layout/tolabelwidthcss.pipe.ngfactory.d.ts +3 -0
- package/controls/layout/tolabelwidthcss.pipe.ngsummary.d.ts +1 -0
- package/controls/list/dropdown.d.ts +10 -10
- package/controls/list/dropdown.module.d.ts +2 -1
- package/controls/list/list.module.d.ts +2 -1
- package/controls/list/listbox.d.ts +9 -9
- package/controls/multilanguage/multilanguage.module.d.ts +2 -1
- package/controls/multilanguage/multilanguageinput.d.ts +5 -5
- package/controls/multilanguage/multilanguageinputarea.d.ts +5 -5
- package/controls/multilanguage/multilanguagemenu.d.ts +9 -9
- package/controls/multilanguage/multilanguagemenuanchor.d.ts +2 -2
- package/controls/multilanguage/multilanguagemenucontainer.d.ts +2 -2
- package/controls/static/formcontainer.d.ts +5 -5
- package/controls/static/staticlabel.d.ts +5 -5
- package/controls/static/staticlabel.module.d.ts +2 -1
- package/controls/tinymce/tinymce.d.ts +6 -6
- package/controls/tinymce/tinymce.module.d.ts +2 -1
- package/controls/upload/dropzonemultiple.d.ts +7 -7
- package/controls/upload/dropzonesingle.d.ts +7 -7
- package/controls/upload/upload.d.ts +7 -7
- package/controls/upload/upload.module.d.ts +2 -1
- package/controls/upload/uploadmultiple.d.ts +7 -7
- package/controls/validation/validationsummary.d.ts +4 -4
- package/controls/wizard/wizard.module.d.ts +2 -1
- package/esm2020/controls/buttons/button.mjs +3 -3
- package/esm2020/controls/checkbox/checkbox.mjs +15 -17
- package/esm2020/controls/checkbox/checkbox.module.mjs +19 -10
- package/esm2020/controls/checkbox/radiobuttons.mjs +15 -17
- package/esm2020/controls/contextmenu/contextmenu.mjs +9 -8
- package/esm2020/controls/contextmenu/contextmenuanchor.mjs +5 -4
- package/esm2020/controls/contextmenu/contextmenucontainer.mjs +5 -4
- package/esm2020/controls/datetime/date.mjs +17 -19
- package/esm2020/controls/datetime/datetime.mjs +16 -18
- package/esm2020/controls/datetime/datetime.module.mjs +25 -12
- package/esm2020/controls/datetime/time.mjs +17 -19
- package/esm2020/controls/form/form.mjs +3 -17
- package/esm2020/controls/form/form.module.mjs +5 -14
- package/esm2020/controls/input/input.mjs +15 -13
- package/esm2020/controls/input/input.module.mjs +40 -11
- package/esm2020/controls/input/inputarea.mjs +15 -17
- package/esm2020/controls/input/inputcurrency.mjs +15 -17
- package/esm2020/controls/input/inputdecimal.mjs +15 -17
- package/esm2020/controls/input/inputemail.mjs +15 -17
- package/esm2020/controls/input/inputinteger.mjs +15 -17
- package/esm2020/controls/input/inputpassword.mjs +15 -17
- package/esm2020/controls/input/inputsearch.mjs +14 -11
- package/esm2020/controls/layout/formlayout.directive.mjs +14 -0
- package/esm2020/controls/layout/formlayout.directive.ngfactory.mjs +4 -0
- package/esm2020/controls/layout/formlayout.directive.ngsummary.mjs +2 -0
- package/esm2020/controls/layout/layout.module.mjs +32 -0
- package/esm2020/controls/layout/layout.module.ngfactory.mjs +4 -0
- package/esm2020/controls/layout/layout.module.ngsummary.mjs +2 -0
- package/esm2020/controls/layout/tocontrolwidthcss.pipe.mjs +57 -0
- package/esm2020/controls/layout/tocontrolwidthcss.pipe.ngfactory.mjs +4 -0
- package/esm2020/controls/layout/tocontrolwidthcss.pipe.ngsummary.mjs +2 -0
- package/esm2020/controls/layout/tolabelwidthcss.pipe.mjs +41 -0
- package/esm2020/controls/layout/tolabelwidthcss.pipe.ngfactory.mjs +4 -0
- package/esm2020/controls/layout/tolabelwidthcss.pipe.ngsummary.mjs +2 -0
- package/esm2020/controls/list/dropdown.mjs +22 -17
- package/esm2020/controls/list/dropdown.module.mjs +8 -15
- package/esm2020/controls/list/list.module.mjs +6 -5
- package/esm2020/controls/list/listbox.mjs +22 -22
- package/esm2020/controls/multilanguage/multilanguage.module.mjs +5 -4
- package/esm2020/controls/multilanguage/multilanguageinput.mjs +17 -17
- package/esm2020/controls/multilanguage/multilanguageinputarea.mjs +17 -17
- package/esm2020/controls/multilanguage/multilanguagemenu.mjs +10 -8
- package/esm2020/controls/multilanguage/multilanguagemenuanchor.mjs +5 -4
- package/esm2020/controls/multilanguage/multilanguagemenucontainer.mjs +5 -4
- package/esm2020/controls/static/formcontainer.mjs +16 -13
- package/esm2020/controls/static/staticlabel.mjs +14 -11
- package/esm2020/controls/static/staticlabel.module.mjs +8 -11
- package/esm2020/controls/tinymce/tinymce.mjs +18 -14
- package/esm2020/controls/tinymce/tinymce.module.mjs +10 -6
- package/esm2020/controls/upload/dropzonemultiple.mjs +18 -13
- package/esm2020/controls/upload/dropzonesingle.mjs +18 -13
- package/esm2020/controls/upload/upload.mjs +26 -15
- package/esm2020/controls/upload/upload.module.mjs +5 -4
- package/esm2020/controls/upload/uploadmultiple.mjs +16 -13
- package/esm2020/controls/validation/validationsummary.mjs +9 -12
- package/esm2020/controls/wizard/wizard.module.mjs +7 -10
- package/esm2020/public-api.mjs +30 -26
- package/fesm2015/simpleangularcontrols-sac-bootstrap5.mjs +676 -539
- package/fesm2015/simpleangularcontrols-sac-bootstrap5.mjs.map +1 -1
- package/fesm2020/simpleangularcontrols-sac-bootstrap5.mjs +676 -539
- package/fesm2020/simpleangularcontrols-sac-bootstrap5.mjs.map +1 -1
- package/package.json +4 -3
- package/public-api.d.ts +29 -25
- package/simpleangularcontrols-sac-bootstrap5-13.0.0-rc.4.tgz +0 -0
- package/simpleangularcontrols-sac-bootstrap5-13.0.0-rc.2.tgz +0 -0
|
@@ -2,23 +2,28 @@ import { Component, forwardRef, Host, Optional, } from '@angular/core';
|
|
|
2
2
|
import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
3
|
import { SacDropzoneSingleCommon } from '@simpleangularcontrols/sac-common';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../
|
|
5
|
+
import * as i1 from "../layout/formlayout.directive";
|
|
6
6
|
import * as i2 from "@angular/common";
|
|
7
|
+
import * as i3 from "../layout/tolabelwidthcss.pipe";
|
|
8
|
+
import * as i4 from "../layout/tocontrolwidthcss.pipe";
|
|
7
9
|
/**
|
|
8
10
|
* Dropzone Komponente für den Upload eines Files
|
|
9
11
|
* @see https://github.com/kukhariev/ngx-uploadx/
|
|
10
12
|
*/
|
|
11
13
|
export class SacDropzoneSingleComponent extends SacDropzoneSingleCommon {
|
|
14
|
+
// #region Constructors
|
|
12
15
|
/**
|
|
13
|
-
*
|
|
14
|
-
* @param
|
|
15
|
-
* @param injector
|
|
16
|
-
* @param renderer Angular
|
|
17
|
-
* @param ngZone ngZone
|
|
16
|
+
* Constructor
|
|
17
|
+
* @param formLayout SacFormLayout to define scoped layout settings
|
|
18
|
+
* @param injector Injector for injecting services
|
|
19
|
+
* @param renderer Angular rendering engine
|
|
20
|
+
* @param ngZone ngZone to manage external javascripts
|
|
18
21
|
*/
|
|
19
|
-
constructor(
|
|
20
|
-
super(
|
|
22
|
+
constructor(formLayout, injector, renderer, ngZone) {
|
|
23
|
+
super(formLayout, injector, renderer, ngZone);
|
|
21
24
|
}
|
|
25
|
+
// #endregion Constructors
|
|
26
|
+
// #region Public Methods
|
|
22
27
|
/**
|
|
23
28
|
* Initialisiert das Control
|
|
24
29
|
*/
|
|
@@ -26,7 +31,7 @@ export class SacDropzoneSingleComponent extends SacDropzoneSingleCommon {
|
|
|
26
31
|
super.ngOnInit();
|
|
27
32
|
}
|
|
28
33
|
}
|
|
29
|
-
SacDropzoneSingleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacDropzoneSingleComponent, deps: [{ token: i1.
|
|
34
|
+
SacDropzoneSingleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacDropzoneSingleComponent, deps: [{ token: i1.SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
30
35
|
SacDropzoneSingleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacDropzoneSingleComponent, selector: "sac-dropzonesingle", providers: [
|
|
31
36
|
{
|
|
32
37
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -38,7 +43,7 @@ SacDropzoneSingleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
|
|
|
38
43
|
multi: true,
|
|
39
44
|
useExisting: forwardRef(() => SacDropzoneSingleComponent),
|
|
40
45
|
},
|
|
41
|
-
], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !
|
|
46
|
+
], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"dropzone d-flex justify-content-center position-relative\"\r\n (drop)=\"dropHandler($event)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n [style.min-height]=\"uploadheight\"\r\n [class.active]=\"active\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div\r\n class=\"content d-flex justify-content-center position-relative\"\r\n *ngIf=\"uploads.length === 0\"\r\n >\r\n <div class=\"align-self-center text-center\">\r\n <div\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"content d-flex justify-content-center align-items-center w-50 my-3\"\r\n *ngIf=\"uploads.length > 0\"\r\n >\r\n <div class=\"flex-fill progress-container\">\r\n <div class=\"dropzone-uploadstates\" *ngFor=\"let file of uploads\">\r\n <div class=\"input-group upload-component upload-component-multiple\">\r\n <div class=\"form-control upload-progress border-secondary\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <input\r\n #files\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".dropzone{min-height:9.75rem;border:.125rem dashed lightgray;border-radius:.5rem;background:transparent}.dropzone.is-invalid{border-color:var(--bs-form-invalid-border-color)}.dropzone .content{position:relative;inset:0}.dropzone .content .is-invalid{color:var(--bs-form-invalid-border-color)}.dropzone .content .progress-container{min-width:50%;z-index:100}.dropzone .content .dropzone-uploadstates .upload-progress{padding:0}.dropzone .content .dropzone-uploadstates .upload-progress .progress{height:100%;border-top-right-radius:0;border-bottom-right-radius:0}.dropzone .content .dropzone-uploadstates .upload-progress .progress .progress-text{left:0;right:0;position:absolute}.dropzone .custom-file-input{min-height:100%;height:unset;width:100%;opacity:0;position:absolute}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "toLabelWidthCss": i3.SacToLabelWidthCssPipe, "toControlWidthCss": i4.SacToControlWidthCssPipe, "async": i2.AsyncPipe } });
|
|
42
47
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacDropzoneSingleComponent, decorators: [{
|
|
43
48
|
type: Component,
|
|
44
49
|
args: [{ selector: 'sac-dropzonesingle', providers: [
|
|
@@ -52,10 +57,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
|
|
|
52
57
|
multi: true,
|
|
53
58
|
useExisting: forwardRef(() => SacDropzoneSingleComponent),
|
|
54
59
|
},
|
|
55
|
-
], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !
|
|
56
|
-
}], ctorParameters: function () { return [{ type: i1.
|
|
60
|
+
], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"dropzone d-flex justify-content-center position-relative\"\r\n (drop)=\"dropHandler($event)\"\r\n (dragover)=\"onDragOver($event)\"\r\n (dragleave)=\"onDragLeave($event)\"\r\n [style.min-height]=\"uploadheight\"\r\n [class.active]=\"active\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div\r\n class=\"content d-flex justify-content-center position-relative\"\r\n *ngIf=\"uploads.length === 0\"\r\n >\r\n <div class=\"align-self-center text-center\">\r\n <div\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n <div\r\n class=\"content d-flex justify-content-center align-items-center w-50 my-3\"\r\n *ngIf=\"uploads.length > 0\"\r\n >\r\n <div class=\"flex-fill progress-container\">\r\n <div class=\"dropzone-uploadstates\" *ngFor=\"let file of uploads\">\r\n <div class=\"input-group upload-component upload-component-multiple\">\r\n <div class=\"form-control upload-progress border-secondary\">\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <a\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <input\r\n #files\r\n id=\"{{ name }}_uploadinput\"\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".dropzone{min-height:9.75rem;border:.125rem dashed lightgray;border-radius:.5rem;background:transparent}.dropzone.is-invalid{border-color:var(--bs-form-invalid-border-color)}.dropzone .content{position:relative;inset:0}.dropzone .content .is-invalid{color:var(--bs-form-invalid-border-color)}.dropzone .content .progress-container{min-width:50%;z-index:100}.dropzone .content .dropzone-uploadstates .upload-progress{padding:0}.dropzone .content .dropzone-uploadstates .upload-progress .progress{height:100%;border-top-right-radius:0;border-bottom-right-radius:0}.dropzone .content .dropzone-uploadstates .upload-progress .progress .progress-text{left:0;right:0;position:absolute}.dropzone .custom-file-input{min-height:100%;height:unset;width:100%;opacity:0;position:absolute}\n"] }]
|
|
61
|
+
}], ctorParameters: function () { return [{ type: i1.SacFormLayoutDirective, decorators: [{
|
|
57
62
|
type: Host
|
|
58
63
|
}, {
|
|
59
64
|
type: Optional
|
|
60
65
|
}] }, { type: i0.Injector }, { type: i0.Renderer2 }, { type: i0.NgZone }]; } });
|
|
61
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcHpvbmVzaW5nbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwNS9zcmMvY29udHJvbHMvdXBsb2FkL2Ryb3B6b25lc2luZ2xlLnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWJvb3RzdHJhcDUvc3JjL2NvbnRyb2xzL3VwbG9hZC9kcm9wem9uZXNpbmdsZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLElBQUksRUFJSixRQUFRLEdBRVQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7QUFHNUU7OztHQUdHO0FBa0JILE1BQU0sT0FBTywwQkFDWCxTQUFRLHVCQUF1QjtJQUcvQix1QkFBdUI7SUFFdkI7Ozs7OztPQU1HO0lBQ0gsWUFDc0IsVUFBa0MsRUFDdEQsUUFBa0IsRUFDbEIsUUFBbUIsRUFDbkIsTUFBYztRQUVkLEtBQUssQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsMEJBQTBCO0lBRTFCLHlCQUF5QjtJQUV6Qjs7T0FFRztJQUNJLFFBQVE7UUFDYixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkIsQ0FBQzs7dUhBL0JVLDBCQUEwQjsyR0FBMUIsMEJBQTBCLDZDQWIxQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixLQUFLLEVBQUUsSUFBSTtZQUNYLFdBQVcsRUFBRSwwQkFBMEI7U0FDeEM7UUFDRDtZQUNFLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLEtBQUssRUFBRSxJQUFJO1lBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztTQUMxRDtLQUNGLGlEQ2pDSCwwdUdBc0ZBOzJGRG5EYSwwQkFBMEI7a0JBakJ0QyxTQUFTOytCQUNFLG9CQUFvQixhQUduQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLDRCQUE0Qjt5QkFDeEM7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDJCQUEyQixDQUFDO3lCQUMxRDtxQkFDRjs7MEJBZ0JFLElBQUk7OzBCQUFJLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBmb3J3YXJkUmVmLFxyXG4gIEhvc3QsXHJcbiAgSW5qZWN0b3IsXHJcbiAgTmdab25lLFxyXG4gIE9uSW5pdCxcclxuICBPcHRpb25hbCxcclxuICBSZW5kZXJlcjIsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTYWNEcm9wem9uZVNpbmdsZUNvbW1vbiB9IGZyb20gJ0BzaW1wbGVhbmd1bGFyY29udHJvbHMvc2FjLWNvbW1vbic7XHJcbmltcG9ydCB7IFNhY0Zvcm1MYXlvdXREaXJlY3RpdmUgfSBmcm9tICcuLi9sYXlvdXQvZm9ybWxheW91dC5kaXJlY3RpdmUnO1xyXG5cclxuLyoqXHJcbiAqIERyb3B6b25lIEtvbXBvbmVudGUgZsO8ciBkZW4gVXBsb2FkIGVpbmVzIEZpbGVzXHJcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2t1a2hhcmlldi9uZ3gtdXBsb2FkeC9cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2FjLWRyb3B6b25lc2luZ2xlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZHJvcHpvbmVzaW5nbGUuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZHJvcHpvbmUuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBTYWNEcm9wem9uZVNpbmdsZUNvbXBvbmVudCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTYWNEcm9wem9uZVNpbmdsZUNvbXBvbmVudCksXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYWNEcm9wem9uZVNpbmdsZUNvbXBvbmVudFxyXG4gIGV4dGVuZHMgU2FjRHJvcHpvbmVTaW5nbGVDb21tb25cclxuICBpbXBsZW1lbnRzIE9uSW5pdFxyXG57XHJcbiAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0b3JcclxuICAgKiBAcGFyYW0gZm9ybUxheW91dCBTYWNGb3JtTGF5b3V0IHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXHJcbiAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcclxuICAgKiBAcGFyYW0gcmVuZGVyZXIgQW5ndWxhciByZW5kZXJpbmcgZW5naW5lXHJcbiAgICogQHBhcmFtIG5nWm9uZSBuZ1pvbmUgdG8gbWFuYWdlIGV4dGVybmFsIGphdmFzY3JpcHRzXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASG9zdCgpIEBPcHRpb25hbCgpIGZvcm1MYXlvdXQ6IFNhY0Zvcm1MYXlvdXREaXJlY3RpdmUsXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgbmdab25lOiBOZ1pvbmVcclxuICApIHtcclxuICAgIHN1cGVyKGZvcm1MYXlvdXQsIGluamVjdG9yLCByZW5kZXJlciwgbmdab25lKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8vICNyZWdpb24gUHVibGljIE1ldGhvZHNcclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGlzaWVydCBkYXMgQ29udHJvbFxyXG4gICAqL1xyXG4gIHB1YmxpYyBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIFB1YmxpYyBNZXRob2RzXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJvdyBtYi0zXCIgW2NsYXNzLmctMF09XCJkaXNhYmxlbGFiZWxcIj5cclxuICA8bGFiZWxcclxuICAgICpuZ0lmPVwiZGlzYWJsZWxhYmVsID09PSBmYWxzZSAmJiAhaXNBZGFwdGl2ZUxhYmVsXCJcclxuICAgIGlkPVwie3tuYW1lfX1fbGFiZWxcIlxyXG4gICAgZm9yPVwie3tuYW1lfX1cIlxyXG4gICAgY2xhc3M9XCJjb2wtMTIgY29sLWZvcm0tbGFiZWwgY29sLWZvcm0tbGFiZWwtc21cIlxyXG4gICAgW25nQ2xhc3NdPVwiW2Rpc2FibGVsYWJlbCA9PT0gZmFsc2UgPyAodGhpcy5sYWJlbFNpemVzIHwgdG9MYWJlbFdpZHRoQ3NzKSA6ICdzci1vbmx5JyBdXCJcclxuICAgID57e2xhYmVsfX08L2xhYmVsXHJcbiAgPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiY29sLTEyXCJcclxuICAgIFtuZ0NsYXNzXT1cIltkaXNhYmxlbGFiZWwgPT09IGZhbHNlID8gICh0aGlzLmxhYmVsU2l6ZXMgfCB0b0NvbnRyb2xXaWR0aENzcykgOiAnJ11cIlxyXG4gID5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJkcm9wem9uZSBkLWZsZXgganVzdGlmeS1jb250ZW50LWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZVwiXHJcbiAgICAgIChkcm9wKT1cImRyb3BIYW5kbGVyKCRldmVudClcIlxyXG4gICAgICAoZHJhZ292ZXIpPVwib25EcmFnT3ZlcigkZXZlbnQpXCJcclxuICAgICAgKGRyYWdsZWF2ZSk9XCJvbkRyYWdMZWF2ZSgkZXZlbnQpXCJcclxuICAgICAgW3N0eWxlLm1pbi1oZWlnaHRdPVwidXBsb2FkaGVpZ2h0XCJcclxuICAgICAgW2NsYXNzLmFjdGl2ZV09XCJhY3RpdmVcIlxyXG4gICAgICBbY2xhc3MuaXMtaW52YWxpZF09XCJpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImNvbnRlbnQgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgcG9zaXRpb24tcmVsYXRpdmVcIlxyXG4gICAgICAgICpuZ0lmPVwidXBsb2Fkcy5sZW5ndGggPT09IDBcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImFsaWduLXNlbGYtY2VudGVyIHRleHQtY2VudGVyXCI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIFtjbGFzcy5pcy1pbnZhbGlkXT1cImlzaW5saW5lZXJyb3JlbmFibGVkICYmIGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJjb250ZW50IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciB3LTUwIG15LTNcIlxyXG4gICAgICAgICpuZ0lmPVwidXBsb2Fkcy5sZW5ndGggPiAwXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LWZpbGwgcHJvZ3Jlc3MtY29udGFpbmVyXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcHpvbmUtdXBsb2Fkc3RhdGVzXCIgKm5nRm9yPVwibGV0IGZpbGUgb2YgdXBsb2Fkc1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgdXBsb2FkLWNvbXBvbmVudCB1cGxvYWQtY29tcG9uZW50LW11bHRpcGxlXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY29udHJvbCB1cGxvYWQtcHJvZ3Jlc3MgYm9yZGVyLXNlY29uZGFyeVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInByb2dyZXNzXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzLWJhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLnByb2dyZXNzLWJhci1zdWNjZXNzXT1cImZpbGUucHJvZ3Jlc3M9PT0xMDBcIlxyXG4gICAgICAgICAgICAgICAgICAgIHJvbGU9XCJwcm9ncmVzc2JhclwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS12YWx1ZW5vd109XCJmaWxlLnByb2dyZXNzXCJcclxuICAgICAgICAgICAgICAgICAgICBhcmlhLXZhbHVlbWluPVwiMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS12YWx1ZW1heD1cIjEwMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoLiVdPVwiZmlsZS5wcm9ncmVzc1wiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInByb2dyZXNzLXRleHQgdGV4dC1kYXJrXCI+e3sgZmlsZS5uYW1lIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxhXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0blwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsKGZpbGUudXBsb2FkSWQpXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tc2Vjb25kYXJ5XT1cIiEoaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZCkpXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZGFuZ2VyXT1cImludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiSWNvbkRlbGV0ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICAjZmlsZXNcclxuICAgICAgICBpZD1cInt7IG5hbWUgfX1fdXBsb2FkaW5wdXRcIlxyXG4gICAgICAgIHR5cGU9XCJmaWxlXCJcclxuICAgICAgICBjbGFzcz1cImN1c3RvbS1maWxlLWlucHV0XCJcclxuICAgICAgICAoY2xpY2spPVwiZmlsZXMudmFsdWUgPSAnJ1wiXHJcbiAgICAgICAgKHVwbG9hZHhTdGF0ZSk9XCJvblVwbG9hZCgkZXZlbnQpXCJcclxuICAgICAgICBbZGlzYWJsZWRdPVwiSGFzUXVldWVJdGVtKClcIlxyXG4gICAgICAvPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwiaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIlxyXG4gICAgICBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIlxyXG4gICAgPlxyXG4gICAgICB7eyBHZXRFcnJvck1lc3NhZ2UoKSB8IGFzeW5jIH19XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -2,46 +2,57 @@ import { Component, forwardRef, Host, Optional, } from '@angular/core';
|
|
|
2
2
|
import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
3
|
import { SacUploadSingleCommon } from '@simpleangularcontrols/sac-common';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../
|
|
5
|
+
import * as i1 from "../layout/formlayout.directive";
|
|
6
6
|
import * as i2 from "@angular/common";
|
|
7
|
+
import * as i3 from "../layout/tolabelwidthcss.pipe";
|
|
8
|
+
import * as i4 from "../layout/tocontrolwidthcss.pipe";
|
|
7
9
|
/**
|
|
8
10
|
* Upload Komponten
|
|
9
11
|
* @see https://github.com/kukhariev/ngx-uploadx/
|
|
10
12
|
*/
|
|
11
13
|
export class SacUploadComponent extends SacUploadSingleCommon {
|
|
14
|
+
// #region Constructors
|
|
12
15
|
/**
|
|
13
|
-
*
|
|
14
|
-
* @param
|
|
15
|
-
* @param injector
|
|
16
|
-
* @param renderer Angular
|
|
17
|
-
* @param ngZone ngZone
|
|
16
|
+
* Constructor
|
|
17
|
+
* @param formLayout SacFormLayout to define scoped layout settings
|
|
18
|
+
* @param injector Injector for injecting services
|
|
19
|
+
* @param renderer Angular rendering engine
|
|
20
|
+
* @param ngZone ngZone to manage external javascripts
|
|
18
21
|
*/
|
|
19
|
-
constructor(
|
|
20
|
-
super(
|
|
22
|
+
constructor(formLayout, injector, renderer, ngZone) {
|
|
23
|
+
super(formLayout, injector, renderer, ngZone);
|
|
21
24
|
}
|
|
22
25
|
}
|
|
23
|
-
SacUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacUploadComponent, deps: [{ token: i1.
|
|
26
|
+
SacUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacUploadComponent, deps: [{ token: i1.SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
24
27
|
SacUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacUploadComponent, selector: "sac-upload", providers: [
|
|
25
|
-
{
|
|
28
|
+
{
|
|
29
|
+
provide: NG_VALUE_ACCESSOR,
|
|
30
|
+
multi: true,
|
|
31
|
+
useExisting: SacUploadComponent,
|
|
32
|
+
},
|
|
26
33
|
{
|
|
27
34
|
provide: NG_VALIDATORS,
|
|
28
35
|
multi: true,
|
|
29
36
|
useExisting: forwardRef(() => SacUploadComponent),
|
|
30
37
|
},
|
|
31
|
-
], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !
|
|
38
|
+
], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group upload-component upload-single\"\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <!-- image-preview-input -->\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"HasQueueItem()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <i class=\"pe-2\" [class]=\"IconBrowse\"></i>\r\n <span class=\"upload-browse\"\r\n >{{ lngResourceService.GetString('UPLOAD_BUTTON_BROWSE') | async\r\n }}</span\r\n >\r\n <input\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n <div\r\n class=\"form-control upload-progress\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"Progress()===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"Progress()\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"Progress()\"\r\n >\r\n <span class=\"progress-text text-dark\"\r\n >{{ Filename() | async }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && IsPaused()\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pe-2\"></span>{{\r\n lngResourceService.GetString('UPLOAD_BUTTON_UPLOAD') | async }}\r\n </button>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".upload-component .custom-file .custom-file-input{inset:0;position:absolute;opacity:0}.upload-component.upload-multiple .upload-progress .progress{border-top-right-radius:0;border-bottom-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{padding:0;border:0}.upload-component .upload-progress .progress{height:calc(2.25rem + 2px)}.upload-component .upload-progress .progress .progress-text{position:absolute;left:0;right:0}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], pipes: { "toLabelWidthCss": i3.SacToLabelWidthCssPipe, "toControlWidthCss": i4.SacToControlWidthCssPipe, "async": i2.AsyncPipe } });
|
|
32
39
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacUploadComponent, decorators: [{
|
|
33
40
|
type: Component,
|
|
34
41
|
args: [{ selector: 'sac-upload', providers: [
|
|
35
|
-
{
|
|
42
|
+
{
|
|
43
|
+
provide: NG_VALUE_ACCESSOR,
|
|
44
|
+
multi: true,
|
|
45
|
+
useExisting: SacUploadComponent,
|
|
46
|
+
},
|
|
36
47
|
{
|
|
37
48
|
provide: NG_VALIDATORS,
|
|
38
49
|
multi: true,
|
|
39
50
|
useExisting: forwardRef(() => SacUploadComponent),
|
|
40
51
|
},
|
|
41
|
-
], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !
|
|
42
|
-
}], ctorParameters: function () { return [{ type: i1.
|
|
52
|
+
], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div\r\n class=\"input-group upload-component upload-single\"\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <!-- image-preview-input -->\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"HasQueueItem()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <i class=\"pe-2\" [class]=\"IconBrowse\"></i>\r\n <span class=\"upload-browse\"\r\n >{{ lngResourceService.GetString('UPLOAD_BUTTON_BROWSE') | async\r\n }}</span\r\n >\r\n <input\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"HasQueueItem()\"\r\n />\r\n </div>\r\n <div\r\n class=\"form-control upload-progress\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"Progress()===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"Progress()\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"Progress()\"\r\n >\r\n <span class=\"progress-text text-dark\"\r\n >{{ Filename() | async }}</span\r\n >\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && IsPaused()\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pe-2\"></span>{{\r\n lngResourceService.GetString('UPLOAD_BUTTON_UPLOAD') | async }}\r\n </button>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".upload-component .custom-file .custom-file-input{inset:0;position:absolute;opacity:0}.upload-component.upload-multiple .upload-progress .progress{border-top-right-radius:0;border-bottom-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{padding:0;border:0}.upload-component .upload-progress .progress{height:calc(2.25rem + 2px)}.upload-component .upload-progress .progress .progress-text{position:absolute;left:0;right:0}\n"] }]
|
|
53
|
+
}], ctorParameters: function () { return [{ type: i1.SacFormLayoutDirective, decorators: [{
|
|
43
54
|
type: Host
|
|
44
55
|
}, {
|
|
45
56
|
type: Optional
|
|
46
57
|
}] }, { type: i0.Injector }, { type: i0.Renderer2 }, { type: i0.NgZone }]; } });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWJvb3RzdHJhcDUvc3JjL2NvbnRyb2xzL3VwbG9hZC91cGxvYWQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwNS9zcmMvY29udHJvbHMvdXBsb2FkL3VwbG9hZC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLElBQUksRUFHSixRQUFRLEdBRVQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7QUFHMUU7OztHQUdHO0FBa0JILE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxxQkFBcUI7SUFDM0QsdUJBQXVCO0lBRXZCOzs7Ozs7T0FNRztJQUNILFlBQ3NCLFVBQWtDLEVBQ3RELFFBQWtCLEVBQ2xCLFFBQW1CLEVBQ25CLE1BQWM7UUFFZCxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEQsQ0FBQzs7K0dBakJVLGtCQUFrQjttR0FBbEIsa0JBQWtCLHFDQWJsQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixLQUFLLEVBQUUsSUFBSTtZQUNYLFdBQVcsRUFBRSxrQkFBa0I7U0FDaEM7UUFDRDtZQUNFLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLEtBQUssRUFBRSxJQUFJO1lBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztTQUNsRDtLQUNGLGlEQ2hDSCx1dUlBK0dBOzJGRDdFYSxrQkFBa0I7a0JBakI5QixTQUFTOytCQUNFLFlBQVksYUFHWDt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLG9CQUFvQjt5QkFDaEM7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLG1CQUFtQixDQUFDO3lCQUNsRDtxQkFDRjs7MEJBYUUsSUFBSTs7MEJBQUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSG9zdCxcclxuICBJbmplY3RvcixcclxuICBOZ1pvbmUsXHJcbiAgT3B0aW9uYWwsXHJcbiAgUmVuZGVyZXIyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU2FjVXBsb2FkU2luZ2xlQ29tbW9uIH0gZnJvbSAnQHNpbXBsZWFuZ3VsYXJjb250cm9scy9zYWMtY29tbW9uJztcclxuaW1wb3J0IHsgU2FjRm9ybUxheW91dERpcmVjdGl2ZSB9IGZyb20gJy4uL2xheW91dC9mb3JtbGF5b3V0LmRpcmVjdGl2ZSc7XHJcblxyXG4vKipcclxuICogVXBsb2FkIEtvbXBvbnRlblxyXG4gKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9rdWtoYXJpZXYvbmd4LXVwbG9hZHgvXHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3NhYy11cGxvYWQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdXBsb2FkLnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogU2FjVXBsb2FkQ29tcG9uZW50LFxyXG4gICAgfSxcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFNhY1VwbG9hZENvbXBvbmVudCksXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYWNVcGxvYWRDb21wb25lbnQgZXh0ZW5kcyBTYWNVcGxvYWRTaW5nbGVDb21tb24ge1xyXG4gIC8vICNyZWdpb24gQ29uc3RydWN0b3JzXHJcblxyXG4gIC8qKlxyXG4gICAqIENvbnN0cnVjdG9yXHJcbiAgICogQHBhcmFtIGZvcm1MYXlvdXQgU2FjRm9ybUxheW91dCB0byBkZWZpbmUgc2NvcGVkIGxheW91dCBzZXR0aW5nc1xyXG4gICAqIEBwYXJhbSBpbmplY3RvciBJbmplY3RvciBmb3IgaW5qZWN0aW5nIHNlcnZpY2VzXHJcbiAgICogQHBhcmFtIHJlbmRlcmVyIEFuZ3VsYXIgcmVuZGVyaW5nIGVuZ2luZVxyXG4gICAqIEBwYXJhbSBuZ1pvbmUgbmdab25lIHRvIG1hbmFnZSBleHRlcm5hbCBqYXZhc2NyaXB0c1xyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgQEhvc3QoKSBAT3B0aW9uYWwoKSBmb3JtTGF5b3V0OiBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlLFxyXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIG5nWm9uZTogTmdab25lXHJcbiAgKSB7XHJcbiAgICBzdXBlcihmb3JtTGF5b3V0LCBpbmplY3RvciwgcmVuZGVyZXIsIG5nWm9uZSk7XHJcbiAgfVxyXG5cclxuICAvLyAjZW5kcmVnaW9uIENvbnN0cnVjdG9yc1xyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJyb3cgbWItM1wiIFtjbGFzcy5nLTBdPVwiZGlzYWJsZWxhYmVsXCI+XHJcbiAgPGxhYmVsXHJcbiAgICAqbmdJZj1cImRpc2FibGVsYWJlbCA9PT0gZmFsc2UgJiYgIWlzQWRhcHRpdmVMYWJlbFwiXHJcbiAgICBpZD1cInt7bmFtZX19X2xhYmVsXCJcclxuICAgIGZvcj1cInt7bmFtZX19XCJcclxuICAgIGNsYXNzPVwiY29sLTEyIGNvbC1mb3JtLWxhYmVsIGNvbC1mb3JtLWxhYmVsLXNtXCJcclxuICAgIFtuZ0NsYXNzXT1cIltkaXNhYmxlbGFiZWwgPT09IGZhbHNlID8gKHRoaXMubGFiZWxTaXplcyB8IHRvTGFiZWxXaWR0aENzcykgOiAnc3Itb25seScgXVwiXHJcbiAgICA+e3tsYWJlbH19PC9sYWJlbFxyXG4gID5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImNvbC0xMlwiXHJcbiAgICBbbmdDbGFzc109XCJbZGlzYWJsZWxhYmVsID09PSBmYWxzZSA/ICAodGhpcy5sYWJlbFNpemVzIHwgdG9Db250cm9sV2lkdGhDc3MpIDogJyddXCJcclxuICA+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiaW5wdXQtZ3JvdXAgdXBsb2FkLWNvbXBvbmVudCB1cGxvYWQtc2luZ2xlXCJcclxuICAgICAgW2NsYXNzLmlzLWludmFsaWRdPVwiaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIlxyXG4gICAgPlxyXG4gICAgICA8IS0tIGltYWdlLXByZXZpZXctaW5wdXQgLS0+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImJ0biB1cGxvYWQtaW5wdXQgY3VzdG9tLWZpbGVcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJIYXNRdWV1ZUl0ZW0oKVwiXHJcbiAgICAgICAgW2NsYXNzLmJ0bi1zZWNvbmRhcnldPVwiIShpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKSlcIlxyXG4gICAgICAgIFtjbGFzcy5idG4tZGFuZ2VyXT1cImludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxpIGNsYXNzPVwicGUtMlwiIFtjbGFzc109XCJJY29uQnJvd3NlXCI+PC9pPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidXBsb2FkLWJyb3dzZVwiXHJcbiAgICAgICAgICA+e3sgbG5nUmVzb3VyY2VTZXJ2aWNlLkdldFN0cmluZygnVVBMT0FEX0JVVFRPTl9CUk9XU0UnKSB8IGFzeW5jXHJcbiAgICAgICAgICB9fTwvc3BhblxyXG4gICAgICAgID5cclxuICAgICAgICA8aW5wdXRcclxuICAgICAgICAgIHR5cGU9XCJmaWxlXCJcclxuICAgICAgICAgIGNsYXNzPVwiY3VzdG9tLWZpbGUtaW5wdXRcIlxyXG4gICAgICAgICAgI2ZpbGVzXHJcbiAgICAgICAgICAoY2xpY2spPVwiZmlsZXMudmFsdWUgPSAnJ1wiXHJcbiAgICAgICAgICAodXBsb2FkeFN0YXRlKT1cIm9uVXBsb2FkKCRldmVudClcIlxyXG4gICAgICAgICAgbXVsdGlwbGVcclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJIYXNRdWV1ZUl0ZW0oKVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCB1cGxvYWQtcHJvZ3Jlc3NcIlxyXG4gICAgICAgIFtjbGFzcy5pcy1pbnZhbGlkXT1cImludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzc1wiPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzLWJhclwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5wcm9ncmVzcy1iYXItc3VjY2Vzc109XCJQcm9ncmVzcygpPT09MTAwXCJcclxuICAgICAgICAgICAgcm9sZT1cInByb2dyZXNzYmFyXCJcclxuICAgICAgICAgICAgW2F0dHIuYXJpYS12YWx1ZW5vd109XCJQcm9ncmVzcygpXCJcclxuICAgICAgICAgICAgYXJpYS12YWx1ZW1pbj1cIjBcIlxyXG4gICAgICAgICAgICBhcmlhLXZhbHVlbWF4PVwiMTAwXCJcclxuICAgICAgICAgICAgW3N0eWxlLndpZHRoLiVdPVwiUHJvZ3Jlc3MoKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicHJvZ3Jlc3MtdGV4dCB0ZXh0LWRhcmtcIlxyXG4gICAgICAgICAgICAgID57eyBGaWxlbmFtZSgpIHwgYXN5bmMgfX08L3NwYW5cclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGJ1dHRvblxyXG4gICAgICAgIGNsYXNzPVwiYnRuXCJcclxuICAgICAgICAoY2xpY2spPVwiY2FuY2VsQWxsKClcIlxyXG4gICAgICAgIFthdHRyLmRpc2FibGVkXT1cIkhhc1F1ZXVlSXRlbSgpID09PSBmYWxzZSA/ICdkaXNhYmxlZCcgOiBudWxsXCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiSGFzUXVldWVJdGVtKCkgPT09IGZhbHNlID8gJ2Rpc2FibGVkJyA6IG51bGxcIlxyXG4gICAgICAgIFtjbGFzcy5idG4tc2Vjb25kYXJ5XT1cIiEoaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZCkpXCJcclxuICAgICAgICBbY2xhc3MuYnRuLWRhbmdlcl09XCJpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiXHJcbiAgICAgID5cclxuICAgICAgICA8c3BhbiBbY2xhc3NdPVwiSWNvbkRlbGV0ZVwiPjwvc3Bhbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICAqbmdJZj1cIihhdXRvdXBsb2FkID09PSBmYWxzZSAmJiBlbmFibGVwYXVzZSkgfHwgKGF1dG91cGxvYWQgJiYgZW5hYmxlcGF1c2UgJiYgSXNQYXVzZWQoKSA9PT0gZmFsc2UpXCJcclxuICAgICAgICBjbGFzcz1cImJ0blwiXHJcbiAgICAgICAgKGNsaWNrKT1cInBhdXNlQWxsKClcIlxyXG4gICAgICAgIFthdHRyLmRpc2FibGVkXT1cIklzVXBsb2FkaW5nKCkgPT09IGZhbHNlID8gJ2Rpc2FibGVkJyA6IG51bGxcIlxyXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJJc1VwbG9hZGluZygpID09PSBmYWxzZSA/ICdkaXNhYmxlZCcgOiBudWxsXCJcclxuICAgICAgICBbY2xhc3MuYnRuLXNlY29uZGFyeV09XCIhKGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpKVwiXHJcbiAgICAgICAgW2NsYXNzLmJ0bi1kYW5nZXJdPVwiaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHNwYW4gW2NsYXNzXT1cIkljb25QYXVzZVwiPjwvc3Bhbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxidXR0b25cclxuICAgICAgICAqbmdJZj1cImF1dG91cGxvYWQgJiYgZW5hYmxlcGF1c2UgJiYgSXNQYXVzZWQoKVwiXHJcbiAgICAgICAgY2xhc3M9XCJidG5cIlxyXG4gICAgICAgIChjbGljayk9XCJ1cGxvYWRBbGwoKVwiXHJcbiAgICAgICAgW2NsYXNzLmJ0bi1zZWNvbmRhcnldPVwiIShpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKSlcIlxyXG4gICAgICAgIFtjbGFzcy5idG4tZGFuZ2VyXT1cImludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxzcGFuIFtjbGFzc109XCJJY29uQ29udGludWVcIj48L3NwYW4+XHJcbiAgICAgIDwvYnV0dG9uPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCJhdXRvdXBsb2FkID09PSBmYWxzZVwiXHJcbiAgICAgICAgY2xhc3M9XCJidG4gdGV4dC1ub3dyYXBcIlxyXG4gICAgICAgIChjbGljayk9XCJ1cGxvYWRBbGwoKVwiXHJcbiAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiSXNTdGF0ZVRvVXBsb2FkKCkgPT09IGZhbHNlID8gICdkaXNhYmxlZCcgOiBudWxsXCJcclxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiSXNTdGF0ZVRvVXBsb2FkKCkgPT09IGZhbHNlID8gICdkaXNhYmxlZCcgOiBudWxsXCJcclxuICAgICAgICBbY2xhc3MuYnRuLXNlY29uZGFyeV09XCIhKGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpKVwiXHJcbiAgICAgICAgW2NsYXNzLmJ0bi1kYW5nZXJdPVwiaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIlxyXG4gICAgICA+XHJcbiAgICAgICAgPHNwYW4gW2NsYXNzXT1cIkljb25VcGxvYWRcIiBjbGFzcz1cInBlLTJcIj48L3NwYW4+e3tcclxuICAgICAgICBsbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKCdVUExPQURfQlVUVE9OX1VQTE9BRCcpIHwgYXN5bmMgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgKm5nSWY9XCJpc2lubGluZWVycm9yZW5hYmxlZCAmJiBpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiXHJcbiAgICAgIGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiXHJcbiAgICA+XHJcbiAgICAgIHt7IEdldEVycm9yTWVzc2FnZSgpIHwgYXN5bmMgfX1cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import { NgModule } from '@angular/core';
|
|
3
3
|
import { FormsModule } from '@angular/forms';
|
|
4
|
+
import { SACBootstrap5LayoutModule } from '../layout/layout.module';
|
|
4
5
|
import { SacDropzoneMultipleComponent } from './dropzonemultiple';
|
|
5
6
|
import { SacDropzoneSingleComponent } from './dropzonesingle';
|
|
6
7
|
import { SacUploadComponent } from './upload';
|
|
@@ -12,11 +13,11 @@ SACBootstrap5UploadModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0"
|
|
|
12
13
|
SACBootstrap5UploadModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5UploadModule, declarations: [SacUploadComponent,
|
|
13
14
|
SacUploadMultipleComponent,
|
|
14
15
|
SacDropzoneSingleComponent,
|
|
15
|
-
SacDropzoneMultipleComponent], imports: [CommonModule, FormsModule], exports: [SacUploadComponent,
|
|
16
|
+
SacDropzoneMultipleComponent], imports: [CommonModule, FormsModule, SACBootstrap5LayoutModule], exports: [SacUploadComponent,
|
|
16
17
|
SacUploadMultipleComponent,
|
|
17
18
|
SacDropzoneSingleComponent,
|
|
18
19
|
SacDropzoneMultipleComponent] });
|
|
19
|
-
SACBootstrap5UploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5UploadModule, imports: [[CommonModule, FormsModule]] });
|
|
20
|
+
SACBootstrap5UploadModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5UploadModule, imports: [[CommonModule, FormsModule, SACBootstrap5LayoutModule]] });
|
|
20
21
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SACBootstrap5UploadModule, decorators: [{
|
|
21
22
|
type: NgModule,
|
|
22
23
|
args: [{
|
|
@@ -26,7 +27,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
|
|
|
26
27
|
SacDropzoneSingleComponent,
|
|
27
28
|
SacDropzoneMultipleComponent,
|
|
28
29
|
],
|
|
29
|
-
imports: [CommonModule, FormsModule],
|
|
30
|
+
imports: [CommonModule, FormsModule, SACBootstrap5LayoutModule],
|
|
30
31
|
exports: [
|
|
31
32
|
SacUploadComponent,
|
|
32
33
|
SacUploadMultipleComponent,
|
|
@@ -35,4 +36,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
|
|
|
35
36
|
],
|
|
36
37
|
}]
|
|
37
38
|
}] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NhYy1ib290c3RyYXA1L3NyYy9jb250cm9scy91cGxvYWQvdXBsb2FkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDcEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDbEUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzlDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQWlCOUQsTUFBTSxPQUFPLHlCQUF5Qjs7c0hBQXpCLHlCQUF5Qjt1SEFBekIseUJBQXlCLGlCQWJsQyxrQkFBa0I7UUFDbEIsMEJBQTBCO1FBQzFCLDBCQUEwQjtRQUMxQiw0QkFBNEIsYUFFcEIsWUFBWSxFQUFFLFdBQVcsRUFBRSx5QkFBeUIsYUFFNUQsa0JBQWtCO1FBQ2xCLDBCQUEwQjtRQUMxQiwwQkFBMEI7UUFDMUIsNEJBQTRCO3VIQUduQix5QkFBeUIsWUFSM0IsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLHlCQUF5QixDQUFDOzJGQVFwRCx5QkFBeUI7a0JBZnJDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLGtCQUFrQjt3QkFDbEIsMEJBQTBCO3dCQUMxQiwwQkFBMEI7d0JBQzFCLDRCQUE0QjtxQkFDN0I7b0JBQ0QsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSx5QkFBeUIsQ0FBQztvQkFDL0QsT0FBTyxFQUFFO3dCQUNQLGtCQUFrQjt3QkFDbEIsMEJBQTBCO3dCQUMxQiwwQkFBMEI7d0JBQzFCLDRCQUE0QjtxQkFDN0I7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU0FDQm9vdHN0cmFwNUxheW91dE1vZHVsZSB9IGZyb20gJy4uL2xheW91dC9sYXlvdXQubW9kdWxlJztcclxuaW1wb3J0IHsgU2FjRHJvcHpvbmVNdWx0aXBsZUNvbXBvbmVudCB9IGZyb20gJy4vZHJvcHpvbmVtdWx0aXBsZSc7XHJcbmltcG9ydCB7IFNhY0Ryb3B6b25lU2luZ2xlQ29tcG9uZW50IH0gZnJvbSAnLi9kcm9wem9uZXNpbmdsZSc7XHJcbmltcG9ydCB7IFNhY1VwbG9hZENvbXBvbmVudCB9IGZyb20gJy4vdXBsb2FkJztcclxuaW1wb3J0IHsgU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnQgfSBmcm9tICcuL3VwbG9hZG11bHRpcGxlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBTYWNVcGxvYWRDb21wb25lbnQsXHJcbiAgICBTYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudCxcclxuICAgIFNhY0Ryb3B6b25lU2luZ2xlQ29tcG9uZW50LFxyXG4gICAgU2FjRHJvcHpvbmVNdWx0aXBsZUNvbXBvbmVudCxcclxuICBdLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBTQUNCb290c3RyYXA1TGF5b3V0TW9kdWxlXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBTYWNVcGxvYWRDb21wb25lbnQsXHJcbiAgICBTYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudCxcclxuICAgIFNhY0Ryb3B6b25lU2luZ2xlQ29tcG9uZW50LFxyXG4gICAgU2FjRHJvcHpvbmVNdWx0aXBsZUNvbXBvbmVudCxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU0FDQm9vdHN0cmFwNVVwbG9hZE1vZHVsZSB7fVxyXG4iXX0=
|
|
@@ -2,25 +2,28 @@ import { Component, forwardRef, Host, Optional, } from '@angular/core';
|
|
|
2
2
|
import { NG_VALIDATORS, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
3
3
|
import { SacUploadMultipleCommon } from '@simpleangularcontrols/sac-common';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
|
-
import * as i1 from "../
|
|
5
|
+
import * as i1 from "../layout/formlayout.directive";
|
|
6
6
|
import * as i2 from "@angular/common";
|
|
7
|
+
import * as i3 from "../layout/tolabelwidthcss.pipe";
|
|
8
|
+
import * as i4 from "../layout/tocontrolwidthcss.pipe";
|
|
7
9
|
/**
|
|
8
10
|
* Upload Komponente für den Upload mehrer Files
|
|
9
11
|
* @see https://github.com/kukhariev/ngx-uploadx/
|
|
10
12
|
*/
|
|
11
13
|
export class SacUploadMultipleComponent extends SacUploadMultipleCommon {
|
|
14
|
+
// #region Constructors
|
|
12
15
|
/**
|
|
13
|
-
*
|
|
14
|
-
* @param
|
|
15
|
-
* @param injector
|
|
16
|
-
* @param renderer Angular
|
|
17
|
-
* @param ngZone ngZone
|
|
16
|
+
* Constructor
|
|
17
|
+
* @param formLayout SacFormLayout to define scoped layout settings
|
|
18
|
+
* @param injector Injector for injecting services
|
|
19
|
+
* @param renderer Angular rendering engine
|
|
20
|
+
* @param ngZone ngZone to manage external javascripts
|
|
18
21
|
*/
|
|
19
|
-
constructor(
|
|
20
|
-
super(
|
|
22
|
+
constructor(formLayout, injector, renderer, ngZone) {
|
|
23
|
+
super(formLayout, injector, renderer, ngZone);
|
|
21
24
|
}
|
|
22
25
|
}
|
|
23
|
-
SacUploadMultipleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacUploadMultipleComponent, deps: [{ token: i1.
|
|
26
|
+
SacUploadMultipleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacUploadMultipleComponent, deps: [{ token: i1.SacFormLayoutDirective, host: true, optional: true }, { token: i0.Injector }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
24
27
|
SacUploadMultipleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SacUploadMultipleComponent, selector: "sac-uploadmultiple", providers: [
|
|
25
28
|
{
|
|
26
29
|
provide: NG_VALUE_ACCESSOR,
|
|
@@ -32,7 +35,7 @@ SacUploadMultipleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0
|
|
|
32
35
|
multi: true,
|
|
33
36
|
useExisting: forwardRef(() => SacUploadMultipleComponent),
|
|
34
37
|
},
|
|
35
|
-
], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !
|
|
38
|
+
], usesInheritance: true, ngImport: i0, template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div class=\"upload-component\">\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <div\r\n class=\"btn-group\"\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <i [class]=\"IconBrowse\" class=\"pe-2\"></i>\r\n <span class=\"upload-browse\">Browse</span>\r\n <input\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n />\r\n </div>\r\n\r\n <div class=\"btn-group\">\r\n <!-- image-preview-clear button -->\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && IsPaused() === true\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pe-2\"></span> {{\r\n lngResourceService.GetString('UPLOAD_BUTTON_UPLOAD') | async }}\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngFor=\"let file of uploads\" style=\"margin-top: 5px\">\r\n <div class=\"input-group upload-component upload-multiple\">\r\n <div\r\n class=\"form-control upload-progress\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && file.status !== 'paused')\"\r\n class=\"btn\"\r\n (click)=\"pause(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'uploading' ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && file.status === 'paused'\"\r\n class=\"btn\"\r\n (click)=\"upload(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"upload(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'added' && file.status !== 'paused' ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pe-2\"></span>{{\r\n lngResourceService.GetString('UPLOAD_BUTTON_UPLOAD') | async }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".upload-component .custom-file .custom-file-input{inset:0;position:absolute;opacity:0}.upload-component.upload-multiple .upload-progress .progress{border-top-right-radius:0;border-bottom-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{padding:0;border:0}.upload-component .upload-progress .progress{height:calc(2.25rem + 2px)}.upload-component .upload-progress .progress .progress-text{position:absolute;left:0;right:0}\n"], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "toLabelWidthCss": i3.SacToLabelWidthCssPipe, "toControlWidthCss": i4.SacToControlWidthCssPipe, "async": i2.AsyncPipe } });
|
|
36
39
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SacUploadMultipleComponent, decorators: [{
|
|
37
40
|
type: Component,
|
|
38
41
|
args: [{ selector: 'sac-uploadmultiple', providers: [
|
|
@@ -46,10 +49,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImpor
|
|
|
46
49
|
multi: true,
|
|
47
50
|
useExisting: forwardRef(() => SacUploadMultipleComponent),
|
|
48
51
|
},
|
|
49
|
-
], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !
|
|
50
|
-
}], ctorParameters: function () { return [{ type: i1.
|
|
52
|
+
], template: "<div class=\"row mb-3\" [class.g-0]=\"disablelabel\">\r\n <label\r\n *ngIf=\"disablelabel === false && !isAdaptiveLabel\"\r\n id=\"{{name}}_label\"\r\n for=\"{{name}}\"\r\n class=\"col-12 col-form-label col-form-label-sm\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toLabelWidthCss) : 'sr-only' ]\"\r\n >{{label}}</label\r\n >\r\n <div\r\n class=\"col-12\"\r\n [ngClass]=\"[disablelabel === false ? (this.labelSizes | toControlWidthCss) : '']\"\r\n >\r\n <div class=\"upload-component\">\r\n <div class=\"row\">\r\n <div class=\"col-12\">\r\n <div\r\n class=\"btn-group\"\r\n [class.is-invalid]=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n >\r\n <div\r\n class=\"btn upload-input custom-file\"\r\n [class.disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <i [class]=\"IconBrowse\" class=\"pe-2\"></i>\r\n <span class=\"upload-browse\">Browse</span>\r\n <input\r\n type=\"file\"\r\n class=\"custom-file-input\"\r\n #files\r\n (click)=\"files.value = ''\"\r\n (uploadxState)=\"onUpload($event)\"\r\n multiple\r\n [disabled]=\"maxfiles > 0 && uploads.length >= maxfiles\"\r\n />\r\n </div>\r\n\r\n <div class=\"btn-group\">\r\n <!-- image-preview-clear button -->\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancelAll()\"\r\n [attr.disabled]=\"HasQueueItem() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && IsPaused() === false)\"\r\n class=\"btn\"\r\n (click)=\"pauseAll()\"\r\n [attr.disabled]=\"IsUploading() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && IsPaused() === true\"\r\n class=\"btn\"\r\n (click)=\"uploadAll()\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"uploadAll()\"\r\n [attr.disabled]=\"IsStateToUpload() === false ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pe-2\"></span> {{\r\n lngResourceService.GetString('UPLOAD_BUTTON_UPLOAD') | async }}\r\n </button>\r\n </div>\r\n </div>\r\n <div\r\n *ngIf=\"isinlineerrorenabled && invalid && (dirty || touched)\"\r\n class=\"invalid-feedback\"\r\n >\r\n {{ GetErrorMessage() | async }}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngFor=\"let file of uploads\" style=\"margin-top: 5px\">\r\n <div class=\"input-group upload-component upload-multiple\">\r\n <div\r\n class=\"form-control upload-progress\"\r\n [class.is-invalid]=\"invalid && (dirty || touched)\"\r\n >\r\n <div class=\"progress\">\r\n <div\r\n class=\"progress-bar\"\r\n [class.progress-bar-success]=\"file.progress===100\"\r\n role=\"progressbar\"\r\n [attr.aria-valuenow]=\"file.progress\"\r\n aria-valuemin=\"0\"\r\n aria-valuemax=\"100\"\r\n [style.width.%]=\"file.progress\"\r\n >\r\n <span class=\"progress-text text-dark\">{{ file.name }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <button\r\n class=\"btn\"\r\n (click)=\"cancel(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconDelete\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"(autoupload === false && enablepause) || (autoupload && enablepause && file.status !== 'paused')\"\r\n class=\"btn\"\r\n (click)=\"pause(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'uploading' ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconPause\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload && enablepause && file.status === 'paused'\"\r\n class=\"btn\"\r\n (click)=\"upload(file.uploadId)\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconContinue\"></span>\r\n </button>\r\n <button\r\n *ngIf=\"autoupload === false\"\r\n class=\"btn text-nowrap\"\r\n (click)=\"upload(file.uploadId)\"\r\n [attr.disabled]=\"file.status !== 'added' && file.status !== 'paused' ? 'disabled' : null\"\r\n [class.btn-secondary]=\"!(invalid && (dirty || touched))\"\r\n [class.btn-danger]=\"invalid && (dirty || touched)\"\r\n >\r\n <span [class]=\"IconUpload\" class=\"pe-2\"></span>{{\r\n lngResourceService.GetString('UPLOAD_BUTTON_UPLOAD') | async }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".upload-component .custom-file .custom-file-input{inset:0;position:absolute;opacity:0}.upload-component.upload-multiple .upload-progress .progress{border-top-right-radius:0;border-bottom-right-radius:0}.upload-component.upload-single .upload-progress .progress{border-radius:0}.upload-component .upload-progress{padding:0;border:0}.upload-component .upload-progress .progress{height:calc(2.25rem + 2px)}.upload-component .upload-progress .progress .progress-text{position:absolute;left:0;right:0}\n"] }]
|
|
53
|
+
}], ctorParameters: function () { return [{ type: i1.SacFormLayoutDirective, decorators: [{
|
|
51
54
|
type: Host
|
|
52
55
|
}, {
|
|
53
56
|
type: Optional
|
|
54
57
|
}] }, { type: i0.Injector }, { type: i0.Renderer2 }, { type: i0.NgZone }]; } });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkbXVsdGlwbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwNS9zcmMvY29udHJvbHMvdXBsb2FkL3VwbG9hZG11bHRpcGxlLnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWJvb3RzdHJhcDUvc3JjL2NvbnRyb2xzL3VwbG9hZC91cGxvYWRtdWx0aXBsZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLElBQUksRUFHSixRQUFRLEdBRVQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7O0FBRzVFOzs7R0FHRztBQWtCSCxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsdUJBQXVCO0lBQ3JFOzs7Ozs7T0FNRztJQUNILFlBQ3NCLE1BQXdCLEVBQzVDLFFBQWtCLEVBQ2xCLFFBQW1CLEVBQ25CLE1BQWM7UUFFZCxLQUFLLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDNUMsQ0FBQzs7dUhBZlUsMEJBQTBCOzJHQUExQiwwQkFBMEIsNkNBYjFCO1FBQ1Q7WUFDRSxPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLEtBQUssRUFBRSxJQUFJO1lBQ1gsV0FBVyxFQUFFLDBCQUEwQjtTQUN4QztRQUNEO1lBQ0UsT0FBTyxFQUFFLGFBQWE7WUFDdEIsS0FBSyxFQUFFLElBQUk7WUFDWCxXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLDBCQUEwQixDQUFDO1NBQzFEO0tBQ0YsaURDaENILDJwTkEySkE7MkZEekhhLDBCQUEwQjtrQkFqQnRDLFNBQVM7K0JBQ0Usb0JBQW9CLGFBR25CO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsNEJBQTRCO3lCQUN4Qzt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsYUFBYTs0QkFDdEIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsMkJBQTJCLENBQUM7eUJBQzFEO3FCQUNGOzswQkFXRSxJQUFJOzswQkFBSSxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgZm9yd2FyZFJlZixcclxuICBIb3N0LFxyXG4gIEluamVjdG9yLFxyXG4gIE5nWm9uZSxcclxuICBPcHRpb25hbCxcclxuICBSZW5kZXJlcjIsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBTYWNVcGxvYWRNdWx0aXBsZUNvbW1vbiB9IGZyb20gJ0BzaW1wbGVhbmd1bGFyY29udHJvbHMvc2FjLWNvbW1vbic7XHJcbmltcG9ydCB7IFNhY0Zvcm1EaXJlY3RpdmUgfSBmcm9tICcuLi9mb3JtL2Zvcm0nO1xyXG5cclxuLyoqXHJcbiAqIFVwbG9hZCBLb21wb25lbnRlIGbDvHIgZGVuIFVwbG9hZCBtZWhyZXIgRmlsZXNcclxuICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20va3VraGFyaWV2L25neC11cGxvYWR4L1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzYWMtdXBsb2FkbXVsdGlwbGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWRtdWx0aXBsZS5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi91cGxvYWQuc2NzcyddLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBTYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudCxcclxuICAgIH0sXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudCksXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTYWNVcGxvYWRNdWx0aXBsZUNvbXBvbmVudCBleHRlbmRzIFNhY1VwbG9hZE11bHRpcGxlQ29tbW9uIHtcclxuICAvKipcclxuICAgKiBLb25zdHJ1a3RvclxyXG4gICAqIEBwYXJhbSBwYXJlbnQgRm9ybXVsYXJcclxuICAgKiBAcGFyYW0gaW5qZWN0b3IgQW5ndWxhciBEZXBlbmRlbmN5IEluamVjdGlvbiBTZXJ2aWNlXHJcbiAgICogQHBhcmFtIHJlbmRlcmVyIEFuZ3VsYXIgUmVuZGVyaW5nIEVuZ2luZVxyXG4gICAqIEBwYXJhbSBuZ1pvbmUgbmdab25lXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASG9zdCgpIEBPcHRpb25hbCgpIHBhcmVudDogU2FjRm9ybURpcmVjdGl2ZSxcclxuICAgIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICBuZ1pvbmU6IE5nWm9uZVxyXG4gICkge1xyXG4gICAgc3VwZXIocGFyZW50LCBpbmplY3RvciwgcmVuZGVyZXIsIG5nWm9uZSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJyb3cgbWItM1wiIFtjbGFzcy5nLTBdPVwiZGlzYWJsZWxhYmVsXCI+XHJcbiAgPGxhYmVsXHJcbiAgICAqbmdJZj1cImRpc2FibGVsYWJlbCA9PT0gZmFsc2UgJiYgIWlzYWRhcHRpdmVsYWJlbFwiXHJcbiAgICBpZD1cInt7bmFtZX19X2xhYmVsXCJcclxuICAgIGZvcj1cInt7bmFtZX19XCJcclxuICAgIGNsYXNzPVwiY29sLTEyIGNvbC1mb3JtLWxhYmVsIGNvbC1mb3JtLWxhYmVsLXNtXCJcclxuICAgIFtuZ0NsYXNzXT1cIltsYWJlbHNpemUgIT09IDEyID8gICdjb2wtbWQtJyArIGxhYmVsc2l6ZSA6ICdzci1vbmx5J11cIlxyXG4gICAgPnt7bGFiZWx9fTwvbGFiZWxcclxuICA+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJjb2wtMTJcIlxyXG4gICAgW25nQ2xhc3NdPVwiW2Rpc2FibGVsYWJlbCA9PT0gZmFsc2UgPyAnY29sLW1kLScgKyBfaW5wdXRzaXplIDogJ2NvbC1zbS0xMiddXCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwidXBsb2FkLWNvbXBvbmVudFwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0xMlwiPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImJ0bi1ncm91cFwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5pcy1pbnZhbGlkXT1cImlzaW5saW5lZXJyb3JlbmFibGVkICYmIGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiYnRuIHVwbG9hZC1pbnB1dCBjdXN0b20tZmlsZVwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cIm1heGZpbGVzID4gMCAmJiAgdXBsb2Fkcy5sZW5ndGggPj0gbWF4ZmlsZXNcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5idG4tc2Vjb25kYXJ5XT1cIiEoaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZCkpXCJcclxuICAgICAgICAgICAgICBbY2xhc3MuYnRuLWRhbmdlcl09XCJpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICA8aSBbY2xhc3NdPVwiSWNvbkJyb3dzZVwiIGNsYXNzPVwicGUtMlwiPjwvaT5cclxuICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInVwbG9hZC1icm93c2VcIj5Ccm93c2U8L3NwYW4+XHJcbiAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImN1c3RvbS1maWxlLWlucHV0XCJcclxuICAgICAgICAgICAgICAgICNmaWxlc1xyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cImZpbGVzLnZhbHVlID0gJydcIlxyXG4gICAgICAgICAgICAgICAgKHVwbG9hZHhTdGF0ZSk9XCJvblVwbG9hZCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIG11bHRpcGxlXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibWF4ZmlsZXMgPiAwICYmICB1cGxvYWRzLmxlbmd0aCA+PSBtYXhmaWxlc1wiXHJcbiAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuLWdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgPCEtLSBpbWFnZS1wcmV2aWV3LWNsZWFyIGJ1dHRvbiAtLT5cclxuICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0blwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsQWxsKClcIlxyXG4gICAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiSGFzUXVldWVJdGVtKCkgPT09IGZhbHNlID8gJ2Rpc2FibGVkJyA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1zZWNvbmRhcnldPVwiIShpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKSlcIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1kYW5nZXJdPVwiaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJJY29uRGVsZXRlXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiKGF1dG91cGxvYWQgPT09IGZhbHNlICYmIGVuYWJsZXBhdXNlKSB8fCAoYXV0b3VwbG9hZCAmJiBlbmFibGVwYXVzZSAmJiBJc1BhdXNlZCgpID09PSBmYWxzZSlcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG5cIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInBhdXNlQWxsKClcIlxyXG4gICAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiSXNVcGxvYWRpbmcoKSA9PT0gZmFsc2UgPyAnZGlzYWJsZWQnIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLXNlY29uZGFyeV09XCIhKGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpKVwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLWRhbmdlcl09XCJpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIkljb25QYXVzZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImF1dG91cGxvYWQgJiYgZW5hYmxlcGF1c2UgJiYgSXNQYXVzZWQoKSA9PT0gdHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0blwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidXBsb2FkQWxsKClcIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1zZWNvbmRhcnldPVwiIShpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKSlcIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1kYW5nZXJdPVwiaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJJY29uQ29udGludWVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCJhdXRvdXBsb2FkID09PSBmYWxzZVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biB0ZXh0LW5vd3JhcFwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwidXBsb2FkQWxsKClcIlxyXG4gICAgICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiSXNTdGF0ZVRvVXBsb2FkKCkgPT09IGZhbHNlID8gICdkaXNhYmxlZCcgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tc2Vjb25kYXJ5XT1cIiEoaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZCkpXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZGFuZ2VyXT1cImludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiSWNvblVwbG9hZFwiIGNsYXNzPVwicGUtMlwiPjwvc3Bhbj4ge3tcclxuICAgICAgICAgICAgICAgIGxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcoJ1VQTE9BRF9CVVRUT05fVVBMT0FEJykgfCBhc3luYyB9fVxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICAqbmdJZj1cImlzaW5saW5lZXJyb3JlbmFibGVkICYmIGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgR2V0RXJyb3JNZXNzYWdlKCkgfCBhc3luYyB9fVxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZmlsZSBvZiB1cGxvYWRzXCIgc3R5bGU9XCJtYXJnaW4tdG9wOiA1cHhcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAgdXBsb2FkLWNvbXBvbmVudCB1cGxvYWQtbXVsdGlwbGVcIj5cclxuICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJmb3JtLWNvbnRyb2wgdXBsb2FkLXByb2dyZXNzXCJcclxuICAgICAgICAgICAgW2NsYXNzLmlzLWludmFsaWRdPVwiaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicHJvZ3Jlc3NcIj5cclxuICAgICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInByb2dyZXNzLWJhclwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3MucHJvZ3Jlc3MtYmFyLXN1Y2Nlc3NdPVwiZmlsZS5wcm9ncmVzcz09PTEwMFwiXHJcbiAgICAgICAgICAgICAgICByb2xlPVwicHJvZ3Jlc3NiYXJcIlxyXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS12YWx1ZW5vd109XCJmaWxlLnByb2dyZXNzXCJcclxuICAgICAgICAgICAgICAgIGFyaWEtdmFsdWVtaW49XCIwXCJcclxuICAgICAgICAgICAgICAgIGFyaWEtdmFsdWVtYXg9XCIxMDBcIlxyXG4gICAgICAgICAgICAgICAgW3N0eWxlLndpZHRoLiVdPVwiZmlsZS5wcm9ncmVzc1wiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwcm9ncmVzcy10ZXh0IHRleHQtZGFya1wiPnt7IGZpbGUubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImNhbmNlbChmaWxlLnVwbG9hZElkKVwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5idG4tc2Vjb25kYXJ5XT1cIiEoaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZCkpXCJcclxuICAgICAgICAgICAgW2NsYXNzLmJ0bi1kYW5nZXJdPVwiaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiSWNvbkRlbGV0ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAqbmdJZj1cIihhdXRvdXBsb2FkID09PSBmYWxzZSAmJiBlbmFibGVwYXVzZSkgfHwgKGF1dG91cGxvYWQgJiYgZW5hYmxlcGF1c2UgJiYgZmlsZS5zdGF0dXMgIT09ICdwYXVzZWQnKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInBhdXNlKGZpbGUudXBsb2FkSWQpXCJcclxuICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZmlsZS5zdGF0dXMgIT09ICd1cGxvYWRpbmcnID8gJ2Rpc2FibGVkJyA6IG51bGxcIlxyXG4gICAgICAgICAgICBbY2xhc3MuYnRuLXNlY29uZGFyeV09XCIhKGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpKVwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5idG4tZGFuZ2VyXT1cImludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIkljb25QYXVzZVwiPjwvc3Bhbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAqbmdJZj1cImF1dG91cGxvYWQgJiYgZW5hYmxlcGF1c2UgJiYgZmlsZS5zdGF0dXMgPT09ICdwYXVzZWQnXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJidG5cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwidXBsb2FkKGZpbGUudXBsb2FkSWQpXCJcclxuICAgICAgICAgICAgW2NsYXNzLmJ0bi1zZWNvbmRhcnldPVwiIShpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKSlcIlxyXG4gICAgICAgICAgICBbY2xhc3MuYnRuLWRhbmdlcl09XCJpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJJY29uQ29udGludWVcIj48L3NwYW4+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgKm5nSWY9XCJhdXRvdXBsb2FkID09PSBmYWxzZVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuIHRleHQtbm93cmFwXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cInVwbG9hZChmaWxlLnVwbG9hZElkKVwiXHJcbiAgICAgICAgICAgIFthdHRyLmRpc2FibGVkXT1cImZpbGUuc3RhdHVzICE9PSAnYWRkZWQnICYmIGZpbGUuc3RhdHVzICE9PSAncGF1c2VkJyA/ICAnZGlzYWJsZWQnIDogbnVsbFwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5idG4tc2Vjb25kYXJ5XT1cIiEoaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZCkpXCJcclxuICAgICAgICAgICAgW2NsYXNzLmJ0bi1kYW5nZXJdPVwiaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiSWNvblVwbG9hZFwiIGNsYXNzPVwicGUtMlwiPjwvc3Bhbj57e1xyXG4gICAgICAgICAgICBsbmdSZXNvdXJjZVNlcnZpY2UuR2V0U3RyaW5nKCdVUExPQURfQlVUVE9OX1VQTE9BRCcpIHwgYXN5bmMgfX1cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkbXVsdGlwbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zYWMtYm9vdHN0cmFwNS9zcmMvY29udHJvbHMvdXBsb2FkL3VwbG9hZG11bHRpcGxlLnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2FjLWJvb3RzdHJhcDUvc3JjL2NvbnRyb2xzL3VwbG9hZC91cGxvYWRtdWx0aXBsZS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLElBQUksRUFHSixRQUFRLEdBRVQsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7Ozs7QUFHNUU7OztHQUdHO0FBa0JILE1BQU0sT0FBTywwQkFBMkIsU0FBUSx1QkFBdUI7SUFDckUsdUJBQXVCO0lBRXZCOzs7Ozs7T0FNRztJQUNILFlBQ3NCLFVBQWtDLEVBQ3RELFFBQWtCLEVBQ2xCLFFBQW1CLEVBQ25CLE1BQWM7UUFFZCxLQUFLLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEQsQ0FBQzs7dUhBakJVLDBCQUEwQjsyR0FBMUIsMEJBQTBCLDZDQWIxQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixLQUFLLEVBQUUsSUFBSTtZQUNYLFdBQVcsRUFBRSwwQkFBMEI7U0FDeEM7UUFDRDtZQUNFLE9BQU8sRUFBRSxhQUFhO1lBQ3RCLEtBQUssRUFBRSxJQUFJO1lBQ1gsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztTQUMxRDtLQUNGLGlEQ2hDSCxzck5BMkpBOzJGRHpIYSwwQkFBMEI7a0JBakJ0QyxTQUFTOytCQUNFLG9CQUFvQixhQUduQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixLQUFLLEVBQUUsSUFBSTs0QkFDWCxXQUFXLDRCQUE0Qjt5QkFDeEM7d0JBQ0Q7NEJBQ0UsT0FBTyxFQUFFLGFBQWE7NEJBQ3RCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLDJCQUEyQixDQUFDO3lCQUMxRDtxQkFDRjs7MEJBYUUsSUFBSTs7MEJBQUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSG9zdCxcclxuICBJbmplY3RvcixcclxuICBOZ1pvbmUsXHJcbiAgT3B0aW9uYWwsXHJcbiAgUmVuZGVyZXIyLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU2FjVXBsb2FkTXVsdGlwbGVDb21tb24gfSBmcm9tICdAc2ltcGxlYW5ndWxhcmNvbnRyb2xzL3NhYy1jb21tb24nO1xyXG5pbXBvcnQgeyBTYWNGb3JtTGF5b3V0RGlyZWN0aXZlIH0gZnJvbSAnLi4vbGF5b3V0L2Zvcm1sYXlvdXQuZGlyZWN0aXZlJztcclxuXHJcbi8qKlxyXG4gKiBVcGxvYWQgS29tcG9uZW50ZSBmw7xyIGRlbiBVcGxvYWQgbWVocmVyIEZpbGVzXHJcbiAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2t1a2hhcmlldi9uZ3gtdXBsb2FkeC9cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2FjLXVwbG9hZG11bHRpcGxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdXBsb2FkbXVsdGlwbGUuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdXBsb2FkLnNjc3MnXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnQsXHJcbiAgICB9LFxyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxyXG4gICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnQpLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2FjVXBsb2FkTXVsdGlwbGVDb21wb25lbnQgZXh0ZW5kcyBTYWNVcGxvYWRNdWx0aXBsZUNvbW1vbiB7XHJcbiAgLy8gI3JlZ2lvbiBDb25zdHJ1Y3RvcnNcclxuXHJcbiAgLyoqXHJcbiAgICogQ29uc3RydWN0b3JcclxuICAgKiBAcGFyYW0gZm9ybUxheW91dCBTYWNGb3JtTGF5b3V0IHRvIGRlZmluZSBzY29wZWQgbGF5b3V0IHNldHRpbmdzXHJcbiAgICogQHBhcmFtIGluamVjdG9yIEluamVjdG9yIGZvciBpbmplY3Rpbmcgc2VydmljZXNcclxuICAgKiBAcGFyYW0gcmVuZGVyZXIgQW5ndWxhciByZW5kZXJpbmcgZW5naW5lXHJcbiAgICogQHBhcmFtIG5nWm9uZSBuZ1pvbmUgdG8gbWFuYWdlIGV4dGVybmFsIGphdmFzY3JpcHRzXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBASG9zdCgpIEBPcHRpb25hbCgpIGZvcm1MYXlvdXQ6IFNhY0Zvcm1MYXlvdXREaXJlY3RpdmUsXHJcbiAgICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgbmdab25lOiBOZ1pvbmVcclxuICApIHtcclxuICAgIHN1cGVyKGZvcm1MYXlvdXQsIGluamVjdG9yLCByZW5kZXJlciwgbmdab25lKTtcclxuICB9XHJcblxyXG4gIC8vICNlbmRyZWdpb24gQ29uc3RydWN0b3JzXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJvdyBtYi0zXCIgW2NsYXNzLmctMF09XCJkaXNhYmxlbGFiZWxcIj5cclxuICA8bGFiZWxcclxuICAgICpuZ0lmPVwiZGlzYWJsZWxhYmVsID09PSBmYWxzZSAmJiAhaXNBZGFwdGl2ZUxhYmVsXCJcclxuICAgIGlkPVwie3tuYW1lfX1fbGFiZWxcIlxyXG4gICAgZm9yPVwie3tuYW1lfX1cIlxyXG4gICAgY2xhc3M9XCJjb2wtMTIgY29sLWZvcm0tbGFiZWwgY29sLWZvcm0tbGFiZWwtc21cIlxyXG4gICAgW25nQ2xhc3NdPVwiW2Rpc2FibGVsYWJlbCA9PT0gZmFsc2UgPyAodGhpcy5sYWJlbFNpemVzIHwgdG9MYWJlbFdpZHRoQ3NzKSA6ICdzci1vbmx5JyBdXCJcclxuICAgID57e2xhYmVsfX08L2xhYmVsXHJcbiAgPlxyXG4gIDxkaXZcclxuICAgIGNsYXNzPVwiY29sLTEyXCJcclxuICAgIFtuZ0NsYXNzXT1cIltkaXNhYmxlbGFiZWwgPT09IGZhbHNlID8gICh0aGlzLmxhYmVsU2l6ZXMgfCB0b0NvbnRyb2xXaWR0aENzcykgOiAnJ11cIlxyXG4gID5cclxuICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtY29tcG9uZW50XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiYnRuLWdyb3VwXCJcclxuICAgICAgICAgICAgW2NsYXNzLmlzLWludmFsaWRdPVwiaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICAgY2xhc3M9XCJidG4gdXBsb2FkLWlucHV0IGN1c3RvbS1maWxlXCJcclxuICAgICAgICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwibWF4ZmlsZXMgPiAwICYmICB1cGxvYWRzLmxlbmd0aCA+PSBtYXhmaWxlc1wiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1zZWNvbmRhcnldPVwiIShpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKSlcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy5idG4tZGFuZ2VyXT1cImludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIDxpIFtjbGFzc109XCJJY29uQnJvd3NlXCIgY2xhc3M9XCJwZS0yXCI+PC9pPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidXBsb2FkLWJyb3dzZVwiPkJyb3dzZTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY3VzdG9tLWZpbGUtaW5wdXRcIlxyXG4gICAgICAgICAgICAgICAgI2ZpbGVzXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZmlsZXMudmFsdWUgPSAnJ1wiXHJcbiAgICAgICAgICAgICAgICAodXBsb2FkeFN0YXRlKT1cIm9uVXBsb2FkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgbXVsdGlwbGVcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJtYXhmaWxlcyA+IDAgJiYgIHVwbG9hZHMubGVuZ3RoID49IG1heGZpbGVzXCJcclxuICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4tZ3JvdXBcIj5cclxuICAgICAgICAgICAgICA8IS0tIGltYWdlLXByZXZpZXctY2xlYXIgYnV0dG9uIC0tPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJjYW5jZWxBbGwoKVwiXHJcbiAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJIYXNRdWV1ZUl0ZW0oKSA9PT0gZmFsc2UgPyAnZGlzYWJsZWQnIDogbnVsbFwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLXNlY29uZGFyeV09XCIhKGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpKVwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLWRhbmdlcl09XCJpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIkljb25EZWxldGVcIj48L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgKm5nSWY9XCIoYXV0b3VwbG9hZCA9PT0gZmFsc2UgJiYgZW5hYmxlcGF1c2UpIHx8IChhdXRvdXBsb2FkICYmIGVuYWJsZXBhdXNlICYmIElzUGF1c2VkKCkgPT09IGZhbHNlKVwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0blwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwicGF1c2VBbGwoKVwiXHJcbiAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJJc1VwbG9hZGluZygpID09PSBmYWxzZSA/ICdkaXNhYmxlZCcgOiBudWxsXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tc2Vjb25kYXJ5XT1cIiEoaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZCkpXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5idG4tZGFuZ2VyXT1cImludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiSWNvblBhdXNlXCI+PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICpuZ0lmPVwiYXV0b3VwbG9hZCAmJiBlbmFibGVwYXVzZSAmJiBJc1BhdXNlZCgpID09PSB0cnVlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ1cGxvYWRBbGwoKVwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLXNlY29uZGFyeV09XCIhKGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpKVwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3MuYnRuLWRhbmdlcl09XCJpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiXHJcbiAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIkljb25Db250aW51ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAqbmdJZj1cImF1dG91cGxvYWQgPT09IGZhbHNlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYnRuIHRleHQtbm93cmFwXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJ1cGxvYWRBbGwoKVwiXHJcbiAgICAgICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJJc1N0YXRlVG9VcGxvYWQoKSA9PT0gZmFsc2UgPyAgJ2Rpc2FibGVkJyA6IG51bGxcIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1zZWNvbmRhcnldPVwiIShpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKSlcIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzLmJ0bi1kYW5nZXJdPVwiaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIlxyXG4gICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJJY29uVXBsb2FkXCIgY2xhc3M9XCJwZS0yXCI+PC9zcGFuPiB7e1xyXG4gICAgICAgICAgICAgICAgbG5nUmVzb3VyY2VTZXJ2aWNlLkdldFN0cmluZygnVVBMT0FEX0JVVFRPTl9VUExPQUQnKSB8IGFzeW5jIH19XHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgICpuZ0lmPVwiaXNpbmxpbmVlcnJvcmVuYWJsZWQgJiYgaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImludmFsaWQtZmVlZGJhY2tcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyBHZXRFcnJvck1lc3NhZ2UoKSB8IGFzeW5jIH19XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBmaWxlIG9mIHVwbG9hZHNcIiBzdHlsZT1cIm1hcmdpbi10b3A6IDVweFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cCB1cGxvYWQtY29tcG9uZW50IHVwbG9hZC1tdWx0aXBsZVwiPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY29udHJvbCB1cGxvYWQtcHJvZ3Jlc3NcIlxyXG4gICAgICAgICAgICBbY2xhc3MuaXMtaW52YWxpZF09XCJpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwcm9ncmVzc1wiPlxyXG4gICAgICAgICAgICAgIDxkaXZcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwicHJvZ3Jlc3MtYmFyXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5wcm9ncmVzcy1iYXItc3VjY2Vzc109XCJmaWxlLnByb2dyZXNzPT09MTAwXCJcclxuICAgICAgICAgICAgICAgIHJvbGU9XCJwcm9ncmVzc2JhclwiXHJcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLXZhbHVlbm93XT1cImZpbGUucHJvZ3Jlc3NcIlxyXG4gICAgICAgICAgICAgICAgYXJpYS12YWx1ZW1pbj1cIjBcIlxyXG4gICAgICAgICAgICAgICAgYXJpYS12YWx1ZW1heD1cIjEwMFwiXHJcbiAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGguJV09XCJmaWxlLnByb2dyZXNzXCJcclxuICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInByb2dyZXNzLXRleHQgdGV4dC1kYXJrXCI+e3sgZmlsZS5uYW1lIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgY2xhc3M9XCJidG5cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiY2FuY2VsKGZpbGUudXBsb2FkSWQpXCJcclxuICAgICAgICAgICAgW2NsYXNzLmJ0bi1zZWNvbmRhcnldPVwiIShpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKSlcIlxyXG4gICAgICAgICAgICBbY2xhc3MuYnRuLWRhbmdlcl09XCJpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJJY29uRGVsZXRlXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICpuZ0lmPVwiKGF1dG91cGxvYWQgPT09IGZhbHNlICYmIGVuYWJsZXBhdXNlKSB8fCAoYXV0b3VwbG9hZCAmJiBlbmFibGVwYXVzZSAmJiBmaWxlLnN0YXR1cyAhPT0gJ3BhdXNlZCcpXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJidG5cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwicGF1c2UoZmlsZS51cGxvYWRJZClcIlxyXG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJmaWxlLnN0YXR1cyAhPT0gJ3VwbG9hZGluZycgPyAnZGlzYWJsZWQnIDogbnVsbFwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5idG4tc2Vjb25kYXJ5XT1cIiEoaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZCkpXCJcclxuICAgICAgICAgICAgW2NsYXNzLmJ0bi1kYW5nZXJdPVwiaW52YWxpZCAmJiAoZGlydHkgfHwgdG91Y2hlZClcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgICA8c3BhbiBbY2xhc3NdPVwiSWNvblBhdXNlXCI+PC9zcGFuPlxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICpuZ0lmPVwiYXV0b3VwbG9hZCAmJiBlbmFibGVwYXVzZSAmJiBmaWxlLnN0YXR1cyA9PT0gJ3BhdXNlZCdcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImJ0blwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJ1cGxvYWQoZmlsZS51cGxvYWRJZClcIlxyXG4gICAgICAgICAgICBbY2xhc3MuYnRuLXNlY29uZGFyeV09XCIhKGludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpKVwiXHJcbiAgICAgICAgICAgIFtjbGFzcy5idG4tZGFuZ2VyXT1cImludmFsaWQgJiYgKGRpcnR5IHx8IHRvdWNoZWQpXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW4gW2NsYXNzXT1cIkljb25Db250aW51ZVwiPjwvc3Bhbj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAqbmdJZj1cImF1dG91cGxvYWQgPT09IGZhbHNlXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJidG4gdGV4dC1ub3dyYXBcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwidXBsb2FkKGZpbGUudXBsb2FkSWQpXCJcclxuICAgICAgICAgICAgW2F0dHIuZGlzYWJsZWRdPVwiZmlsZS5zdGF0dXMgIT09ICdhZGRlZCcgJiYgZmlsZS5zdGF0dXMgIT09ICdwYXVzZWQnID8gICdkaXNhYmxlZCcgOiBudWxsXCJcclxuICAgICAgICAgICAgW2NsYXNzLmJ0bi1zZWNvbmRhcnldPVwiIShpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKSlcIlxyXG4gICAgICAgICAgICBbY2xhc3MuYnRuLWRhbmdlcl09XCJpbnZhbGlkICYmIChkaXJ0eSB8fCB0b3VjaGVkKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuIFtjbGFzc109XCJJY29uVXBsb2FkXCIgY2xhc3M9XCJwZS0yXCI+PC9zcGFuPnt7XHJcbiAgICAgICAgICAgIGxuZ1Jlc291cmNlU2VydmljZS5HZXRTdHJpbmcoJ1VQTE9BRF9CVVRUT05fVVBMT0FEJykgfCBhc3luYyB9fVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|