@porscheinformatik/material-addons 18.0.4 → 18.0.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/file-upload/file-upload.component.mjs +49 -24
- package/esm2022/lib/numeric-field/number-format.service.mjs +11 -4
- package/esm2022/lib/numeric-field/numeric-field.module.mjs +2 -5
- package/esm2022/version.mjs +2 -2
- package/fesm2022/porscheinformatik-material-addons.mjs +59 -29
- package/fesm2022/porscheinformatik-material-addons.mjs.map +1 -1
- package/lib/file-upload/file-upload.component.d.ts +12 -5
- package/lib/file-upload/file-upload.component.d.ts.map +1 -1
- package/lib/numeric-field/number-format.service.d.ts +5 -0
- package/lib/numeric-field/number-format.service.d.ts.map +1 -1
- package/lib/numeric-field/numeric-field.module.d.ts.map +1 -1
- package/package.json +1 -1
- package/version.d.ts +1 -1
|
@@ -14,52 +14,75 @@ import * as i4 from "@angular/material/chips";
|
|
|
14
14
|
export class FileUploadComponent {
|
|
15
15
|
constructor() {
|
|
16
16
|
this.showFileList = false;
|
|
17
|
+
this.removable = true;
|
|
17
18
|
this.fileEmitter = new EventEmitter();
|
|
18
19
|
this.errorEmitter = new EventEmitter();
|
|
19
20
|
this.fileList = [];
|
|
20
|
-
this.
|
|
21
|
-
this.uploadError = false;
|
|
21
|
+
this.acceptedFileTypes = [];
|
|
22
22
|
}
|
|
23
23
|
ngOnInit() {
|
|
24
|
+
this.setAcceptedFileTypes();
|
|
25
|
+
}
|
|
26
|
+
setAcceptedFileTypes() {
|
|
24
27
|
if (this.accept?.length) {
|
|
25
|
-
this.accept.
|
|
28
|
+
this.acceptedFileTypes = this.accept.map((ext) => `.${ext.toLowerCase()}`);
|
|
26
29
|
}
|
|
27
30
|
}
|
|
28
|
-
uploadFile(
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
this.uploadError = false;
|
|
31
|
+
uploadFile(files) {
|
|
32
|
+
const fileArray = Array.from(files);
|
|
33
|
+
if (!this.validateFileList(fileArray)) {
|
|
32
34
|
return;
|
|
33
35
|
}
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
36
|
+
this.addFiles(fileArray);
|
|
37
|
+
this.fileEmitter.emit(this.createFileListFromArray(this.fileList));
|
|
38
|
+
}
|
|
39
|
+
validateFileList(fileArray) {
|
|
40
|
+
if (!this.multiple && fileArray.length > 1) {
|
|
41
|
+
this.emitError('ONLY_SINGLE_FILE');
|
|
42
|
+
return false;
|
|
38
43
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
this.
|
|
44
|
+
for (const file of fileArray) {
|
|
45
|
+
if (!this.isAcceptedFileType(file.name)) {
|
|
46
|
+
this.emitError('FILETYPE_NOT_SUPPORTED');
|
|
47
|
+
return false;
|
|
42
48
|
}
|
|
43
|
-
this.fileEmitter.emit(fileList);
|
|
44
49
|
}
|
|
45
|
-
|
|
50
|
+
return true;
|
|
51
|
+
}
|
|
52
|
+
emitError(errorType) {
|
|
53
|
+
this.errorEmitter.emit(errorType);
|
|
54
|
+
}
|
|
55
|
+
isAcceptedFileType(fileName) {
|
|
56
|
+
const fileExtension = fileName.split('.').pop()?.toLowerCase();
|
|
57
|
+
return this.acceptedFileTypes.includes(`.${fileExtension}`);
|
|
46
58
|
}
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
this.errorEmitter.emit('FILETYPE_NOT_SUPPORTED');
|
|
51
|
-
this.uploadError = true;
|
|
59
|
+
addFiles(fileArray) {
|
|
60
|
+
if (!this.multiple) {
|
|
61
|
+
this.fileList = [];
|
|
52
62
|
}
|
|
63
|
+
this.fileList.push(...fileArray);
|
|
53
64
|
}
|
|
54
65
|
openFile(file) {
|
|
55
66
|
window.open(window.URL.createObjectURL(file));
|
|
56
67
|
}
|
|
68
|
+
remove(file) {
|
|
69
|
+
this.fileList = this.fileList.filter((f) => f !== file);
|
|
70
|
+
this.fileEmitter.emit(this.createFileListFromArray(this.fileList));
|
|
71
|
+
}
|
|
72
|
+
createFileListFromArray(files) {
|
|
73
|
+
const dataTransfer = new DataTransfer();
|
|
74
|
+
files.forEach((file) => dataTransfer.items.add(file));
|
|
75
|
+
return dataTransfer.files;
|
|
76
|
+
}
|
|
77
|
+
hasSingleFile() {
|
|
78
|
+
return !this.multiple && this.fileList.length === 1;
|
|
79
|
+
}
|
|
57
80
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: FileUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
58
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: FileUploadComponent, isStandalone: true, selector: "mad-file-upload", inputs: { id: "id", multiple: "multiple", accept: "accept", text: "text", showFileList: "showFileList" }, outputs: { fileEmitter: "fileEmitter", errorEmitter: "errorEmitter" }, ngImport: i0, template: "<mat-card\n (click)=\"fileInput.click()\"\n (onFileDropped)=\"uploadFile($event)\"\n class=\"uploadFileContainer\"\n madDragAndDrop\n id=\"uploadFileContainer\"\n>\n <input\n #fileInput\n (change)=\"uploadFile($event.target.files)\"\n (click)=\"fileInput.value = null\"\n [accept]=\"
|
|
81
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: FileUploadComponent, isStandalone: true, selector: "mad-file-upload", inputs: { id: "id", multiple: "multiple", accept: "accept", text: "text", showFileList: "showFileList", removable: "removable" }, outputs: { fileEmitter: "fileEmitter", errorEmitter: "errorEmitter" }, ngImport: i0, template: "<mat-card\n (click)=\"fileInput.click()\"\n (onFileDropped)=\"uploadFile($event)\"\n class=\"uploadFileContainer\"\n madDragAndDrop\n id=\"uploadFileContainer\"\n>\n <input\n #fileInput\n (change)=\"uploadFile($event.target.files)\"\n (click)=\"fileInput.value = null\"\n [accept]=\"acceptedFileTypes\"\n [id]=\"id\"\n [multiple]=\"multiple\"\n hidden\n type=\"file\"\n />\n <mat-card-content>\n <ng-container *ngIf=\"hasSingleFile(); else uploadDefault\">\n {{ fileList[0].name }}\n </ng-container>\n\n <ng-template #uploadDefault>\n <mat-icon>vertical_align_top</mat-icon>\n {{ text ? text : 'Upload' }}\n </ng-template>\n </mat-card-content>\n</mat-card>\n\n<ng-container *ngIf=\"showFileList\">\n <mat-chip-listbox>\n <mat-chip *ngFor=\"let file of fileList\" (click)=\"openFile(file)\" class=\"download\" [removable]=\"removable\" (removed)=\"remove(file)\">\n {{ file.name }}\n <mat-icon matChipRemove *ngIf=\"removable\">delete_forever</mat-icon>\n </mat-chip>\n </mat-chip-listbox>\n</ng-container>\n", styles: [".uploadFileContainer{background-repeat:no-repeat;background-position:center;height:100px;margin:0;border:2px dashed var(--main-primary)}.uploadFileContainer:hover{cursor:pointer;background-color:var(--selection-background)!important;opacity:.8}.uploadFileContainer,.mat-mdc-card-content{display:flex;justify-content:center;align-items:center}.download{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i2.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i2.MatCardContent, selector: "mat-card-content" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: DragAndDropDirectiveDirective, selector: "[madDragAndDrop]", outputs: ["onFileDropped"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled", "tabIndex"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i4.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }] }); }
|
|
59
82
|
}
|
|
60
83
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: FileUploadComponent, decorators: [{
|
|
61
84
|
type: Component,
|
|
62
|
-
args: [{ selector: 'mad-file-upload', standalone: true, imports: [CommonModule, MatCardModule, MatIconModule, ButtonModule, TranslateModule, DragAndDropDirectiveDirective, MatChipsModule], template: "<mat-card\n (click)=\"fileInput.click()\"\n (onFileDropped)=\"uploadFile($event)\"\n class=\"uploadFileContainer\"\n madDragAndDrop\n id=\"uploadFileContainer\"\n>\n <input\n #fileInput\n (change)=\"uploadFile($event.target.files)\"\n (click)=\"fileInput.value = null\"\n [accept]=\"
|
|
85
|
+
args: [{ selector: 'mad-file-upload', standalone: true, imports: [CommonModule, MatCardModule, MatIconModule, ButtonModule, TranslateModule, DragAndDropDirectiveDirective, MatChipsModule], template: "<mat-card\n (click)=\"fileInput.click()\"\n (onFileDropped)=\"uploadFile($event)\"\n class=\"uploadFileContainer\"\n madDragAndDrop\n id=\"uploadFileContainer\"\n>\n <input\n #fileInput\n (change)=\"uploadFile($event.target.files)\"\n (click)=\"fileInput.value = null\"\n [accept]=\"acceptedFileTypes\"\n [id]=\"id\"\n [multiple]=\"multiple\"\n hidden\n type=\"file\"\n />\n <mat-card-content>\n <ng-container *ngIf=\"hasSingleFile(); else uploadDefault\">\n {{ fileList[0].name }}\n </ng-container>\n\n <ng-template #uploadDefault>\n <mat-icon>vertical_align_top</mat-icon>\n {{ text ? text : 'Upload' }}\n </ng-template>\n </mat-card-content>\n</mat-card>\n\n<ng-container *ngIf=\"showFileList\">\n <mat-chip-listbox>\n <mat-chip *ngFor=\"let file of fileList\" (click)=\"openFile(file)\" class=\"download\" [removable]=\"removable\" (removed)=\"remove(file)\">\n {{ file.name }}\n <mat-icon matChipRemove *ngIf=\"removable\">delete_forever</mat-icon>\n </mat-chip>\n </mat-chip-listbox>\n</ng-container>\n", styles: [".uploadFileContainer{background-repeat:no-repeat;background-position:center;height:100px;margin:0;border:2px dashed var(--main-primary)}.uploadFileContainer:hover{cursor:pointer;background-color:var(--selection-background)!important;opacity:.8}.uploadFileContainer,.mat-mdc-card-content{display:flex;justify-content:center;align-items:center}.download{width:100%}\n"] }]
|
|
63
86
|
}], propDecorators: { id: [{
|
|
64
87
|
type: Input
|
|
65
88
|
}], multiple: [{
|
|
@@ -70,9 +93,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
70
93
|
type: Input
|
|
71
94
|
}], showFileList: [{
|
|
72
95
|
type: Input
|
|
96
|
+
}], removable: [{
|
|
97
|
+
type: Input
|
|
73
98
|
}], fileEmitter: [{
|
|
74
99
|
type: Output
|
|
75
100
|
}], errorEmitter: [{
|
|
76
101
|
type: Output
|
|
77
102
|
}] } });
|
|
78
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7O0FBV3pELE1BQU0sT0FBTyxtQkFBbUI7SUFQaEM7UUFZVyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUM3QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFZLENBQUM7UUFDM0MsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBZSxDQUFDO1FBRXpELGFBQVEsR0FBVyxFQUFFLENBQUM7UUFDdEIsbUJBQWMsR0FBYSxFQUFFLENBQUM7UUFDdEIsZ0JBQVcsR0FBWSxLQUFLLENBQUM7S0F1Q3RDO0lBckNDLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxN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LElBQUk7c0JBQVosS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csWUFBWTtzQkFBckIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRDYXJkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2FyZCc7XG5pbXBvcnQgeyBNYXRJY29uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaWNvbic7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEJ1dHRvbk1vZHVsZSB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24ubW9kdWxlJztcbmltcG9ydCB7IERyYWdBbmREcm9wRGlyZWN0aXZlRGlyZWN0aXZlIH0gZnJvbSAnLi9kcmFnLWFuZC1kcm9wLWRpcmVjdGl2ZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTWF0Q2hpcHNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5cbmV4cG9ydCB0eXBlIFVwbG9hZEVycm9yID0gJ09OTFlfU0lOR0xFX0ZJTEUnIHwgJ0ZJTEVUWVBFX05PVF9TVVBQT1JURUQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYWQtZmlsZS11cGxvYWQnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBNYXRDYXJkTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBCdXR0b25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgRHJhZ0FuZERyb3BEaXJlY3RpdmVEaXJlY3RpdmUsIE1hdENoaXBzTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBGaWxlVXBsb2FkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgQElucHV0KCkgbXVsdGlwbGU6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGFjY2VwdDogc3RyaW5nW107XG4gIEBJbnB1dCgpIHRleHQ6IHN0cmluZztcbiAgQElucHV0KCkgc2hvd0ZpbGVMaXN0OiBib29sZWFuID0gZmFsc2U7XG4gIEBPdXRwdXQoKSBmaWxlRW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZUxpc3Q+KCk7XG4gIEBPdXRwdXQoKSBlcnJvckVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFVwbG9hZEVycm9yPigpO1xuXG4gIGZpbGVMaXN0OiBGaWxlW10gPSBbXTtcbiAgYWNjZXB0Rm9ySW5wdXQ6IHN0cmluZ1tdID0gW107XG4gIHByaXZhdGUgdXBsb2FkRXJyb3I6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hY2NlcHQ/Lmxlbmd0aCkge1xuICAgICAgdGhpcy5hY2NlcHQuZm9yRWFjaCgoYWNjZXB0ZWQpID0+IHRoaXMuYWNjZXB0Rm9ySW5wdXQucHVzaChgLiR7YWNjZXB0ZWR9YCkpO1xuICAgIH1cbiAgfVxuXG4gIHVwbG9hZEZpbGUoZmlsZUxpc3Q6IEZpbGVMaXN0KTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm11bHRpcGxlICYmIChmaWxlTGlzdC5sZW5ndGggPiAxIHx8IHRoaXMuZmlsZUxpc3QubGVuZ3RoID09PSAxKSkge1xuICAgICAgdGhpcy5lcnJvckVtaXR0ZXIuZW1pdCgnT05MWV9TSU5HTEVfRklMRScpO1xuICAgICAgdGhpcy51cGxvYWRFcnJvciA9IGZhbHNlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5hY2NlcHQgJiYgdGhpcy5hY2NlcHQubGVuZ3RoID4gMCkge1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWxlTGlzdC5sZW5ndGg7IGkrKykge1xuICAgICAgICB0aGlzLmdldEZpbGVFbmRpbmcoZmlsZUxpc3QuaXRlbShpKS5uYW1lKTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKCF0aGlzLnVwbG9hZEVycm9yKSB7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGZpbGVMaXN0Lmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHRoaXMuZmlsZUxpc3QucHVzaChmaWxlTGlzdC5pdGVtKGkpKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuZmlsZUVtaXR0ZXIuZW1pdChmaWxlTGlzdCk7XG4gICAgfVxuICAgIHRoaXMudXBsb2FkRXJyb3IgPSBmYWxzZTtcbiAgfVxuXG4gIGdldEZpbGVFbmRpbmcobmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgZW5kaW5nID0gbmFtZS5zdWJzdHJpbmcobmFtZS5sYXN0SW5kZXhPZignLicpICsgMSk7XG4gICAgaWYgKHRoaXMuYWNjZXB0LmZpbHRlcigoYSkgPT4gYS50b0xvd2VyQ2FzZSgpID09PSBlbmRpbmcudG9Mb3dlckNhc2UoKSkubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmVycm9yRW1pdHRlci5lbWl0KCdGSUxFVFlQRV9OT1RfU1VQUE9SVEVEJyk7XG4gICAgICB0aGlzLnVwbG9hZEVycm9yID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBvcGVuRmlsZShmaWxlOiBGaWxlKSB7XG4gICAgd2luZG93Lm9wZW4od2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSkpO1xuICB9XG59XG4iLCI8bWF0LWNhcmRcbiAgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCJcbiAgKG9uRmlsZURyb3BwZWQpPVwidXBsb2FkRmlsZSgkZXZlbnQpXCJcbiAgY2xhc3M9XCJ1cGxvYWRGaWxlQ29udGFpbmVyXCJcbiAgbWFkRHJhZ0FuZERyb3BcbiAgaWQ9XCJ1cGxvYWRGaWxlQ29udGFpbmVyXCJcbj5cbiAgPGlucHV0XG4gICAgI2ZpbGVJbnB1dFxuICAgIChjaGFuZ2UpPVwidXBsb2FkRmlsZSgkZXZlbnQudGFyZ2V0LmZpbGVzKVwiXG4gICAgKGNsaWNrKT1cImZpbGVJbnB1dC52YWx1ZSA9IG51bGxcIlxuICAgIFthY2NlcHRdPVwiYWNjZXB0Rm9ySW5wdXRcIlxuICAgIFtpZF09XCJpZFwiXG4gICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICBoaWRkZW5cbiAgICB0eXBlPVwiZmlsZVwiXG4gIC8+XG4gIDxtYXQtY2FyZC1jb250ZW50PlxuICAgIDxtYXQtaWNvbj52ZXJ0aWNhbF9hbGlnbl90b3A8L21hdC1pY29uPlxuICAgIHt7IHRleHQgPyB0ZXh0IDogJ1VwbG9hZCcgfX1cbiAgPC9tYXQtY2FyZC1jb250ZW50PlxuPC9tYXQtY2FyZD5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dGaWxlTGlzdFwiPlxuICA8bWF0LWNoaXAtbGlzdGJveD5cbiAgICA8bWF0LWNoaXAgKm5nRm9yPVwibGV0IGZpbGUgb2YgZmlsZUxpc3RcIiAoY2xpY2spPVwib3BlbkZpbGUoZmlsZSlcIiBjbGFzcz1cImRvd25sb2FkXCI+e3sgZmlsZS5uYW1lIH19PC9tYXQtY2hpcD5cbiAgPC9tYXQtY2hpcC1saXN0Ym94PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7Ozs7O0FBV3pELE1BQU0sT0FBTyxtQkFBbUI7SUFQaEM7UUFZVyxpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUM5QixjQUFTLEdBQVksSUFBSSxDQUFDO1FBQ3pCLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVksQ0FBQztRQUMzQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7UUFFekQsYUFBUSxHQUFXLEVBQUUsQ0FBQztRQUN0QixzQkFBaUIsR0FBYSxFQUFFLENBQUM7S0F5RWxDO0lBdkVDLFFBQVE7UUFDTixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRU8sb0JBQW9CO1FBQzFCLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM3RSxDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFlO1FBQ3hCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDO1lBQ3RDLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVPLGdCQUFnQixDQUFDLFNBQWlCO1FBQ3hDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLFNBQVMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ25DLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELEtBQUssTUFBTSxJQUFJLElBQUksU0FBUyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO2dCQUN6QyxPQUFPLEtBQUssQ0FBQztZQUNmLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU8sU0FBUyxDQUFDLFNBQXNCO1FBQ3RDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxRQUFnQjtRQUN6QyxNQUFNLGFBQWEsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBQy9ELE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxJQUFJLGFBQWEsRUFBRSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVPLFFBQVEsQ0FBQyxTQUFpQjtRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxHQUFHLFNBQVMsQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxRQUFRLENBQUMsSUFBVTtRQUNqQixNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxJQUFVO1FBQ2YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ3hELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRU8sdUJBQXVCLENBQUMsS0FBYTtRQUMzQyxNQUFNLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDdEQsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDO0lBQzVCLENBQUM7SUFFRCxhQUFhO1FBQ1gsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQ3RELENBQUM7OEdBbkZVLG1CQUFtQjtrR0FBbkIsbUJBQW1CLG9SQ2xCaEMsZ2tDQXFDQSxzYUR2QlksWUFBWSwrUEFBRSxhQUFhLDBOQUFFLGFBQWEsbUxBQUUsWUFBWSw4QkFBRSxlQUFlLCtCQUFFLDZCQUE2Qix3RkFBRSxjQUFjOzsyRkFJdkgsbUJBQW1CO2tCQVAvQixTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsYUFBYSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsNkJBQTZCLEVBQUUsY0FBYyxDQUFDOzhCQUsxSCxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDSSxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0Q2FyZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NhcmQnO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCdXR0b25Nb2R1bGUgfSBmcm9tICcuLi9idXR0b24vYnV0dG9uLm1vZHVsZSc7XG5pbXBvcnQgeyBEcmFnQW5kRHJvcERpcmVjdGl2ZURpcmVjdGl2ZSB9IGZyb20gJy4vZHJhZy1hbmQtZHJvcC1kaXJlY3RpdmUuZGlyZWN0aXZlJztcbmltcG9ydCB7IE1hdENoaXBzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuXG5leHBvcnQgdHlwZSBVcGxvYWRFcnJvciA9ICdPTkxZX1NJTkdMRV9GSUxFJyB8ICdGSUxFVFlQRV9OT1RfU1VQUE9SVEVEJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWFkLWZpbGUtdXBsb2FkJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0Q2FyZE1vZHVsZSwgTWF0SWNvbk1vZHVsZSwgQnV0dG9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIERyYWdBbmREcm9wRGlyZWN0aXZlRGlyZWN0aXZlLCBNYXRDaGlwc01vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuY3NzJyxcbn0pXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG11bHRpcGxlOiBib29sZWFuO1xuICBASW5wdXQoKSBhY2NlcHQ6IHN0cmluZ1tdO1xuICBASW5wdXQoKSB0ZXh0OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNob3dGaWxlTGlzdDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSByZW1vdmFibGU6IGJvb2xlYW4gPSB0cnVlO1xuICBAT3V0cHV0KCkgZmlsZUVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPEZpbGVMaXN0PigpO1xuICBAT3V0cHV0KCkgZXJyb3JFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxVcGxvYWRFcnJvcj4oKTtcblxuICBmaWxlTGlzdDogRmlsZVtdID0gW107XG4gIGFjY2VwdGVkRmlsZVR5cGVzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc2V0QWNjZXB0ZWRGaWxlVHlwZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0QWNjZXB0ZWRGaWxlVHlwZXMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWNjZXB0Py5sZW5ndGgpIHtcbiAgICAgIHRoaXMuYWNjZXB0ZWRGaWxlVHlwZXMgPSB0aGlzLmFjY2VwdC5tYXAoKGV4dCkgPT4gYC4ke2V4dC50b0xvd2VyQ2FzZSgpfWApO1xuICAgIH1cbiAgfVxuXG4gIHVwbG9hZEZpbGUoZmlsZXM6IEZpbGVMaXN0KTogdm9pZCB7XG4gICAgY29uc3QgZmlsZUFycmF5ID0gQXJyYXkuZnJvbShmaWxlcyk7XG5cbiAgICBpZiAoIXRoaXMudmFsaWRhdGVGaWxlTGlzdChmaWxlQXJyYXkpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5hZGRGaWxlcyhmaWxlQXJyYXkpO1xuICAgIHRoaXMuZmlsZUVtaXR0ZXIuZW1pdCh0aGlzLmNyZWF0ZUZpbGVMaXN0RnJvbUFycmF5KHRoaXMuZmlsZUxpc3QpKTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVGaWxlTGlzdChmaWxlQXJyYXk6IEZpbGVbXSk6IGJvb2xlYW4ge1xuICAgIGlmICghdGhpcy5tdWx0aXBsZSAmJiBmaWxlQXJyYXkubGVuZ3RoID4gMSkge1xuICAgICAgdGhpcy5lbWl0RXJyb3IoJ09OTFlfU0lOR0xFX0ZJTEUnKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZUFycmF5KSB7XG4gICAgICBpZiAoIXRoaXMuaXNBY2NlcHRlZEZpbGVUeXBlKGZpbGUubmFtZSkpIHtcbiAgICAgICAgdGhpcy5lbWl0RXJyb3IoJ0ZJTEVUWVBFX05PVF9TVVBQT1JURUQnKTtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0RXJyb3IoZXJyb3JUeXBlOiBVcGxvYWRFcnJvcik6IHZvaWQge1xuICAgIHRoaXMuZXJyb3JFbWl0dGVyLmVtaXQoZXJyb3JUeXBlKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNBY2NlcHRlZEZpbGVUeXBlKGZpbGVOYW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZU5hbWUuc3BsaXQoJy4nKS5wb3AoKT8udG9Mb3dlckNhc2UoKTtcbiAgICByZXR1cm4gdGhpcy5hY2NlcHRlZEZpbGVUeXBlcy5pbmNsdWRlcyhgLiR7ZmlsZUV4dGVuc2lvbn1gKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkRmlsZXMoZmlsZUFycmF5OiBGaWxlW10pOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMuZmlsZUxpc3QgPSBbXTtcbiAgICB9XG4gICAgdGhpcy5maWxlTGlzdC5wdXNoKC4uLmZpbGVBcnJheSk7XG4gIH1cblxuICBvcGVuRmlsZShmaWxlOiBGaWxlKTogdm9pZCB7XG4gICAgd2luZG93Lm9wZW4od2luZG93LlVSTC5jcmVhdGVPYmplY3RVUkwoZmlsZSkpO1xuICB9XG5cbiAgcmVtb3ZlKGZpbGU6IEZpbGUpOiB2b2lkIHtcbiAgICB0aGlzLmZpbGVMaXN0ID0gdGhpcy5maWxlTGlzdC5maWx0ZXIoKGYpID0+IGYgIT09IGZpbGUpO1xuICAgIHRoaXMuZmlsZUVtaXR0ZXIuZW1pdCh0aGlzLmNyZWF0ZUZpbGVMaXN0RnJvbUFycmF5KHRoaXMuZmlsZUxpc3QpKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRmlsZUxpc3RGcm9tQXJyYXkoZmlsZXM6IEZpbGVbXSk6IEZpbGVMaXN0IHtcbiAgICBjb25zdCBkYXRhVHJhbnNmZXIgPSBuZXcgRGF0YVRyYW5zZmVyKCk7XG4gICAgZmlsZXMuZm9yRWFjaCgoZmlsZSkgPT4gZGF0YVRyYW5zZmVyLml0ZW1zLmFkZChmaWxlKSk7XG4gICAgcmV0dXJuIGRhdGFUcmFuc2Zlci5maWxlcztcbiAgfVxuXG4gIGhhc1NpbmdsZUZpbGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLm11bHRpcGxlICYmIHRoaXMuZmlsZUxpc3QubGVuZ3RoID09PSAxO1xuICB9XG59XG4iLCI8bWF0LWNhcmRcbiAgKGNsaWNrKT1cImZpbGVJbnB1dC5jbGljaygpXCJcbiAgKG9uRmlsZURyb3BwZWQpPVwidXBsb2FkRmlsZSgkZXZlbnQpXCJcbiAgY2xhc3M9XCJ1cGxvYWRGaWxlQ29udGFpbmVyXCJcbiAgbWFkRHJhZ0FuZERyb3BcbiAgaWQ9XCJ1cGxvYWRGaWxlQ29udGFpbmVyXCJcbj5cbiAgPGlucHV0XG4gICAgI2ZpbGVJbnB1dFxuICAgIChjaGFuZ2UpPVwidXBsb2FkRmlsZSgkZXZlbnQudGFyZ2V0LmZpbGVzKVwiXG4gICAgKGNsaWNrKT1cImZpbGVJbnB1dC52YWx1ZSA9IG51bGxcIlxuICAgIFthY2NlcHRdPVwiYWNjZXB0ZWRGaWxlVHlwZXNcIlxuICAgIFtpZF09XCJpZFwiXG4gICAgW211bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICBoaWRkZW5cbiAgICB0eXBlPVwiZmlsZVwiXG4gIC8+XG4gIDxtYXQtY2FyZC1jb250ZW50PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJoYXNTaW5nbGVGaWxlKCk7IGVsc2UgdXBsb2FkRGVmYXVsdFwiPlxuICAgICAge3sgZmlsZUxpc3RbMF0ubmFtZSB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLXRlbXBsYXRlICN1cGxvYWREZWZhdWx0PlxuICAgICAgPG1hdC1pY29uPnZlcnRpY2FsX2FsaWduX3RvcDwvbWF0LWljb24+XG4gICAgICB7eyB0ZXh0ID8gdGV4dCA6ICdVcGxvYWQnIH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9tYXQtY2FyZC1jb250ZW50PlxuPC9tYXQtY2FyZD5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dGaWxlTGlzdFwiPlxuICA8bWF0LWNoaXAtbGlzdGJveD5cbiAgICA8bWF0LWNoaXAgKm5nRm9yPVwibGV0IGZpbGUgb2YgZmlsZUxpc3RcIiAoY2xpY2spPVwib3BlbkZpbGUoZmlsZSlcIiBjbGFzcz1cImRvd25sb2FkXCIgW3JlbW92YWJsZV09XCJyZW1vdmFibGVcIiAocmVtb3ZlZCk9XCJyZW1vdmUoZmlsZSlcIj5cbiAgICAgIHt7IGZpbGUubmFtZSB9fVxuICAgICAgPG1hdC1pY29uIG1hdENoaXBSZW1vdmUgKm5nSWY9XCJyZW1vdmFibGVcIj5kZWxldGVfZm9yZXZlcjwvbWF0LWljb24+XG4gICAgPC9tYXQtY2hpcD5cbiAgPC9tYXQtY2hpcC1saXN0Ym94PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Inject,
|
|
1
|
+
import { Inject, Injectable, LOCALE_ID } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
export class NumberFormatService {
|
|
4
4
|
static { this.NEGATIVE = '-'; }
|
|
@@ -9,6 +9,13 @@ export class NumberFormatService {
|
|
|
9
9
|
static { this.DEFAULT_REMOVE_LEADING_ZEROS = false; }
|
|
10
10
|
constructor(locale) {
|
|
11
11
|
this.allowedKeys = [];
|
|
12
|
+
this.prepareSeparators(locale);
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Call this if the locale is changed to update the separators.
|
|
16
|
+
* @param locale the new locale
|
|
17
|
+
*/
|
|
18
|
+
prepareSeparators(locale) {
|
|
12
19
|
// try to get the current formatting
|
|
13
20
|
const localeDecimalSeparator = (1.1).toLocaleString(locale).charAt(1);
|
|
14
21
|
this.decimalSeparator = localeDecimalSeparator === ',' ? ',' : '.';
|
|
@@ -125,15 +132,15 @@ export class NumberFormatService {
|
|
|
125
132
|
return NumberFormatService.valueIsSet(value) ? value : defaultValue;
|
|
126
133
|
}
|
|
127
134
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NumberFormatService, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
128
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NumberFormatService, providedIn: '
|
|
135
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NumberFormatService, providedIn: 'root' }); }
|
|
129
136
|
}
|
|
130
137
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NumberFormatService, decorators: [{
|
|
131
138
|
type: Injectable,
|
|
132
139
|
args: [{
|
|
133
|
-
providedIn: '
|
|
140
|
+
providedIn: 'root',
|
|
134
141
|
}]
|
|
135
142
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
136
143
|
type: Inject,
|
|
137
144
|
args: [LOCALE_ID]
|
|
138
145
|
}] }] });
|
|
139
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWZvcm1hdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvbnVtZXJpYy1maWVsZC9udW1iZXItZm9ybWF0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQW1COUQsTUFBTSxPQUFPLG1CQUFtQjthQUNkLGFBQVEsR0FBRyxHQUFHLEFBQU4sQ0FBTzthQUNmLFlBQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxBQUFyRCxDQUFzRDthQUM3RCw2QkFBd0IsR0FBRyxJQUFJLEFBQVAsQ0FBUTthQUNoQywyQkFBc0IsR0FBRyxDQUFDLEFBQUosQ0FBSzthQUMzQiw4QkFBeUIsR0FBRyxLQUFLLEFBQVIsQ0FBUzthQUNsQyxpQ0FBNEIsR0FBRyxLQUFLLEFBQVIsQ0FBUztJQU9yRCxZQUErQixNQUFjO1FBRjdDLGdCQUFXLEdBQWEsRUFBRSxDQUFDO1FBR3pCLG9DQUFvQztRQUNwQyxNQUFNLHNCQUFzQixHQUFHLENBQUMsR0FBRyxDQUFDLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsc0JBQXNCLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUNuRSxJQUFJLENBQUMsaUJBQWlCLEdBQUcsc0JBQXNCLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztRQUVw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Q0FBQztpQkFBTSxDQUFDO2dCQUNOLCtDQUErQztnQkFDL0MsTUFBTTtZQUNSLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLHFCQUFxQixDQUFDLE1BQWMsRUFBRSxrQkFBMEI7UUFDdEUsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNuRSxnRUFBZ0U7UUFDaEUsSUFBSSxrQkFBa0IsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3QixNQUFNLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQztRQUN4QixDQUFDO1FBQ0QscUZBQXFGO1FBQ3JGLElBQUksa0JBQWtCLEtBQUssQ0FBQyxJQUFJLFVBQVUsRUFBRSxDQUFDO1lBQzNDLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoRSxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLGNBQWMsQ0FBQyxLQUFVLEVBQUUsWUFBaUI7UUFDbEQsT0FBTyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO0lBQ3RFLENBQUM7OEdBeklVLG1CQUFtQixrQkFhVixTQUFTO2tIQWJsQixtQkFBbUIsY0FGbEIsS0FBSzs7MkZBRU4sbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxLQUFLO2lCQUNsQjs7MEJBY2MsTUFBTTsyQkFBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBMT0NBTEVfSUQsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGRlY2xhcmUgaW50ZXJmYWNlIEZvcm1hdE9wdGlvbnMge1xuICBkZWNpbWFsUGxhY2VzPzogbnVtYmVyO1xuXG4gIGZpbmFsRm9ybWF0dGluZz86IGJvb2xlYW47XG5cbiAgYXV0b2ZpbGxEZWNpbWFscz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBTdHJpcE9wdGlvbnMge1xuICBkZWNpbWFsUGxhY2VzPzogbnVtYmVyO1xuXG4gIHJlbW92ZUxlYWRpbmdaZXJvcz86IGJvb2xlYW47XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ2FueScsXG59KVxuZXhwb3J0IGNsYXNzIE51bWJlckZvcm1hdFNlcnZpY2Uge1xuICBzdGF0aWMgcmVhZG9ubHkgTkVHQVRJVkUgPSAnLSc7XG4gIHN0YXRpYyByZWFkb25seSBOVU1CRVJTID0gWycwJywgJzEnLCAnMicsICczJywgJzQnLCAnNScsICc2JywgJzcnLCAnOCcsICc5J107XG4gIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0ZJTkFMX0ZPUk1BVFRJTkcgPSB0cnVlO1xuICBzdGF0aWMgcmVhZG9ubHkgREVGQVVMVF9ERUNJTUFMX1BMQUNFUyA9IDI7XG4gIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0FVVE9GSUxMX0RFQ0lNQUxTID0gZmFsc2U7XG4gIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1JFTU9WRV9MRUFESU5HX1pFUk9TID0gZmFsc2U7XG5cbiAgZGVjaW1hbFNlcGFyYXRvcjogJywnIHwgJy4nO1xuICBncm91cGluZ1NlcGFyYXRvcjogJywnIHwgJy4nO1xuXG4gIGFsbG93ZWRLZXlzOiBzdHJpbmdbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKEBJbmplY3QoTE9DQUxFX0lEKSBsb2NhbGU6IHN0cmluZykge1xuICAgIC8vIHRyeSB0byBnZXQgdGhlIGN1cnJlbnQgZm9ybWF0dGluZ1xuICAgIGNvbnN0IGxvY2FsZURlY2ltYWxTZXBhcmF0b3IgPSAoMS4xKS50b0xvY2FsZVN0cmluZyhsb2NhbGUpLmNoYXJBdCgxKTtcbiAgICB0aGlzLmRlY2ltYWxTZXBhcmF0b3IgPSBsb2NhbGVEZWNpbWFsU2VwYXJhdG9yID09PSAnLCcgPyAnLCcgOiAnLic7XG4gICAgdGhpcy5ncm91cGluZ1NlcGFyYXRvciA9IGxvY2FsZURlY2ltYWxTZXBhcmF0b3IgPT09ICcsJyA/ICcuJyA6ICcsJztcblxuICAgIHRoaXMuYWxsb3dlZEtleXMgPSBbLi4uTnVtYmVyRm9ybWF0U2VydmljZS5OVU1CRVJTLCBOdW1iZXJGb3JtYXRTZXJ2aWNlLk5FR0FUSVZFLCB0aGlzLmRlY2ltYWxTZXBhcmF0b3JdO1xuICB9XG5cbiAgc3RhdGljIHZhbHVlSXNTZXQodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0eXBlb2YgdmFsdWUgIT09ICd1bmRlZmluZWQnICYmIHZhbHVlICE9PSBudWxsICYmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnIHx8IHZhbHVlLmxlbmd0aCAhPT0gMCk7XG4gIH1cblxuICBmb3JtYXQodmFsdWU6IG51bWJlciwgb3B0aW9ucz86IFBhcnRpYWw8Rm9ybWF0T3B0aW9ucz4pOiBzdHJpbmcge1xuICAgIHJldHVybiBOdW1iZXJGb3JtYXRTZXJ2aWNlLnZhbHVlSXNTZXQodmFsdWUpXG4gICAgICA/IHRoaXMuZm9ybWF0TnVtYmVyKHZhbHVlLnRvU3RyaW5nKCkucmVwbGFjZShuZXcgUmVnRXhwKCdbLl0nLCAnZycpLCB0aGlzLmRlY2ltYWxTZXBhcmF0b3IpLCBvcHRpb25zKVxuICAgICAgOiAnJztcbiAgfVxuXG4gIGZvcm1hdE51bWJlcih2YWx1ZTogc3RyaW5nLCBvcHRpb25zPzogUGFydGlhbDxGb3JtYXRPcHRpb25zPik6IHN0cmluZyB7XG4gICAgY29uc3QgYXV0b2ZpbGxEZWNpbWFscyA9IHRoaXMudmFsdWVPckRlZmF1bHQob3B0aW9ucz8uYXV0b2ZpbGxEZWNpbWFscywgTnVtYmVyRm9ybWF0U2VydmljZS5ERUZBVUxUX0FVVE9GSUxMX0RFQ0lNQUxTKTtcbiAgICBjb25zdCBkZWNpbWFsUGxhY2VzID0gdGhpcy52YWx1ZU9yRGVmYXVsdChvcHRpb25zPy5kZWNpbWFsUGxhY2VzLCBOdW1iZXJGb3JtYXRTZXJ2aWNlLkRFRkFVTFRfREVDSU1BTF9QTEFDRVMpO1xuICAgIGNvbnN0IGZpbmFsRm9ybWF0dGluZyA9IHRoaXMudmFsdWVPckRlZmF1bHQob3B0aW9ucz8uZmluYWxGb3JtYXR0aW5nLCBOdW1iZXJGb3JtYXRTZXJ2aWNlLkRFRkFVTFRfRklOQUxfRk9STUFUVElORyk7XG5cbiAgICBsZXQgcmVzdWx0ID0gdGhpcy5zdHJpcCh2YWx1ZSwgeyBkZWNpbWFsUGxhY2VzLCByZW1vdmVMZWFkaW5nWmVyb3M6IGZpbmFsRm9ybWF0dGluZyB9KTtcblxuICAgIC8qIGFkZCBncm91cGluZyBzZXBhcmF0b3IgKi9cbiAgICBjb25zdCBkZWNpbWFsSW5kZXggPSByZXN1bHQuaW5kZXhPZih0aGlzLmRlY2ltYWxTZXBhcmF0b3IpO1xuICAgIGNvbnN0IGlzTmVnYXRpdmUgPSByZXN1bHQuc3RhcnRzV2l0aChOdW1iZXJGb3JtYXRTZXJ2aWNlLk5FR0FUSVZFKTtcbiAgICBsZXQgaSA9IGRlY2ltYWxJbmRleCA+IC0xID8gZGVjaW1hbEluZGV4IDogcmVzdWx0Lmxlbmd0aDtcbiAgICB3aGlsZSAoaSA+IChpc05lZ2F0aXZlID8gNCA6IDMpKSB7XG4gICAgICBpIC09IDM7XG4gICAgICByZXN1bHQgPSByZXN1bHQuc3Vic3RyaW5nKDAsIGkpICsgdGhpcy5ncm91cGluZ1NlcGFyYXRvciArIHJlc3VsdC5zdWJzdHJpbmcoaSwgcmVzdWx0Lmxlbmd0aCk7XG4gICAgfVxuXG4gICAgaWYgKGZpbmFsRm9ybWF0dGluZykge1xuICAgICAgaWYgKGRlY2ltYWxQbGFjZXMgPiAwICYmICEhcmVzdWx0KSB7XG4gICAgICAgIC8qIGF1dG9maWxsIGRlY2ltYWwgcGxhY2VzICovXG4gICAgICAgIGxldCBhY3R1YWxEZWNpbWFsSW5kZXggPSByZXN1bHQuaW5kZXhPZih0aGlzLmRlY2ltYWxTZXBhcmF0b3IpO1xuICAgICAgICBpZiAoYXV0b2ZpbGxEZWNpbWFscykge1xuICAgICAgICAgIGlmIChhY3R1YWxEZWNpbWFsSW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICBhY3R1YWxEZWNpbWFsSW5kZXggPSByZXN1bHQubGVuZ3RoO1xuICAgICAgICAgICAgcmVzdWx0ICs9IHRoaXMuZGVjaW1hbFNlcGFyYXRvcjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXN1bHQgPSB0aGlzLmFkZE1pc3NpbmdMZWFkaW5nWmVybyhyZXN1bHQsIGFjdHVhbERlY2ltYWxJbmRleCk7XG4gICAgICAgICAgYWN0dWFsRGVjaW1hbEluZGV4ID0gcmVzdWx0LmluZGV4T2YodGhpcy5kZWNpbWFsU2VwYXJhdG9yKTtcblxuICAgICAgICAgIGNvbnN0IGFjdHVhbERlY2ltYWxQbGFjZXMgPSByZXN1bHQubGVuZ3RoIC0gYWN0dWFsRGVjaW1hbEluZGV4IC0gMTtcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IGRlY2ltYWxQbGFjZXMgLSBhY3R1YWxEZWNpbWFsUGxhY2VzOyBqKyspIHtcbiAgICAgICAgICAgIHJlc3VsdCArPSAnMCc7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdCA9IHRoaXMuYWRkTWlzc2luZ0xlYWRpbmdaZXJvKHJlc3VsdCwgYWN0dWFsRGVjaW1hbEluZGV4KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgc3RyaXAodmFsdWU6IHN0cmluZywgb3B0aW9ucz86IFN0cmlwT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgY29uc3QgZGVjaW1hbFBsYWNlcyA9IHRoaXMudmFsdWVPckRlZmF1bHQob3B0aW9ucz8uZGVjaW1hbFBsYWNlcywgTnVtYmVyRm9ybWF0U2VydmljZS5ERUZBVUxUX0RFQ0lNQUxfUExBQ0VTKTtcbiAgICBjb25zdCByZW1vdmVMZWFkaW5nWmVyb3MgPSB0aGlzLnZhbHVlT3JEZWZhdWx0KG9wdGlvbnM/LnJlbW92ZUxlYWRpbmdaZXJvcywgTnVtYmVyRm9ybWF0U2VydmljZS5ERUZBVUxUX1JFTU9WRV9MRUFESU5HX1pFUk9TKTtcblxuICAgIGxldCByZXN1bHQgPSAnJztcbiAgICBsZXQgaW5kZXhEZWNpbWFsU2VwID0gLTE7XG4gICAgbGV0IGogPSAtMTtcbiAgICBsZXQgaWdub3JlZENoYXJzID0gMDtcbiAgICBmb3IgKGNvbnN0IGNoYXIgb2YgdmFsdWUpIHtcbiAgICAgIGorKztcbiAgICAgIGlmICh0aGlzLmFsbG93ZWRLZXlzLmluY2x1ZGVzKGNoYXIpKSB7XG4gICAgICAgIGlmIChjaGFyID09PSB0aGlzLmRlY2ltYWxTZXBhcmF0b3IpIHtcbiAgICAgICAgICBpZiAoZGVjaW1hbFBsYWNlcyA9PT0gMCkge1xuICAgICAgICAgICAgLyogZGlzbWlzcyBjb250ZW50IGFmdGVyIGEgZGVjaW1hbCBzZXBhcmF0b3IsIHdoZW4gbm8gcGxhY2VzIGFsbG93ZWQgKi9cbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH0gZWxzZSBpZiAoaW5kZXhEZWNpbWFsU2VwID4gLTEpIHtcbiAgICAgICAgICAgIC8qIGlnbm9yZSBzdWJzZXF1ZW50IGRlY2ltYWwgc2VwYXJhdG9ycyAqL1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGluZGV4RGVjaW1hbFNlcCA9IGo7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYXIgPT09ICcwJyAmJiByZW1vdmVMZWFkaW5nWmVyb3MpIHtcbiAgICAgICAgICAvKiByZW1vdmUgbGVhZGluZyB6ZXJvIG9ubHkgaWYgaXQncyBub3QgdGhlIG9ubHkgemVybyBpbiB0aGUgJ3ZhbHVlJyBzdHJpbmcgKi9cbiAgICAgICAgICBpZiAoKHJlc3VsdC5sZW5ndGggPT09IDAgJiYgaiArIDEgIT09IHZhbHVlLmxlbmd0aCkgfHwgcmVzdWx0ID09PSBOdW1iZXJGb3JtYXRTZXJ2aWNlLk5FR0FUSVZFKSB7XG4gICAgICAgICAgICBpZ25vcmVkQ2hhcnMrKztcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhciA9PT0gTnVtYmVyRm9ybWF0U2VydmljZS5ORUdBVElWRSAmJiBqID4gMCkge1xuICAgICAgICAgIC8qIGRpc21pc3MgY29udGVudCBhZnRlciBhIG5lZ2F0aXZlIHNpZ24gbm90IG9uIGZpcnN0IHBvc2l0aW9uICovXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGluZGV4RGVjaW1hbFNlcCA+IC0xICYmIHJlc3VsdC5sZW5ndGggKyBpZ25vcmVkQ2hhcnMgPiBpbmRleERlY2ltYWxTZXAgKyBkZWNpbWFsUGxhY2VzKSB7XG4gICAgICAgICAgLyogZGlzbWlzcyBjb250ZW50IGFmdGVyIG1heGltdW0gZGVjaW1hbCBwbGFjZXMgcmVhY2hlZCAqL1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdCArPSBjaGFyO1xuICAgICAgfSBlbHNlIGlmIChjaGFyID09PSB0aGlzLmdyb3VwaW5nU2VwYXJhdG9yKSB7XG4gICAgICAgIGlmIChpbmRleERlY2ltYWxTZXAgPT09IC0xKSB7XG4gICAgICAgICAgaWdub3JlZENoYXJzKys7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8qIGRpc21pc3MgY29udGVudCBhZnRlciBhIGludmFsaWQgY2hhcmFjdGVyICovXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBhZGRNaXNzaW5nTGVhZGluZ1plcm8ocmVzdWx0OiBzdHJpbmcsIGFjdHVhbERlY2ltYWxJbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCBpc05lZ2F0aXZlID0gcmVzdWx0LnN0YXJ0c1dpdGgoTnVtYmVyRm9ybWF0U2VydmljZS5ORUdBVElWRSk7XG4gICAgLyogYXV0b2FkZCBhIHplcm8gYmVmb3JlIGRlY2ltYWwgc2VwYXJhdG9yLCB3aGVuIGl0J3MgbWlzc2luZyAqL1xuICAgIGlmIChhY3R1YWxEZWNpbWFsSW5kZXggPT09IDApIHtcbiAgICAgIHJlc3VsdCA9ICcwJyArIHJlc3VsdDtcbiAgICB9XG4gICAgLyogYXV0b2FkZCBhIHplcm8gYmVmb3JlIGRlY2ltYWwgc2VwYXJhdG9yLCB3aGVuIGl0J3MgbWlzc2luZywgZm9yIG5lZ2F0aXZlIHZhbHVlcyAqL1xuICAgIGlmIChhY3R1YWxEZWNpbWFsSW5kZXggPT09IDEgJiYgaXNOZWdhdGl2ZSkge1xuICAgICAgcmVzdWx0ID0gcmVzdWx0WzBdICsgJzAnICsgcmVzdWx0LnN1YnN0cmluZygxLCByZXN1bHQubGVuZ3RoKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgdmFsdWVPckRlZmF1bHQodmFsdWU6IGFueSwgZGVmYXVsdFZhbHVlOiBhbnkpOiBhbnkge1xuICAgIHJldHVybiBOdW1iZXJGb3JtYXRTZXJ2aWNlLnZhbHVlSXNTZXQodmFsdWUpID8gdmFsdWUgOiBkZWZhdWx0VmFsdWU7XG4gIH1cbn1cbiJdfQ==
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVyLWZvcm1hdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWF0ZXJpYWwtYWRkb25zL3NyYy9saWIvbnVtZXJpYy1maWVsZC9udW1iZXItZm9ybWF0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQW1COUQsTUFBTSxPQUFPLG1CQUFtQjthQUNkLGFBQVEsR0FBRyxHQUFHLEFBQU4sQ0FBTzthQUNmLFlBQU8sR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsQ0FBQyxBQUFyRCxDQUFzRDthQUM3RCw2QkFBd0IsR0FBRyxJQUFJLEFBQVAsQ0FBUTthQUNoQywyQkFBc0IsR0FBRyxDQUFDLEFBQUosQ0FBSzthQUMzQiw4QkFBeUIsR0FBRyxLQUFLLEFBQVIsQ0FBUzthQUNsQyxpQ0FBNEIsR0FBRyxLQUFLLEFBQVIsQ0FBUztJQU9yRCxZQUErQixNQUFjO1FBRjdDLGdCQUFXLEdBQWEsRUFBRSxDQUFDO1FBR3pCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksaUJBQWlCLENBQUMsTUFBYztRQUNyQyxvQ0FBb0M7UUFDcEMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDdEUsSUFBSSxDQUFDLGdCQUFnQixHQUFHLHNCQUFzQixLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDbkUs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TE9DQUxFX0lEIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBGb3JtYXRPcHRpb25zIHtcbiAgZGVjaW1hbFBsYWNlcz86IG51bWJlcjtcblxuICBmaW5hbEZvcm1hdHRpbmc/OiBib29sZWFuO1xuXG4gIGF1dG9maWxsRGVjaW1hbHM/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgU3RyaXBPcHRpb25zIHtcbiAgZGVjaW1hbFBsYWNlcz86IG51bWJlcjtcblxuICByZW1vdmVMZWFkaW5nWmVyb3M/OiBib29sZWFuO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTnVtYmVyRm9ybWF0U2VydmljZSB7XG4gIHN0YXRpYyByZWFkb25seSBORUdBVElWRSA9ICctJztcbiAgc3RhdGljIHJlYWRvbmx5IE5VTUJFUlMgPSBbJzAnLCAnMScsICcyJywgJzMnLCAnNCcsICc1JywgJzYnLCAnNycsICc4JywgJzknXTtcbiAgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfRklOQUxfRk9STUFUVElORyA9IHRydWU7XG4gIHN0YXRpYyByZWFkb25seSBERUZBVUxUX0RFQ0lNQUxfUExBQ0VTID0gMjtcbiAgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfQVVUT0ZJTExfREVDSU1BTFMgPSBmYWxzZTtcbiAgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfUkVNT1ZFX0xFQURJTkdfWkVST1MgPSBmYWxzZTtcblxuICBkZWNpbWFsU2VwYXJhdG9yOiAnLCcgfCAnLic7XG4gIGdyb3VwaW5nU2VwYXJhdG9yOiAnLCcgfCAnLic7XG5cbiAgYWxsb3dlZEtleXM6IHN0cmluZ1tdID0gW107XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChMT0NBTEVfSUQpIGxvY2FsZTogc3RyaW5nKSB7XG4gICAgdGhpcy5wcmVwYXJlU2VwYXJhdG9ycyhsb2NhbGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGwgdGhpcyBpZiB0aGUgbG9jYWxlIGlzIGNoYW5nZWQgdG8gdXBkYXRlIHRoZSBzZXBhcmF0b3JzLlxuICAgKiBAcGFyYW0gbG9jYWxlIHRoZSBuZXcgbG9jYWxlXG4gICAqL1xuICBwdWJsaWMgcHJlcGFyZVNlcGFyYXRvcnMobG9jYWxlOiBzdHJpbmcpIHtcbiAgICAvLyB0cnkgdG8gZ2V0IHRoZSBjdXJyZW50IGZvcm1hdHRpbmdcbiAgICBjb25zdCBsb2NhbGVEZWNpbWFsU2VwYXJhdG9yID0gKDEuMSkudG9Mb2NhbGVTdHJpbmcobG9jYWxlKS5jaGFyQXQoMSk7XG4gICAgdGhpcy5kZWNpbWFsU2VwYXJhdG9yID0gbG9jYWxlRGVjaW1hbFNlcGFyYXRvciA9PT0gJywnID8gJywnIDogJy4nO1xuICAgIHRoaXMuZ3JvdXBpbmdTZXBhcmF0b3IgPSBsb2NhbGVEZWNpbWFsU2VwYXJhdG9yID09PSAnLCcgPyAnLicgOiAnLCc7XG5cbiAgICB0aGlzLmFsbG93ZWRLZXlzID0gWy4uLk51bWJlckZvcm1hdFNlcnZpY2UuTlVNQkVSUywgTnVtYmVyRm9ybWF0U2VydmljZS5ORUdBVElWRSwgdGhpcy5kZWNpbWFsU2VwYXJhdG9yXTtcbiAgfVxuXG4gIHN0YXRpYyB2YWx1ZUlzU2V0KHZhbHVlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHlwZW9mIHZhbHVlICE9PSAndW5kZWZpbmVkJyAmJiB2YWx1ZSAhPT0gbnVsbCAmJiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJyB8fCB2YWx1ZS5sZW5ndGggIT09IDApO1xuICB9XG5cbiAgZm9ybWF0KHZhbHVlOiBudW1iZXIsIG9wdGlvbnM/OiBQYXJ0aWFsPEZvcm1hdE9wdGlvbnM+KTogc3RyaW5nIHtcbiAgICByZXR1cm4gTnVtYmVyRm9ybWF0U2VydmljZS52YWx1ZUlzU2V0KHZhbHVlKVxuICAgICAgPyB0aGlzLmZvcm1hdE51bWJlcih2YWx1ZS50b1N0cmluZygpLnJlcGxhY2UobmV3IFJlZ0V4cCgnWy5dJywgJ2cnKSwgdGhpcy5kZWNpbWFsU2VwYXJhdG9yKSwgb3B0aW9ucylcbiAgICAgIDogJyc7XG4gIH1cblxuICBmb3JtYXROdW1iZXIodmFsdWU6IHN0cmluZywgb3B0aW9ucz86IFBhcnRpYWw8Rm9ybWF0T3B0aW9ucz4pOiBzdHJpbmcge1xuICAgIGNvbnN0IGF1dG9maWxsRGVjaW1hbHMgPSB0aGlzLnZhbHVlT3JEZWZhdWx0KG9wdGlvbnM/LmF1dG9maWxsRGVjaW1hbHMsIE51bWJlckZvcm1hdFNlcnZpY2UuREVGQVVMVF9BVVRPRklMTF9ERUNJTUFMUyk7XG4gICAgY29uc3QgZGVjaW1hbFBsYWNlcyA9IHRoaXMudmFsdWVPckRlZmF1bHQob3B0aW9ucz8uZGVjaW1hbFBsYWNlcywgTnVtYmVyRm9ybWF0U2VydmljZS5ERUZBVUxUX0RFQ0lNQUxfUExBQ0VTKTtcbiAgICBjb25zdCBmaW5hbEZvcm1hdHRpbmcgPSB0aGlzLnZhbHVlT3JEZWZhdWx0KG9wdGlvbnM/LmZpbmFsRm9ybWF0dGluZywgTnVtYmVyRm9ybWF0U2VydmljZS5ERUZBVUxUX0ZJTkFMX0ZPUk1BVFRJTkcpO1xuXG4gICAgbGV0IHJlc3VsdCA9IHRoaXMuc3RyaXAodmFsdWUsIHsgZGVjaW1hbFBsYWNlcywgcmVtb3ZlTGVhZGluZ1plcm9zOiBmaW5hbEZvcm1hdHRpbmcgfSk7XG5cbiAgICAvKiBhZGQgZ3JvdXBpbmcgc2VwYXJhdG9yICovXG4gICAgY29uc3QgZGVjaW1hbEluZGV4ID0gcmVzdWx0LmluZGV4T2YodGhpcy5kZWNpbWFsU2VwYXJhdG9yKTtcbiAgICBjb25zdCBpc05lZ2F0aXZlID0gcmVzdWx0LnN0YXJ0c1dpdGgoTnVtYmVyRm9ybWF0U2VydmljZS5ORUdBVElWRSk7XG4gICAgbGV0IGkgPSBkZWNpbWFsSW5kZXggPiAtMSA/IGRlY2ltYWxJbmRleCA6IHJlc3VsdC5sZW5ndGg7XG4gICAgd2hpbGUgKGkgPiAoaXNOZWdhdGl2ZSA/IDQgOiAzKSkge1xuICAgICAgaSAtPSAzO1xuICAgICAgcmVzdWx0ID0gcmVzdWx0LnN1YnN0cmluZygwLCBpKSArIHRoaXMuZ3JvdXBpbmdTZXBhcmF0b3IgKyByZXN1bHQuc3Vic3RyaW5nKGksIHJlc3VsdC5sZW5ndGgpO1xuICAgIH1cblxuICAgIGlmIChmaW5hbEZvcm1hdHRpbmcpIHtcbiAgICAgIGlmIChkZWNpbWFsUGxhY2VzID4gMCAmJiAhIXJlc3VsdCkge1xuICAgICAgICAvKiBhdXRvZmlsbCBkZWNpbWFsIHBsYWNlcyAqL1xuICAgICAgICBsZXQgYWN0dWFsRGVjaW1hbEluZGV4ID0gcmVzdWx0LmluZGV4T2YodGhpcy5kZWNpbWFsU2VwYXJhdG9yKTtcbiAgICAgICAgaWYgKGF1dG9maWxsRGVjaW1hbHMpIHtcbiAgICAgICAgICBpZiAoYWN0dWFsRGVjaW1hbEluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgYWN0dWFsRGVjaW1hbEluZGV4ID0gcmVzdWx0Lmxlbmd0aDtcbiAgICAgICAgICAgIHJlc3VsdCArPSB0aGlzLmRlY2ltYWxTZXBhcmF0b3I7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgcmVzdWx0ID0gdGhpcy5hZGRNaXNzaW5nTGVhZGluZ1plcm8ocmVzdWx0LCBhY3R1YWxEZWNpbWFsSW5kZXgpO1xuICAgICAgICAgIGFjdHVhbERlY2ltYWxJbmRleCA9IHJlc3VsdC5pbmRleE9mKHRoaXMuZGVjaW1hbFNlcGFyYXRvcik7XG5cbiAgICAgICAgICBjb25zdCBhY3R1YWxEZWNpbWFsUGxhY2VzID0gcmVzdWx0Lmxlbmd0aCAtIGFjdHVhbERlY2ltYWxJbmRleCAtIDE7XG4gICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBkZWNpbWFsUGxhY2VzIC0gYWN0dWFsRGVjaW1hbFBsYWNlczsgaisrKSB7XG4gICAgICAgICAgICByZXN1bHQgKz0gJzAnO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXN1bHQgPSB0aGlzLmFkZE1pc3NpbmdMZWFkaW5nWmVybyhyZXN1bHQsIGFjdHVhbERlY2ltYWxJbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHN0cmlwKHZhbHVlOiBzdHJpbmcsIG9wdGlvbnM/OiBTdHJpcE9wdGlvbnMpOiBzdHJpbmcge1xuICAgIGNvbnN0IGRlY2ltYWxQbGFjZXMgPSB0aGlzLnZhbHVlT3JEZWZhdWx0KG9wdGlvbnM/LmRlY2ltYWxQbGFjZXMsIE51bWJlckZvcm1hdFNlcnZpY2UuREVGQVVMVF9ERUNJTUFMX1BMQUNFUyk7XG4gICAgY29uc3QgcmVtb3ZlTGVhZGluZ1plcm9zID0gdGhpcy52YWx1ZU9yRGVmYXVsdChvcHRpb25zPy5yZW1vdmVMZWFkaW5nWmVyb3MsIE51bWJlckZvcm1hdFNlcnZpY2UuREVGQVVMVF9SRU1PVkVfTEVBRElOR19aRVJPUyk7XG5cbiAgICBsZXQgcmVzdWx0ID0gJyc7XG4gICAgbGV0IGluZGV4RGVjaW1hbFNlcCA9IC0xO1xuICAgIGxldCBqID0gLTE7XG4gICAgbGV0IGlnbm9yZWRDaGFycyA9IDA7XG4gICAgZm9yIChjb25zdCBjaGFyIG9mIHZhbHVlKSB7XG4gICAgICBqKys7XG4gICAgICBpZiAodGhpcy5hbGxvd2VkS2V5cy5pbmNsdWRlcyhjaGFyKSkge1xuICAgICAgICBpZiAoY2hhciA9PT0gdGhpcy5kZWNpbWFsU2VwYXJhdG9yKSB7XG4gICAgICAgICAgaWYgKGRlY2ltYWxQbGFjZXMgPT09IDApIHtcbiAgICAgICAgICAgIC8qIGRpc21pc3MgY29udGVudCBhZnRlciBhIGRlY2ltYWwgc2VwYXJhdG9yLCB3aGVuIG5vIHBsYWNlcyBhbGxvd2VkICovXG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9IGVsc2UgaWYgKGluZGV4RGVjaW1hbFNlcCA+IC0xKSB7XG4gICAgICAgICAgICAvKiBpZ25vcmUgc3Vic2VxdWVudCBkZWNpbWFsIHNlcGFyYXRvcnMgKi9cbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpbmRleERlY2ltYWxTZXAgPSBqO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjaGFyID09PSAnMCcgJiYgcmVtb3ZlTGVhZGluZ1plcm9zKSB7XG4gICAgICAgICAgLyogcmVtb3ZlIGxlYWRpbmcgemVybyBvbmx5IGlmIGl0J3Mgbm90IHRoZSBvbmx5IHplcm8gaW4gdGhlICd2YWx1ZScgc3RyaW5nICovXG4gICAgICAgICAgaWYgKChyZXN1bHQubGVuZ3RoID09PSAwICYmIGogKyAxICE9PSB2YWx1ZS5sZW5ndGgpIHx8IHJlc3VsdCA9PT0gTnVtYmVyRm9ybWF0U2VydmljZS5ORUdBVElWRSkge1xuICAgICAgICAgICAgaWdub3JlZENoYXJzKys7XG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYXIgPT09IE51bWJlckZvcm1hdFNlcnZpY2UuTkVHQVRJVkUgJiYgaiA+IDApIHtcbiAgICAgICAgICAvKiBkaXNtaXNzIGNvbnRlbnQgYWZ0ZXIgYSBuZWdhdGl2ZSBzaWduIG5vdCBvbiBmaXJzdCBwb3NpdGlvbiAqL1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmRleERlY2ltYWxTZXAgPiAtMSAmJiByZXN1bHQubGVuZ3RoICsgaWdub3JlZENoYXJzID4gaW5kZXhEZWNpbWFsU2VwICsgZGVjaW1hbFBsYWNlcykge1xuICAgICAgICAgIC8qIGRpc21pc3MgY29udGVudCBhZnRlciBtYXhpbXVtIGRlY2ltYWwgcGxhY2VzIHJlYWNoZWQgKi9cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQgKz0gY2hhcjtcbiAgICAgIH0gZWxzZSBpZiAoY2hhciA9PT0gdGhpcy5ncm91cGluZ1NlcGFyYXRvcikge1xuICAgICAgICBpZiAoaW5kZXhEZWNpbWFsU2VwID09PSAtMSkge1xuICAgICAgICAgIGlnbm9yZWRDaGFycysrO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvKiBkaXNtaXNzIGNvbnRlbnQgYWZ0ZXIgYSBpbnZhbGlkIGNoYXJhY3RlciAqL1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgYWRkTWlzc2luZ0xlYWRpbmdaZXJvKHJlc3VsdDogc3RyaW5nLCBhY3R1YWxEZWNpbWFsSW5kZXg6IG51bWJlcik6IHN0cmluZyB7XG4gICAgY29uc3QgaXNOZWdhdGl2ZSA9IHJlc3VsdC5zdGFydHNXaXRoKE51bWJlckZvcm1hdFNlcnZpY2UuTkVHQVRJVkUpO1xuICAgIC8qIGF1dG9hZGQgYSB6ZXJvIGJlZm9yZSBkZWNpbWFsIHNlcGFyYXRvciwgd2hlbiBpdCdzIG1pc3NpbmcgKi9cbiAgICBpZiAoYWN0dWFsRGVjaW1hbEluZGV4ID09PSAwKSB7XG4gICAgICByZXN1bHQgPSAnMCcgKyByZXN1bHQ7XG4gICAgfVxuICAgIC8qIGF1dG9hZGQgYSB6ZXJvIGJlZm9yZSBkZWNpbWFsIHNlcGFyYXRvciwgd2hlbiBpdCdzIG1pc3NpbmcsIGZvciBuZWdhdGl2ZSB2YWx1ZXMgKi9cbiAgICBpZiAoYWN0dWFsRGVjaW1hbEluZGV4ID09PSAxICYmIGlzTmVnYXRpdmUpIHtcbiAgICAgIHJlc3VsdCA9IHJlc3VsdFswXSArICcwJyArIHJlc3VsdC5zdWJzdHJpbmcoMSwgcmVzdWx0Lmxlbmd0aCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIHZhbHVlT3JEZWZhdWx0KHZhbHVlOiBhbnksIGRlZmF1bHRWYWx1ZTogYW55KTogYW55IHtcbiAgICByZXR1cm4gTnVtYmVyRm9ybWF0U2VydmljZS52YWx1ZUlzU2V0KHZhbHVlKSA/IHZhbHVlIDogZGVmYXVsdFZhbHVlO1xuICB9XG59XG4iXX0=
|
|
@@ -1,24 +1,21 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
2
|
import { NumericFieldDirective } from './numeric-field.directive';
|
|
3
|
-
import { NumberFormatService } from './number-format.service';
|
|
4
3
|
import * as i0 from "@angular/core";
|
|
5
4
|
export class NumericFieldModule {
|
|
6
5
|
static forRoot() {
|
|
7
6
|
return {
|
|
8
7
|
ngModule: NumericFieldModule,
|
|
9
|
-
providers: [NumberFormatService],
|
|
10
8
|
};
|
|
11
9
|
}
|
|
12
10
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NumericFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
13
11
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: NumericFieldModule, imports: [NumericFieldDirective], exports: [NumericFieldDirective] }); }
|
|
14
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NumericFieldModule
|
|
12
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NumericFieldModule }); }
|
|
15
13
|
}
|
|
16
14
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NumericFieldModule, decorators: [{
|
|
17
15
|
type: NgModule,
|
|
18
16
|
args: [{
|
|
19
17
|
imports: [NumericFieldDirective],
|
|
20
|
-
providers: [NumberFormatService],
|
|
21
18
|
exports: [NumericFieldDirective],
|
|
22
19
|
}]
|
|
23
20
|
}] });
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy1maWVsZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXRlcmlhbC1hZGRvbnMvc3JjL2xpYi9udW1lcmljLWZpZWxkL251bWVyaWMtZmllbGQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQU1sRSxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLE1BQU0sQ0FBQyxPQUFPO1FBQ1osT0FBTztZQUNMLFFBQVEsRUFBRSxrQkFBa0I7U0FDN0IsQ0FBQztJQUNKLENBQUM7OEdBTFUsa0JBQWtCOytHQUFsQixrQkFBa0IsWUFIbkIscUJBQXFCLGFBQ3JCLHFCQUFxQjsrR0FFcEIsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUo5QixRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO29CQUNoQyxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztpQkFDakMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTnVtZXJpY0ZpZWxkRGlyZWN0aXZlIH0gZnJvbSAnLi9udW1lcmljLWZpZWxkLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtOdW1lcmljRmllbGREaXJlY3RpdmVdLFxuICBleHBvcnRzOiBbTnVtZXJpY0ZpZWxkRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgTnVtZXJpY0ZpZWxkTW9kdWxlIHtcbiAgc3RhdGljIGZvclJvb3QoKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOdW1lcmljRmllbGRNb2R1bGU+IHtcbiAgICByZXR1cm4ge1xuICAgICAgbmdNb2R1bGU6IE51bWVyaWNGaWVsZE1vZHVsZSxcbiAgICB9O1xuICB9XG59XG4iXX0=
|
package/esm2022/version.mjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const VERSION = '
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export const VERSION = '18.0.4';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL21hdGVyaWFsLWFkZG9ucy9zcmMvdmVyc2lvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFZFUlNJT04gPSAnMTguMC40JztcbiJdfQ==
|
|
@@ -404,6 +404,13 @@ class NumberFormatService {
|
|
|
404
404
|
static { this.DEFAULT_REMOVE_LEADING_ZEROS = false; }
|
|
405
405
|
constructor(locale) {
|
|
406
406
|
this.allowedKeys = [];
|
|
407
|
+
this.prepareSeparators(locale);
|
|
408
|
+
}
|
|
409
|
+
/**
|
|
410
|
+
* Call this if the locale is changed to update the separators.
|
|
411
|
+
* @param locale the new locale
|
|
412
|
+
*/
|
|
413
|
+
prepareSeparators(locale) {
|
|
407
414
|
// try to get the current formatting
|
|
408
415
|
const localeDecimalSeparator = (1.1).toLocaleString(locale).charAt(1);
|
|
409
416
|
this.decimalSeparator = localeDecimalSeparator === ',' ? ',' : '.';
|
|
@@ -520,12 +527,12 @@ class NumberFormatService {
|
|
|
520
527
|
return NumberFormatService.valueIsSet(value) ? value : defaultValue;
|
|
521
528
|
}
|
|
522
529
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NumberFormatService, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
523
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NumberFormatService, providedIn: '
|
|
530
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NumberFormatService, providedIn: 'root' }); }
|
|
524
531
|
}
|
|
525
532
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NumberFormatService, decorators: [{
|
|
526
533
|
type: Injectable,
|
|
527
534
|
args: [{
|
|
528
|
-
providedIn: '
|
|
535
|
+
providedIn: 'root',
|
|
529
536
|
}]
|
|
530
537
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
531
538
|
type: Inject,
|
|
@@ -1271,18 +1278,16 @@ class NumericFieldModule {
|
|
|
1271
1278
|
static forRoot() {
|
|
1272
1279
|
return {
|
|
1273
1280
|
ngModule: NumericFieldModule,
|
|
1274
|
-
providers: [NumberFormatService],
|
|
1275
1281
|
};
|
|
1276
1282
|
}
|
|
1277
1283
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NumericFieldModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1278
1284
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.2", ngImport: i0, type: NumericFieldModule, imports: [NumericFieldDirective], exports: [NumericFieldDirective] }); }
|
|
1279
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NumericFieldModule
|
|
1285
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NumericFieldModule }); }
|
|
1280
1286
|
}
|
|
1281
1287
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: NumericFieldModule, decorators: [{
|
|
1282
1288
|
type: NgModule,
|
|
1283
1289
|
args: [{
|
|
1284
1290
|
imports: [NumericFieldDirective],
|
|
1285
|
-
providers: [NumberFormatService],
|
|
1286
1291
|
exports: [NumericFieldDirective],
|
|
1287
1292
|
}]
|
|
1288
1293
|
}] });
|
|
@@ -4251,52 +4256,75 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
4251
4256
|
class FileUploadComponent {
|
|
4252
4257
|
constructor() {
|
|
4253
4258
|
this.showFileList = false;
|
|
4259
|
+
this.removable = true;
|
|
4254
4260
|
this.fileEmitter = new EventEmitter();
|
|
4255
4261
|
this.errorEmitter = new EventEmitter();
|
|
4256
4262
|
this.fileList = [];
|
|
4257
|
-
this.
|
|
4258
|
-
this.uploadError = false;
|
|
4263
|
+
this.acceptedFileTypes = [];
|
|
4259
4264
|
}
|
|
4260
4265
|
ngOnInit() {
|
|
4266
|
+
this.setAcceptedFileTypes();
|
|
4267
|
+
}
|
|
4268
|
+
setAcceptedFileTypes() {
|
|
4261
4269
|
if (this.accept?.length) {
|
|
4262
|
-
this.accept.
|
|
4270
|
+
this.acceptedFileTypes = this.accept.map((ext) => `.${ext.toLowerCase()}`);
|
|
4263
4271
|
}
|
|
4264
4272
|
}
|
|
4265
|
-
uploadFile(
|
|
4266
|
-
|
|
4267
|
-
|
|
4268
|
-
this.uploadError = false;
|
|
4273
|
+
uploadFile(files) {
|
|
4274
|
+
const fileArray = Array.from(files);
|
|
4275
|
+
if (!this.validateFileList(fileArray)) {
|
|
4269
4276
|
return;
|
|
4270
4277
|
}
|
|
4271
|
-
|
|
4272
|
-
|
|
4273
|
-
|
|
4274
|
-
|
|
4278
|
+
this.addFiles(fileArray);
|
|
4279
|
+
this.fileEmitter.emit(this.createFileListFromArray(this.fileList));
|
|
4280
|
+
}
|
|
4281
|
+
validateFileList(fileArray) {
|
|
4282
|
+
if (!this.multiple && fileArray.length > 1) {
|
|
4283
|
+
this.emitError('ONLY_SINGLE_FILE');
|
|
4284
|
+
return false;
|
|
4275
4285
|
}
|
|
4276
|
-
|
|
4277
|
-
|
|
4278
|
-
this.
|
|
4286
|
+
for (const file of fileArray) {
|
|
4287
|
+
if (!this.isAcceptedFileType(file.name)) {
|
|
4288
|
+
this.emitError('FILETYPE_NOT_SUPPORTED');
|
|
4289
|
+
return false;
|
|
4279
4290
|
}
|
|
4280
|
-
this.fileEmitter.emit(fileList);
|
|
4281
4291
|
}
|
|
4282
|
-
|
|
4292
|
+
return true;
|
|
4293
|
+
}
|
|
4294
|
+
emitError(errorType) {
|
|
4295
|
+
this.errorEmitter.emit(errorType);
|
|
4283
4296
|
}
|
|
4284
|
-
|
|
4285
|
-
const
|
|
4286
|
-
|
|
4287
|
-
|
|
4288
|
-
|
|
4297
|
+
isAcceptedFileType(fileName) {
|
|
4298
|
+
const fileExtension = fileName.split('.').pop()?.toLowerCase();
|
|
4299
|
+
return this.acceptedFileTypes.includes(`.${fileExtension}`);
|
|
4300
|
+
}
|
|
4301
|
+
addFiles(fileArray) {
|
|
4302
|
+
if (!this.multiple) {
|
|
4303
|
+
this.fileList = [];
|
|
4289
4304
|
}
|
|
4305
|
+
this.fileList.push(...fileArray);
|
|
4290
4306
|
}
|
|
4291
4307
|
openFile(file) {
|
|
4292
4308
|
window.open(window.URL.createObjectURL(file));
|
|
4293
4309
|
}
|
|
4310
|
+
remove(file) {
|
|
4311
|
+
this.fileList = this.fileList.filter((f) => f !== file);
|
|
4312
|
+
this.fileEmitter.emit(this.createFileListFromArray(this.fileList));
|
|
4313
|
+
}
|
|
4314
|
+
createFileListFromArray(files) {
|
|
4315
|
+
const dataTransfer = new DataTransfer();
|
|
4316
|
+
files.forEach((file) => dataTransfer.items.add(file));
|
|
4317
|
+
return dataTransfer.files;
|
|
4318
|
+
}
|
|
4319
|
+
hasSingleFile() {
|
|
4320
|
+
return !this.multiple && this.fileList.length === 1;
|
|
4321
|
+
}
|
|
4294
4322
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: FileUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4295
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: FileUploadComponent, isStandalone: true, selector: "mad-file-upload", inputs: { id: "id", multiple: "multiple", accept: "accept", text: "text", showFileList: "showFileList" }, outputs: { fileEmitter: "fileEmitter", errorEmitter: "errorEmitter" }, ngImport: i0, template: "<mat-card\n (click)=\"fileInput.click()\"\n (onFileDropped)=\"uploadFile($event)\"\n class=\"uploadFileContainer\"\n madDragAndDrop\n id=\"uploadFileContainer\"\n>\n <input\n #fileInput\n (change)=\"uploadFile($event.target.files)\"\n (click)=\"fileInput.value = null\"\n [accept]=\"
|
|
4323
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.2", type: FileUploadComponent, isStandalone: true, selector: "mad-file-upload", inputs: { id: "id", multiple: "multiple", accept: "accept", text: "text", showFileList: "showFileList", removable: "removable" }, outputs: { fileEmitter: "fileEmitter", errorEmitter: "errorEmitter" }, ngImport: i0, template: "<mat-card\n (click)=\"fileInput.click()\"\n (onFileDropped)=\"uploadFile($event)\"\n class=\"uploadFileContainer\"\n madDragAndDrop\n id=\"uploadFileContainer\"\n>\n <input\n #fileInput\n (change)=\"uploadFile($event.target.files)\"\n (click)=\"fileInput.value = null\"\n [accept]=\"acceptedFileTypes\"\n [id]=\"id\"\n [multiple]=\"multiple\"\n hidden\n type=\"file\"\n />\n <mat-card-content>\n <ng-container *ngIf=\"hasSingleFile(); else uploadDefault\">\n {{ fileList[0].name }}\n </ng-container>\n\n <ng-template #uploadDefault>\n <mat-icon>vertical_align_top</mat-icon>\n {{ text ? text : 'Upload' }}\n </ng-template>\n </mat-card-content>\n</mat-card>\n\n<ng-container *ngIf=\"showFileList\">\n <mat-chip-listbox>\n <mat-chip *ngFor=\"let file of fileList\" (click)=\"openFile(file)\" class=\"download\" [removable]=\"removable\" (removed)=\"remove(file)\">\n {{ file.name }}\n <mat-icon matChipRemove *ngIf=\"removable\">delete_forever</mat-icon>\n </mat-chip>\n </mat-chip-listbox>\n</ng-container>\n", styles: [".uploadFileContainer{background-repeat:no-repeat;background-position:center;height:100px;margin:0;border:2px dashed var(--main-primary)}.uploadFileContainer:hover{cursor:pointer;background-color:var(--selection-background)!important;opacity:.8}.uploadFileContainer,.mat-mdc-card-content{display:flex;justify-content:center;align-items:center}.download{width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatCardModule }, { kind: "component", type: i1$2.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i1$2.MatCardContent, selector: "mat-card-content" }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: DragAndDropDirectiveDirective, selector: "[madDragAndDrop]", outputs: ["onFileDropped"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i4$3.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled", "tabIndex"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i4$3.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "directive", type: i4$3.MatChipRemove, selector: "[matChipRemove]" }] }); }
|
|
4296
4324
|
}
|
|
4297
4325
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: FileUploadComponent, decorators: [{
|
|
4298
4326
|
type: Component,
|
|
4299
|
-
args: [{ selector: 'mad-file-upload', standalone: true, imports: [CommonModule, MatCardModule, MatIconModule, ButtonModule, TranslateModule, DragAndDropDirectiveDirective, MatChipsModule], template: "<mat-card\n (click)=\"fileInput.click()\"\n (onFileDropped)=\"uploadFile($event)\"\n class=\"uploadFileContainer\"\n madDragAndDrop\n id=\"uploadFileContainer\"\n>\n <input\n #fileInput\n (change)=\"uploadFile($event.target.files)\"\n (click)=\"fileInput.value = null\"\n [accept]=\"
|
|
4327
|
+
args: [{ selector: 'mad-file-upload', standalone: true, imports: [CommonModule, MatCardModule, MatIconModule, ButtonModule, TranslateModule, DragAndDropDirectiveDirective, MatChipsModule], template: "<mat-card\n (click)=\"fileInput.click()\"\n (onFileDropped)=\"uploadFile($event)\"\n class=\"uploadFileContainer\"\n madDragAndDrop\n id=\"uploadFileContainer\"\n>\n <input\n #fileInput\n (change)=\"uploadFile($event.target.files)\"\n (click)=\"fileInput.value = null\"\n [accept]=\"acceptedFileTypes\"\n [id]=\"id\"\n [multiple]=\"multiple\"\n hidden\n type=\"file\"\n />\n <mat-card-content>\n <ng-container *ngIf=\"hasSingleFile(); else uploadDefault\">\n {{ fileList[0].name }}\n </ng-container>\n\n <ng-template #uploadDefault>\n <mat-icon>vertical_align_top</mat-icon>\n {{ text ? text : 'Upload' }}\n </ng-template>\n </mat-card-content>\n</mat-card>\n\n<ng-container *ngIf=\"showFileList\">\n <mat-chip-listbox>\n <mat-chip *ngFor=\"let file of fileList\" (click)=\"openFile(file)\" class=\"download\" [removable]=\"removable\" (removed)=\"remove(file)\">\n {{ file.name }}\n <mat-icon matChipRemove *ngIf=\"removable\">delete_forever</mat-icon>\n </mat-chip>\n </mat-chip-listbox>\n</ng-container>\n", styles: [".uploadFileContainer{background-repeat:no-repeat;background-position:center;height:100px;margin:0;border:2px dashed var(--main-primary)}.uploadFileContainer:hover{cursor:pointer;background-color:var(--selection-background)!important;opacity:.8}.uploadFileContainer,.mat-mdc-card-content{display:flex;justify-content:center;align-items:center}.download{width:100%}\n"] }]
|
|
4300
4328
|
}], propDecorators: { id: [{
|
|
4301
4329
|
type: Input
|
|
4302
4330
|
}], multiple: [{
|
|
@@ -4307,13 +4335,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
4307
4335
|
type: Input
|
|
4308
4336
|
}], showFileList: [{
|
|
4309
4337
|
type: Input
|
|
4338
|
+
}], removable: [{
|
|
4339
|
+
type: Input
|
|
4310
4340
|
}], fileEmitter: [{
|
|
4311
4341
|
type: Output
|
|
4312
4342
|
}], errorEmitter: [{
|
|
4313
4343
|
type: Output
|
|
4314
4344
|
}] } });
|
|
4315
4345
|
|
|
4316
|
-
const VERSION = '
|
|
4346
|
+
const VERSION = '18.0.4';
|
|
4317
4347
|
|
|
4318
4348
|
const MAD_ALERT_DEFAULT_CONFIGURATION = new InjectionToken('mad-alert-configuration', {
|
|
4319
4349
|
providedIn: 'root',
|