@dbg-riskit/angular-file 18.0.0 → 20.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/docs/README.md +5 -6
  2. package/fesm2022/dbg-riskit-angular-file.mjs +124 -157
  3. package/fesm2022/dbg-riskit-angular-file.mjs.map +1 -1
  4. package/index.d.ts +175 -5
  5. package/package.json +11 -14
  6. package/esm2022/dbg-riskit-angular-file.mjs +0 -5
  7. package/esm2022/lib/abstract.file.download.directive.mjs +0 -139
  8. package/esm2022/lib/abstract.file.upload.component.mjs +0 -100
  9. package/esm2022/lib/binary.file.upload.component.mjs +0 -25
  10. package/esm2022/lib/binary.file.upload.service.mjs +0 -41
  11. package/esm2022/lib/csv.file.download.directive.mjs +0 -83
  12. package/esm2022/lib/csv.file.upload.component.mjs +0 -47
  13. package/esm2022/lib/csv.file.upload.service.mjs +0 -109
  14. package/esm2022/lib/download.menu.component.mjs +0 -34
  15. package/esm2022/lib/file.download.directive.mjs +0 -53
  16. package/esm2022/lib/file.module.mjs +0 -76
  17. package/esm2022/lib/file.size.pipe.mjs +0 -34
  18. package/esm2022/lib/file.types.mjs +0 -2
  19. package/esm2022/lib/text.file.upload.component.mjs +0 -26
  20. package/esm2022/lib/text.file.upload.service.mjs +0 -41
  21. package/esm2022/public_api.mjs +0 -15
  22. package/lib/abstract.file.download.directive.d.ts +0 -29
  23. package/lib/abstract.file.upload.component.d.ts +0 -32
  24. package/lib/binary.file.upload.component.d.ts +0 -13
  25. package/lib/binary.file.upload.service.d.ts +0 -8
  26. package/lib/csv.file.download.directive.d.ts +0 -22
  27. package/lib/csv.file.upload.component.d.ts +0 -15
  28. package/lib/csv.file.upload.service.d.ts +0 -9
  29. package/lib/download.menu.component.d.ts +0 -13
  30. package/lib/file.download.directive.d.ts +0 -17
  31. package/lib/file.module.d.ts +0 -16
  32. package/lib/file.size.pipe.d.ts +0 -13
  33. package/lib/file.types.d.ts +0 -32
  34. package/lib/text.file.upload.component.d.ts +0 -13
  35. package/lib/text.file.upload.service.d.ts +0 -8
  36. package/public_api.d.ts +0 -14
@@ -1,139 +0,0 @@
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: "18.2.13", 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: "18.2.13", type: AbstractFileDownloadDirective, inputs: { disabled: "disabled" }, usesInheritance: true, ngImport: i0 }); }
133
- }
134
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", 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=
@@ -1,100 +0,0 @@
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: "18.2.13", ngImport: i0, type: AbstractFileUploadComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
68
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", 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: "18.2.13", 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==
@@ -1,25 +0,0 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
2
- import { AbstractFileUploadComponent } from './abstract.file.upload.component';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "./binary.file.upload.service";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "@angular/material/button";
7
- import * as i4 from "@angular/material/icon";
8
- export class BinaryFileUploadComponent extends AbstractFileUploadComponent {
9
- constructor(fileUploadService, renderer) {
10
- super(renderer);
11
- this.fileUploadService = fileUploadService;
12
- }
13
- readFiles(fileList) {
14
- return this.fileUploadService.readFiles(fileList);
15
- }
16
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", 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: "18.2.13", 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 }); }
18
- }
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BinaryFileUploadComponent, decorators: [{
20
- type: Component,
21
- args: [{ selector: 'risk-binary-file-upload', host: {
22
- '[class.risk-binary-file-upload]': 'true'
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: () => [{ type: i1.BinaryFileUploadService }, { type: i0.Renderer2 }] });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluYXJ5LmZpbGUudXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BrZy9kYmctcmlza2l0L2FuZ3VsYXItZmlsZS9zcmMvbGliL2JpbmFyeS5maWxlLnVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLWZpbGUvc3JjL2xpYi9hYnN0cmFjdC5maWxlLnVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRTVFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7QUFpQjdFLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSwyQkFBdUM7SUFFbEYsWUFBb0MsaUJBQTBDLEVBQzNELFFBQW1CO1FBQ2xDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUZnQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQXlCO0lBRzlFLENBQUM7SUFFUyxTQUFTLENBQUMsUUFBa0I7UUFDbEMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7K0dBVFEseUJBQXlCO21HQUF6Qix5QkFBeUIseUpDbkJ0QyxneUNBdUNBOzs0RkRwQmEseUJBQXlCO2tCQWJyQyxTQUFTOytCQUNlLHlCQUF5QixRQU16Qjt3QkFDakIsaUNBQWlDLEVBQUUsTUFBTTtxQkFDNUMsbUJBQ29CLHVCQUF1QixDQUFDLE1BQU0sdUJBQzlCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFJlbmRlcmVyMn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBYnN0cmFjdEZpbGVVcGxvYWRDb21wb25lbnR9IGZyb20gJy4vYWJzdHJhY3QuZmlsZS51cGxvYWQuY29tcG9uZW50JztcbmltcG9ydCB7QmluYXJ5RmlsZVVwbG9hZFNlcnZpY2V9IGZyb20gJy4vYmluYXJ5LmZpbGUudXBsb2FkLnNlcnZpY2UnO1xuaW1wb3J0IHtCaW5hcnlGaWxlfSBmcm9tICcuL2ZpbGUudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvciAgICAgICAgICAgOiAncmlzay1iaW5hcnktZmlsZS11cGxvYWQnLFxuICAgIHRlbXBsYXRlVXJsICAgICAgICA6ICdhYnN0cmFjdC5maWxlLnVwbG9hZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzICAgICAgICAgIDogW1xuICAgICAgICAnLi4vLi4vLi4vY29tcG9uZW50LnNjc3MnLFxuICAgICAgICAnYWJzdHJhY3QuZmlsZS51cGxvYWQuY29tcG9uZW50LnNjc3MnXG4gICAgXSxcbiAgICBob3N0ICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICdbY2xhc3Mucmlzay1iaW5hcnktZmlsZS11cGxvYWRdJzogJ3RydWUnXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb24gICAgOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgQmluYXJ5RmlsZVVwbG9hZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RmlsZVVwbG9hZENvbXBvbmVudDxCaW5hcnlGaWxlPiB7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBmaWxlVXBsb2FkU2VydmljZTogQmluYXJ5RmlsZVVwbG9hZFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcbiAgICAgICAgc3VwZXIocmVuZGVyZXIpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZWFkRmlsZXMoZmlsZUxpc3Q6IEZpbGVMaXN0KTogT2JzZXJ2YWJsZTxCaW5hcnlGaWxlW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsZVVwbG9hZFNlcnZpY2UucmVhZEZpbGVzKGZpbGVMaXN0KTtcbiAgICB9XG59XG4iLCI8YSAqbmdJZj1cInJhaXNlZDsgZWxzZSBub3RSYWlzZWRcIlxuICAgbWF0LXJhaXNlZC1idXR0b25cbiAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICBbY29sb3JdPVwiY29sb3JcIlxuICAgKG1vdXNlbW92ZSk9XCJtb3ZlKCRldmVudClcIj5cbiAgICA8bWF0LWljb24gKm5nSWY9XCJpY29uXCI+e3tpY29ufX08L21hdC1pY29uPlxuICAgIHt7bGFiZWx9fVxuICAgIDxkaXYgI3dyYXBwZXJcbiAgICAgICAgIGNsYXNzPVwicmlzay1maWxlLXVwbG9hZC1pbnB1dC13cmFwcGVyXCI+XG4gICAgICAgIDxpbnB1dCAqbmdJZj1cIiFmaWxlSW5wdXRIaWRkZW5cIiB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgICBpZD1cImZpbGVJbnB1dFwiXG4gICAgICAgICAgICAgICAjZmlsZUlucHV0XG4gICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgIHRpdGxlPVwiXCJcbiAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlRmlsZXMoJGV2ZW50LnRhcmdldC5maWxlcylcIlxuICAgICAgICAgICAgICAgW2FjY2VwdF09XCJhY2NlcHRcIj5cbiAgICA8L2Rpdj5cbjwvYT5cbjxuZy10ZW1wbGF0ZSAjbm90UmFpc2VkPlxuICAgIDxhIG1hdC1idXR0b25cbiAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgIFtjb2xvcl09XCJjb2xvclwiXG4gICAgICAgKG1vdXNlbW92ZSk9XCJtb3ZlKCRldmVudClcIj5cbiAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiaWNvblwiPnt7aWNvbn19PC9tYXQtaWNvbj5cbiAgICAgICAge3tsYWJlbH19XG4gICAgICAgIDxkaXYgI3dyYXBwZXJcbiAgICAgICAgICAgICBjbGFzcz1cInJpc2stZmlsZS11cGxvYWQtaW5wdXQtd3JhcHBlclwiPlxuICAgICAgICAgICAgPGlucHV0ICpuZ0lmPVwiIWZpbGVJbnB1dEhpZGRlblwiIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICAgICAgICAgICBpZD1cImZpbGVJbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgI2ZpbGVJbnB1dFxuICAgICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICB0aXRsZT1cIlwiXG4gICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJoYW5kbGVGaWxlcygkZXZlbnQudGFyZ2V0LmZpbGVzKVwiXG4gICAgICAgICAgICAgICAgICAgW2FjY2VwdF09XCJhY2NlcHRcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9hPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,41 +0,0 @@
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: "18.2.13", ngImport: i0, type: BinaryFileUploadService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
36
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BinaryFileUploadService }); }
37
- }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BinaryFileUploadService, decorators: [{
39
- type: Injectable
40
- }] });
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluYXJ5LmZpbGUudXBsb2FkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLWZpbGUvc3JjL2xpYi9iaW5hcnkuZmlsZS51cGxvYWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsUUFBUSxFQUFFLFVBQVUsRUFBYSxNQUFNLE1BQU0sQ0FBQzs7QUFJdEQsTUFBTSxPQUFPLHVCQUF1QjtJQUV6QixTQUFTLENBQUMsS0FBZTtRQUM1QixNQUFNLGNBQWMsR0FBa0MsRUFBRSxDQUFDO1FBQ3pELEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ25DLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxRQUFnQyxFQUFFLEVBQUU7Z0JBQ3BFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ1osSUFBSSxDQUFDO3dCQUNELE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7d0JBQ2hDLHFCQUFxQjt3QkFDckIsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQW9CLEVBQUUsRUFBRTs0QkFDckMsUUFBUSxDQUFDLElBQUksQ0FBQztnQ0FDVixVQUFVLEVBQUUsWUFBWSxDQUNwQixDQUFFLEtBQUssQ0FBQyxNQUFxQixDQUFDLE1BQU0sQ0FBZ0IsQ0FBQztnQ0FDekQsSUFBSTs2QkFDUCxDQUFDLENBQUM7NEJBQ0gsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO3dCQUN4QixDQUFDLENBQUM7d0JBQ0YsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLEtBQW9CLEVBQUUsRUFBRTs0QkFDdEMsUUFBUSxDQUFDLEtBQUssQ0FBRSxLQUFLLENBQUMsTUFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDdkQsQ0FBQyxDQUFDO3dCQUNGLGlDQUFpQzt3QkFDakMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNuQyxDQUFDO29CQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7d0JBQ1gsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztvQkFDeEIsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDUixDQUFDO1FBQ0QsT0FBTyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDcEMsQ0FBQzsrR0E5QlEsdUJBQXVCO21IQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtiYXNlNjRlbmNvZGV9IGZyb20gJ0BkYmctcmlza2l0L2NvbW1vbic7XG5pbXBvcnQge2ZvcmtKb2luLCBPYnNlcnZhYmxlLCBTdWJzY3JpYmVyfSBmcm9tICdyeGpzJztcbmltcG9ydCB7QmluYXJ5RmlsZX0gZnJvbSAnLi9maWxlLnR5cGVzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEJpbmFyeUZpbGVVcGxvYWRTZXJ2aWNlIHtcblxuICAgIHB1YmxpYyByZWFkRmlsZXMoZmlsZXM6IEZpbGVMaXN0KTogT2JzZXJ2YWJsZTxCaW5hcnlGaWxlW10+IHtcbiAgICAgICAgY29uc3QgZmlsZU9zZXJ2YWJsZXM6IEFycmF5PE9ic2VydmFibGU8QmluYXJ5RmlsZT4+ID0gW107XG4gICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBBcnJheS5mcm9tKGZpbGVzKSkge1xuICAgICAgICAgICAgZmlsZU9zZXJ2YWJsZXMucHVzaChuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXI6IFN1YnNjcmliZXI8QmluYXJ5RmlsZT4pID0+IHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBIYW5kbGUgZXJyb3JzIGxvYWRcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoZXZlbnQ6IFByb2dyZXNzRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keUJhc2U2NDogYmFzZTY0ZW5jb2RlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKChldmVudC50YXJnZXQgYXMgRmlsZVJlYWRlcikucmVzdWx0KSBhcyBBcnJheUJ1ZmZlciksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlci5vbmVycm9yID0gKGV2ZW50OiBQcm9ncmVzc0V2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoKGV2ZW50LnRhcmdldCBhcyBGaWxlUmVhZGVyKS5lcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVhZCBmaWxlIGludG8gbWVtb3J5IGFzIFVURi04XG4gICAgICAgICAgICAgICAgICAgICAgICByZWFkZXIucmVhZEFzQXJyYXlCdWZmZXIoZmlsZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmb3JrSm9pbihmaWxlT3NlcnZhYmxlcyk7XG4gICAgfVxufVxuIl19
@@ -1,83 +0,0 @@
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: "18.2.13", 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: "18.2.13", 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: "18.2.13", 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
@@ -1,47 +0,0 @@
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: "18.2.13", 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: "18.2.13", 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: "18.2.13", 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=