@dbg-riskit/angular-file 15.0.1 → 16.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 (38) hide show
  1. package/esm2022/lib/abstract.file.download.directive.mjs +145 -0
  2. package/esm2022/lib/abstract.file.upload.component.mjs +90 -0
  3. package/esm2022/lib/binary.file.upload.component.mjs +26 -0
  4. package/{esm2020 → esm2022}/lib/binary.file.upload.service.mjs +4 -4
  5. package/esm2022/lib/csv.file.download.directive.mjs +86 -0
  6. package/esm2022/lib/csv.file.upload.component.mjs +50 -0
  7. package/{esm2020 → esm2022}/lib/csv.file.upload.service.mjs +4 -4
  8. package/esm2022/lib/download.menu.component.mjs +36 -0
  9. package/esm2022/lib/file.download.directive.mjs +56 -0
  10. package/{esm2020 → esm2022}/lib/file.module.mjs +26 -26
  11. package/esm2022/lib/file.size.pipe.mjs +35 -0
  12. package/esm2022/lib/text.file.upload.component.mjs +27 -0
  13. package/{esm2020 → esm2022}/lib/text.file.upload.service.mjs +4 -4
  14. package/{fesm2015 → fesm2022}/dbg-riskit-angular-file.mjs +102 -76
  15. package/fesm2022/dbg-riskit-angular-file.mjs.map +1 -0
  16. package/lib/abstract.file.download.directive.d.ts +1 -1
  17. package/lib/abstract.file.upload.component.d.ts +1 -1
  18. package/lib/csv.file.download.directive.d.ts +1 -1
  19. package/lib/csv.file.upload.component.d.ts +1 -1
  20. package/lib/download.menu.component.d.ts +1 -1
  21. package/lib/file.download.directive.d.ts +2 -2
  22. package/lib/file.types.d.ts +2 -2
  23. package/package.json +12 -18
  24. package/esm2020/lib/abstract.file.download.directive.mjs +0 -139
  25. package/esm2020/lib/abstract.file.upload.component.mjs +0 -84
  26. package/esm2020/lib/binary.file.upload.component.mjs +0 -25
  27. package/esm2020/lib/csv.file.download.directive.mjs +0 -83
  28. package/esm2020/lib/csv.file.upload.component.mjs +0 -47
  29. package/esm2020/lib/download.menu.component.mjs +0 -34
  30. package/esm2020/lib/file.download.directive.mjs +0 -53
  31. package/esm2020/lib/file.size.pipe.mjs +0 -34
  32. package/esm2020/lib/text.file.upload.component.mjs +0 -26
  33. package/fesm2015/dbg-riskit-angular-file.mjs.map +0 -1
  34. package/fesm2020/dbg-riskit-angular-file.mjs +0 -727
  35. package/fesm2020/dbg-riskit-angular-file.mjs.map +0 -1
  36. /package/{esm2020 → esm2022}/dbg-riskit-angular-file.mjs +0 -0
  37. /package/{esm2020 → esm2022}/lib/file.types.mjs +0 -0
  38. /package/{esm2020 → esm2022}/public_api.mjs +0 -0
@@ -8,8 +8,8 @@ export interface ValidationResult {
8
8
  result: boolean;
9
9
  messages?: string[];
10
10
  }
11
- export declare type CSVValidator = (file: CSVFile) => ValidationResult;
12
- export declare type CSVColumnNameMapper = (name: string) => string;
11
+ export type CSVValidator = (file: CSVFile) => ValidationResult;
12
+ export type CSVColumnNameMapper = (name: string) => string;
13
13
  export interface CSVRow {
14
14
  [key: string]: string;
15
15
  }
package/package.json CHANGED
@@ -1,26 +1,22 @@
1
1
  {
2
2
  "name": "@dbg-riskit/angular-file",
3
- "version": "15.0.1",
3
+ "version": "16.0.0",
4
4
  "license": "SEE LICENSE IN LICENSE",
5
5
  "peerDependencies": {
6
- "@angular/core": "^15.2.9",
7
- "@angular/platform-browser": "^15.2.9",
8
- "@angular/common": "^15.2.9",
9
- "@dbg-riskit/common": "~15.0.1",
10
- "@dbg-riskit/angular-common": "~15.0.1",
11
- "@dbg-riskit/angular-logging": "~15.0.1",
12
- "@dbg-riskit/angular-view": "~15.0.1",
6
+ "@angular/core": "^16.2.12",
7
+ "@angular/platform-browser": "^16.2.12",
8
+ "@angular/common": "^16.2.12",
9
+ "@dbg-riskit/common": "~16.0.0",
10
+ "@dbg-riskit/angular-common": "~16.0.0",
11
+ "@dbg-riskit/angular-logging": "~16.0.0",
12
+ "@dbg-riskit/angular-view": "~16.0.0",
13
13
  "rxjs": "~7.5.5",
14
14
  "file-saver": "^2.0.5"
15
15
  },
16
16
  "dependencies": {
17
17
  "tslib": "^2.3.1"
18
18
  },
19
- "module": "fesm2015/dbg-riskit-angular-file.mjs",
20
- "es2020": "fesm2020/dbg-riskit-angular-file.mjs",
21
- "esm2020": "esm2020/dbg-riskit-angular-file.mjs",
22
- "fesm2020": "fesm2020/dbg-riskit-angular-file.mjs",
23
- "fesm2015": "fesm2015/dbg-riskit-angular-file.mjs",
19
+ "module": "fesm2022/dbg-riskit-angular-file.mjs",
24
20
  "typings": "index.d.ts",
25
21
  "exports": {
26
22
  "./package.json": {
@@ -28,11 +24,9 @@
28
24
  },
29
25
  ".": {
30
26
  "types": "./index.d.ts",
31
- "esm2020": "./esm2020/dbg-riskit-angular-file.mjs",
32
- "es2020": "./fesm2020/dbg-riskit-angular-file.mjs",
33
- "es2015": "./fesm2015/dbg-riskit-angular-file.mjs",
34
- "node": "./fesm2015/dbg-riskit-angular-file.mjs",
35
- "default": "./fesm2020/dbg-riskit-angular-file.mjs"
27
+ "esm2022": "./esm2022/dbg-riskit-angular-file.mjs",
28
+ "esm": "./esm2022/dbg-riskit-angular-file.mjs",
29
+ "default": "./fesm2022/dbg-riskit-angular-file.mjs"
36
30
  }
37
31
  },
38
32
  "sideEffects": false
@@ -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
- }
132
- AbstractFileDownloadDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AbstractFileDownloadDirective, deps: [{ token: i0.ElementRef }, { token: i1.DialogService }, { token: i2.FileSizePipe }, { token: i3.Logger }], target: i0.ɵɵFactoryTarget.Directive });
133
- AbstractFileDownloadDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: AbstractFileDownloadDirective, inputs: { disabled: "disabled" }, usesInheritance: true, ngImport: i0 });
134
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AbstractFileDownloadDirective, decorators: [{
135
- type: Directive
136
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.DialogService }, { type: i2.FileSizePipe }, { type: i3.Logger }]; }, propDecorators: { disabled: [{
137
- type: Input
138
- }] } });
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QuZmlsZS5kb3dubG9hZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLWZpbGUvc3JjL2xpYi9hYnN0cmFjdC5maWxlLmRvd25sb2FkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFjLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUMsYUFBYSxFQUF5QyxNQUFNLDBCQUEwQixDQUFDO0FBQy9GLE9BQU8sRUFHSCxhQUFhLEVBR2IsbUJBQW1CLEVBSXRCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLFlBQVksQ0FBQztBQUNsQyxPQUFPLEVBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3BELE9BQU8sRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFJdkYsTUFBTSxPQUFnQiw2QkFBaUMsU0FBUSxhQUFhO0lBU3hFLFlBQW9DLFVBQXNCLEVBQ3RCLGFBQTRCLEVBQzVCLFlBQTBCLEVBQzFCLE1BQWM7UUFDOUMsS0FBSyxFQUFFLENBQUM7UUFKd0IsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBRWxELENBQUM7SUFFTyxVQUFVO1FBQ2QsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxRQUFRLEtBQUssSUFBSSxFQUFFO1lBQ2pELE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFFRCxJQUFJLElB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QUFPLEdBQUcsaUJBQWlCLENBQUM7b0JBQzVCLE1BQU07Z0JBQ1Y7b0JBQ0ksT0FBTyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUM7YUFDdEM7U0FDSjthQUFNO1lBQ0gsSUFBSSxTQUFTLElBQUksR0FBRyxFQUFFO2dCQUNsQixPQUFPLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQzthQUN6QjtpQkFBTTtnQkFDSCxPQUFPLEdBQUcsMEJBQTBCLENBQUM7Z0JBQ3JDLEtBQUssR0FBRyxTQUFTLENBQUM7YUFDckI7U0FDSjtRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUM7WUFDakMsVUFBVSxFQUFFLE9BQU87WUFDbkIsSUFBSSxFQUFRLFdBQVc7WUFDdkIsS0FBSztZQUNMLE9BQU87U0FDVixDQUFDLENBQUM7UUFDSCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxVQUFVLENBQUMsSUFBZ0IsRUFBRSxXQUE2QjtRQUM3RCxPQUFPLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN2QyxDQUFDOzswSEFqS2lCLDZCQUE2Qjs4R0FBN0IsNkJBQTZCOzJGQUE3Qiw2QkFBNkI7a0JBRGxELFNBQVM7NktBSUMsUUFBUTtzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QmFzZUNvbXBvbmVudCwgRGlhbG9nU2VydmljZSwgUHJvZ3Jlc3NMb2FkZXJDb21wb25lbnR9IGZyb20gJ0BkYmctcmlza2l0L2FuZ3VsYXItdmlldyc7XG5pbXBvcnQge1xuICAgIEVycm9yTWVzc2FnZSxcbiAgICBGaWxlV2l0aENvbnRlbnQsXG4gICAgaXNFdmVudE9iamVjdCxcbiAgICBMb2dnZXIsXG4gICAgT2JzZXJ2YWJsZUV2ZW50LFxuICAgIE9ic2VydmFibGVFdmVudFR5cGUsXG4gICAgT2JzZXJ2YWJsZVdpdGhQcm9ncmVzcyxcbiAgICBQcm9ncmVzc0V2ZW50LFxuICAgIFJlc3VsdEV2ZW50XG59IGZyb20gJ0BkYmctcmlza2l0L2NvbW1vbic7XG5pbXBvcnQge3NhdmVBc30gZnJvbSAnZmlsZS1zYXZlcic7XG5pbXBvcnQge0VNUFRZLCBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2NhdGNoRXJyb3IsIGZpbHRlciwgZmluYWxpemUsIG1hcCwgdGFrZSwgdGFrZVVudGlsLCB0YXB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7RmlsZVNpemVQaXBlfSBmcm9tICcuL2ZpbGUuc2l6ZS5waXBlJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RGaWxlRG93bmxvYWREaXJlY3RpdmU8VD4gZXh0ZW5kcyBCYXNlQ29tcG9uZW50IHtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRpc2FibGVkPzogYm9vbGVhbiB8IHN0cmluZztcblxuICAgIHB1YmxpYyBkYXRhPzogT2JzZXJ2YWJsZVdpdGhQcm9ncmVzczxUPlxuICAgICAgICB8IE9ic2VydmFibGU8VD5cbiAgICAgICAgfCBUO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgICAgICAgICAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGZpbGVTaXplUGlwZTogRmlsZVNpemVQaXBlLFxuICAgICAgICAgICAgICAgICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlcjogTG9nZ2VyKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZGlzYWJsZWQgPT09IHRydWUpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgPT0gbnVsbCkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG5cbiAgICAgICAgc3dpdGNoICh0eXBlb2YgdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgY2FzZSAnYm9vbGVhbic6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQ7XG4gICAgICAgICAgICBjYXNlICdzdHJpbmcnOlxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkLnRvTG93ZXJDYXNlKCkgPT09ICdkaXNhYmxlZCcgfHwgdGhpcy5kaXNhYmxlZC50b0xvd2VyQ2FzZSgpID09PSAndHJ1ZSc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGRvd25sb2FkKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pc0Rpc2FibGVkKCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRhdGEgPT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5sb2dnZXIuZXJyb3IobmV3IEVycm9yKCdObyBkYXRhIHByb3ZpZGVkIGZvciBkb3dubG9hZCEnKSk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmdldERhdGFPYnNlcnZhYmxlKHRoaXMuZGF0YSkucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCksXG4gICAgICAgICAgICB0YWtlKDEpLFxuICAgICAgICAgICAgbWFwKChkYXRhOiBUKSA9PiB0aGlzLm1hcFRvRmlsZShkYXRhKSlcbiAgICAgICAgKS5zdWJzY3JpYmUoKGZpbGUpID0+IHRoaXMuc3RvcmUoZmlsZSkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCBtYXBUb0ZpbGUoZGF0YTogVCk6IEZpbGVXaXRoQ29udGVudDtcblxuICAgIHByaXZhdGUgc3RvcmUoZmlsZTogRmlsZVdpdGhDb250ZW50KSB7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgc2F2ZUFzKGZpbGUuY29udGVudCwgZmlsZS5maWxlbmFtZSB8fCAnZGF0YS50eHQnKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXREYXRhT2JzZXJ2YWJsZShcbiAgICAgICAgZGF0YTogT2JzZXJ2YWJsZVdpdGhQcm9ncmVzczxUPlxuICAgICAgICAgICAgfCBPYnNlcnZhYmxlPFQ+XG4gICAgICAgICAgICB8IFRcbiAgICApOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgaWYgKCEoZGF0YSBpbnN0YW5jZW9mIE9ic2VydmFibGUpKSB7XG4gICAgICAgICAgICByZXR1cm4gb2YoZGF0YSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5kb3dubG9hZFdpdGhQcm9ncmVzcyhkYXRhKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGRvd25sb2FkV2l0aFByb2dyZXNzKFxuICAgICAgICBvYnNlcnZhYmxlV2l0aFByb2dyZXNzOiBPYnNlcnZhYmxlPFQgfCBPYnNlcnZhYmxlRXZlbnQ8VD4+XG4gICAgKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIGNvbnN0IGNhbmNlbGVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICAgICAgbGV0IGRpYWxvZzogUHJvZ3Jlc3NMb2FkZXJDb21wb25lbnQgfCB1bmRlZmluZWQ7XG5cbiAgICAgICAgcmV0dXJuIG9ic2VydmFibGVXaXRoUHJvZ3Jlc3MucGlwZShcbiAgICAgICAgICAgIHRha2VVbnRpbChjYW5jZWxlZCksXG4gICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpLFxuICAgICAgICAgICAgdGFwKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGRpYWxvZyA9IHRoaXMudXBkYXRlUHJvZ3Jlc3MoZXZlbnQsIGRpYWxvZywgY2FuY2VsZWQpO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiAhaXNFdmVudE9iamVjdChldmVudClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IChldmVudCBhcyBPYnNlcnZhYmxlRXZlbnQ8VD4pLnR5cGUgPT09IE9ic2VydmFibGVFdmVudFR5cGUuUmVzdWx0KSxcbiAgICAgICAgICAgIG1hcCgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXNFdmVudE9iamVjdChldmVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0RXZlbnQgPSBldmVudCBhcyBSZXN1bHRFdmVudDxUPjtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHJlc3VsdEV2ZW50LnJlc3VsdDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50IGFzIFQ7XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4gdGhpcy5wcm9jZXNzRXJyb3IoZXJyKSksXG4gICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGRpYWxvZyAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgIGRpYWxvZy5jbG9zZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVQcm9ncmVzcyhldmVudDogVCB8IE9ic2VydmFibGVFdmVudDxUPixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpYWxvZzogUHJvZ3Jlc3NMb2FkZXJDb21wb25lbnQgfCB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICBjYW5jZWxlZFN1YmplY3Q6IFN1YmplY3Q8dm9pZD4pIHtcbiAgICAgICAgaWYgKGlzRXZlbnRPYmplY3QoZXZlbnQpICYmIChldmVudCBhcyBPYnNlcnZhYmxlRXZlbnQ8VD4pLnR5cGUgPT09IE9ic2VydmFibGVFdmVudFR5cGUuUHJvZ3Jlc3MpIHtcbiAgICAgICAgICAgIGNvbnN0IHByb2dyZXNzRXZlbnQgPSBldmVudCBhcyBQcm9ncmVzc0V2ZW50O1xuICAgICAgICAgICAgaWYgKGRpYWxvZyA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgZGlhbG9nID0gdGhpcy5kaWFsb2dTZXJ2aWNlLnNob3dQcm9ncmVzc0xvYWRlckRpYWxvZyh7XG4gICAgICAgICAgICAgICAgICAgIHRpdGxlICAgICAgICAgOiAnRG93bmxvYWRpbmcgZmlsZS4uLicsXG4gICAgICAgICAgICAgICAgICAgIGNhbmNlbCAgICAgICAgOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYW5jZWxlZFN1YmplY3QubmV4dCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FuY2VsZWRTdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlRm9ybWF0dGVyOiB0aGlzLmZpbGVTaXplUGlwZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGlhbG9nLnZhbHVlID0gcHJvZ3Jlc3NFdmVudC5jdXJyZW50O1xuICAgICAgICAgICAgZGlhbG9nLnRvdGFsID0gcHJvZ3Jlc3NFdmVudC50b3RhbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGlhbG9nO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2Vzc0Vycm9yKGVycjogRXJyb3JNZXNzYWdlIHwgb2JqZWN0KSB7XG4gICAgICAgIGxldCB0aXRsZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gJ0ZhaWxlZCB0byBkb3dubG9hZCBmaWxlOic7XG4gICAgICAgIGxldCBtZXNzYWdlO1xuICAgICAgICBpZiAoJ2Vycm9yVHlwZScgaW4gKGVyciBhcyBFcnJvck1lc3NhZ2UpKSB7XG4gICAgICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2U6IEVycm9yTWVzc2FnZSA9IGVyciBhcyBFcnJvck1lc3NhZ2U7XG4gICAgICAgICAgICBzd2l0Y2ggKGVycm9yTWVzc2FnZS5zdGF0dXMpIHtcbiAgICAgICAgICAgICAgICBjYXNlIDQwMTpcbiAgICAgICAgICAgICAgICBjYXNlIDQwMzpcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICdZb3UgYXJlIG5vdCBhdXRob3JpemVkIHRvIGRvd25sb2FkIHRoaXMgZmlsZS4nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIDQwNDpcbiAgICAgICAgICAgICAgICAgICAgbWVzc2FnZSA9ICdGaWxlIG5vdCBmb3VuZC4nO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICBtZXNzYWdlID0gZXJyb3JNZXNzYWdlLm1lc3NhZ2U7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoJ21lc3NhZ2UnIGluIGVycikge1xuICAgICAgICAgICAgICAgIG1lc3NhZ2UgPSBlcnIubWVzc2FnZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbWVzc2FnZSA9ICdGYWlsZWQgdG8gZG93bmxvYWQgZmlsZS4nO1xuICAgICAgICAgICAgICAgIHRpdGxlID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGlhbG9nU2VydmljZS5zaG93TWVzc2FnZURpYWxvZyh7XG4gICAgICAgICAgICBkaWFsb2dUeXBlOiAnZXJyb3InLFxuICAgICAgICAgICAgaWNvbiAgICAgIDogJ2Nsb3VkX29mZicsXG4gICAgICAgICAgICB0aXRsZSxcbiAgICAgICAgICAgIG1lc3NhZ2VcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBFTVBUWTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBCbG9iIGNvbnN0cnVjdG9yIGZvciB0ZXN0aW5nIHB1cnBvc2VzLlxuICAgICAqL1xuICAgIHB1YmxpYyBjcmVhdGVCbG9iKGRhdGE6IEJsb2JQYXJ0W10sIGNvbnRlbnRUeXBlPzogQmxvYlByb3BlcnR5QmFnKSB7XG4gICAgICAgIHJldHVybiBuZXcgQmxvYihkYXRhLCBjb250ZW50VHlwZSk7XG4gICAgfVxufVxuXG5cbiJdfQ==
@@ -1,84 +0,0 @@
1
- import { Directive, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
- import { BaseComponent } from '@dbg-riskit/angular-view';
3
- import { ErrorType, toString } from '@dbg-riskit/common';
4
- import { first, takeUntil } from 'rxjs/operators';
5
- import * as i0 from "@angular/core";
6
- export class AbstractFileUploadComponent extends BaseComponent {
7
- constructor(renderer) {
8
- super();
9
- this.renderer = renderer;
10
- this.error = new EventEmitter(true);
11
- this.multiple = true;
12
- this.filesLoaded = new EventEmitter(true);
13
- this.fileInputHidden = false;
14
- this.raised = true;
15
- this.color = 'primary';
16
- this.disabled = false;
17
- }
18
- move(event) {
19
- if (this.fileInput && event.target !== this.fileInput.nativeElement) {
20
- this.renderer.setStyle(this.wrapper.nativeElement, 'left', `${event.offsetX}px`);
21
- }
22
- }
23
- handleFiles(fileList) {
24
- // Check for the various File API support.
25
- if ('FileReader' in window) {
26
- this.readFiles(fileList).pipe(takeUntil(this.destroyed), first()).subscribe((files) => {
27
- this.filesLoaded.emit(files);
28
- this.resetInputField();
29
- }, (error) => {
30
- this.error.emit({
31
- message: toString(error),
32
- errorType: ErrorType.ERROR,
33
- status: 0
34
- });
35
- this.resetInputField();
36
- });
37
- }
38
- else {
39
- this.error.emit({
40
- message: 'FileReader is not supported in your browser! A newer browser (IE 11+, Chrome 50+, '
41
- + 'FireFox 50+, Safari 9+) is required to use this application.',
42
- errorType: ErrorType.ERROR,
43
- status: 0
44
- });
45
- }
46
- }
47
- // Hide and show the input field to reset the selection
48
- resetInputField() {
49
- this.fileInputHidden = true;
50
- setTimeout(() => {
51
- this.fileInputHidden = false;
52
- });
53
- }
54
- }
55
- AbstractFileUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AbstractFileUploadComponent, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
56
- AbstractFileUploadComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: AbstractFileUploadComponent, inputs: { label: "label", accept: "accept", multiple: "multiple", raised: "raised", color: "color", icon: "icon", disabled: "disabled" }, outputs: { error: "error", filesLoaded: "filesLoaded" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true }], usesInheritance: true, ngImport: i0 });
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: AbstractFileUploadComponent, decorators: [{
58
- type: Directive
59
- }], ctorParameters: function () { return [{ type: i0.Renderer2 }]; }, propDecorators: { error: [{
60
- type: Output
61
- }], label: [{
62
- type: Input
63
- }], accept: [{
64
- type: Input
65
- }], multiple: [{
66
- type: Input
67
- }], filesLoaded: [{
68
- type: Output
69
- }], fileInput: [{
70
- type: ViewChild,
71
- args: ['fileInput']
72
- }], wrapper: [{
73
- type: ViewChild,
74
- args: ['wrapper']
75
- }], raised: [{
76
- type: Input
77
- }], color: [{
78
- type: Input
79
- }], icon: [{
80
- type: Input
81
- }], disabled: [{
82
- type: Input
83
- }] } });
84
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QuZmlsZS51cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvYW5ndWxhci1maWxlL3NyYy9saWIvYWJzdHJhY3QuZmlsZS51cGxvYWQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRXZHLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUN2RCxPQUFPLEVBQWUsU0FBUyxFQUFFLFFBQVEsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRXJFLE9BQU8sRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7O0FBSWhELE1BQU0sT0FBZ0IsMkJBQTZDLFNBQVEsYUFBYTtJQXFDcEYsWUFBdUMsUUFBbUI7UUFDdEQsS0FBSyxFQUFFLENBQUM7UUFEMkIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQWxDMUMsVUFBSyxHQUFHLElBQUksWUFBWSxDQUFlLElBQUksQ0FBQyxDQUFDO1FBU3RELGFBQVEsR0FBRyxJQUFJLENBQUM7UUFHUCxnQkFBVyxHQUFHLElBQUksWUFBWSxDQUFNLElBQUksQ0FBQyxDQUFDO1FBUW5ELG9CQUFlLEdBQUcsS0FBSyxDQUFDO1FBR3hCLFdBQU0sR0FBRyxJQUFJLENBQUM7UUFHZCxVQUFLLEdBQWtCLFNBQVMsQ0FBQztRQU1qQyxhQUFRLEdBQUcsS0FBSyxDQUFDO0lBSXhCLENBQUM7SUFFTSxJQUFJLENBQUMsS0FBaUI7UUFDekIsSUFBSSxJQUFJLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUU7WUFDakUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQVEsQ0FBQyxhQUFhLEVBQUUsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUM7U0FDckY7SUFDTCxDQUFDO0lBRU0sV0FBVyxDQUFDLFFBQWtCO1FBQ2pDLDBDQUEwQztRQUMxQyxJQUFJLFlBQVksSUFBSSxNQUFNLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQ3pCLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQ3pCLEtBQUssRUFBRSxDQUNWLENBQUMsU0FBUyxDQUNQLENBQUMsS0FBVSxFQUFFLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzdCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUMzQixDQUFDLEVBQ0QsQ0FBQyxLQUFhLEVBQUUsRUFBRTtnQkFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQztvQkFDWixPQUFPLEVBQUksUUFBUSxDQUFDLEtBQUssQ0FBQztvQkFDMUIsU0FBUyxFQUFFLFNBQVMsQ0FBQyxLQUFLO29CQUMxQixNQUFNLEVBQUssQ0FBQztpQkFDZixDQUFDLENBQUM7Z0JBQ0gsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQzNCLENBQUMsQ0FDSixDQUFDO1NBQ0w7YUFBTTtZQUNILElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUNaLE9BQU8sRUFBSSxvRkFBb0Y7c0JBQ2xGLDhEQUE4RDtnQkFDM0UsU0FBUyxFQUFFLFNBQVMsQ0FBQyxLQUFLO2dCQUMxQixNQUFNLEVBQUssQ0FBQzthQUNmLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUlELHVEQUF1RDtJQUMvQyxlQUFlO1FBQ25CLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBQzVCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztRQUNqQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O3dIQXJGaUIsMkJBQTJCOzRHQUEzQiwyQkFBMkI7MkZBQTNCLDJCQUEyQjtrQkFEaEQsU0FBUztnR0FJVSxLQUFLO3NCQURwQixNQUFNO2dCQUlBLEtBQUs7c0JBRFgsS0FBSztnQkFJQyxNQUFNO3NCQURaLEtBQUs7Z0JBSUMsUUFBUTtzQkFEZCxLQUFLO2dCQUlVLFdBQVc7c0JBRDFCLE1BQU07Z0JBSUEsU0FBUztzQkFEZixTQUFTO3VCQUFDLFdBQVc7Z0JBSWYsT0FBTztzQkFEYixTQUFTO3VCQUFDLFNBQVM7Z0JBTWIsTUFBTTtzQkFEWixLQUFLO2dCQUlDLEtBQUs7c0JBRFgsS0FBSztnQkFJQyxJQUFJO3NCQURWLEtBQUs7Z0JBSUMsUUFBUTtzQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgUmVuZGVyZXIyLCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtNYXRDb2xvclRoZW1lfSBmcm9tICdAZGJnLXJpc2tpdC9hbmd1bGFyLWNvbW1vbic7XG5pbXBvcnQge0Jhc2VDb21wb25lbnR9IGZyb20gJ0BkYmctcmlza2l0L2FuZ3VsYXItdmlldyc7XG5pbXBvcnQge0Vycm9yTWVzc2FnZSwgRXJyb3JUeXBlLCB0b1N0cmluZ30gZnJvbSAnQGRiZy1yaXNraXQvY29tbW9uJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge2ZpcnN0LCB0YWtlVW50aWx9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7SUZpbGV9IGZyb20gJy4vZmlsZS50eXBlcyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RmlsZVVwbG9hZENvbXBvbmVudDxUIGV4dGVuZHMgSUZpbGU+IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgcmVhZG9ubHkgZXJyb3IgPSBuZXcgRXZlbnRFbWl0dGVyPEVycm9yTWVzc2FnZT4odHJ1ZSk7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBsYWJlbD86IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGFjY2VwdD86IHN0cmluZztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG11bHRpcGxlID0gdHJ1ZTtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyByZWFkb25seSBmaWxlc0xvYWRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8VFtdPih0cnVlKTtcblxuICAgIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcpXG4gICAgcHVibGljIGZpbGVJbnB1dD86IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkKCd3cmFwcGVyJylcbiAgICBwdWJsaWMgd3JhcHBlcj86IEVsZW1lbnRSZWY7XG5cbiAgICBwdWJsaWMgZmlsZUlucHV0SGlkZGVuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyByYWlzZWQgPSB0cnVlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29sb3I6IE1hdENvbG9yVGhlbWUgPSAncHJpbWFyeSc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpY29uPzogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbW92ZShldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICBpZiAodGhpcy5maWxlSW5wdXQgJiYgZXZlbnQudGFyZ2V0ICE9PSB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMud3JhcHBlciEubmF0aXZlRWxlbWVudCwgJ2xlZnQnLCBgJHtldmVudC5vZmZzZXRYfXB4YCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgaGFuZGxlRmlsZXMoZmlsZUxpc3Q6IEZpbGVMaXN0KSB7XG4gICAgICAgIC8vIENoZWNrIGZvciB0aGUgdmFyaW91cyBGaWxlIEFQSSBzdXBwb3J0LlxuICAgICAgICBpZiAoJ0ZpbGVSZWFkZXInIGluIHdpbmRvdykge1xuICAgICAgICAgICAgdGhpcy5yZWFkRmlsZXMoZmlsZUxpc3QpLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkKSxcbiAgICAgICAgICAgICAgICBmaXJzdCgpXG4gICAgICAgICAgICApLnN1YnNjcmliZShcbiAgICAgICAgICAgICAgICAoZmlsZXM6IFRbXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmZpbGVzTG9hZGVkLmVtaXQoZmlsZXMpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2V0SW5wdXRGaWVsZCgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKGVycm9yOiBzdHJpbmcpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5lcnJvci5lbWl0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UgIDogdG9TdHJpbmcoZXJyb3IpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXJyb3JUeXBlOiBFcnJvclR5cGUuRVJST1IsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXMgICA6IDBcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXRJbnB1dEZpZWxkKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZXJyb3IuZW1pdCh7XG4gICAgICAgICAgICAgICAgbWVzc2FnZSAgOiAnRmlsZVJlYWRlciBpcyBub3Qgc3VwcG9ydGVkIGluIHlvdXIgYnJvd3NlciEgQSBuZXdlciBicm93c2VyIChJRSAxMSssIENocm9tZSA1MCssICdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICsgJ0ZpcmVGb3ggNTArLCBTYWZhcmkgOSspIGlzIHJlcXVpcmVkIHRvIHVzZSB0aGlzIGFwcGxpY2F0aW9uLicsXG4gICAgICAgICAgICAgICAgZXJyb3JUeXBlOiBFcnJvclR5cGUuRVJST1IsXG4gICAgICAgICAgICAgICAgc3RhdHVzICAgOiAwXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBhYnN0cmFjdCByZWFkRmlsZXMoZmlsZUxpc3Q6IEZpbGVMaXN0KTogT2JzZXJ2YWJsZTxUW10+O1xuXG4gICAgLy8gSGlkZSBhbmQgc2hvdyB0aGUgaW5wdXQgZmllbGQgdG8gcmVzZXQgdGhlIHNlbGVjdGlvblxuICAgIHByaXZhdGUgcmVzZXRJbnB1dEZpZWxkKCkge1xuICAgICAgICB0aGlzLmZpbGVJbnB1dEhpZGRlbiA9IHRydWU7XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5maWxlSW5wdXRIaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIl19
@@ -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
- }
17
- BinaryFileUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: BinaryFileUploadComponent, deps: [{ token: i1.BinaryFileUploadService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
18
- BinaryFileUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", 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]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
19
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", 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: function () { return [{ type: i1.BinaryFileUploadService }, { type: i0.Renderer2 }]; } });
25
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmluYXJ5LmZpbGUudXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BrZy9kYmctcmlza2l0L2FuZ3VsYXItZmlsZS9zcmMvbGliL2JpbmFyeS5maWxlLnVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLWZpbGUvc3JjL2xpYi9hYnN0cmFjdC5maWxlLnVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRTVFLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7QUFpQjdFLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSwyQkFBdUM7SUFFbEYsWUFBb0MsaUJBQTBDLEVBQzNELFFBQW1CO1FBQ2xDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUZnQixzQkFBaUIsR0FBakIsaUJBQWlCLENBQXlCO0lBRzlFLENBQUM7SUFFUyxTQUFTLENBQUMsUUFBa0I7UUFDbEMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7O3NIQVRRLHlCQUF5QjswR0FBekIseUJBQXlCLHlKQ25CdEMsZ3lDQXVDQTsyRkRwQmEseUJBQXlCO2tCQWJyQyxTQUFTOytCQUNlLHlCQUF5QixRQU16Qjt3QkFDakIsaUNBQWlDLEVBQUUsTUFBTTtxQkFDNUMsbUJBQ29CLHVCQUF1QixDQUFDLE1BQU0sdUJBQzlCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFJlbmRlcmVyMn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBYnN0cmFjdEZpbGVVcGxvYWRDb21wb25lbnR9IGZyb20gJy4vYWJzdHJhY3QuZmlsZS51cGxvYWQuY29tcG9uZW50JztcbmltcG9ydCB7QmluYXJ5RmlsZVVwbG9hZFNlcnZpY2V9IGZyb20gJy4vYmluYXJ5LmZpbGUudXBsb2FkLnNlcnZpY2UnO1xuaW1wb3J0IHtCaW5hcnlGaWxlfSBmcm9tICcuL2ZpbGUudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvciAgICAgICAgICAgOiAncmlzay1iaW5hcnktZmlsZS11cGxvYWQnLFxuICAgIHRlbXBsYXRlVXJsICAgICAgICA6ICdhYnN0cmFjdC5maWxlLnVwbG9hZC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzICAgICAgICAgIDogW1xuICAgICAgICAnLi4vLi4vLi4vY29tcG9uZW50LnNjc3MnLFxuICAgICAgICAnYWJzdHJhY3QuZmlsZS51cGxvYWQuY29tcG9uZW50LnNjc3MnXG4gICAgXSxcbiAgICBob3N0ICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICdbY2xhc3Mucmlzay1iaW5hcnktZmlsZS11cGxvYWRdJzogJ3RydWUnXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb24gICAgOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgQmluYXJ5RmlsZVVwbG9hZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RmlsZVVwbG9hZENvbXBvbmVudDxCaW5hcnlGaWxlPiB7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBmaWxlVXBsb2FkU2VydmljZTogQmluYXJ5RmlsZVVwbG9hZFNlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcbiAgICAgICAgc3VwZXIocmVuZGVyZXIpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZWFkRmlsZXMoZmlsZUxpc3Q6IEZpbGVMaXN0KTogT2JzZXJ2YWJsZTxCaW5hcnlGaWxlW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsZVVwbG9hZFNlcnZpY2UucmVhZEZpbGVzKGZpbGVMaXN0KTtcbiAgICB9XG59XG4iLCI8YSAqbmdJZj1cInJhaXNlZDsgZWxzZSBub3RSYWlzZWRcIlxuICAgbWF0LXJhaXNlZC1idXR0b25cbiAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICBbY29sb3JdPVwiY29sb3JcIlxuICAgKG1vdXNlbW92ZSk9XCJtb3ZlKCRldmVudClcIj5cbiAgICA8bWF0LWljb24gKm5nSWY9XCJpY29uXCI+e3tpY29ufX08L21hdC1pY29uPlxuICAgIHt7bGFiZWx9fVxuICAgIDxkaXYgI3dyYXBwZXJcbiAgICAgICAgIGNsYXNzPVwicmlzay1maWxlLXVwbG9hZC1pbnB1dC13cmFwcGVyXCI+XG4gICAgICAgIDxpbnB1dCAqbmdJZj1cIiFmaWxlSW5wdXRIaWRkZW5cIiB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgICBpZD1cImZpbGVJbnB1dFwiXG4gICAgICAgICAgICAgICAjZmlsZUlucHV0XG4gICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgIHRpdGxlPVwiXCJcbiAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlRmlsZXMoJGV2ZW50LnRhcmdldC5maWxlcylcIlxuICAgICAgICAgICAgICAgW2FjY2VwdF09XCJhY2NlcHRcIj5cbiAgICA8L2Rpdj5cbjwvYT5cbjxuZy10ZW1wbGF0ZSAjbm90UmFpc2VkPlxuICAgIDxhIG1hdC1idXR0b25cbiAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgIFtjb2xvcl09XCJjb2xvclwiXG4gICAgICAgKG1vdXNlbW92ZSk9XCJtb3ZlKCRldmVudClcIj5cbiAgICAgICAgPG1hdC1pY29uICpuZ0lmPVwiaWNvblwiPnt7aWNvbn19PC9tYXQtaWNvbj5cbiAgICAgICAge3tsYWJlbH19XG4gICAgICAgIDxkaXYgI3dyYXBwZXJcbiAgICAgICAgICAgICBjbGFzcz1cInJpc2stZmlsZS11cGxvYWQtaW5wdXQtd3JhcHBlclwiPlxuICAgICAgICAgICAgPGlucHV0ICpuZ0lmPVwiIWZpbGVJbnB1dEhpZGRlblwiIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICAgICAgICAgICBpZD1cImZpbGVJbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgI2ZpbGVJbnB1dFxuICAgICAgICAgICAgICAgICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICAgICB0aXRsZT1cIlwiXG4gICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJoYW5kbGVGaWxlcygkZXZlbnQudGFyZ2V0LmZpbGVzKVwiXG4gICAgICAgICAgICAgICAgICAgW2FjY2VwdF09XCJhY2NlcHRcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9hPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -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
- }
59
- CSVFileDownloadDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CSVFileDownloadDirective, deps: [{ token: i1.DateFormatter }, { token: i0.ElementRef }, { token: i1.DialogService }, { token: i2.FileSizePipe }, { token: i3.Logger }], target: i0.ɵɵFactoryTarget.Directive });
60
- CSVFileDownloadDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", 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 });
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", 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: function () { return [{ 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3N2LmZpbGUuZG93bmxvYWQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvYW5ndWxhci1maWxlL3NyYy9saWIvY3N2LmZpbGUuZG93bmxvYWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWMsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTNELE9BQU8sRUFBQyxZQUFZLEVBQW1ELFFBQVEsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBRTNHLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDOzs7OztBQVdqRixNQUFNLE9BQU8sd0JBQXlCLFNBQVEsNkJBQXdDO0lBZ0JsRixZQUFvQyxhQUE0QixFQUM3QyxVQUFzQixFQUN0QixhQUE0QixFQUM1QixZQUEwQixFQUMxQixNQUFjO1FBQzdCLEtBQUssQ0FBQyxVQUFVLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxNQUFNLENBQUMsQ0FBQztRQUx2QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUx6RCxhQUFRLEdBQUcsVUFBVSxDQUFDO1FBR3RCLG1CQUFjLEdBQUcsS0FBSyxDQUFDO0lBUTlCLENBQUM7SUFFUyxTQUFTLENBQUMsSUFBZTtRQUMvQixJQUFJLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFFakIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2QsT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUUvQixLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksRUFBRTtnQkFDcEIsT0FBTyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDbkM7U0FDSjtRQUVELE9BQU87WUFDSCxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7WUFDdkIsT0FBTyxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxPQUFPLENBQUMsRUFBRSxFQUFDLElBQUksRUFBRSxZQUFZLENBQUMsUUFBUSxFQUFDLENBQUM7U0FDckUsQ0FBQztJQUNOLENBQUM7SUFFTyxVQUFVLENBQUMsR0FBWTtRQUMzQixPQUFPLElBQUksQ0FBQyxPQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBZ0MsRUFBRSxFQUFFO1lBQzFELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDOUIsSUFBSSxVQUFVLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRWpDLElBQUksS0FBSyxZQUFZLElBQUksRUFBRTtnQkFDdkIsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUMxRDtZQUVELElBQUksTUFBTSxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBRTVDLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2pDLE1BQU0sR0FBRyxJQUFJLE1BQU0sR0FBRyxDQUFDO2FBQzFCO1lBRUQsT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN4QyxDQUFDO0lBRU8sWUFBWTtRQUNoQixPQUFPLElBQUksQ0FBQyxPQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBZ0MsRUFBRSxFQUFFO1lBQzFELE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDM0MsSUFBSSxNQUFNLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDNUMsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDakMsTUFBTSxHQUFHLElBQUksTUFBTSxHQUFHLENBQUM7YUFDMUI7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFTyxhQUFhO1FBQ2pCLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUNyQixPQUFPLE1BQU0sQ0FBQztTQUNqQjtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7O3FIQTVFUSx3QkFBd0I7eUdBQXhCLHdCQUF3QjsyRkFBeEIsd0JBQXdCO2tCQVBwQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLElBQUksRUFBTTt3QkFDTiwyQkFBMkIsRUFBRSxNQUFNO3dCQUNuQyxTQUFTLEVBQW9CLFlBQVk7cUJBQzVDO2lCQUNKO3lNQUlVLE9BQU87c0JBRGIsS0FBSzt1QkFBQywyQkFBMkI7Z0JBSTNCLElBQUk7c0JBRFYsS0FBSzt1QkFBQyxtQkFBbUI7Z0JBTW5CLFFBQVE7c0JBRGQsS0FBSzt1QkFBQyw0QkFBNEI7Z0JBSTVCLGNBQWM7c0JBRHBCLEtBQUs7dUJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGF0ZUZvcm1hdHRlciwgRGlhbG9nU2VydmljZX0gZnJvbSAnQGRiZy1yaXNraXQvYW5ndWxhci12aWV3JztcbmltcG9ydCB7Q09OVEVOVF9UWVBFLCBGaWxlV2l0aENvbnRlbnQsIExvZ2dlciwgT2JzZXJ2YWJsZVdpdGhQcm9ncmVzcywgdG9TdHJpbmd9IGZyb20gJ0BkYmctcmlza2l0L2NvbW1vbic7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBYnN0cmFjdEZpbGVEb3dubG9hZERpcmVjdGl2ZX0gZnJvbSAnLi9hYnN0cmFjdC5maWxlLmRvd25sb2FkLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0ZpbGVTaXplUGlwZX0gZnJvbSAnLi9maWxlLnNpemUucGlwZSc7XG5pbXBvcnQge0NTVkV4cG9ydENvbHVtbn0gZnJvbSAnLi9maWxlLnR5cGVzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmlzay1jc3YtZG93bmxvYWRdJyxcbiAgICBob3N0ICAgIDoge1xuICAgICAgICAnW2NsYXNzLnJpc2stY3N2LWRvd25sb2FkXSc6ICd0cnVlJyxcbiAgICAgICAgJyhjbGljayknICAgICAgICAgICAgICAgICAgOiAnZG93bmxvYWQoKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIENTVkZpbGVEb3dubG9hZERpcmVjdGl2ZSBleHRlbmRzIEFic3RyYWN0RmlsZURvd25sb2FkRGlyZWN0aXZlPHVua25vd25bXT4ge1xuXG4gICAgQElucHV0KCdyaXNrLWNzdi1kb3dubG9hZC1jb2x1bW5zJylcbiAgICBwdWJsaWMgY29sdW1ucz86IEFycmF5PENTVkV4cG9ydENvbHVtbjx1bmtub3duPj47XG5cbiAgICBASW5wdXQoJ3Jpc2stY3N2LWRvd25sb2FkJylcbiAgICBwdWJsaWMgZGF0YT86IE9ic2VydmFibGVXaXRoUHJvZ3Jlc3M8dW5rbm93bltdPlxuICAgICAgICB8IE9ic2VydmFibGU8dW5rbm93bltdPlxuICAgICAgICB8IHVua25vd25bXTtcblxuICAgIEBJbnB1dCgncmlzay1jc3YtZG93bmxvYWQtZmlsZW5hbWUnKVxuICAgIHB1YmxpYyBmaWxlbmFtZSA9ICdkYXRhLmNzdic7XG5cbiAgICBASW5wdXQoJ3Jpc2stY3N2LWRvd25sb2FkLWNybGYnKVxuICAgIHB1YmxpYyBjcmxmTGluZUVuZGluZyA9IGZhbHNlO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZGF0ZUZvcm1hdHRlcjogRGF0ZUZvcm1hdHRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgICAgICAgICAgICAgICAgZGlhbG9nU2VydmljZTogRGlhbG9nU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgZmlsZVNpemVQaXBlOiBGaWxlU2l6ZVBpcGUsXG4gICAgICAgICAgICAgICAgICAgICAgIGxvZ2dlcjogTG9nZ2VyKSB7XG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYsIGRpYWxvZ1NlcnZpY2UsIGZpbGVTaXplUGlwZSwgbG9nZ2VyKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgbWFwVG9GaWxlKGRhdGE6IHVua25vd25bXSk6IEZpbGVXaXRoQ29udGVudCB7XG4gICAgICAgIGxldCBjc3ZGaWxlID0gJyc7XG5cbiAgICAgICAgaWYgKHRoaXMuY29sdW1ucykge1xuICAgICAgICAgICAgY3N2RmlsZSArPSB0aGlzLmNyZWF0ZUhlYWRlcigpO1xuXG4gICAgICAgICAgICBmb3IgKGNvbnN0IHJvdyBvZiBkYXRhKSB7XG4gICAgICAgICAgICAgICAgY3N2RmlsZSArPSB0aGlzLnByb2Nlc3NSb3cocm93KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBmaWxlbmFtZTogdGhpcy5maWxlbmFtZSxcbiAgICAgICAgICAgIGNvbnRlbnQ6IHRoaXMuY3JlYXRlQmxvYihbY3N2RmlsZV0sIHt0eXBlOiBDT05URU5UX1RZUEUuVEVYVF9DU1Z9KVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2Vzc1Jvdyhyb3c6IHVua25vd24pOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW5zIS5tYXAoKGNvbHVtbjogQ1NWRXhwb3J0Q29sdW1uPHVua25vd24+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
- }
35
- CSVFileUploadComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CSVFileUploadComponent, deps: [{ token: i1.CSVFileUploadService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
36
- CSVFileUploadComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", 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]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", 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: function () { return [{ type: i1.CSVFileUploadService }, { type: i0.Renderer2 }]; }, propDecorators: { validator: [{
43
- type: Input
44
- }], nameMapper: [{
45
- type: Input
46
- }] } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3N2LmZpbGUudXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BrZy9kYmctcmlza2l0L2FuZ3VsYXItZmlsZS9zcmMvbGliL2Nzdi5maWxlLnVwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLWZpbGUvc3JjL2xpYi9hYnN0cmFjdC5maWxlLnVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNuRixPQUFPLEVBQWEsRUFBRSxFQUFFLFVBQVUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDekMsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7Ozs7OztBQWlCN0UsTUFBTSxPQUFPLHNCQUF1QixTQUFRLDJCQUFvQztJQVE1RSxZQUFvQyxpQkFBdUMsRUFBRSxRQUFtQjtRQUM1RixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFEZ0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFzQjtJQUUzRSxDQUFDO0lBRVMsU0FBUyxDQUFDLFFBQWtCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FDbkUsU0FBUyxDQUFDLENBQUMsS0FBZ0IsRUFBRSxFQUFFO1lBQzNCLE1BQU0sZ0JBQWdCLEdBQWEsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQzlCLENBQUMsSUFBYSxFQUFFLEVBQUU7Z0JBQ2QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUU7b0JBQzNDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBZSxFQUFFLEVBQUU7d0JBQ3hDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDbkMsQ0FBQyxDQUFDLENBQUM7aUJBQ047Z0JBQ0QsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxFQUFFO2dCQUNKLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3BCO2lCQUFNO2dCQUNILE9BQU8sVUFBVSxDQUFDLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN2RTtRQUNMLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDOzttSEFoQ1Esc0JBQXNCO3VHQUF0QixzQkFBc0IsaU5DcEJuQyxneUNBdUNBOzJGRG5CYSxzQkFBc0I7a0JBYmxDLFNBQVM7K0JBQ2Usc0JBQXNCLFFBTXRCO3dCQUNqQiw4QkFBOEIsRUFBRSxNQUFNO3FCQUN6QyxtQkFDb0IsdUJBQXVCLENBQUMsTUFBTSx1QkFDOUIsS0FBSzttSUFLbkIsU0FBUztzQkFEZixLQUFLO2dCQUlDLFVBQVU7c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0LCBSZW5kZXJlcjJ9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZiwgdGhyb3dFcnJvcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3N3aXRjaE1hcH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtBYnN0cmFjdEZpbGVVcGxvYWRDb21wb25lbnR9IGZyb20gJy4vYWJzdHJhY3QuZmlsZS51cGxvYWQuY29tcG9uZW50JztcbmltcG9ydCB7Q1NWRmlsZVVwbG9hZFNlcnZpY2V9IGZyb20gJy4vY3N2LmZpbGUudXBsb2FkLnNlcnZpY2UnO1xuaW1wb3J0IHtDU1ZDb2x1bW5OYW1lTWFwcGVyLCBDU1ZGaWxlLCBDU1ZWYWxpZGF0b3J9IGZyb20gJy4vZmlsZS50eXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yICAgICAgICAgICA6ICdyaXNrLWNzdi1maWxlLXVwbG9hZCcsXG4gICAgdGVtcGxhdGVVcmwgICAgICAgIDogJ2Fic3RyYWN0LmZpbGUudXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHMgICAgICAgICAgOiBbXG4gICAgICAgICcuLi8uLi8uLi9jb21wb25lbnQuc2NzcycsXG4gICAgICAgICdhYnN0cmFjdC5maWxlLnVwbG9hZC5jb21wb25lbnQuc2NzcydcbiAgICBdLFxuICAgIGhvc3QgICAgICAgICAgICAgICA6IHtcbiAgICAgICAgJ1tjbGFzcy5yaXNrLWNzdi1maWxlLXVwbG9hZF0nOiAndHJ1ZSdcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbiAgICA6IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBDU1ZGaWxlVXBsb2FkQ29tcG9uZW50IGV4dGVuZHMgQWJzdHJhY3RGaWxlVXBsb2FkQ29tcG9uZW50PENTVkZpbGU+IHtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHZhbGlkYXRvcj86IENTVlZhbGlkYXRvcjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG5hbWVNYXBwZXI/OiBDU1ZDb2x1bW5OYW1lTWFwcGVyO1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZmlsZVVwbG9hZFNlcnZpY2U6IENTVkZpbGVVcGxvYWRTZXJ2aWNlLCByZW5kZXJlcjogUmVuZGVyZXIyKSB7XG4gICAgICAgIHN1cGVyKHJlbmRlcmVyKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVhZEZpbGVzKGZpbGVMaXN0OiBGaWxlTGlzdCk6IE9ic2VydmFibGU8Q1NWRmlsZVtdPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpbGVVcGxvYWRTZXJ2aWNlLnJlYWRGaWxlcyhmaWxlTGlzdCwgdGhpcy5uYW1lTWFwcGVyKS5waXBlKFxuICAgICAgICAgICAgc3dpdGNoTWFwKChmaWxlczogQ1NWRmlsZVtdKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgdmFsaWRhdGlvbkVycm9yczogc3RyaW5nW10gPSBbXTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMudmFsaWRhdG9yIHx8IGZpbGVzLmV2ZXJ5KFxuICAgICAgICAgICAgICAgICAgICAoZmlsZTogQ1NWRmlsZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy52YWxpZGF0b3IhKGZpbGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQucmVzdWx0ICYmIHJlc3VsdC5tZXNzYWdlcyAhPSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0Lm1lc3NhZ2VzLmZvckVhY2goKG1lc3NhZ2U6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWxpZGF0aW9uRXJyb3JzLnB1c2gobWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gcmVzdWx0LnJlc3VsdDtcbiAgICAgICAgICAgICAgICAgICAgfSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKGZpbGVzKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhyb3dFcnJvcihgPGxpPiR7dmFsaWRhdGlvbkVycm9ycy5qb2luKCc8L2xpPjxsaT4nKX08L2xpPmApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiPGEgKm5nSWY9XCJyYWlzZWQ7IGVsc2Ugbm90UmFpc2VkXCJcbiAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgW2NvbG9yXT1cImNvbG9yXCJcbiAgIChtb3VzZW1vdmUpPVwibW92ZSgkZXZlbnQpXCI+XG4gICAgPG1hdC1pY29uICpuZ0lmPVwiaWNvblwiPnt7aWNvbn19PC9tYXQtaWNvbj5cbiAgICB7e2xhYmVsfX1cbiAgICA8ZGl2ICN3cmFwcGVyXG4gICAgICAgICBjbGFzcz1cInJpc2stZmlsZS11cGxvYWQtaW5wdXQtd3JhcHBlclwiPlxuICAgICAgICA8aW5wdXQgKm5nSWY9XCIhZmlsZUlucHV0SGlkZGVuXCIgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICAgICAgaWQ9XCJmaWxlSW5wdXRcIlxuICAgICAgICAgICAgICAgI2ZpbGVJbnB1dFxuICAgICAgICAgICAgICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICB0aXRsZT1cIlwiXG4gICAgICAgICAgICAgICAoY2hhbmdlKT1cImhhbmRsZUZpbGVzKCRldmVudC50YXJnZXQuZmlsZXMpXCJcbiAgICAgICAgICAgICAgIFthY2NlcHRdPVwiYWNjZXB0XCI+XG4gICAgPC9kaXY+XG48L2E+XG48bmctdGVtcGxhdGUgI25vdFJhaXNlZD5cbiAgICA8YSBtYXQtYnV0dG9uXG4gICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICBbY29sb3JdPVwiY29sb3JcIlxuICAgICAgIChtb3VzZW1vdmUpPVwibW92ZSgkZXZlbnQpXCI+XG4gICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImljb25cIj57e2ljb259fTwvbWF0LWljb24+XG4gICAgICAgIHt7bGFiZWx9fVxuICAgICAgICA8ZGl2ICN3cmFwcGVyXG4gICAgICAgICAgICAgY2xhc3M9XCJyaXNrLWZpbGUtdXBsb2FkLWlucHV0LXdyYXBwZXJcIj5cbiAgICAgICAgICAgIDxpbnB1dCAqbmdJZj1cIiFmaWxlSW5wdXRIaWRkZW5cIiB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgICAgICAgaWQ9XCJmaWxlSW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICNmaWxlSW5wdXRcbiAgICAgICAgICAgICAgICAgICBbbXVsdGlwbGVdPVwibXVsdGlwbGVcIlxuICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgdGl0bGU9XCJcIlxuICAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwiaGFuZGxlRmlsZXMoJGV2ZW50LnRhcmdldC5maWxlcylcIlxuICAgICAgICAgICAgICAgICAgIFthY2NlcHRdPVwiYWNjZXB0XCI+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvYT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -1,34 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/material/button";
4
- import * as i2 from "@angular/material/icon";
5
- import * as i3 from "@angular/material/menu";
6
- import * as i4 from "@angular/material/tooltip";
7
- import * as i5 from "./csv.file.download.directive";
8
- export class CSVDownloadMenuComponent {
9
- constructor() {
10
- this.menuLabel = 'Download';
11
- this.disabled = false;
12
- }
13
- }
14
- CSVDownloadMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CSVDownloadMenuComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15
- CSVDownloadMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: CSVDownloadMenuComponent, selector: "risk-download-menu", inputs: { menuLabel: "menuLabel", menuTooltip: "menuTooltip", columns: "columns", data: "data", disabled: "disabled", filename: "filename" }, host: { properties: { "class.risk-download-menu": "true" } }, ngImport: i0, template: "<mat-menu #downloadMenu=\"matMenu\"\n [overlapTrigger]=\"false\">\n <a mat-menu-item\n [risk-csv-download]=\"data\"\n [risk-csv-download-columns]=\"columns\"\n [risk-csv-download-filename]=\"filename\"\n [risk-csv-download-crlf]=\"true\">\n As CSV file (Windows)\n </a>\n <a mat-menu-item\n [risk-csv-download]=\"data\"\n [risk-csv-download-columns]=\"columns\"\n [risk-csv-download-filename]=\"filename\">\n As CSV file (Unix)\n </a>\n</mat-menu>\n\n<button mat-button\n #menu=\"matMenuTrigger\"\n [disabled]=\"disabled\"\n [matMenuTriggerFor]=\"downloadMenu\"\n [class.risk-menu-open]=\"menu.menuOpen\"\n [matTooltip]=\"menuTooltip\">\n <mat-icon>file_download</mat-icon>\n {{ menuLabel }}\n</button>\n", styles: [":host{display:block;padding:0;margin:0}:host>*{vertical-align:bottom}\n", ":host{display:inline-block}\n"], dependencies: [{ kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "directive", type: i5.CSVFileDownloadDirective, selector: "[risk-csv-download]", inputs: ["risk-csv-download-columns", "risk-csv-download", "risk-csv-download-filename", "risk-csv-download-crlf"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: CSVDownloadMenuComponent, decorators: [{
17
- type: Component,
18
- args: [{ selector: 'risk-download-menu', host: {
19
- '[class.risk-download-menu]': 'true'
20
- }, changeDetection: ChangeDetectionStrategy.OnPush, preserveWhitespaces: false, template: "<mat-menu #downloadMenu=\"matMenu\"\n [overlapTrigger]=\"false\">\n <a mat-menu-item\n [risk-csv-download]=\"data\"\n [risk-csv-download-columns]=\"columns\"\n [risk-csv-download-filename]=\"filename\"\n [risk-csv-download-crlf]=\"true\">\n As CSV file (Windows)\n </a>\n <a mat-menu-item\n [risk-csv-download]=\"data\"\n [risk-csv-download-columns]=\"columns\"\n [risk-csv-download-filename]=\"filename\">\n As CSV file (Unix)\n </a>\n</mat-menu>\n\n<button mat-button\n #menu=\"matMenuTrigger\"\n [disabled]=\"disabled\"\n [matMenuTriggerFor]=\"downloadMenu\"\n [class.risk-menu-open]=\"menu.menuOpen\"\n [matTooltip]=\"menuTooltip\">\n <mat-icon>file_download</mat-icon>\n {{ menuLabel }}\n</button>\n", styles: [":host{display:block;padding:0;margin:0}:host>*{vertical-align:bottom}\n", ":host{display:inline-block}\n"] }]
21
- }], propDecorators: { menuLabel: [{
22
- type: Input
23
- }], menuTooltip: [{
24
- type: Input
25
- }], columns: [{
26
- type: Input
27
- }], data: [{
28
- type: Input
29
- }], disabled: [{
30
- type: Input
31
- }], filename: [{
32
- type: Input
33
- }] } });
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWQubWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLWZpbGUvc3JjL2xpYi9kb3dubG9hZC5tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BrZy9kYmctcmlza2l0L2FuZ3VsYXItZmlsZS9zcmMvbGliL2Rvd25sb2FkLm1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFpQnhFLE1BQU0sT0FBTyx3QkFBd0I7SUFickM7UUFnQlcsY0FBUyxHQUFHLFVBQVUsQ0FBQztRQVl2QixhQUFRLEdBQUcsS0FBSyxDQUFDO0tBSTNCOztxSEFuQlksd0JBQXdCO3lHQUF4Qix3QkFBd0Isc1FDakJyQyx3ekJBMEJBOzJGRFRhLHdCQUF3QjtrQkFicEMsU0FBUzsrQkFDZSxvQkFBb0IsUUFNcEI7d0JBQ2pCLDRCQUE0QixFQUFFLE1BQU07cUJBQ3ZDLG1CQUNvQix1QkFBdUIsQ0FBQyxNQUFNLHVCQUM5QixLQUFLOzhCQUtuQixTQUFTO3NCQURmLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsSUFBSTtzQkFEVixLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxRQUFRO3NCQURkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0NTVkV4cG9ydENvbHVtbn0gZnJvbSAnLi9maWxlLnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3IgICAgICAgICAgIDogJ3Jpc2stZG93bmxvYWQtbWVudScsXG4gICAgdGVtcGxhdGVVcmwgICAgICAgIDogJ2Rvd25sb2FkLm1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJscyAgICAgICAgICA6IFtcbiAgICAgICAgJy4uLy4uLy4uL2NvbXBvbmVudC5zY3NzJyxcbiAgICAgICAgJ2Rvd25sb2FkLm1lbnUuY29tcG9uZW50LnNjc3MnXG4gICAgXSxcbiAgICBob3N0ICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICdbY2xhc3Mucmlzay1kb3dubG9hZC1tZW51XSc6ICd0cnVlJ1xuICAgIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uICAgIDogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIENTVkRvd25sb2FkTWVudUNvbXBvbmVudCB7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtZW51TGFiZWwgPSAnRG93bmxvYWQnO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbWVudVRvb2x0aXA/OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjb2x1bW5zPzogQXJyYXk8Q1NWRXhwb3J0Q29sdW1uPHVua25vd24+PjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGRhdGE/OiB1bmtub3duW10gfCBPYnNlcnZhYmxlPHVua25vd25bXT47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZmlsZW5hbWU/OiBzdHJpbmc7XG59XG4iLCI8bWF0LW1lbnUgI2Rvd25sb2FkTWVudT1cIm1hdE1lbnVcIlxuICAgICAgICAgIFtvdmVybGFwVHJpZ2dlcl09XCJmYWxzZVwiPlxuICAgIDxhIG1hdC1tZW51LWl0ZW1cbiAgICAgICBbcmlzay1jc3YtZG93bmxvYWRdPVwiZGF0YVwiXG4gICAgICAgW3Jpc2stY3N2LWRvd25sb2FkLWNvbHVtbnNdPVwiY29sdW1uc1wiXG4gICAgICAgW3Jpc2stY3N2LWRvd25sb2FkLWZpbGVuYW1lXT1cImZpbGVuYW1lXCJcbiAgICAgICBbcmlzay1jc3YtZG93bmxvYWQtY3JsZl09XCJ0cnVlXCI+XG4gICAgICAgIEFzIENTViBmaWxlIChXaW5kb3dzKVxuICAgIDwvYT5cbiAgICA8YSBtYXQtbWVudS1pdGVtXG4gICAgICAgW3Jpc2stY3N2LWRvd25sb2FkXT1cImRhdGFcIlxuICAgICAgIFtyaXNrLWNzdi1kb3dubG9hZC1jb2x1bW5zXT1cImNvbHVtbnNcIlxuICAgICAgIFtyaXNrLWNzdi1kb3dubG9hZC1maWxlbmFtZV09XCJmaWxlbmFtZVwiPlxuICAgICAgICBBcyBDU1YgZmlsZSAoVW5peClcbiAgICA8L2E+XG48L21hdC1tZW51PlxuXG48YnV0dG9uIG1hdC1idXR0b25cbiAgICAgICAgI21lbnU9XCJtYXRNZW51VHJpZ2dlclwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJkb3dubG9hZE1lbnVcIlxuICAgICAgICBbY2xhc3Mucmlzay1tZW51LW9wZW5dPVwibWVudS5tZW51T3BlblwiXG4gICAgICAgIFttYXRUb29sdGlwXT1cIm1lbnVUb29sdGlwXCI+XG4gICAgPG1hdC1pY29uPmZpbGVfZG93bmxvYWQ8L21hdC1pY29uPlxuICAgIHt7IG1lbnVMYWJlbCB9fVxuPC9idXR0b24+XG4iXX0=