ets-fe-ng-sdk 17.0.308 → 17.0.310
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/Reusables/reusable-comps/find-item/find-item.component.mjs +2 -2
- package/esm2022/lib/Shared/components/btn/btn.model.mjs +1 -1
- package/esm2022/lib/Shared/components/btn/btn.service.mjs +168 -164
- package/esm2022/lib/Shared/components/editable-text-case/editable-text-case.component.mjs +2 -2
- package/esm2022/lib/Shared/components/file-upload/file-upload.component.mjs +17 -5
- package/esm2022/lib/Shared/components/form-generator/form-generator.base.component.mjs +1 -1
- package/esm2022/lib/Shared/components/form-generator/form-generator.component.mjs +3 -3
- package/esm2022/lib/Shared/components/input/day-hour-min-input/day-hour-min-input.component.mjs +1 -1
- package/esm2022/lib/Shared/components/input/input-base.component.mjs +6 -2
- package/esm2022/lib/Shared/components/input/input-basic.component.mjs +3 -7
- package/esm2022/lib/Shared/components/input/input-control.component.mjs +3 -3
- package/esm2022/lib/Shared/components/input/input-td-rf.component.mjs +3 -3
- package/esm2022/lib/Shared/components/input/input.component.mjs +3 -3
- package/esm2022/lib/Shared/components/input/validation-message/validation-message.component.mjs +6 -10
- package/esm2022/lib/Shared/components/input-table/input-table.component.mjs +2 -2
- package/esm2022/lib/Shared/components/table-input/table-input-row/table-input-row.component.mjs +2 -2
- package/esm2022/lib/Shared/components/table-plain/table-plain.component.mjs +2 -2
- package/esm2022/lib/Shared/components/webcam-media/webcam-media.component.mjs +266 -0
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/ets-fe-ng-sdk.mjs +548 -283
- package/fesm2022/ets-fe-ng-sdk.mjs.map +1 -1
- package/lib/Services/utility.service.d.ts +1 -1
- package/lib/Shared/components/btn/btn.component.d.ts +1 -1
- package/lib/Shared/components/btn/btn.model.d.ts +1 -1
- package/lib/Shared/components/btn/btn.service.d.ts +7 -0
- package/lib/Shared/components/file-upload/file-upload.component.d.ts +9 -3
- package/lib/Shared/components/form-generator/form-generator.base.component.d.ts +2 -0
- package/lib/Shared/components/info-dialog/info-dialog.component.d.ts +1 -1
- package/lib/Shared/components/input/input-base.component.d.ts +3 -1
- package/lib/Shared/components/input/input-basic.component.d.ts +1 -3
- package/lib/Shared/components/input/validation-message/validation-message.component.d.ts +3 -3
- package/lib/Shared/components/webcam-media/webcam-media.component.d.ts +88 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, inject, input } from '@angular/core';
|
|
1
|
+
import { Component, EventEmitter, Input, Output, inject, input, model } from '@angular/core';
|
|
2
2
|
import { NgIf, NgClass, NgFor } from '@angular/common';
|
|
3
3
|
import { BtnComponent } from '../btn/btn.component';
|
|
4
4
|
import { UtilityService } from '../../../Services/utility.service';
|
|
5
|
+
import ModalComponents from '../modal-components/modal.components';
|
|
6
|
+
import { MatMenuModule } from '@angular/material/menu';
|
|
7
|
+
import { WebcamMediaComponent } from '../webcam-media/webcam-media.component';
|
|
5
8
|
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "../modal/modal.component";
|
|
10
|
+
import * as i2 from "../modal/modal-body.directive";
|
|
11
|
+
import * as i3 from "@angular/material/menu";
|
|
6
12
|
export class FileUploadComponent {
|
|
7
13
|
set _accept(v) {
|
|
8
14
|
switch (v) {
|
|
@@ -15,7 +21,13 @@ export class FileUploadComponent {
|
|
|
15
21
|
}
|
|
16
22
|
}
|
|
17
23
|
constructor() {
|
|
24
|
+
this.mediaWidth = model(1080);
|
|
18
25
|
this.class = input();
|
|
26
|
+
this.useWebcam = input(false);
|
|
27
|
+
/**
|
|
28
|
+
* Only useful if using the webcam option
|
|
29
|
+
*/
|
|
30
|
+
this.fileName = input();
|
|
19
31
|
this.mini = input(true);
|
|
20
32
|
this.listFiles = input(true);
|
|
21
33
|
this.fileChange = new EventEmitter();
|
|
@@ -29,6 +41,7 @@ export class FileUploadComponent {
|
|
|
29
41
|
acceptFiles(...files) {
|
|
30
42
|
this.files = files;
|
|
31
43
|
this.file = files ? files[0] : null;
|
|
44
|
+
this.emitFiles();
|
|
32
45
|
}
|
|
33
46
|
emitFiles() {
|
|
34
47
|
if (this.multiple)
|
|
@@ -39,7 +52,6 @@ export class FileUploadComponent {
|
|
|
39
52
|
onUpload(event) {
|
|
40
53
|
const files = Array.from(event.target.files);
|
|
41
54
|
this.acceptFiles(...files);
|
|
42
|
-
this.emitFiles();
|
|
43
55
|
}
|
|
44
56
|
removeFile(index) {
|
|
45
57
|
this.files.splice(index, 1);
|
|
@@ -60,11 +72,11 @@ export class FileUploadComponent {
|
|
|
60
72
|
inp.click();
|
|
61
73
|
}
|
|
62
74
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FileUploadComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
63
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: FileUploadComponent, isStandalone: true, selector: "app-file-upload", inputs: { help: { classPropertyName: "help", publicName: "help", isSignal: false, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: false, isRequired: false, transformFunction: null }, mini: { classPropertyName: "mini", publicName: "mini", isSignal: true, isRequired: false, transformFunction: null }, useDocumentModal: { classPropertyName: "useDocumentModal", publicName: "useDocumentModal", isSignal: false, isRequired: false, transformFunction: null }, listFiles: { classPropertyName: "listFiles", publicName: "listFiles", isSignal: true, isRequired: false, transformFunction: null }, _accept: { classPropertyName: "_accept", publicName: "accept", isSignal: false, isRequired: false, transformFunction: null }, file: { classPropertyName: "file", publicName: "file", isSignal: false, isRequired: false, transformFunction: null }, files: { classPropertyName: "files", publicName: "files", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { fileChange: "fileChange", filesChange: "filesChange" }, ngImport: i0, template: "
|
|
75
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: FileUploadComponent, isStandalone: true, selector: "app-file-upload", inputs: { help: { classPropertyName: "help", publicName: "help", isSignal: false, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: false, isRequired: false, transformFunction: null }, mediaWidth: { classPropertyName: "mediaWidth", publicName: "mediaWidth", isSignal: true, isRequired: false, transformFunction: null }, class: { classPropertyName: "class", publicName: "class", isSignal: true, isRequired: false, transformFunction: null }, useWebcam: { classPropertyName: "useWebcam", publicName: "useWebcam", isSignal: true, isRequired: false, transformFunction: null }, fileName: { classPropertyName: "fileName", publicName: "fileName", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: false, isRequired: false, transformFunction: null }, mini: { classPropertyName: "mini", publicName: "mini", isSignal: true, isRequired: false, transformFunction: null }, useDocumentModal: { classPropertyName: "useDocumentModal", publicName: "useDocumentModal", isSignal: false, isRequired: false, transformFunction: null }, listFiles: { classPropertyName: "listFiles", publicName: "listFiles", isSignal: true, isRequired: false, transformFunction: null }, _accept: { classPropertyName: "_accept", publicName: "accept", isSignal: false, isRequired: false, transformFunction: null }, file: { classPropertyName: "file", publicName: "file", isSignal: false, isRequired: false, transformFunction: null }, files: { classPropertyName: "files", publicName: "files", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { mediaWidth: "mediaWidthChange", fileChange: "fileChange", filesChange: "filesChange" }, ngImport: i0, template: "@if (listFiles()) {\n <div [ngClass]=\"{ meta: mini() }\" class=\"{{ class() }} form-label mb-2 hide-scroll\">\n @for (item of files; track item) {\n <div class=\"row align-items-start mb-1\">\n <div class=\"col\">\n <div class=\"hide-scroll file-name\">\n {{ item?.name }}\n </div>\n </div>\n <div class=\"col-auto text-end\">\n <span class=\"text-danger pointer p-1 fa fa-close\" (click)=\"removeFile($index)\"></span>\n </div>\n </div>\n }\n </div>\n}\n<!-- <input type=\"file\" style=\"display: none;\" accept=\"{{accept}}\" (change)=\"onUpload($event)\" #uploadInput [multiple]=\"multiple\"> -->\n<app-btn\n icon=\"upload\"\n (mclick)=\"useWebcam() ? null : openDialog()\"\n [type]=\"file ? 'primary' : 'secondary'\"\n [disabled]=\"disabled\"\n [help]=\"help\"\n [text]=\"label\"\n [matMenuTriggerFor]=\"useWebcam() ? menu : null\" />\n\n<mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"openDialog()\">Upload</button>\n <button mat-menu-item (click)=\"webcamModal.open()\">Use Camera</button>\n</mat-menu>\n\n<modal-comp #webcamModal width=\"1080px\" header=\"Webcam\">\n <ng-template modalBody>\n <lib-webcam-media [fileName]=\"fileName()\" [width]=\"mediaWidth()\" (closed)=\"webcamModal.close(); acceptFiles($event)\" />\n </ng-template>\n</modal-comp>\n", styles: [".meta,.file-name{height:23px}.meta{overflow-y:auto}.file-name{overflow:auto}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "disabled", "form", "forms", "help", "iconBtn", "loading", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid"], outputs: ["mclick"] }, { kind: "component", type: i1.ModalComponent, selector: "modal-comp", inputs: ["header", "bodyTemplateRef", "footerTemplateRef", "showHeader", "loading", "isFullscreen", "showFooter", "width", "minWidth", "height", "maxHeight", "icon", "data", "disableClose", "hasBackdrop"], outputs: ["modalOpen", "modalClose"] }, { kind: "directive", type: i2.ModalBodyDirective, selector: "[modalBody]" }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i3.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i3.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i3.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: WebcamMediaComponent, selector: "lib-webcam-media", inputs: ["isVideo", "useAudio", "fileName", "fileNameFactory", "fileType", "extraClass", "recordingNotificationInterval", "isBackground", "width"], outputs: ["closed", "recorderStopped", "recorderErrored", "recorderStarted", "recordingState", "recordingChanged", "widthChange"] }] }); }
|
|
64
76
|
}
|
|
65
77
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FileUploadComponent, decorators: [{
|
|
66
78
|
type: Component,
|
|
67
|
-
args: [{ selector: 'app-file-upload', standalone: true, imports: [NgIf, NgClass, NgFor, BtnComponent], template: "
|
|
79
|
+
args: [{ selector: 'app-file-upload', standalone: true, imports: [NgIf, NgClass, NgFor, BtnComponent, ModalComponents, MatMenuModule, WebcamMediaComponent], template: "@if (listFiles()) {\n <div [ngClass]=\"{ meta: mini() }\" class=\"{{ class() }} form-label mb-2 hide-scroll\">\n @for (item of files; track item) {\n <div class=\"row align-items-start mb-1\">\n <div class=\"col\">\n <div class=\"hide-scroll file-name\">\n {{ item?.name }}\n </div>\n </div>\n <div class=\"col-auto text-end\">\n <span class=\"text-danger pointer p-1 fa fa-close\" (click)=\"removeFile($index)\"></span>\n </div>\n </div>\n }\n </div>\n}\n<!-- <input type=\"file\" style=\"display: none;\" accept=\"{{accept}}\" (change)=\"onUpload($event)\" #uploadInput [multiple]=\"multiple\"> -->\n<app-btn\n icon=\"upload\"\n (mclick)=\"useWebcam() ? null : openDialog()\"\n [type]=\"file ? 'primary' : 'secondary'\"\n [disabled]=\"disabled\"\n [help]=\"help\"\n [text]=\"label\"\n [matMenuTriggerFor]=\"useWebcam() ? menu : null\" />\n\n<mat-menu #menu=\"matMenu\">\n <button mat-menu-item (click)=\"openDialog()\">Upload</button>\n <button mat-menu-item (click)=\"webcamModal.open()\">Use Camera</button>\n</mat-menu>\n\n<modal-comp #webcamModal width=\"1080px\" header=\"Webcam\">\n <ng-template modalBody>\n <lib-webcam-media [fileName]=\"fileName()\" [width]=\"mediaWidth()\" (closed)=\"webcamModal.close(); acceptFiles($event)\" />\n </ng-template>\n</modal-comp>\n", styles: [".meta,.file-name{height:23px}.meta{overflow-y:auto}.file-name{overflow:auto}\n"] }]
|
|
68
80
|
}], ctorParameters: () => [], propDecorators: { help: [{
|
|
69
81
|
type: Input
|
|
70
82
|
}], label: [{
|
|
@@ -87,4 +99,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
87
99
|
}], filesChange: [{
|
|
88
100
|
type: Output
|
|
89
101
|
}] } });
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS11cGxvYWQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL2ZpbGUtdXBsb2FkL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9maWxlLXVwbG9hZC9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JHLE9BQU8sRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDbkUsT0FBTyxlQUFlLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7OztBQVM5RSxNQUFNLE9BQU8sbUJBQW1CO0lBZ0I5QixJQUFxQixPQUFPLENBQUMsQ0FBUztRQUNwQyxRQUFRLENBQUMsRUFBRTtZQUNULEtBQUssT0FBTztnQkFDVixJQUFJLENBQUMsTUFBTSxHQUFHLHNCQUFzQixDQUFDO2dCQUNyQyxNQUFNO1lBRVI7Z0JBQ0UsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7Z0JBQ2hCLE1BQU07U0FDVDtJQUNILENBQUM7SUFT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LGNBR2YsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFDLGVBQWUsRUFBQyxhQUFhLEVBQUMsb0JBQW9CLENBQUM7d0RBR3ZGLElBQUk7c0JBQVosS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBUUcsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFHZSxPQUFPO3NCQUEzQixLQUFLO3VCQUFDLFFBQVE7Z0JBWU4sSUFBSTtzQkFBWixLQUFLO2dCQUNJLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0UsS0FBSztzQkFBYixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBpbmplY3QsIGlucHV0LCBtb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdJZiwgTmdDbGFzcywgTmdGb3IgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQnRuQ29tcG9uZW50IH0gZnJvbSAnLi4vYnRuL2J0bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgVXRpbGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9TZXJ2aWNlcy91dGlsaXR5LnNlcnZpY2UnO1xuaW1wb3J0IE1vZGFsQ29tcG9uZW50cyBmcm9tICcuLi9tb2RhbC1jb21wb25lbnRzL21vZGFsLmNvbXBvbmVudHMnO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgV2ViY2FtTWVkaWFDb21wb25lbnQgfSBmcm9tICcuLi93ZWJjYW0tbWVkaWEvd2ViY2FtLW1lZGlhLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC1maWxlLXVwbG9hZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWxlLXVwbG9hZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbGUtdXBsb2FkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0lmLCBOZ0NsYXNzLCBOZ0ZvciwgQnRuQ29tcG9uZW50LE1vZGFsQ29tcG9uZW50cyxNYXRNZW51TW9kdWxlLFdlYmNhbU1lZGlhQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsZVVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGhlbHA6IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgbWVkaWFXaWR0aCA9IG1vZGVsPG51bWJlcj4oMTA4MCk7IFxuICBjbGFzcyA9IGlucHV0PHN0cmluZz4oKTtcbiAgdXNlV2ViY2FtID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICAvKipcbiAgICogT25seSB1c2VmdWwgaWYgdXNpbmcgdGhlIHdlYmNhbSBvcHRpb25cbiAgICovXG4gIGZpbGVOYW1lID0gaW5wdXQ8c3RyaW5nPigpO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgbXVsdGlwbGU6IGJvb2xlYW47XG4gIG1pbmkgPSBpbnB1dCh0cnVlKTtcbiAgQElucHV0KCkgdXNlRG9jdW1lbnRNb2RhbDogYm9vbGVhbjtcbiAgbGlzdEZpbGVzID0gaW5wdXQodHJ1ZSk7XG4gIGFjY2VwdDogc3RyaW5nO1xuICBASW5wdXQoJ2FjY2VwdCcpIHNldCBfYWNjZXB0KHY6IHN0cmluZykge1xuICAgIHN3aXRjaCAodikge1xuICAgICAgY2FzZSAnaW1hZ2UnOlxuICAgICAgICB0aGlzLmFjY2VwdCA9ICcucG5nLC5qcGcsLmRvY3gsLnBkZic7XG4gICAgICAgIGJyZWFrO1xuXG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLmFjY2VwdCA9IHY7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cbiAgfVxuICAvLyBAVmlld0NoaWxkKCd1cGxvYWRJbnB1dCcpIHVwbG9hZElucHV0UmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBASW5wdXQoKSBmaWxlOiBGaWxlO1xuICBAT3V0cHV0KCkgZmlsZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZT4oKTtcbiAgQElucHV0KCkgZmlsZXM6IEZpbGVbXTtcbiAgQE91dHB1dCgpIGZpbGVzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGaWxlW10+KCk7XG5cbiAgcHVibGljIHVTID0gaW5qZWN0KFV0aWxpdHlTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gIGdldCBpc1NpbmdsZSgpIHtcbiAgICByZXR1cm4gIXRoaXMubXVsdGlwbGU7XG4gIH1cbiAgcHJvdGVjdGVkIGFjY2VwdEZpbGVzKC4uLmZpbGVzOiBGaWxlW10pIHtcbiAgICB0aGlzLmZpbGVzID0gZmlsZXM7XG4gICAgdGhpcy5maWxlID0gZmlsZXMgPyBmaWxlc1swXSA6IG51bGw7XG4gICAgdGhpcy5lbWl0RmlsZXMoKTtcbiAgfVxuICBwcm90ZWN0ZWQgZW1pdEZpbGVzKCkge1xuICAgIGlmICh0aGlzLm11bHRpcGxlKSB0aGlzLmZpbGVzQ2hhbmdlLmVtaXQodGhpcy5maWxlcyk7XG4gICAgZWxzZSB0aGlzLmZpbGVDaGFuZ2UuZW1pdCh0aGlzLmZpbGUpO1xuICB9XG5cbiAgb25VcGxvYWQoZXZlbnQ6IGFueSkge1xuICAgIGNvbnN0IGZpbGVzID0gQXJyYXkuZnJvbTxGaWxlPihldmVudC50YXJnZXQuZmlsZXMpO1xuICAgIHRoaXMuYWNjZXB0RmlsZXMoLi4uZmlsZXMpO1xuICB9XG5cbiAgcmVtb3ZlRmlsZShpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5maWxlcy5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIHRoaXMuZmlsZSA9IHRoaXMuZmlsZXMgPyB0aGlzLmZpbGVzWzBdIDogbnVsbDtcblxuICAgIHRoaXMuZmlsZUNoYW5nZS5lbWl0KHRoaXMuZmlsZSk7XG4gICAgdGhpcy5maWxlc0NoYW5nZS5lbWl0KHRoaXMuZmlsZXMpO1xuICB9XG4gIG9wZW5EaWFsb2coKSB7XG4gICAgY29uc3QgaW5wID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKTtcbiAgICBpbnAudHlwZSA9ICdmaWxlJztcbiAgICBpbnAuYWNjZXB0ID0gdGhpcy5hY2NlcHQ7XG4gICAgaW5wLm11bHRpcGxlID0gdGhpcy5tdWx0aXBsZTtcbiAgICBpbnAub25jaGFuZ2UgPSAoZSkgPT4ge1xuICAgICAgdGhpcy5vblVwbG9hZChlKTtcbiAgICAgIGlucC5yZW1vdmUoKTtcbiAgICB9O1xuICAgIC8vIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaW5wKTtcbiAgICBpbnAuY2xpY2soKTtcbiAgfVxufVxuIiwiQGlmIChsaXN0RmlsZXMoKSkge1xuICA8ZGl2IFtuZ0NsYXNzXT1cInsgbWV0YTogbWluaSgpIH1cIiBjbGFzcz1cInt7IGNsYXNzKCkgfX0gZm9ybS1sYWJlbCBtYi0yIGhpZGUtc2Nyb2xsXCI+XG4gICAgQGZvciAoaXRlbSBvZiBmaWxlczsgdHJhY2sgaXRlbSkge1xuICAgICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1zdGFydCBtYi0xXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiaGlkZS1zY3JvbGwgZmlsZS1uYW1lXCI+XG4gICAgICAgICAgICB7eyBpdGVtPy5uYW1lIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG8gdGV4dC1lbmRcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtZGFuZ2VyIHBvaW50ZXIgcC0xIGZhIGZhLWNsb3NlXCIgKGNsaWNrKT1cInJlbW92ZUZpbGUoJGluZGV4KVwiPjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxufVxuPCEtLSA8aW5wdXQgdHlwZT1cImZpbGVcIiAgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiIGFjY2VwdD1cInt7YWNjZXB0fX1cIiAoY2hhbmdlKT1cIm9uVXBsb2FkKCRldmVudClcIiAjdXBsb2FkSW5wdXQgW211bHRpcGxlXT1cIm11bHRpcGxlXCI+IC0tPlxuPGFwcC1idG5cbiAgaWNvbj1cInVwbG9hZFwiXG4gIChtY2xpY2spPVwidXNlV2ViY2FtKCkgPyBudWxsIDogb3BlbkRpYWxvZygpXCJcbiAgW3R5cGVdPVwiZmlsZSA/ICdwcmltYXJ5JyA6ICdzZWNvbmRhcnknXCJcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW2hlbHBdPVwiaGVscFwiXG4gIFt0ZXh0XT1cImxhYmVsXCJcbiAgW21hdE1lbnVUcmlnZ2VyRm9yXT1cInVzZVdlYmNhbSgpID8gbWVudSA6IG51bGxcIiAvPlxuXG48bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XG4gIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwib3BlbkRpYWxvZygpXCI+VXBsb2FkPC9idXR0b24+XG4gIDxidXR0b24gbWF0LW1lbnUtaXRlbSAoY2xpY2spPVwid2ViY2FtTW9kYWwub3BlbigpXCI+VXNlIENhbWVyYTwvYnV0dG9uPlxuPC9tYXQtbWVudT5cblxuPG1vZGFsLWNvbXAgI3dlYmNhbU1vZGFsIHdpZHRoPVwiMTA4MHB4XCIgaGVhZGVyPVwiV2ViY2FtXCI+XG4gIDxuZy10ZW1wbGF0ZSBtb2RhbEJvZHk+XG4gICAgPGxpYi13ZWJjYW0tbWVkaWEgW2ZpbGVOYW1lXT1cImZpbGVOYW1lKClcIiBbd2lkdGhdPVwibWVkaWFXaWR0aCgpXCIgKGNsb3NlZCk9XCJ3ZWJjYW1Nb2RhbC5jbG9zZSgpOyBhY2NlcHRGaWxlcygkZXZlbnQpXCIgLz5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbW9kYWwtY29tcD5cbiJdfQ==
|
|
@@ -45,4 +45,4 @@ export class BaseFormGenerator {
|
|
|
45
45
|
});
|
|
46
46
|
}
|
|
47
47
|
}
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0b3IuYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvZm9ybS1nZW5lcmF0b3IvZm9ybS1nZW5lcmF0b3IuYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUlyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFJbkUsTUFBTSxPQUFnQixpQkFBaUI7SUFRckM7UUFQQSxrQkFBYSxHQUFHLE1BQU0sQ0FBdUMsRUFBRSxDQUFDLENBQUM7UUFDakUsZUFBVSxHQUFHLFFBQVEsQ0FBb0IsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckcsU0FBSSxHQUEwQyxFQUFFLENBQUM7UUFFMUMsbUJBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUdyQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVM7UUFDUCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNyQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRVMsZUFBZSxDQUFDLE9BQTBCO1FBQ2xELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxLQUFhLEVBQUUsTUFBZ0M7UUFDekUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUMxQyxNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEMsMkJBQTJCO1lBQzNCLE9BQU8sRUFBRSxHQUFHLGFBQWEsRUFBRSxDQUFDLEtBQVksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxRQUFRLEVBQUUsR0FBRyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQzdGLDRIQUE0SDtRQUM5SCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDUyxvQkFBb0IsQ0FBQyxHQUFvRDtRQUNqRixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQzFDLE1BQU0sZ0JBQWdCLEdBQXlCLEVBQUUsQ0FBQztZQUNsRCxLQUFLLE1BQU0sR0FBRyxJQUFJLGFBQWE7Z0JBQUUsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQztvQkFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDL0ksT0FBTyxnQkFBZ0IsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxLQUFhO1FBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDMUMsT0FBTyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUIsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXN0cm95UmVmLCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQXN5bmNWYWxpZGF0b3JGbiwgRm9ybUdyb3VwLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9wdGlvbkxhYmVsVHlwZSB9IGZyb20gJy4uL2lucHV0L2lucHV0LWJhc2ljLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vU2VydmljZXMvdXRpbGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IElPYmplY3RMaXRlcmFsLCBJbnB1dFR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW5kZXgubW9kZWwnO1xuaW1wb3J0IHsgSWNvblR5cGUgfSBmcm9tICcuLi9idG4vYnRuLm1vZGVsJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VGb3JtR2VuZXJhdG9yPFRGb3JtR3JvdXAgZXh0ZW5kcyBJT2JqZWN0TGl0ZXJhbCwgVEJhc2VGb3JtU2NoZW1hIGV4dGVuZHMgeyBmaWVsZD86IGFueSB9ID0gYW55PiB7XG4gIGZvcm1TY2hlbWFNYXAgPSBzaWduYWw8eyBbZmllbGQ6IHN0cmluZ106IFRCYXNlRm9ybVNjaGVtYSB9Pih7fSk7XG4gIGZvcm1TY2hlbWEgPSBjb21wdXRlZDxUQmFzZUZvcm1TY2hlbWFbXT4oKCkgPT4gT2JqZWN0LnZhbHVlcyh0aGlzLmZvcm1TY2hlbWFNYXAoKSkuZmlsdGVyKCh4KSA9PiB4KSk7XG4gIHN1YnM6IHsgW2ZpZWxkTmFtZTogc3RyaW5nXTogU3Vic2NyaXB0aW9uIH0gPSB7fTtcblxuICBwdWJsaWMgdXRpbGl0eVNlcnZpY2UgPSBpbmplY3QoVXRpbGl0eVNlcnZpY2UpO1xuICBwdWJsaWMgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHtcbiAgICAgIHRoaXMub25EZXN0cm95KCk7XG4gICAgfSk7XG4gIH1cblxuICBvbkRlc3Ryb3koKSB7XG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLnN1YnMpLmZvckVhY2goKHMpID0+IHtcbiAgICAgIHM/LnVuc3Vic2NyaWJlKCk7XG4gICAgfSk7XG4gICAgdGhpcy5zdWJzID0ge307XG4gIH1cblxuICBwcm90ZWN0ZWQgX3NldEZvcm1TY2hlbWFzKHNjaGVtYXM6IFRCYXNlRm9ybVNjaGVtYVtdKSB7XG4gICAgdGhpcy5mb3JtU2NoZW1hTWFwLnNldCgoc2NoZW1hcyB8fCBbXSkudG9NYXAoJ2ZpZWxkJykpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF91cGRhdGVGb3JtU2NoZW1hKGZpZWxkOiBzdHJpbmcsIHNjaGVtZTogUGFydGlhbDxUQmFzZUZvcm1TY2hlbWE+KSB7XG4gICAgdGhpcy5mb3JtU2NoZW1hTWFwLnVwZGF0ZSgoZm9ybVNjaGVtYU1hcCkgPT4ge1xuICAgICAgY29uc3QgZXhpc3RpbmcgPSBmb3JtU2NoZW1hTWFwW2ZpZWxkXTtcbiAgICAgIC8vIGlmICghZXhpc3RpbmcpIGRlYnVnZ2VyO1xuICAgICAgcmV0dXJuIHsgLi4uZm9ybVNjaGVtYU1hcCwgW2ZpZWxkIGFzIGFueV06ICFleGlzdGluZyA/IHNjaGVtZSA6IHsgLi4uZXhpc3RpbmcsIC4uLnNjaGVtZSB9IH07XG4gICAgICAvLyByZXR1cm4gIXNjaCA/IHsgLi4uZm9ybVNjaGVtYU1hcCwgW2ZpZWxkIGFzIGFueV06IHNjaGVtZSB9IDogeyAuLi5mb3JtU2NoZW1hTWFwLCBbZmllbGQgYXMgYW55XTogeyAuLi5zY2gsIC4uLnNjaGVtZSB9IH07XG4gICAgfSk7XG4gIH1cbiAgcHJvdGVjdGVkIF91cGRhdGVBbGxGb3JtU2NoZW1hKG1hcDogKGZvcm1GaWVsZDogVEJhc2VGb3JtU2NoZW1hKSA9PiBUQmFzZUZvcm1TY2hlbWEpIHtcbiAgICB0aGlzLmZvcm1TY2hlbWFNYXAudXBkYXRlKChmb3JtU2NoZW1hTWFwKSA9PiB7XG4gICAgICBjb25zdCBuZXdGb3JtU2NoZW1hTWFwOiB0eXBlb2YgZm9ybVNjaGVtYU1hcCA9IHt9O1xuICAgICAgZm9yIChjb25zdCBrZXkgaW4gZm9ybVNjaGVtYU1hcCkgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChmb3JtU2NoZW1hTWFwLCBrZXkpKSBuZXdGb3JtU2NoZW1hTWFwW2tleV0gPSBtYXAoZm9ybVNjaGVtYU1hcFtrZXldKTtcbiAgICAgIHJldHVybiBuZXdGb3JtU2NoZW1hTWFwO1xuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmZvcm1TY2hlbWEoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfcmVtb3ZlRm9ybVNjaGVtYShmaWVsZDogc3RyaW5nKSB7XG4gICAgdGhpcy5mb3JtU2NoZW1hTWFwLnVwZGF0ZSgoZm9ybVNjaGVtYU1hcCkgPT4ge1xuICAgICAgZGVsZXRlIGZvcm1TY2hlbWFNYXBbZmllbGRdO1xuICAgICAgcmV0dXJuIGZvcm1TY2hlbWFNYXA7XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQmFzZUZvcm1TY2hlbWE8XG4gIFQsXG4gIENvbXBvbmVudCBleHRlbmRzIEJhc2VGb3JtR2VuZXJhdG9yPFQ+LFxuICBURm9ybUdyb3VwIGV4dGVuZHMge1xuICAgIFtLIGluIGtleW9mIFRGb3JtR3JvdXBdOiBBYnN0cmFjdENvbnRyb2w8YW55LCBhbnk+O1xuICB9ID0gYW55LFxuPiB7XG4gIGFzeW5jVmFsaWRhdG9ycz86IEFzeW5jVmFsaWRhdG9yRm5bXTtcbiAgYXV0b1BpY2tWYWx1ZUZpZWxkPzogYm9vbGVhbjtcbiAgY2hlY2tlZD86IGJvb2xlYW47XG4gIGNsZWFyT25EaXNhYmxlPzogYm9vbGVhbjtcbiAgY2xzPzogc3RyaW5nO1xuICBjb3VudHJ5Q29kZTM/OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogSUJhc2VGb3JtU2NoZW1hPFQsIENvbXBvbmVudCwgVEZvcm1Hcm91cD5bXTtcbiAgZGVjaW1hbFBvaW50cz86IG51bWJlcjtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBkaXNhYmxlZElmPzogKHJvdzogYW55LCBjZWxsRmllbGQ/OiBzdHJpbmcpID0+IGJvb2xlYW47XG4gIC8vIGhpZGVJZkZ1bmM/OiAocm93KSA9PiBib29sZWFuO1xuICBmaWVsZDoga2V5b2YgVEZvcm1Hcm91cDtcbiAgZm9ybT86IEZvcm1Hcm91cDxURm9ybUdyb3VwPjtcbiAgZ2V0Q291bnRyeUNvZGUzS2V5Pzogc3RyaW5nO1xuICBoaWRkZW4/OiBib29sZWFuO1xuICBoaW50Pzogc3RyaW5nO1xuICBpZD86IHN0cmluZztcbiAgaXNSZXF1aXJlZD86IGJvb2xlYW47XG4gIGlzU2VhcmNoRmllbGQ/OiBib29sZWFuO1xuICBsYWJlbD86IHN0cmluZztcbiAgbGFiZWxGaWVsZD86IHN0cmluZztcbiAgbGFiZWxUeXBlPzogT3B0aW9uTGFiZWxUeXBlO1xuICBvcHRpb25MYWJlbEZvcm1hdHRlcj86IChyb3cpID0+IHN0cmluZztcbiAgbWF4PzogbnVtYmVyO1xuICBtaW4/
|
|
48
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0b3IuYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ldHMtZmUtbmctc2RrL3NyYy9saWIvU2hhcmVkL2NvbXBvbmVudHMvZm9ybS1nZW5lcmF0b3IvZm9ybS1nZW5lcmF0b3IuYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUlyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFJbkUsTUFBTSxPQUFnQixpQkFBaUI7SUFRckM7UUFQQSxrQkFBYSxHQUFHLE1BQU0sQ0FBdUMsRUFBRSxDQUFDLENBQUM7UUFDakUsZUFBVSxHQUFHLFFBQVEsQ0FBb0IsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDckcsU0FBSSxHQUEwQyxFQUFFLENBQUM7UUFFMUMsbUJBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUdyQyxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFNBQVM7UUFDUCxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUNyQyxDQUFDLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDbkIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRVMsZUFBZSxDQUFDLE9BQTBCO1FBQ2xELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxLQUFhLEVBQUUsTUFBZ0M7UUFDekUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxhQUFhLEVBQUUsRUFBRTtZQUMxQyxNQUFNLFFBQVEsR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEMsMkJBQTJCO1lBQzNCLE9BQU8sRUFBRSxHQUFHLGFBQWEsRUFBRSxDQUFDLEtBQVksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxRQUFRLEVBQUUsR0FBRyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQzdGLDRIQUE0SDtRQUM5SCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDUyxvQkFBb0IsQ0FBQyxHQUFvRDtRQUNqRixJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFO1lBQzFDLE1BQU0sZ0JBQWdCLEdBQXlCLEVBQUUsQ0FBQztZQUNsRCxLQUFLLE1BQU0sR0FBRyxJQUFJLGFBQWE7Z0JBQUUsSUFBSSxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQztvQkFBRSxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDL0ksT0FBTyxnQkFBZ0IsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFUyxpQkFBaUIsQ0FBQyxLQUFhO1FBQ3ZDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsYUFBYSxFQUFFLEVBQUU7WUFDMUMsT0FBTyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDNUIsT0FBTyxhQUFhLENBQUM7UUFDdkIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXN0cm95UmVmLCBjb21wdXRlZCwgaW5qZWN0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQXN5bmNWYWxpZGF0b3JGbiwgRm9ybUdyb3VwLCBWYWxpZGF0b3JGbiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE9wdGlvbkxhYmVsVHlwZSB9IGZyb20gJy4uL2lucHV0L2lucHV0LWJhc2ljLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vU2VydmljZXMvdXRpbGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IElPYmplY3RMaXRlcmFsLCBJbnB1dFR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW5kZXgubW9kZWwnO1xuaW1wb3J0IHsgSWNvblR5cGUgfSBmcm9tICcuLi9idG4vYnRuLm1vZGVsJztcblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VGb3JtR2VuZXJhdG9yPFRGb3JtR3JvdXAgZXh0ZW5kcyBJT2JqZWN0TGl0ZXJhbCwgVEJhc2VGb3JtU2NoZW1hIGV4dGVuZHMgeyBmaWVsZD86IGFueSB9ID0gYW55PiB7XG4gIGZvcm1TY2hlbWFNYXAgPSBzaWduYWw8eyBbZmllbGQ6IHN0cmluZ106IFRCYXNlRm9ybVNjaGVtYSB9Pih7fSk7XG4gIGZvcm1TY2hlbWEgPSBjb21wdXRlZDxUQmFzZUZvcm1TY2hlbWFbXT4oKCkgPT4gT2JqZWN0LnZhbHVlcyh0aGlzLmZvcm1TY2hlbWFNYXAoKSkuZmlsdGVyKCh4KSA9PiB4KSk7XG4gIHN1YnM6IHsgW2ZpZWxkTmFtZTogc3RyaW5nXTogU3Vic2NyaXB0aW9uIH0gPSB7fTtcblxuICBwdWJsaWMgdXRpbGl0eVNlcnZpY2UgPSBpbmplY3QoVXRpbGl0eVNlcnZpY2UpO1xuICBwdWJsaWMgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHtcbiAgICAgIHRoaXMub25EZXN0cm95KCk7XG4gICAgfSk7XG4gIH1cblxuICBvbkRlc3Ryb3koKSB7XG4gICAgT2JqZWN0LnZhbHVlcyh0aGlzLnN1YnMpLmZvckVhY2goKHMpID0+IHtcbiAgICAgIHM/LnVuc3Vic2NyaWJlKCk7XG4gICAgfSk7XG4gICAgdGhpcy5zdWJzID0ge307XG4gIH1cblxuICBwcm90ZWN0ZWQgX3NldEZvcm1TY2hlbWFzKHNjaGVtYXM6IFRCYXNlRm9ybVNjaGVtYVtdKSB7XG4gICAgdGhpcy5mb3JtU2NoZW1hTWFwLnNldCgoc2NoZW1hcyB8fCBbXSkudG9NYXAoJ2ZpZWxkJykpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF91cGRhdGVGb3JtU2NoZW1hKGZpZWxkOiBzdHJpbmcsIHNjaGVtZTogUGFydGlhbDxUQmFzZUZvcm1TY2hlbWE+KSB7XG4gICAgdGhpcy5mb3JtU2NoZW1hTWFwLnVwZGF0ZSgoZm9ybVNjaGVtYU1hcCkgPT4ge1xuICAgICAgY29uc3QgZXhpc3RpbmcgPSBmb3JtU2NoZW1hTWFwW2ZpZWxkXTtcbiAgICAgIC8vIGlmICghZXhpc3RpbmcpIGRlYnVnZ2VyO1xuICAgICAgcmV0dXJuIHsgLi4uZm9ybVNjaGVtYU1hcCwgW2ZpZWxkIGFzIGFueV06ICFleGlzdGluZyA/IHNjaGVtZSA6IHsgLi4uZXhpc3RpbmcsIC4uLnNjaGVtZSB9IH07XG4gICAgICAvLyByZXR1cm4gIXNjaCA/IHsgLi4uZm9ybVNjaGVtYU1hcCwgW2ZpZWxkIGFzIGFueV06IHNjaGVtZSB9IDogeyAuLi5mb3JtU2NoZW1hTWFwLCBbZmllbGQgYXMgYW55XTogeyAuLi5zY2gsIC4uLnNjaGVtZSB9IH07XG4gICAgfSk7XG4gIH1cbiAgcHJvdGVjdGVkIF91cGRhdGVBbGxGb3JtU2NoZW1hKG1hcDogKGZvcm1GaWVsZDogVEJhc2VGb3JtU2NoZW1hKSA9PiBUQmFzZUZvcm1TY2hlbWEpIHtcbiAgICB0aGlzLmZvcm1TY2hlbWFNYXAudXBkYXRlKChmb3JtU2NoZW1hTWFwKSA9PiB7XG4gICAgICBjb25zdCBuZXdGb3JtU2NoZW1hTWFwOiB0eXBlb2YgZm9ybVNjaGVtYU1hcCA9IHt9O1xuICAgICAgZm9yIChjb25zdCBrZXkgaW4gZm9ybVNjaGVtYU1hcCkgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChmb3JtU2NoZW1hTWFwLCBrZXkpKSBuZXdGb3JtU2NoZW1hTWFwW2tleV0gPSBtYXAoZm9ybVNjaGVtYU1hcFtrZXldKTtcbiAgICAgIHJldHVybiBuZXdGb3JtU2NoZW1hTWFwO1xuICAgIH0pO1xuICAgIHJldHVybiB0aGlzLmZvcm1TY2hlbWEoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfcmVtb3ZlRm9ybVNjaGVtYShmaWVsZDogc3RyaW5nKSB7XG4gICAgdGhpcy5mb3JtU2NoZW1hTWFwLnVwZGF0ZSgoZm9ybVNjaGVtYU1hcCkgPT4ge1xuICAgICAgZGVsZXRlIGZvcm1TY2hlbWFNYXBbZmllbGRdO1xuICAgICAgcmV0dXJuIGZvcm1TY2hlbWFNYXA7XG4gICAgfSk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQmFzZUZvcm1TY2hlbWE8XG4gIFQsXG4gIENvbXBvbmVudCBleHRlbmRzIEJhc2VGb3JtR2VuZXJhdG9yPFQ+LFxuICBURm9ybUdyb3VwIGV4dGVuZHMge1xuICAgIFtLIGluIGtleW9mIFRGb3JtR3JvdXBdOiBBYnN0cmFjdENvbnRyb2w8YW55LCBhbnk+O1xuICB9ID0gYW55LFxuPiB7XG4gIGFzeW5jVmFsaWRhdG9ycz86IEFzeW5jVmFsaWRhdG9yRm5bXTtcbiAgYXV0b1BpY2tWYWx1ZUZpZWxkPzogYm9vbGVhbjtcbiAgY2hlY2tlZD86IGJvb2xlYW47XG4gIGNsZWFyT25EaXNhYmxlPzogYm9vbGVhbjtcbiAgY2xzPzogc3RyaW5nO1xuICBjb3VudHJ5Q29kZTM/OiBzdHJpbmc7XG4gIGNoaWxkcmVuPzogSUJhc2VGb3JtU2NoZW1hPFQsIENvbXBvbmVudCwgVEZvcm1Hcm91cD5bXTtcbiAgZGVjaW1hbFBvaW50cz86IG51bWJlcjtcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBkaXNhYmxlZElmPzogKHJvdzogYW55LCBjZWxsRmllbGQ/OiBzdHJpbmcpID0+IGJvb2xlYW47XG4gIC8vIGhpZGVJZkZ1bmM/OiAocm93KSA9PiBib29sZWFuO1xuICBmaWVsZDoga2V5b2YgVEZvcm1Hcm91cDtcbiAgZm9ybT86IEZvcm1Hcm91cDxURm9ybUdyb3VwPjtcbiAgZ2V0Q291bnRyeUNvZGUzS2V5Pzogc3RyaW5nO1xuICBoaWRkZW4/OiBib29sZWFuO1xuICBoaW50Pzogc3RyaW5nO1xuICBpZD86IHN0cmluZztcbiAgaXNSZXF1aXJlZD86IGJvb2xlYW47XG4gIGlzU2VhcmNoRmllbGQ/OiBib29sZWFuO1xuICBsYWJlbD86IHN0cmluZztcbiAgbGFiZWxGaWVsZD86IHN0cmluZztcbiAgbGFiZWxUeXBlPzogT3B0aW9uTGFiZWxUeXBlO1xuICBvcHRpb25MYWJlbEZvcm1hdHRlcj86IChyb3cpID0+IHN0cmluZztcbiAgbWF4PzogbnVtYmVyO1xuICBtaW4/OiBudW1iZXI7XG4gIG1pbkxlbmd0aD86IG51bWJlcjtcbiAgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICBub0Zvcm1hdD86IGJvb2xlYW47XG4gIG9wdGlvbkZvcm1hdHRlcj86IChpdGVtOiBhbnkpID0+IHN0cmluZztcbiAgb3B0aW9ucz86IGFueVtdO1xuICBvcHRpb25zQXN5bmM/OiBPYnNlcnZhYmxlPGFueVtdPiB8IFByb21pc2U8YW55W10+O1xuICBvcHRpb25zSW5pdEZ1bmM/OiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgb3B0aW9uc0luaXRGdW5jMj86ICgpID0+IE9ic2VydmFibGU8YW55W10+O1xuICBvcHRpb25zS2V5Pzogc3RyaW5nO1xuICBwbGFjZWhvbGRlcj86IHN0cmluZztcbiAgc2VhcmNoRnVuYz86ICguLi5hcmdzKSA9PiBhbnk7XG4gIHNldEFzQ291bnRyeUNvZGUzPzogYm9vbGVhbjtcbiAgc2hvd1ZhbGlkYXRpb24/OiBib29sZWFuO1xuICBzaG93VmFsaWRhdGlvbkljb24/OiBib29sZWFuO1xuICB0ZW1wbGF0ZVZhbHVlPzogYW55O1xuICB0eXBlPzogSW5wdXRUeXBlO1xuICB2YWxpZGF0b3JzPzogVmFsaWRhdG9yRm5bXTtcbiAgdmFsdWU/OiBhbnk7XG4gIHZhbHVlRmllbGQ/OiBzdHJpbmc7XG4gIG9wdGlvbnNGdW5jPzogKC4uLnZhbDogYW55KSA9PiBPYnNlcnZhYmxlPGFueVtdPjtcbiAgdHJpZ2dlck9uQ2hhbmdlT25Jbml0PzogYm9vbGVhbjtcbiAgZm9ybWF0dGVyPzogKHJvdzogeyBbSyBpbiBrZXlvZiBURm9ybUdyb3VwXTogYW55IH0sIGZpZWxkTmFtZToga2V5b2YgVEZvcm1Hcm91cCkgPT4gc3RyaW5nO1xuICBleHRyYT86IGFueTtcbiAgb25DaGFuZ2VGdW5jPzogKHJvdzogeyBbSyBpbiBrZXlvZiBURm9ybUdyb3VwXT86IFRGb3JtR3JvdXBbS11bJ3ZhbHVlJ10gfSwgY2VsbFZhbHVlPzogYW55LCBjb21wb25lbnQ/OiBDb21wb25lbnQpID0+IE9ic2VydmFibGU8YW55W10+IHwgYW55O1xuICBvblJlbW92ZUZ1bmM/OiAocm93OiB7IFtLIGluIGtleW9mIFRGb3JtR3JvdXBdOiBURm9ybUdyb3VwW0tdWyd2YWx1ZSddIH0sIGNlbGw/OiBhbnksIGNvbXBvbmVudD86IENvbXBvbmVudCkgPT4gYW55O1xuICBzZWxlY3RlZE9wdGlvbkxhYmVsPzogc3RyaW5nO1xuICBzdGFja2VkPzogYm9vbGVhbjtcbiAgZGVidWc/OiBib29sZWFuO1xuICBzaG93VmFsaWRhdGlvbk1zZz86IGJvb2xlYW47XG4gIGRvbnRGb3JtYXRBc0lucHV0PzogYm9vbGVhbjtcbiAgc2hvd1JlcXVpcmVkVGFnPzogYm9vbGVhbjtcbiAgdGFibGVGb3JtYXR0ZXI/OiAodmFsOiBhbnkpID0+IHN0cmluZyB8IHVuZGVmaW5lZCB8IFByb21pc2U8c3RyaW5nIHwgdW5kZWZpbmVkPiB8IE9ic2VydmFibGU8c3RyaW5nIHwgdW5kZWZpbmVkPjtcbiAgaWNvbj86IEljb25UeXBlO1xufVxuIl19
|
|
@@ -185,7 +185,7 @@ export class FormGeneratorComponent extends BaseFormGenerator {
|
|
|
185
185
|
this.onSubmit.emit(this.form.getRawValue());
|
|
186
186
|
}
|
|
187
187
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FormGeneratorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
188
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: FormGeneratorComponent, isStandalone: true, selector: "form-generator", inputs: { keyField: { classPropertyName: "keyField", publicName: "keyField", isSignal: false, isRequired: false, transformFunction: null }, presetValueForSingleOption: { classPropertyName: "presetValueForSingleOption", publicName: "presetValueForSingleOption", isSignal: true, isRequired: false, transformFunction: null }, isCreate: { classPropertyName: "isCreate", publicName: "isCreate", isSignal: true, isRequired: false, transformFunction: null }, submitOnEnterKey: { classPropertyName: "submitOnEnterKey", publicName: "submitOnEnterKey", isSignal: true, isRequired: false, transformFunction: null }, submitFunc: { classPropertyName: "submitFunc", publicName: "submitFunc", isSignal: false, isRequired: false, transformFunction: null }, submitBtnText: { classPropertyName: "submitBtnText", publicName: "submitBtnText", isSignal: true, isRequired: false, transformFunction: null }, submitBtnTemplate: { classPropertyName: "submitBtnTemplate", publicName: "submitBtnTemplate", isSignal: true, isRequired: false, transformFunction: null }, submitSuccessText: { classPropertyName: "submitSuccessText", publicName: "submitSuccessText", isSignal: true, isRequired: false, transformFunction: null }, showSubmitBtn: { classPropertyName: "showSubmitBtn", publicName: "showSubmitBtn", isSignal: true, isRequired: false, transformFunction: null }, gridStyle: { classPropertyName: "gridStyle", publicName: "gridStyle", isSignal: true, isRequired: false, transformFunction: null }, gridMDStyle: { classPropertyName: "gridMDStyle", publicName: "gridMDStyle", isSignal: true, isRequired: false, transformFunction: null }, gridLGStyle: { classPropertyName: "gridLGStyle", publicName: "gridLGStyle", isSignal: true, isRequired: false, transformFunction: null }, gridXXLStyle: { classPropertyName: "gridXXLStyle", publicName: "gridXXLStyle", isSignal: true, isRequired: false, transformFunction: null }, formGridClass: { classPropertyName: "formGridClass", publicName: "formGridClass", isSignal: true, isRequired: false, transformFunction: null }, useLoader: { classPropertyName: "useLoader", publicName: "useLoader", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: false, isRequired: false, transformFunction: null }, _formSchema: { classPropertyName: "_formSchema", publicName: "formSchema", isSignal: false, isRequired: true, transformFunction: null }, _isShow: { classPropertyName: "_isShow", publicName: "isShow", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onSubmit: "onSubmit", mchange: "mchange", _submissionResponse: "submissionResponse" }, viewQueries: [{ propertyName: "formTagRef", first: true, predicate: ["formTag"], descendants: true, isSignal: true }, { propertyName: "submitBtnRef", first: true, predicate: ["submitBtn"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<loader [loading]=\"computedLoading()\">\n <form [formGroup]=\"form\" #formTag >\n <div\n class=\"row row-cols-{{ gridStyle() }} row-cols-md-{{ gridMDStyle() }} row-cols-lg-{{ gridLGStyle() }} row-cols-xxl-{{\n gridXXLStyle()\n }} align-items-center {{ formGridClass() }}\">\n @for (scheme of computedFormSchema(); track scheme.id) {\n <div class=\"col {{ scheme.cls }} \">\n @switch (true) {\n @case (scheme.type == 'tel') {\n <app-phone-number\n [form]=\"scheme.form || form\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [stacked]=\"scheme.stacked\"\n [name]=\"scheme.field\"\n [noFormat]=\"scheme.noFormat\"\n [debug]=\"scheme.debug\"\n (mchange)=\"mchangeEmitter()\"\n [showValidation]=\"scheme.showValidation\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [showValidationIcon]=\"scheme.showValidationIcon\"\n [countryCode3]=\"scheme.countryCode3\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf | functionCaller2: form.value : (scheme.field | toAny))\" />\n }\n @case (scheme.type == 'autocomplete') {\n <app-autocomplete\n [form]=\"scheme.form || form\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [stacked]=\"scheme.stacked\"\n [presetValue]=\"scheme.presetValue\"\n [labelField]=\"scheme.labelField\"\n [noFormat]=\"scheme.noFormat\"\n [labelType]=\"scheme.labelType | toAny\"\n (mchange)=\"mchangeEmitter()\"\n (mSelectedOptionLabel)=\"setOptionLabel($event, scheme)\"\n [name]=\"scheme.field\"\n [debug]=\"scheme.debug\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [optionFormatter]=\"scheme.optionFormatter\"\n [valueField]=\"scheme.valueField\"\n [optionsFunc]=\"scheme.optionsFunc\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [options]=\"scheme.options || optionsMap()[scheme.field | toAny]\"\n [hint]=\"scheme.hint\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf | functionCaller2: form.value : (scheme.field | toAny))\" />\n }\n @case (scheme.type == 'richtext') {\n <rich-text-editor-rf\n [form]=\"scheme.form || form\"\n [label]=\"scheme.label!\"\n [clearOnDisable]=\"scheme.clearOnDisable!\"\n [stacked]=\"scheme.stacked\"\n [labelField]=\"scheme.labelField!\"\n [noFormat]=\"scheme.noFormat!\"\n [labelType]=\"scheme.labelType | toAny\"\n (mchange)=\"mchangeEmitter()\"\n (mSelectedOptionLabel)=\"setOptionLabel($event, scheme)\"\n [name]=\"scheme.field\"\n [debug]=\"scheme.debug!\"\n [showRequiredTag]=\"scheme.showRequiredTag!\"\n [optionFormatter]=\"scheme.optionFormatter!\"\n [valueField]=\"scheme.valueField!\"\n [optionsFunc]=\"scheme.optionsFunc!\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [autoPickValueField]=\"scheme.autoPickValueField!\"\n [options]=\"scheme.options || optionsMap()[scheme.field | toAny]\"\n [hint]=\"scheme.hint!\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf! | functionCaller2: form.value : (scheme.field | toAny))\" />\n }\n @default {\n <app-input-basic\n [noFormat]=\"scheme.noFormat\"\n [name]=\"scheme.field\"\n [form]=\"scheme.form || form\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [type]=\"scheme.type\"\n [valueField]=\"scheme.valueField\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [presetValue]=\"scheme.presetValue\"\n [stacked]=\"scheme.stacked\"\n [labelType]=\"scheme.labelType | toAny\"\n [checkedSignal]=\"scheme.checked\"\n [showValidation]=\"!!scheme.asyncValidators\"\n [showValidationIcon]=\"!!scheme.asyncValidators\"\n [debug]=\"scheme.debug\"\n (mchange)=\"mchangeEmitter()\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [labelField]=\"scheme.labelField\"\n [optionFormatter]=\"scheme.optionFormatter\"\n (mSelectedOptionLabel)=\"setOptionLabel($event, scheme)\"\n [options]=\"scheme.options || optionsMap()[scheme.field | toAny]\"\n [decimalPoints]=\"scheme.decimalPoints\"\n [hint]=\"scheme.hint\"\n [max]=\"scheme.max\"\n [min]=\"scheme.min\"\n [placeholder]=\"scheme.placeholder\"\n [label]=\"scheme.label\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf | functionCaller2: form.value : (scheme.field | toAny))\" />\n }\n }\n </div>\n }\n </div>\n <div class=\"row row-cols-auto justify-content-end\">\n <div class=\"\">\n @if (showSubmitBtn()) {\n <app-btn [text]=\"submitBtnText()\" group=\"submit\" [form]=\"form\" (mclick)=\"submit(submitBtn)\" #submitBtn />\n }\n @if (submitBtnTemplate()) {\n <ng-container *ngTemplateOutlet=\"submitBtnTemplate()\"></ng-container>\n }\n </div>\n </div>\n </form>\n</loader>\n", styles: [""], dependencies: [{ kind: "component", type: LoaderComponent, selector: "loader", inputs: ["class", "text", "loading", "height"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PhoneNumberComponent, selector: "app-phone-number", inputs: ["showLabel", "countryCode3", "config"], outputs: ["onCountrySelect"] }, { kind: "component", type: AutocompleteComponent, selector: "app-autocomplete,autocomplete", inputs: ["showRequiredTag", "validate", "options"] }, { kind: "component", type: InputBasicComponent, selector: "app-input-basic,app-input", inputs: ["accept", "autocomplete", "input", "contextData", "decimalPoints", "files", "hide", "hint", "labelLink", "lblCl", "light", "loading", "minLength", "maxLength", "multiple", "optionsFunc", "theme", "vms", "xsmall", "setCurrentDate", "options", "mvalue"], outputs: ["mSelectOptionChange", "mSelectedOptionLabel"] }, { kind: "component", type: RichTextEditorRFComponent, selector: "rich-text-editor-rf" }, { kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "disabled", "form", "forms", "help", "iconBtn", "loading", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid"], outputs: ["mclick"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: FunctionCaller2, name: "functionCaller2" }, { kind: "pipe", type: ToAnyPipe, name: "toAny" }] }); }
|
|
188
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: FormGeneratorComponent, isStandalone: true, selector: "form-generator", inputs: { keyField: { classPropertyName: "keyField", publicName: "keyField", isSignal: false, isRequired: false, transformFunction: null }, presetValueForSingleOption: { classPropertyName: "presetValueForSingleOption", publicName: "presetValueForSingleOption", isSignal: true, isRequired: false, transformFunction: null }, isCreate: { classPropertyName: "isCreate", publicName: "isCreate", isSignal: true, isRequired: false, transformFunction: null }, submitOnEnterKey: { classPropertyName: "submitOnEnterKey", publicName: "submitOnEnterKey", isSignal: true, isRequired: false, transformFunction: null }, submitFunc: { classPropertyName: "submitFunc", publicName: "submitFunc", isSignal: false, isRequired: false, transformFunction: null }, submitBtnText: { classPropertyName: "submitBtnText", publicName: "submitBtnText", isSignal: true, isRequired: false, transformFunction: null }, submitBtnTemplate: { classPropertyName: "submitBtnTemplate", publicName: "submitBtnTemplate", isSignal: true, isRequired: false, transformFunction: null }, submitSuccessText: { classPropertyName: "submitSuccessText", publicName: "submitSuccessText", isSignal: true, isRequired: false, transformFunction: null }, showSubmitBtn: { classPropertyName: "showSubmitBtn", publicName: "showSubmitBtn", isSignal: true, isRequired: false, transformFunction: null }, gridStyle: { classPropertyName: "gridStyle", publicName: "gridStyle", isSignal: true, isRequired: false, transformFunction: null }, gridMDStyle: { classPropertyName: "gridMDStyle", publicName: "gridMDStyle", isSignal: true, isRequired: false, transformFunction: null }, gridLGStyle: { classPropertyName: "gridLGStyle", publicName: "gridLGStyle", isSignal: true, isRequired: false, transformFunction: null }, gridXXLStyle: { classPropertyName: "gridXXLStyle", publicName: "gridXXLStyle", isSignal: true, isRequired: false, transformFunction: null }, formGridClass: { classPropertyName: "formGridClass", publicName: "formGridClass", isSignal: true, isRequired: false, transformFunction: null }, useLoader: { classPropertyName: "useLoader", publicName: "useLoader", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, form: { classPropertyName: "form", publicName: "form", isSignal: false, isRequired: false, transformFunction: null }, _formSchema: { classPropertyName: "_formSchema", publicName: "formSchema", isSignal: false, isRequired: true, transformFunction: null }, _isShow: { classPropertyName: "_isShow", publicName: "isShow", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onSubmit: "onSubmit", mchange: "mchange", _submissionResponse: "submissionResponse" }, viewQueries: [{ propertyName: "formTagRef", first: true, predicate: ["formTag"], descendants: true, isSignal: true }, { propertyName: "submitBtnRef", first: true, predicate: ["submitBtn"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<loader [loading]=\"computedLoading()\">\n <form [formGroup]=\"form\" #formTag >\n <div\n class=\"row row-cols-{{ gridStyle() }} row-cols-md-{{ gridMDStyle() }} row-cols-lg-{{ gridLGStyle() }} row-cols-xxl-{{\n gridXXLStyle()\n }} align-items-center {{ formGridClass() }}\">\n @for (scheme of computedFormSchema(); track scheme.id) {\n <div class=\"col {{ scheme.cls }} \">\n @switch (true) {\n @case (scheme.type == 'tel') {\n <app-phone-number\n [form]=\"scheme.form || form\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [stacked]=\"scheme.stacked\"\n [name]=\"scheme.field\"\n [noFormat]=\"scheme.noFormat\"\n [debug]=\"scheme.debug\"\n (mchange)=\"mchangeEmitter()\"\n [showValidation]=\"scheme.showValidation\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [showValidationIcon]=\"scheme.showValidationIcon\"\n [countryCode3]=\"scheme.countryCode3\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf | functionCaller2: form.value : (scheme.field | toAny))\" />\n }\n @case (scheme.type == 'autocomplete') {\n <app-autocomplete\n [form]=\"scheme.form || form\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [stacked]=\"scheme.stacked\"\n [presetValue]=\"scheme.presetValue\"\n [labelField]=\"scheme.labelField\"\n [noFormat]=\"scheme.noFormat\"\n [labelType]=\"scheme.labelType | toAny\"\n (mchange)=\"mchangeEmitter()\"\n (mSelectedOptionLabel)=\"setOptionLabel($event, scheme)\"\n [name]=\"scheme.field\"\n [debug]=\"scheme.debug\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [optionFormatter]=\"scheme.optionFormatter\"\n [valueField]=\"scheme.valueField\"\n [optionsFunc]=\"scheme.optionsFunc\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [options]=\"scheme.options || optionsMap()[scheme.field | toAny]\"\n [hint]=\"scheme.hint\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf | functionCaller2: form.value : (scheme.field | toAny))\" />\n }\n @case (scheme.type == 'richtext') {\n <rich-text-editor-rf\n [form]=\"scheme.form || form\"\n [label]=\"scheme.label!\"\n [clearOnDisable]=\"scheme.clearOnDisable!\"\n [stacked]=\"scheme.stacked\"\n [labelField]=\"scheme.labelField!\"\n [noFormat]=\"scheme.noFormat!\"\n [labelType]=\"scheme.labelType | toAny\"\n (mchange)=\"mchangeEmitter()\"\n (mSelectedOptionLabel)=\"setOptionLabel($event, scheme)\"\n [name]=\"scheme.field\"\n [debug]=\"scheme.debug!\"\n [showRequiredTag]=\"scheme.showRequiredTag!\"\n [optionFormatter]=\"scheme.optionFormatter!\"\n [valueField]=\"scheme.valueField!\"\n [optionsFunc]=\"scheme.optionsFunc!\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [autoPickValueField]=\"scheme.autoPickValueField!\"\n [options]=\"scheme.options || optionsMap()[scheme.field | toAny]\"\n [hint]=\"scheme.hint!\"\n [maxLength]=\"scheme.maxLength\"\n [minLength]=\"scheme.minLength\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf! | functionCaller2: form.value : (scheme.field | toAny))\" />\n }\n @default {\n <app-input-basic\n [noFormat]=\"scheme.noFormat\"\n [name]=\"scheme.field\"\n [form]=\"scheme.form || form\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [type]=\"scheme.type\"\n [valueField]=\"scheme.valueField\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [presetValue]=\"scheme.presetValue\"\n [stacked]=\"scheme.stacked\"\n [labelType]=\"scheme.labelType | toAny\"\n [checkedSignal]=\"scheme.checked\"\n [showValidation]=\"!!scheme.asyncValidators\"\n [showValidationIcon]=\"!!scheme.asyncValidators\"\n [debug]=\"scheme.debug\"\n (mchange)=\"mchangeEmitter()\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [labelField]=\"scheme.labelField\"\n [optionFormatter]=\"scheme.optionFormatter\"\n (mSelectedOptionLabel)=\"setOptionLabel($event, scheme)\"\n [options]=\"scheme.options || optionsMap()[scheme.field | toAny]\"\n [decimalPoints]=\"scheme.decimalPoints\"\n [hint]=\"scheme.hint\"\n [max]=\"scheme.max\"\n [min]=\"scheme.min\"\n [maxLength]=\"scheme.maxLength\"\n [minLength]=\"scheme.minLength\"\n [placeholder]=\"scheme.placeholder\"\n [label]=\"scheme.label\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf | functionCaller2: form.value : (scheme.field | toAny))\" />\n }\n }\n </div>\n }\n </div>\n <div class=\"row row-cols-auto justify-content-end\">\n <div class=\"\">\n @if (showSubmitBtn()) {\n <app-btn [text]=\"submitBtnText()\" group=\"submit\" [form]=\"form\" (mclick)=\"submit(submitBtn)\" #submitBtn />\n }\n @if (submitBtnTemplate()) {\n <ng-container *ngTemplateOutlet=\"submitBtnTemplate()\"></ng-container>\n }\n </div>\n </div>\n </form>\n</loader>\n", styles: [""], dependencies: [{ kind: "component", type: LoaderComponent, selector: "loader", inputs: ["class", "text", "loading", "height"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PhoneNumberComponent, selector: "app-phone-number", inputs: ["showLabel", "countryCode3", "config"], outputs: ["onCountrySelect"] }, { kind: "component", type: AutocompleteComponent, selector: "app-autocomplete,autocomplete", inputs: ["showRequiredTag", "validate", "options"] }, { kind: "component", type: InputBasicComponent, selector: "app-input-basic,app-input", inputs: ["accept", "autocomplete", "input", "contextData", "decimalPoints", "files", "hide", "hint", "labelLink", "lblCl", "light", "loading", "multiple", "optionsFunc", "theme", "vms", "xsmall", "setCurrentDate", "options", "mvalue"], outputs: ["mSelectOptionChange", "mSelectedOptionLabel"] }, { kind: "component", type: RichTextEditorRFComponent, selector: "rich-text-editor-rf" }, { kind: "component", type: BtnComponent, selector: "app-btn", inputs: ["formSchema", "debug", "centerBtn", "danger", "warning", "icon", "rightIcon", "leftIcon", "type", "group", "actionType", "animate", "excludeLogging", "loggingValue", "badge", "class", "customIcon", "disabled", "form", "forms", "help", "iconBtn", "loading", "mclass", "showHelpIcon", "rightCustomIcon", "leftCustomIcon", "text", "valid", "mini", "onFormInvalid"], outputs: ["mclick"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "pipe", type: FunctionCaller2, name: "functionCaller2" }, { kind: "pipe", type: ToAnyPipe, name: "toAny" }] }); }
|
|
189
189
|
}
|
|
190
190
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: FormGeneratorComponent, decorators: [{
|
|
191
191
|
type: Component,
|
|
@@ -204,7 +204,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
204
204
|
ReactiveFormsModule,
|
|
205
205
|
FunctionCaller2,
|
|
206
206
|
ToAnyPipe,
|
|
207
|
-
], template: "<loader [loading]=\"computedLoading()\">\n <form [formGroup]=\"form\" #formTag >\n <div\n class=\"row row-cols-{{ gridStyle() }} row-cols-md-{{ gridMDStyle() }} row-cols-lg-{{ gridLGStyle() }} row-cols-xxl-{{\n gridXXLStyle()\n }} align-items-center {{ formGridClass() }}\">\n @for (scheme of computedFormSchema(); track scheme.id) {\n <div class=\"col {{ scheme.cls }} \">\n @switch (true) {\n @case (scheme.type == 'tel') {\n <app-phone-number\n [form]=\"scheme.form || form\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [stacked]=\"scheme.stacked\"\n [name]=\"scheme.field\"\n [noFormat]=\"scheme.noFormat\"\n [debug]=\"scheme.debug\"\n (mchange)=\"mchangeEmitter()\"\n [showValidation]=\"scheme.showValidation\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [showValidationIcon]=\"scheme.showValidationIcon\"\n [countryCode3]=\"scheme.countryCode3\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf | functionCaller2: form.value : (scheme.field | toAny))\" />\n }\n @case (scheme.type == 'autocomplete') {\n <app-autocomplete\n [form]=\"scheme.form || form\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [stacked]=\"scheme.stacked\"\n [presetValue]=\"scheme.presetValue\"\n [labelField]=\"scheme.labelField\"\n [noFormat]=\"scheme.noFormat\"\n [labelType]=\"scheme.labelType | toAny\"\n (mchange)=\"mchangeEmitter()\"\n (mSelectedOptionLabel)=\"setOptionLabel($event, scheme)\"\n [name]=\"scheme.field\"\n [debug]=\"scheme.debug\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [optionFormatter]=\"scheme.optionFormatter\"\n [valueField]=\"scheme.valueField\"\n [optionsFunc]=\"scheme.optionsFunc\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [options]=\"scheme.options || optionsMap()[scheme.field | toAny]\"\n [hint]=\"scheme.hint\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf | functionCaller2: form.value : (scheme.field | toAny))\" />\n }\n @case (scheme.type == 'richtext') {\n <rich-text-editor-rf\n [form]=\"scheme.form || form\"\n [label]=\"scheme.label!\"\n [clearOnDisable]=\"scheme.clearOnDisable!\"\n [stacked]=\"scheme.stacked\"\n [labelField]=\"scheme.labelField!\"\n [noFormat]=\"scheme.noFormat!\"\n [labelType]=\"scheme.labelType | toAny\"\n (mchange)=\"mchangeEmitter()\"\n (mSelectedOptionLabel)=\"setOptionLabel($event, scheme)\"\n [name]=\"scheme.field\"\n [debug]=\"scheme.debug!\"\n [showRequiredTag]=\"scheme.showRequiredTag!\"\n [optionFormatter]=\"scheme.optionFormatter!\"\n [valueField]=\"scheme.valueField!\"\n [optionsFunc]=\"scheme.optionsFunc!\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [autoPickValueField]=\"scheme.autoPickValueField!\"\n [options]=\"scheme.options || optionsMap()[scheme.field | toAny]\"\n [hint]=\"scheme.hint!\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf! | functionCaller2: form.value : (scheme.field | toAny))\" />\n }\n @default {\n <app-input-basic\n [noFormat]=\"scheme.noFormat\"\n [name]=\"scheme.field\"\n [form]=\"scheme.form || form\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [type]=\"scheme.type\"\n [valueField]=\"scheme.valueField\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [presetValue]=\"scheme.presetValue\"\n [stacked]=\"scheme.stacked\"\n [labelType]=\"scheme.labelType | toAny\"\n [checkedSignal]=\"scheme.checked\"\n [showValidation]=\"!!scheme.asyncValidators\"\n [showValidationIcon]=\"!!scheme.asyncValidators\"\n [debug]=\"scheme.debug\"\n (mchange)=\"mchangeEmitter()\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [labelField]=\"scheme.labelField\"\n [optionFormatter]=\"scheme.optionFormatter\"\n (mSelectedOptionLabel)=\"setOptionLabel($event, scheme)\"\n [options]=\"scheme.options || optionsMap()[scheme.field | toAny]\"\n [decimalPoints]=\"scheme.decimalPoints\"\n [hint]=\"scheme.hint\"\n [max]=\"scheme.max\"\n [min]=\"scheme.min\"\n [placeholder]=\"scheme.placeholder\"\n [label]=\"scheme.label\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf | functionCaller2: form.value : (scheme.field | toAny))\" />\n }\n }\n </div>\n }\n </div>\n <div class=\"row row-cols-auto justify-content-end\">\n <div class=\"\">\n @if (showSubmitBtn()) {\n <app-btn [text]=\"submitBtnText()\" group=\"submit\" [form]=\"form\" (mclick)=\"submit(submitBtn)\" #submitBtn />\n }\n @if (submitBtnTemplate()) {\n <ng-container *ngTemplateOutlet=\"submitBtnTemplate()\"></ng-container>\n }\n </div>\n </div>\n </form>\n</loader>\n" }]
|
|
207
|
+
], template: "<loader [loading]=\"computedLoading()\">\n <form [formGroup]=\"form\" #formTag >\n <div\n class=\"row row-cols-{{ gridStyle() }} row-cols-md-{{ gridMDStyle() }} row-cols-lg-{{ gridLGStyle() }} row-cols-xxl-{{\n gridXXLStyle()\n }} align-items-center {{ formGridClass() }}\">\n @for (scheme of computedFormSchema(); track scheme.id) {\n <div class=\"col {{ scheme.cls }} \">\n @switch (true) {\n @case (scheme.type == 'tel') {\n <app-phone-number\n [form]=\"scheme.form || form\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [stacked]=\"scheme.stacked\"\n [name]=\"scheme.field\"\n [noFormat]=\"scheme.noFormat\"\n [debug]=\"scheme.debug\"\n (mchange)=\"mchangeEmitter()\"\n [showValidation]=\"scheme.showValidation\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [showValidationIcon]=\"scheme.showValidationIcon\"\n [countryCode3]=\"scheme.countryCode3\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf | functionCaller2: form.value : (scheme.field | toAny))\" />\n }\n @case (scheme.type == 'autocomplete') {\n <app-autocomplete\n [form]=\"scheme.form || form\"\n [label]=\"scheme.label\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [stacked]=\"scheme.stacked\"\n [presetValue]=\"scheme.presetValue\"\n [labelField]=\"scheme.labelField\"\n [noFormat]=\"scheme.noFormat\"\n [labelType]=\"scheme.labelType | toAny\"\n (mchange)=\"mchangeEmitter()\"\n (mSelectedOptionLabel)=\"setOptionLabel($event, scheme)\"\n [name]=\"scheme.field\"\n [debug]=\"scheme.debug\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [optionFormatter]=\"scheme.optionFormatter\"\n [valueField]=\"scheme.valueField\"\n [optionsFunc]=\"scheme.optionsFunc\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [options]=\"scheme.options || optionsMap()[scheme.field | toAny]\"\n [hint]=\"scheme.hint\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf | functionCaller2: form.value : (scheme.field | toAny))\" />\n }\n @case (scheme.type == 'richtext') {\n <rich-text-editor-rf\n [form]=\"scheme.form || form\"\n [label]=\"scheme.label!\"\n [clearOnDisable]=\"scheme.clearOnDisable!\"\n [stacked]=\"scheme.stacked\"\n [labelField]=\"scheme.labelField!\"\n [noFormat]=\"scheme.noFormat!\"\n [labelType]=\"scheme.labelType | toAny\"\n (mchange)=\"mchangeEmitter()\"\n (mSelectedOptionLabel)=\"setOptionLabel($event, scheme)\"\n [name]=\"scheme.field\"\n [debug]=\"scheme.debug!\"\n [showRequiredTag]=\"scheme.showRequiredTag!\"\n [optionFormatter]=\"scheme.optionFormatter!\"\n [valueField]=\"scheme.valueField!\"\n [optionsFunc]=\"scheme.optionsFunc!\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [autoPickValueField]=\"scheme.autoPickValueField!\"\n [options]=\"scheme.options || optionsMap()[scheme.field | toAny]\"\n [hint]=\"scheme.hint!\"\n [maxLength]=\"scheme.maxLength\"\n [minLength]=\"scheme.minLength\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf! | functionCaller2: form.value : (scheme.field | toAny))\" />\n }\n @default {\n <app-input-basic\n [noFormat]=\"scheme.noFormat\"\n [name]=\"scheme.field\"\n [form]=\"scheme.form || form\"\n [clearOnDisable]=\"scheme.clearOnDisable\"\n [type]=\"scheme.type\"\n [valueField]=\"scheme.valueField\"\n [autoPickValueField]=\"scheme.autoPickValueField\"\n [presetValue]=\"scheme.presetValue\"\n [stacked]=\"scheme.stacked\"\n [labelType]=\"scheme.labelType | toAny\"\n [checkedSignal]=\"scheme.checked\"\n [showValidation]=\"!!scheme.asyncValidators\"\n [showValidationIcon]=\"!!scheme.asyncValidators\"\n [debug]=\"scheme.debug\"\n (mchange)=\"mchangeEmitter()\"\n [showRequiredTag]=\"scheme.showRequiredTag\"\n [labelField]=\"scheme.labelField\"\n [optionFormatter]=\"scheme.optionFormatter\"\n (mSelectedOptionLabel)=\"setOptionLabel($event, scheme)\"\n [options]=\"scheme.options || optionsMap()[scheme.field | toAny]\"\n [decimalPoints]=\"scheme.decimalPoints\"\n [hint]=\"scheme.hint\"\n [max]=\"scheme.max\"\n [min]=\"scheme.min\"\n [maxLength]=\"scheme.maxLength\"\n [minLength]=\"scheme.minLength\"\n [placeholder]=\"scheme.placeholder\"\n [label]=\"scheme.label\"\n [showValidationMsg]=\"scheme.showValidationMsg\"\n [disabled]=\"scheme.disabled || (scheme.disabledIf | functionCaller2: form.value : (scheme.field | toAny))\" />\n }\n }\n </div>\n }\n </div>\n <div class=\"row row-cols-auto justify-content-end\">\n <div class=\"\">\n @if (showSubmitBtn()) {\n <app-btn [text]=\"submitBtnText()\" group=\"submit\" [form]=\"form\" (mclick)=\"submit(submitBtn)\" #submitBtn />\n }\n @if (submitBtnTemplate()) {\n <ng-container *ngTemplateOutlet=\"submitBtnTemplate()\"></ng-container>\n }\n </div>\n </div>\n </form>\n</loader>\n" }]
|
|
208
208
|
}], ctorParameters: () => [], propDecorators: { keyField: [{
|
|
209
209
|
type: Input
|
|
210
210
|
}], onSubmit: [{
|
|
@@ -225,4 +225,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImpor
|
|
|
225
225
|
type: Input,
|
|
226
226
|
args: ['isShow']
|
|
227
227
|
}] } });
|
|
228
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL2Zvcm0tZ2VuZXJhdG9yL2Zvcm0tZ2VuZXJhdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9mb3JtLWdlbmVyYXRvci9mb3JtLWdlbmVyYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUdULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBOEIsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUYsT0FBTyxFQUFFLFNBQVMsRUFBVyxNQUFNLFdBQVcsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBbUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFP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QW1CO3NCQUFoRCxNQUFNO3VCQUFDLG9CQUFvQjtnQkFDbkIsVUFBVTtzQkFBbEIsS0FBSztnQkFvQkcsSUFBSTtzQkFBWixLQUFLO2dCQUU4QyxXQUFXO3NCQUE5RCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO2dCQUd6QixPQUFPO3NCQUEzQixLQUFLO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIHNpZ25hbCxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNsb25lRGVlcCwgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbGFzdCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRnVuY3Rpb25DYWxsZXIyLCBUb0FueVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy91dGlsaXR5LnBpcGUnO1xuaW1wb3J0IHsgQnRuQ29tcG9uZW50IH0gZnJvbSAnLi4vYnRuL2J0bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRCYXNpY0NvbXBvbmVudCwgT3B0aW9uTGFiZWxUeXBlIH0gZnJvbSAnLi4vaW5wdXQvaW5wdXQtYmFzaWMuY29tcG9uZW50JztcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50JztcbmltcG9ydCB7IFZhbGlkYXRpb25NZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5wdXQvdmFsaWRhdGlvbi1tZXNzYWdlL3ZhbGlkYXRpb24tbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGhvbmVOdW1iZXJDb21wb25lbnQgfSBmcm9tICcuLi9waG9uZS1udW1iZXIvcGhvbmUtbnVtYmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIE5nU3dpdGNoRGVmYXVsdCwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dFN1YlR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW5kZXgubW9kZWwnO1xuaW1wb3J0IHsgUmljaFRleHRFZGl0b3JSRkNvbXBvbmVudCB9IGZyb20gJy4uL3JpY2gtdGV4dC1lZGl0b3ItcmYvcmljaC10ZXh0LWVkaXRvci1yZi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUdlbmVyYXRvclNlcnZpY2UgfSBmcm9tICcuL2Zvcm0tZ2VuZXJhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzZUZvcm1HZW5lcmF0b3IsIElCYXNlRm9ybVNjaGVtYSB9IGZyb20gJy4vZm9ybS1nZW5lcmF0b3IuYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG4vKipcbiAqIEZvcm0gc2hvdWxkIGJlIHNldCBiZWZvcmUgdGhlIHRoZSBmb3JtU2NoZW1hXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Zvcm0tZ2VuZXJhdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZ2VuZXJhdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIExvYWRlckNvbXBvbmVudCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUGhvbmVOdW1iZXJDb21wb25lbnQsXG4gICAgVmFsaWRhdGlvbk1lc3NhZ2VDb21wb25lbnQsXG4gICAgQXV0b2NvbXBsZXRlQ29tcG9uZW50LFxuICAgIE5nU3dpdGNoRGVmYXVsdCxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIElucHV0QmFzaWNDb21wb25lbnQsXG4gICAgUmljaFRleHRFZGl0b3JSRkNvbXBvbmVudCxcbiAgICBCdG5Db21wb25lbnQsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBGdW5jdGlvbkNhbGxlcjIsXG4gICAgVG9BbnlQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtR2VuZXJhdG9yQ29tcG9uZW50PFRGb3JtR3JvdXAgZXh0ZW5kcyB7IFtLIGluIGtleW9mIFRGb3JtR3JvdXBdOiBBYnN0cmFjdENvbnRyb2w8YW55LCBhbnk+IH0+IGV4dGVuZHMgQmFzZUZvcm1HZW5lcmF0b3I8XG4gIFRGb3JtR3JvdXAsXG4gIElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+XG4+IHtcbiAgQElucHV0KCkga2V5RmllbGQ6ICdmaWVsZCcgfCAnbGFiZWwnID0gJ2ZpZWxkJztcbiAgcHJlc2V0VmFsdWVGb3JTaW5nbGVPcHRpb24gPSBpbnB1dChmYWxzZSk7XG4gIGlzQ3JlYXRlID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgc3VibWl0T25FbnRlcktleSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgZm9ybVRhZ1JlZiA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxGb3JtRWxlbWVudD4+KCdmb3JtVGFnJyk7XG5cbiAgQE91dHB1dCgpIG9uU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBtY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoJ3N1Ym1pc3Npb25SZXNwb25zZScpIF9zdWJtaXNzaW9uUmVzcG9uc2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQElucHV0KCkgc3VibWl0RnVuYzogKHZhbHVlOiBhbnkpID0+IFByb21pc2U8YW55PjtcbiAgc3VibWl0QnRuVGV4dCA9IGlucHV0KCdTdWJtaXQnKTtcbiAgc3VibWl0QnRuVGVtcGxhdGUgPSBpbnB1dDxUZW1wbGF0ZVJlZjxhbnk+PigpO1xuICBzdWJtaXRTdWNjZXNzVGV4dCA9IGlucHV0KCdTYXZlZCBzdWNjZXNzZnVsbHknKTtcbiAgc2hvd1N1Ym1pdEJ0biA9IGlucHV0KHRydWUpO1xuXG4gIGdyaWRTdHlsZSA9IGlucHV0PG51bWJlciB8ICdhdXRvJz4oKTtcbiAgZ3JpZE1EU3R5bGUgPSBpbnB1dDxudW1iZXIgfCAnYXV0byc+KCk7XG4gIGdyaWRMR1N0eWxlID0gaW5wdXQ8bnVtYmVyIHwgJ2F1dG8nPigpO1xuICBncmlkWFhMU3R5bGUgPSBpbnB1dDxudW1iZXIgfCAnYXV0byc+KCk7XG5cbiAgZm9ybUdyaWRDbGFzcyA9IGlucHV0PHN0cmluZz4oKTtcbiAgdXNlTG9hZGVyID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgbG9hZGluZyA9IGlucHV0PGJvb2xlYW4+KCk7XG5cbiAgX2xvYWRpbmcgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGNvbXB1dGVkTG9hZGluZyA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLnVzZUxvYWRlcigpID8gdGhpcy5sb2FkaW5nKCkgfHwgdGhpcy5fbG9hZGluZygpIDogZmFsc2UpKTtcblxuICBzdWJtaXRCdG5SZWYgPSB2aWV3Q2hpbGQ8QnRuQ29tcG9uZW50Pignc3VibWl0QnRuJyk7XG4gIEBJbnB1dCgpIGZvcm06IEZvcm1Hcm91cDxURm9ybUdyb3VwPjtcbiAgc3VibWlzc2lvblJlc3BvbnNlOiBhbnk7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlLCBhbGlhczogJ2Zvcm1TY2hlbWEnIH0pIHNldCBfZm9ybVNjaGVtYSh2OiBJRm9ybVNjaGVtYTxURm9ybUdyb3VwPltdKSB7XG4gICAgdGhpcy5pbml0KGNsb25lRGVlcCh2LmZpbHRlcigoeCkgPT4geCkpKTtcbiAgfVxuICBASW5wdXQoJ2lzU2hvdycpIHNldCBfaXNTaG93KHY6IGJvb2xlYW4pIHtcbiAgICBpZiAodikgdGhpcy5mb3JtPy5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICBlbHNlIHRoaXMuZm9ybT8uZW5hYmxlKCk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh2KSB0aGlzLmZvcm0/LmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgZWxzZSB0aGlzLmZvcm0/LmVuYWJsZSgpO1xuICAgIH0sIDUwMCk7XG4gIH1cbiAgb3B0aW9uc01hcCA9IHNpZ25hbDxJRm9ybU9wdGlvbnM+KHt9KTtcbiAgLy8gZm9ybVZhbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZm9ybT8uZ2V0UmF3VmFsdWUoKSk7XG5cbiAgY29tcHV0ZWRGb3JtU2NoZW1hID0gY29tcHV0ZWQ8SUZvcm1TY2hlbWE8VEZvcm1Hcm91cD5bXT4oKCkgPT4ge1xuICAgIGNvbnN0IGZvcm1TY2hlbWEgPSB0aGlzLmZvcm1TY2hlbWEoKSB8fCBbXSxcbiAgICAgIHByZXNldFZhbHVlRm9yU2luZ2xlT3B0aW9uID0gdGhpcy5wcmVzZXRWYWx1ZUZvclNpbmdsZU9wdGlvbigpLFxuICAgICAgaXNDcmVhdGUgPSB0aGlzLmlzQ3JlYXRlKCksXG4gICAgICByZXQ6IElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+W10gPSBbXTtcbiAgICBmb3JtU2NoZW1hLmZvckVhY2goKHNjaGVtZSkgPT4ge1xuICAgICAgaWYgKCFzY2hlbWUuaGlkZGVuKSB7XG4gICAgICAgIGlmIChpc0NyZWF0ZSkgc2NoZW1lLnByZXNldFZhbHVlID0gc2NoZW1lLnByZXNldFZhbHVlID09IG51bGwgPyBwcmVzZXRWYWx1ZUZvclNpbmdsZU9wdGlvbiA6IHNjaGVtZS5wcmVzZXRWYWx1ZTtcbiAgICAgICAgcmV0LnB1c2goc2NoZW1lKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAocmV0LnNvbWUoKHgpID0+ICF4LmZpZWxkKSkgZGVidWdnZXI7XG4gICAgcmV0dXJuIHJldDtcbiAgfSk7XG4gIC8vIG1pc2NJbmRleDogVE1pc2NJbmRleDtcbiAgcHVibGljIGZvcm1TZXJ2aWNlID0gaW5qZWN0KEZvcm1HZW5lcmF0b3JTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgbGV0IGxpc3RlblRvS2V5OiBTdWJzY3JpcHRpb247XG4gICAgdGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICBsaXN0ZW5Ub0tleT8udW5zdWJzY3JpYmUoKTtcbiAgICB9KTtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgZnRyID0gdGhpcy5mb3JtVGFnUmVmKCksXG4gICAgICAgIHN1Ym1pdE9uRW50ZXJLZXkgPSB0aGlzLnN1Ym1pdE9uRW50ZXJLZXkoKTtcbiAgICAgIC8vIGRlYnVnZ2VyO1xuXG4gICAgICBsaXN0ZW5Ub0tleT8udW5zdWJzY3JpYmUoKTtcbiAgICAgIGlmIChmdHI/Lm5hdGl2ZUVsZW1lbnQgJiYgc3VibWl0T25FbnRlcktleSlcbiAgICAgICAgbGlzdGVuVG9LZXkgPSBmcm9tRXZlbnQoZnRyLm5hdGl2ZUVsZW1lbnQsICdrZXlkb3duJylcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSgxMDApLFxuICAgICAgICAgICAgZmlsdGVyKChyOiBLZXlib2FyZEV2ZW50KSA9PiAoci5jb2RlID09PSAnRW50ZXInIHx8IHIua2V5Q29kZSA9PT0gMTMpICYmIHRoaXMuZm9ybS52YWxpZCksXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKHI6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3VibWl0KHRoaXMuc3VibWl0QnRuUmVmKCkpO1xuICAgICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgaW5pdChzY2hlbWE6IElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+W10pIHtcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICB0aGlzLm9uRGVzdHJveSgpO1xuICAgIHRoaXMuX3NldEZvcm1TY2hlbWFzKHNjaGVtYSB8fCBbXSk7XG4gICAgaWYgKHNjaGVtYSkgZm9yIChjb25zdCBzY2hlbWUgb2Ygc2NoZW1hKSB0aGlzLmhhbmRsZUZvcm1TY2hlbWUoc2NoZW1lKTtcbiAgICBpZiAoc2NoZW1hKVxuICAgICAgZm9yIChjb25zdCBzY2hlbWUgb2Ygc2NoZW1hKVxuICAgICAgICBpZiAoc2NoZW1lLnRyaWdnZXJPbkNoYW5nZU9uSW5pdCkgc2NoZW1lLm9uQ2hhbmdlRnVuYyh0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSwgdGhpcy5mb3JtLmdldFJhd1ZhbHVlKClbc2NoZW1lLmZpZWxkPy50b1N0cmluZygpXSwgdGhpcyk7XG4gIH1cblxuICBoYW5kbGVGb3JtU2NoZW1lKHNjaGVtZTogSUZvcm1TY2hlbWE8VEZvcm1Hcm91cD4pIHtcbiAgICBzY2hlbWUuaWQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdlbmVyYXRlVVVJRCgpO1xuICAgIGlmIChzY2hlbWUuc3RhY2tlZCA9PSBudWxsKSBzY2hlbWUuc3RhY2tlZCA9IHRydWU7XG4gICAgaWYgKHNjaGVtZS5zaG93VmFsaWRhdGlvbk1zZyA9PSBudWxsKSBzY2hlbWUuc2hvd1ZhbGlkYXRpb25Nc2cgPSB0cnVlO1xuICAgIGlmICh0aGlzLmZvcm1TZXJ2aWNlLmNvbmZpZy5zaG93VmFsaWRhdGlvbk1lc3NhZ2VzQnlEZWZhdWx0KVxuICAgICAgaWYgKHNjaGVtZS5hdXRvUGlja1ZhbHVlRmllbGQgPT0gbnVsbCAmJiAoIXNjaGVtZS52YWx1ZUZpZWxkIHx8ICFzY2hlbWUubGFiZWxGaWVsZCkpIHNjaGVtZS5hdXRvUGlja1ZhbHVlRmllbGQgPSB0cnVlO1xuICAgIC8vIGlmICghdGhpcy5mb3JtLmNvbnRyb2xzW3NjaGVtZS5maWVsZCBhcyBhbnldKSBkZWJ1Z2dlcjtcbiAgICB0aGlzLnVwZGF0ZUZvcm1TY2hlbWEoc2NoZW1lLmZpZWxkLCBzY2hlbWUpO1xuXG4gICAgaWYgKHNjaGVtZS5vcHRpb25zSW5pdEZ1bmMpIHRoaXMuaGFuZGxlT3B0aW9uc0ZldGNoZWQoc2NoZW1lLCBzY2hlbWUub3B0aW9uc0luaXRGdW5jKTtcbiAgICBpZiAoc2NoZW1lLm9wdGlvbnNJbml0RnVuYzIpIHRoaXMuaGFuZGxlT3B0aW9uc0ZldGNoZWQoc2NoZW1lLCBzY2hlbWUub3B0aW9uc0luaXRGdW5jMigpKTtcbiAgICBpZiAoc2NoZW1lLm9uQ2hhbmdlRnVuYykge1xuICAgICAgaWYgKHNjaGVtZS5kZWJ1ZykgZGVidWdnZXI7XG4gICAgICB0aGlzLnN1YnNbc2NoZW1lLmZpZWxkPy50b1N0cmluZygpXSA9IHRoaXMuZm9ybT8uY29udHJvbHNbc2NoZW1lLmZpZWxkPy50b1N0cmluZygpXT8udmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDApKS5zdWJzY3JpYmUoKHIpID0+IHtcbiAgICAgICAgc2NoZW1lLm9uQ2hhbmdlRnVuYyh0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSwgciwgdGhpcyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlT3B0aW9uc0ZldGNoZWQoc2NoZW1lOiBJRm9ybVNjaGVtYTxURm9ybUdyb3VwPiwgb3B0aW9ucyQ6IE9ic2VydmFibGU8YW55W10+KSB7XG4gICAgb3B0aW9ucyQuc3Vic2NyaWJlKChyKSA9PiB7XG4gICAgICAvLyBzY2hlbWUub3B0aW9ucyA9IHI7XG4gICAgICB0aGlzLnVwZGF0ZUZvcm1TY2hlbWEoc2NoZW1lLmZpZWxkLCB7IG9wdGlvbnM6IHIgfSk7XG4gICAgfSk7XG4gIH1cblxuICBkZXRhY2hGb3JtU2NoZW1lKGZpZWxkTmFtZT86IGtleW9mIFRGb3JtR3JvdXApIHtcbiAgICB0aGlzLnN1YnNbZmllbGROYW1lIGFzIHN0cmluZ10/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWNoYW5nZUVtaXR0ZXIoKSB7XG4gICAgdGhpcy5tY2hhbmdlLmVtaXQodGhpcy5mb3JtLmdldFJhd1ZhbHVlKCkpO1xuICB9XG5cbiAgZ2V0Rm9ybVNjaGVtZSA9IChmaWVsZE5hbWU6IGtleW9mIFRGb3JtR3JvdXApID0+IHtcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICByZXR1cm4gdGhpcy5mb3JtU2NoZW1hTWFwKClbZmllbGROYW1lIGFzIHN0cmluZ107XG4gIH07XG5cbiAgYWRkVG9Gb3JtU2NoZW1hKGZvcm1TY2hlbWU6IElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+KSB7XG4gICAgdGhpcy5yZW1vdmVGcm9tRm9ybVNjaGVtYShmb3JtU2NoZW1lLmZpZWxkKTtcbiAgICB0aGlzLmhhbmRsZUZvcm1TY2hlbWUoZm9ybVNjaGVtZSk7XG4gIH1cblxuICB1cGRhdGVGb3JtU2NoZW1hKGZpZWxkTmFtZToga2V5b2YgVEZvcm1Hcm91cCwgc2NoZW1lOiBQYXJ0aWFsPElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+Pikge1xuICAgIHJldHVybiBzdXBlci5fdXBkYXRlRm9ybVNjaGVtYShmaWVsZE5hbWUgYXMgc3RyaW5nLCBzY2hlbWUpO1xuICB9XG4gIHVwZGF0ZUFsbEZvcm1TY2hlbWEobWFwOiAoZm9ybUZpZWxkOiBJRm9ybVNjaGVtYTxURm9ybUdyb3VwPikgPT4gSUZvcm1TY2hlbWE8VEZvcm1Hcm91cD4pIHtcbiAgICByZXR1cm4gc3VwZXIuX3VwZGF0ZUFsbEZvcm1TY2hlbWEobWFwKTtcbiAgfVxuXG4gIHJlbW92ZUZyb21Gb3JtU2NoZW1hKGZpZWxkTmFtZToga2V5b2YgVEZvcm1Hcm91cCkge1xuICAgIHRoaXMuZGV0YWNoRm9ybVNjaGVtZShmaWVsZE5hbWUpO1xuICAgIGNvbnN0IG9uUmVtb3ZlID0gdGhpcy5mb3JtU2NoZW1hTWFwKClbZmllbGROYW1lIGFzIHN0cmluZ10/Lm9uUmVtb3ZlRnVuYztcbiAgICBpZiAob25SZW1vdmUpIG9uUmVtb3ZlKHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpIGFzIGFueSwgdGhpcy5mb3JtLmNvbnRyb2xzW2ZpZWxkTmFtZSBhcyBhbnldLCB0aGlzKTtcbiAgICB0aGlzLl9yZW1vdmVGb3JtU2NoZW1hKGZpZWxkTmFtZSBhcyBzdHJpbmcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldE9wdGlvbkxhYmVsKCRldmVudDogYW55LCBzY2hlbWU6IElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+KSB7XG4gICAgc2NoZW1lLnNlbGVjdGVkT3B0aW9uTGFiZWwgPSAkZXZlbnQ7XG4gIH1cblxuICBhc3luYyBzdWJtaXQoYnRuPzogQnRuQ29tcG9uZW50KSB7XG4gICAgaWYgKHRoaXMuc3VibWl0RnVuYykge1xuICAgICAgYnRuPy5zZXRMb2FkZXIodHJ1ZSk7XG4gICAgICB0aGlzLl9sb2FkaW5nLnNldCh0cnVlKTtcbiAgICAgIGNvbnN0IGZvcm1WYWwgPSB0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKTtcbiAgICAgIHRoaXMub25TdWJtaXQuZW1pdChmb3JtVmFsKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuc3VibWlzc2lvblJlc3BvbnNlID0gYXdhaXQgdGhpcy5zdWJtaXRGdW5jKGZvcm1WYWwpO1xuICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLmluZm8odGhpcy5zdWJtaXRTdWNjZXNzVGV4dCgpLCAxKTtcbiAgICAgICAgdGhpcy5fc3VibWlzc2lvblJlc3BvbnNlLmVtaXQodGhpcy5zdWJtaXNzaW9uUmVzcG9uc2UpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5pbmZvKGVycm9yLCAwKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgIGJ0bj8uc2V0TG9hZGVyKGZhbHNlKTtcbiAgICB9IGVsc2UgdGhpcy5vblN1Ym1pdC5lbWl0KHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtU2NoZW1hPFxuICBURm9ybUdyb3VwIGV4dGVuZHMge1xuICAgIFtLIGluIGtleW9mIFRGb3JtR3JvdXBdOiBBYnN0cmFjdENvbnRyb2w8YW55LCBhbnk+O1xuICB9ID0gYW55LFxuPiBleHRlbmRzIElCYXNlRm9ybVNjaGVtYTxURm9ybUdyb3VwLCBGb3JtR2VuZXJhdG9yQ29tcG9uZW50PFRGb3JtR3JvdXA+PiB7XG4gIGNoaWxkcmVuPzogSUZvcm1TY2hlbWE8VEZvcm1Hcm91cD5bXTtcbiAgbGFiZWxUeXBlPzogT3B0aW9uTGFiZWxUeXBlO1xuICBmaWVsZDoga2V5b2YgVEZvcm1Hcm91cDtcbiAgc3ViVHlwZT86IElucHV0U3ViVHlwZTtcbiAgcHJlc2V0VmFsdWU/OiBib29sZWFuO1xufVxuZXhwb3J0IGludGVyZmFjZSBJRm9ybVNjaGVtYTI8VFN0cnVjdCA9IGFueT5cbiAgZXh0ZW5kcyBJRm9ybVNjaGVtYTx7XG4gICAgW0sgaW4ga2V5b2YgVFN0cnVjdF0/OiBBYnN0cmFjdENvbnRyb2w8YW55LCBhbnk+O1xuICB9PiB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtT3B0aW9ucyB7XG4gIFtmaWVsZDogc3RyaW5nXTogYW55O1xufVxuIiwiPGxvYWRlciBbbG9hZGluZ109XCJjb21wdXRlZExvYWRpbmcoKVwiPlxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiAjZm9ybVRhZyA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJyb3cgcm93LWNvbHMte3sgZ3JpZFN0eWxlKCkgfX0gcm93LWNvbHMtbWQte3sgZ3JpZE1EU3R5bGUoKSB9fSByb3ctY29scy1sZy17eyBncmlkTEdTdHlsZSgpIH19IHJvdy1jb2xzLXh4bC17e1xuICAgICAgICBncmlkWFhMU3R5bGUoKVxuICAgICAgfX0gYWxpZ24taXRlbXMtY2VudGVyIHt7IGZvcm1HcmlkQ2xhc3MoKSB9fVwiPlxuICAgICAgQGZvciAoc2NoZW1lIG9mIGNvbXB1dGVkRm9ybVNjaGVtYSgpOyB0cmFjayBzY2hlbWUuaWQpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbCB7eyBzY2hlbWUuY2xzIH19IFwiPlxuICAgICAgICAgIEBzd2l0Y2ggKHRydWUpIHtcbiAgICAgICAgICAgIEBjYXNlIChzY2hlbWUudHlwZSA9PSAndGVsJykge1xuICAgICAgICAgICAgICA8YXBwLXBob25lLW51bWJlclxuICAgICAgICAgICAgICAgIFtmb3JtXT1cInNjaGVtZS5mb3JtIHx8IGZvcm1cIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJzY2hlbWUubGFiZWxcIlxuICAgICAgICAgICAgICAgIFtjbGVhck9uRGlzYWJsZV09XCJzY2hlbWUuY2xlYXJPbkRpc2FibGVcIlxuICAgICAgICAgICAgICAgIFtzdGFja2VkXT1cInNjaGVtZS5zdGFja2VkXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJzY2hlbWUuZmllbGRcIlxuICAgICAgICAgICAgICAgIFtub0Zvcm1hdF09XCJzY2hlbWUubm9Gb3JtYXRcIlxuICAgICAgICAgICAgICAgIFtkZWJ1Z109XCJzY2hlbWUuZGVidWdcIlxuICAgICAgICAgICAgICAgIChtY2hhbmdlKT1cIm1jaGFuZ2VFbWl0dGVyKClcIlxuICAgICAgICAgICAgICAgIFtzaG93VmFsaWRhdGlvbl09XCJzY2hlbWUuc2hvd1ZhbGlkYXRpb25cIlxuICAgICAgICAgICAgICAgIFthdXRvUGlja1ZhbHVlRmllbGRdPVwic2NoZW1lLmF1dG9QaWNrVmFsdWVGaWVsZFwiXG4gICAgICAgICAgICAgICAgW3Nob3dSZXF1aXJlZFRhZ109XCJzY2hlbWUuc2hvd1JlcXVpcmVkVGFnXCJcbiAgICAgICAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25Nc2ddPVwic2NoZW1lLnNob3dWYWxpZGF0aW9uTXNnXCJcbiAgICAgICAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25JY29uXT1cInNjaGVtZS5zaG93VmFsaWRhdGlvbkljb25cIlxuICAgICAgICAgICAgICAgIFtjb3VudHJ5Q29kZTNdPVwic2NoZW1lLmNvdW50cnlDb2RlM1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNjaGVtZS5kaXNhYmxlZCB8fCAoc2NoZW1lLmRpc2FibGVkSWYgfCBmdW5jdGlvbkNhbGxlcjI6IGZvcm0udmFsdWUgOiAoc2NoZW1lLmZpZWxkIHwgdG9BbnkpKVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoc2NoZW1lLnR5cGUgPT0gJ2F1dG9jb21wbGV0ZScpIHtcbiAgICAgICAgICAgICAgPGFwcC1hdXRvY29tcGxldGVcbiAgICAgICAgICAgICAgICBbZm9ybV09XCJzY2hlbWUuZm9ybSB8fCBmb3JtXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwic2NoZW1lLmxhYmVsXCJcbiAgICAgICAgICAgICAgICBbY2xlYXJPbkRpc2FibGVdPVwic2NoZW1lLmNsZWFyT25EaXNhYmxlXCJcbiAgICAgICAgICAgICAgICBbc3RhY2tlZF09XCJzY2hlbWUuc3RhY2tlZFwiXG4gICAgICAgICAgICAgICAgW3ByZXNldFZhbHVlXT1cInNjaGVtZS5wcmVzZXRWYWx1ZVwiXG4gICAgICAgICAgICAgICAgW2xhYmVsRmllbGRdPVwic2NoZW1lLmxhYmVsRmllbGRcIlxuICAgICAgICAgICAgICAgIFtub0Zvcm1hdF09XCJzY2hlbWUubm9Gb3JtYXRcIlxuICAgICAgICAgICAgICAgIFtsYWJlbFR5cGVdPVwic2NoZW1lLmxhYmVsVHlwZSB8IHRvQW55XCJcbiAgICAgICAgICAgICAgICAobWNoYW5nZSk9XCJtY2hhbmdlRW1pdHRlcigpXCJcbiAgICAgICAgICAgICAgICAobVNlbGVjdGVkT3B0aW9uTGFiZWwpPVwic2V0T3B0aW9uTGFiZWwoJGV2ZW50LCBzY2hlbWUpXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJzY2hlbWUuZmllbGRcIlxuICAgICAgICAgICAgICAgIFtkZWJ1Z109XCJzY2hlbWUuZGVidWdcIlxuICAgICAgICAgICAgICAgIFtzaG93UmVxdWlyZWRUYWddPVwic2NoZW1lLnNob3dSZXF1aXJlZFRhZ1wiXG4gICAgICAgICAgICAgICAgW29wdGlvbkZvcm1hdHRlcl09XCJzY2hlbWUub3B0aW9uRm9ybWF0dGVyXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVGaWVsZF09XCJzY2hlbWUudmFsdWVGaWVsZFwiXG4gICAgICAgICAgICAgICAgW29wdGlvbnNGdW5jXT1cInNjaGVtZS5vcHRpb25zRnVuY1wiXG4gICAgICAgICAgICAgICAgW3Nob3dWYWxpZGF0aW9uTXNnXT1cInNjaGVtZS5zaG93VmFsaWRhdGlvbk1zZ1wiXG4gICAgICAgICAgICAgICAgW2F1dG9QaWNrVmFsdWVGaWVsZF09XCJzY2hlbWUuYXV0b1BpY2tWYWx1ZUZpZWxkXCJcbiAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJzY2hlbWUub3B0aW9ucyB8fCBvcHRpb25zTWFwKClbc2NoZW1lLmZpZWxkIHwgdG9BbnldXCJcbiAgICAgICAgICAgICAgICBbaGludF09XCJzY2hlbWUuaGludFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNjaGVtZS5kaXNhYmxlZCB8fCAoc2NoZW1lLmRpc2FibGVkSWYgfCBmdW5jdGlvbkNhbGxlcjI6IGZvcm0udmFsdWUgOiAoc2NoZW1lLmZpZWxkIHwgdG9BbnkpKVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoc2NoZW1lLnR5cGUgPT0gJ3JpY2h0ZXh0Jykge1xuICAgICAgICAgICAgICA8cmljaC10ZXh0LWVkaXRvci1yZlxuICAgICAgICAgICAgICAgIFtmb3JtXT1cInNjaGVtZS5mb3JtIHx8IGZvcm1cIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJzY2hlbWUubGFiZWwhXCJcbiAgICAgICAgICAgICAgICBbY2xlYXJPbkRpc2FibGVdPVwic2NoZW1lLmNsZWFyT25EaXNhYmxlIVwiXG4gICAgICAgICAgICAgICAgW3N0YWNrZWRdPVwic2NoZW1lLnN0YWNrZWRcIlxuICAgICAgICAgICAgICAgIFtsYWJlbEZpZWxkXT1cInNjaGVtZS5sYWJlbEZpZWxkIVwiXG4gICAgICAgICAgICAgICAgW25vRm9ybWF0XT1cInNjaGVtZS5ub0Zvcm1hdCFcIlxuICAgICAgICAgICAgICAgIFtsYWJlbFR5cGVdPVwic2NoZW1lLmxhYmVsVHlwZSB8IHRvQW55XCJcbiAgICAgICAgICAgICAgICAobWNoYW5nZSk9XCJtY2hhbmdlRW1pdHRlcigpXCJcbiAgICAgICAgICAgICAgICAobVNlbGVjdGVkT3B0aW9uTGFiZWwpPVwic2V0T3B0aW9uTGFiZWwoJGV2ZW50LCBzY2hlbWUpXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJzY2hlbWUuZmllbGRcIlxuICAgICAgICAgICAgICAgIFtkZWJ1Z109XCJzY2hlbWUuZGVidWchXCJcbiAgICAgICAgICAgICAgICBbc2hvd1JlcXVpcmVkVGFnXT1cInNjaGVtZS5zaG93UmVxdWlyZWRUYWchXCJcbiAgICAgICAgICAgICAgICBbb3B0aW9uRm9ybWF0dGVyXT1cInNjaGVtZS5vcHRpb25Gb3JtYXR0ZXIhXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVGaWVsZF09XCJzY2hlbWUudmFsdWVGaWVsZCFcIlxuICAgICAgICAgICAgICAgIFtvcHRpb25zRnVuY109XCJzY2hlbWUub3B0aW9uc0Z1bmMhXCJcbiAgICAgICAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25Nc2ddPVwic2NoZW1lLnNob3dWYWxpZGF0aW9uTXNnXCJcbiAgICAgICAgICAgICAgICBbYXV0b1BpY2tWYWx1ZUZpZWxkXT1cInNjaGVtZS5hdXRvUGlja1ZhbHVlRmllbGQhXCJcbiAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJzY2hlbWUub3B0aW9ucyB8fCBvcHRpb25zTWFwKClbc2NoZW1lLmZpZWxkIHwgdG9BbnldXCJcbiAgICAgICAgICAgICAgICBbaGludF09XCJzY2hlbWUuaGludCFcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzY2hlbWUuZGlzYWJsZWQgfHwgKHNjaGVtZS5kaXNhYmxlZElmISB8IGZ1bmN0aW9uQ2FsbGVyMjogZm9ybS52YWx1ZSA6IChzY2hlbWUuZmllbGQgfCB0b0FueSkpXCIgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIEBkZWZhdWx0IHtcbiAgICAgICAgICAgICAgPGFwcC1pbnB1dC1iYXNpY1xuICAgICAgICAgICAgICAgIFtub0Zvcm1hdF09XCJzY2hlbWUubm9Gb3JtYXRcIlxuICAgICAgICAgICAgICAgIFtuYW1lXT1cInNjaGVtZS5maWVsZFwiXG4gICAgICAgICAgICAgICAgW2Zvcm1dPVwic2NoZW1lLmZvcm0gfHwgZm9ybVwiXG4gICAgICAgICAgICAgICAgW2NsZWFyT25EaXNhYmxlXT1cInNjaGVtZS5jbGVhck9uRGlzYWJsZVwiXG4gICAgICAgICAgICAgICAgW3R5cGVdPVwic2NoZW1lLnR5cGVcIlxuICAgICAgICAgICAgICAgIFt2YWx1ZUZpZWxkXT1cInNjaGVtZS52YWx1ZUZpZWxkXCJcbiAgICAgICAgICAgICAgICBbYXV0b1BpY2tWYWx1ZUZpZWxkXT1cInNjaGVtZS5hdXRvUGlja1ZhbHVlRmllbGRcIlxuICAgICAgICAgICAgICAgIFtwcmVzZXRWYWx1ZV09XCJzY2hlbWUucHJlc2V0VmFsdWVcIlxuICAgICAgICAgICAgICAgIFtzdGFja2VkXT1cInNjaGVtZS5zdGFja2VkXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxUeXBlXT1cInNjaGVtZS5sYWJlbFR5cGUgfCB0b0FueVwiXG4gICAgICAgICAgICAgICAgW2NoZWNrZWRTaWduYWxdPVwic2NoZW1lLmNoZWNrZWRcIlxuICAgICAgICAgICAgICAgIFtzaG93VmFsaWRhdGlvbl09XCIhIXNjaGVtZS5hc3luY1ZhbGlkYXRvcnNcIlxuICAgICAgICAgICAgICAgIFtzaG93VmFsaWRhdGlvbkljb25dPVwiISFzY2hlbWUuYXN5bmNWYWxpZGF0b3JzXCJcbiAgICAgICAgICAgICAgICBbZGVidWddPVwic2NoZW1lLmRlYnVnXCJcbiAgICAgICAgICAgICAgICAobWNoYW5nZSk9XCJtY2hhbmdlRW1pdHRlcigpXCJcbiAgICAgICAgICAgICAgICBbc2hvd1JlcXVpcmVkVGFnXT1cInNjaGVtZS5zaG93UmVxdWlyZWRUYWdcIlxuICAgICAgICAgICAgICAgIFtsYWJlbEZpZWxkXT1cInNjaGVtZS5sYWJlbEZpZWxkXCJcbiAgICAgICAgICAgICAgICBbb3B0aW9uRm9ybWF0dGVyXT1cInNjaGVtZS5vcHRpb25Gb3JtYXR0ZXJcIlxuICAgICAgICAgICAgICAgIChtU2VsZWN0ZWRPcHRpb25MYWJlbCk9XCJzZXRPcHRpb25MYWJlbCgkZXZlbnQsIHNjaGVtZSlcIlxuICAgICAgICAgICAgICAgIFtvcHRpb25zXT1cInNjaGVtZS5vcHRpb25zIHx8IG9wdGlvbnNNYXAoKVtzY2hlbWUuZmllbGQgfCB0b0FueV1cIlxuICAgICAgICAgICAgICAgIFtkZWNpbWFsUG9pbnRzXT1cInNjaGVtZS5kZWNpbWFsUG9pbnRzXCJcbiAgICAgICAgICAgICAgICBbaGludF09XCJzY2hlbWUuaGludFwiXG4gICAgICAgICAgICAgICAgW21heF09XCJzY2hlbWUubWF4XCJcbiAgICAgICAgICAgICAgICBbbWluXT1cInNjaGVtZS5taW5cIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJzY2hlbWUucGxhY2Vob2xkZXJcIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJzY2hlbWUubGFiZWxcIlxuICAgICAgICAgICAgICAgIFtzaG93VmFsaWRhdGlvbk1zZ109XCJzY2hlbWUuc2hvd1ZhbGlkYXRpb25Nc2dcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzY2hlbWUuZGlzYWJsZWQgfHwgKHNjaGVtZS5kaXNhYmxlZElmIHwgZnVuY3Rpb25DYWxsZXIyOiBmb3JtLnZhbHVlIDogKHNjaGVtZS5maWVsZCB8IHRvQW55KSlcIiAvPlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cInJvdyByb3ctY29scy1hdXRvIGp1c3RpZnktY29udGVudC1lbmRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJcIj5cbiAgICAgICAgQGlmIChzaG93U3VibWl0QnRuKCkpIHtcbiAgICAgICAgICA8YXBwLWJ0biBbdGV4dF09XCJzdWJtaXRCdG5UZXh0KClcIiAgZ3JvdXA9XCJzdWJtaXRcIiBbZm9ybV09XCJmb3JtXCIgKG1jbGljayk9XCJzdWJtaXQoc3VibWl0QnRuKVwiICNzdWJtaXRCdG4gLz5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKHN1Ym1pdEJ0blRlbXBsYXRlKCkpIHtcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3VibWl0QnRuVGVtcGxhdGUoKVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9mb3JtPlxuPC9sb2FkZXI+XG4iXX0=
|
|
228
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXRzLWZlLW5nLXNkay9zcmMvbGliL1NoYXJlZC9jb21wb25lbnRzL2Zvcm0tZ2VuZXJhdG9yL2Zvcm0tZ2VuZXJhdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V0cy1mZS1uZy1zZGsvc3JjL2xpYi9TaGFyZWQvY29tcG9uZW50cy9mb3JtLWdlbmVyYXRvci9mb3JtLWdlbmVyYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUdULFlBQVksRUFDWixLQUFLLEVBQ0wsTUFBTSxFQUVOLFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBOEIsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUYsT0FBTyxFQUFFLFNBQVMsRUFBVyxNQUFNLFdBQVcsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsU0FBUyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxtQkFBbUIsRUFBbUIsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMvRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUN0RyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUU3RCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUNqRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsaUJBQWlCLEVBQW1CLE1BQU0saUNBQWlDLENBQUM7QUFDckYsT0FBTyxFQUE0QixTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFHM0Q7O0dBRUc7QUF1QkgsTUFBTSxPQUFPLHNCQUFrRyxTQUFRLGlCQUd0SDtJQWdDQyxJQUFvRCxXQUFXLENBQUMsQ0FBNEI7UUFDMUYsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFDRCxJQUFxQixPQUFPLENBQUMsQ0FBVTtRQUNyQyxJQUFJLENBQUM7WUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDOztZQUMzQyxJQUFJLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBRXpCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUM7Z0JBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQzs7Z0JBQzNDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQztJQXFCRDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBaEVELGFBQVEsR0FBc0IsT0FBTyxDQUFDO1FBQy9DLCtCQUEwQixHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQyxhQUFRLEdBQUcsS0FBSyxFQUFXLENBQUM7UUFDNUIscUJBQWdCLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3pDLGVBQVUsR0FBRyxTQUFTLENBQThCLFNBQVMsQ0FBQyxDQUFDO1FBRXJELGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ25DLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO1FBQ2Qsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUU1RSxrQkFBYSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoQyxzQkFBaUIsR0FBRyxLQUFLLEVBQW9CLENBQUM7UUFDOUMsc0JBQWlCLEdBQUcsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDaEQsa0JBQWEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFNUIsY0FBUyxHQUFHLEtBQUssRUFBbUIsQ0FBQztRQUNyQyxnQkFBVyxHQUFHLEtBQUssRUFBbUIsQ0FBQztRQUN2QyxnQkFBVyxHQUFHLEtBQUssRUFBbUIsQ0FBQztRQUN2QyxpQkFBWSxHQUFHLEtBQUssRUFBbUIsQ0FBQztRQUV4QyxrQkFBYSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ2hDLGNBQVMsR0FBRyxLQUFLLEVBQVcsQ0FBQztRQUM3QixZQUFPLEdBQUcsS0FBSyxFQUFXLENBQUM7UUFFM0IsYUFBUSxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUVsQyxvQkFBZSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUVqRyxpQkFBWSxHQUFHLFNBQVMsQ0FBZSxXQUFXLENBQUMsQ0FBQztRQWVwRCxlQUFVLEdBQUcsTUFBTSxDQUFlLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLHNEQUFzRDtRQUV0RCx1QkFBa0IsR0FBRyxRQUFRLENBQTRCLEdBQUcsRUFBRTtZQUM1RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksRUFBRSxFQUN4QywwQkFBMEIsR0FBRyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsRUFDOUQsUUFBUSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFDMUIsR0FBRyxHQUE4QixFQUFFLENBQUM7WUFDdEMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO2dCQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtvQkFDbEIsSUFBSSxRQUFRO3dCQUFFLE1BQU0sQ0FBQyxXQUFXLEdBQUcsTUFBTSxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLDBCQUEwQixDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDO29CQUNoSCxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO2lCQUNsQjtZQUNILENBQUMsQ0FBQyxDQUFDO1lBQ0gsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQUUsUUFBUSxDQUFDO1lBQ3hDLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxDQUFDLENBQUM7UUFDSCx5QkFBeUI7UUFDbEIsZ0JBQVcsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQXVFbEQsa0JBQWEsR0FBRyxDQUFDLFNBQTJCLEVBQUUsRUFBRTtZQUM5QyxZQUFZO1lBQ1osT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsU0FBbUIsQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQztRQXJFQSxJQUFJLFdBQXlCLENBQUM7UUFDOUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzdCLFdBQVcsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDVixNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQzNCLGdCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzdDLFlBQVk7WUFFWixXQUFXLEVBQUUsV0FBVyxFQUFFLENBQUM7WUFDM0IsSUFBSSxHQUFHLEVBQUUsYUFBYSxJQUFJLGdCQUFnQjtnQkFDeEMsV0FBVyxHQUFHLFNBQVMsQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLFNBQVMsQ0FBQztxQkFDbEQsSUFBSSxDQUNILFlBQVksQ0FBQyxHQUFHLENBQUMsRUFDakIsTUFBTSxDQUFDLENBQUMsQ0FBZ0IsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLE9BQU8sSUFBSSxDQUFDLENBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQzFGO3FCQUNBLFNBQVMsQ0FBQyxDQUFDLENBQWdCLEVBQUUsRUFBRTtvQkFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztnQkFDbkMsQ0FBQyxDQUFDLENBQUM7UUFDVCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxJQUFJLENBQUMsTUFBaUM7UUFDcEMsWUFBWTtRQUNaLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNuQyxJQUFJLE1BQU07WUFBRSxLQUFLLE1BQU0sTUFBTSxJQUFJLE1BQU07Z0JBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZFLElBQUksTUFBTTtZQUNSLEtBQUssTUFBTSxNQUFNLElBQUksTUFBTTtnQkFDekIsSUFBSSxNQUFNLENBQUMscUJBQXFCO29CQUFFLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5SSxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsTUFBK0I7UUFDOUMsTUFBTSxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQy9DLElBQUksTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJO1lBQUUsTUFBTSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDbEQsSUFBSSxNQUFNLENBQUMsaUJBQWlCLElBQUksSUFBSTtZQUFFLE1BQU0sQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7UUFDdEUsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQywrQkFBK0I7WUFDekQsSUFBSSxNQUFNLENBQUMsa0JBQWtCLElBQUksSUFBSSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQztnQkFBRSxNQUFNLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQ3hILDBEQUEwRDtRQUMxRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQztRQUU1QyxJQUFJLE1BQU0sQ0FBQyxlQUFlO1lBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDdEYsSUFBSSxNQUFNLENBQUMsZ0JBQWdCO1lBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO1FBQzFGLElBQUksTUFBTSxDQUFDLFlBQVksRUFBRTtZQUN2QixJQUFJLE1BQU0sQ0FBQyxLQUFLO2dCQUFFLFFBQVEsQ0FBQztZQUMzQixJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDLEVBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDdEksTUFBTSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUN4RCxDQUFDLENBQUMsQ0FBQztTQUNKO0lBQ0gsQ0FBQztJQUVTLG9CQUFvQixDQUFDLE1BQStCLEVBQUUsUUFBMkI7UUFDekYsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO1lBQ3ZCLHNCQUFzQjtZQUN0QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQixDQUFDLFNBQTRCO1FBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBbUIsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ2hELENBQUM7SUFFUyxjQUFjO1FBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBT0QsZUFBZSxDQUFDLFVBQW1DO1FBQ2pELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxTQUEyQixFQUFFLE1BQXdDO1FBQ3BGLE9BQU8sS0FBSyxDQUFDLGlCQUFpQixDQUFDLFNBQW1CLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUNELG1CQUFtQixDQUFDLEdBQW9FO1FBQ3RGLE9BQU8sS0FBSyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxTQUEyQjtRQUM5QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDakMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDLFNBQW1CLENBQUMsRUFBRSxZQUFZLENBQUM7UUFDekUsSUFBSSxRQUFRO1lBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBZ0IsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25HLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxTQUFtQixDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVTLGNBQWMsQ0FBQyxNQUFXLEVBQUUsTUFBK0I7UUFDbkUsTUFBTSxDQUFDLG1CQUFtQixHQUFHLE1BQU0sQ0FBQztJQUN0QyxDQUFDO0lBRUQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFrQjtRQUM3QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbkIsR0FBRyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4QixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVCLElBQUk7Z0JBQ0YsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDekQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7Z0JBQ3RELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7YUFDeEQ7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDZCxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7YUFDcEM7WUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN6QixHQUFHLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ3ZCOztZQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDOzhHQXBMVSxzQkFBc0I7a0dBQXRCLHNCQUFzQix5aEdDMURuQyx1dU1BNkhBLDBERG5GSSxlQUFlLGtHQUNmLFdBQVcsbVNBQ1gsWUFBWSxzTUFDWixvQkFBb0IsNElBRXBCLHFCQUFxQiw4SEFHckIsbUJBQW1CLDRXQUNuQix5QkFBeUIsZ0VBQ3pCLFlBQVksNGJBQ1osbUJBQW1CLDJLQUNuQixlQUFlLG1EQUNmLFNBQVM7OzJGQUdBLHNCQUFzQjtrQkF0QmxDLFNBQVM7K0JBQ0UsZ0JBQWdCLGNBR2QsSUFBSSxXQUNQO3dCQUNQLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLG9CQUFvQjt3QkFDcEIsMEJBQTBCO3dCQUMxQixxQkFBcUI7d0JBQ3JCLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixtQkFBbUI7d0JBQ25CLHlCQUF5Qjt3QkFDekIsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsU0FBUztxQkFDVjt3REFNUSxRQUFRO3NCQUFoQixLQUFLO2dCQU1JLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csT0FBTztzQkFBaEIsTUFBTTtnQkFDdUIsbUJBQW1CO3NCQUFoRCxNQUFNO3VCQUFDLG9CQUFvQjtnQkFDbkIsVUFBVTtzQkFBbEIsS0FBSztnQkFvQkcsSUFBSTtzQkFBWixLQUFLO2dCQUU4QyxXQUFXO3NCQUE5RCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFO2dCQUd6QixPQUFPO3NCQUEzQixLQUFLO3VCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIGNvbXB1dGVkLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIHNpZ25hbCxcbiAgdmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUdyb3VwLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNsb25lRGVlcCwgaXNFcXVhbCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGZpbHRlciwgbGFzdCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRnVuY3Rpb25DYWxsZXIyLCBUb0FueVBpcGUgfSBmcm9tICcuLi8uLi9waXBlcy91dGlsaXR5LnBpcGUnO1xuaW1wb3J0IHsgQnRuQ29tcG9uZW50IH0gZnJvbSAnLi4vYnRuL2J0bi5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRCYXNpY0NvbXBvbmVudCwgT3B0aW9uTGFiZWxUeXBlIH0gZnJvbSAnLi4vaW5wdXQvaW5wdXQtYmFzaWMuY29tcG9uZW50JztcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUNvbXBvbmVudCB9IGZyb20gJy4uL2F1dG9jb21wbGV0ZS9hdXRvY29tcGxldGUuY29tcG9uZW50JztcbmltcG9ydCB7IFZhbGlkYXRpb25NZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5wdXQvdmFsaWRhdGlvbi1tZXNzYWdlL3ZhbGlkYXRpb24tbWVzc2FnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGhvbmVOdW1iZXJDb21wb25lbnQgfSBmcm9tICcuLi9waG9uZS1udW1iZXIvcGhvbmUtbnVtYmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIE5nU3dpdGNoRGVmYXVsdCwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dFN1YlR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW5kZXgubW9kZWwnO1xuaW1wb3J0IHsgUmljaFRleHRFZGl0b3JSRkNvbXBvbmVudCB9IGZyb20gJy4uL3JpY2gtdGV4dC1lZGl0b3ItcmYvcmljaC10ZXh0LWVkaXRvci1yZi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRm9ybUdlbmVyYXRvclNlcnZpY2UgfSBmcm9tICcuL2Zvcm0tZ2VuZXJhdG9yLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzZUZvcm1HZW5lcmF0b3IsIElCYXNlRm9ybVNjaGVtYSB9IGZyb20gJy4vZm9ybS1nZW5lcmF0b3IuYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uLCBmcm9tRXZlbnQgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG4vKipcbiAqIEZvcm0gc2hvdWxkIGJlIHNldCBiZWZvcmUgdGhlIHRoZSBmb3JtU2NoZW1hXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Zvcm0tZ2VuZXJhdG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZ2VuZXJhdG9yLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybS1nZW5lcmF0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIExvYWRlckNvbXBvbmVudCxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUGhvbmVOdW1iZXJDb21wb25lbnQsXG4gICAgVmFsaWRhdGlvbk1lc3NhZ2VDb21wb25lbnQsXG4gICAgQXV0b2NvbXBsZXRlQ29tcG9uZW50LFxuICAgIE5nU3dpdGNoRGVmYXVsdCxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIElucHV0QmFzaWNDb21wb25lbnQsXG4gICAgUmljaFRleHRFZGl0b3JSRkNvbXBvbmVudCxcbiAgICBCdG5Db21wb25lbnQsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBGdW5jdGlvbkNhbGxlcjIsXG4gICAgVG9BbnlQaXBlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtR2VuZXJhdG9yQ29tcG9uZW50PFRGb3JtR3JvdXAgZXh0ZW5kcyB7IFtLIGluIGtleW9mIFRGb3JtR3JvdXBdOiBBYnN0cmFjdENvbnRyb2w8YW55LCBhbnk+IH0+IGV4dGVuZHMgQmFzZUZvcm1HZW5lcmF0b3I8XG4gIFRGb3JtR3JvdXAsXG4gIElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+XG4+IHtcbiAgQElucHV0KCkga2V5RmllbGQ6ICdmaWVsZCcgfCAnbGFiZWwnID0gJ2ZpZWxkJztcbiAgcHJlc2V0VmFsdWVGb3JTaW5nbGVPcHRpb24gPSBpbnB1dChmYWxzZSk7XG4gIGlzQ3JlYXRlID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgc3VibWl0T25FbnRlcktleSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgZm9ybVRhZ1JlZiA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxGb3JtRWxlbWVudD4+KCdmb3JtVGFnJyk7XG5cbiAgQE91dHB1dCgpIG9uU3VibWl0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSBtY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoJ3N1Ym1pc3Npb25SZXNwb25zZScpIF9zdWJtaXNzaW9uUmVzcG9uc2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQElucHV0KCkgc3VibWl0RnVuYzogKHZhbHVlOiBhbnkpID0+IFByb21pc2U8YW55PjtcbiAgc3VibWl0QnRuVGV4dCA9IGlucHV0KCdTdWJtaXQnKTtcbiAgc3VibWl0QnRuVGVtcGxhdGUgPSBpbnB1dDxUZW1wbGF0ZVJlZjxhbnk+PigpO1xuICBzdWJtaXRTdWNjZXNzVGV4dCA9IGlucHV0KCdTYXZlZCBzdWNjZXNzZnVsbHknKTtcbiAgc2hvd1N1Ym1pdEJ0biA9IGlucHV0KHRydWUpO1xuXG4gIGdyaWRTdHlsZSA9IGlucHV0PG51bWJlciB8ICdhdXRvJz4oKTtcbiAgZ3JpZE1EU3R5bGUgPSBpbnB1dDxudW1iZXIgfCAnYXV0byc+KCk7XG4gIGdyaWRMR1N0eWxlID0gaW5wdXQ8bnVtYmVyIHwgJ2F1dG8nPigpO1xuICBncmlkWFhMU3R5bGUgPSBpbnB1dDxudW1iZXIgfCAnYXV0byc+KCk7XG5cbiAgZm9ybUdyaWRDbGFzcyA9IGlucHV0PHN0cmluZz4oKTtcbiAgdXNlTG9hZGVyID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgbG9hZGluZyA9IGlucHV0PGJvb2xlYW4+KCk7XG5cbiAgX2xvYWRpbmcgPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGNvbXB1dGVkTG9hZGluZyA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLnVzZUxvYWRlcigpID8gdGhpcy5sb2FkaW5nKCkgfHwgdGhpcy5fbG9hZGluZygpIDogZmFsc2UpKTtcblxuICBzdWJtaXRCdG5SZWYgPSB2aWV3Q2hpbGQ8QnRuQ29tcG9uZW50Pignc3VibWl0QnRuJyk7XG4gIEBJbnB1dCgpIGZvcm06IEZvcm1Hcm91cDxURm9ybUdyb3VwPjtcbiAgc3VibWlzc2lvblJlc3BvbnNlOiBhbnk7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlLCBhbGlhczogJ2Zvcm1TY2hlbWEnIH0pIHNldCBfZm9ybVNjaGVtYSh2OiBJRm9ybVNjaGVtYTxURm9ybUdyb3VwPltdKSB7XG4gICAgdGhpcy5pbml0KGNsb25lRGVlcCh2LmZpbHRlcigoeCkgPT4geCkpKTtcbiAgfVxuICBASW5wdXQoJ2lzU2hvdycpIHNldCBfaXNTaG93KHY6IGJvb2xlYW4pIHtcbiAgICBpZiAodikgdGhpcy5mb3JtPy5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICBlbHNlIHRoaXMuZm9ybT8uZW5hYmxlKCk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICh2KSB0aGlzLmZvcm0/LmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgZWxzZSB0aGlzLmZvcm0/LmVuYWJsZSgpO1xuICAgIH0sIDUwMCk7XG4gIH1cbiAgb3B0aW9uc01hcCA9IHNpZ25hbDxJRm9ybU9wdGlvbnM+KHt9KTtcbiAgLy8gZm9ybVZhbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZm9ybT8uZ2V0UmF3VmFsdWUoKSk7XG5cbiAgY29tcHV0ZWRGb3JtU2NoZW1hID0gY29tcHV0ZWQ8SUZvcm1TY2hlbWE8VEZvcm1Hcm91cD5bXT4oKCkgPT4ge1xuICAgIGNvbnN0IGZvcm1TY2hlbWEgPSB0aGlzLmZvcm1TY2hlbWEoKSB8fCBbXSxcbiAgICAgIHByZXNldFZhbHVlRm9yU2luZ2xlT3B0aW9uID0gdGhpcy5wcmVzZXRWYWx1ZUZvclNpbmdsZU9wdGlvbigpLFxuICAgICAgaXNDcmVhdGUgPSB0aGlzLmlzQ3JlYXRlKCksXG4gICAgICByZXQ6IElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+W10gPSBbXTtcbiAgICBmb3JtU2NoZW1hLmZvckVhY2goKHNjaGVtZSkgPT4ge1xuICAgICAgaWYgKCFzY2hlbWUuaGlkZGVuKSB7XG4gICAgICAgIGlmIChpc0NyZWF0ZSkgc2NoZW1lLnByZXNldFZhbHVlID0gc2NoZW1lLnByZXNldFZhbHVlID09IG51bGwgPyBwcmVzZXRWYWx1ZUZvclNpbmdsZU9wdGlvbiA6IHNjaGVtZS5wcmVzZXRWYWx1ZTtcbiAgICAgICAgcmV0LnB1c2goc2NoZW1lKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAocmV0LnNvbWUoKHgpID0+ICF4LmZpZWxkKSkgZGVidWdnZXI7XG4gICAgcmV0dXJuIHJldDtcbiAgfSk7XG4gIC8vIG1pc2NJbmRleDogVE1pc2NJbmRleDtcbiAgcHVibGljIGZvcm1TZXJ2aWNlID0gaW5qZWN0KEZvcm1HZW5lcmF0b3JTZXJ2aWNlKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgbGV0IGxpc3RlblRvS2V5OiBTdWJzY3JpcHRpb247XG4gICAgdGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICBsaXN0ZW5Ub0tleT8udW5zdWJzY3JpYmUoKTtcbiAgICB9KTtcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgZnRyID0gdGhpcy5mb3JtVGFnUmVmKCksXG4gICAgICAgIHN1Ym1pdE9uRW50ZXJLZXkgPSB0aGlzLnN1Ym1pdE9uRW50ZXJLZXkoKTtcbiAgICAgIC8vIGRlYnVnZ2VyO1xuXG4gICAgICBsaXN0ZW5Ub0tleT8udW5zdWJzY3JpYmUoKTtcbiAgICAgIGlmIChmdHI/Lm5hdGl2ZUVsZW1lbnQgJiYgc3VibWl0T25FbnRlcktleSlcbiAgICAgICAgbGlzdGVuVG9LZXkgPSBmcm9tRXZlbnQoZnRyLm5hdGl2ZUVsZW1lbnQsICdrZXlkb3duJylcbiAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgIGRlYm91bmNlVGltZSgxMDApLFxuICAgICAgICAgICAgZmlsdGVyKChyOiBLZXlib2FyZEV2ZW50KSA9PiAoci5jb2RlID09PSAnRW50ZXInIHx8IHIua2V5Q29kZSA9PT0gMTMpICYmIHRoaXMuZm9ybS52YWxpZCksXG4gICAgICAgICAgKVxuICAgICAgICAgIC5zdWJzY3JpYmUoKHI6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgIHRoaXMuc3VibWl0KHRoaXMuc3VibWl0QnRuUmVmKCkpO1xuICAgICAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgaW5pdChzY2hlbWE6IElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+W10pIHtcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICB0aGlzLm9uRGVzdHJveSgpO1xuICAgIHRoaXMuX3NldEZvcm1TY2hlbWFzKHNjaGVtYSB8fCBbXSk7XG4gICAgaWYgKHNjaGVtYSkgZm9yIChjb25zdCBzY2hlbWUgb2Ygc2NoZW1hKSB0aGlzLmhhbmRsZUZvcm1TY2hlbWUoc2NoZW1lKTtcbiAgICBpZiAoc2NoZW1hKVxuICAgICAgZm9yIChjb25zdCBzY2hlbWUgb2Ygc2NoZW1hKVxuICAgICAgICBpZiAoc2NoZW1lLnRyaWdnZXJPbkNoYW5nZU9uSW5pdCkgc2NoZW1lLm9uQ2hhbmdlRnVuYyh0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSwgdGhpcy5mb3JtLmdldFJhd1ZhbHVlKClbc2NoZW1lLmZpZWxkPy50b1N0cmluZygpXSwgdGhpcyk7XG4gIH1cblxuICBoYW5kbGVGb3JtU2NoZW1lKHNjaGVtZTogSUZvcm1TY2hlbWE8VEZvcm1Hcm91cD4pIHtcbiAgICBzY2hlbWUuaWQgPSB0aGlzLnV0aWxpdHlTZXJ2aWNlLmdlbmVyYXRlVVVJRCgpO1xuICAgIGlmIChzY2hlbWUuc3RhY2tlZCA9PSBudWxsKSBzY2hlbWUuc3RhY2tlZCA9IHRydWU7XG4gICAgaWYgKHNjaGVtZS5zaG93VmFsaWRhdGlvbk1zZyA9PSBudWxsKSBzY2hlbWUuc2hvd1ZhbGlkYXRpb25Nc2cgPSB0cnVlO1xuICAgIGlmICh0aGlzLmZvcm1TZXJ2aWNlLmNvbmZpZy5zaG93VmFsaWRhdGlvbk1lc3NhZ2VzQnlEZWZhdWx0KVxuICAgICAgaWYgKHNjaGVtZS5hdXRvUGlja1ZhbHVlRmllbGQgPT0gbnVsbCAmJiAoIXNjaGVtZS52YWx1ZUZpZWxkIHx8ICFzY2hlbWUubGFiZWxGaWVsZCkpIHNjaGVtZS5hdXRvUGlja1ZhbHVlRmllbGQgPSB0cnVlO1xuICAgIC8vIGlmICghdGhpcy5mb3JtLmNvbnRyb2xzW3NjaGVtZS5maWVsZCBhcyBhbnldKSBkZWJ1Z2dlcjtcbiAgICB0aGlzLnVwZGF0ZUZvcm1TY2hlbWEoc2NoZW1lLmZpZWxkLCBzY2hlbWUpO1xuXG4gICAgaWYgKHNjaGVtZS5vcHRpb25zSW5pdEZ1bmMpIHRoaXMuaGFuZGxlT3B0aW9uc0ZldGNoZWQoc2NoZW1lLCBzY2hlbWUub3B0aW9uc0luaXRGdW5jKTtcbiAgICBpZiAoc2NoZW1lLm9wdGlvbnNJbml0RnVuYzIpIHRoaXMuaGFuZGxlT3B0aW9uc0ZldGNoZWQoc2NoZW1lLCBzY2hlbWUub3B0aW9uc0luaXRGdW5jMigpKTtcbiAgICBpZiAoc2NoZW1lLm9uQ2hhbmdlRnVuYykge1xuICAgICAgaWYgKHNjaGVtZS5kZWJ1ZykgZGVidWdnZXI7XG4gICAgICB0aGlzLnN1YnNbc2NoZW1lLmZpZWxkPy50b1N0cmluZygpXSA9IHRoaXMuZm9ybT8uY29udHJvbHNbc2NoZW1lLmZpZWxkPy50b1N0cmluZygpXT8udmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDApKS5zdWJzY3JpYmUoKHIpID0+IHtcbiAgICAgICAgc2NoZW1lLm9uQ2hhbmdlRnVuYyh0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKSwgciwgdGhpcyk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlT3B0aW9uc0ZldGNoZWQoc2NoZW1lOiBJRm9ybVNjaGVtYTxURm9ybUdyb3VwPiwgb3B0aW9ucyQ6IE9ic2VydmFibGU8YW55W10+KSB7XG4gICAgb3B0aW9ucyQuc3Vic2NyaWJlKChyKSA9PiB7XG4gICAgICAvLyBzY2hlbWUub3B0aW9ucyA9IHI7XG4gICAgICB0aGlzLnVwZGF0ZUZvcm1TY2hlbWEoc2NoZW1lLmZpZWxkLCB7IG9wdGlvbnM6IHIgfSk7XG4gICAgfSk7XG4gIH1cblxuICBkZXRhY2hGb3JtU2NoZW1lKGZpZWxkTmFtZT86IGtleW9mIFRGb3JtR3JvdXApIHtcbiAgICB0aGlzLnN1YnNbZmllbGROYW1lIGFzIHN0cmluZ10/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgbWNoYW5nZUVtaXR0ZXIoKSB7XG4gICAgdGhpcy5tY2hhbmdlLmVtaXQodGhpcy5mb3JtLmdldFJhd1ZhbHVlKCkpO1xuICB9XG5cbiAgZ2V0Rm9ybVNjaGVtZSA9IChmaWVsZE5hbWU6IGtleW9mIFRGb3JtR3JvdXApID0+IHtcbiAgICAvLyBkZWJ1Z2dlcjtcbiAgICByZXR1cm4gdGhpcy5mb3JtU2NoZW1hTWFwKClbZmllbGROYW1lIGFzIHN0cmluZ107XG4gIH07XG5cbiAgYWRkVG9Gb3JtU2NoZW1hKGZvcm1TY2hlbWU6IElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+KSB7XG4gICAgdGhpcy5yZW1vdmVGcm9tRm9ybVNjaGVtYShmb3JtU2NoZW1lLmZpZWxkKTtcbiAgICB0aGlzLmhhbmRsZUZvcm1TY2hlbWUoZm9ybVNjaGVtZSk7XG4gIH1cblxuICB1cGRhdGVGb3JtU2NoZW1hKGZpZWxkTmFtZToga2V5b2YgVEZvcm1Hcm91cCwgc2NoZW1lOiBQYXJ0aWFsPElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+Pikge1xuICAgIHJldHVybiBzdXBlci5fdXBkYXRlRm9ybVNjaGVtYShmaWVsZE5hbWUgYXMgc3RyaW5nLCBzY2hlbWUpO1xuICB9XG4gIHVwZGF0ZUFsbEZvcm1TY2hlbWEobWFwOiAoZm9ybUZpZWxkOiBJRm9ybVNjaGVtYTxURm9ybUdyb3VwPikgPT4gSUZvcm1TY2hlbWE8VEZvcm1Hcm91cD4pIHtcbiAgICByZXR1cm4gc3VwZXIuX3VwZGF0ZUFsbEZvcm1TY2hlbWEobWFwKTtcbiAgfVxuXG4gIHJlbW92ZUZyb21Gb3JtU2NoZW1hKGZpZWxkTmFtZToga2V5b2YgVEZvcm1Hcm91cCkge1xuICAgIHRoaXMuZGV0YWNoRm9ybVNjaGVtZShmaWVsZE5hbWUpO1xuICAgIGNvbnN0IG9uUmVtb3ZlID0gdGhpcy5mb3JtU2NoZW1hTWFwKClbZmllbGROYW1lIGFzIHN0cmluZ10/Lm9uUmVtb3ZlRnVuYztcbiAgICBpZiAob25SZW1vdmUpIG9uUmVtb3ZlKHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpIGFzIGFueSwgdGhpcy5mb3JtLmNvbnRyb2xzW2ZpZWxkTmFtZSBhcyBhbnldLCB0aGlzKTtcbiAgICB0aGlzLl9yZW1vdmVGb3JtU2NoZW1hKGZpZWxkTmFtZSBhcyBzdHJpbmcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldE9wdGlvbkxhYmVsKCRldmVudDogYW55LCBzY2hlbWU6IElGb3JtU2NoZW1hPFRGb3JtR3JvdXA+KSB7XG4gICAgc2NoZW1lLnNlbGVjdGVkT3B0aW9uTGFiZWwgPSAkZXZlbnQ7XG4gIH1cblxuICBhc3luYyBzdWJtaXQoYnRuPzogQnRuQ29tcG9uZW50KSB7XG4gICAgaWYgKHRoaXMuc3VibWl0RnVuYykge1xuICAgICAgYnRuPy5zZXRMb2FkZXIodHJ1ZSk7XG4gICAgICB0aGlzLl9sb2FkaW5nLnNldCh0cnVlKTtcbiAgICAgIGNvbnN0IGZvcm1WYWwgPSB0aGlzLmZvcm0uZ2V0UmF3VmFsdWUoKTtcbiAgICAgIHRoaXMub25TdWJtaXQuZW1pdChmb3JtVmFsKTtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMuc3VibWlzc2lvblJlc3BvbnNlID0gYXdhaXQgdGhpcy5zdWJtaXRGdW5jKGZvcm1WYWwpO1xuICAgICAgICB0aGlzLnV0aWxpdHlTZXJ2aWNlLmluZm8odGhpcy5zdWJtaXRTdWNjZXNzVGV4dCgpLCAxKTtcbiAgICAgICAgdGhpcy5fc3VibWlzc2lvblJlc3BvbnNlLmVtaXQodGhpcy5zdWJtaXNzaW9uUmVzcG9uc2UpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgdGhpcy51dGlsaXR5U2VydmljZS5pbmZvKGVycm9yLCAwKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2xvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgIGJ0bj8uc2V0TG9hZGVyKGZhbHNlKTtcbiAgICB9IGVsc2UgdGhpcy5vblN1Ym1pdC5lbWl0KHRoaXMuZm9ybS5nZXRSYXdWYWx1ZSgpKTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtU2NoZW1hPFxuICBURm9ybUdyb3VwIGV4dGVuZHMge1xuICAgIFtLIGluIGtleW9mIFRGb3JtR3JvdXBdOiBBYnN0cmFjdENvbnRyb2w8YW55LCBhbnk+O1xuICB9ID0gYW55LFxuPiBleHRlbmRzIElCYXNlRm9ybVNjaGVtYTxURm9ybUdyb3VwLCBGb3JtR2VuZXJhdG9yQ29tcG9uZW50PFRGb3JtR3JvdXA+PiB7XG4gIGNoaWxkcmVuPzogSUZvcm1TY2hlbWE8VEZvcm1Hcm91cD5bXTtcbiAgbGFiZWxUeXBlPzogT3B0aW9uTGFiZWxUeXBlO1xuICBmaWVsZDoga2V5b2YgVEZvcm1Hcm91cDtcbiAgc3ViVHlwZT86IElucHV0U3ViVHlwZTtcbiAgcHJlc2V0VmFsdWU/OiBib29sZWFuO1xufVxuZXhwb3J0IGludGVyZmFjZSBJRm9ybVNjaGVtYTI8VFN0cnVjdCA9IGFueT5cbiAgZXh0ZW5kcyBJRm9ybVNjaGVtYTx7XG4gICAgW0sgaW4ga2V5b2YgVFN0cnVjdF0/OiBBYnN0cmFjdENvbnRyb2w8YW55LCBhbnk+O1xuICB9PiB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIElGb3JtT3B0aW9ucyB7XG4gIFtmaWVsZDogc3RyaW5nXTogYW55O1xufVxuIiwiPGxvYWRlciBbbG9hZGluZ109XCJjb21wdXRlZExvYWRpbmcoKVwiPlxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiAjZm9ybVRhZyA+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJyb3cgcm93LWNvbHMte3sgZ3JpZFN0eWxlKCkgfX0gcm93LWNvbHMtbWQte3sgZ3JpZE1EU3R5bGUoKSB9fSByb3ctY29scy1sZy17eyBncmlkTEdTdHlsZSgpIH19IHJvdy1jb2xzLXh4bC17e1xuICAgICAgICBncmlkWFhMU3R5bGUoKVxuICAgICAgfX0gYWxpZ24taXRlbXMtY2VudGVyIHt7IGZvcm1HcmlkQ2xhc3MoKSB9fVwiPlxuICAgICAgQGZvciAoc2NoZW1lIG9mIGNvbXB1dGVkRm9ybVNjaGVtYSgpOyB0cmFjayBzY2hlbWUuaWQpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbCB7eyBzY2hlbWUuY2xzIH19IFwiPlxuICAgICAgICAgIEBzd2l0Y2ggKHRydWUpIHtcbiAgICAgICAgICAgIEBjYXNlIChzY2hlbWUudHlwZSA9PSAndGVsJykge1xuICAgICAgICAgICAgICA8YXBwLXBob25lLW51bWJlclxuICAgICAgICAgICAgICAgIFtmb3JtXT1cInNjaGVtZS5mb3JtIHx8IGZvcm1cIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJzY2hlbWUubGFiZWxcIlxuICAgICAgICAgICAgICAgIFtjbGVhck9uRGlzYWJsZV09XCJzY2hlbWUuY2xlYXJPbkRpc2FibGVcIlxuICAgICAgICAgICAgICAgIFtzdGFja2VkXT1cInNjaGVtZS5zdGFja2VkXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJzY2hlbWUuZmllbGRcIlxuICAgICAgICAgICAgICAgIFtub0Zvcm1hdF09XCJzY2hlbWUubm9Gb3JtYXRcIlxuICAgICAgICAgICAgICAgIFtkZWJ1Z109XCJzY2hlbWUuZGVidWdcIlxuICAgICAgICAgICAgICAgIChtY2hhbmdlKT1cIm1jaGFuZ2VFbWl0dGVyKClcIlxuICAgICAgICAgICAgICAgIFtzaG93VmFsaWRhdGlvbl09XCJzY2hlbWUuc2hvd1ZhbGlkYXRpb25cIlxuICAgICAgICAgICAgICAgIFthdXRvUGlja1ZhbHVlRmllbGRdPVwic2NoZW1lLmF1dG9QaWNrVmFsdWVGaWVsZFwiXG4gICAgICAgICAgICAgICAgW3Nob3dSZXF1aXJlZFRhZ109XCJzY2hlbWUuc2hvd1JlcXVpcmVkVGFnXCJcbiAgICAgICAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25Nc2ddPVwic2NoZW1lLnNob3dWYWxpZGF0aW9uTXNnXCJcbiAgICAgICAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25JY29uXT1cInNjaGVtZS5zaG93VmFsaWRhdGlvbkljb25cIlxuICAgICAgICAgICAgICAgIFtjb3VudHJ5Q29kZTNdPVwic2NoZW1lLmNvdW50cnlDb2RlM1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNjaGVtZS5kaXNhYmxlZCB8fCAoc2NoZW1lLmRpc2FibGVkSWYgfCBmdW5jdGlvbkNhbGxlcjI6IGZvcm0udmFsdWUgOiAoc2NoZW1lLmZpZWxkIHwgdG9BbnkpKVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoc2NoZW1lLnR5cGUgPT0gJ2F1dG9jb21wbGV0ZScpIHtcbiAgICAgICAgICAgICAgPGFwcC1hdXRvY29tcGxldGVcbiAgICAgICAgICAgICAgICBbZm9ybV09XCJzY2hlbWUuZm9ybSB8fCBmb3JtXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwic2NoZW1lLmxhYmVsXCJcbiAgICAgICAgICAgICAgICBbY2xlYXJPbkRpc2FibGVdPVwic2NoZW1lLmNsZWFyT25EaXNhYmxlXCJcbiAgICAgICAgICAgICAgICBbc3RhY2tlZF09XCJzY2hlbWUuc3RhY2tlZFwiXG4gICAgICAgICAgICAgICAgW3ByZXNldFZhbHVlXT1cInNjaGVtZS5wcmVzZXRWYWx1ZVwiXG4gICAgICAgICAgICAgICAgW2xhYmVsRmllbGRdPVwic2NoZW1lLmxhYmVsRmllbGRcIlxuICAgICAgICAgICAgICAgIFtub0Zvcm1hdF09XCJzY2hlbWUubm9Gb3JtYXRcIlxuICAgICAgICAgICAgICAgIFtsYWJlbFR5cGVdPVwic2NoZW1lLmxhYmVsVHlwZSB8IHRvQW55XCJcbiAgICAgICAgICAgICAgICAobWNoYW5nZSk9XCJtY2hhbmdlRW1pdHRlcigpXCJcbiAgICAgICAgICAgICAgICAobVNlbGVjdGVkT3B0aW9uTGFiZWwpPVwic2V0T3B0aW9uTGFiZWwoJGV2ZW50LCBzY2hlbWUpXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJzY2hlbWUuZmllbGRcIlxuICAgICAgICAgICAgICAgIFtkZWJ1Z109XCJzY2hlbWUuZGVidWdcIlxuICAgICAgICAgICAgICAgIFtzaG93UmVxdWlyZWRUYWddPVwic2NoZW1lLnNob3dSZXF1aXJlZFRhZ1wiXG4gICAgICAgICAgICAgICAgW29wdGlvbkZvcm1hdHRlcl09XCJzY2hlbWUub3B0aW9uRm9ybWF0dGVyXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVGaWVsZF09XCJzY2hlbWUudmFsdWVGaWVsZFwiXG4gICAgICAgICAgICAgICAgW29wdGlvbnNGdW5jXT1cInNjaGVtZS5vcHRpb25zRnVuY1wiXG4gICAgICAgICAgICAgICAgW3Nob3dWYWxpZGF0aW9uTXNnXT1cInNjaGVtZS5zaG93VmFsaWRhdGlvbk1zZ1wiXG4gICAgICAgICAgICAgICAgW2F1dG9QaWNrVmFsdWVGaWVsZF09XCJzY2hlbWUuYXV0b1BpY2tWYWx1ZUZpZWxkXCJcbiAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJzY2hlbWUub3B0aW9ucyB8fCBvcHRpb25zTWFwKClbc2NoZW1lLmZpZWxkIHwgdG9BbnldXCJcbiAgICAgICAgICAgICAgICBbaGludF09XCJzY2hlbWUuaGludFwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNjaGVtZS5kaXNhYmxlZCB8fCAoc2NoZW1lLmRpc2FibGVkSWYgfCBmdW5jdGlvbkNhbGxlcjI6IGZvcm0udmFsdWUgOiAoc2NoZW1lLmZpZWxkIHwgdG9BbnkpKVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAY2FzZSAoc2NoZW1lLnR5cGUgPT0gJ3JpY2h0ZXh0Jykge1xuICAgICAgICAgICAgICA8cmljaC10ZXh0LWVkaXRvci1yZlxuICAgICAgICAgICAgICAgIFtmb3JtXT1cInNjaGVtZS5mb3JtIHx8IGZvcm1cIlxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCJzY2hlbWUubGFiZWwhXCJcbiAgICAgICAgICAgICAgICBbY2xlYXJPbkRpc2FibGVdPVwic2NoZW1lLmNsZWFyT25EaXNhYmxlIVwiXG4gICAgICAgICAgICAgICAgW3N0YWNrZWRdPVwic2NoZW1lLnN0YWNrZWRcIlxuICAgICAgICAgICAgICAgIFtsYWJlbEZpZWxkXT1cInNjaGVtZS5sYWJlbEZpZWxkIVwiXG4gICAgICAgICAgICAgICAgW25vRm9ybWF0XT1cInNjaGVtZS5ub0Zvcm1hdCFcIlxuICAgICAgICAgICAgICAgIFtsYWJlbFR5cGVdPVwic2NoZW1lLmxhYmVsVHlwZSB8IHRvQW55XCJcbiAgICAgICAgICAgICAgICAobWNoYW5nZSk9XCJtY2hhbmdlRW1pdHRlcigpXCJcbiAgICAgICAgICAgICAgICAobVNlbGVjdGVkT3B0aW9uTGFiZWwpPVwic2V0T3B0aW9uTGFiZWwoJGV2ZW50LCBzY2hlbWUpXCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJzY2hlbWUuZmllbGRcIlxuICAgICAgICAgICAgICAgIFtkZWJ1Z109XCJzY2hlbWUuZGVidWchXCJcbiAgICAgICAgICAgICAgICBbc2hvd1JlcXVpcmVkVGFnXT1cInNjaGVtZS5zaG93UmVxdWlyZWRUYWchXCJcbiAgICAgICAgICAgICAgICBbb3B0aW9uRm9ybWF0dGVyXT1cInNjaGVtZS5vcHRpb25Gb3JtYXR0ZXIhXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVGaWVsZF09XCJzY2hlbWUudmFsdWVGaWVsZCFcIlxuICAgICAgICAgICAgICAgIFtvcHRpb25zRnVuY109XCJzY2hlbWUub3B0aW9uc0Z1bmMhXCJcbiAgICAgICAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25Nc2ddPVwic2NoZW1lLnNob3dWYWxpZGF0aW9uTXNnXCJcbiAgICAgICAgICAgICAgICBbYXV0b1BpY2tWYWx1ZUZpZWxkXT1cInNjaGVtZS5hdXRvUGlja1ZhbHVlRmllbGQhXCJcbiAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJzY2hlbWUub3B0aW9ucyB8fCBvcHRpb25zTWFwKClbc2NoZW1lLmZpZWxkIHwgdG9BbnldXCJcbiAgICAgICAgICAgICAgICBbaGludF09XCJzY2hlbWUuaGludCFcIlxuICAgICAgICAgICAgICAgIFttYXhMZW5ndGhdPVwic2NoZW1lLm1heExlbmd0aFwiXG4gICAgICAgICAgICAgICAgW21pbkxlbmd0aF09XCJzY2hlbWUubWluTGVuZ3RoXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic2NoZW1lLmRpc2FibGVkIHx8IChzY2hlbWUuZGlzYWJsZWRJZiEgfCBmdW5jdGlvbkNhbGxlcjI6IGZvcm0udmFsdWUgOiAoc2NoZW1lLmZpZWxkIHwgdG9BbnkpKVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgICAgIDxhcHAtaW5wdXQtYmFzaWNcbiAgICAgICAgICAgICAgICBbbm9Gb3JtYXRdPVwic2NoZW1lLm5vRm9ybWF0XCJcbiAgICAgICAgICAgICAgICBbbmFtZV09XCJzY2hlbWUuZmllbGRcIlxuICAgICAgICAgICAgICAgIFtmb3JtXT1cInNjaGVtZS5mb3JtIHx8IGZvcm1cIlxuICAgICAgICAgICAgICAgIFtjbGVhck9uRGlzYWJsZV09XCJzY2hlbWUuY2xlYXJPbkRpc2FibGVcIlxuICAgICAgICAgICAgICAgIFt0eXBlXT1cInNjaGVtZS50eXBlXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVGaWVsZF09XCJzY2hlbWUudmFsdWVGaWVsZFwiXG4gICAgICAgICAgICAgICAgW2F1dG9QaWNrVmFsdWVGaWVsZF09XCJzY2hlbWUuYXV0b1BpY2tWYWx1ZUZpZWxkXCJcbiAgICAgICAgICAgICAgICBbcHJlc2V0VmFsdWVdPVwic2NoZW1lLnByZXNldFZhbHVlXCJcbiAgICAgICAgICAgICAgICBbc3RhY2tlZF09XCJzY2hlbWUuc3RhY2tlZFwiXG4gICAgICAgICAgICAgICAgW2xhYmVsVHlwZV09XCJzY2hlbWUubGFiZWxUeXBlIHwgdG9BbnlcIlxuICAgICAgICAgICAgICAgIFtjaGVja2VkU2lnbmFsXT1cInNjaGVtZS5jaGVja2VkXCJcbiAgICAgICAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25dPVwiISFzY2hlbWUuYXN5bmNWYWxpZGF0b3JzXCJcbiAgICAgICAgICAgICAgICBbc2hvd1ZhbGlkYXRpb25JY29uXT1cIiEhc2NoZW1lLmFzeW5jVmFsaWRhdG9yc1wiXG4gICAgICAgICAgICAgICAgW2RlYnVnXT1cInNjaGVtZS5kZWJ1Z1wiXG4gICAgICAgICAgICAgICAgKG1jaGFuZ2UpPVwibWNoYW5nZUVtaXR0ZXIoKVwiXG4gICAgICAgICAgICAgICAgW3Nob3dSZXF1aXJlZFRhZ109XCJzY2hlbWUuc2hvd1JlcXVpcmVkVGFnXCJcbiAgICAgICAgICAgICAgICBbbGFiZWxGaWVsZF09XCJzY2hlbWUubGFiZWxGaWVsZFwiXG4gICAgICAgICAgICAgICAgW29wdGlvbkZvcm1hdHRlcl09XCJzY2hlbWUub3B0aW9uRm9ybWF0dGVyXCJcbiAgICAgICAgICAgICAgICAobVNlbGVjdGVkT3B0aW9uTGFiZWwpPVwic2V0T3B0aW9uTGFiZWwoJGV2ZW50LCBzY2hlbWUpXCJcbiAgICAgICAgICAgICAgICBbb3B0aW9uc109XCJzY2hlbWUub3B0aW9ucyB8fCBvcHRpb25zTWFwKClbc2NoZW1lLmZpZWxkIHwgdG9BbnldXCJcbiAgICAgICAgICAgICAgICBbZGVjaW1hbFBvaW50c109XCJzY2hlbWUuZGVjaW1hbFBvaW50c1wiXG4gICAgICAgICAgICAgICAgW2hpbnRdPVwic2NoZW1lLmhpbnRcIlxuICAgICAgICAgICAgICAgIFttYXhdPVwic2NoZW1lLm1heFwiXG4gICAgICAgICAgICAgICAgW21pbl09XCJzY2hlbWUubWluXCJcbiAgICAgICAgICAgICAgICBbbWF4TGVuZ3RoXT1cInNjaGVtZS5tYXhMZW5ndGhcIlxuICAgICAgICAgICAgICAgIFttaW5MZW5ndGhdPVwic2NoZW1lLm1pbkxlbmd0aFwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInNjaGVtZS5wbGFjZWhvbGRlclwiXG4gICAgICAgICAgICAgICAgW2xhYmVsXT1cInNjaGVtZS5sYWJlbFwiXG4gICAgICAgICAgICAgICAgW3Nob3dWYWxpZGF0aW9uTXNnXT1cInNjaGVtZS5zaG93VmFsaWRhdGlvbk1zZ1wiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNjaGVtZS5kaXNhYmxlZCB8fCAoc2NoZW1lLmRpc2FibGVkSWYgfCBmdW5jdGlvbkNhbGxlcjI6IGZvcm0udmFsdWUgOiAoc2NoZW1lLmZpZWxkIHwgdG9BbnkpKVwiIC8+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwicm93IHJvdy1jb2xzLWF1dG8ganVzdGlmeS1jb250ZW50LWVuZFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIlwiPlxuICAgICAgICBAaWYgKHNob3dTdWJtaXRCdG4oKSkge1xuICAgICAgICAgIDxhcHAtYnRuIFt0ZXh0XT1cInN1Ym1pdEJ0blRleHQoKVwiICBncm91cD1cInN1Ym1pdFwiIFtmb3JtXT1cImZvcm1cIiAobWNsaWNrKT1cInN1Ym1pdChzdWJtaXRCdG4pXCIgI3N1Ym1pdEJ0biAvPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAoc3VibWl0QnRuVGVtcGxhdGUoKSkge1xuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzdWJtaXRCdG5UZW1wbGF0ZSgpXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Zvcm0+XG48L2xvYWRlcj5cbiJdfQ==
|
package/esm2022/lib/Shared/components/input/day-hour-min-input/day-hour-min-input.component.mjs
CHANGED
|
@@ -125,7 +125,7 @@ export class DayHourMinInputComponent extends InputBasicComponent {
|
|
|
125
125
|
this.sub3?.unsubscribe();
|
|
126
126
|
}
|
|
127
127
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DayHourMinInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
128
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: DayHourMinInputComponent, isStandalone: true, selector: "app-day-hour-min-input", inputs: { clearOnDisable: { classPropertyName: "clearOnDisable", publicName: "clearOnDisable", isSignal: true, isRequired: false, transformFunction: null }, toMins: { classPropertyName: "toMins", publicName: "toMins", isSignal: false, isRequired: false, transformFunction: null }, _disabled: { classPropertyName: "_disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, mins: { classPropertyName: "mins", publicName: "mins", isSignal: false, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<div class=\"row\">\n @if (showLabelSignal()) {\n <app-input-label\n [colored]=\"coloredSignal()\"\n [form]=\"formSignal()\"\n [hint]=\"hint\"\n [id]=\"idSignal()\"\n [invalidCheckbox]=\"invalidCheckboxSignal()\"\n [isRequired]=\"isRequiredSignal()\"\n [label]=\"labelSignal()\"\n [lblCl]=\"lblCl\"\n [light]=\"light\"\n [mini]=\"miniSignal()\"\n [showLabel]=\"showLabelSignal()\"\n [small]=\"smallSignal()\"\n [stacked]=\"stackedSignal()\"\n [theme]=\"theme\"\n [xsmall]=\"xsmall\" />\n }\n <div class=\"{{ stackedSignal() ? 'col-12' : 'col-md' }} position-relative\">\n <div class=\"row\">\n <div class=\"col-4\">\n <app-input-basic\n [showLabel]=\"false\"\n [form]=\"subForm\"\n name=\"days\"\n [min]=\"0\"\n [type]=\"typeSignal()\"\n [noFormat]=\"true\"\n [stacked]=\"true\"\n [clearOnDisable]=\"clearOnDisable()\"\n placeholder=\"days\"\n [showValidation]=\"daysTag.invalidSignal()\"\n #daysTag />\n </div>\n <div class=\"col-4\">\n <app-input-basic\n [showLabel]=\"false\"\n [form]=\"subForm\"\n name=\"hours\"\n [min]=\"0\"\n [type]=\"typeSignal()\"\n [noFormat]=\"true\"\n [stacked]=\"true\"\n [clearOnDisable]=\"clearOnDisable()\"\n placeholder=\"hours\"\n [showValidation]=\"hoursTag.invalidSignal()\"\n #hoursTag />\n </div>\n <div class=\"col-4\">\n <app-input-basic\n [showLabel]=\"false\"\n [form]=\"subForm\"\n name=\"mins\"\n [min]=\"0\"\n [type]=\"typeSignal()\"\n [noFormat]=\"true\"\n [stacked]=\"true\"\n [clearOnDisable]=\"clearOnDisable()\"\n placeholder=\"minutes\"\n [showValidation]=\"minsTag.invalidSignal()\"\n #minsTag />\n </div>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: InputLabelComponent, selector: "app-input-label", inputs: ["colored", "form", "hint", "inlineHint", "id", "invalidCheckbox", "isRequired", "label", "labelLink", "lblCl", "light", "mini", "showLabel", "showRequiredTag", "small", "stacked", "theme", "xsmall"] }, { kind: "component", type: InputBasicComponent, selector: "app-input-basic,app-input", inputs: ["accept", "autocomplete", "input", "contextData", "decimalPoints", "files", "hide", "hint", "labelLink", "lblCl", "light", "loading", "
|
|
128
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.2.1", type: DayHourMinInputComponent, isStandalone: true, selector: "app-day-hour-min-input", inputs: { clearOnDisable: { classPropertyName: "clearOnDisable", publicName: "clearOnDisable", isSignal: true, isRequired: false, transformFunction: null }, toMins: { classPropertyName: "toMins", publicName: "toMins", isSignal: false, isRequired: false, transformFunction: null }, _disabled: { classPropertyName: "_disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, mins: { classPropertyName: "mins", publicName: "mins", isSignal: false, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: "<div class=\"row\">\n @if (showLabelSignal()) {\n <app-input-label\n [colored]=\"coloredSignal()\"\n [form]=\"formSignal()\"\n [hint]=\"hint\"\n [id]=\"idSignal()\"\n [invalidCheckbox]=\"invalidCheckboxSignal()\"\n [isRequired]=\"isRequiredSignal()\"\n [label]=\"labelSignal()\"\n [lblCl]=\"lblCl\"\n [light]=\"light\"\n [mini]=\"miniSignal()\"\n [showLabel]=\"showLabelSignal()\"\n [small]=\"smallSignal()\"\n [stacked]=\"stackedSignal()\"\n [theme]=\"theme\"\n [xsmall]=\"xsmall\" />\n }\n <div class=\"{{ stackedSignal() ? 'col-12' : 'col-md' }} position-relative\">\n <div class=\"row\">\n <div class=\"col-4\">\n <app-input-basic\n [showLabel]=\"false\"\n [form]=\"subForm\"\n name=\"days\"\n [min]=\"0\"\n [type]=\"typeSignal()\"\n [noFormat]=\"true\"\n [stacked]=\"true\"\n [clearOnDisable]=\"clearOnDisable()\"\n placeholder=\"days\"\n [showValidation]=\"daysTag.invalidSignal()\"\n #daysTag />\n </div>\n <div class=\"col-4\">\n <app-input-basic\n [showLabel]=\"false\"\n [form]=\"subForm\"\n name=\"hours\"\n [min]=\"0\"\n [type]=\"typeSignal()\"\n [noFormat]=\"true\"\n [stacked]=\"true\"\n [clearOnDisable]=\"clearOnDisable()\"\n placeholder=\"hours\"\n [showValidation]=\"hoursTag.invalidSignal()\"\n #hoursTag />\n </div>\n <div class=\"col-4\">\n <app-input-basic\n [showLabel]=\"false\"\n [form]=\"subForm\"\n name=\"mins\"\n [min]=\"0\"\n [type]=\"typeSignal()\"\n [noFormat]=\"true\"\n [stacked]=\"true\"\n [clearOnDisable]=\"clearOnDisable()\"\n placeholder=\"minutes\"\n [showValidation]=\"minsTag.invalidSignal()\"\n #minsTag />\n </div>\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: InputLabelComponent, selector: "app-input-label", inputs: ["colored", "form", "hint", "inlineHint", "id", "invalidCheckbox", "isRequired", "label", "labelLink", "lblCl", "light", "mini", "showLabel", "showRequiredTag", "small", "stacked", "theme", "xsmall"] }, { kind: "component", type: InputBasicComponent, selector: "app-input-basic,app-input", inputs: ["accept", "autocomplete", "input", "contextData", "decimalPoints", "files", "hide", "hint", "labelLink", "lblCl", "light", "loading", "multiple", "optionsFunc", "theme", "vms", "xsmall", "setCurrentDate", "options", "mvalue"], outputs: ["mSelectOptionChange", "mSelectedOptionLabel"] }] }); }
|
|
129
129
|
}
|
|
130
130
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.1", ngImport: i0, type: DayHourMinInputComponent, decorators: [{
|
|
131
131
|
type: Component,
|