@dbg-riskit/angular-file 12.3.0 → 13.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dbg-riskit-angular-file.d.ts +1 -0
- package/docs/README.md +1 -11
- package/{esm2015/dbg-riskit-angular-file.js → esm2020/dbg-riskit-angular-file.mjs} +0 -0
- package/esm2020/lib/abstract.file.download.directive.mjs +139 -0
- package/esm2020/lib/abstract.file.upload.component.mjs +84 -0
- package/esm2020/lib/binary.file.upload.component.mjs +25 -0
- package/esm2020/lib/binary.file.upload.service.mjs +41 -0
- package/esm2020/lib/csv.file.download.directive.mjs +83 -0
- package/esm2020/lib/csv.file.upload.component.mjs +47 -0
- package/esm2020/lib/csv.file.upload.service.mjs +108 -0
- package/esm2020/lib/download.menu.component.mjs +34 -0
- package/esm2020/lib/file.download.directive.mjs +53 -0
- package/esm2020/lib/file.module.mjs +78 -0
- package/esm2020/lib/file.size.pipe.mjs +34 -0
- package/{esm2015/lib/file.types.js → esm2020/lib/file.types.mjs} +0 -0
- package/esm2020/lib/text.file.upload.component.mjs +26 -0
- package/esm2020/lib/text.file.upload.service.mjs +41 -0
- package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
- package/fesm2015/dbg-riskit-angular-file.mjs +727 -0
- package/fesm2015/dbg-riskit-angular-file.mjs.map +1 -0
- package/fesm2020/dbg-riskit-angular-file.mjs +727 -0
- package/fesm2020/dbg-riskit-angular-file.mjs.map +1 -0
- package/lib/abstract.file.download.directive.d.ts +3 -0
- package/lib/abstract.file.upload.component.d.ts +3 -0
- package/lib/binary.file.upload.component.d.ts +3 -0
- package/lib/binary.file.upload.service.d.ts +3 -0
- package/lib/csv.file.download.directive.d.ts +3 -0
- package/lib/csv.file.upload.component.d.ts +3 -0
- package/lib/csv.file.upload.service.d.ts +3 -0
- package/lib/download.menu.component.d.ts +3 -0
- package/lib/file.download.directive.d.ts +3 -0
- package/lib/file.module.d.ts +14 -0
- package/lib/file.size.pipe.d.ts +3 -0
- package/lib/text.file.upload.component.d.ts +3 -0
- package/lib/text.file.upload.service.d.ts +3 -0
- package/package.json +27 -15
- package/bundles/dbg-riskit-angular-file.umd.js +0 -1129
- package/bundles/dbg-riskit-angular-file.umd.js.map +0 -1
- package/dbg-riskit-angular-file.metadata.json +0 -1
- package/esm2015/lib/abstract.file.download.directive.js +0 -141
- package/esm2015/lib/abstract.file.upload.component.js +0 -73
- package/esm2015/lib/binary.file.upload.component.js +0 -29
- package/esm2015/lib/binary.file.upload.service.js +0 -38
- package/esm2015/lib/csv.file.download.directive.js +0 -79
- package/esm2015/lib/csv.file.upload.component.js +0 -51
- package/esm2015/lib/csv.file.upload.service.js +0 -105
- package/esm2015/lib/download.menu.component.js +0 -28
- package/esm2015/lib/file.download.directive.js +0 -51
- package/esm2015/lib/file.module.js +0 -50
- package/esm2015/lib/file.size.pipe.js +0 -46
- package/esm2015/lib/text.file.upload.component.js +0 -30
- package/esm2015/lib/text.file.upload.service.js +0 -38
- package/fesm2015/dbg-riskit-angular-file.js +0 -704
- package/fesm2015/dbg-riskit-angular-file.js.map +0 -1
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import { Directive, ElementRef, Input } from '@angular/core';
|
|
2
|
-
import { DateFormatter, DialogService } from '@dbg-riskit/angular-view';
|
|
3
|
-
import { CONTENT_TYPE, Logger, toString } from '@dbg-riskit/common';
|
|
4
|
-
import { AbstractFileDownloadDirective } from './abstract.file.download.directive';
|
|
5
|
-
import { FileSizePipe } from './file.size.pipe';
|
|
6
|
-
export class CSVFileDownloadDirective extends AbstractFileDownloadDirective {
|
|
7
|
-
constructor(dateFormatter, elementRef, dialogService, fileSizePipe, logger) {
|
|
8
|
-
super(elementRef, dialogService, fileSizePipe, logger);
|
|
9
|
-
this.dateFormatter = dateFormatter;
|
|
10
|
-
this.filename = 'data.csv';
|
|
11
|
-
this.crlfLineEnding = false;
|
|
12
|
-
}
|
|
13
|
-
mapToFile(data) {
|
|
14
|
-
let csvFile = '';
|
|
15
|
-
if (this.columns) {
|
|
16
|
-
csvFile += this.createHeader();
|
|
17
|
-
for (const row of data) {
|
|
18
|
-
csvFile += this.processRow(row);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
return {
|
|
22
|
-
filename: this.filename,
|
|
23
|
-
content: this.createBlob([csvFile], { type: CONTENT_TYPE.TEXT_CSV })
|
|
24
|
-
};
|
|
25
|
-
}
|
|
26
|
-
processRow(row) {
|
|
27
|
-
return this.columns.map((column) => {
|
|
28
|
-
const value = column.get(row);
|
|
29
|
-
let innerValue = toString(value);
|
|
30
|
-
if (value instanceof Date) {
|
|
31
|
-
innerValue = this.dateFormatter.transform(value) || '';
|
|
32
|
-
}
|
|
33
|
-
let result = innerValue.replace(/"/g, '""');
|
|
34
|
-
if (result.search(/([",\n])/g) >= 0) {
|
|
35
|
-
result = `"${result}"`;
|
|
36
|
-
}
|
|
37
|
-
return result;
|
|
38
|
-
}).join(',') + this.getLineEnding();
|
|
39
|
-
}
|
|
40
|
-
createHeader() {
|
|
41
|
-
return this.columns.map((column) => {
|
|
42
|
-
const innerValue = toString(column.header);
|
|
43
|
-
let result = innerValue.replace(/"/g, '""');
|
|
44
|
-
if (result.search(/([",\n])/g) >= 0) {
|
|
45
|
-
result = `"${result}"`;
|
|
46
|
-
}
|
|
47
|
-
return result;
|
|
48
|
-
}).join(',') + this.getLineEnding();
|
|
49
|
-
}
|
|
50
|
-
getLineEnding() {
|
|
51
|
-
if (this.crlfLineEnding) {
|
|
52
|
-
return '\r\n';
|
|
53
|
-
}
|
|
54
|
-
return '\n';
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
CSVFileDownloadDirective.decorators = [
|
|
58
|
-
{ type: Directive, args: [{
|
|
59
|
-
selector: '[risk-csv-download]',
|
|
60
|
-
host: {
|
|
61
|
-
'[class.risk-csv-download]': 'true',
|
|
62
|
-
'(click)': 'download()'
|
|
63
|
-
}
|
|
64
|
-
},] }
|
|
65
|
-
];
|
|
66
|
-
CSVFileDownloadDirective.ctorParameters = () => [
|
|
67
|
-
{ type: DateFormatter },
|
|
68
|
-
{ type: ElementRef },
|
|
69
|
-
{ type: DialogService },
|
|
70
|
-
{ type: FileSizePipe },
|
|
71
|
-
{ type: Logger }
|
|
72
|
-
];
|
|
73
|
-
CSVFileDownloadDirective.propDecorators = {
|
|
74
|
-
columns: [{ type: Input, args: ['risk-csv-download-columns',] }],
|
|
75
|
-
data: [{ type: Input, args: ['risk-csv-download',] }],
|
|
76
|
-
filename: [{ type: Input, args: ['risk-csv-download-filename',] }],
|
|
77
|
-
crlfLineEnding: [{ type: Input, args: ['risk-csv-download-crlf',] }]
|
|
78
|
-
};
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3N2LmZpbGUuZG93bmxvYWQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvYW5ndWxhci1maWxlL3NyYy9saWIvY3N2LmZpbGUuZG93bmxvYWQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUMzRCxPQUFPLEVBQUMsYUFBYSxFQUFFLGFBQWEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3RFLE9BQU8sRUFBQyxZQUFZLEVBQW1CLE1BQU0sRUFBMEIsUUFBUSxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFFM0csT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDakYsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBVTlDLE1BQU0sT0FBTyx3QkFBeUIsU0FBUSw2QkFBd0M7SUFnQmxGLFlBQW9DLGFBQTRCLEVBQzdDLFVBQXNCLEVBQ3RCLGFBQTRCLEVBQzVCLFlBQTBCLEVBQzFCLE1BQWM7UUFDN0IsS0FBSyxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBTHZCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBTHpELGFBQVEsR0FBVyxVQUFVLENBQUM7UUFHOUIsbUJBQWMsR0FBWSxLQUFLLENBQUM7SUFRdkMsQ0FBQztJQUVTLFNBQVMsQ0FBQyxJQUFlO1FBQy9CLElBQUksT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUVqQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZCxPQUFPLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBRS9CLEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxFQUFFO2dCQUNwQixPQUFPLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUNuQztTQUNKO1FBRUQsT0FBTztZQUNILFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxFQUFFLEVBQUMsSUFBSSxFQUFFLFlBQVksQ0FBQyxRQUFRLEVBQUMsQ0FBQztTQUNyRSxDQUFDO0lBQ04sQ0FBQztJQUVPLFVBQVUsQ0FBQyxHQUFZO1FBQzNCLE9BQU8sSUFBSSxDQUFDLE9BQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFnQyxFQUFFLEVBQUU7WUFDMUQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUM5QixJQUFJLFVBQVUsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFakMsSUFBSSxLQUFLLFlBQVksSUFBSSxFQUFFO2dCQUN2QixVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO2FBQzFEO1lBRUQsSUFBSSxNQUFNLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFFNUMsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDakMsTUFBTSxHQUFHLElBQUksTUFBTSxHQUFHLENBQUM7YUFDMUI7WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFTyxZQUFZO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLE9BQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFnQyxFQUFFLEVBQUU7WUFDMUQsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMzQyxJQUFJLE1BQU0sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztZQUM1QyxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxFQUFFO2dCQUNqQyxNQUFNLEdBQUcsSUFBSSxNQUFNLEdBQUcsQ0FBQzthQUMxQjtZQUNELE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDeEMsQ0FBQztJQUVPLGFBQWE7UUFDakIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3JCLE9BQU8sTUFBTSxDQUFDO1NBQ2pCO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQzs7O1lBbkZKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUscUJBQXFCO2dCQUMvQixJQUFJLEVBQU07b0JBQ04sMkJBQTJCLEVBQUUsTUFBTTtvQkFDbkMsU0FBUyxFQUFvQixZQUFZO2lCQUM1QzthQUNKOzs7WUFiTyxhQUFhO1lBREYsVUFBVTtZQUNOLGFBQWE7WUFJNUIsWUFBWTtZQUhtQixNQUFNOzs7c0JBZXhDLEtBQUssU0FBQywyQkFBMkI7bUJBR2pDLEtBQUssU0FBQyxtQkFBbUI7dUJBS3pCLEtBQUssU0FBQyw0QkFBNEI7NkJBR2xDLEtBQUssU0FBQyx3QkFBd0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtEYXRlRm9ybWF0dGVyLCBEaWFsb2dTZXJ2aWNlfSBmcm9tICdAZGJnLXJpc2tpdC9hbmd1bGFyLXZpZXcnO1xuaW1wb3J0IHtDT05URU5UX1RZUEUsIEZpbGVXaXRoQ29udGVudCwgTG9nZ2VyLCBPYnNlcnZhYmxlV2l0aFByb2dyZXNzLCB0b1N0cmluZ30gZnJvbSAnQGRiZy1yaXNraXQvY29tbW9uJztcbmltcG9ydCB7T2JzZXJ2YWJsZX0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0Fic3RyYWN0RmlsZURvd25sb2FkRGlyZWN0aXZlfSBmcm9tICcuL2Fic3RyYWN0LmZpbGUuZG93bmxvYWQuZGlyZWN0aXZlJztcbmltcG9ydCB7RmlsZVNpemVQaXBlfSBmcm9tICcuL2ZpbGUuc2l6ZS5waXBlJztcbmltcG9ydCB7Q1NWRXhwb3J0Q29sdW1ufSBmcm9tICcuL2ZpbGUudHlwZXMnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tyaXNrLWNzdi1kb3dubG9hZF0nLFxuICAgIGhvc3QgICAgOiB7XG4gICAgICAgICdbY2xhc3Mucmlzay1jc3YtZG93bmxvYWRdJzogJ3RydWUnLFxuICAgICAgICAnKGNsaWNrKScgICAgICAgICAgICAgICAgICA6ICdkb3dubG9hZCgpJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgQ1NWRmlsZURvd25sb2FkRGlyZWN0aXZlIGV4dGVuZHMgQWJzdHJhY3RGaWxlRG93bmxvYWREaXJlY3RpdmU8dW5rbm93bltdPiB7XG5cbiAgICBASW5wdXQoJ3Jpc2stY3N2LWRvd25sb2FkLWNvbHVtbnMnKVxuICAgIHB1YmxpYyBjb2x1bW5zPzogQXJyYXk8Q1NWRXhwb3J0Q29sdW1uPHVua25vd24+PjtcblxuICAgIEBJbnB1dCgncmlzay1jc3YtZG93bmxvYWQnKVxuICAgIHB1YmxpYyBkYXRhPzogT2JzZXJ2YWJsZVdpdGhQcm9ncmVzczx1bmtub3duW10+XG4gICAgICAgIHwgT2JzZXJ2YWJsZTx1bmtub3duW10+XG4gICAgICAgIHwgdW5rbm93bltdO1xuXG4gICAgQElucHV0KCdyaXNrLWNzdi1kb3dubG9hZC1maWxlbmFtZScpXG4gICAgcHVibGljIGZpbGVuYW1lOiBzdHJpbmcgPSAnZGF0YS5jc3YnO1xuXG4gICAgQElucHV0KCdyaXNrLWNzdi1kb3dubG9hZC1jcmxmJylcbiAgICBwdWJsaWMgY3JsZkxpbmVFbmRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGRhdGVGb3JtYXR0ZXI6IERhdGVGb3JtYXR0ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgICAgICAgICAgICAgICAgIGRpYWxvZ1NlcnZpY2U6IERpYWxvZ1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgIGZpbGVTaXplUGlwZTogRmlsZVNpemVQaXBlLFxuICAgICAgICAgICAgICAgICAgICAgICBsb2dnZXI6IExvZ2dlcikge1xuICAgICAgICBzdXBlcihlbGVtZW50UmVmLCBkaWFsb2dTZXJ2aWNlLCBmaWxlU2l6ZVBpcGUsIGxvZ2dlcik7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG1hcFRvRmlsZShkYXRhOiB1bmtub3duW10pOiBGaWxlV2l0aENvbnRlbnQge1xuICAgICAgICBsZXQgY3N2RmlsZSA9ICcnO1xuXG4gICAgICAgIGlmICh0aGlzLmNvbHVtbnMpIHtcbiAgICAgICAgICAgIGNzdkZpbGUgKz0gdGhpcy5jcmVhdGVIZWFkZXIoKTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCByb3cgb2YgZGF0YSkge1xuICAgICAgICAgICAgICAgIGNzdkZpbGUgKz0gdGhpcy5wcm9jZXNzUm93KHJvdyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZmlsZW5hbWU6IHRoaXMuZmlsZW5hbWUsXG4gICAgICAgICAgICBjb250ZW50OiB0aGlzLmNyZWF0ZUJsb2IoW2NzdkZpbGVdLCB7dHlwZTogQ09OVEVOVF9UWVBFLlRFWFRfQ1NWfSlcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NSb3cocm93OiB1bmtub3duKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sdW1ucyEubWFwKChjb2x1bW46IENTVkV4cG9ydENvbHVtbjx1bmtub3duPikgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsdWUgPSBjb2x1bW4uZ2V0KHJvdyk7XG4gICAgICAgICAgICBsZXQgaW5uZXJWYWx1ZSA9IHRvU3RyaW5nKHZhbHVlKTtcblxuICAgICAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgICAgICAgIGlubmVyVmFsdWUgPSB0aGlzLmRhdGVGb3JtYXR0ZXIudHJhbnNmb3JtKHZhbHVlKSB8fCAnJztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGlubmVyVmFsdWUucmVwbGFjZSgvXCIvZywgJ1wiXCInKTtcblxuICAgICAgICAgICAgaWYgKHJlc3VsdC5zZWFyY2goLyhbXCIsXFxuXSkvZykgPj0gMCkge1xuICAgICAgICAgICAgICAgIHJlc3VsdCA9IGBcIiR7cmVzdWx0fVwiYDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfSkuam9pbignLCcpICsgdGhpcy5nZXRMaW5lRW5kaW5nKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVIZWFkZXIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sdW1ucyEubWFwKChjb2x1bW46IENTVkV4cG9ydENvbHVtbjx1bmtub3duPikgPT4ge1xuICAgICAgICAgICAgY29uc3QgaW5uZXJWYWx1ZSA9IHRvU3RyaW5nKGNvbHVtbi5oZWFkZXIpO1xuICAgICAgICAgICAgbGV0IHJlc3VsdCA9IGlubmVyVmFsdWUucmVwbGFjZSgvXCIvZywgJ1wiXCInKTtcbiAgICAgICAgICAgIGlmIChyZXN1bHQuc2VhcmNoKC8oW1wiLFxcbl0pL2cpID49IDApIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgPSBgXCIke3Jlc3VsdH1cImA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgICB9KS5qb2luKCcsJykgKyB0aGlzLmdldExpbmVFbmRpbmcoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldExpbmVFbmRpbmcoKSB7XG4gICAgICAgIGlmICh0aGlzLmNybGZMaW5lRW5kaW5nKSB7XG4gICAgICAgICAgICByZXR1cm4gJ1xcclxcbic7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICdcXG4nO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input, Renderer2 } 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 { CSVFileUploadService } from './csv.file.upload.service';
|
|
6
|
-
export class CSVFileUploadComponent extends AbstractFileUploadComponent {
|
|
7
|
-
constructor(fileUploadService, renderer) {
|
|
8
|
-
super(renderer);
|
|
9
|
-
this.fileUploadService = fileUploadService;
|
|
10
|
-
}
|
|
11
|
-
readFiles(fileList) {
|
|
12
|
-
return this.fileUploadService.readFiles(fileList, this.nameMapper).pipe(switchMap((files) => {
|
|
13
|
-
const validationErrors = [];
|
|
14
|
-
if (!this.validator || files.every((file) => {
|
|
15
|
-
const result = this.validator(file);
|
|
16
|
-
if (!result.result && result.messages != null) {
|
|
17
|
-
result.messages.forEach((message) => {
|
|
18
|
-
validationErrors.push(message);
|
|
19
|
-
});
|
|
20
|
-
}
|
|
21
|
-
return result.result;
|
|
22
|
-
})) {
|
|
23
|
-
return of(files);
|
|
24
|
-
}
|
|
25
|
-
else {
|
|
26
|
-
return throwError(`<li>${validationErrors.join('</li><li>')}</li>`);
|
|
27
|
-
}
|
|
28
|
-
}));
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
CSVFileUploadComponent.decorators = [
|
|
32
|
-
{ type: Component, args: [{
|
|
33
|
-
selector: 'risk-csv-file-upload',
|
|
34
|
-
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",
|
|
35
|
-
host: {
|
|
36
|
-
'[class.risk-csv-file-upload]': 'true'
|
|
37
|
-
},
|
|
38
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
39
|
-
preserveWhitespaces: false,
|
|
40
|
-
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"]
|
|
41
|
-
},] }
|
|
42
|
-
];
|
|
43
|
-
CSVFileUploadComponent.ctorParameters = () => [
|
|
44
|
-
{ type: CSVFileUploadService },
|
|
45
|
-
{ type: Renderer2 }
|
|
46
|
-
];
|
|
47
|
-
CSVFileUploadComponent.propDecorators = {
|
|
48
|
-
validator: [{ type: Input }],
|
|
49
|
-
nameMapper: [{ type: Input }]
|
|
50
|
-
};
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3N2LmZpbGUudXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BrZy9kYmctcmlza2l0L2FuZ3VsYXItZmlsZS9zcmMvbGliL2Nzdi5maWxlLnVwbG9hZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ25GLE9BQU8sRUFBYSxFQUFFLEVBQUUsVUFBVSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6QyxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUM3RSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSwyQkFBMkIsQ0FBQztBQWdCL0QsTUFBTSxPQUFPLHNCQUF1QixTQUFRLDJCQUFvQztJQVE1RSxZQUFvQyxpQkFBdUMsRUFBRSxRQUFtQjtRQUM1RixLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFEZ0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFzQjtJQUUzRSxDQUFDO0lBRVMsU0FBUyxDQUFDLFFBQWtCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FDbkUsU0FBUyxDQUFDLENBQUMsS0FBZ0IsRUFBRSxFQUFFO1lBQzNCLE1BQU0sZ0JBQWdCLEdBQWEsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQzlCLENBQUMsSUFBYSxFQUFFLEVBQUU7Z0JBQ2QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUU7b0JBQzNDLE1BQU0sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBZSxFQUFFLEVBQUU7d0JBQ3hDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDbkMsQ0FBQyxDQUFDLENBQUM7aUJBQ047Z0JBQ0QsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxFQUFFO2dCQUNKLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO2FBQ3BCO2lCQUFNO2dCQUNILE9BQU8sVUFBVSxDQUFDLE9BQU8sZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQzthQUN2RTtRQUNMLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDOzs7WUE3Q0osU0FBUyxTQUFDO2dCQUNQLFFBQVEsRUFBYSxzQkFBc0I7Z0JBQzNDLDB5Q0FBMEQ7Z0JBSzFELElBQUksRUFBaUI7b0JBQ2pCLDhCQUE4QixFQUFFLE1BQU07aUJBQ3pDO2dCQUNELGVBQWUsRUFBTSx1QkFBdUIsQ0FBQyxNQUFNO2dCQUNuRCxtQkFBbUIsRUFBRSxLQUFLOzthQUM3Qjs7O1lBZk8sb0JBQW9CO1lBSnVCLFNBQVM7Ozt3QkFzQnZELEtBQUs7eUJBR0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIFJlbmRlcmVyMn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGUsIG9mLCB0aHJvd0Vycm9yfSBmcm9tICdyeGpzJztcbmltcG9ydCB7c3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0Fic3RyYWN0RmlsZVVwbG9hZENvbXBvbmVudH0gZnJvbSAnLi9hYnN0cmFjdC5maWxlLnVwbG9hZC5jb21wb25lbnQnO1xuaW1wb3J0IHtDU1ZGaWxlVXBsb2FkU2VydmljZX0gZnJvbSAnLi9jc3YuZmlsZS51cGxvYWQuc2VydmljZSc7XG5pbXBvcnQge0NTVkNvbHVtbk5hbWVNYXBwZXIsIENTVkZpbGUsIENTVlZhbGlkYXRvcn0gZnJvbSAnLi9maWxlLnR5cGVzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3IgICAgICAgICAgIDogJ3Jpc2stY3N2LWZpbGUtdXBsb2FkJyxcbiAgICB0ZW1wbGF0ZVVybCAgICAgICAgOiAnYWJzdHJhY3QuZmlsZS51cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJscyAgICAgICAgICA6IFtcbiAgICAgICAgJy4uLy4uLy4uL2NvbXBvbmVudC5zY3NzJyxcbiAgICAgICAgJ2Fic3RyYWN0LmZpbGUudXBsb2FkLmNvbXBvbmVudC5zY3NzJ1xuICAgIF0sXG4gICAgaG9zdCAgICAgICAgICAgICAgIDoge1xuICAgICAgICAnW2NsYXNzLnJpc2stY3N2LWZpbGUtdXBsb2FkXSc6ICd0cnVlJ1xuICAgIH0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uICAgIDogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlXG59KVxuZXhwb3J0IGNsYXNzIENTVkZpbGVVcGxvYWRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZpbGVVcGxvYWRDb21wb25lbnQ8Q1NWRmlsZT4ge1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdmFsaWRhdG9yPzogQ1NWVmFsaWRhdG9yO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbmFtZU1hcHBlcj86IENTVkNvbHVtbk5hbWVNYXBwZXI7XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBmaWxlVXBsb2FkU2VydmljZTogQ1NWRmlsZVVwbG9hZFNlcnZpY2UsIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHtcbiAgICAgICAgc3VwZXIocmVuZGVyZXIpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZWFkRmlsZXMoZmlsZUxpc3Q6IEZpbGVMaXN0KTogT2JzZXJ2YWJsZTxDU1ZGaWxlW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsZVVwbG9hZFNlcnZpY2UucmVhZEZpbGVzKGZpbGVMaXN0LCB0aGlzLm5hbWVNYXBwZXIpLnBpcGUoXG4gICAgICAgICAgICBzd2l0Y2hNYXAoKGZpbGVzOiBDU1ZGaWxlW10pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCB2YWxpZGF0aW9uRXJyb3JzOiBzdHJpbmdbXSA9IFtdO1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy52YWxpZGF0b3IgfHwgZmlsZXMuZXZlcnkoXG4gICAgICAgICAgICAgICAgICAgIChmaWxlOiBDU1ZGaWxlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLnZhbGlkYXRvciEoZmlsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXJlc3VsdC5yZXN1bHQgJiYgcmVzdWx0Lm1lc3NhZ2VzICE9IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQubWVzc2FnZXMuZm9yRWFjaCgobWVzc2FnZTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbGlkYXRpb25FcnJvcnMucHVzaChtZXNzYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQucmVzdWx0O1xuICAgICAgICAgICAgICAgICAgICB9KSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoZmlsZXMpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aHJvd0Vycm9yKGA8bGk+JHt2YWxpZGF0aW9uRXJyb3JzLmpvaW4oJzwvbGk+PGxpPicpfTwvbGk+YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { toString } from '@dbg-riskit/common';
|
|
3
|
-
import { forkJoin, Observable } from 'rxjs';
|
|
4
|
-
// Create a regular expression to parse the CSV values.
|
|
5
|
-
const CSV_FILE_PATTERN = new RegExp((
|
|
6
|
-
// Delimiters.
|
|
7
|
-
'([,;]|\\r?\\n|\\r|^)' +
|
|
8
|
-
// Quoted fields.
|
|
9
|
-
'(?:"([^"]*(?:""[^"]*)*)"|' +
|
|
10
|
-
// Standard fields.
|
|
11
|
-
'([^",;\\r\\n]*))'), 'gi');
|
|
12
|
-
export class CSVFileUploadService {
|
|
13
|
-
readFiles(files, nameMapper = (name) => name) {
|
|
14
|
-
const fileOservables = [];
|
|
15
|
-
for (const file of Array.from(files)) {
|
|
16
|
-
fileOservables.push(new Observable((observer) => {
|
|
17
|
-
setTimeout(() => {
|
|
18
|
-
try {
|
|
19
|
-
const reader = new FileReader();
|
|
20
|
-
// Handle errors load
|
|
21
|
-
reader.onload = (event) => {
|
|
22
|
-
observer.next(CSVFileUploadService.getCSVFile(toString(event.target.result), file, nameMapper));
|
|
23
|
-
observer.complete();
|
|
24
|
-
};
|
|
25
|
-
reader.onerror = (event) => {
|
|
26
|
-
observer.error(event.target.error);
|
|
27
|
-
};
|
|
28
|
-
// Read file into memory as UTF-8
|
|
29
|
-
reader.readAsText(file);
|
|
30
|
-
}
|
|
31
|
-
catch (err) {
|
|
32
|
-
observer.error(err);
|
|
33
|
-
}
|
|
34
|
-
});
|
|
35
|
-
}));
|
|
36
|
-
}
|
|
37
|
-
return forkJoin(fileOservables);
|
|
38
|
-
}
|
|
39
|
-
static getCSVFile(content, file, nameMapper) {
|
|
40
|
-
// Create an array to hold our data. Give the array
|
|
41
|
-
// a default empty first row.
|
|
42
|
-
let arrData = [[]];
|
|
43
|
-
// Create an array to hold our individual pattern
|
|
44
|
-
// matching groups.
|
|
45
|
-
// Keep looping over the regular expression matches
|
|
46
|
-
// until we can no longer find a match.
|
|
47
|
-
while (true) {
|
|
48
|
-
const arrMatches = CSV_FILE_PATTERN.exec(content);
|
|
49
|
-
if (arrMatches == null) {
|
|
50
|
-
break;
|
|
51
|
-
}
|
|
52
|
-
// Get the delimiter that was found.
|
|
53
|
-
const strMatchedDelimiter = arrMatches[1];
|
|
54
|
-
// Check to see if the given delimiter has a length
|
|
55
|
-
// (is not the start of string) and if it matches
|
|
56
|
-
// field delimiter. If id does not, then we know
|
|
57
|
-
// that this delimiter is a row delimiter.
|
|
58
|
-
if (strMatchedDelimiter.length && strMatchedDelimiter !== ',' && strMatchedDelimiter !== ';') {
|
|
59
|
-
// Since we have reached a new row of data,
|
|
60
|
-
// add an empty row to our data array.
|
|
61
|
-
arrData.push([]);
|
|
62
|
-
}
|
|
63
|
-
let strMatchedValue;
|
|
64
|
-
// Now that we have our delimiter out of the way,
|
|
65
|
-
// let's check to see which kind of value we
|
|
66
|
-
// captured (quoted or unquoted).
|
|
67
|
-
if (arrMatches[2]) {
|
|
68
|
-
// We found a quoted value. When we capture
|
|
69
|
-
// this value, unescape any double quotes.
|
|
70
|
-
strMatchedValue = arrMatches[2].replace(new RegExp('""', 'g'), '"');
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
// We found a non-quoted value.
|
|
74
|
-
strMatchedValue = arrMatches[3];
|
|
75
|
-
}
|
|
76
|
-
// Now that we have our value string, let's add
|
|
77
|
-
// it to the data array.
|
|
78
|
-
arrData[arrData.length - 1].push(strMatchedValue);
|
|
79
|
-
}
|
|
80
|
-
// Filter out empty rows
|
|
81
|
-
arrData = arrData.filter((dataRow) => {
|
|
82
|
-
return dataRow.some((item) => item != null && item.trim() !== '');
|
|
83
|
-
});
|
|
84
|
-
// Return the parsed data.
|
|
85
|
-
return {
|
|
86
|
-
header: arrData[0],
|
|
87
|
-
body: arrData.slice(1).map((dataRow) => {
|
|
88
|
-
const row = {};
|
|
89
|
-
for (let i = 0; i < arrData[0].length; i++) {
|
|
90
|
-
row[nameMapper(arrData[0][i])] = dataRow[i];
|
|
91
|
-
}
|
|
92
|
-
return row;
|
|
93
|
-
}),
|
|
94
|
-
file: {
|
|
95
|
-
name: file.name,
|
|
96
|
-
size: file.size,
|
|
97
|
-
type: file.type
|
|
98
|
-
}
|
|
99
|
-
};
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
CSVFileUploadService.decorators = [
|
|
103
|
-
{ type: Injectable }
|
|
104
|
-
];
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3N2LmZpbGUudXBsb2FkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLWZpbGUvc3JjL2xpYi9jc3YuZmlsZS51cGxvYWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsUUFBUSxFQUFFLFVBQVUsRUFBYSxNQUFNLE1BQU0sQ0FBQztBQUd0RCx1REFBdUQ7QUFDdkQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLE1BQU0sQ0FDL0I7QUFDSSxjQUFjO0FBQ2Qsc0JBQXNCO0lBRXRCLGlCQUFpQjtJQUNqQiwyQkFBMkI7SUFFM0IsbUJBQW1CO0lBQ25CLGtCQUFrQixDQUNyQixFQUNELElBQUksQ0FDUCxDQUFDO0FBR0YsTUFBTSxPQUFPLG9CQUFvQjtJQUV0QixTQUFTLENBQUMsS0FBZSxFQUFFLGFBQWtDLENBQUMsSUFBWSxFQUFFLEVBQUUsQ0FBQyxJQUFJO1FBQ3RGLE1BQU0sY0FBYyxHQUErQixFQUFFLENBQUM7UUFDdEQsS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2xDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxVQUFVLENBQUMsQ0FBQyxRQUE2QixFQUFFLEVBQUU7Z0JBQ2pFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7b0JBQ1osSUFBSTt3QkFDQSxNQUFNLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRSxDQUFDO3dCQUNoQyxxQkFBcUI7d0JBQ3JCLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxLQUFvQixFQUFFLEVBQUU7NEJBQ3JDLFFBQVEsQ0FBQyxJQUFJLENBQ1Qsb0JBQW9CLENBQUMsVUFBVSxDQUMzQixRQUFRLENBQUUsS0FBSyxDQUFDLE1BQXFCLENBQUMsTUFBTSxDQUFDLEVBQzdDLElBQUksRUFDSixVQUFVLENBQUMsQ0FDbEIsQ0FBQzs0QkFDRixRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7d0JBQ3hCLENBQUMsQ0FBQzt3QkFDRixNQUFNLENBQUMsT0FBTyxHQUFHLENBQUMsS0FBb0IsRUFBRSxFQUFFOzRCQUN0QyxRQUFRLENBQUMsS0FBSyxDQUFFLEtBQUssQ0FBQyxNQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO3dCQUN2RCxDQUFDLENBQUM7d0JBQ0YsaUNBQWlDO3dCQUNqQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO3FCQUMzQjtvQkFBQyxPQUFPLEdBQUcsRUFBRTt3QkFDVixRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO3FCQUN2QjtnQkFDTCxDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDUDtRQUNELE9BQU8sUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxNQUFNLENBQUMsVUFBVSxDQUFDLE9BQWUsRUFBRSxJQUFVLEVBQUUsVUFBK0I7UUFDakYsbURBQW1EO1FBQ25ELDZCQUE2QjtRQUM3QixJQUFJLE9BQU8sR0FBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRS9CLGlEQUFpRDtRQUNqRCxtQkFBbUI7UUFFbkIsbURBQW1EO1FBQ25ELHVDQUF1QztRQUN2QyxPQUFPLElBQUksRUFBRTtZQUNULE1BQU0sVUFBVSxHQUFHLGdCQUFnQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNsRCxJQUFJLFVBQVUsSUFBSSxJQUFJLEVBQUU7Z0JBQ3BCLE1BQU07YUFDVDtZQUVELG9DQUFvQztZQUNwQyxNQUFNLG1CQUFtQixHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUUxQyxtREFBbUQ7WUFDbkQsaURBQWlEO1lBQ2pELGdEQUFnRDtZQUNoRCwwQ0FBMEM7WUFDMUMsSUFBSSxtQkFBbUIsQ0FBQyxNQUFNLElBQUksbUJBQW1CLEtBQUssR0FBRyxJQUFJLG1CQUFtQixLQUFLLEdBQUcsRUFBRTtnQkFDMUYsMkNBQTJDO2dCQUMzQyxzQ0FBc0M7Z0JBQ3RDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDcEI7WUFFRCxJQUFJLGVBQWUsQ0FBQztZQUVwQixpREFBaUQ7WUFDakQsNENBQTRDO1lBQzVDLGlDQUFpQztZQUNqQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFFZiwyQ0FBMkM7Z0JBQzNDLDBDQUEwQztnQkFDMUMsZUFBZSxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQ25DLElBQUksTUFBTSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsRUFDckIsR0FBRyxDQUNOLENBQUM7YUFFTDtpQkFBTTtnQkFFSCwrQkFBK0I7Z0JBQy9CLGVBQWUsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFFbkM7WUFFRCwrQ0FBK0M7WUFDL0Msd0JBQXdCO1lBQ3hCLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUNyRDtRQUVELHdCQUF3QjtRQUN4QixPQUFPLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE9BQWlCLEVBQUUsRUFBRTtZQUMzQyxPQUFPLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzlFLENBQUMsQ0FBQyxDQUFDO1FBRUgsMEJBQTBCO1FBQzFCLE9BQU87WUFDSCxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNsQixJQUFJLEVBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFpQixFQUFFLEVBQUU7Z0JBQy9DLE1BQU0sR0FBRyxHQUE4QixFQUFFLENBQUM7Z0JBQzFDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO29CQUN4QyxHQUFHLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUMvQztnQkFDRCxPQUFPLEdBQUcsQ0FBQztZQUNmLENBQUMsQ0FBQztZQUNGLElBQUksRUFBSTtnQkFDSixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTthQUNsQjtTQUNKLENBQUM7SUFDTixDQUFDOzs7WUE5R0osVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3RvU3RyaW5nfSBmcm9tICdAZGJnLXJpc2tpdC9jb21tb24nO1xuaW1wb3J0IHtmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgU3Vic2NyaWJlcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge0NTVkNvbHVtbk5hbWVNYXBwZXIsIENTVkZpbGV9IGZyb20gJy4vZmlsZS50eXBlcyc7XG5cbi8vIENyZWF0ZSBhIHJlZ3VsYXIgZXhwcmVzc2lvbiB0byBwYXJzZSB0aGUgQ1NWIHZhbHVlcy5cbmNvbnN0IENTVl9GSUxFX1BBVFRFUk4gPSBuZXcgUmVnRXhwKFxuICAgIChcbiAgICAgICAgLy8gRGVsaW1pdGVycy5cbiAgICAgICAgJyhbLDtdfFxcXFxyP1xcXFxufFxcXFxyfF4pJyArXG5cbiAgICAgICAgLy8gUXVvdGVkIGZpZWxkcy5cbiAgICAgICAgJyg/OlwiKFteXCJdKig/OlwiXCJbXlwiXSopKilcInwnICtcblxuICAgICAgICAvLyBTdGFuZGFyZCBmaWVsZHMuXG4gICAgICAgICcoW15cIiw7XFxcXHJcXFxcbl0qKSknXG4gICAgKSxcbiAgICAnZ2knXG4pO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ1NWRmlsZVVwbG9hZFNlcnZpY2Uge1xuXG4gICAgcHVibGljIHJlYWRGaWxlcyhmaWxlczogRmlsZUxpc3QsIG5hbWVNYXBwZXI6IENTVkNvbHVtbk5hbWVNYXBwZXIgPSAobmFtZTogc3RyaW5nKSA9PiBuYW1lKTogT2JzZXJ2YWJsZTxDU1ZGaWxlW10+IHtcbiAgICAgICAgY29uc3QgZmlsZU9zZXJ2YWJsZXM6IEFycmF5PE9ic2VydmFibGU8Q1NWRmlsZT4+ID0gW107XG4gICAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBBcnJheS5mcm9tKGZpbGVzKSkge1xuICAgICAgICAgICAgZmlsZU9zZXJ2YWJsZXMucHVzaChuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXI6IFN1YnNjcmliZXI8Q1NWRmlsZT4pID0+IHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBIYW5kbGUgZXJyb3JzIGxvYWRcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoZXZlbnQ6IFByb2dyZXNzRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBDU1ZGaWxlVXBsb2FkU2VydmljZS5nZXRDU1ZGaWxlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdG9TdHJpbmcoKGV2ZW50LnRhcmdldCBhcyBGaWxlUmVhZGVyKS5yZXN1bHQpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hbWVNYXBwZXIpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5jb21wbGV0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlci5vbmVycm9yID0gKGV2ZW50OiBQcm9ncmVzc0V2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoKGV2ZW50LnRhcmdldCBhcyBGaWxlUmVhZGVyKS5lcnJvcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gUmVhZCBmaWxlIGludG8gbWVtb3J5IGFzIFVURi04XG4gICAgICAgICAgICAgICAgICAgICAgICByZWFkZXIucmVhZEFzVGV4dChmaWxlKTtcbiAgICAgICAgICAgICAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5lcnJvcihlcnIpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZvcmtKb2luKGZpbGVPc2VydmFibGVzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldENTVkZpbGUoY29udGVudDogc3RyaW5nLCBmaWxlOiBGaWxlLCBuYW1lTWFwcGVyOiBDU1ZDb2x1bW5OYW1lTWFwcGVyKTogQ1NWRmlsZSB7XG4gICAgICAgIC8vIENyZWF0ZSBhbiBhcnJheSB0byBob2xkIG91ciBkYXRhLiBHaXZlIHRoZSBhcnJheVxuICAgICAgICAvLyBhIGRlZmF1bHQgZW1wdHkgZmlyc3Qgcm93LlxuICAgICAgICBsZXQgYXJyRGF0YTogc3RyaW5nW11bXSA9IFtbXV07XG5cbiAgICAgICAgLy8gQ3JlYXRlIGFuIGFycmF5IHRvIGhvbGQgb3VyIGluZGl2aWR1YWwgcGF0dGVyblxuICAgICAgICAvLyBtYXRjaGluZyBncm91cHMuXG5cbiAgICAgICAgLy8gS2VlcCBsb29waW5nIG92ZXIgdGhlIHJlZ3VsYXIgZXhwcmVzc2lvbiBtYXRjaGVzXG4gICAgICAgIC8vIHVudGlsIHdlIGNhbiBubyBsb25nZXIgZmluZCBhIG1hdGNoLlxuICAgICAgICB3aGlsZSAodHJ1ZSkge1xuICAgICAgICAgICAgY29uc3QgYXJyTWF0Y2hlcyA9IENTVl9GSUxFX1BBVFRFUk4uZXhlYyhjb250ZW50KTtcbiAgICAgICAgICAgIGlmIChhcnJNYXRjaGVzID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gR2V0IHRoZSBkZWxpbWl0ZXIgdGhhdCB3YXMgZm91bmQuXG4gICAgICAgICAgICBjb25zdCBzdHJNYXRjaGVkRGVsaW1pdGVyID0gYXJyTWF0Y2hlc1sxXTtcblxuICAgICAgICAgICAgLy8gQ2hlY2sgdG8gc2VlIGlmIHRoZSBnaXZlbiBkZWxpbWl0ZXIgaGFzIGEgbGVuZ3RoXG4gICAgICAgICAgICAvLyAoaXMgbm90IHRoZSBzdGFydCBvZiBzdHJpbmcpIGFuZCBpZiBpdCBtYXRjaGVzXG4gICAgICAgICAgICAvLyBmaWVsZCBkZWxpbWl0ZXIuIElmIGlkIGRvZXMgbm90LCB0aGVuIHdlIGtub3dcbiAgICAgICAgICAgIC8vIHRoYXQgdGhpcyBkZWxpbWl0ZXIgaXMgYSByb3cgZGVsaW1pdGVyLlxuICAgICAgICAgICAgaWYgKHN0ck1hdGNoZWREZWxpbWl0ZXIubGVuZ3RoICYmIHN0ck1hdGNoZWREZWxpbWl0ZXIgIT09ICcsJyAmJiBzdHJNYXRjaGVkRGVsaW1pdGVyICE9PSAnOycpIHtcbiAgICAgICAgICAgICAgICAvLyBTaW5jZSB3ZSBoYXZlIHJlYWNoZWQgYSBuZXcgcm93IG9mIGRhdGEsXG4gICAgICAgICAgICAgICAgLy8gYWRkIGFuIGVtcHR5IHJvdyB0byBvdXIgZGF0YSBhcnJheS5cbiAgICAgICAgICAgICAgICBhcnJEYXRhLnB1c2goW10pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgc3RyTWF0Y2hlZFZhbHVlO1xuXG4gICAgICAgICAgICAvLyBOb3cgdGhhdCB3ZSBoYXZlIG91ciBkZWxpbWl0ZXIgb3V0IG9mIHRoZSB3YXksXG4gICAgICAgICAgICAvLyBsZXQncyBjaGVjayB0byBzZWUgd2hpY2gga2luZCBvZiB2YWx1ZSB3ZVxuICAgICAgICAgICAgLy8gY2FwdHVyZWQgKHF1b3RlZCBvciB1bnF1b3RlZCkuXG4gICAgICAgICAgICBpZiAoYXJyTWF0Y2hlc1syXSkge1xuXG4gICAgICAgICAgICAgICAgLy8gV2UgZm91bmQgYSBxdW90ZWQgdmFsdWUuIFdoZW4gd2UgY2FwdHVyZVxuICAgICAgICAgICAgICAgIC8vIHRoaXMgdmFsdWUsIHVuZXNjYXBlIGFueSBkb3VibGUgcXVvdGVzLlxuICAgICAgICAgICAgICAgIHN0ck1hdGNoZWRWYWx1ZSA9IGFyck1hdGNoZXNbMl0ucmVwbGFjZShcbiAgICAgICAgICAgICAgICAgICAgbmV3IFJlZ0V4cCgnXCJcIicsICdnJyksXG4gICAgICAgICAgICAgICAgICAgICdcIidcbiAgICAgICAgICAgICAgICApO1xuXG4gICAgICAgICAgICB9IGVsc2Uge1xuXG4gICAgICAgICAgICAgICAgLy8gV2UgZm91bmQgYSBub24tcXVvdGVkIHZhbHVlLlxuICAgICAgICAgICAgICAgIHN0ck1hdGNoZWRWYWx1ZSA9IGFyck1hdGNoZXNbM107XG5cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gTm93IHRoYXQgd2UgaGF2ZSBvdXIgdmFsdWUgc3RyaW5nLCBsZXQncyBhZGRcbiAgICAgICAgICAgIC8vIGl0IHRvIHRoZSBkYXRhIGFycmF5LlxuICAgICAgICAgICAgYXJyRGF0YVthcnJEYXRhLmxlbmd0aCAtIDFdLnB1c2goc3RyTWF0Y2hlZFZhbHVlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEZpbHRlciBvdXQgZW1wdHkgcm93c1xuICAgICAgICBhcnJEYXRhID0gYXJyRGF0YS5maWx0ZXIoKGRhdGFSb3c6IHN0cmluZ1tdKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZGF0YVJvdy5zb21lKChpdGVtOiBzdHJpbmcpID0+IGl0ZW0gIT0gbnVsbCAmJiBpdGVtLnRyaW0oKSAhPT0gJycpO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBSZXR1cm4gdGhlIHBhcnNlZCBkYXRhLlxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgaGVhZGVyOiBhcnJEYXRhWzBdLFxuICAgICAgICAgICAgYm9keSAgOiBhcnJEYXRhLnNsaWNlKDEpLm1hcCgoZGF0YVJvdzogc3RyaW5nW10pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByb3c6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyckRhdGFbMF0ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgcm93W25hbWVNYXBwZXIoYXJyRGF0YVswXVtpXSldID0gZGF0YVJvd1tpXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIHJvdztcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgZmlsZSAgOiB7XG4gICAgICAgICAgICAgICAgbmFtZTogZmlsZS5uYW1lLFxuICAgICAgICAgICAgICAgIHNpemU6IGZpbGUuc2l6ZSxcbiAgICAgICAgICAgICAgICB0eXBlOiBmaWxlLnR5cGVcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Input } from '@angular/core';
|
|
2
|
-
export class CSVDownloadMenuComponent {
|
|
3
|
-
constructor() {
|
|
4
|
-
this.menuLabel = 'Download';
|
|
5
|
-
this.disabled = false;
|
|
6
|
-
}
|
|
7
|
-
}
|
|
8
|
-
CSVDownloadMenuComponent.decorators = [
|
|
9
|
-
{ type: Component, args: [{
|
|
10
|
-
selector: 'risk-download-menu',
|
|
11
|
-
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",
|
|
12
|
-
host: {
|
|
13
|
-
'[class.risk-download-menu]': 'true'
|
|
14
|
-
},
|
|
15
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
16
|
-
preserveWhitespaces: false,
|
|
17
|
-
styles: [":host{display:block;padding:0;margin:0}:host>*{vertical-align:bottom}\n", ":host{display:inline-block}\n"]
|
|
18
|
-
},] }
|
|
19
|
-
];
|
|
20
|
-
CSVDownloadMenuComponent.propDecorators = {
|
|
21
|
-
menuLabel: [{ type: Input }],
|
|
22
|
-
menuTooltip: [{ type: Input }],
|
|
23
|
-
columns: [{ type: Input }],
|
|
24
|
-
data: [{ type: Input }],
|
|
25
|
-
disabled: [{ type: Input }],
|
|
26
|
-
filename: [{ type: Input }]
|
|
27
|
-
};
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG93bmxvYWQubWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLWZpbGUvc3JjL2xpYi9kb3dubG9hZC5tZW51LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQztBQWlCeEUsTUFBTSxPQUFPLHdCQUF3QjtJQWJyQztRQWdCVyxjQUFTLEdBQVcsVUFBVSxDQUFDO1FBWS9CLGFBQVEsR0FBWSxLQUFLLENBQUM7SUFJckMsQ0FBQzs7O1lBaENBLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQWEsb0JBQW9CO2dCQUN6QyxrMEJBQW1EO2dCQUtuRCxJQUFJLEVBQWlCO29CQUNqQiw0QkFBNEIsRUFBRSxNQUFNO2lCQUN2QztnQkFDRCxlQUFlLEVBQU0sdUJBQXVCLENBQUMsTUFBTTtnQkFDbkQsbUJBQW1CLEVBQUUsS0FBSzs7YUFDN0I7Ozt3QkFHSSxLQUFLOzBCQUdMLEtBQUs7c0JBR0wsS0FBSzttQkFHTCxLQUFLO3VCQUdMLEtBQUs7dUJBR0wsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcbmltcG9ydCB7Q1NWRXhwb3J0Q29sdW1ufSBmcm9tICcuL2ZpbGUudHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvciAgICAgICAgICAgOiAncmlzay1kb3dubG9hZC1tZW51JyxcbiAgICB0ZW1wbGF0ZVVybCAgICAgICAgOiAnZG93bmxvYWQubWVudS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzICAgICAgICAgIDogW1xuICAgICAgICAnLi4vLi4vLi4vY29tcG9uZW50LnNjc3MnLFxuICAgICAgICAnZG93bmxvYWQubWVudS5jb21wb25lbnQuc2NzcydcbiAgICBdLFxuICAgIGhvc3QgICAgICAgICAgICAgICA6IHtcbiAgICAgICAgJ1tjbGFzcy5yaXNrLWRvd25sb2FkLW1lbnVdJzogJ3RydWUnXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb24gICAgOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2Vcbn0pXG5leHBvcnQgY2xhc3MgQ1NWRG93bmxvYWRNZW51Q29tcG9uZW50IHtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1lbnVMYWJlbDogc3RyaW5nID0gJ0Rvd25sb2FkJztcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG1lbnVUb29sdGlwPzogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29sdW1ucz86IEFycmF5PENTVkV4cG9ydENvbHVtbjx1bmtub3duPj47XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkYXRhPzogdW5rbm93bltdIHwgT2JzZXJ2YWJsZTx1bmtub3duW10+O1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZpbGVuYW1lPzogc3RyaW5nO1xufVxuIl19
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import { Directive, ElementRef, Input } from '@angular/core';
|
|
2
|
-
import { DialogService } from '@dbg-riskit/angular-view';
|
|
3
|
-
import { Logger } from '@dbg-riskit/common';
|
|
4
|
-
import { AbstractFileDownloadDirective } from './abstract.file.download.directive';
|
|
5
|
-
import { FileSizePipe } from './file.size.pipe';
|
|
6
|
-
export class FileDownloadDirective extends AbstractFileDownloadDirective {
|
|
7
|
-
constructor(elementRef, dialogService, fileSizePipe, logger) {
|
|
8
|
-
super(elementRef, dialogService, fileSizePipe, logger);
|
|
9
|
-
}
|
|
10
|
-
mapToFile(data) {
|
|
11
|
-
const filename = this.filename || 'data.txt';
|
|
12
|
-
if (data instanceof Blob) {
|
|
13
|
-
return {
|
|
14
|
-
content: data,
|
|
15
|
-
filename
|
|
16
|
-
};
|
|
17
|
-
}
|
|
18
|
-
if (typeof data === 'object' && 'content' in data && data.content instanceof Blob) {
|
|
19
|
-
return {
|
|
20
|
-
content: data.content,
|
|
21
|
-
filename: data.filename || filename
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
const stringData = typeof data === 'string' ? data : JSON.stringify(data);
|
|
25
|
-
return {
|
|
26
|
-
content: this.createBlob([stringData], { type: this.contentType }),
|
|
27
|
-
filename
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
FileDownloadDirective.decorators = [
|
|
32
|
-
{ type: Directive, args: [{
|
|
33
|
-
selector: '[risk-download]',
|
|
34
|
-
host: {
|
|
35
|
-
'[class.risk-download]': 'true',
|
|
36
|
-
'(click)': 'download()'
|
|
37
|
-
}
|
|
38
|
-
},] }
|
|
39
|
-
];
|
|
40
|
-
FileDownloadDirective.ctorParameters = () => [
|
|
41
|
-
{ type: ElementRef },
|
|
42
|
-
{ type: DialogService },
|
|
43
|
-
{ type: FileSizePipe },
|
|
44
|
-
{ type: Logger }
|
|
45
|
-
];
|
|
46
|
-
FileDownloadDirective.propDecorators = {
|
|
47
|
-
data: [{ type: Input, args: ['risk-download',] }],
|
|
48
|
-
contentType: [{ type: Input, args: ['risk-download-content-type',] }],
|
|
49
|
-
filename: [{ type: Input, args: ['risk-download-filename',] }]
|
|
50
|
-
};
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5kb3dubG9hZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLWZpbGUvc3JjL2xpYi9maWxlLmRvd25sb2FkLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDM0QsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBa0IsTUFBTSxFQUF5QixNQUFNLG9CQUFvQixDQUFDO0FBRW5GLE9BQU8sRUFBQyw2QkFBNkIsRUFBQyxNQUFNLG9DQUFvQyxDQUFDO0FBQ2pGLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQVc5QyxNQUFNLE9BQU8scUJBQXNCLFNBQVEsNkJBQXVEO0lBYTlGLFlBQW1CLFVBQXNCLEVBQ3RCLGFBQTRCLEVBQzVCLFlBQTBCLEVBQzFCLE1BQWM7UUFDN0IsS0FBSyxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFUyxTQUFTLENBQUMsSUFBOEI7UUFDOUMsTUFBTSxRQUFRLEdBQVcsSUFBSSxDQUFDLFFBQVEsSUFBSSxVQUFVLENBQUM7UUFDckQsSUFBSSxJQUFJLFlBQVksSUFBSSxFQUFFO1lBQ3RCLE9BQU87Z0JBQ0gsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsUUFBUTthQUNYLENBQUM7U0FDTDtRQUVELElBQUksT0FBTyxJQUFJLEtBQUssUUFBUSxJQUFJLFNBQVMsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLE9BQU8sWUFBWSxJQUFJLEVBQUU7WUFDL0UsT0FBTztnQkFDSCxPQUFPLEVBQUcsSUFBSSxDQUFDLE9BQU87Z0JBQ3RCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxJQUFJLFFBQVE7YUFDdEMsQ0FBQztTQUNMO1FBRUQsTUFBTSxVQUFVLEdBQUcsT0FBTyxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDMUUsT0FBTztZQUNILE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBQyxDQUFDO1lBQ2hFLFFBQVE7U0FDWCxDQUFDO0lBQ04sQ0FBQzs7O1lBaERKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQixJQUFJLEVBQU07b0JBQ04sdUJBQXVCLEVBQUUsTUFBTTtvQkFDL0IsU0FBUyxFQUFnQixZQUFZO2lCQUN4QzthQUNKOzs7WUFma0IsVUFBVTtZQUNyQixhQUFhO1lBSWIsWUFBWTtZQUhLLE1BQU07OzttQkFnQjFCLEtBQUssU0FBQyxlQUFlOzBCQUtyQixLQUFLLFNBQUMsNEJBQTRCO3VCQUdsQyxLQUFLLFNBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7RGlhbG9nU2VydmljZX0gZnJvbSAnQGRiZy1yaXNraXQvYW5ndWxhci12aWV3JztcbmltcG9ydCB7RmlsZVdpdGhDb250ZW50LCBMb2dnZXIsIE9ic2VydmFibGVXaXRoUHJvZ3Jlc3N9IGZyb20gJ0BkYmctcmlza2l0L2NvbW1vbic7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBYnN0cmFjdEZpbGVEb3dubG9hZERpcmVjdGl2ZX0gZnJvbSAnLi9hYnN0cmFjdC5maWxlLmRvd25sb2FkLmRpcmVjdGl2ZSc7XG5pbXBvcnQge0ZpbGVTaXplUGlwZX0gZnJvbSAnLi9maWxlLnNpemUucGlwZSc7XG5cbmV4cG9ydCB0eXBlIFN1cHBvcnRlZERvd25sb2FkRm9ybWF0cyA9IEZpbGVXaXRoQ29udGVudCB8IEJsb2IgfCBvYmplY3QgfCBzdHJpbmc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3Jpc2stZG93bmxvYWRdJyxcbiAgICBob3N0ICAgIDoge1xuICAgICAgICAnW2NsYXNzLnJpc2stZG93bmxvYWRdJzogJ3RydWUnLFxuICAgICAgICAnKGNsaWNrKScgICAgICAgICAgICAgIDogJ2Rvd25sb2FkKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBGaWxlRG93bmxvYWREaXJlY3RpdmUgZXh0ZW5kcyBBYnN0cmFjdEZpbGVEb3dubG9hZERpcmVjdGl2ZTxTdXBwb3J0ZWREb3dubG9hZEZvcm1hdHM+IHtcblxuICAgIEBJbnB1dCgncmlzay1kb3dubG9hZCcpXG4gICAgcHVibGljIGRhdGE/OiBPYnNlcnZhYmxlV2l0aFByb2dyZXNzPFN1cHBvcnRlZERvd25sb2FkRm9ybWF0cz5cbiAgICAgICAgfCBPYnNlcnZhYmxlPFN1cHBvcnRlZERvd25sb2FkRm9ybWF0cz5cbiAgICAgICAgfCBTdXBwb3J0ZWREb3dubG9hZEZvcm1hdHM7XG5cbiAgICBASW5wdXQoJ3Jpc2stZG93bmxvYWQtY29udGVudC10eXBlJylcbiAgICBwdWJsaWMgY29udGVudFR5cGU/OiBzdHJpbmc7XG5cbiAgICBASW5wdXQoJ3Jpc2stZG93bmxvYWQtZmlsZW5hbWUnKVxuICAgIHB1YmxpYyBmaWxlbmFtZT86IHN0cmluZztcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3RvcihlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICAgICAgICAgICAgICAgICBkaWFsb2dTZXJ2aWNlOiBEaWFsb2dTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICBmaWxlU2l6ZVBpcGU6IEZpbGVTaXplUGlwZSxcbiAgICAgICAgICAgICAgICAgICAgICAgbG9nZ2VyOiBMb2dnZXIpIHtcbiAgICAgICAgc3VwZXIoZWxlbWVudFJlZiwgZGlhbG9nU2VydmljZSwgZmlsZVNpemVQaXBlLCBsb2dnZXIpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBtYXBUb0ZpbGUoZGF0YTogU3VwcG9ydGVkRG93bmxvYWRGb3JtYXRzKTogRmlsZVdpdGhDb250ZW50IHtcbiAgICAgICAgY29uc3QgZmlsZW5hbWU6IHN0cmluZyA9IHRoaXMuZmlsZW5hbWUgfHwgJ2RhdGEudHh0JztcbiAgICAgICAgaWYgKGRhdGEgaW5zdGFuY2VvZiBCbG9iKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGNvbnRlbnQ6IGRhdGEsXG4gICAgICAgICAgICAgICAgZmlsZW5hbWVcbiAgICAgICAgICAgIH07XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodHlwZW9mIGRhdGEgPT09ICdvYmplY3QnICYmICdjb250ZW50JyBpbiBkYXRhICYmIGRhdGEuY29udGVudCBpbnN0YW5jZW9mIEJsb2IpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgY29udGVudCA6IGRhdGEuY29udGVudCxcbiAgICAgICAgICAgICAgICBmaWxlbmFtZTogZGF0YS5maWxlbmFtZSB8fCBmaWxlbmFtZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHN0cmluZ0RhdGEgPSB0eXBlb2YgZGF0YSA9PT0gJ3N0cmluZycgPyBkYXRhIDogSlNPTi5zdHJpbmdpZnkoZGF0YSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb250ZW50OiB0aGlzLmNyZWF0ZUJsb2IoW3N0cmluZ0RhdGFdLCB7dHlwZTogdGhpcy5jb250ZW50VHlwZX0pLFxuICAgICAgICAgICAgZmlsZW5hbWVcbiAgICAgICAgfTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { LoggingModule } from '@dbg-riskit/angular-logging';
|
|
4
|
-
import { CommonViewModule } from '@dbg-riskit/angular-view';
|
|
5
|
-
import { BinaryFileUploadComponent } from './binary.file.upload.component';
|
|
6
|
-
import { BinaryFileUploadService } from './binary.file.upload.service';
|
|
7
|
-
import { CSVFileDownloadDirective } from './csv.file.download.directive';
|
|
8
|
-
import { CSVFileUploadComponent } from './csv.file.upload.component';
|
|
9
|
-
import { CSVFileUploadService } from './csv.file.upload.service';
|
|
10
|
-
import { CSVDownloadMenuComponent } from './download.menu.component';
|
|
11
|
-
import { FileDownloadDirective } from './file.download.directive';
|
|
12
|
-
import { FileSizePipe } from './file.size.pipe';
|
|
13
|
-
import { TextFileUploadComponent } from './text.file.upload.component';
|
|
14
|
-
import { TextFileUploadService } from './text.file.upload.service';
|
|
15
|
-
export class FileModule {
|
|
16
|
-
}
|
|
17
|
-
FileModule.decorators = [
|
|
18
|
-
{ type: NgModule, args: [{
|
|
19
|
-
imports: [
|
|
20
|
-
CommonModule,
|
|
21
|
-
CommonViewModule,
|
|
22
|
-
LoggingModule
|
|
23
|
-
],
|
|
24
|
-
declarations: [
|
|
25
|
-
BinaryFileUploadComponent,
|
|
26
|
-
CSVFileUploadComponent,
|
|
27
|
-
TextFileUploadComponent,
|
|
28
|
-
CSVFileDownloadDirective,
|
|
29
|
-
CSVDownloadMenuComponent,
|
|
30
|
-
FileDownloadDirective,
|
|
31
|
-
FileSizePipe
|
|
32
|
-
],
|
|
33
|
-
exports: [
|
|
34
|
-
BinaryFileUploadComponent,
|
|
35
|
-
CSVFileUploadComponent,
|
|
36
|
-
TextFileUploadComponent,
|
|
37
|
-
CSVFileDownloadDirective,
|
|
38
|
-
CSVDownloadMenuComponent,
|
|
39
|
-
FileDownloadDirective,
|
|
40
|
-
FileSizePipe
|
|
41
|
-
],
|
|
42
|
-
providers: [
|
|
43
|
-
BinaryFileUploadService,
|
|
44
|
-
CSVFileUploadService,
|
|
45
|
-
TextFileUploadService,
|
|
46
|
-
FileSizePipe
|
|
47
|
-
]
|
|
48
|
-
},] }
|
|
49
|
-
];
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLWZpbGUvc3JjL2xpYi9maWxlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFDLHlCQUF5QixFQUFDLE1BQU0sZ0NBQWdDLENBQUM7QUFDekUsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDckUsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDdkUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDbkUsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDL0QsT0FBTyxFQUFDLHdCQUF3QixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDbkUsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDaEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBQ3JFLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBaUNqRSxNQUFNLE9BQU8sVUFBVTs7O1lBL0J0QixRQUFRLFNBQUM7Z0JBQ04sT0FBTyxFQUFPO29CQUNWLFlBQVk7b0JBQ1osZ0JBQWdCO29CQUNoQixhQUFhO2lCQUNoQjtnQkFDRCxZQUFZLEVBQUU7b0JBQ1YseUJBQXlCO29CQUN6QixzQkFBc0I7b0JBQ3RCLHVCQUF1QjtvQkFDdkIsd0JBQXdCO29CQUN4Qix3QkFBd0I7b0JBQ3hCLHFCQUFxQjtvQkFDckIsWUFBWTtpQkFDZjtnQkFDRCxPQUFPLEVBQU87b0JBQ1YseUJBQXlCO29CQUN6QixzQkFBc0I7b0JBQ3RCLHVCQUF1QjtvQkFDdkIsd0JBQXdCO29CQUN4Qix3QkFBd0I7b0JBQ3hCLHFCQUFxQjtvQkFDckIsWUFBWTtpQkFDZjtnQkFDRCxTQUFTLEVBQUs7b0JBQ1YsdUJBQXVCO29CQUN2QixvQkFBb0I7b0JBQ3BCLHFCQUFxQjtvQkFDckIsWUFBWTtpQkFDZjthQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge05nTW9kdWxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7TG9nZ2luZ01vZHVsZX0gZnJvbSAnQGRiZy1yaXNraXQvYW5ndWxhci1sb2dnaW5nJztcbmltcG9ydCB7Q29tbW9uVmlld01vZHVsZX0gZnJvbSAnQGRiZy1yaXNraXQvYW5ndWxhci12aWV3JztcbmltcG9ydCB7QmluYXJ5RmlsZVVwbG9hZENvbXBvbmVudH0gZnJvbSAnLi9iaW5hcnkuZmlsZS51cGxvYWQuY29tcG9uZW50JztcbmltcG9ydCB7QmluYXJ5RmlsZVVwbG9hZFNlcnZpY2V9IGZyb20gJy4vYmluYXJ5LmZpbGUudXBsb2FkLnNlcnZpY2UnO1xuaW1wb3J0IHtDU1ZGaWxlRG93bmxvYWREaXJlY3RpdmV9IGZyb20gJy4vY3N2LmZpbGUuZG93bmxvYWQuZGlyZWN0aXZlJztcbmltcG9ydCB7Q1NWRmlsZVVwbG9hZENvbXBvbmVudH0gZnJvbSAnLi9jc3YuZmlsZS51cGxvYWQuY29tcG9uZW50JztcbmltcG9ydCB7Q1NWRmlsZVVwbG9hZFNlcnZpY2V9IGZyb20gJy4vY3N2LmZpbGUudXBsb2FkLnNlcnZpY2UnO1xuaW1wb3J0IHtDU1ZEb3dubG9hZE1lbnVDb21wb25lbnR9IGZyb20gJy4vZG93bmxvYWQubWVudS5jb21wb25lbnQnO1xuaW1wb3J0IHtGaWxlRG93bmxvYWREaXJlY3RpdmV9IGZyb20gJy4vZmlsZS5kb3dubG9hZC5kaXJlY3RpdmUnO1xuaW1wb3J0IHtGaWxlU2l6ZVBpcGV9IGZyb20gJy4vZmlsZS5zaXplLnBpcGUnO1xuaW1wb3J0IHtUZXh0RmlsZVVwbG9hZENvbXBvbmVudH0gZnJvbSAnLi90ZXh0LmZpbGUudXBsb2FkLmNvbXBvbmVudCc7XG5pbXBvcnQge1RleHRGaWxlVXBsb2FkU2VydmljZX0gZnJvbSAnLi90ZXh0LmZpbGUudXBsb2FkLnNlcnZpY2UnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHMgICAgIDogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIENvbW1vblZpZXdNb2R1bGUsXG4gICAgICAgIExvZ2dpbmdNb2R1bGVcbiAgICBdLFxuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBCaW5hcnlGaWxlVXBsb2FkQ29tcG9uZW50LFxuICAgICAgICBDU1ZGaWxlVXBsb2FkQ29tcG9uZW50LFxuICAgICAgICBUZXh0RmlsZVVwbG9hZENvbXBvbmVudCxcbiAgICAgICAgQ1NWRmlsZURvd25sb2FkRGlyZWN0aXZlLFxuICAgICAgICBDU1ZEb3dubG9hZE1lbnVDb21wb25lbnQsXG4gICAgICAgIEZpbGVEb3dubG9hZERpcmVjdGl2ZSxcbiAgICAgICAgRmlsZVNpemVQaXBlXG4gICAgXSxcbiAgICBleHBvcnRzICAgICA6IFtcbiAgICAgICAgQmluYXJ5RmlsZVVwbG9hZENvbXBvbmVudCxcbiAgICAgICAgQ1NWRmlsZVVwbG9hZENvbXBvbmVudCxcbiAgICAgICAgVGV4dEZpbGVVcGxvYWRDb21wb25lbnQsXG4gICAgICAgIENTVkZpbGVEb3dubG9hZERpcmVjdGl2ZSxcbiAgICAgICAgQ1NWRG93bmxvYWRNZW51Q29tcG9uZW50LFxuICAgICAgICBGaWxlRG93bmxvYWREaXJlY3RpdmUsXG4gICAgICAgIEZpbGVTaXplUGlwZVxuICAgIF0sXG4gICAgcHJvdmlkZXJzICAgOiBbXG4gICAgICAgIEJpbmFyeUZpbGVVcGxvYWRTZXJ2aWNlLFxuICAgICAgICBDU1ZGaWxlVXBsb2FkU2VydmljZSxcbiAgICAgICAgVGV4dEZpbGVVcGxvYWRTZXJ2aWNlLFxuICAgICAgICBGaWxlU2l6ZVBpcGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVNb2R1bGUge1xufVxuIl19
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
// Copyright 2017 The Kubernetes Authors.
|
|
2
|
-
//
|
|
3
|
-
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
// you may not use this file except in compliance with the License.
|
|
5
|
-
// You may obtain a copy of the License at
|
|
6
|
-
//
|
|
7
|
-
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
//
|
|
9
|
-
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
// See the License for the specific language governing permissions and
|
|
13
|
-
// limitations under the License.
|
|
14
|
-
import { DecimalPipe } from '@angular/common';
|
|
15
|
-
import { Pipe } from '@angular/core';
|
|
16
|
-
export class FileSizePipe {
|
|
17
|
-
constructor(decimalPipe) {
|
|
18
|
-
this.decimalPipe = decimalPipe;
|
|
19
|
-
this.base = 1024;
|
|
20
|
-
this.powerSuffixes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB'];
|
|
21
|
-
}
|
|
22
|
-
transform(value) {
|
|
23
|
-
if (value == null) {
|
|
24
|
-
return '';
|
|
25
|
-
}
|
|
26
|
-
if (typeof value === 'string') {
|
|
27
|
-
value = parseFloat(value);
|
|
28
|
-
}
|
|
29
|
-
let divider = 1;
|
|
30
|
-
let power = 0;
|
|
31
|
-
while (value / divider > this.base && power < this.powerSuffixes.length - 1) {
|
|
32
|
-
divider *= this.base;
|
|
33
|
-
power += 1;
|
|
34
|
-
}
|
|
35
|
-
const formatted = this.decimalPipe.transform(value / divider, '1.2-2') || '';
|
|
36
|
-
const suffix = this.powerSuffixes[power];
|
|
37
|
-
return suffix ? `${formatted}${suffix}` : formatted;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
FileSizePipe.decorators = [
|
|
41
|
-
{ type: Pipe, args: [{ name: 'riskFileSize' },] }
|
|
42
|
-
];
|
|
43
|
-
FileSizePipe.ctorParameters = () => [
|
|
44
|
-
{ type: DecimalPipe }
|
|
45
|
-
];
|
|
46
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS5zaXplLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLWZpbGUvc3JjL2xpYi9maWxlLnNpemUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx5Q0FBeUM7QUFDekMsRUFBRTtBQUNGLGtFQUFrRTtBQUNsRSxtRUFBbUU7QUFDbkUsMENBQTBDO0FBQzFDLEVBQUU7QUFDRixpREFBaUQ7QUFDakQsRUFBRTtBQUNGLHNFQUFzRTtBQUN0RSxvRUFBb0U7QUFDcEUsMkVBQTJFO0FBQzNFLHNFQUFzRTtBQUN0RSxpQ0FBaUM7QUFFakMsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxJQUFJLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBSWxELE1BQU0sT0FBTyxZQUFZO0lBSXJCLFlBQW9DLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBSDNDLFNBQUksR0FBRyxJQUFJLENBQUM7UUFDWixrQkFBYSxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUdyRSxDQUFDO0lBRU0sU0FBUyxDQUFDLEtBQTZCO1FBQzFDLElBQUksS0FBSyxJQUFJLElBQUksRUFBRTtZQUNmLE9BQU8sRUFBRSxDQUFDO1NBQ2I7UUFFRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUMzQixLQUFLLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzdCO1FBRUQsSUFBSSxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztRQUVkLE9BQU8sS0FBSyxHQUFHLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxJQUFJLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDekUsT0FBTyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDckIsS0FBSyxJQUFJLENBQUMsQ0FBQztTQUNkO1FBRUQsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0UsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxTQUFTLEdBQUcsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUN4RCxDQUFDOzs7WUE1QkosSUFBSSxTQUFDLEVBQUMsSUFBSSxFQUFFLGNBQWMsRUFBQzs7O1lBSnBCLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgMjAxNyBUaGUgS3ViZXJuZXRlcyBBdXRob3JzLlxuLy9cbi8vIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4vLyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4vLyBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbi8vXG4vLyAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4vL1xuLy8gVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuLy8gZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuLy8gV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4vLyBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4vLyBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cblxuaW1wb3J0IHtEZWNpbWFsUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7UGlwZSwgUGlwZVRyYW5zZm9ybX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge01heWJlfSBmcm9tICdAZGJnLXJpc2tpdC9jb21tb24nO1xuXG5AUGlwZSh7bmFtZTogJ3Jpc2tGaWxlU2l6ZSd9KVxuZXhwb3J0IGNsYXNzIEZpbGVTaXplUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgYmFzZSA9IDEwMjQ7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwb3dlclN1ZmZpeGVzID0gWydCJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJywgJ1BCJ107XG5cbiAgICBwdWJsaWMgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBkZWNpbWFsUGlwZTogRGVjaW1hbFBpcGUpIHtcbiAgICB9XG5cbiAgICBwdWJsaWMgdHJhbnNmb3JtKHZhbHVlOiBNYXliZTxudW1iZXIgfCBzdHJpbmc+KTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHZhbHVlID09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHBhcnNlRmxvYXQodmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGRpdmlkZXIgPSAxO1xuICAgICAgICBsZXQgcG93ZXIgPSAwO1xuXG4gICAgICAgIHdoaWxlICh2YWx1ZSAvIGRpdmlkZXIgPiB0aGlzLmJhc2UgJiYgcG93ZXIgPCB0aGlzLnBvd2VyU3VmZml4ZXMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgZGl2aWRlciAqPSB0aGlzLmJhc2U7XG4gICAgICAgICAgICBwb3dlciArPSAxO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gdGhpcy5kZWNpbWFsUGlwZS50cmFuc2Zvcm0odmFsdWUgLyBkaXZpZGVyLCAnMS4yLTInKSB8fCAnJztcbiAgICAgICAgY29uc3Qgc3VmZml4ID0gdGhpcy5wb3dlclN1ZmZpeGVzW3Bvd2VyXTtcbiAgICAgICAgcmV0dXJuIHN1ZmZpeCA/IGAke2Zvcm1hdHRlZH0ke3N1ZmZpeH1gIDogZm9ybWF0dGVkO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, Renderer2 } from '@angular/core';
|
|
2
|
-
import { AbstractFileUploadComponent } from './abstract.file.upload.component';
|
|
3
|
-
import { TextFileUploadService } from './text.file.upload.service';
|
|
4
|
-
export class TextFileUploadComponent extends AbstractFileUploadComponent {
|
|
5
|
-
constructor(fileUploadService, renderer) {
|
|
6
|
-
super(renderer);
|
|
7
|
-
this.fileUploadService = fileUploadService;
|
|
8
|
-
}
|
|
9
|
-
readFiles(fileList) {
|
|
10
|
-
return this.fileUploadService
|
|
11
|
-
.readFiles(fileList);
|
|
12
|
-
}
|
|
13
|
-
}
|
|
14
|
-
TextFileUploadComponent.decorators = [
|
|
15
|
-
{ type: Component, args: [{
|
|
16
|
-
selector: 'risk-text-file-upload',
|
|
17
|
-
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",
|
|
18
|
-
host: {
|
|
19
|
-
'[class.risk-text-file-upload]': 'true'
|
|
20
|
-
},
|
|
21
|
-
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
22
|
-
preserveWhitespaces: false,
|
|
23
|
-
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
|
-
},] }
|
|
25
|
-
];
|
|
26
|
-
TextFileUploadComponent.ctorParameters = () => [
|
|
27
|
-
{ type: TextFileUploadService },
|
|
28
|
-
{ type: Renderer2 }
|
|
29
|
-
];
|
|
30
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5maWxlLnVwbG9hZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wa2cvZGJnLXJpc2tpdC9hbmd1bGFyLWZpbGUvc3JjL2xpYi90ZXh0LmZpbGUudXBsb2FkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUU1RSxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUU3RSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQWVqRSxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsMkJBQXFDO0lBRTlFLFlBQW9DLGlCQUF3QyxFQUN6RCxRQUFtQjtRQUNsQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFGZ0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUF1QjtJQUc1RSxDQUFDO0lBRVMsU0FBUyxDQUFDLFFBQWtCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQjthQUN4QixTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0IsQ0FBQzs7O1lBdkJKLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQWEsdUJBQXVCO2dCQUM1QywweUNBQTBEO2dCQUsxRCxJQUFJLEVBQWlCO29CQUNqQiwrQkFBK0IsRUFBRSxNQUFNO2lCQUMxQztnQkFDRCxlQUFlLEVBQU0sdUJBQXVCLENBQUMsTUFBTTtnQkFDbkQsbUJBQW1CLEVBQUUsS0FBSzs7YUFDN0I7OztZQWRPLHFCQUFxQjtZQUplLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIFJlbmRlcmVyMn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtBYnN0cmFjdEZpbGVVcGxvYWRDb21wb25lbnR9IGZyb20gJy4vYWJzdHJhY3QuZmlsZS51cGxvYWQuY29tcG9uZW50JztcbmltcG9ydCB7VGV4dEZpbGV9IGZyb20gJy4vZmlsZS50eXBlcyc7XG5pbXBvcnQge1RleHRGaWxlVXBsb2FkU2VydmljZX0gZnJvbSAnLi90ZXh0LmZpbGUudXBsb2FkLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvciAgICAgICAgICAgOiAncmlzay10ZXh0LWZpbGUtdXBsb2FkJyxcbiAgICB0ZW1wbGF0ZVVybCAgICAgICAgOiAnYWJzdHJhY3QuZmlsZS51cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJscyAgICAgICAgICA6IFtcbiAgICAgICAgJy4uLy4uLy4uL2NvbXBvbmVudC5zY3NzJyxcbiAgICAgICAgJ2Fic3RyYWN0LmZpbGUudXBsb2FkLmNvbXBvbmVudC5zY3NzJ1xuICAgIF0sXG4gICAgaG9zdCAgICAgICAgICAgICAgIDoge1xuICAgICAgICAnW2NsYXNzLnJpc2stdGV4dC1maWxlLXVwbG9hZF0nOiAndHJ1ZSdcbiAgICB9LFxuICAgIGNoYW5nZURldGVjdGlvbiAgICA6IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBwcmVzZXJ2ZVdoaXRlc3BhY2VzOiBmYWxzZVxufSlcbmV4cG9ydCBjbGFzcyBUZXh0RmlsZVVwbG9hZENvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RmlsZVVwbG9hZENvbXBvbmVudDxUZXh0RmlsZT4ge1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZmlsZVVwbG9hZFNlcnZpY2U6IFRleHRGaWxlVXBsb2FkU2VydmljZSxcbiAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICAgICAgICBzdXBlcihyZW5kZXJlcik7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlYWRGaWxlcyhmaWxlTGlzdDogRmlsZUxpc3QpOiBPYnNlcnZhYmxlPFRleHRGaWxlW10+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsZVVwbG9hZFNlcnZpY2VcbiAgICAgICAgICAgIC5yZWFkRmlsZXMoZmlsZUxpc3QpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { toString } from '@dbg-riskit/common';
|
|
3
|
-
import { forkJoin, Observable } from 'rxjs';
|
|
4
|
-
export class TextFileUploadService {
|
|
5
|
-
readFiles(files) {
|
|
6
|
-
const fileOservables = [];
|
|
7
|
-
for (const file of Array.from(files)) {
|
|
8
|
-
fileOservables.push(new Observable((observer) => {
|
|
9
|
-
setTimeout(() => {
|
|
10
|
-
try {
|
|
11
|
-
const reader = new FileReader();
|
|
12
|
-
// Handle errors load
|
|
13
|
-
reader.onload = (event) => {
|
|
14
|
-
observer.next({
|
|
15
|
-
body: toString(event.target.result),
|
|
16
|
-
file
|
|
17
|
-
});
|
|
18
|
-
observer.complete();
|
|
19
|
-
};
|
|
20
|
-
reader.onerror = (event) => {
|
|
21
|
-
observer.error(event.target.error);
|
|
22
|
-
};
|
|
23
|
-
// Read file into memory as UTF-8
|
|
24
|
-
reader.readAsText(file);
|
|
25
|
-
}
|
|
26
|
-
catch (err) {
|
|
27
|
-
observer.error(err);
|
|
28
|
-
}
|
|
29
|
-
});
|
|
30
|
-
}));
|
|
31
|
-
}
|
|
32
|
-
return forkJoin(fileOservables);
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
TextFileUploadService.decorators = [
|
|
36
|
-
{ type: Injectable }
|
|
37
|
-
];
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5maWxlLnVwbG9hZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGtnL2RiZy1yaXNraXQvYW5ndWxhci1maWxlL3NyYy9saWIvdGV4dC5maWxlLnVwbG9hZC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLG9CQUFvQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxRQUFRLEVBQUUsVUFBVSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBSXRELE1BQU0sT0FBTyxxQkFBcUI7SUFFdkIsU0FBUyxDQUFDLEtBQWU7UUFDNUIsTUFBTSxjQUFjLEdBQWdDLEVBQUUsQ0FBQztRQUN2RCxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDbEMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLFVBQVUsQ0FBQyxDQUFDLFFBQThCLEVBQUUsRUFBRTtnQkFDbEUsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDWixJQUFJO3dCQUNBLE1BQU0sTUFBTSxHQUFHLElBQUksVUFBVSxFQUFFLENBQUM7d0JBQ2hDLHFCQUFxQjt3QkFDckIsTUFBTSxDQUFDLE1BQU0sR0FBRyxDQUFDLEtBQW9CLEVBQUUsRUFBRTs0QkFDckMsUUFBUSxDQUFDLElBQUksQ0FBQztnQ0FDVixJQUFJLEVBQUUsUUFBUSxDQUFFLEtBQUssQ0FBQyxNQUFxQixDQUFDLE1BQU0sQ0FBQztnQ0FDbkQsSUFBSTs2QkFDUCxDQUFDLENBQUM7NEJBQ0gsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO3dCQUN4QixDQUFDLENBQUM7d0JBQ0YsTUFBTSxDQUFDLE9BQU8sR0FBRyxDQUFDLEtBQW9CLEVBQUUsRUFBRTs0QkFDdEMsUUFBUSxDQUFDLEtBQUssQ0FBRSxLQUFLLENBQUMsTUFBcUIsQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDdkQsQ0FBQyxDQUFDO3dCQUNGLGlDQUFpQzt3QkFDakMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztxQkFDM0I7b0JBQUMsT0FBTyxHQUFHLEVBQUU7d0JBQ1YsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztxQkFDdkI7Z0JBQ0wsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ1A7UUFDRCxPQUFPLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUNwQyxDQUFDOzs7WUE5QkosVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3RvU3RyaW5nfSBmcm9tICdAZGJnLXJpc2tpdC9jb21tb24nO1xuaW1wb3J0IHtmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgU3Vic2NyaWJlcn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge1RleHRGaWxlfSBmcm9tICcuL2ZpbGUudHlwZXMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgVGV4dEZpbGVVcGxvYWRTZXJ2aWNlIHtcblxuICAgIHB1YmxpYyByZWFkRmlsZXMoZmlsZXM6IEZpbGVMaXN0KTogT2JzZXJ2YWJsZTxUZXh0RmlsZVtdPiB7XG4gICAgICAgIGNvbnN0IGZpbGVPc2VydmFibGVzOiBBcnJheTxPYnNlcnZhYmxlPFRleHRGaWxlPj4gPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCBmaWxlIG9mIEFycmF5LmZyb20oZmlsZXMpKSB7XG4gICAgICAgICAgICBmaWxlT3NlcnZhYmxlcy5wdXNoKG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcjogU3Vic2NyaWJlcjxUZXh0RmlsZT4pID0+IHtcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBIYW5kbGUgZXJyb3JzIGxvYWRcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoZXZlbnQ6IFByb2dyZXNzRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9keTogdG9TdHJpbmcoKGV2ZW50LnRhcmdldCBhcyBGaWxlUmVhZGVyKS5yZXN1bHQpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICByZWFkZXIub25lcnJvciA9IChldmVudDogUHJvZ3Jlc3NFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLmVycm9yKChldmVudC50YXJnZXQgYXMgRmlsZVJlYWRlcikuZXJyb3IpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlYWQgZmlsZSBpbnRvIG1lbW9yeSBhcyBVVEYtOFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVhZGVyLnJlYWRBc1RleHQoZmlsZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgICAgICAgICAgICAgb2JzZXJ2ZXIuZXJyb3IoZXJyKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmb3JrSm9pbihmaWxlT3NlcnZhYmxlcyk7XG4gICAgfVxufVxuIl19
|