@dbg-riskit/angular-file 9999.9999.9999-rc.12148 → 9999.9999.9999-rc.1561179
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/esm2022/lib/abstract.file.download.directive.mjs +139 -0
- package/esm2022/lib/abstract.file.upload.component.mjs +100 -0
- package/{esm2020 → esm2022}/lib/binary.file.upload.component.mjs +8 -8
- package/esm2022/lib/binary.file.upload.service.mjs +41 -0
- package/esm2022/lib/csv.file.download.directive.mjs +83 -0
- package/esm2022/lib/csv.file.upload.component.mjs +47 -0
- package/esm2022/lib/csv.file.upload.service.mjs +109 -0
- package/{esm2020 → esm2022}/lib/download.menu.component.mjs +9 -9
- package/esm2022/lib/file.download.directive.mjs +53 -0
- package/esm2022/lib/file.module.mjs +76 -0
- package/esm2022/lib/file.size.pipe.mjs +34 -0
- package/{esm2020 → esm2022}/lib/text.file.upload.component.mjs +8 -8
- package/esm2022/lib/text.file.upload.service.mjs +41 -0
- package/{fesm2015 → fesm2022}/dbg-riskit-angular-file.mjs +111 -95
- package/fesm2022/dbg-riskit-angular-file.mjs.map +1 -0
- package/lib/abstract.file.download.directive.d.ts +1 -1
- package/lib/abstract.file.upload.component.d.ts +6 -3
- package/lib/binary.file.upload.component.d.ts +1 -1
- package/lib/csv.file.download.directive.d.ts +1 -1
- package/lib/csv.file.upload.component.d.ts +1 -1
- package/lib/csv.file.upload.service.d.ts +1 -1
- package/lib/download.menu.component.d.ts +1 -1
- package/lib/file.download.directive.d.ts +2 -2
- package/lib/file.size.pipe.d.ts +1 -1
- package/lib/file.types.d.ts +2 -2
- package/lib/text.file.upload.component.d.ts +1 -1
- package/package.json +16 -22
- package/esm2020/lib/abstract.file.download.directive.mjs +0 -139
- package/esm2020/lib/abstract.file.upload.component.mjs +0 -84
- package/esm2020/lib/binary.file.upload.service.mjs +0 -41
- package/esm2020/lib/csv.file.download.directive.mjs +0 -83
- package/esm2020/lib/csv.file.upload.component.mjs +0 -47
- package/esm2020/lib/csv.file.upload.service.mjs +0 -108
- package/esm2020/lib/file.download.directive.mjs +0 -53
- package/esm2020/lib/file.module.mjs +0 -78
- package/esm2020/lib/file.size.pipe.mjs +0 -34
- package/esm2020/lib/text.file.upload.service.mjs +0 -41
- package/fesm2015/dbg-riskit-angular-file.mjs.map +0 -1
- package/fesm2020/dbg-riskit-angular-file.mjs +0 -727
- package/fesm2020/dbg-riskit-angular-file.mjs.map +0 -1
- /package/{esm2020 → esm2022}/dbg-riskit-angular-file.mjs +0 -0
- /package/{esm2020 → esm2022}/lib/file.types.mjs +0 -0
- /package/{esm2020 → esm2022}/public_api.mjs +0 -0
- /package/{dbg-riskit-angular-file.d.ts → index.d.ts} +0 -0
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import { BaseComponent } from '@dbg-riskit/angular-view';
|
|
3
|
+
import { isEventObject, ObservableEventType } from '@dbg-riskit/common';
|
|
4
|
+
import { saveAs } from 'file-saver';
|
|
5
|
+
import { EMPTY, Observable, of, Subject } from 'rxjs';
|
|
6
|
+
import { catchError, filter, finalize, map, take, takeUntil, tap } from 'rxjs/operators';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@dbg-riskit/angular-view";
|
|
9
|
+
import * as i2 from "./file.size.pipe";
|
|
10
|
+
import * as i3 from "@dbg-riskit/common";
|
|
11
|
+
export class AbstractFileDownloadDirective extends BaseComponent {
|
|
12
|
+
constructor(elementRef, dialogService, fileSizePipe, logger) {
|
|
13
|
+
super();
|
|
14
|
+
this.elementRef = elementRef;
|
|
15
|
+
this.dialogService = dialogService;
|
|
16
|
+
this.fileSizePipe = fileSizePipe;
|
|
17
|
+
this.logger = logger;
|
|
18
|
+
}
|
|
19
|
+
isDisabled() {
|
|
20
|
+
if (this.elementRef.nativeElement.disabled === true) {
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
if (this.disabled == null) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
switch (typeof this.disabled) {
|
|
27
|
+
case 'boolean':
|
|
28
|
+
return this.disabled;
|
|
29
|
+
case 'string':
|
|
30
|
+
return this.disabled.toLowerCase() === 'disabled' || this.disabled.toLowerCase() === 'true';
|
|
31
|
+
}
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
download() {
|
|
35
|
+
if (this.isDisabled()) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
if (this.data == null) {
|
|
39
|
+
this.logger.error(new Error('No data provided for download!'));
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
42
|
+
this.getDataObservable(this.data).pipe(takeUntil(this.destroyed), take(1), map((data) => this.mapToFile(data))).subscribe((file) => this.store(file));
|
|
43
|
+
}
|
|
44
|
+
store(file) {
|
|
45
|
+
setTimeout(() => {
|
|
46
|
+
saveAs(file.content, file.filename || 'data.txt');
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
getDataObservable(data) {
|
|
50
|
+
if (!(data instanceof Observable)) {
|
|
51
|
+
return of(data);
|
|
52
|
+
}
|
|
53
|
+
return this.downloadWithProgress(data);
|
|
54
|
+
}
|
|
55
|
+
downloadWithProgress(observableWithProgress) {
|
|
56
|
+
const canceled = new Subject();
|
|
57
|
+
let dialog;
|
|
58
|
+
return observableWithProgress.pipe(takeUntil(canceled), takeUntil(this.destroyed), tap((event) => {
|
|
59
|
+
dialog = this.updateProgress(event, dialog, canceled);
|
|
60
|
+
}), filter((event) => !isEventObject(event)
|
|
61
|
+
|| event.type === ObservableEventType.Result), map((event) => {
|
|
62
|
+
if (isEventObject(event)) {
|
|
63
|
+
const resultEvent = event;
|
|
64
|
+
return resultEvent.result;
|
|
65
|
+
}
|
|
66
|
+
return event;
|
|
67
|
+
}), catchError((err) => this.processError(err)), finalize(() => {
|
|
68
|
+
if (dialog != null) {
|
|
69
|
+
dialog.close();
|
|
70
|
+
}
|
|
71
|
+
}));
|
|
72
|
+
}
|
|
73
|
+
updateProgress(event, dialog, canceledSubject) {
|
|
74
|
+
if (isEventObject(event) && event.type === ObservableEventType.Progress) {
|
|
75
|
+
const progressEvent = event;
|
|
76
|
+
if (dialog == null) {
|
|
77
|
+
dialog = this.dialogService.showProgressLoaderDialog({
|
|
78
|
+
title: 'Downloading file...',
|
|
79
|
+
cancel: () => {
|
|
80
|
+
canceledSubject.next();
|
|
81
|
+
canceledSubject.complete();
|
|
82
|
+
},
|
|
83
|
+
valueFormatter: this.fileSizePipe
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
dialog.value = progressEvent.current;
|
|
87
|
+
dialog.total = progressEvent.total;
|
|
88
|
+
}
|
|
89
|
+
return dialog;
|
|
90
|
+
}
|
|
91
|
+
processError(err) {
|
|
92
|
+
let title = 'Failed to download file:';
|
|
93
|
+
let message;
|
|
94
|
+
if ('errorType' in err) {
|
|
95
|
+
const errorMessage = err;
|
|
96
|
+
switch (errorMessage.status) {
|
|
97
|
+
case 401:
|
|
98
|
+
case 403:
|
|
99
|
+
message = 'You are not authorized to download this file.';
|
|
100
|
+
break;
|
|
101
|
+
case 404:
|
|
102
|
+
message = 'File not found.';
|
|
103
|
+
break;
|
|
104
|
+
default:
|
|
105
|
+
message = errorMessage.message;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
if ('message' in err) {
|
|
110
|
+
message = err.message;
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
message = 'Failed to download file.';
|
|
114
|
+
title = undefined;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
this.dialogService.showMessageDialog({
|
|
118
|
+
dialogType: 'error',
|
|
119
|
+
icon: 'cloud_off',
|
|
120
|
+
title,
|
|
121
|
+
message
|
|
122
|
+
});
|
|
123
|
+
return EMPTY;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Blob constructor for testing purposes.
|
|
127
|
+
*/
|
|
128
|
+
createBlob(data, contentType) {
|
|
129
|
+
return new Blob(data, contentType);
|
|
130
|
+
}
|
|
131
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractFileDownloadDirective, deps: [{ token: i0.ElementRef }, { token: i1.DialogService }, { token: i2.FileSizePipe }, { token: i3.Logger }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
132
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: AbstractFileDownloadDirective, inputs: { disabled: "disabled" }, usesInheritance: true, ngImport: i0 }); }
|
|
133
|
+
}
|
|
134
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractFileDownloadDirective, decorators: [{
|
|
135
|
+
type: Directive
|
|
136
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.DialogService }, { type: i2.FileSizePipe }, { type: i3.Logger }], propDecorators: { disabled: [{
|
|
137
|
+
type: Input
|
|
138
|
+
}] } });
|
|
139
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QuZmlsZS5kb3dubG9hZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLWZpbGUvc3JjL2xpYi9hYnN0cmFjdC5maWxlLmRvd25sb2FkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUMsYUFBYSxFQUF5QyxNQUFNLDBCQUEwQixDQUFDO0FBQy9GLE9BQU8sRUFHSCxhQUFhLEVBR2IsbUJBQW1CLEVBSXRCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLFlBQVksQ0FBQztBQUNsQyxPQUFPLEVBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFJdkYsTUFBTSxPQUFnQiw2QkFBaUMsU0FBUSxhQUFhO0lBU3hFLFlBQW9DLFVBQXNCLEVBQ3RCLGFBQTRCLEVBQzVCLFlBQTBCLEVBQzFCLE1BQWM7UUFDOUMsS0FBSyxFQUFFLENBQUM7UUFKd0IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBRWxELENBQUM7SUFFTyxVQUFVO1FBQ2QsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDbEQsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztR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RUFBRSxDQUFDO2dCQUMxQixLQUFLLEdBQUcsQ0FBQztnQkFDVCxLQUFLLEdBQUc7b0JBQ0osT0FBTyxHQUFHLCtDQUErQyxDQUFDO29CQUMxRCxNQUFNO2dCQUNWLEtBQUssR0FBRztvQkFDSixPQUFPLEdBQUcsaUJBQWlCLENBQUM7b0JBQzVCLE1BQU07Z0JBQ1Y7b0JBQ0ksT0FBTyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUM7WUFDdkMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxTQUFTLElBQUksR0FBRyxFQUFFLENBQUM7Z0JBQ25CLE9BQU8sR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO1lBQzFCLENBQUM7aUJBQU0sQ0FBQztnQkFDSixPQUFPLEdBQUcsMEJBQTBCLENBQUM7Z0JBQ3JDLEtBQUssR0FBRyxTQUFTLENBQUM7WUFDdEIsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDO1lBQ2pDLFVBQVUsRUFBRSxPQUFPO1lBQ25CLElBQUksRUFBUSxXQUFXO1lBQ3ZCLEtBQUs7WUFDTCxPQUFPO1NBQ1YsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksVUFBVSxDQUFDLElBQWdCLEVBQUUsV0FBNkI7UUFDN0QsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDdkMsQ0FBQzsrR0FqS2lCLDZCQUE2QjttR0FBN0IsNkJBQTZCOzs0RkFBN0IsNkJBQTZCO2tCQURsRCxTQUFTOzJKQUlDLFFBQVE7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Jhc2VDb21wb25lbnQsIERpYWxvZ1NlcnZpY2UsIFByb2dyZXNzTG9hZGVyQ29tcG9uZW50fSBmcm9tICdAZGJnLXJpc2tpdC9hbmd1bGFyLXZpZXcnO1xuaW1wb3J0IHtcbiAgICBFcnJvck1lc3NhZ2UsXG4gICAgRmlsZVdpdGhDb250ZW50LFxuICAgIGlzRXZlbnRPYmplY3QsXG4gICAgTG9nZ2VyLFxuICAgIE9ic2VydmFibGVFdmVudCxcbiAgICBPYnNlcnZhYmxlRXZlbnRUeXBlLFxuICAgIE9ic2VydmFibGVXaXRoUHJvZ3Jlc3MsXG4gICAgUHJvZ3Jlc3NFdmVudCxcbiAgICBSZXN1bHRFdmVudFxufSBmcm9tICdAZGJnLXJpc2tpdC9jb21tb24nO1xuaW1wb3J0IHtzYXZlQXN9IGZyb20gJ2ZpbGUtc2F2ZXInO1xuaW1wb3J0IHtFTVBUWSwgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBmaWx0ZXIsIGZpbmFsaXplLCBtYXAsIHRha2UsIHRha2VVbnRpbCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0ZpbGVTaXplUGlwZX0gZnJvbSAnLi9maWxlLnNpemUucGlwZSc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RmlsZURvd25sb2FkRGlyZWN0aXZlPFQ+IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNhYmxlZD86IGJvb2xlYW4gfCBzdHJpbmc7XG5cbiAgICBwdWJsaWMgZGF0YT86IE9ic2VydmFibGVXaXRoUHJvZ3Jlc3M8VD5cbiAgICAgICAgfCBPYnNlcnZhYmxlPFQ+XG4gICAgICAgIHwgVDtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgICAgICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmaWxlU2l6ZVBpcGU6IEZpbGVTaXplUGlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IExvZ2dlcikge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmRpc2FibGVkID09PSB0cnVlKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAodHlwZW9mIHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIGNhc2UgJ2Jvb2xlYW4nOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkO1xuICAgICAgICAgICAgY2FzZSAnc3RyaW5nJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZC50b0xvd2VyQ2FzZSgpID09PSAnZGlzYWJsZWQnIHx8IHRoaXMuZGlzYWJsZWQudG9Mb3dlckNhc2UoKSA9PT0gJ3RydWUnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHB1YmxpYyBkb3dubG9hZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEaXNhYmxlZCgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kYXRhID09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKG5ldyBFcnJvcignTm8gZGF0YSBwcm92aWRlZCBmb3IgZG93bmxvYWQhJykpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5nZXREYXRhT2JzZXJ2YWJsZSh0aGlzLmRhdGEpLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpLFxuICAgICAgICAgICAgdGFrZSgxKSxcbiAgICAgICAgICAgIG1hcCgoZGF0YTogVCkgPT4gdGhpcy5tYXBUb0ZpbGUoZGF0YSkpXG4gICAgICAgICkuc3Vic2NyaWJlKChmaWxlKSA9PiB0aGlzLnN0b3JlKGZpbGUpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgbWFwVG9GaWxlKGRhdGE6IFQpOiBGaWxlV2l0aENvbnRlbnQ7XG5cbiAgICBwcml2YXRlIHN0b3JlKGZpbGU6IEZpbGVXaXRoQ29udGVudCkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHNhdmVBcyhmaWxlLmNvbnRlbnQsIGZpbGUuZmlsZW5hbWUgfHwgJ2RhdGEudHh0Jyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGF0YU9ic2VydmFibGUoXG4gICAgICAgIGRhdGE6IE9ic2VydmFibGVXaXRoUHJvZ3Jlc3M8VD5cbiAgICAgICAgICAgIHwgT2JzZXJ2YWJsZTxUPlxuICAgICAgICAgICAgfCBUXG4gICAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIGlmICghKGRhdGEgaW5zdGFuY2VvZiBPYnNlcnZhYmxlKSkge1xuICAgICAgICAgICAgcmV0dXJuIG9mKGRhdGEpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZG93bmxvYWRXaXRoUHJvZ3Jlc3MoZGF0YSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBkb3dubG9hZFdpdGhQcm9ncmVzcyhcbiAgICAgICAgb2JzZXJ2YWJsZVdpdGhQcm9ncmVzczogT2JzZXJ2YWJsZTxUIHwgT2JzZXJ2YWJsZUV2ZW50PFQ+PlxuICAgICk6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICBjb25zdCBjYW5jZWxlZCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgICAgIGxldCBkaWFsb2c6IFByb2dyZXNzTG9hZGVyQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuXG4gICAgICAgIHJldHVybiBvYnNlcnZhYmxlV2l0aFByb2dyZXNzLnBpcGUoXG4gICAgICAgICAgICB0YWtlVW50aWwoY2FuY2VsZWQpLFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSxcbiAgICAgICAgICAgIHRhcCgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBkaWFsb2cgPSB0aGlzLnVwZGF0ZVByb2dyZXNzKGV2ZW50LCBkaWFsb2csIGNhbmNlbGVkKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgZmlsdGVyKChldmVudCkgPT4gIWlzRXZlbnRPYmplY3QoZXZlbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCAoZXZlbnQgYXMgT2JzZXJ2YWJsZUV2ZW50PFQ+KS50eXBlID09PSBPYnNlcnZhYmxlRXZlbnRUeXBlLlJlc3VsdCksXG4gICAgICAgICAgICBtYXAoKGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGlzRXZlbnRPYmplY3QoZXZlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdEV2ZW50ID0gZXZlbnQgYXMgUmVzdWx0RXZlbnQ8VD47XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHRFdmVudC5yZXN1bHQ7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBldmVudCBhcyBUO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBjYXRjaEVycm9yKChlcnIpID0+IHRoaXMucHJvY2Vzc0Vycm9yKGVycikpLFxuICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChkaWFsb2cgIT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBkaWFsb2cuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUHJvZ3Jlc3MoZXZlbnQ6IFQgfCBPYnNlcnZhYmxlRXZlbnQ8VD4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBkaWFsb2c6IFByb2dyZXNzTG9hZGVyQ29tcG9uZW50IHwgdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FuY2VsZWRTdWJqZWN0OiBTdWJqZWN0PHZvaWQ+KSB7XG4gICAgICAgIGlmIChpc0V2ZW50T2JqZWN0KGV2ZW50KSAmJiAoZXZlbnQgYXMgT2JzZXJ2YWJsZUV2ZW50PFQ+KS50eXBlID09PSBPYnNlcnZhYmxlRXZlbnRUeXBlLlByb2dyZXNzKSB7XG4gICAgICAgICAgICBjb25zdCBwcm9ncmVzc0V2ZW50ID0gZXZlbnQgYXMgUHJvZ3Jlc3NFdmVudDtcbiAgICAgICAgICAgIGlmIChkaWFsb2cgPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIGRpYWxvZyA9IHRoaXMuZGlhbG9nU2VydmljZS5zaG93UHJvZ3Jlc3NMb2FkZXJEaWFsb2coe1xuICAgICAgICAgICAgICAgICAgICB0aXRsZSAgICAgICAgIDogJ0Rvd25sb2FkaW5nIGZpbGUuLi4nLFxuICAgICAgICAgICAgICAgICAgICBjYW5jZWwgICAgICAgIDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FuY2VsZWRTdWJqZWN0Lm5leHQoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhbmNlbGVkU3ViamVjdC5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZUZvcm1hdHRlcjogdGhpcy5maWxlU2l6ZVBpcGVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRpYWxvZy52YWx1ZSA9IHByb2dyZXNzRXZlbnQuY3VycmVudDtcbiAgICAgICAgICAgIGRpYWxvZy50b3RhbCA9IHByb2dyZXNzRXZlbnQudG90YWw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRpYWxvZztcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NFcnJvcihlcnI6IEVycm9yTWVzc2FnZSB8IG9iamVjdCkge1xuICAgICAgICBsZXQgdGl0bGU6IHN0cmluZyB8IHVuZGVmaW5lZCA9ICdGYWlsZWQgdG8gZG93bmxvYWQgZmlsZTonO1xuICAgICAgICBsZXQgbWVzc2FnZTtcbiAgICAgICAgaWYgKCdlcnJvclR5cGUnIGluIChlcnIgYXMgRXJyb3JNZXNzYWdlKSkge1xuICAgICAgICAgICAgY29uc3QgZXJyb3JNZXNzYWdlOiBFcnJvck1lc3NhZ2UgPSBlcnIgYXMgRXJyb3JNZXNzYWdlO1xuICAgICAgICAgICAgc3dpdGNoIChlcnJvck1lc3NhZ2Uuc3RhdHVzKSB7XG4gICAgICAgICAgICAgICAgY2FzZSA0MDE6XG4gICAgICAgICAgICAgICAgY2FzZSA0MDM6XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnWW91IGFyZSBub3QgYXV0aG9yaXplZCB0byBkb3dubG9hZCB0aGlzIGZpbGUuJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSA0MDQ6XG4gICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnRmlsZSBub3QgZm91bmQuJztcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9IGVycm9yTWVzc2FnZS5tZXNzYWdlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKCdtZXNzYWdlJyBpbiBlcnIpIHtcbiAgICAgICAgICAgICAgICBtZXNzYWdlID0gZXJyLm1lc3NhZ2U7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSAnRmFpbGVkIHRvIGRvd25sb2FkIGZpbGUuJztcbiAgICAgICAgICAgICAgICB0aXRsZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRpYWxvZ1NlcnZpY2Uuc2hvd01lc3NhZ2VEaWFsb2coe1xuICAgICAgICAgICAgZGlhbG9nVHlwZTogJ2Vycm9yJyxcbiAgICAgICAgICAgIGljb24gICAgICA6ICdjbG91ZF9vZmYnLFxuICAgICAgICAgICAgdGl0bGUsXG4gICAgICAgICAgICBtZXNzYWdlXG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gRU1QVFk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQmxvYiBjb25zdHJ1Y3RvciBmb3IgdGVzdGluZyBwdXJwb3Nlcy5cbiAgICAgKi9cbiAgICBwdWJsaWMgY3JlYXRlQmxvYihkYXRhOiBCbG9iUGFydFtdLCBjb250ZW50VHlwZT86IEJsb2JQcm9wZXJ0eUJhZykge1xuICAgICAgICByZXR1cm4gbmV3IEJsb2IoZGF0YSwgY29udGVudFR5cGUpO1xuICAgIH1cbn1cblxuXG4iXX0=
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { Directive, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import { MatAnchor } from '@angular/material/button';
|
|
3
|
+
import { BaseComponent } from '@dbg-riskit/angular-view';
|
|
4
|
+
import { ErrorType, toString } from '@dbg-riskit/common';
|
|
5
|
+
import { first, takeUntil } from 'rxjs/operators';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class AbstractFileUploadComponent extends BaseComponent {
|
|
8
|
+
constructor(renderer) {
|
|
9
|
+
super();
|
|
10
|
+
this.renderer = renderer;
|
|
11
|
+
this.error = new EventEmitter(true);
|
|
12
|
+
this.multiple = true;
|
|
13
|
+
this.filesLoaded = new EventEmitter(true);
|
|
14
|
+
this.offset = 0;
|
|
15
|
+
this.fileInputHidden = false;
|
|
16
|
+
this.raised = true;
|
|
17
|
+
this.color = 'primary';
|
|
18
|
+
this.disabled = false;
|
|
19
|
+
}
|
|
20
|
+
ngAfterViewInit() {
|
|
21
|
+
this.offset = this.wrapper.nativeElement.getBoundingClientRect().left
|
|
22
|
+
- this.anchor.nativeElement.getBoundingClientRect().left
|
|
23
|
+
+ (this.wrapper.nativeElement.getBoundingClientRect().width / 2);
|
|
24
|
+
}
|
|
25
|
+
move(event) {
|
|
26
|
+
if (this.fileInput && event.target !== this.fileInput.nativeElement && this.anchor) {
|
|
27
|
+
const diff = event.target?.getBoundingClientRect().left
|
|
28
|
+
- event.currentTarget?.getBoundingClientRect().left
|
|
29
|
+
- this.offset;
|
|
30
|
+
this.renderer.setStyle(this.wrapper.nativeElement, 'left', `${event.offsetX + diff}px`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
handleFiles(fileList) {
|
|
34
|
+
// Check for the various File API support.
|
|
35
|
+
if ('FileReader' in window) {
|
|
36
|
+
this.readFiles(fileList).pipe(takeUntil(this.destroyed), first()).subscribe({
|
|
37
|
+
next: (files) => {
|
|
38
|
+
this.filesLoaded.emit(files);
|
|
39
|
+
this.resetInputField();
|
|
40
|
+
},
|
|
41
|
+
error: (error) => {
|
|
42
|
+
this.error.emit({
|
|
43
|
+
message: toString(error),
|
|
44
|
+
errorType: ErrorType.ERROR,
|
|
45
|
+
status: 0
|
|
46
|
+
});
|
|
47
|
+
this.resetInputField();
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
this.error.emit({
|
|
53
|
+
message: 'FileReader is not supported in your browser! A newer browser (IE 11+, Chrome 50+, '
|
|
54
|
+
+ 'FireFox 50+, Safari 9+) is required to use this application.',
|
|
55
|
+
errorType: ErrorType.ERROR,
|
|
56
|
+
status: 0
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// Hide and show the input field to reset the selection
|
|
61
|
+
resetInputField() {
|
|
62
|
+
this.fileInputHidden = true;
|
|
63
|
+
setTimeout(() => {
|
|
64
|
+
this.fileInputHidden = false;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractFileUploadComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
68
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: AbstractFileUploadComponent, inputs: { label: "label", accept: "accept", multiple: "multiple", raised: "raised", color: "color", icon: "icon", disabled: "disabled" }, outputs: { error: "error", filesLoaded: "filesLoaded" }, viewQueries: [{ propertyName: "anchor", first: true, predicate: MatAnchor, descendants: true, read: ElementRef }, { propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true }], usesInheritance: true, ngImport: i0 }); }
|
|
69
|
+
}
|
|
70
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractFileUploadComponent, decorators: [{
|
|
71
|
+
type: Directive
|
|
72
|
+
}], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { error: [{
|
|
73
|
+
type: Output
|
|
74
|
+
}], label: [{
|
|
75
|
+
type: Input
|
|
76
|
+
}], accept: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}], multiple: [{
|
|
79
|
+
type: Input
|
|
80
|
+
}], filesLoaded: [{
|
|
81
|
+
type: Output
|
|
82
|
+
}], anchor: [{
|
|
83
|
+
type: ViewChild,
|
|
84
|
+
args: [MatAnchor, { read: ElementRef }]
|
|
85
|
+
}], fileInput: [{
|
|
86
|
+
type: ViewChild,
|
|
87
|
+
args: ['fileInput']
|
|
88
|
+
}], wrapper: [{
|
|
89
|
+
type: ViewChild,
|
|
90
|
+
args: ['wrapper']
|
|
91
|
+
}], raised: [{
|
|
92
|
+
type: Input
|
|
93
|
+
}], color: [{
|
|
94
|
+
type: Input
|
|
95
|
+
}], icon: [{
|
|
96
|
+
type: Input
|
|
97
|
+
}], disabled: [{
|
|
98
|
+
type: Input
|
|
99
|
+
}] } });
|
|
100
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QuZmlsZS51cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvYW5ndWxhci1maWxlL3NyYy9saWIvYWJzdHJhY3QuZmlsZS51cGxvYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdEgsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBRW5ELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQWUsU0FBUyxFQUFFLFFBQVEsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRXJFLE9BQU8sRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBSWhELE1BQU0sT0FBZ0IsMkJBQTZDLFNBQVEsYUFBYTtJQTBDcEYsWUFBdUMsUUFBbUI7UUFDdEQsS0FBSyxFQUFFLENBQUM7UUFEMkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQXZDMUMsVUFBSyxHQUFHLElBQUksWUFBWSxDQUFlLElBQUksQ0FBQyxDQUFDO1FBU3RELGFBQVEsR0FBRyxJQUFJLENBQUM7UUFHUCxnQkFBVyxHQUFHLElBQUksWUFBWSxDQUFNLElBQUksQ0FBQyxDQUFDO1FBV2xELFdBQU0sR0FBVyxDQUFDLENBQUM7UUFFcEIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFHeEIsV0FBTSxHQUFHLElBQUksQ0FBQztRQUdkLFVBQUssR0FBa0IsU0FBUyxDQUFDO1FBTWpDLGFBQVEsR0FBRyxLQUFLLENBQUM7SUFJeEIsQ0FBQztJQUVNLGVBQWU7UUFDbEIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsT0FBUSxDQUFDLGFBQWEs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O2dCQVFiLE1BQU07c0JBRFosS0FBSztnQkFJQyxLQUFLO3NCQURYLEtBQUs7Z0JBSUMsSUFBSTtzQkFEVixLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFJlbmRlcmVyMiwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TWF0QW5jaG9yfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHtNYXRDb2xvclRoZW1lfSBmcm9tICdAZGJnLXJpc2tpdC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQge0Jhc2VDb21wb25lbnR9IGZyb20gJ0BkYmctcmlza2l0L2FuZ3VsYXItdmlldyc7XG5pbXBvcnQge0Vycm9yTWVzc2FnZSwgRXJyb3JUeXBlLCB0b1N0cmluZ30gZnJvbSAnQGRiZy1yaXNraXQvY29tbW9uJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpcnN0LCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7SUZpbGV9IGZyb20gJy4vZmlsZS50eXBlcyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RmlsZVVwbG9hZENvbXBvbmVudDxUIGV4dGVuZHMgSUZpbGU+IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIHJlYWRvbmx5IGVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxFcnJvck1lc3NhZ2U+KHRydWUpO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbGFiZWw/OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBhY2NlcHQ/OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtdWx0aXBsZSA9IHRydWU7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVhZG9ubHkgZmlsZXNMb2FkZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFRbXT4odHJ1ZSk7XG5cbiAgICBAVmlld0NoaWxkKE1hdEFuY2hvciwge3JlYWQ6IEVsZW1lbnRSZWZ9KVxuICAgIHB1YmxpYyBhbmNob3I/OiBFbGVtZW50UmVmO1xuXG4gICAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JylcbiAgICBwdWJsaWMgZmlsZUlucHV0PzogRWxlbWVudFJlZjtcblxuICAgIEBWaWV3Q2hpbGQoJ3dyYXBwZXInKVxuICAgIHB1YmxpYyB3cmFwcGVyPzogRWxlbWVudFJlZjtcblxuICAgIHByaXZhdGUgb2Zmc2V0OiBudW1iZXIgPSAwO1xuXG4gICAgcHVibGljIGZpbGVJbnB1dEhpZGRlbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgcmFpc2VkID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbG9yOiBNYXRDb2xvclRoZW1lID0gJ3ByaW1hcnknO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWNvbj86IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vZmZzZXQgPSB0aGlzLndyYXBwZXIhLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdFxuICAgICAgICAgICAgICAgICAgICAgIC0gdGhpcy5hbmNob3IhLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdFxuICAgICAgICAgICAgICAgICAgICAgICsgKHRoaXMud3JhcHBlciEubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aCAvIDIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBtb3ZlKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmZpbGVJbnB1dCAmJiBldmVudC50YXJnZXQgIT09IHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQgJiYgdGhpcy5hbmNob3IpIHtcbiAgICAgICAgICAgIGNvbnN0IGRpZmYgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkubGVmdFxuICAgICAgICAgICAgICAgICAgICAgICAgIC0gKGV2ZW50LmN1cnJlbnRUYXJnZXQgYXMgSFRNTEVsZW1lbnQpPy5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0XG4gICAgICAgICAgICAgICAgICAgICAgICAgLSB0aGlzLm9mZnNldDtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy53cmFwcGVyIS5uYXRpdmVFbGVtZW50LCAnbGVmdCcsIGAke2V2ZW50Lm9mZnNldFggKyBkaWZmfXB4YCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlRmlsZXMoZmlsZUxpc3Q6IEZpbGVMaXN0KSB7XG4gICAgICAgIC8vIENoZWNrIGZvciB0aGUgdmFyaW91cyBGaWxlIEFQSSBzdXBwb3J0LlxuICAgICAgICBpZiAoJ0ZpbGVSZWFkZXInIGluIHdpbmRvdykge1xuICAgICAgICAgICAgdGhpcy5yZWFkRmlsZXMoZmlsZUxpc3QpLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSxcbiAgICAgICAgICAgICAgICBmaXJzdCgpXG4gICAgICAgICAgICApLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dCA6IChmaWxlczogVFtdKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmlsZXNMb2FkZWQuZW1pdChmaWxlcyk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXRJbnB1dEZpZWxkKCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBlcnJvcjogKGVycm9yOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lcnJvci5lbWl0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgIDogdG9TdHJpbmcoZXJyb3IpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JUeXBlOiBFcnJvclR5cGUuRVJST1IsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgICA6IDBcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXRJbnB1dEZpZWxkKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVycm9yLmVtaXQoe1xuICAgICAgICAgICAgICAgIG1lc3NhZ2UgIDogJ0ZpbGVSZWFkZXIgaXMgbm90IHN1cHBvcnRlZCBpbiB5b3VyIGJyb3dzZXIhIEEgbmV3ZXIgYnJvd3NlciAoSUUgMTErLCBDaHJvbWUgNTArLCAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICArICdGaXJlRm94IDUwKywgU2FmYXJpIDkrKSBpcyByZXF1aXJlZCB0byB1c2UgdGhpcyBhcHBsaWNhdGlvbi4nLFxuICAgICAgICAgICAgICAgIGVycm9yVHlwZTogRXJyb3JUeXBlLkVSUk9SLFxuICAgICAgICAgICAgICAgIHN0YXR1cyAgIDogMFxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgYWJzdHJhY3QgcmVhZEZpbGVzKGZpbGVMaXN0OiBGaWxlTGlzdCk6IE9ic2VydmFibGU8VFtdPjtcblxuICAgIC8vIEhpZGUgYW5kIHNob3cgdGhlIGlucHV0IGZpZWxkIHRvIHJlc2V0IHRoZSBzZWxlY3Rpb25cbiAgICBwcml2YXRlIHJlc2V0SW5wdXRGaWVsZCgpIHtcbiAgICAgICAgdGhpcy5maWxlSW5wdXRIaWRkZW4gPSB0cnVlO1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmlsZUlucHV0SGlkZGVuID0gZmFsc2U7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -2,9 +2,9 @@ import { ChangeDetectionStrategy, Component } from '@angular/core';
|
|
|
2
2
|
import { AbstractFileUploadComponent } from './abstract.file.upload.component';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "./binary.file.upload.service";
|
|
5
|
-
import * as i2 from "@angular/
|
|
6
|
-
import * as i3 from "@angular/material/
|
|
7
|
-
import * as i4 from "@angular/
|
|
5
|
+
import * as i2 from "@angular/common";
|
|
6
|
+
import * as i3 from "@angular/material/button";
|
|
7
|
+
import * as i4 from "@angular/material/icon";
|
|
8
8
|
export class BinaryFileUploadComponent extends AbstractFileUploadComponent {
|
|
9
9
|
constructor(fileUploadService, renderer) {
|
|
10
10
|
super(renderer);
|
|
@@ -13,13 +13,13 @@ export class BinaryFileUploadComponent extends AbstractFileUploadComponent {
|
|
|
13
13
|
readFiles(fileList) {
|
|
14
14
|
return this.fileUploadService.readFiles(fileList);
|
|
15
15
|
}
|
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BinaryFileUploadComponent, deps: [{ token: i1.BinaryFileUploadService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
17
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: BinaryFileUploadComponent, selector: "risk-binary-file-upload", host: { properties: { "class.risk-binary-file-upload": "true" } }, usesInheritance: true, ngImport: i0, template: "<a *ngIf=\"raised; else notRaised\"\n mat-raised-button\n [disabled]=\"disabled\"\n [color]=\"color\"\n (mousemove)=\"move($event)\">\n <mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\n {{label}}\n <div #wrapper\n class=\"risk-file-upload-input-wrapper\">\n <input *ngIf=\"!fileInputHidden\" type=\"file\"\n id=\"fileInput\"\n #fileInput\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n title=\"\"\n (change)=\"handleFiles($event.target.files)\"\n [accept]=\"accept\">\n </div>\n</a>\n<ng-template #notRaised>\n <a mat-button\n [disabled]=\"disabled\"\n [color]=\"color\"\n (mousemove)=\"move($event)\">\n <mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\n {{label}}\n <div #wrapper\n class=\"risk-file-upload-input-wrapper\">\n <input *ngIf=\"!fileInputHidden\" type=\"file\"\n id=\"fileInput\"\n #fileInput\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n title=\"\"\n (change)=\"handleFiles($event.target.files)\"\n [accept]=\"accept\">\n </div>\n </a>\n</ng-template>\n", styles: [":host{display:block;padding:0;margin:0}:host>*{vertical-align:bottom}\n", ":host{display:inline-block}a{overflow:hidden}a .risk-file-upload-input-wrapper{width:30px;height:36px;margin-left:-15px;top:0;left:0;position:absolute;overflow:hidden;cursor:pointer;z-index:1}a .risk-file-upload-input-wrapper input{position:absolute;display:block;cursor:pointer;height:36px;font-size:36px;top:0;right:0;outline:0 none;opacity:0}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
16
18
|
}
|
|
17
|
-
|
|
18
|
-
BinaryFileUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.2", type: BinaryFileUploadComponent, selector: "risk-binary-file-upload", host: { properties: { "class.risk-binary-file-upload": "true" } }, usesInheritance: true, ngImport: i0, template: "<a *ngIf=\"raised; else notRaised\"\n mat-raised-button\n [disabled]=\"disabled\"\n [color]=\"color\"\n (mousemove)=\"move($event)\">\n <mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\n {{label}}\n <div #wrapper\n class=\"risk-file-upload-input-wrapper\">\n <input *ngIf=\"!fileInputHidden\" type=\"file\"\n id=\"fileInput\"\n #fileInput\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n title=\"\"\n (change)=\"handleFiles($event.target.files)\"\n [accept]=\"accept\">\n </div>\n</a>\n<ng-template #notRaised>\n <a mat-button\n [disabled]=\"disabled\"\n [color]=\"color\"\n (mousemove)=\"move($event)\">\n <mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\n {{label}}\n <div #wrapper\n class=\"risk-file-upload-input-wrapper\">\n <input *ngIf=\"!fileInputHidden\" type=\"file\"\n id=\"fileInput\"\n #fileInput\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n title=\"\"\n (change)=\"handleFiles($event.target.files)\"\n [accept]=\"accept\">\n </div>\n </a>\n</ng-template>\n", styles: [":host{display:block;padding:0;margin:0}:host>*{vertical-align:bottom}\n", ":host{display:inline-block}a{overflow:hidden}a .risk-file-upload-input-wrapper{width:30px;height:36px;margin-left:-15px;top:0;left:0;position:absolute;overflow:hidden;cursor:pointer;z-index:1}a .risk-file-upload-input-wrapper input{position:absolute;display:block;cursor:pointer;height:36px;font-size:36px;top:0;right:0;outline:0 none;opacity:0}\n"], components: [{ type: i2.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
19
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.2", ngImport: i0, type: BinaryFileUploadComponent, decorators: [{
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BinaryFileUploadComponent, decorators: [{
|
|
20
20
|
type: Component,
|
|
21
21
|
args: [{ selector: 'risk-binary-file-upload', host: {
|
|
22
22
|
'[class.risk-binary-file-upload]': 'true'
|
|
23
23
|
}, changeDetection: ChangeDetectionStrategy.OnPush, preserveWhitespaces: false, template: "<a *ngIf=\"raised; else notRaised\"\n mat-raised-button\n [disabled]=\"disabled\"\n [color]=\"color\"\n (mousemove)=\"move($event)\">\n <mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\n {{label}}\n <div #wrapper\n class=\"risk-file-upload-input-wrapper\">\n <input *ngIf=\"!fileInputHidden\" type=\"file\"\n id=\"fileInput\"\n #fileInput\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n title=\"\"\n (change)=\"handleFiles($event.target.files)\"\n [accept]=\"accept\">\n </div>\n</a>\n<ng-template #notRaised>\n <a mat-button\n [disabled]=\"disabled\"\n [color]=\"color\"\n (mousemove)=\"move($event)\">\n <mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\n {{label}}\n <div #wrapper\n class=\"risk-file-upload-input-wrapper\">\n <input *ngIf=\"!fileInputHidden\" type=\"file\"\n id=\"fileInput\"\n #fileInput\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n title=\"\"\n (change)=\"handleFiles($event.target.files)\"\n [accept]=\"accept\">\n </div>\n </a>\n</ng-template>\n", styles: [":host{display:block;padding:0;margin:0}:host>*{vertical-align:bottom}\n", ":host{display:inline-block}a{overflow:hidden}a .risk-file-upload-input-wrapper{width:30px;height:36px;margin-left:-15px;top:0;left:0;position:absolute;overflow:hidden;cursor:pointer;z-index:1}a .risk-file-upload-input-wrapper input{position:absolute;display:block;cursor:pointer;height:36px;font-size:36px;top:0;right:0;outline:0 none;opacity:0}\n"] }]
|
|
24
|
-
}], ctorParameters:
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
}], ctorParameters: () => [{ type: i1.BinaryFileUploadService }, { type: i0.Renderer2 }] });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluYXJ5LmZpbGUudXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BrZy9kYmctcmlza2l0L2FuZ3VsYXItZmlsZS9zcmMvbGliL2JpbmFyeS5maWxlLnVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLWZpbGUvc3JjL2xpYi9hYnN0cmFjdC5maWxlLnVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRTVFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7QUFpQjdFLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSwyQkFBdUM7SUFFbEYsWUFBb0MsaUJBQTBDLEVBQzNELFFBQW1CO1FBQ2xDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUZnQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQXlCO0lBRzlFLENBQUM7SUFFUyxTQUFTLENBQUMsUUFBa0I7UUFDbEMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7K0dBVFEseUJBQXlCO21HQUF6Qix5QkFBeUIseUpDbkJ0QyxneUNBdUNBOzs0RkRwQmEseUJBQXlCO2tCQWJyQyxTQUFTOytCQUNlLHlCQUF5QixRQU16Qjt3QkFDakIsaUNBQWlDLEVBQUUsTUFBTTtxQkFDNUMsbUJBQ29CLHVCQUF1QixDQUFDLE1BQU0sdUJBQzlCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFJlbmRlcmVyMn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBYnN0cmFjdEZpbGVVcGxvYWRDb21wb25lbnR9IGZyb20gJy4vYWJzdHJhY3QuZmlsZS51cGxvYWQuY29tcG9uZW50JztcbmltcG9ydCB7QmluYXJ5RmlsZVVwbG9hZFNlcnZpY2V9IGZyb20gJy4vYmluYXJ5LmZpbGUudXBsb2FkLnNlcnZpY2UnO1xuaW1wb3J0IHtCaW5hcnlGaWxlfSBmcm9tICcuL2ZpbGUudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvciAgICAgICAgICAgOiAncmlzay1iaW5hcnktZmlsZS11cGxvYWQnLFxuICAgIHRlbXBsYXRlVXJsICAgICAgICA6ICdhYnN0cmFjdC5maWxlLnVwbG9hZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzICAgICAgICAgIDogW1xuICAgICAgICAnLi4vLi4vLi4vY29tcG9uZW50LnNjc3MnLFxuICAgICAgICAnYWJzdHJhY3QuZmlsZS51cGxvYWQuY29tcG9uZW50LnNjc3MnXG4gICAgXSxcbiAgICBob3N0ICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICdbY2xhc3Mucmlzay1iaW5hcnktZmlsZS11cGxvYWRdJzogJ3RydWUnXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb24gICAgOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgQmluYXJ5RmlsZVVwbG9hZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RmlsZVVwbG9hZENvbXBvbmVudDxCaW5hcnlGaWxlPiB7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBmaWxlVXBsb2FkU2VydmljZTogQmluYXJ5RmlsZVVwbG9hZFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcbiAgICAgICAgc3VwZXIocmVuZGVyZXIpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZWFkRmlsZXMoZmlsZUxpc3Q6IEZpbGVMaXN0KTogT2JzZXJ2YWJsZTxCaW5hcnlGaWxlW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsZVVwbG9hZFNlcnZpY2UucmVhZEZpbGVzKGZpbGVMaXN0KTtcbiAgICB9XG59XG4iLCI8YSAqbmdJZj1cInJhaXNlZDsgZWxzZSBub3RSYWlzZWRcIlxuICAgbWF0LXJhaXNlZC1idXR0b25cbiAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICBbY29sb3JdPVwiY29sb3JcIlxuICAgKG1vdXNlbW92ZSk9XCJtb3ZlKCRldmVudClcIj5cbiAgICA8bWF0LWljb24gKm5nSWY9XCJpY29uXCI+e3tpY29ufX08L21hdC1pY29uPlxuICAgIHt7bGFiZWx9fVxuICAgIDxkaXYgI3dyYXBwZXJcbiAgICAgICAgIGNsYXNzPVwicmlzay1maWxlLXVwbG9hZC1pbnB1dC13cmFwcGVyXCI+XG4gICAgICAgIDxpbnB1dCAqbmdJZj1cIiFmaWxlSW5wdXRIaWRkZW5cIiB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgICBpZD1cImZpbGVJbnB1dFwiXG4gICAgICAgICAgICAgICAjZmlsZUlucHV0XG4gICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgIHRpdGxlPVwiXCJcbiAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlRmlsZXMoJGV2ZW50LnRhcmdldC5maWxlcylcIlxuICAgICAgICAgICAgICAgW2FjY2VwdF09XCJhY2NlcHRcIj5cbiAgICA8L2Rpdj5cbjwvYT5cbjxuZy10ZW1wbGF0ZSAjbm90UmFpc2VkPlxuICAgIDxhIG1hdC1idXR0b25cbiAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgIFtjb2xvcl09XCJjb2xvclwiXG4gICAgICAgKG1vdXNlbW92ZSk9XCJtb3ZlKCRldmVudClcIj5cbiAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiaWNvblwiPnt7aWNvbn19PC9tYXQtaWNvbj5cbiAgICAgICAge3tsYWJlbH19XG4gICAgICAgIDxkaXYgI3dyYXBwZXJcbiAgICAgICAgICAgICBjbGFzcz1cInJpc2stZmlsZS11cGxvYWQtaW5wdXQtd3JhcHBlclwiPlxuICAgICAgICAgICAgPGlucHV0ICpuZ0lmPVwiIWZpbGVJbnB1dEhpZGRlblwiIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICAgICAgICAgICBpZD1cImZpbGVJbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgI2ZpbGVJbnB1dFxuICAgICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICB0aXRsZT1cIlwiXG4gICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJoYW5kbGVGaWxlcygkZXZlbnQudGFyZ2V0LmZpbGVzKVwiXG4gICAgICAgICAgICAgICAgICAgW2FjY2VwdF09XCJhY2NlcHRcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9hPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { base64encode } from '@dbg-riskit/common';
|
|
3
|
+
import { forkJoin, Observable } from 'rxjs';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class BinaryFileUploadService {
|
|
6
|
+
readFiles(files) {
|
|
7
|
+
const fileOservables = [];
|
|
8
|
+
for (const file of Array.from(files)) {
|
|
9
|
+
fileOservables.push(new Observable((observer) => {
|
|
10
|
+
setTimeout(() => {
|
|
11
|
+
try {
|
|
12
|
+
const reader = new FileReader();
|
|
13
|
+
// Handle errors load
|
|
14
|
+
reader.onload = (event) => {
|
|
15
|
+
observer.next({
|
|
16
|
+
bodyBase64: base64encode((event.target.result)),
|
|
17
|
+
file
|
|
18
|
+
});
|
|
19
|
+
observer.complete();
|
|
20
|
+
};
|
|
21
|
+
reader.onerror = (event) => {
|
|
22
|
+
observer.error(event.target.error);
|
|
23
|
+
};
|
|
24
|
+
// Read file into memory as UTF-8
|
|
25
|
+
reader.readAsArrayBuffer(file);
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
observer.error(err);
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
}));
|
|
32
|
+
}
|
|
33
|
+
return forkJoin(fileOservables);
|
|
34
|
+
}
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BinaryFileUploadService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
36
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BinaryFileUploadService }); }
|
|
37
|
+
}
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BinaryFileUploadService, decorators: [{
|
|
39
|
+
type: Injectable
|
|
40
|
+
}] });
|
|
41
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluYXJ5LmZpbGUudXBsb2FkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLWZpbGUvc3JjL2xpYi9iaW5hcnkuZmlsZS51cGxvYWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsUUFBUSxFQUFFLFVBQVUsRUFBYSxNQUFNLE1BQU0sQ0FBQzs7QUFJdEQsTUFBTSxPQUFPLHVCQUF1QjtJQUV6QixTQUFTLENBQUMsS0FBZTtRQUM1QixNQUFNLGNBQWMsR0FBa0MsRUFBRSxDQUFDO1FBQ3pELEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ25DLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxRQUFnQyxFQUFFLEVBQUU7Z0JBQ3BFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ1osSUFBSSxDQUFDO3dCQUNELE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7d0JBQ2hDLHFCQUFxQjt3QkFDckIsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQW9CLEVBQUUsRUFBRTs0QkFDckMsUUFBUSxDQUFDLElBQUksQ0FBQztnQ0FDVixVQUFVLEVBQUUsWUFBWSxDQUNwQixDQUFFLEtBQUssQ0FBQyxNQUFxQixDQUFDLE1BQU0sQ0FBZ0IsQ0FBQztnQ0FDekQsSUFBSTs2QkFDUCxDQUFDLENBQUM7NEJBQ0gsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO3dCQUN4QixDQUFDLENBQUM7d0JBQ0YsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLEtBQW9CLEVBQUUsRUFBRTs0QkFDdEMsUUFBUSxDQUFDLEtBQUssQ0FBRSxLQUFLLENBQUMsTUFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDdkQsQ0FBQyxDQUFDO3dCQUNGLGlDQUFpQzt3QkFDakMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNuQyxDQUFDO29CQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7d0JBQ1gsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDeEIsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDUixDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDcEMsQ0FBQzsrR0E5QlEsdUJBQXVCO21IQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtiYXNlNjRlbmNvZGV9IGZyb20gJ0BkYmctcmlza2l0L2NvbW1vbic7XG5pbXBvcnQge2ZvcmtKb2luLCBPYnNlcnZhYmxlLCBTdWJzY3JpYmVyfSBmcm9tICdyeGpzJztcbmltcG9ydCB7QmluYXJ5RmlsZX0gZnJvbSAnLi9maWxlLnR5cGVzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEJpbmFyeUZpbGVVcGxvYWRTZXJ2aWNlIHtcblxuICAgIHB1YmxpYyByZWFkRmlsZXMoZmlsZXM6IEZpbGVMaXN0KTogT2JzZXJ2YWJsZTxCaW5hcnlGaWxlW10+IHtcbiAgICAgICAgY29uc3QgZmlsZU9zZXJ2YWJsZXM6IEFycmF5PE9ic2VydmFibGU8QmluYXJ5RmlsZT4+ID0gW107XG4gICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBBcnJheS5mcm9tKGZpbGVzKSkge1xuICAgICAgICAgICAgZmlsZU9zZXJ2YWJsZXMucHVzaChuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXI6IFN1YnNjcmliZXI8QmluYXJ5RmlsZT4pID0+IHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBIYW5kbGUgZXJyb3JzIGxvYWRcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoZXZlbnQ6IFByb2dyZXNzRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keUJhc2U2NDogYmFzZTY0ZW5jb2RlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChldmVudC50YXJnZXQgYXMgRmlsZVJlYWRlcikucmVzdWx0KSBhcyBBcnJheUJ1ZmZlciksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlci5vbmVycm9yID0gKGV2ZW50OiBQcm9ncmVzc0V2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoKGV2ZW50LnRhcmdldCBhcyBGaWxlUmVhZGVyKS5lcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVhZCBmaWxlIGludG8gbWVtb3J5IGFzIFVURi04XG4gICAgICAgICAgICAgICAgICAgICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmb3JrSm9pbihmaWxlT3NlcnZhYmxlcyk7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { Directive, Input } from '@angular/core';
|
|
2
|
+
import { CONTENT_TYPE, toString } from '@dbg-riskit/common';
|
|
3
|
+
import { AbstractFileDownloadDirective } from './abstract.file.download.directive';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "@dbg-riskit/angular-view";
|
|
6
|
+
import * as i2 from "./file.size.pipe";
|
|
7
|
+
import * as i3 from "@dbg-riskit/common";
|
|
8
|
+
export class CSVFileDownloadDirective extends AbstractFileDownloadDirective {
|
|
9
|
+
constructor(dateFormatter, elementRef, dialogService, fileSizePipe, logger) {
|
|
10
|
+
super(elementRef, dialogService, fileSizePipe, logger);
|
|
11
|
+
this.dateFormatter = dateFormatter;
|
|
12
|
+
this.filename = 'data.csv';
|
|
13
|
+
this.crlfLineEnding = false;
|
|
14
|
+
}
|
|
15
|
+
mapToFile(data) {
|
|
16
|
+
let csvFile = '';
|
|
17
|
+
if (this.columns) {
|
|
18
|
+
csvFile += this.createHeader();
|
|
19
|
+
for (const row of data) {
|
|
20
|
+
csvFile += this.processRow(row);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return {
|
|
24
|
+
filename: this.filename,
|
|
25
|
+
content: this.createBlob([csvFile], { type: CONTENT_TYPE.TEXT_CSV })
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
processRow(row) {
|
|
29
|
+
return this.columns.map((column) => {
|
|
30
|
+
const value = column.get(row);
|
|
31
|
+
let innerValue = toString(value);
|
|
32
|
+
if (value instanceof Date) {
|
|
33
|
+
innerValue = this.dateFormatter.transform(value) || '';
|
|
34
|
+
}
|
|
35
|
+
let result = innerValue.replace(/"/g, '""');
|
|
36
|
+
if (result.search(/([",\n])/g) >= 0) {
|
|
37
|
+
result = `"${result}"`;
|
|
38
|
+
}
|
|
39
|
+
return result;
|
|
40
|
+
}).join(',') + this.getLineEnding();
|
|
41
|
+
}
|
|
42
|
+
createHeader() {
|
|
43
|
+
return this.columns.map((column) => {
|
|
44
|
+
const innerValue = toString(column.header);
|
|
45
|
+
let result = innerValue.replace(/"/g, '""');
|
|
46
|
+
if (result.search(/([",\n])/g) >= 0) {
|
|
47
|
+
result = `"${result}"`;
|
|
48
|
+
}
|
|
49
|
+
return result;
|
|
50
|
+
}).join(',') + this.getLineEnding();
|
|
51
|
+
}
|
|
52
|
+
getLineEnding() {
|
|
53
|
+
if (this.crlfLineEnding) {
|
|
54
|
+
return '\r\n';
|
|
55
|
+
}
|
|
56
|
+
return '\n';
|
|
57
|
+
}
|
|
58
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CSVFileDownloadDirective, deps: [{ token: i1.DateFormatter }, { token: i0.ElementRef }, { token: i1.DialogService }, { token: i2.FileSizePipe }, { token: i3.Logger }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
59
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: CSVFileDownloadDirective, selector: "[risk-csv-download]", inputs: { columns: ["risk-csv-download-columns", "columns"], data: ["risk-csv-download", "data"], filename: ["risk-csv-download-filename", "filename"], crlfLineEnding: ["risk-csv-download-crlf", "crlfLineEnding"] }, host: { listeners: { "click": "download()" }, properties: { "class.risk-csv-download": "true" } }, usesInheritance: true, ngImport: i0 }); }
|
|
60
|
+
}
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CSVFileDownloadDirective, decorators: [{
|
|
62
|
+
type: Directive,
|
|
63
|
+
args: [{
|
|
64
|
+
selector: '[risk-csv-download]',
|
|
65
|
+
host: {
|
|
66
|
+
'[class.risk-csv-download]': 'true',
|
|
67
|
+
'(click)': 'download()'
|
|
68
|
+
}
|
|
69
|
+
}]
|
|
70
|
+
}], ctorParameters: () => [{ type: i1.DateFormatter }, { type: i0.ElementRef }, { type: i1.DialogService }, { type: i2.FileSizePipe }, { type: i3.Logger }], propDecorators: { columns: [{
|
|
71
|
+
type: Input,
|
|
72
|
+
args: ['risk-csv-download-columns']
|
|
73
|
+
}], data: [{
|
|
74
|
+
type: Input,
|
|
75
|
+
args: ['risk-csv-download']
|
|
76
|
+
}], filename: [{
|
|
77
|
+
type: Input,
|
|
78
|
+
args: ['risk-csv-download-filename']
|
|
79
|
+
}], crlfLineEnding: [{
|
|
80
|
+
type: Input,
|
|
81
|
+
args: ['risk-csv-download-crlf']
|
|
82
|
+
}] } });
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3N2LmZpbGUuZG93bmxvYWQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvYW5ndWxhci1maWxlL3NyYy9saWIvY3N2LmZpbGUuZG93bmxvYWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTNELE9BQU8sRUFBQyxZQUFZLEVBQW1ELFFBQVEsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRTNHLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDOzs7OztBQVdqRixNQUFNLE9BQU8sd0JBQXlCLFNBQVEsNkJBQXdDO0lBZ0JsRixZQUFvQyxhQUE0QixFQUM3QyxVQUFzQixFQUN0QixhQUE0QixFQUM1QixZQUEwQixFQUMxQixNQUFjO1FBQzdCLEtBQUssQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUx2QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUx6RCxhQUFRLEdBQUcsVUFBVSxDQUFDO1FBR3RCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO0lBUTlCLENBQUM7SUFFUyxTQUFTLENBQUMsSUFBZTtRQUMvQixJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFFakIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDZixPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBRS9CLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ3JCLE9BQU8sSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BDLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTztZQUNILFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxRQUFRLEVBQUMsQ0FBQztTQUNyRSxDQUFDO0lBQ04sQ0FBQztJQUVPLFVBQVUsQ0FBQyxHQUFZO1FBQzNCLE9BQU8sSUFBSSxDQUFDLE9BQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFnQyxFQUFFLEVBQUU7WUFDMUQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5QixJQUFJLFVBQVUsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFakMsSUFBSSxLQUFLLFlBQVksSUFBSSxFQUFFLENBQUM7Z0JBQ3hCLFVBQVUsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDM0QsQ0FBQztZQUVELElBQUksTUFBTSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRTVDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbEMsTUFBTSxHQUFHLElBQUksTUFBTSxHQUFHLENBQUM7WUFDM0IsQ0FBQztZQUVELE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVPLFlBQVk7UUFDaEIsT0FBTyxJQUFJLENBQUMsT0FBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQWdDLEVBQUUsRUFBRTtZQUMxRCxNQUFNLFVBQVUsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNDLElBQUksTUFBTSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzVDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbEMsTUFBTSxHQUFHLElBQUksTUFBTSxHQUFHLENBQUM7WUFDM0IsQ0FBQztZQUNELE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVPLGFBQWE7UUFDakIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDdEIsT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7K0dBNUVRLHdCQUF3QjttR0FBeEIsd0JBQXdCOzs0RkFBeEIsd0JBQXdCO2tCQVBwQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLElBQUksRUFBTTt3QkFDTiwyQkFBMkIsRUFBRSxNQUFNO3dCQUNuQyxTQUFTLEVBQW9CLFlBQVk7cUJBQzVDO2lCQUNKO3VMQUlVLE9BQU87c0JBRGIsS0FBSzt1QkFBQywyQkFBMkI7Z0JBSTNCLElBQUk7c0JBRFYsS0FBSzt1QkFBQyxtQkFBbUI7Z0JBTW5CLFFBQVE7c0JBRGQsS0FBSzt1QkFBQyw0QkFBNEI7Z0JBSTVCLGNBQWM7c0JBRHBCLEtBQUs7dUJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGF0ZUZvcm1hdHRlciwgRGlhbG9nU2VydmljZX0gZnJvbSAnQGRiZy1yaXNraXQvYW5ndWxhci12aWV3JztcbmltcG9ydCB7Q09OVEVOVF9UWVBFLCBGaWxlV2l0aENvbnRlbnQsIExvZ2dlciwgT2JzZXJ2YWJsZVdpdGhQcm9ncmVzcywgdG9TdHJpbmd9IGZyb20gJ0BkYmctcmlza2l0L2NvbW1vbic7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBYnN0cmFjdEZpbGVEb3dubG9hZERpcmVjdGl2ZX0gZnJvbSAnLi9hYnN0cmFjdC5maWxlLmRvd25sb2FkLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0ZpbGVTaXplUGlwZX0gZnJvbSAnLi9maWxlLnNpemUucGlwZSc7XG5pbXBvcnQge0NTVkV4cG9ydENvbHVtbn0gZnJvbSAnLi9maWxlLnR5cGVzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmlzay1jc3YtZG93bmxvYWRdJyxcbiAgICBob3N0ICAgIDoge1xuICAgICAgICAnW2NsYXNzLnJpc2stY3N2LWRvd25sb2FkXSc6ICd0cnVlJyxcbiAgICAgICAgJyhjbGljayknICAgICAgICAgICAgICAgICAgOiAnZG93bmxvYWQoKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIENTVkZpbGVEb3dubG9hZERpcmVjdGl2ZSBleHRlbmRzIEFic3RyYWN0RmlsZURvd25sb2FkRGlyZWN0aXZlPHVua25vd25bXT4ge1xuXG4gICAgQElucHV0KCdyaXNrLWNzdi1kb3dubG9hZC1jb2x1bW5zJylcbiAgICBwdWJsaWMgY29sdW1ucz86IEFycmF5PENTVkV4cG9ydENvbHVtbjx1bmtub3duPj47XG5cbiAgICBASW5wdXQoJ3Jpc2stY3N2LWRvd25sb2FkJylcbiAgICBwdWJsaWMgZGF0YT86IE9ic2VydmFibGVXaXRoUHJvZ3Jlc3M8dW5rbm93bltdPlxuICAgICAgICB8IE9ic2VydmFibGU8dW5rbm93bltdPlxuICAgICAgICB8IHVua25vd25bXTtcblxuICAgIEBJbnB1dCgncmlzay1jc3YtZG93bmxvYWQtZmlsZW5hbWUnKVxuICAgIHB1YmxpYyBmaWxlbmFtZSA9ICdkYXRhLmNzdic7XG5cbiAgICBASW5wdXQoJ3Jpc2stY3N2LWRvd25sb2FkLWNybGYnKVxuICAgIHB1YmxpYyBjcmxmTGluZUVuZGluZyA9IGZhbHNlO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZGF0ZUZvcm1hdHRlcjogRGF0ZUZvcm1hdHRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgICAgICAgICAgICAgICAgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgZmlsZVNpemVQaXBlOiBGaWxlU2l6ZVBpcGUsXG4gICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlcjogTG9nZ2VyKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYsIGRpYWxvZ1NlcnZpY2UsIGZpbGVTaXplUGlwZSwgbG9nZ2VyKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbWFwVG9GaWxlKGRhdGE6IHVua25vd25bXSk6IEZpbGVXaXRoQ29udGVudCB7XG4gICAgICAgIGxldCBjc3ZGaWxlID0gJyc7XG5cbiAgICAgICAgaWYgKHRoaXMuY29sdW1ucykge1xuICAgICAgICAgICAgY3N2RmlsZSArPSB0aGlzLmNyZWF0ZUhlYWRlcigpO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJvdyBvZiBkYXRhKSB7XG4gICAgICAgICAgICAgICAgY3N2RmlsZSArPSB0aGlzLnByb2Nlc3NSb3cocm93KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBmaWxlbmFtZTogdGhpcy5maWxlbmFtZSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuY3JlYXRlQmxvYihbY3N2RmlsZV0sIHt0eXBlOiBDT05URU5UX1RZUEUuVEVYVF9DU1Z9KVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2Vzc1Jvdyhyb3c6IHVua25vd24pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW5zIS5tYXAoKGNvbHVtbjogQ1NWRXhwb3J0Q29sdW1uPHVua25vd24+KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IGNvbHVtbi5nZXQocm93KTtcbiAgICAgICAgICAgIGxldCBpbm5lclZhbHVlID0gdG9TdHJpbmcodmFsdWUpO1xuXG4gICAgICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgICAgICAgaW5uZXJWYWx1ZSA9IHRoaXMuZGF0ZUZvcm1hdHRlci50cmFuc2Zvcm0odmFsdWUpIHx8ICcnO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgcmVzdWx0ID0gaW5uZXJWYWx1ZS5yZXBsYWNlKC9cIi9nLCAnXCJcIicpO1xuXG4gICAgICAgICAgICBpZiAocmVzdWx0LnNlYXJjaCgvKFtcIixcXG5dKS9nKSA+PSAwKSB7XG4gICAgICAgICAgICAgICAgcmVzdWx0ID0gYFwiJHtyZXN1bHR9XCJgO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KS5qb2luKCcsJykgKyB0aGlzLmdldExpbmVFbmRpbmcoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUhlYWRlcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW5zIS5tYXAoKGNvbHVtbjogQ1NWRXhwb3J0Q29sdW1uPHVua25vd24+KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpbm5lclZhbHVlID0gdG9TdHJpbmcoY29sdW1uLmhlYWRlcik7XG4gICAgICAgICAgICBsZXQgcmVzdWx0ID0gaW5uZXJWYWx1ZS5yZXBsYWNlKC9cIi9nLCAnXCJcIicpO1xuICAgICAgICAgICAgaWYgKHJlc3VsdC5zZWFyY2goLyhbXCIsXFxuXSkvZykgPj0gMCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9IGBcIiR7cmVzdWx0fVwiYDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgIH0pLmpvaW4oJywnKSArIHRoaXMuZ2V0TGluZUVuZGluZygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TGluZUVuZGluZygpIHtcbiAgICAgICAgaWYgKHRoaXMuY3JsZkxpbmVFbmRpbmcpIHtcbiAgICAgICAgICAgIHJldHVybiAnXFxyXFxuJztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gJ1xcbic7XG4gICAgfVxufVxuIl19
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
+
import { of, throwError } from 'rxjs';
|
|
3
|
+
import { switchMap } from 'rxjs/operators';
|
|
4
|
+
import { AbstractFileUploadComponent } from './abstract.file.upload.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "./csv.file.upload.service";
|
|
7
|
+
import * as i2 from "@angular/common";
|
|
8
|
+
import * as i3 from "@angular/material/button";
|
|
9
|
+
import * as i4 from "@angular/material/icon";
|
|
10
|
+
export class CSVFileUploadComponent extends AbstractFileUploadComponent {
|
|
11
|
+
constructor(fileUploadService, renderer) {
|
|
12
|
+
super(renderer);
|
|
13
|
+
this.fileUploadService = fileUploadService;
|
|
14
|
+
}
|
|
15
|
+
readFiles(fileList) {
|
|
16
|
+
return this.fileUploadService.readFiles(fileList, this.nameMapper).pipe(switchMap((files) => {
|
|
17
|
+
const validationErrors = [];
|
|
18
|
+
if (!this.validator || files.every((file) => {
|
|
19
|
+
const result = this.validator(file);
|
|
20
|
+
if (!result.result && result.messages != null) {
|
|
21
|
+
result.messages.forEach((message) => {
|
|
22
|
+
validationErrors.push(message);
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
return result.result;
|
|
26
|
+
})) {
|
|
27
|
+
return of(files);
|
|
28
|
+
}
|
|
29
|
+
else {
|
|
30
|
+
return throwError(`<li>${validationErrors.join('</li><li>')}</li>`);
|
|
31
|
+
}
|
|
32
|
+
}));
|
|
33
|
+
}
|
|
34
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CSVFileUploadComponent, deps: [{ token: i1.CSVFileUploadService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
35
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CSVFileUploadComponent, selector: "risk-csv-file-upload", inputs: { validator: "validator", nameMapper: "nameMapper" }, host: { properties: { "class.risk-csv-file-upload": "true" } }, usesInheritance: true, ngImport: i0, template: "<a *ngIf=\"raised; else notRaised\"\n mat-raised-button\n [disabled]=\"disabled\"\n [color]=\"color\"\n (mousemove)=\"move($event)\">\n <mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\n {{label}}\n <div #wrapper\n class=\"risk-file-upload-input-wrapper\">\n <input *ngIf=\"!fileInputHidden\" type=\"file\"\n id=\"fileInput\"\n #fileInput\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n title=\"\"\n (change)=\"handleFiles($event.target.files)\"\n [accept]=\"accept\">\n </div>\n</a>\n<ng-template #notRaised>\n <a mat-button\n [disabled]=\"disabled\"\n [color]=\"color\"\n (mousemove)=\"move($event)\">\n <mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\n {{label}}\n <div #wrapper\n class=\"risk-file-upload-input-wrapper\">\n <input *ngIf=\"!fileInputHidden\" type=\"file\"\n id=\"fileInput\"\n #fileInput\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n title=\"\"\n (change)=\"handleFiles($event.target.files)\"\n [accept]=\"accept\">\n </div>\n </a>\n</ng-template>\n", styles: [":host{display:block;padding:0;margin:0}:host>*{vertical-align:bottom}\n", ":host{display:inline-block}a{overflow:hidden}a .risk-file-upload-input-wrapper{width:30px;height:36px;margin-left:-15px;top:0;left:0;position:absolute;overflow:hidden;cursor:pointer;z-index:1}a .risk-file-upload-input-wrapper input{position:absolute;display:block;cursor:pointer;height:36px;font-size:36px;top:0;right:0;outline:0 none;opacity:0}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
36
|
+
}
|
|
37
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CSVFileUploadComponent, decorators: [{
|
|
38
|
+
type: Component,
|
|
39
|
+
args: [{ selector: 'risk-csv-file-upload', host: {
|
|
40
|
+
'[class.risk-csv-file-upload]': 'true'
|
|
41
|
+
}, changeDetection: ChangeDetectionStrategy.OnPush, preserveWhitespaces: false, template: "<a *ngIf=\"raised; else notRaised\"\n mat-raised-button\n [disabled]=\"disabled\"\n [color]=\"color\"\n (mousemove)=\"move($event)\">\n <mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\n {{label}}\n <div #wrapper\n class=\"risk-file-upload-input-wrapper\">\n <input *ngIf=\"!fileInputHidden\" type=\"file\"\n id=\"fileInput\"\n #fileInput\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n title=\"\"\n (change)=\"handleFiles($event.target.files)\"\n [accept]=\"accept\">\n </div>\n</a>\n<ng-template #notRaised>\n <a mat-button\n [disabled]=\"disabled\"\n [color]=\"color\"\n (mousemove)=\"move($event)\">\n <mat-icon *ngIf=\"icon\">{{icon}}</mat-icon>\n {{label}}\n <div #wrapper\n class=\"risk-file-upload-input-wrapper\">\n <input *ngIf=\"!fileInputHidden\" type=\"file\"\n id=\"fileInput\"\n #fileInput\n [multiple]=\"multiple\"\n [disabled]=\"disabled\"\n title=\"\"\n (change)=\"handleFiles($event.target.files)\"\n [accept]=\"accept\">\n </div>\n </a>\n</ng-template>\n", styles: [":host{display:block;padding:0;margin:0}:host>*{vertical-align:bottom}\n", ":host{display:inline-block}a{overflow:hidden}a .risk-file-upload-input-wrapper{width:30px;height:36px;margin-left:-15px;top:0;left:0;position:absolute;overflow:hidden;cursor:pointer;z-index:1}a .risk-file-upload-input-wrapper input{position:absolute;display:block;cursor:pointer;height:36px;font-size:36px;top:0;right:0;outline:0 none;opacity:0}\n"] }]
|
|
42
|
+
}], ctorParameters: () => [{ type: i1.CSVFileUploadService }, { type: i0.Renderer2 }], propDecorators: { validator: [{
|
|
43
|
+
type: Input
|
|
44
|
+
}], nameMapper: [{
|
|
45
|
+
type: Input
|
|
46
|
+
}] } });
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3N2LmZpbGUudXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BrZy9kYmctcmlza2l0L2FuZ3VsYXItZmlsZS9zcmMvbGliL2Nzdi5maWxlLnVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLWZpbGUvc3JjL2xpYi9hYnN0cmFjdC5maWxlLnVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQWEsRUFBRSxFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7Ozs7OztBQWlCN0UsTUFBTSxPQUFPLHNCQUF1QixTQUFRLDJCQUFvQztJQVE1RSxZQUFvQyxpQkFBdUMsRUFBRSxRQUFtQjtRQUM1RixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFEZ0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFzQjtJQUUzRSxDQUFDO0lBRVMsU0FBUyxDQUFDLFFBQWtCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FDbkUsU0FBUyxDQUFDLENBQUMsS0FBZ0IsRUFBRSxFQUFFO1lBQzNCLE1BQU0sZ0JBQWdCLEdBQWEsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQzlCLENBQUMsSUFBYSxFQUFFLEVBQUU7Z0JBQ2QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUUsQ0FBQztvQkFDNUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFlLEVBQUUsRUFBRTt3QkFDeEMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUNuQyxDQUFDLENBQUMsQ0FBQztnQkFDUCxDQUFDO2dCQUNELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUN6QixDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNMLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JCLENBQUM7aUJBQU0sQ0FBQztnQkFDSixPQUFPLFVBQVUsQ0FBQyxPQUFPLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDeEUsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDOytHQWhDUSxzQkFBc0I7bUdBQXRCLHNCQUFzQixpTkNwQm5DLGd5Q0F1Q0E7OzRGRG5CYSxzQkFBc0I7a0JBYmxDLFNBQVM7K0JBQ2Usc0JBQXNCLFFBTXRCO3dCQUNqQiw4QkFBOEIsRUFBRSxNQUFNO3FCQUN6QyxtQkFDb0IsdUJBQXVCLENBQUMsTUFBTSx1QkFDOUIsS0FBSztpSEFLbkIsU0FBUztzQkFEZixLQUFLO2dCQUlDLFVBQVU7c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBSZW5kZXJlcjJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZiwgdGhyb3dFcnJvcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3N3aXRjaE1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtBYnN0cmFjdEZpbGVVcGxvYWRDb21wb25lbnR9IGZyb20gJy4vYWJzdHJhY3QuZmlsZS51cGxvYWQuY29tcG9uZW50JztcbmltcG9ydCB7Q1NWRmlsZVVwbG9hZFNlcnZpY2V9IGZyb20gJy4vY3N2LmZpbGUudXBsb2FkLnNlcnZpY2UnO1xuaW1wb3J0IHtDU1ZDb2x1bW5OYW1lTWFwcGVyLCBDU1ZGaWxlLCBDU1ZWYWxpZGF0b3J9IGZyb20gJy4vZmlsZS50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yICAgICAgICAgICA6ICdyaXNrLWNzdi1maWxlLXVwbG9hZCcsXG4gICAgdGVtcGxhdGVVcmwgICAgICAgIDogJ2Fic3RyYWN0LmZpbGUudXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHMgICAgICAgICAgOiBbXG4gICAgICAgICcuLi8uLi8uLi9jb21wb25lbnQuc2NzcycsXG4gICAgICAgICdhYnN0cmFjdC5maWxlLnVwbG9hZC5jb21wb25lbnQuc2NzcydcbiAgICBdLFxuICAgIGhvc3QgICAgICAgICAgICAgICA6IHtcbiAgICAgICAgJ1tjbGFzcy5yaXNrLWNzdi1maWxlLXVwbG9hZF0nOiAndHJ1ZSdcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbiAgICA6IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBDU1ZGaWxlVXBsb2FkQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RGaWxlVXBsb2FkQ29tcG9uZW50PENTVkZpbGU+IHtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHZhbGlkYXRvcj86IENTVlZhbGlkYXRvcjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG5hbWVNYXBwZXI/OiBDU1ZDb2x1bW5OYW1lTWFwcGVyO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZmlsZVVwbG9hZFNlcnZpY2U6IENTVkZpbGVVcGxvYWRTZXJ2aWNlLCByZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gICAgICAgIHN1cGVyKHJlbmRlcmVyKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVhZEZpbGVzKGZpbGVMaXN0OiBGaWxlTGlzdCk6IE9ic2VydmFibGU8Q1NWRmlsZVtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbGVVcGxvYWRTZXJ2aWNlLnJlYWRGaWxlcyhmaWxlTGlzdCwgdGhpcy5uYW1lTWFwcGVyKS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKChmaWxlczogQ1NWRmlsZVtdKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsaWRhdGlvbkVycm9yczogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMudmFsaWRhdG9yIHx8IGZpbGVzLmV2ZXJ5KFxuICAgICAgICAgICAgICAgICAgICAoZmlsZTogQ1NWRmlsZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy52YWxpZGF0b3IhKGZpbGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQucmVzdWx0ICYmIHJlc3VsdC5tZXNzYWdlcyAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0Lm1lc3NhZ2VzLmZvckVhY2goKG1lc3NhZ2U6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uRXJyb3JzLnB1c2gobWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlc3VsdDtcbiAgICAgICAgICAgICAgICAgICAgfSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKGZpbGVzKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihgPGxpPiR7dmFsaWRhdGlvbkVycm9ycy5qb2luKCc8L2xpPjxsaT4nKX08L2xpPmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiPGEgKm5nSWY9XCJyYWlzZWQ7IGVsc2Ugbm90UmFpc2VkXCJcbiAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgW2NvbG9yXT1cImNvbG9yXCJcbiAgIChtb3VzZW1vdmUpPVwibW92ZSgkZXZlbnQpXCI+XG4gICAgPG1hdC1pY29uICpuZ0lmPVwiaWNvblwiPnt7aWNvbn19PC9tYXQtaWNvbj5cbiAgICB7e2xhYmVsfX1cbiAgICA8ZGl2ICN3cmFwcGVyXG4gICAgICAgICBjbGFzcz1cInJpc2stZmlsZS11cGxvYWQtaW5wdXQtd3JhcHBlclwiPlxuICAgICAgICA8aW5wdXQgKm5nSWY9XCIhZmlsZUlucHV0SGlkZGVuXCIgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICAgICAgaWQ9XCJmaWxlSW5wdXRcIlxuICAgICAgICAgICAgICAgI2ZpbGVJbnB1dFxuICAgICAgICAgICAgICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICB0aXRsZT1cIlwiXG4gICAgICAgICAgICAgICAoY2hhbmdlKT1cImhhbmRsZUZpbGVzKCRldmVudC50YXJnZXQuZmlsZXMpXCJcbiAgICAgICAgICAgICAgIFthY2NlcHRdPVwiYWNjZXB0XCI+XG4gICAgPC9kaXY+XG48L2E+XG48bmctdGVtcGxhdGUgI25vdFJhaXNlZD5cbiAgICA8YSBtYXQtYnV0dG9uXG4gICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICBbY29sb3JdPVwiY29sb3JcIlxuICAgICAgIChtb3VzZW1vdmUpPVwibW92ZSgkZXZlbnQpXCI+XG4gICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImljb25cIj57e2ljb259fTwvbWF0LWljb24+XG4gICAgICAgIHt7bGFiZWx9fVxuICAgICAgICA8ZGl2ICN3cmFwcGVyXG4gICAgICAgICAgICAgY2xhc3M9XCJyaXNrLWZpbGUtdXBsb2FkLWlucHV0LXdyYXBwZXJcIj5cbiAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cIiFmaWxlSW5wdXRIaWRkZW5cIiB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgICAgICAgaWQ9XCJmaWxlSW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICNmaWxlSW5wdXRcbiAgICAgICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgdGl0bGU9XCJcIlxuICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlRmlsZXMoJGV2ZW50LnRhcmdldC5maWxlcylcIlxuICAgICAgICAgICAgICAgICAgIFthY2NlcHRdPVwiYWNjZXB0XCI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvYT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|