@eqproject/eqp-dynamic-module 2.6.4 → 2.6.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.mjs +9 -3
- package/esm2020/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.mjs +80 -3
- package/esm2020/lib/components/private/dynamic-module-field/dynamic-module-field.component.mjs +1 -1
- package/esm2020/lib/components/private/form-records/add-form-record/add-form-record.component.mjs +82 -3
- package/esm2020/lib/components/private/form-records/list-view-form-record/list-view-form-record.component.mjs +13 -3
- package/esm2020/lib/components/private/form-records/list-view-form-record/single-record/single-record.component.mjs +9 -3
- package/esm2020/lib/components/private/form-statistics/filter-form-statistic/filter-form-statistic.component.mjs +1 -1
- package/esm2020/lib/components/private/graphs/graphs.component.mjs +3 -3
- package/esm2020/lib/components/private/trigger-creator/dynamic-module-trigger-fix/dynamic-module-trigger-fix.component.mjs +68 -0
- package/esm2020/lib/components/private/trigger-creator/trigger-creator.component.mjs +142 -0
- package/esm2020/lib/components/private/trigger-creator/trigger-templates/boolean-trigger-template/boolean-trigger-template.component.mjs +86 -0
- package/esm2020/lib/components/private/trigger-creator/trigger-templates/date-trigger-template/date-trigger-template.component.mjs +86 -0
- package/esm2020/lib/components/private/trigger-creator/trigger-templates/list-form-record-trigger-template/list-form-record-trigger-template.component.mjs +60 -0
- package/esm2020/lib/components/private/trigger-creator/trigger-templates/list-value-trigger-template/list-value-trigger-template.component.mjs +136 -0
- package/esm2020/lib/components/private/trigger-creator/trigger-templates/numeric-trigger-template/numeric-trigger-template.component.mjs +102 -0
- package/esm2020/lib/components/private/trigger-creator/trigger-templates/text-trigger-template/text-trigger-template.component.mjs +116 -0
- package/esm2020/lib/components/private/trigger-creator/trigger-templates/textarea-trigger-template/textarea-trigger-template.component.mjs +116 -0
- package/esm2020/lib/eqp-dynamic-module.module.mjs +29 -2
- package/esm2020/lib/models/form.model.mjs +1 -1
- package/esm2020/lib/models/logicOperator.model.mjs +14 -1
- package/esm2020/lib/models/trigger.model.mjs +31 -0
- package/fesm2015/eqproject-eqp-dynamic-module.mjs +1227 -182
- package/fesm2015/eqproject-eqp-dynamic-module.mjs.map +1 -1
- package/fesm2020/eqproject-eqp-dynamic-module.mjs +1227 -182
- package/fesm2020/eqproject-eqp-dynamic-module.mjs.map +1 -1
- package/lib/components/exported/eqp-dynamic-module/eqp-dynamic-module.component.d.ts +4 -1
- package/lib/components/exported/eqp-dynamic-module-configurator/eqp-dynamic-module-configurator.component.d.ts +14 -1
- package/lib/components/private/form-records/add-form-record/add-form-record.component.d.ts +4 -1
- package/lib/components/private/form-records/list-view-form-record/list-view-form-record.component.d.ts +4 -1
- package/lib/components/private/form-records/list-view-form-record/single-record/single-record.component.d.ts +4 -1
- package/lib/components/private/trigger-creator/dynamic-module-trigger-fix/dynamic-module-trigger-fix.component.d.ts +42 -0
- package/lib/components/private/trigger-creator/trigger-creator.component.d.ts +34 -0
- package/lib/components/private/trigger-creator/trigger-templates/boolean-trigger-template/boolean-trigger-template.component.d.ts +34 -0
- package/lib/components/private/trigger-creator/trigger-templates/date-trigger-template/date-trigger-template.component.d.ts +34 -0
- package/lib/components/private/trigger-creator/trigger-templates/list-form-record-trigger-template/list-form-record-trigger-template.component.d.ts +24 -0
- package/lib/components/private/trigger-creator/trigger-templates/list-value-trigger-template/list-value-trigger-template.component.d.ts +50 -0
- package/lib/components/private/trigger-creator/trigger-templates/numeric-trigger-template/numeric-trigger-template.component.d.ts +37 -0
- package/lib/components/private/trigger-creator/trigger-templates/text-trigger-template/text-trigger-template.component.d.ts +41 -0
- package/lib/components/private/trigger-creator/trigger-templates/textarea-trigger-template/textarea-trigger-template.component.d.ts +41 -0
- package/lib/eqp-dynamic-module.module.d.ts +42 -33
- package/lib/models/form.model.d.ts +6 -0
- package/lib/models/logicOperator.model.d.ts +12 -0
- package/lib/models/trigger.model.d.ts +39 -0
- package/package.json +1 -1
|
@@ -418,7 +418,7 @@ export class FilterFormStatisticComponent {
|
|
|
418
418
|
}
|
|
419
419
|
}
|
|
420
420
|
FilterFormStatisticComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FilterFormStatisticComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.UtilityHelperService }], target: i0.ɵɵFactoryTarget.Component });
|
|
421
|
-
FilterFormStatisticComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FilterFormStatisticComponent, selector: "filter-form-statistic", inputs: { configurations: "configurations", endPointConfiguration: "endPointConfiguration", userID: "userID", externalButtons: "externalButtons", formID: "formID", form: "form", record: "record", onlyView: "onlyView", defaultListActions: "defaultListActions", filterResultViewMode: "filterResultViewMode" }, outputs: { saveRecordEvent: "saveRecordEvent", afterSaveRecordEvent: "afterSaveRecordEvent", afterFilter: "afterFilter" }, viewQueries: [{ propertyName: "fieldTemplate", predicate: ["fieldTemplate"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"loader\">\r\n\r\n <div class=\"row eqp-dynamic-module-title add-form-record-header\" *ngIf=\"showTitle\">\r\n <div class=\"col-md-12\">\r\n <h4><b>{{form.Name}}</b></h4>\r\n </div>\r\n </div>\r\n\r\n <form [formGroup]=\"formForm\" class=\"add-form-record-form\">\r\n\r\n <!-- VISUALIZZAZIONE SEMPLICE -->\r\n <ng-container *ngIf=\"form.FormScalarType == FormScalarTypeEnum.Semplice && !showListView\" [ngTemplateOutlet]=\"fieldTemplates\"\r\n [ngTemplateOutletContext]=\"{ fields: form.Fields }\" class=\"add-form-record-semplice\">\r\n </ng-container>\r\n\r\n </form>\r\n\r\n <div class=\"row mt-2 m-2 add-form-record-buttons\"\r\n *ngIf=\"(showBackButton || showSaveButton) && form.FormScalarType != FormScalarTypeEnum['A step']\">\r\n <div class=\"col-sm-12 m-2 text-right\">\r\n <button mat-raised-button color=\"primary\" type=\"button\" *ngIf=\"showListView && showNewSearchButton\" (click)=\"reset()\">\r\n Nuova ricerca\r\n </button>\r\n <button mat-raised-button color=\"primary\" type=\"button\" *ngIf=\"!showListView\"\r\n (click)=\"ApplyFilter()\">\r\n Esegui Filtro\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <list-view-form-record\r\n *ngIf=\"showListView && filterResultViewMode == filterResultViewModes.INTERNAL_LISTVIEW && filterResults != null\"\r\n class=\"dynamic-module-list-view\"\r\n [configurations]=\"listViewConfigurations\"\r\n [compileConfigurations]=\"configurations\"\r\n [endPointConfiguration]=\"endPointConfiguration\"\r\n [formID]=\"formID\"\r\n [onlyView]=\"true\"\r\n [records]=\"filterResults\"\r\n [externalButtons]=\"externalButtons\"\r\n >\r\n </list-view-form-record>\r\n\r\n <div *ngIf=\"showListView && filterResultViewMode == filterResultViewModes.INTERNAL_EQPTABLE && filterEqpTableResults != null\" class=\"dynamic-module-eqp-table\">\r\n <eqp-table \r\n\r\n style=\"cursor: pointer\"\r\n #table\r\n emptyTableMessage=\"\"\r\n [data]=\"filterEqpTableResults\"\r\n [columns]=\"columns\"\r\n [exportEqpTable]=\"exportEqpTable\"\r\n\r\n [chooseColumnsToShow]=\"true\"\r\n [switchFilterType]=\"true\"\r\n\r\n [createMatCard]=\"false\"\r\n [disablePageStorageSave]=\"true\"\r\n [isMultiLanguage]=\"true\"\r\n \r\n [matPaginatorCount]=\"filterEqpTableResults != null && filterEqpTableResults.length > 0 ? filterEqpTableResults.length : 0\"\r\n [matPaginatorIndex]=\"pageIndex\"\r\n [matPaginatorSize]=\"pageSize\"\r\n [matPaginatorLength]=\"pageLength\"\r\n >\r\n </eqp-table> \r\n </div> \r\n\r\n</ng-container>\r\n\r\n\r\n\r\n<!-- TEMPLATE PER LA VISUALIZZAZIONE DEI CAMPI DELLA FORM -->\r\n<ng-template #fieldTemplates let-fields='fields'>\r\n <div class=\"row\" *ngIf=\"!showListView\">\r\n <div class=\"mt-2\" *ngFor=\"let field of fields\" [hidden]=\"!field.InListView\"\r\n [ngClass]=\"utilityService.getFieldSyleClass(field)\">\r\n <dynamic-module-filter-fix #fieldTemplate [field]=\"field\" [form]=\"form\" [record]=\"record\"\r\n (filterChange)=\"onFilterChange($event)\">\r\n </dynamic-module-filter-fix>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".dynamic-module-eqp-table{padding:20px}\n"], dependencies: [{ kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.EqpTableComponent, selector: "eqp-table" }, { kind: "component", type: i6.ListViewFormRecordComponent, selector: "list-view-form-record", inputs: ["configurations", "compileConfigurations", "endPointConfiguration", "userID", "formID", "orgaID", "form", "defaultListViewFunction", "externalButtons", "onlyView", "records", "highlightFilter", "QueryEditorComponent"], outputs: ["onAddViewEditRecord", "onDeleteRecord", "saveRecordEvent", "afterSaveRecordEvent", "dragStarted", "dragReleased", "out"] }, { kind: "component", type: i7.DynamicModuleFilterFixComponent, selector: "dynamic-module-filter-fix", inputs: ["field", "form", "record"], outputs: ["filterChange"] }] });
|
|
421
|
+
FilterFormStatisticComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: FilterFormStatisticComponent, selector: "filter-form-statistic", inputs: { configurations: "configurations", endPointConfiguration: "endPointConfiguration", userID: "userID", externalButtons: "externalButtons", formID: "formID", form: "form", record: "record", onlyView: "onlyView", defaultListActions: "defaultListActions", filterResultViewMode: "filterResultViewMode" }, outputs: { saveRecordEvent: "saveRecordEvent", afterSaveRecordEvent: "afterSaveRecordEvent", afterFilter: "afterFilter" }, viewQueries: [{ propertyName: "fieldTemplate", predicate: ["fieldTemplate"], descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"loader\">\r\n\r\n <div class=\"row eqp-dynamic-module-title add-form-record-header\" *ngIf=\"showTitle\">\r\n <div class=\"col-md-12\">\r\n <h4><b>{{form.Name}}</b></h4>\r\n </div>\r\n </div>\r\n\r\n <form [formGroup]=\"formForm\" class=\"add-form-record-form\">\r\n\r\n <!-- VISUALIZZAZIONE SEMPLICE -->\r\n <ng-container *ngIf=\"form.FormScalarType == FormScalarTypeEnum.Semplice && !showListView\" [ngTemplateOutlet]=\"fieldTemplates\"\r\n [ngTemplateOutletContext]=\"{ fields: form.Fields }\" class=\"add-form-record-semplice\">\r\n </ng-container>\r\n\r\n </form>\r\n\r\n <div class=\"row mt-2 m-2 add-form-record-buttons\"\r\n *ngIf=\"(showBackButton || showSaveButton) && form.FormScalarType != FormScalarTypeEnum['A step']\">\r\n <div class=\"col-sm-12 m-2 text-right\">\r\n <button mat-raised-button color=\"primary\" type=\"button\" *ngIf=\"showListView && showNewSearchButton\" (click)=\"reset()\">\r\n Nuova ricerca\r\n </button>\r\n <button mat-raised-button color=\"primary\" type=\"button\" *ngIf=\"!showListView\"\r\n (click)=\"ApplyFilter()\">\r\n Esegui Filtro\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <list-view-form-record\r\n *ngIf=\"showListView && filterResultViewMode == filterResultViewModes.INTERNAL_LISTVIEW && filterResults != null\"\r\n class=\"dynamic-module-list-view\"\r\n [configurations]=\"listViewConfigurations\"\r\n [compileConfigurations]=\"configurations\"\r\n [endPointConfiguration]=\"endPointConfiguration\"\r\n [formID]=\"formID\"\r\n [onlyView]=\"true\"\r\n [records]=\"filterResults\"\r\n [externalButtons]=\"externalButtons\"\r\n >\r\n </list-view-form-record>\r\n\r\n <div *ngIf=\"showListView && filterResultViewMode == filterResultViewModes.INTERNAL_EQPTABLE && filterEqpTableResults != null\" class=\"dynamic-module-eqp-table\">\r\n <eqp-table \r\n\r\n style=\"cursor: pointer\"\r\n #table\r\n emptyTableMessage=\"\"\r\n [data]=\"filterEqpTableResults\"\r\n [columns]=\"columns\"\r\n [exportEqpTable]=\"exportEqpTable\"\r\n\r\n [chooseColumnsToShow]=\"true\"\r\n [switchFilterType]=\"true\"\r\n\r\n [createMatCard]=\"false\"\r\n [disablePageStorageSave]=\"true\"\r\n [isMultiLanguage]=\"true\"\r\n \r\n [matPaginatorCount]=\"filterEqpTableResults != null && filterEqpTableResults.length > 0 ? filterEqpTableResults.length : 0\"\r\n [matPaginatorIndex]=\"pageIndex\"\r\n [matPaginatorSize]=\"pageSize\"\r\n [matPaginatorLength]=\"pageLength\"\r\n >\r\n </eqp-table> \r\n </div> \r\n\r\n</ng-container>\r\n\r\n\r\n\r\n<!-- TEMPLATE PER LA VISUALIZZAZIONE DEI CAMPI DELLA FORM -->\r\n<ng-template #fieldTemplates let-fields='fields'>\r\n <div class=\"row\" *ngIf=\"!showListView\">\r\n <div class=\"mt-2\" *ngFor=\"let field of fields\" [hidden]=\"!field.InListView\"\r\n [ngClass]=\"utilityService.getFieldSyleClass(field)\">\r\n <dynamic-module-filter-fix #fieldTemplate [field]=\"field\" [form]=\"form\" [record]=\"record\"\r\n (filterChange)=\"onFilterChange($event)\">\r\n </dynamic-module-filter-fix>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".dynamic-module-eqp-table{padding:20px}\n"], dependencies: [{ kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i5.EqpTableComponent, selector: "eqp-table" }, { kind: "component", type: i6.ListViewFormRecordComponent, selector: "list-view-form-record", inputs: ["configurations", "compileConfigurations", "endPointConfiguration", "userID", "formID", "orgaID", "form", "defaultListViewFunction", "externalButtons", "onlyView", "records", "highlightFilter", "QueryEditorComponent"], outputs: ["onAddViewEditRecord", "onDeleteRecord", "saveRecordEvent", "afterSaveRecordEvent", "dragStarted", "dragReleased", "out", "fireTrigger"] }, { kind: "component", type: i7.DynamicModuleFilterFixComponent, selector: "dynamic-module-filter-fix", inputs: ["field", "form", "record"], outputs: ["filterChange"] }] });
|
|
422
422
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: FilterFormStatisticComponent, decorators: [{
|
|
423
423
|
type: Component,
|
|
424
424
|
args: [{ selector: 'filter-form-statistic', template: "<ng-container *ngIf=\"loader\">\r\n\r\n <div class=\"row eqp-dynamic-module-title add-form-record-header\" *ngIf=\"showTitle\">\r\n <div class=\"col-md-12\">\r\n <h4><b>{{form.Name}}</b></h4>\r\n </div>\r\n </div>\r\n\r\n <form [formGroup]=\"formForm\" class=\"add-form-record-form\">\r\n\r\n <!-- VISUALIZZAZIONE SEMPLICE -->\r\n <ng-container *ngIf=\"form.FormScalarType == FormScalarTypeEnum.Semplice && !showListView\" [ngTemplateOutlet]=\"fieldTemplates\"\r\n [ngTemplateOutletContext]=\"{ fields: form.Fields }\" class=\"add-form-record-semplice\">\r\n </ng-container>\r\n\r\n </form>\r\n\r\n <div class=\"row mt-2 m-2 add-form-record-buttons\"\r\n *ngIf=\"(showBackButton || showSaveButton) && form.FormScalarType != FormScalarTypeEnum['A step']\">\r\n <div class=\"col-sm-12 m-2 text-right\">\r\n <button mat-raised-button color=\"primary\" type=\"button\" *ngIf=\"showListView && showNewSearchButton\" (click)=\"reset()\">\r\n Nuova ricerca\r\n </button>\r\n <button mat-raised-button color=\"primary\" type=\"button\" *ngIf=\"!showListView\"\r\n (click)=\"ApplyFilter()\">\r\n Esegui Filtro\r\n </button>\r\n </div>\r\n </div>\r\n\r\n <list-view-form-record\r\n *ngIf=\"showListView && filterResultViewMode == filterResultViewModes.INTERNAL_LISTVIEW && filterResults != null\"\r\n class=\"dynamic-module-list-view\"\r\n [configurations]=\"listViewConfigurations\"\r\n [compileConfigurations]=\"configurations\"\r\n [endPointConfiguration]=\"endPointConfiguration\"\r\n [formID]=\"formID\"\r\n [onlyView]=\"true\"\r\n [records]=\"filterResults\"\r\n [externalButtons]=\"externalButtons\"\r\n >\r\n </list-view-form-record>\r\n\r\n <div *ngIf=\"showListView && filterResultViewMode == filterResultViewModes.INTERNAL_EQPTABLE && filterEqpTableResults != null\" class=\"dynamic-module-eqp-table\">\r\n <eqp-table \r\n\r\n style=\"cursor: pointer\"\r\n #table\r\n emptyTableMessage=\"\"\r\n [data]=\"filterEqpTableResults\"\r\n [columns]=\"columns\"\r\n [exportEqpTable]=\"exportEqpTable\"\r\n\r\n [chooseColumnsToShow]=\"true\"\r\n [switchFilterType]=\"true\"\r\n\r\n [createMatCard]=\"false\"\r\n [disablePageStorageSave]=\"true\"\r\n [isMultiLanguage]=\"true\"\r\n \r\n [matPaginatorCount]=\"filterEqpTableResults != null && filterEqpTableResults.length > 0 ? filterEqpTableResults.length : 0\"\r\n [matPaginatorIndex]=\"pageIndex\"\r\n [matPaginatorSize]=\"pageSize\"\r\n [matPaginatorLength]=\"pageLength\"\r\n >\r\n </eqp-table> \r\n </div> \r\n\r\n</ng-container>\r\n\r\n\r\n\r\n<!-- TEMPLATE PER LA VISUALIZZAZIONE DEI CAMPI DELLA FORM -->\r\n<ng-template #fieldTemplates let-fields='fields'>\r\n <div class=\"row\" *ngIf=\"!showListView\">\r\n <div class=\"mt-2\" *ngFor=\"let field of fields\" [hidden]=\"!field.InListView\"\r\n [ngClass]=\"utilityService.getFieldSyleClass(field)\">\r\n <dynamic-module-filter-fix #fieldTemplate [field]=\"field\" [form]=\"form\" [record]=\"record\"\r\n (filterChange)=\"onFilterChange($event)\">\r\n </dynamic-module-filter-fix>\r\n </div>\r\n </div>\r\n</ng-template>", styles: [".dynamic-module-eqp-table{padding:20px}\n"] }]
|
|
@@ -146,10 +146,10 @@ export class GraphsComponent {
|
|
|
146
146
|
}
|
|
147
147
|
}
|
|
148
148
|
GraphsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GraphsComponent, deps: [{ token: i1.UtilityHelperService }, { token: i2.DatePipe }], target: i0.ɵɵFactoryTarget.Component });
|
|
149
|
-
GraphsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GraphsComponent, selector: "graphs", inputs: { configurations: "configurations", endPointConfiguration: "endPointConfiguration", userID: "userID", formID: "formID", form: "form" }, ngImport: i0, template: "<mat-card class=\"list-view-form-record\" *ngIf=\"loaded\">\r\n <mat-card-content>\r\n \r\n\r\n <div class=\"row\">\r\n <div class=\"col-sm-12 col-md-3
|
|
149
|
+
GraphsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GraphsComponent, selector: "graphs", inputs: { configurations: "configurations", endPointConfiguration: "endPointConfiguration", userID: "userID", formID: "formID", form: "form" }, ngImport: i0, template: "<mat-card class=\"list-view-form-record\" *ngIf=\"loaded\">\r\n <mat-card-content>\r\n \r\n\r\n <div class=\"row\">\r\n <div class=\"col-sm-12 col-md-3\">\r\n <tmw-datetimepicker class=\"date\" [placeholder]=\"'Periodo inizio'\" [label]=\"'Periodo inizio'\"\r\n [(ngModelInput)]=\"minperiod\"\r\n [pickerMode]=\"modes.DATEPICKER\" [outputFormat]=\"'DD/MM/YYYY'\" [showSeconds]=\"false\">\r\n </tmw-datetimepicker>\r\n </div>\r\n <div class=\"col-sm-12 col-md-3\">\r\n <tmw-datetimepicker class=\"date\" [placeholder]=\"'Periodo fine'\" [label]=\"'Periodo fine'\"\r\n [(ngModelInput)]=\"maxperiod\"\r\n [pickerMode]=\"modes.DATEPICKER\" [outputFormat]=\"'DD/MM/YYYY'\" [showSeconds]=\"false\">\r\n </tmw-datetimepicker>\r\n </div> \r\n <div class=\"col-sm-12 col-md-3 mt-2\">\r\n <eqp-select [arrayData]=\"fields\" [(ngModelInput)]=\"selectedFields\" [placeholder]=\"'Selezione dei campi'\"\r\n [arrayKeyProperty]=\"'Description'\" [arrayValueProperty]=\"'Description'\" [isMultiSelect]=\"true\" class=\"eqp-form-field\">\r\n </eqp-select>\r\n </div> \r\n <div class=\"col-sm-12 col-md-3 mt-2\">\r\n <button\r\n [disabled]=\"selectedFields == null || selectedFields.length == 0\"\r\n class=\"btn btn-graph-generate button-next me-2\"\r\n mat-raised-button\r\n color=\"primary\"\r\n (click)=\"generateGraph()\"\r\n >\r\n Genera\r\n </button>\r\n </div> \r\n </div>\r\n <div class=\"generation_box\" *ngIf=\"generated\">\r\n <div class=\"row\">\r\n <div class=\"col-3\">\r\n <div class=\"generation_options\" *ngFor=\"let selectedField of selectedGeneratedFields\">\r\n <mat-checkbox class=\"mr-2\" [(ngModel)]=\"selectedField.Visible\">\r\n {{selectedField.Description}}\r\n </mat-checkbox>\r\n </div>\r\n </div>\r\n <div class=\"col-9\">\r\n <div class=\"generation_graph\" *ngFor=\"let selectedField of selectedGeneratedFields\">\r\n <div class=\"generation_divider\" [hidden]=\"!selectedField.Visible\">\r\n <graph [data]=\"selectedField.Coords\" [title]=\"selectedField.Description\"></graph>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n \r\n </mat-card-content>\r\n <mat-card-footer>\r\n </mat-card-footer>\r\n </mat-card>", styles: [".btn-graph-generate{height:56px;width:100%}.generation_box .generation_divider{margin-bottom:10px;padding-bottom:10px;border-bottom:2px solid black;width:100%;height:600px}.generation_box .generation_divider>*{width:100%;height:400px}\n"], dependencies: [{ kind: "component", type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i5.MatCardContent, selector: "mat-card-content" }, { kind: "directive", type: i5.MatCardFooter, selector: "mat-card-footer" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.EqpSelectComponent, selector: "eqp-select", inputs: ["placeholder", "enumData", "enumDataToExclude", "arrayData", "arrayKeyProperty", "arrayValueProperty", "ngModelOptions", "ngModelInput", "formGroupInput", "formControlNameInput", "isRequired", "isDisabled", "isMultiLanguage", "multilanguagePrefixKey", "isAlphabeticalOrderable", "suffixIcon", "prefixIcon", "isMultiSelect", "includeFullObject", "showCancelButton", "isSearchable", "searchText", "noResultSearchText", "data"], outputs: ["ngModelInputChange"] }, { kind: "component", type: i8.TmwDateTimePickerComponent, selector: "tmw-datetimepicker", inputs: ["debugMode", "ngModelInput", "formGroupInput", "formControlNameInput", "pickerMode", "timeType", "label", "placeholder", "hint", "minDate", "maxDate", "locale", "inputFormat", "outputFormat", "forSaveLocalOnDB", "disabled", "readonly", "currentDateAsDefault", "showSpinners", "touchUi", "enableMeridian", "hideTime", "stepHour", "showHours", "hourLabel", "stepMinute", "showMinutes", "minuteLabel", "stepSecond", "showSeconds", "secondLabel", "disableMinute", "dayLabel", "monthLabel", "yearLabel", "highLightedDates", "highLightedAriaFormat"], outputs: ["ngModelInputChange"] }, { kind: "component", type: i9.GraphComponent, selector: "graph", inputs: ["data", "title"] }] });
|
|
150
150
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GraphsComponent, decorators: [{
|
|
151
151
|
type: Component,
|
|
152
|
-
args: [{ selector: 'graphs', template: "<mat-card class=\"list-view-form-record\" *ngIf=\"loaded\">\r\n <mat-card-content>\r\n \r\n\r\n <div class=\"row\">\r\n <div class=\"col-sm-12 col-md-3
|
|
152
|
+
args: [{ selector: 'graphs', template: "<mat-card class=\"list-view-form-record\" *ngIf=\"loaded\">\r\n <mat-card-content>\r\n \r\n\r\n <div class=\"row\">\r\n <div class=\"col-sm-12 col-md-3\">\r\n <tmw-datetimepicker class=\"date\" [placeholder]=\"'Periodo inizio'\" [label]=\"'Periodo inizio'\"\r\n [(ngModelInput)]=\"minperiod\"\r\n [pickerMode]=\"modes.DATEPICKER\" [outputFormat]=\"'DD/MM/YYYY'\" [showSeconds]=\"false\">\r\n </tmw-datetimepicker>\r\n </div>\r\n <div class=\"col-sm-12 col-md-3\">\r\n <tmw-datetimepicker class=\"date\" [placeholder]=\"'Periodo fine'\" [label]=\"'Periodo fine'\"\r\n [(ngModelInput)]=\"maxperiod\"\r\n [pickerMode]=\"modes.DATEPICKER\" [outputFormat]=\"'DD/MM/YYYY'\" [showSeconds]=\"false\">\r\n </tmw-datetimepicker>\r\n </div> \r\n <div class=\"col-sm-12 col-md-3 mt-2\">\r\n <eqp-select [arrayData]=\"fields\" [(ngModelInput)]=\"selectedFields\" [placeholder]=\"'Selezione dei campi'\"\r\n [arrayKeyProperty]=\"'Description'\" [arrayValueProperty]=\"'Description'\" [isMultiSelect]=\"true\" class=\"eqp-form-field\">\r\n </eqp-select>\r\n </div> \r\n <div class=\"col-sm-12 col-md-3 mt-2\">\r\n <button\r\n [disabled]=\"selectedFields == null || selectedFields.length == 0\"\r\n class=\"btn btn-graph-generate button-next me-2\"\r\n mat-raised-button\r\n color=\"primary\"\r\n (click)=\"generateGraph()\"\r\n >\r\n Genera\r\n </button>\r\n </div> \r\n </div>\r\n <div class=\"generation_box\" *ngIf=\"generated\">\r\n <div class=\"row\">\r\n <div class=\"col-3\">\r\n <div class=\"generation_options\" *ngFor=\"let selectedField of selectedGeneratedFields\">\r\n <mat-checkbox class=\"mr-2\" [(ngModel)]=\"selectedField.Visible\">\r\n {{selectedField.Description}}\r\n </mat-checkbox>\r\n </div>\r\n </div>\r\n <div class=\"col-9\">\r\n <div class=\"generation_graph\" *ngFor=\"let selectedField of selectedGeneratedFields\">\r\n <div class=\"generation_divider\" [hidden]=\"!selectedField.Visible\">\r\n <graph [data]=\"selectedField.Coords\" [title]=\"selectedField.Description\"></graph>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n \r\n </mat-card-content>\r\n <mat-card-footer>\r\n </mat-card-footer>\r\n </mat-card>", styles: [".btn-graph-generate{height:56px;width:100%}.generation_box .generation_divider{margin-bottom:10px;padding-bottom:10px;border-bottom:2px solid black;width:100%;height:600px}.generation_box .generation_divider>*{width:100%;height:400px}\n"] }]
|
|
153
153
|
}], ctorParameters: function () { return [{ type: i1.UtilityHelperService }, { type: i2.DatePipe }]; }, propDecorators: { configurations: [{
|
|
154
154
|
type: Input
|
|
155
155
|
}], endPointConfiguration: [{
|
|
@@ -161,4 +161,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
161
161
|
}], form: [{
|
|
162
162
|
type: Input
|
|
163
163
|
}] } });
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1keW5hbWljLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvcHJpdmF0ZS9ncmFwaHMvZ3JhcGhzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1keW5hbWljLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvcHJpdmF0ZS9ncmFwaHMvZ3JhcGhzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR3pELE9BQU8sRUFBNkMsYUFBYSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFdkgsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUdqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFaEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7Ozs7O0FBT3BELE1BQU0sT0FBTyxlQUFlO0lBOEIxQixZQUNVLG9CQUEwQyxFQUMxQyxRQUFrQjtRQURsQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLGFBQVEsR0FBUixRQUFRLENBQVU7UUEzQm5CLFdBQU0sR0FBVyxJQUFJLENBQUMsQ0FBQyxVQUFVO1FBQ2pDLFNBQUksR0FBUyxJQUFJLENBQUMsQ0FBQyxpQkFBaUI7UUFJN0MsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBRTNCLGNBQVMsR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzdCLGNBQVMsR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBSTdCLFdBQU0sR0FBc0IsSUFBSSxLQUFLLEVBQWMsQ0FB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LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybSB9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvZm9ybS5tb2RlbFwiO1xyXG5pbXBvcnQgeyBEeW5hbWljTW9kdWxlQ29tcGlsZUNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9keW5hbWljTW9kdWxlQ29tcGlsZUNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IEVuZFBvaW50Q29uZmlndXJhdGlvbiwgRW5kUG9pbnREYXRhUGFyYW1zLCBQYXJhbVR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2VuZFBvaW50Q29uZmlndXJhdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29vcmRzLCBHcmFwaEZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dyYXBoLm1vZGVsJztcclxuaW1wb3J0IHsgVXRpbGl0eUhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91dGlsaXR5SGVscGVyLnNlcnZpY2VzJztcclxuaW1wb3J0IHsgRHluUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3JlY29yZC5tb2RlbCc7XHJcbmltcG9ydCB7IEZpZWxkVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvYmFzZUZpZWxkLm1vZGVsJztcclxuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNb2RlRW51bSwgVGltZVR5cGVFbnVtIH0gZnJvbSAndG13LXBpY2tlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2dyYXBocycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dyYXBocy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ3JhcGhzLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEdyYXBoc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIGNvbmZpZ3VyYXRpb25zOiBEeW5hbWljTW9kdWxlQ29tcGlsZUNvbmZpZztcclxuICBASW5wdXQoKSBlbmRQb2ludENvbmZpZ3VyYXRpb246IEVuZFBvaW50Q29uZmlndXJhdGlvbjtcclxuICBASW5wdXQoKSB1c2VySUQ6IHN0cmluZztcclxuICBASW5wdXQoKSBmb3JtSUQ6IHN0cmluZyA9IG51bGw7IC8vIHByZXZpZXdcclxuICBASW5wdXQoKSBmb3JtOiBGb3JtID0gbnVsbDsgLy8gcHJldmlldyBjb25maWdcclxuXHJcbiAgZmllbGRGb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXA7XHJcblxyXG4gIGxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGdlbmVyYXRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBtaW5wZXJpb2Q6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIG1heHBlcmlvZDogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgbWlucGVyaW9kUzogc3RyaW5nO1xyXG4gIG1heHBlcmlvZFM6IHN0cmluZztcclxuXHJcbiAgZmllbGRzOiBBcnJheTxHcmFwaEZpZWxkPiA9IG5ldyBBcnJheTxHcmFwaEZpZWxkPigpO1xyXG4gIHNlbGVjdGVkRmllbGRzOiBBcnJheTxHcmFwaEZpZWxkPjtcclxuICBzZWxlY3RlZEdlbmVyYXRlZEZpZWxkczogQXJyYXk8R3JhcGhGaWVsZD47XHJcblxyXG4gIGFuc3dlcnM6IEFycmF5PER5blJlY29yZD4gPSBudWxsO1xyXG4gIGVsaWdpYmxlQW5zd2VyczogQXJyYXk8RHluUmVjb3JkPiA9IG51bGw7XHJcblxyXG4gIC8vIFRNVy1QSUNLRVJcclxuICBtb2RlcyA9IE1vZGVFbnVtXHJcbiAgdGltZVR5cGUgPSBUaW1lVHlwZUVudW1cclxuICBtb2RlOiBNb2RlRW51bTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHV0aWxpdHlIZWxwZXJTZXJ2aWNlOiBVdGlsaXR5SGVscGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlXHJcbiAgICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuZm9ybUlEICE9IG51bGwpe1xyXG4gICAgICB0aGlzLmdldEZvcm1CeUlEKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmxvYWRlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIHJlY3VwZXJhcmUgdHV0dGkgaSByZWNvcmQgc2FsdmF0aSBwZXIgdW5hIHBhcnRpY29sYXJlIEZvcm0uXHJcbiAgICogTGEgY2hpYW1hdGEgdmllbmUgZWZmZXR0dWF0YSBzb2xvIHNlIMOoIHN0YXRvIGNvbmZpZ3VyYXRvIGwnZW5kUG9pbnQgZGEgdXNhcmUuXHJcbiAgICovXHJcbiAgZ2V0Rm9ybUJ5SUQoKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuZm9ybUlEICYmXHJcbiAgICAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uICYmXHJcbiAgICAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uLkZvcm1zICYmXHJcbiAgICAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uLkZvcm1zLkdldEJ5SURFbmRQb2ludFxyXG4gICAgKSB7XHJcbiAgICAgIGNvbnN0IGR5bmFtaWNNb2R1bGVQYXJhbXM6IEFycmF5PEVuZFBvaW50RGF0YVBhcmFtcz4gPVxyXG4gICAgICAgIG5ldyBBcnJheTxFbmRQb2ludERhdGFQYXJhbXM+KCk7XHJcbiAgICAgIGR5bmFtaWNNb2R1bGVQYXJhbXMucHVzaCh7XHJcbiAgICAgICAgUGFyYW1OYW1lOiBcImlkXCIsXHJcbiAgICAgICAgUGFyYW1WYWx1ZTogdGhpcy5mb3JtSUQsXHJcbiAgICAgICAgUGFyYW1UeXBlOiBQYXJhbVR5cGVFbnVtW1wiUXVlcnkgcGFyYW1cIl0sXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnV0aWxpdHlIZWxwZXJTZXJ2aWNlLlJ1bkVuZFBvaW50Q2FsbChcclxuICAgICAgICB0aGlzLmVuZFBvaW50Q29uZmlndXJhdGlvbi5Gb3Jtcy5HZXRCeUlERW5kUG9pbnQsXHJcbiAgICAgICAgZHluYW1pY01vZHVsZVBhcmFtcyxcclxuICAgICAgICAocmVzOiBGb3JtKSA9PiB7XHJcblxyXG4gICAgICAgICAgdGhpcy5mb3JtID0gcmVzO1xyXG5cclxuICAgICAgICAgIHRoaXMuZm9ybS5GaWVsZHMuZmlsdGVyKHggPT4geC5GaWVsZFR5cGUgPT0gRmllbGRUeXBlRW51bVsnQ2FtcG8gbnVtZXJpY28nXSkuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuICAgICAgICAgICAgdmFyIGdyYXBoRmllbGQ6IEdyYXBoRmllbGQgPSBuZXcgR3JhcGhGaWVsZCgpO1xyXG4gICAgICAgICAgICBncmFwaEZpZWxkLk5hbWUgPSBmaWVsZC5MYWJlbDtcclxuICAgICAgICAgICAgZ3JhcGhGaWVsZC5EZXNjcmlwdGlvbiA9IGZpZWxkLkRlc2NyaXB0aW9uO1xyXG4gICAgICAgICAgICB0aGlzLmZpZWxkcy5wdXNoKGdyYXBoRmllbGQpO1xyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgdGhpcy5nZXRSZWNvcmRzQnlGb3JtSUQoKTtcclxuXHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgZ2V0UmVjb3Jkc0J5Rm9ybUlEKCkge1xyXG4gICAgdmFyIGR5bmFtaWNNb2R1bGVQYXJhbXMgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICBQYXJhbU5hbWU6IFwiRW50SURcIixcclxuICAgICAgICBQYXJhbVZhbHVlOiB0aGlzLmZvcm0uSUQsXHJcbiAgICAgICAgUGFyYW1UeXBlOiBQYXJhbVR5cGVFbnVtW1wiUXVlcnkgcGFyYW1cIl0sXHJcbiAgICAgIH0sXHJcbiAgICBdO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5jb25maWd1cmF0aW9ucy51c2VySUQgPT0gbnVsbCAmJlxyXG4gICAgICB0aGlzLmVuZFBvaW50Q29uZmlndXJhdGlvbiAmJlxyXG4gICAgICB0aGlzLmVuZFBvaW50Q29uZmlndXJhdGlvbi5SZWNvcmRzICYmXHJcbiAgICAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uLlJlY29yZHMuR2V0QnlGb3JtSURFbmRQb2ludFxyXG4gICAgKSB7XHJcbiAgICAgIC8vIHNlIG5vbiBjb25vc2NvIGwndXRlbnRlXHJcbiAgICAgIHRoaXMudXRpbGl0eUhlbHBlclNlcnZpY2UuUnVuRW5kUG9pbnRDYWxsKFxyXG4gICAgICAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uLlJlY29yZHMuR2V0QnlGb3JtSURFbmRQb2ludCxcclxuICAgICAgICBkeW5hbWljTW9kdWxlUGFyYW1zLFxyXG4gICAgICAgIChyZXM6IEFycmF5PER5blJlY29yZD4pID0+IHtcclxuICAgICAgICAgIHRoaXMuYW5zd2VycyA9IHJlcztcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICB0aGlzLmNvbmZpZ3VyYXRpb25zLnVzZXJJRCAhPSBudWxsICYmXHJcbiAgICAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uICYmXHJcbiAgICAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uLlJlY29yZHMgJiZcclxuICAgICAgdGhpcy5lbmRQb2ludENvbmZpZ3VyYXRpb24uUmVjb3Jkcy5HZXRBbGxCeUVudEFuZFVzZXJJREVuZFBvaW50XHJcbiAgICApIHtcclxuICAgIC8vIHNlIGNvbm9zY28gbCd1dGVudGVcclxuICAgICAgbGV0IGR5bmFtaWNNb2R1bGVQYXJhbXMgPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgUGFyYW1OYW1lOiBcIkVudElEXCIsXHJcbiAgICAgICAgICBQYXJhbVZhbHVlOiB0aGlzLmZvcm0uSUQsXHJcbiAgICAgICAgICBQYXJhbVR5cGU6IFBhcmFtVHlwZUVudW1bXCJRdWVyeSBwYXJhbVwiXSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIFBhcmFtTmFtZTogXCJVc2VySURcIixcclxuICAgICAgICAgIFBhcmFtVmFsdWU6IHRoaXMuY29uZmlndXJhdGlvbnMudXNlcklELFxyXG4gICAgICAgICAgUGFyYW1UeXBlOiBQYXJhbVR5cGVFbnVtW1wiUXVlcnkgcGFyYW1cIl0sXHJcbiAgICAgICAgfSxcclxuICAgICAgXTtcclxuXHJcbiAgICAgIGF3YWl0IHRoaXMudXRpbGl0eUhlbHBlclNlcnZpY2UuUnVuRW5kUG9pbnRDYWxsKFxyXG4gICAgICAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uLlJlY29yZHMuR2V0QWxsQnlFbnRBbmRVc2VySURFbmRQb2ludCxcclxuICAgICAgICBkeW5hbWljTW9kdWxlUGFyYW1zLFxyXG4gICAgICAgIChyZXM6IEFycmF5PER5blJlY29yZD4pID0+IHtcclxuICAgICAgICAgIHRoaXMuYW5zd2VycyA9IHJlcztcclxuICAgICAgICAgIHRoaXMubG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiY29udHJvbGxhcmUgbGUgY29uZmlndXJhemlvbmkgZGVsbCdlbmRwb2ludFwiKTtcclxuICAgIH1cclxuICB9ICBcclxuXHJcbiAgZ2VuZXJhdGVHcmFwaCgpe1xyXG4gICAgdGhpcy5nZW5lcmF0ZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuc2VsZWN0ZWRHZW5lcmF0ZWRGaWVsZHMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuc2VsZWN0ZWRGaWVsZHMpKTtcclxuICAgIHRoaXMuZ2V0RWxpZ2libGVBbnN3ZXJzKCk7XHJcbiAgfVxyXG5cclxuICBnZXRFbGlnaWJsZUFuc3dlcnMoKXtcclxuICAgIC8vIEF6emVybyBsZSBjb29yZGluYXRlXHJcbiAgICB0aGlzLnNlbGVjdGVkR2VuZXJhdGVkRmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7IGZpZWxkLkNvb3JkcyA9IG5ldyBBcnJheTxDb29yZHM+KCk7IH0pO1xyXG4gICAgdGhpcy5lbGlnaWJsZUFuc3dlcnMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuYW5zd2VycykpO1xyXG5cclxuICAgIHRoaXMubWlucGVyaW9kUyA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHRoaXMubWlucGVyaW9kLFwieXl5eS1NTS1kZFwiKTtcclxuICAgIHRoaXMubWF4cGVyaW9kUyA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHRoaXMubWF4cGVyaW9kLFwieXl5eS1NTS1kZFwiKTtcclxuXHJcbiAgICAvLyBGaWx0cm8gbWluaW1vIHBlcmlvZG9cclxuICAgIGlmICh0aGlzLm1pbnBlcmlvZCAhPSBudWxsKXtcclxuICAgICAgdGhpcy5lbGlnaWJsZUFuc3dlcnMgPSB0aGlzLmVsaWdpYmxlQW5zd2Vycy5maWx0ZXIoeCA9PiB4LkFuc3dlckRhdGUuc3BsaXQoXCJUXCIpWzBdID49IHRoaXMubWlucGVyaW9kUyk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRmlsdHJvIG1hc3NpbW8gcGVyaW9kb1xyXG4gICAgaWYgKHRoaXMubWF4cGVyaW9kICE9IG51bGwpe1xyXG4gICAgICB0aGlzLmVsaWdpYmxlQW5zd2VycyA9IHRoaXMuZWxpZ2libGVBbnN3ZXJzLmZpbHRlcih4ID0+IHguQW5zd2VyRGF0ZS5zcGxpdChcIlRcIilbMF0gPD0gdGhpcy5tYXhwZXJpb2RTKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBJbnNlcmlzY28gaSBkYXRpIHRyb3ZhdGlcclxuICAgIHRoaXMuZWxpZ2libGVBbnN3ZXJzLmZvckVhY2goKGFuc3dlcikgPT4ge1xyXG4gICAgICB2YXIgYW5zd2VydmFsdWVzID0gSlNPTi5wYXJzZShhbnN3ZXIuU2VyaWFsaXplZFZhbHVlcyk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRHZW5lcmF0ZWRGaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuICAgICAgICBpZiAoYW5zd2VydmFsdWVzW2ZpZWxkLk5hbWVdICE9IG51bGwpe1xyXG4gICAgICAgICAgdmFyIGNvb3JkczogQ29vcmRzID0gbmV3IENvb3JkcygpO1xyXG4gICAgICAgICAgY29vcmRzLnggPSBuZXcgRGF0ZShhbnN3ZXIuQW5zd2VyRGF0ZSk7XHJcbiAgICAgICAgICBjb29yZHMueSA9IHBhcnNlRmxvYXQoYW5zd2VydmFsdWVzW2ZpZWxkLk5hbWVdKTtcclxuICAgICAgICAgIGNvb3Jkcy5sYWJlbCA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGNvb3Jkcy54LFwiZGQvTU0gSEg6bW1cIik7XHJcbiAgICAgICAgICBjb29yZHMubmFtZSA9IGNvb3Jkcy5sYWJlbDtcclxuICAgICAgICAgIGZpZWxkLkNvb3Jkcy5wdXNoKGNvb3Jkcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4geyB0aGlzLmdlbmVyYXRlZCA9IHRydWU7IH0sIDEwMDApO1xyXG5cclxuICB9XHJcblxyXG59XHJcbiIsIjxtYXQtY2FyZCBjbGFzcz1cImxpc3Qtdmlldy1mb3JtLXJlY29yZFwiICpuZ0lmPVwibG9hZGVkXCI+XHJcbiAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgXHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMiBjb2wtbWQtMyBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICA8dG13LWRhdGV0aW1lcGlja2VyIGNsYXNzPVwiZGF0ZVwiIFtwbGFjZWhvbGRlcl09XCInUGVyaW9kbyBpbml6aW8nXCIgW2xhYmVsXT1cIidQZXJpb2RvIGluaXppbydcIlxyXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbElucHV0KV09XCJtaW5wZXJpb2RcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwaWNrZXJNb2RlXT1cIm1vZGVzLkRBVEVQSUNLRVJcIiBbb3V0cHV0Rm9ybWF0XT1cIidERC9NTS9ZWVlZJ1wiIFtzaG93U2Vjb25kc109XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgPC90bXctZGF0ZXRpbWVwaWNrZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLXNtLTEyIGNvbC1tZC0zIG10LTJcIj5cclxuICAgICAgICAgICAgICAgIDx0bXctZGF0ZXRpbWVwaWNrZXIgY2xhc3M9XCJkYXRlXCIgW3BsYWNlaG9sZGVyXT1cIidQZXJpb2RvIGZpbmUnXCIgW2xhYmVsXT1cIidQZXJpb2RvIGZpbmUnXCJcclxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWxJbnB1dCldPVwibWF4cGVyaW9kXCJcclxuICAgICAgICAgICAgICAgICAgICBbcGlja2VyTW9kZV09XCJtb2Rlcy5EQVRFUElDS0VSXCIgW291dHB1dEZvcm1hdF09XCInREQvTU0vWVlZWSdcIiBbc2hvd1NlY29uZHNdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgIDwvdG13LWRhdGV0aW1lcGlja2VyPlxyXG4gICAgICAgICAgICA8L2Rpdj4gICAgICAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTIgY29sLW1kLTMgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgPGVxcC1zZWxlY3QgW2FycmF5RGF0YV09XCJmaWVsZHNcIiBbKG5nTW9kZWxJbnB1dCldPVwic2VsZWN0ZWRGaWVsZHNcIiBbcGxhY2Vob2xkZXJdPVwiJ1NlbGV6aW9uZSBkZWkgY2FtcGknXCJcclxuICAgICAgICAgICAgICAgIFthcnJheUtleVByb3BlcnR5XT1cIidEZXNjcmlwdGlvbidcIiBbYXJyYXlWYWx1ZVByb3BlcnR5XT1cIidEZXNjcmlwdGlvbidcIiBbaXNNdWx0aVNlbGVjdF09XCJ0cnVlXCIgY2xhc3M9XCJlcXAtZm9ybS1maWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPC9lcXAtc2VsZWN0PlxyXG4gICAgICAgICAgICA8L2Rpdj4gICAgICAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtc20tMTIgY29sLW1kLTMgbXQtMlwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInNlbGVjdGVkRmllbGRzID09IG51bGwgfHwgc2VsZWN0ZWRGaWVsZHMubGVuZ3RoID09IDBcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWdyYXBoLWdlbmVyYXRlIGJ1dHRvbi1uZXh0IG1lLTJcIlxyXG4gICAgICAgICAgICAgICAgbWF0LXJhaXNlZC1idXR0b25cclxuICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZ2VuZXJhdGVHcmFwaCgpXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIEdlbmVyYVxyXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj4gICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImdlbmVyYXRpb25fYm94XCIgKm5nSWY9XCJnZW5lcmF0ZWRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImdlbmVyYXRpb25fb3B0aW9uc1wiICpuZ0Zvcj1cImxldCBzZWxlY3RlZEZpZWxkIG9mIHNlbGVjdGVkR2VuZXJhdGVkRmllbGRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtY2hlY2tib3ggY2xhc3M9XCJtci0yXCIgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEZpZWxkLlZpc2libGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3tzZWxlY3RlZEZpZWxkLkRlc2NyaXB0aW9ufX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ2VuZXJhdGlvbl9ncmFwaFwiICpuZ0Zvcj1cImxldCBzZWxlY3RlZEZpZWxkIG9mIHNlbGVjdGVkR2VuZXJhdGVkRmllbGRzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ2VuZXJhdGlvbl9kaXZpZGVyXCIgW2hpZGRlbl09XCIhc2VsZWN0ZWRGaWVsZC5WaXNpYmxlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGdyYXBoIFtkYXRhXT1cInNlbGVjdGVkRmllbGQuQ29vcmRzXCIgW3RpdGxlXT1cInNlbGVjdGVkRmllbGQuRGVzY3JpcHRpb25cIj48L2dyYXBoPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gIFxyXG4gIFxyXG4gICAgPC9tYXQtY2FyZC1jb250ZW50PlxyXG4gICAgPG1hdC1jYXJkLWZvb3Rlcj5cclxuICAgIDwvbWF0LWNhcmQtZm9vdGVyPlxyXG4gIDwvbWF0LWNhcmQ+Il19
|
|
164
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1keW5hbWljLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvcHJpdmF0ZS9ncmFwaHMvZ3JhcGhzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1keW5hbWljLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvcHJpdmF0ZS9ncmFwaHMvZ3JhcGhzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBR3pELE9BQU8sRUFBNkMsYUFBYSxFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFFdkgsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUdqRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFaEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUUsTUFBTSxZQUFZLENBQUM7Ozs7Ozs7Ozs7O0FBT3BELE1BQU0sT0FBTyxlQUFlO0lBOEIxQixZQUNVLG9CQUEwQyxFQUMxQyxRQUFrQjtRQURsQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLGFBQVEsR0FBUixRQUFRLENBQVU7UUEzQm5CLFdBQU0sR0FBVyxJQUFJLENBQUMsQ0FBQyxVQUFVO1FBQ2pDLFNBQUksR0FBUyxJQUFJLENBQUMsQ0FBQyxpQkFBaUI7UUFJN0MsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUN4QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBRTNCLGNBQVMsR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzdCLGNBQVMsR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBSTdCLFdBQU0sR0FBc0IsSUFBSSxLQUFLLEVBQWMsQ0FB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LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybSB9IGZyb20gXCIuLi8uLi8uLi9tb2RlbHMvZm9ybS5tb2RlbFwiO1xyXG5pbXBvcnQgeyBEeW5hbWljTW9kdWxlQ29tcGlsZUNvbmZpZyB9IGZyb20gJy4uLy4uLy4uL21vZGVscy9keW5hbWljTW9kdWxlQ29tcGlsZUNvbmZpZy5tb2RlbCc7XHJcbmltcG9ydCB7IEVuZFBvaW50Q29uZmlndXJhdGlvbiwgRW5kUG9pbnREYXRhUGFyYW1zLCBQYXJhbVR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2VuZFBvaW50Q29uZmlndXJhdGlvbi5tb2RlbCc7XHJcbmltcG9ydCB7IFVudHlwZWRGb3JtQnVpbGRlciwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgQ29vcmRzLCBHcmFwaEZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2dyYXBoLm1vZGVsJztcclxuaW1wb3J0IHsgVXRpbGl0eUhlbHBlclNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy91dGlsaXR5SGVscGVyLnNlcnZpY2VzJztcclxuaW1wb3J0IHsgRHluUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3JlY29yZC5tb2RlbCc7XHJcbmltcG9ydCB7IEZpZWxkVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMvYmFzZUZpZWxkLm1vZGVsJztcclxuaW1wb3J0IHsgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBNb2RlRW51bSwgVGltZVR5cGVFbnVtIH0gZnJvbSAndG13LXBpY2tlcic7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2dyYXBocycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2dyYXBocy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ3JhcGhzLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIEdyYXBoc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIGNvbmZpZ3VyYXRpb25zOiBEeW5hbWljTW9kdWxlQ29tcGlsZUNvbmZpZztcclxuICBASW5wdXQoKSBlbmRQb2ludENvbmZpZ3VyYXRpb246IEVuZFBvaW50Q29uZmlndXJhdGlvbjtcclxuICBASW5wdXQoKSB1c2VySUQ6IHN0cmluZztcclxuICBASW5wdXQoKSBmb3JtSUQ6IHN0cmluZyA9IG51bGw7IC8vIHByZXZpZXdcclxuICBASW5wdXQoKSBmb3JtOiBGb3JtID0gbnVsbDsgLy8gcHJldmlldyBjb25maWdcclxuXHJcbiAgZmllbGRGb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXA7XHJcblxyXG4gIGxvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGdlbmVyYXRlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBtaW5wZXJpb2Q6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gIG1heHBlcmlvZDogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgbWlucGVyaW9kUzogc3RyaW5nO1xyXG4gIG1heHBlcmlvZFM6IHN0cmluZztcclxuXHJcbiAgZmllbGRzOiBBcnJheTxHcmFwaEZpZWxkPiA9IG5ldyBBcnJheTxHcmFwaEZpZWxkPigpO1xyXG4gIHNlbGVjdGVkRmllbGRzOiBBcnJheTxHcmFwaEZpZWxkPjtcclxuICBzZWxlY3RlZEdlbmVyYXRlZEZpZWxkczogQXJyYXk8R3JhcGhGaWVsZD47XHJcblxyXG4gIGFuc3dlcnM6IEFycmF5PER5blJlY29yZD4gPSBudWxsO1xyXG4gIGVsaWdpYmxlQW5zd2VyczogQXJyYXk8RHluUmVjb3JkPiA9IG51bGw7XHJcblxyXG4gIC8vIFRNVy1QSUNLRVJcclxuICBtb2RlcyA9IE1vZGVFbnVtXHJcbiAgdGltZVR5cGUgPSBUaW1lVHlwZUVudW1cclxuICBtb2RlOiBNb2RlRW51bTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHV0aWxpdHlIZWxwZXJTZXJ2aWNlOiBVdGlsaXR5SGVscGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlXHJcbiAgICApIHt9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgaWYgKHRoaXMuZm9ybUlEICE9IG51bGwpe1xyXG4gICAgICB0aGlzLmdldEZvcm1CeUlEKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmxvYWRlZCA9IHRydWU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIHJlY3VwZXJhcmUgdHV0dGkgaSByZWNvcmQgc2FsdmF0aSBwZXIgdW5hIHBhcnRpY29sYXJlIEZvcm0uXHJcbiAgICogTGEgY2hpYW1hdGEgdmllbmUgZWZmZXR0dWF0YSBzb2xvIHNlIMOoIHN0YXRvIGNvbmZpZ3VyYXRvIGwnZW5kUG9pbnQgZGEgdXNhcmUuXHJcbiAgICovXHJcbiAgZ2V0Rm9ybUJ5SUQoKSB7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuZm9ybUlEICYmXHJcbiAgICAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uICYmXHJcbiAgICAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uLkZvcm1zICYmXHJcbiAgICAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uLkZvcm1zLkdldEJ5SURFbmRQb2ludFxyXG4gICAgKSB7XHJcbiAgICAgIGNvbnN0IGR5bmFtaWNNb2R1bGVQYXJhbXM6IEFycmF5PEVuZFBvaW50RGF0YVBhcmFtcz4gPVxyXG4gICAgICAgIG5ldyBBcnJheTxFbmRQb2ludERhdGFQYXJhbXM+KCk7XHJcbiAgICAgIGR5bmFtaWNNb2R1bGVQYXJhbXMucHVzaCh7XHJcbiAgICAgICAgUGFyYW1OYW1lOiBcImlkXCIsXHJcbiAgICAgICAgUGFyYW1WYWx1ZTogdGhpcy5mb3JtSUQsXHJcbiAgICAgICAgUGFyYW1UeXBlOiBQYXJhbVR5cGVFbnVtW1wiUXVlcnkgcGFyYW1cIl0sXHJcbiAgICAgIH0pO1xyXG4gICAgICB0aGlzLnV0aWxpdHlIZWxwZXJTZXJ2aWNlLlJ1bkVuZFBvaW50Q2FsbChcclxuICAgICAgICB0aGlzLmVuZFBvaW50Q29uZmlndXJhdGlvbi5Gb3Jtcy5HZXRCeUlERW5kUG9pbnQsXHJcbiAgICAgICAgZHluYW1pY01vZHVsZVBhcmFtcyxcclxuICAgICAgICAocmVzOiBGb3JtKSA9PiB7XHJcblxyXG4gICAgICAgICAgdGhpcy5mb3JtID0gcmVzO1xyXG5cclxuICAgICAgICAgIHRoaXMuZm9ybS5GaWVsZHMuZmlsdGVyKHggPT4geC5GaWVsZFR5cGUgPT0gRmllbGRUeXBlRW51bVsnQ2FtcG8gbnVtZXJpY28nXSkuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuICAgICAgICAgICAgdmFyIGdyYXBoRmllbGQ6IEdyYXBoRmllbGQgPSBuZXcgR3JhcGhGaWVsZCgpO1xyXG4gICAgICAgICAgICBncmFwaEZpZWxkLk5hbWUgPSBmaWVsZC5MYWJlbDtcclxuICAgICAgICAgICAgZ3JhcGhGaWVsZC5EZXNjcmlwdGlvbiA9IGZpZWxkLkRlc2NyaXB0aW9uO1xyXG4gICAgICAgICAgICB0aGlzLmZpZWxkcy5wdXNoKGdyYXBoRmllbGQpO1xyXG4gICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgICAgdGhpcy5nZXRSZWNvcmRzQnlGb3JtSUQoKTtcclxuXHJcbiAgICAgICAgfSxcclxuICAgICAgICAoZXJyKSA9PiB7XHJcbiAgICAgICAgfVxyXG4gICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgYXN5bmMgZ2V0UmVjb3Jkc0J5Rm9ybUlEKCkge1xyXG4gICAgdmFyIGR5bmFtaWNNb2R1bGVQYXJhbXMgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICBQYXJhbU5hbWU6IFwiRW50SURcIixcclxuICAgICAgICBQYXJhbVZhbHVlOiB0aGlzLmZvcm0uSUQsXHJcbiAgICAgICAgUGFyYW1UeXBlOiBQYXJhbVR5cGVFbnVtW1wiUXVlcnkgcGFyYW1cIl0sXHJcbiAgICAgIH0sXHJcbiAgICBdO1xyXG5cclxuICAgIGlmIChcclxuICAgICAgdGhpcy5jb25maWd1cmF0aW9ucy51c2VySUQgPT0gbnVsbCAmJlxyXG4gICAgICB0aGlzLmVuZFBvaW50Q29uZmlndXJhdGlvbiAmJlxyXG4gICAgICB0aGlzLmVuZFBvaW50Q29uZmlndXJhdGlvbi5SZWNvcmRzICYmXHJcbiAgICAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uLlJlY29yZHMuR2V0QnlGb3JtSURFbmRQb2ludFxyXG4gICAgKSB7XHJcbiAgICAgIC8vIHNlIG5vbiBjb25vc2NvIGwndXRlbnRlXHJcbiAgICAgIHRoaXMudXRpbGl0eUhlbHBlclNlcnZpY2UuUnVuRW5kUG9pbnRDYWxsKFxyXG4gICAgICAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uLlJlY29yZHMuR2V0QnlGb3JtSURFbmRQb2ludCxcclxuICAgICAgICBkeW5hbWljTW9kdWxlUGFyYW1zLFxyXG4gICAgICAgIChyZXM6IEFycmF5PER5blJlY29yZD4pID0+IHtcclxuICAgICAgICAgIHRoaXMuYW5zd2VycyA9IHJlcztcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICB0aGlzLmNvbmZpZ3VyYXRpb25zLnVzZXJJRCAhPSBudWxsICYmXHJcbiAgICAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uICYmXHJcbiAgICAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uLlJlY29yZHMgJiZcclxuICAgICAgdGhpcy5lbmRQb2ludENvbmZpZ3VyYXRpb24uUmVjb3Jkcy5HZXRBbGxCeUVudEFuZFVzZXJJREVuZFBvaW50XHJcbiAgICApIHtcclxuICAgIC8vIHNlIGNvbm9zY28gbCd1dGVudGVcclxuICAgICAgbGV0IGR5bmFtaWNNb2R1bGVQYXJhbXMgPSBbXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgUGFyYW1OYW1lOiBcIkVudElEXCIsXHJcbiAgICAgICAgICBQYXJhbVZhbHVlOiB0aGlzLmZvcm0uSUQsXHJcbiAgICAgICAgICBQYXJhbVR5cGU6IFBhcmFtVHlwZUVudW1bXCJRdWVyeSBwYXJhbVwiXSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIFBhcmFtTmFtZTogXCJVc2VySURcIixcclxuICAgICAgICAgIFBhcmFtVmFsdWU6IHRoaXMuY29uZmlndXJhdGlvbnMudXNlcklELFxyXG4gICAgICAgICAgUGFyYW1UeXBlOiBQYXJhbVR5cGVFbnVtW1wiUXVlcnkgcGFyYW1cIl0sXHJcbiAgICAgICAgfSxcclxuICAgICAgXTtcclxuXHJcbiAgICAgIGF3YWl0IHRoaXMudXRpbGl0eUhlbHBlclNlcnZpY2UuUnVuRW5kUG9pbnRDYWxsKFxyXG4gICAgICAgIHRoaXMuZW5kUG9pbnRDb25maWd1cmF0aW9uLlJlY29yZHMuR2V0QWxsQnlFbnRBbmRVc2VySURFbmRQb2ludCxcclxuICAgICAgICBkeW5hbWljTW9kdWxlUGFyYW1zLFxyXG4gICAgICAgIChyZXM6IEFycmF5PER5blJlY29yZD4pID0+IHtcclxuICAgICAgICAgIHRoaXMuYW5zd2VycyA9IHJlcztcclxuICAgICAgICAgIHRoaXMubG9hZGVkID0gdHJ1ZTtcclxuICAgICAgICB9XHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zb2xlLmVycm9yKFwiY29udHJvbGxhcmUgbGUgY29uZmlndXJhemlvbmkgZGVsbCdlbmRwb2ludFwiKTtcclxuICAgIH1cclxuICB9ICBcclxuXHJcbiAgZ2VuZXJhdGVHcmFwaCgpe1xyXG4gICAgdGhpcy5nZW5lcmF0ZWQgPSBmYWxzZTtcclxuICAgIHRoaXMuc2VsZWN0ZWRHZW5lcmF0ZWRGaWVsZHMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuc2VsZWN0ZWRGaWVsZHMpKTtcclxuICAgIHRoaXMuZ2V0RWxpZ2libGVBbnN3ZXJzKCk7XHJcbiAgfVxyXG5cclxuICBnZXRFbGlnaWJsZUFuc3dlcnMoKXtcclxuICAgIC8vIEF6emVybyBsZSBjb29yZGluYXRlXHJcbiAgICB0aGlzLnNlbGVjdGVkR2VuZXJhdGVkRmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7IGZpZWxkLkNvb3JkcyA9IG5ldyBBcnJheTxDb29yZHM+KCk7IH0pO1xyXG4gICAgdGhpcy5lbGlnaWJsZUFuc3dlcnMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KHRoaXMuYW5zd2VycykpO1xyXG5cclxuICAgIHRoaXMubWlucGVyaW9kUyA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHRoaXMubWlucGVyaW9kLFwieXl5eS1NTS1kZFwiKTtcclxuICAgIHRoaXMubWF4cGVyaW9kUyA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHRoaXMubWF4cGVyaW9kLFwieXl5eS1NTS1kZFwiKTtcclxuXHJcbiAgICAvLyBGaWx0cm8gbWluaW1vIHBlcmlvZG9cclxuICAgIGlmICh0aGlzLm1pbnBlcmlvZCAhPSBudWxsKXtcclxuICAgICAgdGhpcy5lbGlnaWJsZUFuc3dlcnMgPSB0aGlzLmVsaWdpYmxlQW5zd2Vycy5maWx0ZXIoeCA9PiB4LkFuc3dlckRhdGUuc3BsaXQoXCJUXCIpWzBdID49IHRoaXMubWlucGVyaW9kUyk7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gRmlsdHJvIG1hc3NpbW8gcGVyaW9kb1xyXG4gICAgaWYgKHRoaXMubWF4cGVyaW9kICE9IG51bGwpe1xyXG4gICAgICB0aGlzLmVsaWdpYmxlQW5zd2VycyA9IHRoaXMuZWxpZ2libGVBbnN3ZXJzLmZpbHRlcih4ID0+IHguQW5zd2VyRGF0ZS5zcGxpdChcIlRcIilbMF0gPD0gdGhpcy5tYXhwZXJpb2RTKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBJbnNlcmlzY28gaSBkYXRpIHRyb3ZhdGlcclxuICAgIHRoaXMuZWxpZ2libGVBbnN3ZXJzLmZvckVhY2goKGFuc3dlcikgPT4ge1xyXG4gICAgICB2YXIgYW5zd2VydmFsdWVzID0gSlNPTi5wYXJzZShhbnN3ZXIuU2VyaWFsaXplZFZhbHVlcyk7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRHZW5lcmF0ZWRGaWVsZHMuZm9yRWFjaCgoZmllbGQpID0+IHtcclxuICAgICAgICBpZiAoYW5zd2VydmFsdWVzW2ZpZWxkLk5hbWVdICE9IG51bGwpe1xyXG4gICAgICAgICAgdmFyIGNvb3JkczogQ29vcmRzID0gbmV3IENvb3JkcygpO1xyXG4gICAgICAgICAgY29vcmRzLnggPSBuZXcgRGF0ZShhbnN3ZXIuQW5zd2VyRGF0ZSk7XHJcbiAgICAgICAgICBjb29yZHMueSA9IHBhcnNlRmxvYXQoYW5zd2VydmFsdWVzW2ZpZWxkLk5hbWVdKTtcclxuICAgICAgICAgIGNvb3Jkcy5sYWJlbCA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGNvb3Jkcy54LFwiZGQvTU0gSEg6bW1cIik7XHJcbiAgICAgICAgICBjb29yZHMubmFtZSA9IGNvb3Jkcy5sYWJlbDtcclxuICAgICAgICAgIGZpZWxkLkNvb3Jkcy5wdXNoKGNvb3Jkcyk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH0pO1xyXG5cclxuICAgIHNldFRpbWVvdXQoKCkgPT4geyB0aGlzLmdlbmVyYXRlZCA9IHRydWU7IH0sIDEwMDApO1xyXG5cclxuICB9XHJcblxyXG59XHJcbiIsIjxtYXQtY2FyZCBjbGFzcz1cImxpc3Qtdmlldy1mb3JtLXJlY29yZFwiICpuZ0lmPVwibG9hZGVkXCI+XHJcbiAgICA8bWF0LWNhcmQtY29udGVudD5cclxuICAgICAgXHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMiBjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgPHRtdy1kYXRldGltZXBpY2tlciBjbGFzcz1cImRhdGVcIiBbcGxhY2Vob2xkZXJdPVwiJ1BlcmlvZG8gaW5pemlvJ1wiIFtsYWJlbF09XCInUGVyaW9kbyBpbml6aW8nXCJcclxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWxJbnB1dCldPVwibWlucGVyaW9kXCJcclxuICAgICAgICAgICAgICAgICAgICBbcGlja2VyTW9kZV09XCJtb2Rlcy5EQVRFUElDS0VSXCIgW291dHB1dEZvcm1hdF09XCInREQvTU0vWVlZWSdcIiBbc2hvd1NlY29uZHNdPVwiZmFsc2VcIj5cclxuICAgICAgICAgICAgICAgIDwvdG13LWRhdGV0aW1lcGlja2VyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMiBjb2wtbWQtM1wiPlxyXG4gICAgICAgICAgICAgICAgPHRtdy1kYXRldGltZXBpY2tlciBjbGFzcz1cImRhdGVcIiBbcGxhY2Vob2xkZXJdPVwiJ1BlcmlvZG8gZmluZSdcIiBbbGFiZWxdPVwiJ1BlcmlvZG8gZmluZSdcIlxyXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbElucHV0KV09XCJtYXhwZXJpb2RcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwaWNrZXJNb2RlXT1cIm1vZGVzLkRBVEVQSUNLRVJcIiBbb3V0cHV0Rm9ybWF0XT1cIidERC9NTS9ZWVlZJ1wiIFtzaG93U2Vjb25kc109XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICAgICAgPC90bXctZGF0ZXRpbWVwaWNrZXI+XHJcbiAgICAgICAgICAgIDwvZGl2PiAgICAgICBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMiBjb2wtbWQtMyBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICA8ZXFwLXNlbGVjdCBbYXJyYXlEYXRhXT1cImZpZWxkc1wiIFsobmdNb2RlbElucHV0KV09XCJzZWxlY3RlZEZpZWxkc1wiIFtwbGFjZWhvbGRlcl09XCInU2VsZXppb25lIGRlaSBjYW1waSdcIlxyXG4gICAgICAgICAgICAgICAgW2FycmF5S2V5UHJvcGVydHldPVwiJ0Rlc2NyaXB0aW9uJ1wiIFthcnJheVZhbHVlUHJvcGVydHldPVwiJ0Rlc2NyaXB0aW9uJ1wiIFtpc011bHRpU2VsZWN0XT1cInRydWVcIiBjbGFzcz1cImVxcC1mb3JtLWZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8L2VxcC1zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PiAgICAgICBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMiBjb2wtbWQtMyBtdC0yXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic2VsZWN0ZWRGaWVsZHMgPT0gbnVsbCB8fCBzZWxlY3RlZEZpZWxkcy5sZW5ndGggPT0gMFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZ3JhcGgtZ2VuZXJhdGUgYnV0dG9uLW5leHQgbWUtMlwiXHJcbiAgICAgICAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJnZW5lcmF0ZUdyYXBoKClcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgR2VuZXJhXHJcbiAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ2VuZXJhdGlvbl9ib3hcIiAqbmdJZj1cImdlbmVyYXRlZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ2VuZXJhdGlvbl9vcHRpb25zXCIgKm5nRm9yPVwibGV0IHNlbGVjdGVkRmllbGQgb2Ygc2VsZWN0ZWRHZW5lcmF0ZWRGaWVsZHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveCBjbGFzcz1cIm1yLTJcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRmllbGQuVmlzaWJsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e3NlbGVjdGVkRmllbGQuRGVzY3JpcHRpb259fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1jaGVja2JveD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnZW5lcmF0aW9uX2dyYXBoXCIgKm5nRm9yPVwibGV0IHNlbGVjdGVkRmllbGQgb2Ygc2VsZWN0ZWRHZW5lcmF0ZWRGaWVsZHNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJnZW5lcmF0aW9uX2RpdmlkZXJcIiBbaGlkZGVuXT1cIiFzZWxlY3RlZEZpZWxkLlZpc2libGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Z3JhcGggW2RhdGFdPVwic2VsZWN0ZWRGaWVsZC5Db29yZHNcIiBbdGl0bGVdPVwic2VsZWN0ZWRGaWVsZC5EZXNjcmlwdGlvblwiPjwvZ3JhcGg+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgXHJcbiAgXHJcbiAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XHJcbiAgICA8bWF0LWNhcmQtZm9vdGVyPlxyXG4gICAgPC9tYXQtY2FyZC1mb290ZXI+XHJcbiAgPC9tYXQtY2FyZD4iXX0=
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild, ViewChildren } from '@angular/core';
|
|
2
|
+
import { FieldTypeEnum } from '../../../../models/baseField.model';
|
|
3
|
+
import { DynamicModuleListConfig } from '../../../../models/dynamicModuleListConfig.model';
|
|
4
|
+
import { DynamicModuleListFormRecordActionsDefault } from '../../../../models/dynamicModuleListFormRecordActionsDefault';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/material/dialog";
|
|
7
|
+
import * as i2 from "@angular/common";
|
|
8
|
+
import * as i3 from "../trigger-templates/text-trigger-template/text-trigger-template.component";
|
|
9
|
+
import * as i4 from "../trigger-templates/numeric-trigger-template/numeric-trigger-template.component";
|
|
10
|
+
import * as i5 from "../trigger-templates/boolean-trigger-template/boolean-trigger-template.component";
|
|
11
|
+
import * as i6 from "../trigger-templates/date-trigger-template/date-trigger-template.component";
|
|
12
|
+
import * as i7 from "../trigger-templates/textarea-trigger-template/textarea-trigger-template.component";
|
|
13
|
+
export class DynamicModuleTriggerFixComponent {
|
|
14
|
+
constructor(dialog) {
|
|
15
|
+
this.dialog = dialog;
|
|
16
|
+
this.triggerChange = new EventEmitter();
|
|
17
|
+
this.configList = new DynamicModuleListConfig();
|
|
18
|
+
this.FieldTypeEnum = FieldTypeEnum;
|
|
19
|
+
this.onlyViewInnerFormRecord = false;
|
|
20
|
+
}
|
|
21
|
+
ngOnInit() {
|
|
22
|
+
this.configList.values = this.condition.record[this.condition.Field.Name];
|
|
23
|
+
this.configList.showTitle = true;
|
|
24
|
+
this.configList.defaultListActions = new DynamicModuleListFormRecordActionsDefault();
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Metodo invocato al cambio del valore di ogni proprietà dell'oggetto record.
|
|
28
|
+
* Serve ad aggiornare il valore di tutti i campi che hanno una formula.
|
|
29
|
+
*/
|
|
30
|
+
onTriggerChange(ev) {
|
|
31
|
+
this.triggerChange.emit(ev);
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Metodo per recuperare una InnerForm a partire dal Field che la rappresenta.
|
|
35
|
+
* @param field Campo a partire dal quale si vuole recuperare la InnerForm.
|
|
36
|
+
* @returns Restituisce un oggetto di tipo Form.
|
|
37
|
+
*/
|
|
38
|
+
getInnerFormFromField(field) {
|
|
39
|
+
if (this.form.InnerForms && this.form.InnerForms.find(f => f.Name == field.Label)) {
|
|
40
|
+
return this.form.InnerForms.find(f => f.Name == field.Label);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
return null;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
DynamicModuleTriggerFixComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DynamicModuleTriggerFixComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
48
|
+
DynamicModuleTriggerFixComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: DynamicModuleTriggerFixComponent, selector: "dynamic-module-trigger-fix", inputs: { condition: "condition", form: "form" }, outputs: { triggerChange: "triggerChange" }, viewQueries: [{ propertyName: "dialogInnerFormRecord", first: true, predicate: ["dialogInnerFormRecord"], descendants: true, static: true }, { propertyName: "fieldTemplate", predicate: ["fieldTemplate"], descendants: true }, { propertyName: "listInnerFormRecords", predicate: ["listInnerFormRecords"], descendants: true }], ngImport: i0, template: "\r\n<text-trigger-template #fieldTemplate *ngIf=\"condition.Field.FieldType == FieldTypeEnum['Campo di testo']\"\r\n [condition]=\"condition\" (triggerChange)=\"onTriggerChange($event)\">\r\n</text-trigger-template>\r\n\r\n<numeric-trigger-template #fieldTemplate *ngIf=\"condition.Field.FieldType == FieldTypeEnum['Campo numerico']\"\r\n [condition]=\"condition\" (triggerChange)=\"onTriggerChange($event)\">\r\n</numeric-trigger-template>\r\n\r\n<textarea-trigger-template #fieldTemplate *ngIf=\"condition.Field.FieldType == FieldTypeEnum['Area di testo']\"\r\n [condition]=\"condition\" (triggerChange)=\"onTriggerChange($event)\">\r\n</textarea-trigger-template>\r\n\r\n<boolean-trigger-template #fieldTemplate *ngIf=\"condition.Field.FieldType == FieldTypeEnum['Booleano']\"\r\n [condition]=\"condition\" (triggerChange)=\"onTriggerChange($event)\">\r\n</boolean-trigger-template>\r\n\r\n<date-trigger-template #fieldTemplate *ngIf=\"condition.Field.FieldType == FieldTypeEnum['Data e/o ora']\"\r\n [condition]=\"condition\" (triggerChange)=\"onTriggerChange($event)\">\r\n</date-trigger-template>", styles: [""], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.TextTriggerTemplateComponent, selector: "text-trigger-template", inputs: ["condition"], outputs: ["recordChange", "triggerChange"] }, { kind: "component", type: i4.NumericTriggerTemplateComponent, selector: "numeric-trigger-template", inputs: ["condition"], outputs: ["triggerChange"] }, { kind: "component", type: i5.BooleanTriggerTemplateComponent, selector: "boolean-trigger-template", inputs: ["condition"], outputs: ["triggerChange"] }, { kind: "component", type: i6.DateTriggerTemplateComponent, selector: "date-trigger-template", inputs: ["condition"], outputs: ["triggerChange"] }, { kind: "component", type: i7.TextareaTriggerTemplateComponent, selector: "textarea-trigger-template", inputs: ["condition"], outputs: ["recordChange", "triggerChange"] }] });
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: DynamicModuleTriggerFixComponent, decorators: [{
|
|
50
|
+
type: Component,
|
|
51
|
+
args: [{ selector: 'dynamic-module-trigger-fix', template: "\r\n<text-trigger-template #fieldTemplate *ngIf=\"condition.Field.FieldType == FieldTypeEnum['Campo di testo']\"\r\n [condition]=\"condition\" (triggerChange)=\"onTriggerChange($event)\">\r\n</text-trigger-template>\r\n\r\n<numeric-trigger-template #fieldTemplate *ngIf=\"condition.Field.FieldType == FieldTypeEnum['Campo numerico']\"\r\n [condition]=\"condition\" (triggerChange)=\"onTriggerChange($event)\">\r\n</numeric-trigger-template>\r\n\r\n<textarea-trigger-template #fieldTemplate *ngIf=\"condition.Field.FieldType == FieldTypeEnum['Area di testo']\"\r\n [condition]=\"condition\" (triggerChange)=\"onTriggerChange($event)\">\r\n</textarea-trigger-template>\r\n\r\n<boolean-trigger-template #fieldTemplate *ngIf=\"condition.Field.FieldType == FieldTypeEnum['Booleano']\"\r\n [condition]=\"condition\" (triggerChange)=\"onTriggerChange($event)\">\r\n</boolean-trigger-template>\r\n\r\n<date-trigger-template #fieldTemplate *ngIf=\"condition.Field.FieldType == FieldTypeEnum['Data e/o ora']\"\r\n [condition]=\"condition\" (triggerChange)=\"onTriggerChange($event)\">\r\n</date-trigger-template>" }]
|
|
52
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialog }]; }, propDecorators: { condition: [{
|
|
53
|
+
type: Input
|
|
54
|
+
}], form: [{
|
|
55
|
+
type: Input
|
|
56
|
+
}], triggerChange: [{
|
|
57
|
+
type: Output
|
|
58
|
+
}], dialogInnerFormRecord: [{
|
|
59
|
+
type: ViewChild,
|
|
60
|
+
args: ['dialogInnerFormRecord', { static: true }]
|
|
61
|
+
}], fieldTemplate: [{
|
|
62
|
+
type: ViewChildren,
|
|
63
|
+
args: ["fieldTemplate"]
|
|
64
|
+
}], listInnerFormRecords: [{
|
|
65
|
+
type: ViewChildren,
|
|
66
|
+
args: ['listInnerFormRecords']
|
|
67
|
+
}] } });
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1tb2R1bGUtdHJpZ2dlci1maXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXFwLWR5bmFtaWMtbW9kdWxlL3NyYy9saWIvY29tcG9uZW50cy9wcml2YXRlL3RyaWdnZXItY3JlYXRvci9keW5hbWljLW1vZHVsZS10cmlnZ2VyLWZpeC9keW5hbWljLW1vZHVsZS10cmlnZ2VyLWZpeC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lcXAtZHluYW1pYy1tb2R1bGUvc3JjL2xpYi9jb21wb25lbnRzL3ByaXZhdGUvdHJpZ2dlci1jcmVhdG9yL2R5bmFtaWMtbW9kdWxlLXRyaWdnZXItZml4L2R5bmFtaWMtbW9kdWxlLXRyaWdnZXItZml4LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQTBCLFNBQVMsRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaEksT0FBTyxFQUFhLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRTNGLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxNQUFNLDhEQUE4RCxDQUFDOzs7Ozs7Ozs7QUFZekgsTUFBTSxPQUFPLGdDQUFnQztJQXFCM0MsWUFDVSxNQUFpQjtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBbEJqQixrQkFBYSxHQUE0QixJQUFJLFlBQVksRUFBYSxDQUFDO1FBRWpGLGVBQVUsR0FBNEIsSUFBSSx1QkFBdUIsRUFBRSxDQUFDO1FBQ3BFLGtCQUFhLEdBQUcsYUFBYSxDQUFDO1FBTTlCLDRCQUF1QixHQUFZLEtBQUssQ0FBQztJQVVyQyxDQUFDO0lBRUwsUUFBUTtRQUVOLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3pFLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQyxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixHQUFHLElBQUkseUNBQXlDLEVBQUUsQ0FBQTtJQUN0RixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsZUFBZSxDQUFDLEVBQUU7UUFDaEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxxQkFBcUIsQ0FBQyxLQUFnQjtRQUNwQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ2pGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDOUQ7YUFBTTtZQUNMLE9BQU8sSUFBSSxDQUFDO1NBQ2I7SUFDSCxDQUFDOzs4SEFuRFUsZ0NBQWdDO2tIQUFoQyxnQ0FBZ0MscWVDakI3QywrbENBbUJ3Qjs0RkRGWCxnQ0FBZ0M7a0JBTDVDLFNBQVM7K0JBQ0UsNEJBQTRCO2dHQU03QixTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDSSxhQUFhO3NCQUF0QixNQUFNO2dCQVcrQyxxQkFBcUI7c0JBQTFFLFNBQVM7dUJBQUMsdUJBQXVCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUdyQixhQUFhO3NCQUEzQyxZQUFZO3VCQUFDLGVBQWU7Z0JBQ1Msb0JBQW9CO3NCQUF6RCxZQUFZO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFF1ZXJ5TGlzdCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcclxuaW1wb3J0IHsgQmFzZUZpZWxkLCBGaWVsZFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2Jhc2VGaWVsZC5tb2RlbCc7XHJcbmltcG9ydCB7IER5bmFtaWNNb2R1bGVMaXN0Q29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vbW9kZWxzL2R5bmFtaWNNb2R1bGVMaXN0Q29uZmlnLm1vZGVsJztcclxuaW1wb3J0IHsgRm9ybSB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy9mb3JtLm1vZGVsJztcclxuaW1wb3J0IHsgRHluYW1pY01vZHVsZUxpc3RGb3JtUmVjb3JkQWN0aW9uc0RlZmF1bHQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvZHluYW1pY01vZHVsZUxpc3RGb3JtUmVjb3JkQWN0aW9uc0RlZmF1bHQnO1xyXG5pbXBvcnQgeyBSZWNvcmQgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvcmVjb3JkLm1vZGVsJztcclxuaW1wb3J0IHsgTGlzdEZvcm1SZWNvcmRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9mb3JtLXJlY29yZHMvbGlzdC1mb3JtLXJlY29yZC9saXN0LWZvcm0tcmVjb3JkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IER5bmFtaWNNb2R1bGVGaWVsZEZpeENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2R5bmFtaWMtbW9kdWxlLWZpZWxkLWZpeC9keW5hbWljLW1vZHVsZS1maWVsZC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTdGF0aXN0aWMgfSBmcm9tICcuLi8uLi8uLi8uLi9tb2RlbHMvc3RhdGlzdGljLm1vZGVsJztcclxuaW1wb3J0IHsgVHJpZ2dlckNvbmRpdGlvbiB9IGZyb20gJy4uLy4uLy4uLy4uL21vZGVscy90cmlnZ2VyLm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZHluYW1pYy1tb2R1bGUtdHJpZ2dlci1maXgnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLW1vZHVsZS10cmlnZ2VyLWZpeC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZHluYW1pYy1tb2R1bGUtdHJpZ2dlci1maXguY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHluYW1pY01vZHVsZVRyaWdnZXJGaXhDb21wb25lbnQge1xyXG5cclxuICBASW5wdXQoKSBjb25kaXRpb246IFRyaWdnZXJDb25kaXRpb247XHJcbiAgQElucHV0KCkgZm9ybTogRm9ybTtcclxuICBAT3V0cHV0KCkgdHJpZ2dlckNoYW5nZTogRXZlbnRFbWl0dGVyPFN0YXRpc3RpYz4gPSBuZXcgRXZlbnRFbWl0dGVyPFN0YXRpc3RpYz4oKTtcclxuXHJcbiAgY29uZmlnTGlzdDogRHluYW1pY01vZHVsZUxpc3RDb25maWcgPSBuZXcgRHluYW1pY01vZHVsZUxpc3RDb25maWcoKTtcclxuICBGaWVsZFR5cGVFbnVtID0gRmllbGRUeXBlRW51bTtcclxuXHJcbiAgLy8jcmVnaW9uIFByb3ByaWV0w6AgcGVyIGFnZ2l1bmdlcmUvbW9kaWZpY2FyZSBpIHJlY29yZCBkaSB1bmEgZm9ybSBkaSBkZXR0YWdsaW9cclxuICBzZWxlY3RlZElubmVyRm9ybTogRm9ybTtcclxuICBzZWxlY3RlZElubmVyRm9ybVJlY29yZDogUmVjb3JkO1xyXG4gIGluZGV4SW5uZXJGb3JtUmVjb3JkOiBudW1iZXI7XHJcbiAgb25seVZpZXdJbm5lckZvcm1SZWNvcmQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkaWFsb2dJbm5lckZvcm1SZWNvcmRSZWY6IE1hdERpYWxvZ1JlZjxUZW1wbGF0ZVJlZjxhbnk+PjtcclxuICBAVmlld0NoaWxkKCdkaWFsb2dJbm5lckZvcm1SZWNvcmQnLCB7IHN0YXRpYzogdHJ1ZSB9KSBkaWFsb2dJbm5lckZvcm1SZWNvcmQ6IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgLy8jZW5kcmVnaW9uXHJcblxyXG4gIEBWaWV3Q2hpbGRyZW4oXCJmaWVsZFRlbXBsYXRlXCIpIGZpZWxkVGVtcGxhdGU6IFF1ZXJ5TGlzdDxEeW5hbWljTW9kdWxlRmllbGRGaXhDb21wb25lbnQ+O1xyXG4gIEBWaWV3Q2hpbGRyZW4oJ2xpc3RJbm5lckZvcm1SZWNvcmRzJykgbGlzdElubmVyRm9ybVJlY29yZHM6IFF1ZXJ5TGlzdDxMaXN0Rm9ybVJlY29yZENvbXBvbmVudD47XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkaWFsb2c6IE1hdERpYWxvZ1xyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgIHRoaXMuY29uZmlnTGlzdC52YWx1ZXMgPSB0aGlzLmNvbmRpdGlvbi5yZWNvcmRbdGhpcy5jb25kaXRpb24uRmllbGQuTmFtZV1cclxuICAgIHRoaXMuY29uZmlnTGlzdC5zaG93VGl0bGUgPSB0cnVlO1xyXG4gICAgdGhpcy5jb25maWdMaXN0LmRlZmF1bHRMaXN0QWN0aW9ucyA9IG5ldyBEeW5hbWljTW9kdWxlTGlzdEZvcm1SZWNvcmRBY3Rpb25zRGVmYXVsdCgpXHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gaW52b2NhdG8gYWwgY2FtYmlvIGRlbCB2YWxvcmUgZGkgb2duaSBwcm9wcmlldMOgIGRlbGwnb2dnZXR0byByZWNvcmQuXHJcbiAgICogU2VydmUgYWQgYWdnaW9ybmFyZSBpbCB2YWxvcmUgZGkgdHV0dGkgaSBjYW1waSBjaGUgaGFubm8gdW5hIGZvcm11bGEuXHJcbiAgICovXHJcbiAgb25UcmlnZ2VyQ2hhbmdlKGV2KSB7XHJcbiAgICB0aGlzLnRyaWdnZXJDaGFuZ2UuZW1pdChldik7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBNZXRvZG8gcGVyIHJlY3VwZXJhcmUgdW5hIElubmVyRm9ybSBhIHBhcnRpcmUgZGFsIEZpZWxkIGNoZSBsYSByYXBwcmVzZW50YS5cclxuICAgKiBAcGFyYW0gZmllbGQgQ2FtcG8gYSBwYXJ0aXJlIGRhbCBxdWFsZSBzaSB2dW9sZSByZWN1cGVyYXJlIGxhIElubmVyRm9ybS5cclxuICAgKiBAcmV0dXJucyBSZXN0aXR1aXNjZSB1biBvZ2dldHRvIGRpIHRpcG8gRm9ybS5cclxuICAgKi9cclxuICBnZXRJbm5lckZvcm1Gcm9tRmllbGQoZmllbGQ6IEJhc2VGaWVsZCk6IEZvcm0ge1xyXG4gICAgaWYgKHRoaXMuZm9ybS5Jbm5lckZvcm1zICYmIHRoaXMuZm9ybS5Jbm5lckZvcm1zLmZpbmQoZiA9PiBmLk5hbWUgPT0gZmllbGQuTGFiZWwpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZvcm0uSW5uZXJGb3Jtcy5maW5kKGYgPT4gZi5OYW1lID09IGZpZWxkLkxhYmVsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIiwiXHJcbjx0ZXh0LXRyaWdnZXItdGVtcGxhdGUgI2ZpZWxkVGVtcGxhdGUgKm5nSWY9XCJjb25kaXRpb24uRmllbGQuRmllbGRUeXBlID09IEZpZWxkVHlwZUVudW1bJ0NhbXBvIGRpIHRlc3RvJ11cIlxyXG4gICAgW2NvbmRpdGlvbl09XCJjb25kaXRpb25cIiAodHJpZ2dlckNoYW5nZSk9XCJvblRyaWdnZXJDaGFuZ2UoJGV2ZW50KVwiPlxyXG48L3RleHQtdHJpZ2dlci10ZW1wbGF0ZT5cclxuXHJcbjxudW1lcmljLXRyaWdnZXItdGVtcGxhdGUgI2ZpZWxkVGVtcGxhdGUgKm5nSWY9XCJjb25kaXRpb24uRmllbGQuRmllbGRUeXBlID09IEZpZWxkVHlwZUVudW1bJ0NhbXBvIG51bWVyaWNvJ11cIlxyXG4gICAgW2NvbmRpdGlvbl09XCJjb25kaXRpb25cIiAodHJpZ2dlckNoYW5nZSk9XCJvblRyaWdnZXJDaGFuZ2UoJGV2ZW50KVwiPlxyXG48L251bWVyaWMtdHJpZ2dlci10ZW1wbGF0ZT5cclxuXHJcbjx0ZXh0YXJlYS10cmlnZ2VyLXRlbXBsYXRlICNmaWVsZFRlbXBsYXRlICpuZ0lmPVwiY29uZGl0aW9uLkZpZWxkLkZpZWxkVHlwZSA9PSBGaWVsZFR5cGVFbnVtWydBcmVhIGRpIHRlc3RvJ11cIlxyXG4gICAgW2NvbmRpdGlvbl09XCJjb25kaXRpb25cIiAodHJpZ2dlckNoYW5nZSk9XCJvblRyaWdnZXJDaGFuZ2UoJGV2ZW50KVwiPlxyXG48L3RleHRhcmVhLXRyaWdnZXItdGVtcGxhdGU+XHJcblxyXG48Ym9vbGVhbi10cmlnZ2VyLXRlbXBsYXRlICNmaWVsZFRlbXBsYXRlICpuZ0lmPVwiY29uZGl0aW9uLkZpZWxkLkZpZWxkVHlwZSA9PSBGaWVsZFR5cGVFbnVtWydCb29sZWFubyddXCJcclxuICAgIFtjb25kaXRpb25dPVwiY29uZGl0aW9uXCIgKHRyaWdnZXJDaGFuZ2UpPVwib25UcmlnZ2VyQ2hhbmdlKCRldmVudClcIj5cclxuPC9ib29sZWFuLXRyaWdnZXItdGVtcGxhdGU+XHJcblxyXG48ZGF0ZS10cmlnZ2VyLXRlbXBsYXRlICNmaWVsZFRlbXBsYXRlICpuZ0lmPVwiY29uZGl0aW9uLkZpZWxkLkZpZWxkVHlwZSA9PSBGaWVsZFR5cGVFbnVtWydEYXRhIGUvbyBvcmEnXVwiXHJcbiAgICBbY29uZGl0aW9uXT1cImNvbmRpdGlvblwiICh0cmlnZ2VyQ2hhbmdlKT1cIm9uVHJpZ2dlckNoYW5nZSgkZXZlbnQpXCI+XHJcbjwvZGF0ZS10cmlnZ2VyLXRlbXBsYXRlPiJdfQ==
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
+
import { BooleanLogicOperatorType, Trigger, TriggerCondition } from '../../../models/trigger.model';
|
|
3
|
+
import { BaseField, FieldTypeEnum } from '../../../models/baseField.model';
|
|
4
|
+
import { Record } from '../../../models/record.model';
|
|
5
|
+
import { GlobalService } from '../../../services/global.service';
|
|
6
|
+
import { PickerModeEnum } from '@eqproject/eqp-datetimepicker';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/material/dialog";
|
|
9
|
+
import * as i2 from "@angular/material/button";
|
|
10
|
+
import * as i3 from "@angular/material/input";
|
|
11
|
+
import * as i4 from "@angular/material/form-field";
|
|
12
|
+
import * as i5 from "@angular/material/icon";
|
|
13
|
+
import * as i6 from "@angular/forms";
|
|
14
|
+
import * as i7 from "@angular/common";
|
|
15
|
+
import * as i8 from "@eqproject/eqp-select";
|
|
16
|
+
import * as i9 from "../add-formula-field/add-formula-field.component";
|
|
17
|
+
import * as i10 from "./dynamic-module-trigger-fix/dynamic-module-trigger-fix.component";
|
|
18
|
+
export class TriggerCreatorComponent {
|
|
19
|
+
constructor(dialog) {
|
|
20
|
+
this.dialog = dialog;
|
|
21
|
+
this.trigger = null;
|
|
22
|
+
this.formulas = null;
|
|
23
|
+
this.onSaveRecord = new EventEmitter();
|
|
24
|
+
this.FieldTypeEnum = FieldTypeEnum;
|
|
25
|
+
this.isSaving = false;
|
|
26
|
+
this.formulaKeys = new Array();
|
|
27
|
+
this.formulaFieldsStructure = new Array();
|
|
28
|
+
this.pickerModeEnum = PickerModeEnum;
|
|
29
|
+
}
|
|
30
|
+
ngOnInit() {
|
|
31
|
+
if (this.trigger == null) {
|
|
32
|
+
this.trigger = new Trigger();
|
|
33
|
+
this.trigger.conditions = new Array();
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
this.selectedFormula = {};
|
|
37
|
+
this.selectedFormula.key = this.trigger.execution;
|
|
38
|
+
this.formulaFieldsStructure = new Array();
|
|
39
|
+
Object.keys(this.formulas[this.selectedFormula.key]).forEach((res) => {
|
|
40
|
+
this.formulaFieldsStructure.push({ "key": res });
|
|
41
|
+
});
|
|
42
|
+
Object.keys(this.trigger.formulas).forEach((res) => {
|
|
43
|
+
this.formulaFieldsStructure.find(x => x.key == res).value = this.trigger.formulas[res];
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
Object.keys(this.formulas).forEach((res) => {
|
|
47
|
+
this.formulaKeys.push({ "key": res });
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
onTriggerChange(outputCondition, TriggerCondition) {
|
|
51
|
+
this.trigger.conditions.find(x => x.CID == TriggerCondition.CID).booleanlogicoperator = outputCondition.booleanlogicoperator;
|
|
52
|
+
this.trigger.conditions.find(x => x.CID == TriggerCondition.CID).logicoperator = outputCondition.logicoperator;
|
|
53
|
+
var changeInOr = false;
|
|
54
|
+
this.trigger.conditions.forEach((condition) => {
|
|
55
|
+
if (condition.booleanlogicoperator == BooleanLogicOperatorType.OR) {
|
|
56
|
+
changeInOr = true;
|
|
57
|
+
}
|
|
58
|
+
if (changeInOr) {
|
|
59
|
+
condition.booleanlogicoperator = BooleanLogicOperatorType.OR;
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
addCondition() {
|
|
64
|
+
var triggerCondition = new TriggerCondition();
|
|
65
|
+
triggerCondition.Field = new BaseField();
|
|
66
|
+
triggerCondition.record = new Record();
|
|
67
|
+
triggerCondition.logicoperator = null;
|
|
68
|
+
triggerCondition.booleanlogicoperator = null;
|
|
69
|
+
this.trigger.conditions.push(triggerCondition);
|
|
70
|
+
}
|
|
71
|
+
deleteCondition(element) {
|
|
72
|
+
var index = this.trigger.conditions.findIndex(x => x.CID == element.CID);
|
|
73
|
+
this.trigger.conditions.splice(index, 1);
|
|
74
|
+
}
|
|
75
|
+
onFieldTypeChange(ev, condition) {
|
|
76
|
+
condition.Field = ev;
|
|
77
|
+
condition.record[ev.Name] = "";
|
|
78
|
+
}
|
|
79
|
+
saveOrExitForm(exit) {
|
|
80
|
+
GlobalService.debugLog('add-form-record saveRecordEvent');
|
|
81
|
+
if (exit) {
|
|
82
|
+
this.onSaveRecord.emit(null);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
this.formulaFieldsStructure.forEach((formulaField) => {
|
|
86
|
+
if (typeof this.trigger.formulas == "undefined") {
|
|
87
|
+
this.trigger.formulas = {};
|
|
88
|
+
}
|
|
89
|
+
this.trigger.formulas[formulaField.key] = formulaField.value;
|
|
90
|
+
this.trigger.execution = this.selectedFormula.key;
|
|
91
|
+
});
|
|
92
|
+
this.isSaving = true;
|
|
93
|
+
this.onSaveRecord.emit(this.trigger);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
onChangeFormula(formula) {
|
|
97
|
+
this.formulaFieldsStructure = new Array();
|
|
98
|
+
Object.keys(this.formulas[formula.key]).forEach((res) => {
|
|
99
|
+
this.formulaFieldsStructure.push({ "key": res });
|
|
100
|
+
});
|
|
101
|
+
console.log("this.formulaFieldsStructure", this.formulaFieldsStructure);
|
|
102
|
+
}
|
|
103
|
+
onFormulaFieldChange(formulaField) {
|
|
104
|
+
}
|
|
105
|
+
openFormulaDialog(formulaField) {
|
|
106
|
+
this.dialogFormulaRef = this.dialog.open(this.dialogFormula, {
|
|
107
|
+
disableClose: true,
|
|
108
|
+
hasBackdrop: true,
|
|
109
|
+
width: "75%",
|
|
110
|
+
data: {
|
|
111
|
+
formula: this.formulaFieldsStructure.find(x => x.key == formulaField.key).value,
|
|
112
|
+
fields: this.form.Fields
|
|
113
|
+
},
|
|
114
|
+
});
|
|
115
|
+
this.dialogFormulaRef.afterClosed().subscribe((result) => {
|
|
116
|
+
var formulaToChange = this.formulaFieldsStructure.find(x => x.key == formulaField.key);
|
|
117
|
+
formulaToChange.value = result.formula.toString() == "" ? null : result.formula.toString();
|
|
118
|
+
this.onFormulaFieldChange(formulaToChange);
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
TriggerCreatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TriggerCreatorComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
123
|
+
TriggerCreatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: TriggerCreatorComponent, selector: "trigger-creator", inputs: { form: "form", trigger: "trigger", formulas: "formulas" }, outputs: { onSaveRecord: "onSaveRecord" }, viewQueries: [{ propertyName: "dialogFormula", first: true, predicate: ["dialogFormula"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"padder\" *ngIf=\"trigger.conditions != null\">\r\n\r\n <div class=\"row\">\r\n <div class=\"col-3\">Descrizione Trigger</div>\r\n <div class=\"col-9\">\r\n <mat-form-field>\r\n <mat-label class=\"pt-1\"> Descrizione </mat-label>\r\n <input matInput [(ngModel)]=\"trigger.description\" [readonly]=\"false\" [required]=\"false\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-3\">Tipo Trigger</div>\r\n <div class=\"col-9\">\r\n <eqp-select [arrayData]=\"formulaKeys\" [(ngModelInput)]=\"selectedFormula\"\r\n [arrayKeyProperty]=\"'key'\" [arrayValueProperty]=\"'key'\" [showCancelButton]=\"false\" (ngModelInputChange)=\"onChangeFormula($event)\">\r\n </eqp-select> \r\n </div>\r\n </div>\r\n\r\n <div class=\"row\" *ngFor=\"let formulaField of formulaFieldsStructure\">\r\n <div class=\"col-3\">{{formulaField.key}}</div>\r\n <div class=\"col-9\">\r\n <mat-form-field>\r\n <mat-label class=\"pt-1\"> {{formulaField.key}} </mat-label>\r\n <input matInput [readonly]=\"false\" [required]=\"false\" (click)=\"openFormulaDialog(formulaField)\" [(ngModel)]=\"formulaField.value\" (ngModelChange)=\"onFormulaFieldChange(formulaField)\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <button class=\"btn btn-primary\" (click)=\"addCondition()\">Aggiungi condizione</button>\r\n\r\n <div class=\"padder\" *ngFor=\"let condition of trigger.conditions\">\r\n <div class=\"row\" *ngIf=\"condition.Field != null\">\r\n <div class=\"col-1\"><button class=\"btn btn-danger\"><mat-icon (click)=\"deleteCondition(condition)\">delete</mat-icon></button></div>\r\n <div class=\"col-2\">\r\n <eqp-select [arrayData]=\"form.Fields\" [(ngModelInput)]=\"condition.Field\"\r\n [arrayKeyProperty]=\"'Name'\" [arrayValueProperty]=\"'Name'\"\r\n [showCancelButton]=\"false\" (ngModelInputChange)=\"onFieldTypeChange($event, condition)\"\r\n [includeFullObject]=\"true\">\r\n </eqp-select>\r\n </div> \r\n <div class=\"col-9\" *ngIf=\"condition.Field != null\">\r\n <dynamic-module-trigger-fix #fieldTemplate [condition]=\"condition\" [form]=\"form\" (triggerChange)=\"onTriggerChange($event, condition)\"></dynamic-module-trigger-fix>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"row mt-2 add-form-record-buttons\">\r\n <div class=\"col-sm-12 text-right\">\r\n <button class=\"mr-2\" mat-raised-button type=\"button\" (click)=\"saveOrExitForm(true)\">\r\n Annulla\r\n </button>\r\n <button class=\"mr-2\" mat-raised-button color=\"primary\" type=\"button\"\r\n (click)=\"saveOrExitForm(false)\" [disabled]=\"isSaving\">\r\n <span *ngIf=\"!isSaving\">Salva</span>\r\n <span *ngIf=\"isSaving\">Salvataggio in Corso...</span>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n\r\n<!--DIALOG PER SEMPLIFICARE LA SCRITTURA DEL CAMPO FORMULA-->\r\n<ng-template #dialogFormula>\r\n <eqp-dynamic-module-add-formula-component>\r\n </eqp-dynamic-module-add-formula-component>\r\n</ng-template>", styles: [".padder{padding:15px}\n"], dependencies: [{ kind: "component", type: i2.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i7.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i8.EqpSelectComponent, selector: "eqp-select", inputs: ["placeholder", "enumData", "enumDataToExclude", "arrayData", "arrayKeyProperty", "arrayValueProperty", "ngModelOptions", "ngModelInput", "formGroupInput", "formControlNameInput", "isRequired", "isDisabled", "isMultiLanguage", "multilanguagePrefixKey", "isAlphabeticalOrderable", "suffixIcon", "prefixIcon", "isMultiSelect", "includeFullObject", "showCancelButton", "isSearchable", "searchText", "noResultSearchText", "data"], outputs: ["ngModelInputChange"] }, { kind: "component", type: i9.AddFormulaComponent, selector: "eqp-dynamic-module-add-formula-component" }, { kind: "component", type: i10.DynamicModuleTriggerFixComponent, selector: "dynamic-module-trigger-fix", inputs: ["condition", "form"], outputs: ["triggerChange"] }] });
|
|
124
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: TriggerCreatorComponent, decorators: [{
|
|
125
|
+
type: Component,
|
|
126
|
+
args: [{ selector: 'trigger-creator', template: "<div class=\"padder\" *ngIf=\"trigger.conditions != null\">\r\n\r\n <div class=\"row\">\r\n <div class=\"col-3\">Descrizione Trigger</div>\r\n <div class=\"col-9\">\r\n <mat-form-field>\r\n <mat-label class=\"pt-1\"> Descrizione </mat-label>\r\n <input matInput [(ngModel)]=\"trigger.description\" [readonly]=\"false\" [required]=\"false\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row\">\r\n <div class=\"col-3\">Tipo Trigger</div>\r\n <div class=\"col-9\">\r\n <eqp-select [arrayData]=\"formulaKeys\" [(ngModelInput)]=\"selectedFormula\"\r\n [arrayKeyProperty]=\"'key'\" [arrayValueProperty]=\"'key'\" [showCancelButton]=\"false\" (ngModelInputChange)=\"onChangeFormula($event)\">\r\n </eqp-select> \r\n </div>\r\n </div>\r\n\r\n <div class=\"row\" *ngFor=\"let formulaField of formulaFieldsStructure\">\r\n <div class=\"col-3\">{{formulaField.key}}</div>\r\n <div class=\"col-9\">\r\n <mat-form-field>\r\n <mat-label class=\"pt-1\"> {{formulaField.key}} </mat-label>\r\n <input matInput [readonly]=\"false\" [required]=\"false\" (click)=\"openFormulaDialog(formulaField)\" [(ngModel)]=\"formulaField.value\" (ngModelChange)=\"onFormulaFieldChange(formulaField)\">\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n\r\n <button class=\"btn btn-primary\" (click)=\"addCondition()\">Aggiungi condizione</button>\r\n\r\n <div class=\"padder\" *ngFor=\"let condition of trigger.conditions\">\r\n <div class=\"row\" *ngIf=\"condition.Field != null\">\r\n <div class=\"col-1\"><button class=\"btn btn-danger\"><mat-icon (click)=\"deleteCondition(condition)\">delete</mat-icon></button></div>\r\n <div class=\"col-2\">\r\n <eqp-select [arrayData]=\"form.Fields\" [(ngModelInput)]=\"condition.Field\"\r\n [arrayKeyProperty]=\"'Name'\" [arrayValueProperty]=\"'Name'\"\r\n [showCancelButton]=\"false\" (ngModelInputChange)=\"onFieldTypeChange($event, condition)\"\r\n [includeFullObject]=\"true\">\r\n </eqp-select>\r\n </div> \r\n <div class=\"col-9\" *ngIf=\"condition.Field != null\">\r\n <dynamic-module-trigger-fix #fieldTemplate [condition]=\"condition\" [form]=\"form\" (triggerChange)=\"onTriggerChange($event, condition)\"></dynamic-module-trigger-fix>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"row mt-2 add-form-record-buttons\">\r\n <div class=\"col-sm-12 text-right\">\r\n <button class=\"mr-2\" mat-raised-button type=\"button\" (click)=\"saveOrExitForm(true)\">\r\n Annulla\r\n </button>\r\n <button class=\"mr-2\" mat-raised-button color=\"primary\" type=\"button\"\r\n (click)=\"saveOrExitForm(false)\" [disabled]=\"isSaving\">\r\n <span *ngIf=\"!isSaving\">Salva</span>\r\n <span *ngIf=\"isSaving\">Salvataggio in Corso...</span>\r\n </button>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n\r\n<!--DIALOG PER SEMPLIFICARE LA SCRITTURA DEL CAMPO FORMULA-->\r\n<ng-template #dialogFormula>\r\n <eqp-dynamic-module-add-formula-component>\r\n </eqp-dynamic-module-add-formula-component>\r\n</ng-template>", styles: [".padder{padding:15px}\n"] }]
|
|
127
|
+
}], ctorParameters: function () { return [{ type: i1.MatDialog }]; }, propDecorators: { form: [{
|
|
128
|
+
type: Input,
|
|
129
|
+
args: ["form"]
|
|
130
|
+
}], trigger: [{
|
|
131
|
+
type: Input,
|
|
132
|
+
args: ["trigger"]
|
|
133
|
+
}], formulas: [{
|
|
134
|
+
type: Input,
|
|
135
|
+
args: ["formulas"]
|
|
136
|
+
}], onSaveRecord: [{
|
|
137
|
+
type: Output
|
|
138
|
+
}], dialogFormula: [{
|
|
139
|
+
type: ViewChild,
|
|
140
|
+
args: ["dialogFormula", { static: true }]
|
|
141
|
+
}] } });
|
|
142
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJpZ2dlci1jcmVhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1keW5hbWljLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvcHJpdmF0ZS90cmlnZ2VyLWNyZWF0b3IvdHJpZ2dlci1jcmVhdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VxcC1keW5hbWljLW1vZHVsZS9zcmMvbGliL2NvbXBvbmVudHMvcHJpdmF0ZS90cmlnZ2VyLWNyZWF0b3IvdHJpZ2dlci1jcmVhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9GLE9BQU8sRUFBRSx3QkFBd0IsRUFBYSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRyxPQUFPLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRzNFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDakUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7Ozs7Ozs7QUFRL0QsTUFBTSxPQUFPLHVCQUF1QjtJQWtCbEMsWUFBb0IsTUFBaUI7UUFBakIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQWZuQixZQUFPLEdBQVksSUFBSSxDQUFDO1FBQ3ZCLGFBQVEsR0FBUSxJQUFJLENBQUM7UUFFOUIsaUJBQVksR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUU1RSxrQkFBYSxHQUFHLGFBQWEsQ0FBQztRQUM5QixhQUFRLEdBQVksS0FBSyxDQUFD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RyxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxLQUFLO2dCQUMvRSxNQUFNLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNO2FBQ3pCO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFO1lBQ3ZELElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2RixlQUFlLENBQUMsS0FBSyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDM0YsSUFBSSxDQUFDLG9CQUFvQixDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzdDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7cUhBdEhVLHVCQUF1Qjt5R0FBdkIsdUJBQXVCLG9TQ2hCcEMseTVHQXFFYzs0RkRyREQsdUJBQXVCO2tCQUxuQyxTQUFTOytCQUNFLGlCQUFpQjtnR0FNWixJQUFJO3NCQUFsQixLQUFLO3VCQUFDLE1BQU07Z0JBQ0ssT0FBTztzQkFBeEIsS0FBSzt1QkFBQyxTQUFTO2dCQUNHLFFBQVE7c0JBQTFCLEtBQUs7dUJBQUMsVUFBVTtnQkFFUCxZQUFZO3NCQUFyQixNQUFNO2dCQVV1QyxhQUFhO3NCQUExRCxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2Zvcm0ubW9kZWwnO1xyXG5pbXBvcnQgeyBCb29sZWFuTG9naWNPcGVyYXRvclR5cGUsIENvbmRpdGlvbiwgVHJpZ2dlciwgVHJpZ2dlckNvbmRpdGlvbiB9IGZyb20gJy4uLy4uLy4uL21vZGVscy90cmlnZ2VyLm1vZGVsJztcclxuaW1wb3J0IHsgQmFzZUZpZWxkLCBGaWVsZFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2Jhc2VGaWVsZC5tb2RlbCc7XHJcbmltcG9ydCAqIGFzIHNzIGZyb20gJ3NpbXBsZS1zdGF0aXN0aWNzJztcclxuaW1wb3J0IHsgQ2FudmFzSlNBbmd1bGFyU3RvY2tDaGFydHNNb2R1bGUsIENhbnZhc0pTQ2hhcnQsIENhbnZhc0pTU3RvY2tDaGFydCB9IGZyb20gJ0BjYW52YXNqcy9hbmd1bGFyLXN0b2NrY2hhcnRzJztcclxuaW1wb3J0IHsgUmVjb3JkIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL3JlY29yZC5tb2RlbCc7XHJcbmltcG9ydCB7IEdsb2JhbFNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9nbG9iYWwuc2VydmljZSc7XHJcbmltcG9ydCB7IFBpY2tlck1vZGVFbnVtIH0gZnJvbSAnQGVxcHJvamVjdC9lcXAtZGF0ZXRpbWVwaWNrZXInO1xyXG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ3RyaWdnZXItY3JlYXRvcicsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RyaWdnZXItY3JlYXRvci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vdHJpZ2dlci1jcmVhdG9yLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFRyaWdnZXJDcmVhdG9yQ29tcG9uZW50IHtcclxuXHJcbiAgQElucHV0KFwiZm9ybVwiKSBmb3JtOiBGb3JtO1xyXG4gIEBJbnB1dChcInRyaWdnZXJcIikgdHJpZ2dlcjogVHJpZ2dlciA9IG51bGw7XHJcbiAgQElucHV0KFwiZm9ybXVsYXNcIikgZm9ybXVsYXM6IGFueSA9IG51bGw7XHJcblxyXG4gIEBPdXRwdXQoKSBvblNhdmVSZWNvcmQ6IEV2ZW50RW1pdHRlcjxUcmlnZ2VyPiA9IG5ldyBFdmVudEVtaXR0ZXI8VHJpZ2dlcj4oKTtcclxuXHJcbiAgRmllbGRUeXBlRW51bSA9IEZpZWxkVHlwZUVudW07XHJcbiAgaXNTYXZpbmc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBzZWxlY3RlZEZvcm11bGE6IGFueTtcclxuICBmb3JtdWxhS2V5czogQXJyYXk8YW55PiA9IG5ldyBBcnJheTxhbnk+KCk7XHJcbiAgZm9ybXVsYUZpZWxkc1N0cnVjdHVyZTogQXJyYXk8YW55PiA9IG5ldyBBcnJheTxhbnk+KCk7XHJcbiAgcGlja2VyTW9kZUVudW0gPSBQaWNrZXJNb2RlRW51bTtcclxuXHJcbiAgZGlhbG9nRm9ybXVsYVJlZjogTWF0RGlhbG9nUmVmPFRlbXBsYXRlUmVmPGFueT4+O1xyXG4gIEBWaWV3Q2hpbGQoXCJkaWFsb2dGb3JtdWxhXCIsIHsgc3RhdGljOiB0cnVlIH0pIGRpYWxvZ0Zvcm11bGE6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2cpe31cclxuICBcclxuICBuZ09uSW5pdCgpe1xyXG4gICAgaWYgKHRoaXMudHJpZ2dlciA9PSBudWxsKXtcclxuICAgICAgdGhpcy50cmlnZ2VyID0gbmV3IFRyaWdnZXIoKTtcclxuICAgICAgdGhpcy50cmlnZ2VyLmNvbmRpdGlvbnMgPSBuZXcgQXJyYXk8VHJpZ2dlckNvbmRpdGlvbj4oKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRGb3JtdWxhID0ge307XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRGb3JtdWxhLmtleSA9IHRoaXMudHJpZ2dlci5leGVjdXRpb247XHJcblxyXG4gICAgICB0aGlzLmZvcm11bGFGaWVsZHNTdHJ1Y3R1cmUgPSBuZXcgQXJyYXk8YW55PigpO1xyXG4gICAgICBPYmplY3Qua2V5cyh0aGlzLmZvcm11bGFzW3RoaXMuc2VsZWN0ZWRGb3JtdWxhLmtleV0pLmZvckVhY2goKHJlcykgPT4ge1xyXG4gICAgICAgIHRoaXMuZm9ybXVsYUZpZWxkc1N0cnVjdHVyZS5wdXNoKHtcImtleVwiOiByZXN9KTtcclxuICAgICAgfSk7ICAgICAgXHJcblxyXG4gICAgICBPYmplY3Qua2V5cyh0aGlzLnRyaWdnZXIuZm9ybXVsYXMpLmZvckVhY2goKHJlcykgPT4ge1xyXG4gICAgICAgIHRoaXMuZm9ybXVsYUZpZWxkc1N0cnVjdHVyZS5maW5kKHggPT4geC5rZXkgPT0gcmVzKS52YWx1ZSA9IHRoaXMudHJpZ2dlci5mb3JtdWxhc1tyZXNdO1xyXG4gICAgICB9KTtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgT2JqZWN0LmtleXModGhpcy5mb3JtdWxhcykuZm9yRWFjaCgocmVzKSA9PiB7XHJcbiAgICAgIHRoaXMuZm9ybXVsYUtleXMucHVzaCh7XCJrZXlcIjogcmVzfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgfVxyXG5cclxuICBvblRyaWdnZXJDaGFuZ2Uob3V0cHV0Q29uZGl0aW9uOiBDb25kaXRpb24sIFRyaWdnZXJDb25kaXRpb246IFRyaWdnZXJDb25kaXRpb24pe1xyXG4gICAgdGhpcy50cmlnZ2VyLmNvbmRpdGlvbnMuZmluZCh4ID0+IHguQ0lEID09IFRyaWdnZXJDb25kaXRpb24uQ0lEKS5ib29sZWFubG9naWNvcGVyYXRvciA9IG91dHB1dENvbmRpdGlvbi5ib29sZWFubG9naWNvcGVyYXRvcjtcclxuICAgIHRoaXMudHJpZ2dlci5jb25kaXRpb25zLmZpbmQoeCA9PiB4LkNJRCA9PSBUcmlnZ2VyQ29uZGl0aW9uLkNJRCkubG9naWNvcGVyYXRvciA9IG91dHB1dENvbmRpdGlvbi5sb2dpY29wZXJhdG9yO1xyXG5cclxuICAgIHZhciBjaGFuZ2VJbk9yID0gZmFsc2U7XHJcbiAgICB0aGlzLnRyaWdnZXIuY29uZGl0aW9ucy5mb3JFYWNoKChjb25kaXRpb24pID0+IHtcclxuICAgICAgaWYgKGNvbmRpdGlvbi5ib29sZWFubG9naWNvcGVyYXRvciA9PSBCb29sZWFuTG9naWNPcGVyYXRvclR5cGUuT1IpeyBjaGFuZ2VJbk9yID0gdHJ1ZTsgfVxyXG4gICAgICBpZiAoY2hhbmdlSW5Pcil7IGNvbmRpdGlvbi5ib29sZWFubG9naWNvcGVyYXRvciA9IEJvb2xlYW5Mb2dpY09wZXJhdG9yVHlwZS5PUjsgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBhZGRDb25kaXRpb24oKXtcclxuICAgIHZhciB0cmlnZ2VyQ29uZGl0aW9uID0gbmV3IFRyaWdnZXJDb25kaXRpb24oKTtcclxuICAgIHRyaWdnZXJDb25kaXRpb24uRmllbGQgPSBuZXcgQmFzZUZpZWxkKCk7XHJcbiAgICB0cmlnZ2VyQ29uZGl0aW9uLnJlY29yZCA9IG5ldyBSZWNvcmQoKTtcclxuICAgIHRyaWdnZXJDb25kaXRpb24ubG9naWNvcGVyYXRvciA9IG51bGw7XHJcbiAgICB0cmlnZ2VyQ29uZGl0aW9uLmJvb2xlYW5sb2dpY29wZXJhdG9yID0gbnVsbDtcclxuICAgIHRoaXMudHJpZ2dlci5jb25kaXRpb25zLnB1c2godHJpZ2dlckNvbmRpdGlvbik7XHJcbiAgfVxyXG5cclxuICBkZWxldGVDb25kaXRpb24oZWxlbWVudDogVHJpZ2dlckNvbmRpdGlvbil7XHJcbiAgICB2YXIgaW5kZXggPSB0aGlzLnRyaWdnZXIuY29uZGl0aW9ucy5maW5kSW5kZXgoeCA9PiB4LkNJRCA9PSBlbGVtZW50LkNJRCk7XHJcbiAgICB0aGlzLnRyaWdnZXIuY29uZGl0aW9ucy5zcGxpY2UoaW5kZXgsMSk7XHJcbiAgfVxyXG5cclxuICBvbkZpZWxkVHlwZUNoYW5nZShldjogQmFzZUZpZWxkLCBjb25kaXRpb246IFRyaWdnZXJDb25kaXRpb24pe1xyXG4gICAgY29uZGl0aW9uLkZpZWxkID0gZXY7XHJcbiAgICBjb25kaXRpb24ucmVjb3JkW2V2Lk5hbWVdID0gXCJcIjtcclxuICB9XHJcblxyXG4gIHNhdmVPckV4aXRGb3JtKGV4aXQ6IGJvb2xlYW4pIHtcclxuICAgIEdsb2JhbFNlcnZpY2UuZGVidWdMb2coJ2FkZC1mb3JtLXJlY29yZCBzYXZlUmVjb3JkRXZlbnQnKVxyXG4gICAgaWYgKGV4aXQpIHtcclxuICAgICAgdGhpcy5vblNhdmVSZWNvcmQuZW1pdChudWxsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZm9ybXVsYUZpZWxkc1N0cnVjdHVyZS5mb3JFYWNoKChmb3JtdWxhRmllbGQpID0+IHtcclxuICAgICAgICBpZiAodHlwZW9mIHRoaXMudHJpZ2dlci5mb3JtdWxhcyA9PSBcInVuZGVmaW5lZFwiKXsgdGhpcy50cmlnZ2VyLmZvcm11bGFzID0ge307IH1cclxuICAgICAgICB0aGlzLnRyaWdnZXIuZm9ybXVsYXNbZm9ybXVsYUZpZWxkLmtleV0gPSBmb3JtdWxhRmllbGQudmFsdWU7XHJcbiAgICAgICAgdGhpcy50cmlnZ2VyLmV4ZWN1dGlvbiA9IHRoaXMuc2VsZWN0ZWRGb3JtdWxhLmtleTtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuaXNTYXZpbmcgPSB0cnVlO1xyXG4gICAgICB0aGlzLm9uU2F2ZVJlY29yZC5lbWl0KHRoaXMudHJpZ2dlcik7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBvbkNoYW5nZUZvcm11bGEoZm9ybXVsYTogYW55KXtcclxuXHJcbiAgICB0aGlzLmZvcm11bGFGaWVsZHNTdHJ1Y3R1cmUgPSBuZXcgQXJyYXk8YW55PigpO1xyXG4gICAgT2JqZWN0LmtleXModGhpcy5mb3JtdWxhc1tmb3JtdWxhLmtleV0pLmZvckVhY2goKHJlcykgPT4ge1xyXG4gICAgICB0aGlzLmZvcm11bGFGaWVsZHNTdHJ1Y3R1cmUucHVzaCh7XCJrZXlcIjogcmVzfSk7XHJcbiAgICB9KTtcclxuXHJcbiAgICBjb25zb2xlLmxvZyhcInRoaXMuZm9ybXVsYUZpZWxkc1N0cnVjdHVyZVwiLCB0aGlzLmZvcm11bGFGaWVsZHNTdHJ1Y3R1cmUpO1xyXG4gIH1cclxuXHJcbiAgb25Gb3JtdWxhRmllbGRDaGFuZ2UoZm9ybXVsYUZpZWxkOiBhbnkpe1xyXG4gIH1cclxuXHJcbiAgb3BlbkZvcm11bGFEaWFsb2coZm9ybXVsYUZpZWxkOiBhbnkpIHtcclxuICAgIHRoaXMuZGlhbG9nRm9ybXVsYVJlZiA9IHRoaXMuZGlhbG9nLm9wZW4odGhpcy5kaWFsb2dGb3JtdWxhLCB7XHJcbiAgICAgIGRpc2FibGVDbG9zZTogdHJ1ZSxcclxuICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXHJcbiAgICAgIHdpZHRoOiBcIjc1JVwiLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgZm9ybXVsYTogdGhpcy5mb3JtdWxhRmllbGRzU3RydWN0dXJlLmZpbmQoeCA9PiB4LmtleSA9PSBmb3JtdWxhRmllbGQua2V5KS52YWx1ZSxcclxuICAgICAgICBmaWVsZHM6IHRoaXMuZm9ybS5GaWVsZHNcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gICAgdGhpcy5kaWFsb2dGb3JtdWxhUmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcclxuICAgICAgdmFyIGZvcm11bGFUb0NoYW5nZSA9IHRoaXMuZm9ybXVsYUZpZWxkc1N0cnVjdHVyZS5maW5kKHggPT4geC5rZXkgPT0gZm9ybXVsYUZpZWxkLmtleSk7XHJcbiAgICAgIGZvcm11bGFUb0NoYW5nZS52YWx1ZSA9IHJlc3VsdC5mb3JtdWxhLnRvU3RyaW5nKCkgPT0gXCJcIiA/IG51bGwgOiByZXN1bHQuZm9ybXVsYS50b1N0cmluZygpO1xyXG4gICAgICB0aGlzLm9uRm9ybXVsYUZpZWxkQ2hhbmdlKGZvcm11bGFUb0NoYW5nZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJwYWRkZXJcIiAqbmdJZj1cInRyaWdnZXIuY29uZGl0aW9ucyAhPSBudWxsXCI+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPkRlc2NyaXppb25lIFRyaWdnZXI8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTlcIj5cclxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1sYWJlbCAgY2xhc3M9XCJwdC0xXCI+IERlc2NyaXppb25lIDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFsobmdNb2RlbCldPVwidHJpZ2dlci5kZXNjcmlwdGlvblwiIFtyZWFkb25seV09XCJmYWxzZVwiIFtyZXF1aXJlZF09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtM1wiPlRpcG8gVHJpZ2dlcjwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOVwiPlxyXG4gICAgICAgICAgICA8ZXFwLXNlbGVjdCBbYXJyYXlEYXRhXT1cImZvcm11bGFLZXlzXCIgWyhuZ01vZGVsSW5wdXQpXT1cInNlbGVjdGVkRm9ybXVsYVwiXHJcbiAgICAgICAgICAgIFthcnJheUtleVByb3BlcnR5XT1cIidrZXknXCIgW2FycmF5VmFsdWVQcm9wZXJ0eV09XCIna2V5J1wiIFtzaG93Q2FuY2VsQnV0dG9uXT1cImZhbHNlXCIgKG5nTW9kZWxJbnB1dENoYW5nZSk9XCJvbkNoYW5nZUZvcm11bGEoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICA8L2VxcC1zZWxlY3Q+ICAgICAgICAgICAgXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwicm93XCIgKm5nRm9yPVwibGV0IGZvcm11bGFGaWVsZCBvZiBmb3JtdWxhRmllbGRzU3RydWN0dXJlXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC0zXCI+e3tmb3JtdWxhRmllbGQua2V5fX08L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTlcIj5cclxuICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgPG1hdC1sYWJlbCAgY2xhc3M9XCJwdC0xXCI+IHt7Zm9ybXVsYUZpZWxkLmtleX19IDwvbWF0LWxhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IG1hdElucHV0IFtyZWFkb25seV09XCJmYWxzZVwiIFtyZXF1aXJlZF09XCJmYWxzZVwiIChjbGljayk9XCJvcGVuRm9ybXVsYURpYWxvZyhmb3JtdWxhRmllbGQpXCIgWyhuZ01vZGVsKV09XCJmb3JtdWxhRmllbGQudmFsdWVcIiAobmdNb2RlbENoYW5nZSk9XCJvbkZvcm11bGFGaWVsZENoYW5nZShmb3JtdWxhRmllbGQpXCI+XHJcbiAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCIgKGNsaWNrKT1cImFkZENvbmRpdGlvbigpXCI+QWdnaXVuZ2kgY29uZGl6aW9uZTwvYnV0dG9uPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJwYWRkZXJcIiAqbmdGb3I9XCJsZXQgY29uZGl0aW9uIG9mIHRyaWdnZXIuY29uZGl0aW9uc1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdJZj1cImNvbmRpdGlvbi5GaWVsZCAhPSBudWxsXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtMVwiPjxidXR0b24gY2xhc3M9XCJidG4gYnRuLWRhbmdlclwiPjxtYXQtaWNvbiAoY2xpY2spPVwiZGVsZXRlQ29uZGl0aW9uKGNvbmRpdGlvbilcIj5kZWxldGU8L21hdC1pY29uPjwvYnV0dG9uPjwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLTJcIj5cclxuICAgICAgICAgICAgICAgIDxlcXAtc2VsZWN0IFthcnJheURhdGFdPVwiZm9ybS5GaWVsZHNcIiBbKG5nTW9kZWxJbnB1dCldPVwiY29uZGl0aW9uLkZpZWxkXCJcclxuICAgICAgICAgICAgICAgIFthcnJheUtleVByb3BlcnR5XT1cIidOYW1lJ1wiIFthcnJheVZhbHVlUHJvcGVydHldPVwiJ05hbWUnXCJcclxuICAgICAgICAgICAgICAgIFtzaG93Q2FuY2VsQnV0dG9uXT1cImZhbHNlXCIgKG5nTW9kZWxJbnB1dENoYW5nZSk9XCJvbkZpZWxkVHlwZUNoYW5nZSgkZXZlbnQsIGNvbmRpdGlvbilcIlxyXG4gICAgICAgICAgICAgICAgW2luY2x1ZGVGdWxsT2JqZWN0XT1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgIDwvZXFwLXNlbGVjdD5cclxuICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtOVwiICpuZ0lmPVwiY29uZGl0aW9uLkZpZWxkICE9IG51bGxcIj5cclxuICAgICAgICAgICAgICAgIDxkeW5hbWljLW1vZHVsZS10cmlnZ2VyLWZpeCAjZmllbGRUZW1wbGF0ZSBbY29uZGl0aW9uXT1cImNvbmRpdGlvblwiIFtmb3JtXT1cImZvcm1cIiAodHJpZ2dlckNoYW5nZSk9XCJvblRyaWdnZXJDaGFuZ2UoJGV2ZW50LCBjb25kaXRpb24pXCI+PC9keW5hbWljLW1vZHVsZS10cmlnZ2VyLWZpeD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInJvdyBtdC0yIGFkZC1mb3JtLXJlY29yZC1idXR0b25zXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMiB0ZXh0LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJtci0yXCIgbWF0LXJhaXNlZC1idXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJzYXZlT3JFeGl0Rm9ybSh0cnVlKVwiPlxyXG4gICAgICAgICAgICAgICAgQW5udWxsYVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1yLTJcIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cInByaW1hcnlcIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJzYXZlT3JFeGl0Rm9ybShmYWxzZSlcIiBbZGlzYWJsZWRdPVwiaXNTYXZpbmdcIj5cclxuICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWlzU2F2aW5nXCI+U2FsdmE8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImlzU2F2aW5nXCI+U2FsdmF0YWdnaW8gaW4gQ29yc28uLi48L3NwYW4+XHJcbiAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG48L2Rpdj5cclxuXHJcbjwhLS1ESUFMT0cgUEVSIFNFTVBMSUZJQ0FSRSBMQSBTQ1JJVFRVUkEgREVMIENBTVBPIEZPUk1VTEEtLT5cclxuPG5nLXRlbXBsYXRlICNkaWFsb2dGb3JtdWxhPlxyXG4gICAgPGVxcC1keW5hbWljLW1vZHVsZS1hZGQtZm9ybXVsYS1jb21wb25lbnQ+XHJcbiAgICA8L2VxcC1keW5hbWljLW1vZHVsZS1hZGQtZm9ybXVsYS1jb21wb25lbnQ+XHJcbjwvbmctdGVtcGxhdGU+Il19
|