ngx-material-entity 18.1.0 → 18.2.1
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/README.md +10 -13
- package/components/create-page/create-page.component.d.ts +3 -0
- package/components/edit-page/edit-page.component.d.ts +3 -0
- package/components/input/file/file-default-input/file-default-input.component.d.ts +1 -1
- package/components/input/file/file-image-input/file-image-input.component.d.ts +3 -0
- package/components/input/file/file-input/file-input.component.d.ts +8 -2
- package/components/input/input.component.d.ts +2 -0
- package/components/input/number/number-dropdown-input/number-dropdown-input.component.d.ts +2 -0
- package/components/input/relations/references-many-input/references-many-input.component.d.ts +2 -0
- package/components/input/string/string-dropdown-input/string-dropdown-input.component.d.ts +2 -0
- package/components/input/string/string-password-input/string-password-input.component.d.ts +3 -0
- package/components/tooltip/tooltip.component.d.ts +2 -0
- package/decorators/array/array-decorator-internal.data.d.ts +3 -2
- package/decorators/array/array-decorator.data.d.ts +7 -6
- package/decorators/base/property-decorator.data.d.ts +2 -2
- package/decorators/file/file-decorator-internal.data.d.ts +3 -2
- package/decorators/file/file-decorator.data.d.ts +4 -3
- package/esm2022/components/confirm-dialog/confirm-dialog.component.mjs +4 -4
- package/esm2022/components/create-page/create-page.component.mjs +18 -8
- package/esm2022/components/custom-table/custom-table.component.mjs +4 -4
- package/esm2022/components/edit-page/edit-page.component.mjs +18 -8
- package/esm2022/components/form/form.component.mjs +5 -5
- package/esm2022/components/input/array/array-date-input/array-date-input.component.mjs +5 -5
- package/esm2022/components/input/array/array-date-range-input/array-date-range-input.component.mjs +3 -3
- package/esm2022/components/input/array/array-date-time-input/array-date-time-input.component.mjs +3 -3
- package/esm2022/components/input/array/array-string-autocomplete-chips/array-string-autocomplete-chips.component.mjs +8 -6
- package/esm2022/components/input/array/array-string-chips-input/array-string-chips-input.component.mjs +8 -6
- package/esm2022/components/input/array/array-table.class.mjs +3 -3
- package/esm2022/components/input/base-input.component.mjs +3 -3
- package/esm2022/components/input/boolean/boolean-checkbox-input/boolean-checkbox-input.component.mjs +4 -4
- package/esm2022/components/input/boolean/boolean-dropdown-input/boolean-dropdown-input.component.mjs +3 -3
- package/esm2022/components/input/boolean/boolean-toggle-input/boolean-toggle-input.component.mjs +4 -4
- package/esm2022/components/input/custom/custom.component.mjs +3 -3
- package/esm2022/components/input/date/date-input/date-input.component.mjs +3 -3
- package/esm2022/components/input/date/date-range-input/date-range-input.component.mjs +3 -3
- package/esm2022/components/input/date/date-time-input/date-time-input.component.mjs +3 -3
- package/esm2022/components/input/file/file-default-input/file-default-input.component.mjs +5 -5
- package/esm2022/components/input/file/file-image-input/file-image-input.component.mjs +9 -5
- package/esm2022/components/input/file/file-input/file-input.component.mjs +25 -12
- package/esm2022/components/input/input.component.mjs +23 -12
- package/esm2022/components/input/number/number-dropdown-input/number-dropdown-input.component.mjs +10 -6
- package/esm2022/components/input/number/number-input/number-input.component.mjs +3 -3
- package/esm2022/components/input/number/number-slider-input/number-slider-input.component.mjs +4 -4
- package/esm2022/components/input/relations/references-many-input/references-many-input.component.mjs +10 -6
- package/esm2022/components/input/string/string-autocomplete-input/string-autocomplete-input.component.mjs +3 -3
- package/esm2022/components/input/string/string-dropdown-input/string-dropdown-input.component.mjs +10 -6
- package/esm2022/components/input/string/string-input/string-input.component.mjs +3 -3
- package/esm2022/components/input/string/string-password-input/string-password-input.component.mjs +11 -6
- package/esm2022/components/input/string/string-textbox-input/string-textbox-input.component.mjs +3 -3
- package/esm2022/components/table/create-dialog/create-entity-dialog.component.mjs +9 -6
- package/esm2022/components/table/display-column-value/base-display-column-value.component.mjs +3 -3
- package/esm2022/components/table/display-column-value/display-column-value.component.mjs +3 -3
- package/esm2022/components/table/edit-dialog/edit-data.builder.mjs +1 -1
- package/esm2022/components/table/edit-dialog/edit-entity-dialog.component.mjs +9 -7
- package/esm2022/components/table/table-data.builder.mjs +3 -1
- package/esm2022/components/table/table-data.mjs +1 -1
- package/esm2022/components/table/table.component.mjs +5 -11
- package/esm2022/components/tooltip/tooltip.component.mjs +9 -5
- package/esm2022/decorators/array/array-decorator-internal.data.mjs +5 -3
- package/esm2022/decorators/array/array-decorator.data.mjs +1 -1
- package/esm2022/decorators/array/array.decorator.mjs +15 -8
- package/esm2022/decorators/base/property-decorator.data.mjs +2 -2
- package/esm2022/decorators/file/file-decorator-internal.data.mjs +4 -3
- package/esm2022/decorators/file/file-decorator.data.mjs +3 -3
- package/esm2022/decorators/file/file.decorator.mjs +7 -4
- package/esm2022/decorators/number/number.decorator.mjs +7 -4
- package/esm2022/decorators/object/object.decorator.mjs +5 -3
- package/esm2022/decorators/string/string-decorator-internal.data.mjs +2 -1
- package/esm2022/decorators/string/string.decorator.mjs +11 -6
- package/esm2022/directives/drag-drop.directive.mjs +3 -3
- package/esm2022/directives/dynamic-style-class.directive.mjs +3 -3
- package/esm2022/directives/included-in.directive.mjs +3 -3
- package/esm2022/directives/number.directive.mjs +3 -3
- package/esm2022/directives/password-match.directive.mjs +3 -3
- package/esm2022/directives/tooltip.directive.mjs +3 -3
- package/esm2022/functions/dropdown-values-to-function.function.mjs +2 -1
- package/esm2022/functions/table-column-value-to-sort-value.function.mjs +9 -5
- package/esm2022/utilities/date.utilities.mjs +1 -1
- package/esm2022/utilities/entity.utilities.mjs +36 -21
- package/esm2022/utilities/file.utilities.mjs +7 -4
- package/esm2022/utilities/validation.utilities.mjs +41 -21
- package/fesm2022/ngx-material-entity.mjs +367 -254
- package/fesm2022/ngx-material-entity.mjs.map +1 -1
- package/package.json +4 -2
- package/utilities/entity.utilities.d.ts +4 -4
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { CommonModule, Location } from '@angular/common';
|
|
2
2
|
import { HttpClient } from '@angular/common/http';
|
|
3
3
|
import { Component, ElementRef, EnvironmentInjector, HostListener, Inject, InjectionToken, Renderer2, runInInjectionContext } from '@angular/core';
|
|
4
|
+
import { FormsModule } from '@angular/forms';
|
|
4
5
|
import { MatBadgeModule } from '@angular/material/badge';
|
|
5
6
|
import { MatButtonModule } from '@angular/material/button';
|
|
6
7
|
import { MatDialog } from '@angular/material/dialog';
|
|
7
8
|
import { MatMenuModule } from '@angular/material/menu';
|
|
8
9
|
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
9
10
|
import { ActivatedRoute } from '@angular/router';
|
|
11
|
+
import { FaIconComponent } from '@fortawesome/angular-fontawesome';
|
|
12
|
+
import { faChevronLeft, faWarning } from '@fortawesome/free-solid-svg-icons';
|
|
10
13
|
import { firstValueFrom } from 'rxjs';
|
|
11
14
|
import { PageEditDataBuilder } from './page-edit-data.builder';
|
|
12
15
|
import { LodashUtilities } from '../../encapsulation/lodash.utilities';
|
|
@@ -29,7 +32,8 @@ import * as i5 from "@angular/material/button";
|
|
|
29
32
|
import * as i6 from "@angular/material/progress-spinner";
|
|
30
33
|
import * as i7 from "@angular/material/menu";
|
|
31
34
|
import * as i8 from "@angular/material/badge";
|
|
32
|
-
import * as i9 from "
|
|
35
|
+
import * as i9 from "@angular/forms";
|
|
36
|
+
import * as i10 from "../../services/entity.service";
|
|
33
37
|
/**
|
|
34
38
|
* The entity service that needs to be provided in the providers array of the edit page route.
|
|
35
39
|
*/
|
|
@@ -61,6 +65,10 @@ export class NgxMatEntityEditPageComponent {
|
|
|
61
65
|
el;
|
|
62
66
|
renderer;
|
|
63
67
|
globalConfig;
|
|
68
|
+
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
69
|
+
faChevronLeft = faChevronLeft;
|
|
70
|
+
// eslint-disable-next-line jsdoc/require-jsdoc
|
|
71
|
+
faWarning = faWarning;
|
|
64
72
|
/**
|
|
65
73
|
* Contains HelperMethods around handling Entities and their property-metadata.
|
|
66
74
|
*/
|
|
@@ -316,10 +324,10 @@ export class NgxMatEntityEditPageComponent {
|
|
|
316
324
|
editActionDisabled(action) {
|
|
317
325
|
return runInInjectionContext(this.injector, () => !action.enabled(this.entityPriorChanges));
|
|
318
326
|
}
|
|
319
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
320
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.
|
|
327
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: NgxMatEntityEditPageComponent, deps: [{ token: i1.MatDialog }, { token: i2.Location }, { token: i3.ActivatedRoute }, { token: i0.EnvironmentInjector }, { token: NGX_EDIT_DATA_ENTITY_SERVICE }, { token: NGX_EDIT_DATA_ENTITY }, { token: NGX_EDIT_DATA }, { token: i4.HttpClient }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: NGX_COMPLETE_GLOBAL_DEFAULT_VALUES }], target: i0.ɵɵFactoryTarget.Component });
|
|
328
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.7", type: NgxMatEntityEditPageComponent, isStandalone: true, selector: "ngx-mat-entity-edit-page", host: { listeners: { "window:scroll": "checkOffset()", "window:beforeunload": "canDeactivate()" } }, ngImport: i0, template: " \n<!-- eslint-disable angular/no-call-expression -->\n@if (!isLoaded && data.displayLoadingSpinner) {\n <div class=\"page-container\">\n <br>\n <mat-spinner></mat-spinner>\n <br>\n </div>\n}\n\n@if (isLoaded) {\n <div class=\"page-container\">\n <br>\n \n <!------------>\n <!-- Header -->\n <!------------>\n <div class=\"header\">\n <div class=\"cancel-container\">\n <button type=\"button\" mat-raised-button class=\"back-button\" tabindex=\"-1\" [class.unsavedChanges]=\"hasUnsavedChanges\" (click)=\"navigateBack()\">\n <fa-icon [icon]=\"faChevronLeft\"></fa-icon>\n {{data.editData.cancelButtonLabel}}\n @if (hasUnsavedChanges) {\n <fa-icon style=\"color: orange;\" [icon]=\"faWarning\"></fa-icon>\n }\n </button>\n </div>\n <div class=\"actions-container\">\n @if (data.editData.actions.length) {\n <button type=\"button\" mat-raised-button [matMenuTriggerFor]=\"menu\">\n {{data.editData.actionsLabel}}\n </button>\n }\n <mat-menu #menu=\"matMenu\">\n @for (action of data.editData.actions; track $index) {\n <button type=\"button\" mat-menu-item [disabled]=\"editActionDisabled(action)\" (click)=\"runEditAction(action)\">\n {{action.displayName}}\n </button>\n }\n </mat-menu>\n \n @if (allowDelete) {\n <button type=\"button\" mat-raised-button color=\"warn\" class=\"delete-button\" tabindex=\"-1\" (click)=\"delete()\">\n {{data.editData.deleteButtonLabel}}\n </button>\n }\n </div>\n </div>\n \n <h1>{{data.editData.title(entityPriorChanges)}}</h1>\n \n <!----------->\n <!-- Input -->\n <!----------->\n <form (ngSubmit)=\"edit()\">\n <ngx-mat-entity-form [hideOmitForEdit]=\"true\" [isEntityReadOnly]=\"isEntityReadOnly\" [entity]=\"entity\" (selectedTabChange)=\"checkOffset()\" (formChange)=\"checkEntity()\">\n </ngx-mat-entity-form>\n \n <div class=\"bottom-row-container\">\n <div class=\"bottom-row container\">\n <button type=\"submit\" mat-raised-button matBadgeColor=\"warn\"\n [class.badge-changes]=\"!validationErrors.length\"\n [disabled]=\"isEntityReadOnly || !isEntityValid || !isEntityDirty\"\n [matBadge]=\"validationErrors.length > 0 ? validationErrors.length : changes.length\"\n [matBadgeHidden]=\"!validationErrors.length && !changes.length\"\n >\n {{data.editData.confirmButtonLabel}}\n </button>\n @if (validationErrors.length || changes.length) {\n <ngx-mat-entity-tooltip [tooltipContent]=\"tooltipContent\"></ngx-mat-entity-tooltip>\n }\n </div>\n </div>\n </form>\n <br>\n </div>\n}", styles: ["::ng-deep .badge-changes .mat-badge-content{background-color:orange;color:#fff}h1{text-align:center}mat-spinner{margin:10px auto}.page-container{width:100%;margin-left:auto;margin-right:auto;padding-left:24px;padding-right:24px}@media (min-width: 640px){.page-container{max-width:640px}}@media (min-width: 768px){.page-container{max-width:768px}}@media (min-width: 1024px){.page-container{max-width:1024px}}@media (min-width: 1280px){.page-container{max-width:1280px}}@media (min-width: 1536px){.page-container{max-width:1536px}}.bottom-row{display:flex;align-items:center;column-gap:10px;margin-top:10px}.fixed{position:fixed;bottom:0;left:0;right:0;width:100%;z-index:1000;padding:8px 20px;background-color:#fff}.header{display:flex;margin-bottom:5px;gap:10px;flex-wrap:wrap}.header button{min-width:150px}.header .cancel-container{display:flex;justify-content:flex-start;align-items:center;column-gap:10px;width:calc(50% - 10px)}.header .actions-container{display:flex;justify-content:flex-end;gap:10px;width:calc(50% - 10px)}.unsavedChanges{background-color:#ffe48d}@media (max-width: 800px){.header{margin-bottom:10px;gap:15px}.header button{min-width:0px;width:50%}.header .cancel-container,.header .actions-container{width:100%;gap:15px}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i5.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatProgressSpinnerModule }, { kind: "component", type: i6.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "ngmodule", type: MatMenuModule }, { kind: "component", type: i7.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i7.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "ngmodule", type: MatBadgeModule }, { kind: "directive", type: i8.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: TooltipComponent, selector: "ngx-mat-entity-tooltip", inputs: ["tooltipContent"] }, { kind: "component", type: NgxMatEntityFormComponent, selector: "ngx-mat-entity-form", inputs: ["entity", "isEntityReadOnly", "hideOmitForCreate", "hideOmitForEdit", "additionalOmitKeys"], outputs: ["formChange", "selectedTabChange"] }, { kind: "component", type: FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "mask", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "transform", "a11yRole"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i9.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i9.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }] });
|
|
321
329
|
}
|
|
322
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
330
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: NgxMatEntityEditPageComponent, decorators: [{
|
|
323
331
|
type: Component,
|
|
324
332
|
args: [{ selector: 'ngx-mat-entity-edit-page', standalone: true, imports: [
|
|
325
333
|
CommonModule,
|
|
@@ -328,9 +336,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
328
336
|
MatMenuModule,
|
|
329
337
|
MatBadgeModule,
|
|
330
338
|
TooltipComponent,
|
|
331
|
-
NgxMatEntityFormComponent
|
|
332
|
-
|
|
333
|
-
|
|
339
|
+
NgxMatEntityFormComponent,
|
|
340
|
+
FaIconComponent,
|
|
341
|
+
FormsModule
|
|
342
|
+
], template: " \n<!-- eslint-disable angular/no-call-expression -->\n@if (!isLoaded && data.displayLoadingSpinner) {\n <div class=\"page-container\">\n <br>\n <mat-spinner></mat-spinner>\n <br>\n </div>\n}\n\n@if (isLoaded) {\n <div class=\"page-container\">\n <br>\n \n <!------------>\n <!-- Header -->\n <!------------>\n <div class=\"header\">\n <div class=\"cancel-container\">\n <button type=\"button\" mat-raised-button class=\"back-button\" tabindex=\"-1\" [class.unsavedChanges]=\"hasUnsavedChanges\" (click)=\"navigateBack()\">\n <fa-icon [icon]=\"faChevronLeft\"></fa-icon>\n {{data.editData.cancelButtonLabel}}\n @if (hasUnsavedChanges) {\n <fa-icon style=\"color: orange;\" [icon]=\"faWarning\"></fa-icon>\n }\n </button>\n </div>\n <div class=\"actions-container\">\n @if (data.editData.actions.length) {\n <button type=\"button\" mat-raised-button [matMenuTriggerFor]=\"menu\">\n {{data.editData.actionsLabel}}\n </button>\n }\n <mat-menu #menu=\"matMenu\">\n @for (action of data.editData.actions; track $index) {\n <button type=\"button\" mat-menu-item [disabled]=\"editActionDisabled(action)\" (click)=\"runEditAction(action)\">\n {{action.displayName}}\n </button>\n }\n </mat-menu>\n \n @if (allowDelete) {\n <button type=\"button\" mat-raised-button color=\"warn\" class=\"delete-button\" tabindex=\"-1\" (click)=\"delete()\">\n {{data.editData.deleteButtonLabel}}\n </button>\n }\n </div>\n </div>\n \n <h1>{{data.editData.title(entityPriorChanges)}}</h1>\n \n <!----------->\n <!-- Input -->\n <!----------->\n <form (ngSubmit)=\"edit()\">\n <ngx-mat-entity-form [hideOmitForEdit]=\"true\" [isEntityReadOnly]=\"isEntityReadOnly\" [entity]=\"entity\" (selectedTabChange)=\"checkOffset()\" (formChange)=\"checkEntity()\">\n </ngx-mat-entity-form>\n \n <div class=\"bottom-row-container\">\n <div class=\"bottom-row container\">\n <button type=\"submit\" mat-raised-button matBadgeColor=\"warn\"\n [class.badge-changes]=\"!validationErrors.length\"\n [disabled]=\"isEntityReadOnly || !isEntityValid || !isEntityDirty\"\n [matBadge]=\"validationErrors.length > 0 ? validationErrors.length : changes.length\"\n [matBadgeHidden]=\"!validationErrors.length && !changes.length\"\n >\n {{data.editData.confirmButtonLabel}}\n </button>\n @if (validationErrors.length || changes.length) {\n <ngx-mat-entity-tooltip [tooltipContent]=\"tooltipContent\"></ngx-mat-entity-tooltip>\n }\n </div>\n </div>\n </form>\n <br>\n </div>\n}", styles: ["::ng-deep .badge-changes .mat-badge-content{background-color:orange;color:#fff}h1{text-align:center}mat-spinner{margin:10px auto}.page-container{width:100%;margin-left:auto;margin-right:auto;padding-left:24px;padding-right:24px}@media (min-width: 640px){.page-container{max-width:640px}}@media (min-width: 768px){.page-container{max-width:768px}}@media (min-width: 1024px){.page-container{max-width:1024px}}@media (min-width: 1280px){.page-container{max-width:1280px}}@media (min-width: 1536px){.page-container{max-width:1536px}}.bottom-row{display:flex;align-items:center;column-gap:10px;margin-top:10px}.fixed{position:fixed;bottom:0;left:0;right:0;width:100%;z-index:1000;padding:8px 20px;background-color:#fff}.header{display:flex;margin-bottom:5px;gap:10px;flex-wrap:wrap}.header button{min-width:150px}.header .cancel-container{display:flex;justify-content:flex-start;align-items:center;column-gap:10px;width:calc(50% - 10px)}.header .actions-container{display:flex;justify-content:flex-end;gap:10px;width:calc(50% - 10px)}.unsavedChanges{background-color:#ffe48d}@media (max-width: 800px){.header{margin-bottom:10px;gap:15px}.header button{min-width:0px;width:50%}.header .cancel-container,.header .actions-container{width:100%;gap:15px}}\n"] }]
|
|
343
|
+
}], ctorParameters: () => [{ type: i1.MatDialog }, { type: i2.Location }, { type: i3.ActivatedRoute }, { type: i0.EnvironmentInjector }, { type: i10.EntityService, decorators: [{
|
|
334
344
|
type: Inject,
|
|
335
345
|
args: [NGX_EDIT_DATA_ENTITY_SERVICE]
|
|
336
346
|
}] }, { type: undefined, decorators: [{
|
|
@@ -349,4 +359,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
349
359
|
type: HostListener,
|
|
350
360
|
args: ['window:beforeunload']
|
|
351
361
|
}] } });
|
|
352
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvZWRpdC1wYWdlL2VkaXQtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2VkaXQtcGFnZS9lZGl0LXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQVUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNKLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDOUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFdEMsT0FBTyxFQUFFLG1CQUFtQixFQUF3QixNQUFNLDBCQUEwQixDQUFDO0FBRXJGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVB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Q0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztJQUNoRyxDQUFDO3VHQXRTUSw2QkFBNkIsb0lBb0UxQiw0QkFBNEIsYUFFNUIsb0JBQW9CLGFBRXBCLGFBQWEsMEZBS2Isa0NBQWtDOzJGQTdFckMsNkJBQTZCLHlMQzNGMUMscXhHQTZFQyxpNkJES08sWUFBWSw4QkFDWixlQUFlLDJOQUNmLHdCQUF3QixrT0FDeEIsYUFBYSw2dkJBQ2IsY0FBYyw0UEFDZCxnQkFBZ0IsK0ZBQ2hCLHlCQUF5Qjs7MkZBR3BCLDZCQUE2QjtrQkFmekMsU0FBUzsrQkFDSSwwQkFBMEIsY0FHeEIsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osZUFBZTt3QkFDZix3QkFBd0I7d0JBQ3hCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxnQkFBZ0I7d0JBQ2hCLHlCQUF5QjtxQkFDNUI7OzBCQXNFSSxNQUFNOzJCQUFDLDRCQUE0Qjs7MEJBRW5DLE1BQU07MkJBQUMsb0JBQW9COzswQkFFM0IsTUFBTTsyQkFBQyxhQUFhOzswQkFLcEIsTUFBTTsyQkFBQyxrQ0FBa0M7eUNBb0M5QyxXQUFXO3NCQURWLFlBQVk7dUJBQUMsZUFBZTtnQkFxQjdCLGFBQWE7c0JBRFosWUFBWTt1QkFBQyxxQkFBcUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUsIExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEVudmlyb25tZW50SW5qZWN0b3IsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgT25Jbml0LCBSZW5kZXJlcjIsIHJ1bkluSW5qZWN0aW9uQ29udGV4dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0QmFkZ2VNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9iYWRnZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0TWVudU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xuaW1wb3J0IHsgTWF0UHJvZ3Jlc3NTcGlubmVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcHJvZ3Jlc3Mtc3Bpbm5lcic7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBQYWdlRWRpdERhdGFCdWlsZGVyLCBQYWdlRWRpdERhdGFJbnRlcm5hbCB9IGZyb20gJy4vcGFnZS1lZGl0LWRhdGEuYnVpbGRlcic7XG5pbXBvcnQgeyBCYXNlRW50aXR5VHlwZSwgRW50aXR5Q2xhc3NOZXdhYmxlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgTG9kYXNoVXRpbGl0aWVzIH0gZnJvbSAnLi4vLi4vZW5jYXBzdWxhdGlvbi9sb2Rhc2gudXRpbGl0aWVzJztcbmltcG9ydCB7IGdldENoYW5nZXNUb29sdGlwQ29udGVudCB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucy9nZXQtY2hhbmdlcy10b29sdGlwLWNvbnRlbnQuZnVuY3Rpb24nO1xuaW1wb3J0IHsgZ2V0VmFsaWRhdGlvbkVycm9yc1Rvb2x0aXBDb250ZW50IH0gZnJvbSAnLi4vLi4vZnVuY3Rpb25zL2dldC12YWxpZGF0aW9uLWVycm9ycy10b29sdGlwLWNvbnRlbnQuZnVuY3Rpb24nO1xuaW1wb3J0IHsgTkdYX0NPTVBMRVRFX0dMT0JBTF9ERUZBVUxUX1ZBTFVFUywgTmd4R2xvYmFsRGVmYXVsdFZhbHVlcyB9IGZyb20gJy4uLy4uL2dsb2JhbC1jb25maWd1cmF0aW9uLXZhbHVlcyc7XG5pbXBvcnQgeyBFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZW50aXR5LnNlcnZpY2UnO1xuaW1wb3J0IHsgVW5zYXZlZENoYW5nZXNQYWdlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdW5zYXZlZC1jaGFuZ2VzLmd1YXJkJztcbmltcG9ydCB7IERpZmZlcmVuY2UsIEVudGl0eVV0aWxpdGllcyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9lbnRpdHkudXRpbGl0aWVzJztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvciwgVmFsaWRhdGlvblV0aWxpdGllcyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy92YWxpZGF0aW9uLnV0aWxpdGllcyc7XG5pbXBvcnQgeyBDb25maXJtRGlhbG9nRGF0YSB9IGZyb20gJy4uL2NvbmZpcm0tZGlhbG9nL2NvbmZpcm0tZGlhbG9nLWRhdGEnO1xuaW1wb3J0IHsgQ29uZmlybURpYWxvZ0RhdGFCdWlsZGVyLCBDb25maXJtRGlhbG9nRGF0YUludGVybmFsIH0gZnJvbSAnLi4vY29uZmlybS1kaWFsb2cvY29uZmlybS1kaWFsb2ctZGF0YS5idWlsZGVyJztcbmltcG9ydCB7IE5neE1hdEVudGl0eUNvbmZpcm1EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmd4TWF0RW50aXR5Rm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0vZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWRpdEFjdGlvbkludGVybmFsIH0gZnJvbSAnLi4vdGFibGUvZWRpdC1kaWFsb2cvZWRpdC1kYXRhLmJ1aWxkZXInO1xuaW1wb3J0IHsgRWRpdEVudGl0eURhdGEgfSBmcm9tICcuLi90YWJsZS9lZGl0LWRpYWxvZy9lZGl0LWVudGl0eS1kYXRhJztcbmltcG9ydCB7IEVkaXREYXRhIH0gZnJvbSAnLi4vdGFibGUvdGFibGUtZGF0YSc7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XG5cbi8qKlxuICogVGhlIGRhdGEgdGhhdCBuZWVkcyB0byBiZSBwcm92aWRlZCBmb3IgYSByb3V0ZSB0byBiZSBhYmxlIHRvIGVkaXQgYSBlbnRpdHkuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzdHlsaXN0aWMvbWF4LWxlblxuZXhwb3J0IHR5cGUgUGFnZUVkaXREYXRhPEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj4gPSBPbWl0PEVkaXRFbnRpdHlEYXRhPEVudGl0eVR5cGU+LCAnZW50aXR5JyB8ICdFbnRpdHlTZXJ2aWNlQ2xhc3MnPiAmIHtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCB0byBkaXNwbGF5IGEgbG9hZGluZyBzcGlubmVyIHdoaWxlIHRoZSBlbnRpdHkgZm9yIHRoZSBwYWdlIGlzIGxvYWRlZC5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgZGlzcGxheUxvYWRpbmdTcGlubmVyPzogYm9vbGVhbixcbiAgICAvKipcbiAgICAgKiBUaGUgZGF0YSBvZiB0aGUgZGVmYXVsdCBlZGl0IHBhZ2UuXG4gICAgICovXG4gICAgZWRpdERhdGE/OiBFZGl0RGF0YTxFbnRpdHlUeXBlPiAmIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBkYXRhIGZvciB0aGUgZGlhbG9nIHdoZW4gdGhlIHVzZXIgdHJpZXMgdG8gbGVhdmUgdGhlIHNpdGUgd2l0aCB1bnNhdmVkIGNoYW5nZXMuXG4gICAgICAgICAqL1xuICAgICAgICBjb25maXJtVW5zYXZlZENoYW5nZXNEaWFsb2dEYXRhPzogQ29uZmlybURpYWxvZ0RhdGEsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBXaGV0aGVyIG9yIG5vdCBsZWF2aW5nIHdpdGggdW5zYXZlZCBjaGFuZ2VzIHNob3VsZCByZXF1aXJlIGEgY29uZmlybSBkaWFsb2cuXG4gICAgICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgICAgICovXG4gICAgICAgIHVuc2F2ZWRDaGFuZ2VzUmVxdWlyZUNvbmZpcm1EaWFsb2c/OiBib29sZWFuXG4gICAgfVxufTtcblxuLyoqXG4gKiBUaGUgZW50aXR5IHNlcnZpY2UgdGhhdCBuZWVkcyB0byBiZSBwcm92aWRlZCBpbiB0aGUgcHJvdmlkZXJzIGFycmF5IG9mIHRoZSBlZGl0IHBhZ2Ugcm91dGUuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB0eXBlc2NyaXB0L25vLWV4cGxpY2l0LWFueSwgc3R5bGlzdGljL21heC1sZW5cbmV4cG9ydCBjb25zdCBOR1hfRURJVF9EQVRBX0VOVElUWV9TRVJWSUNFOiBJbmplY3Rpb25Ub2tlbjxFbnRpdHlTZXJ2aWNlPGFueT4+ID0gbmV3IEluamVjdGlvblRva2VuPEVudGl0eVNlcnZpY2U8YW55Pj4oJ05HWF9FRElUX0RBVEFfRU5USVRZX1NFUlZJQ0UnKTtcbi8qKlxuICogVGhlIGVudGl0eSBjbGFzcyB0aGF0IG5lZWRzIHRvIGJlIHByb3ZpZGVkIGluIHRoZSBwcm92aWRlcnMgYXJyYXkgb2YgdGhlIGVkaXQgcGFnZSByb3V0ZS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHR5cGVzY3JpcHQvbm8tZXhwbGljaXQtYW55LCBzdHlsaXN0aWMvbWF4LWxlblxuZXhwb3J0IGNvbnN0IE5HWF9FRElUX0RBVEFfRU5USVRZOiBJbmplY3Rpb25Ub2tlbjxFbnRpdHlDbGFzc05ld2FibGU8YW55Pj4gPSBuZXcgSW5qZWN0aW9uVG9rZW48RW50aXR5Q2xhc3NOZXdhYmxlPGFueT4+KCdOR1hfRURJVF9EQVRBX0VOVElUWScpO1xuLyoqXG4gKiBUaGUgY29uZmlndXJhdGlvbiB0aGF0IG5lZWRzIHRvIGJlIHByb3ZpZGVkIGluIHRoZSBwcm92aWRlcnMgYXJyYXkgb2YgdGhlIGVkaXQgcGFnZSByb3V0ZS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHR5cGVzY3JpcHQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgY29uc3QgTkdYX0VESVRfREFUQTogSW5qZWN0aW9uVG9rZW48UGFnZUVkaXREYXRhPGFueT4+ID0gbmV3IEluamVjdGlvblRva2VuPFBhZ2VFZGl0RGF0YTxhbnk+PignTkdYX0VESVRfREFUQScpO1xuXG4vKipcbiAqIEEgZ2VuZXJpYyBwYWdlIHRoYXQgYWxsb3dzIHlvdSB0byBlZGl0IGEgc3BlY2lmaWMgZW50aXR5LlxuICogRm9yIHRoaXMgdG8gd29yayB5b3UgbmVlZCB0byBwcm92aWRlIHNvbWUgZGF0YSBmb3IgdGhlIHJvdXRlLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25neC1tYXQtZW50aXR5LWVkaXQtcGFnZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VkaXQtcGFnZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZWRpdC1wYWdlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgICAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgICAgIE1hdEJhZGdlTW9kdWxlLFxuICAgICAgICBUb29sdGlwQ29tcG9uZW50LFxuICAgICAgICBOZ3hNYXRFbnRpdHlGb3JtQ29tcG9uZW50XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3hNYXRFbnRpdHlFZGl0UGFnZUNvbXBvbmVudDxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+IGltcGxlbWVudHMgT25Jbml0LCBVbnNhdmVkQ2hhbmdlc1BhZ2Uge1xuXG4gICAgLyoqXG4gICAgICogQ29udGFpbnMgSGVscGVyTWV0aG9kcyBhcm91bmQgaGFuZGxpbmcgRW50aXRpZXMgYW5kIHRoZWlyIHByb3BlcnR5LW1ldGFkYXRhLlxuICAgICAqL1xuICAgIEVudGl0eVV0aWxpdGllczogdHlwZW9mIEVudGl0eVV0aWxpdGllcyA9IEVudGl0eVV0aWxpdGllcztcblxuICAgIC8qKlxuICAgICAqIFRoZSBlbnRpdHkgdGhhdCBpcyBiZWluZyBlZGl0ZWQuXG4gICAgICovXG4gICAgZW50aXR5ITogRW50aXR5VHlwZTtcbiAgICAvKipcbiAgICAgKiBUaGUgZW50aXR5IGJlZm9yZSBhbnkgY2hhbmdlcyBoYXZlIGJlZW4gbWFkZS5cbiAgICAgKi9cbiAgICBlbnRpdHlQcmlvckNoYW5nZXMhOiBFbnRpdHlUeXBlO1xuXG4gICAgLyoqXG4gICAgICogQ29uZmlndXJhdGlvbiBkYXRhIGZvciB0aGUgY29tcG9uZW50LlxuICAgICAqL1xuICAgIGRhdGEhOiBQYWdlRWRpdERhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPjtcblxuICAgIC8qKlxuICAgICAqIEFsbCB2YWxpZGF0aW9uIGVycm9ycyBvZiB0aGUgZW50aXR5LlxuICAgICAqL1xuICAgIHZhbGlkYXRpb25FcnJvcnM6IFZhbGlkYXRpb25FcnJvcltdID0gW107XG4gICAgLyoqXG4gICAgICogV2hldGhlciBvciBub3QgdGhlIGVudGl0eSBpcyB2YWxpZC5cbiAgICAgKi9cbiAgICBpc0VudGl0eVZhbGlkOiBib29sZWFuID0gdHJ1ZTtcbiAgICAvKipcbiAgICAgKiBBbGwgY2hhbmdlcyB0aGF0IGhhdmUgYmVlbiBkb25lIHRvIHRoZSBlbnRpdHkuXG4gICAgICovXG4gICAgY2hhbmdlczogRGlmZmVyZW5jZTxFbnRpdHlUeXBlPltdID0gW107XG4gICAgLyoqXG4gICAgICogV2hldGhlciBvciBub3QgdGhlIGVudGl0eSBpcyBkaXJ0eS5cbiAgICAgKi9cbiAgICBpc0VudGl0eURpcnR5OiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogV2hhdCB0byBkaXNwbGF5IGluc2lkZSB0aGUgdG9vbHRpcC5cbiAgICAgKi9cbiAgICB0b29sdGlwQ29udGVudDogc3RyaW5nID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgZW50aXR5IGlzIHJlYWRvbmx5LlxuICAgICAqL1xuICAgIGlzRW50aXR5UmVhZE9ubHkhOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgb3Igbm90IHRoZSBjdXJyZW50IHVzZXIgaXMgYWxsb3dlZCB0byBkZWxldGUgdGhlIGVudGl0eS5cbiAgICAgKi9cbiAgICBhbGxvd0RlbGV0ZSE6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgcGFnZSBoYXMgYmVlbiBsb2FkZWQuXG4gICAgICovXG4gICAgaXNMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHByaXZhdGUgaW5Db25maXJtTmF2aWdhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBnZXQgaGFzVW5zYXZlZENoYW5nZXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzRW50aXR5RGlydHkgJiYgdGhpcy5kYXRhLmVkaXREYXRhLnVuc2F2ZWRDaGFuZ2VzUmVxdWlyZUNvbmZpcm1EaWFsb2c7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbG9jYXRpb246IExvY2F0aW9uLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogRW52aXJvbm1lbnRJbmplY3RvcixcbiAgICAgICAgQEluamVjdChOR1hfRURJVF9EQVRBX0VOVElUWV9TRVJWSUNFKVxuICAgICAgICByZWFkb25seSBlbnRpdHlTZXJ2aWNlOiBFbnRpdHlTZXJ2aWNlPEVudGl0eVR5cGU+LFxuICAgICAgICBASW5qZWN0KE5HWF9FRElUX0RBVEFfRU5USVRZKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IEVudGl0eUNsYXNzOiBFbnRpdHlDbGFzc05ld2FibGU8RW50aXR5VHlwZT4sXG4gICAgICAgIEBJbmplY3QoTkdYX0VESVRfREFUQSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpbnB1dERhdGE6IFBhZ2VFZGl0RGF0YTxFbnRpdHlUeXBlPixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGVsOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIEBJbmplY3QoTkdYX0NPTVBMRVRFX0dMT0JBTF9ERUZBVUxUX1ZBTFVFUylcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGdsb2JhbENvbmZpZzogTmd4R2xvYmFsRGVmYXVsdFZhbHVlc1xuICAgICkgeyB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRhID0gbmV3IFBhZ2VFZGl0RGF0YUJ1aWxkZXIodGhpcy5pbnB1dERhdGEsIHRoaXMuZ2xvYmFsQ29uZmlnKS5nZXRSZXN1bHQoKTtcbiAgICAgICAgaWYgKHRoaXMuZGF0YSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlybU5hdmlnYXRlQmFjaygpO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBlZGl0IGRhdGEgd2FzIHByb3ZpZGVkIGZvciBcIk5HWF9FRElUX0RBVEFcIi4gWW91IG5lZWQgdG8gcHJvdmlkZSBhIHZhbHVlIGluIHlvdXIgcm91dGVzIHByb3ZpZGVycyBhcnJheS4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlkOiBFbnRpdHlUeXBlW2tleW9mIEVudGl0eVR5cGVdID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ2lkJykgYXMgRW50aXR5VHlwZVtrZXlvZiBFbnRpdHlUeXBlXTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb21pc2UvcHJlZmVyLWF3YWl0LXRvLXRoZW5cbiAgICAgICAgdm9pZCB0aGlzLmVudGl0eVNlcnZpY2UuZmluZEJ5SWQoaWQpLnRoZW4oZm91bmRFbnRpdHkgPT4ge1xuICAgICAgICAgICAgaWYgKGZvdW5kRW50aXR5ID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlybU5hdmlnYXRlQmFjaygpO1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IGZpbmQgZW50aXR5IHdpdGggaWQgJHtpZH1gKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5lbnRpdHkgPSBuZXcgdGhpcy5FbnRpdHlDbGFzcyhmb3VuZEVudGl0eSk7XG4gICAgICAgICAgICB0aGlzLmVudGl0eVByaW9yQ2hhbmdlcyA9IExvZGFzaFV0aWxpdGllcy5jbG9uZURlZXAodGhpcy5lbnRpdHkpO1xuXG4gICAgICAgICAgICBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvciwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNFbnRpdHlSZWFkT25seSA9ICF0aGlzLmRhdGEuYWxsb3dVcGRhdGUodGhpcy5lbnRpdHlQcmlvckNoYW5nZXMpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWxsb3dEZWxldGUgPSB0aGlzLmRhdGEuYWxsb3dEZWxldGUodGhpcy5lbnRpdHlQcmlvckNoYW5nZXMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmlzTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jaGVja09mZnNldCgpLCAxKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLmNoZWNrSXNFbnRpdHlWYWxpZCgpLCAxKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSBib3R0b20gcm93IHNob3VsZCBiZSBkaXNwbGF5ZWQgYXMgZml4ZWQuXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcpXG4gICAgY2hlY2tPZmZzZXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNjcm9sbFk6IG51bWJlciA9IHdpbmRvdy5zY3JvbGxZO1xuICAgICAgICBjb25zdCBib3R0b21Sb3c6IEhUTUxFbGVtZW50IHwgbnVsbCA9ICh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnF1ZXJ5U2VsZWN0b3IoJy5ib3R0b20tcm93Jyk7XG4gICAgICAgIGNvbnN0IGJvdHRvbVJvd0NvbnRhaW5lcjogSFRNTEVsZW1lbnQgfCBudWxsID0gKHRoaXMuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkucXVlcnlTZWxlY3RvcignLmJvdHRvbS1yb3ctY29udGFpbmVyJyk7XG5cbiAgICAgICAgaWYgKGJvdHRvbVJvdyAmJiBib3R0b21Sb3dDb250YWluZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGJvdHRvbVJvd0NvbnRhaW5lck9mZnNldDogbnVtYmVyID0gYm90dG9tUm93Q29udGFpbmVyLm9mZnNldFRvcDtcbiAgICAgICAgICAgIGNvbnN0IHdpbmRvd0hlaWdodDogbnVtYmVyID0gd2luZG93LmlubmVySGVpZ2h0O1xuXG4gICAgICAgICAgICBpZiAoc2Nyb2xsWSArIHdpbmRvd0hlaWdodCA+PSBib3R0b21Sb3dDb250YWluZXJPZmZzZXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGJvdHRvbVJvdywgJ2ZpeGVkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGJvdHRvbVJvdywgJ2ZpeGVkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpiZWZvcmV1bmxvYWQnKVxuICAgIGNhbkRlYWN0aXZhdGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5oYXNVbnNhdmVkQ2hhbmdlcyB8fCB0aGlzLmluQ29uZmlybU5hdmlnYXRpb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSBlbnRpdHkgaGFzIGJlY29tZSBpbnZhbGlkIG9yIGRpcnR5LlxuICAgICAqL1xuICAgIGFzeW5jIGNoZWNrRW50aXR5KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLmNoZWNrSXNFbnRpdHlWYWxpZCgpO1xuICAgICAgICB0aGlzLmNoYW5nZXMgPSBhd2FpdCBFbnRpdHlVdGlsaXRpZXMuZ2V0RGlmZmVyZW5jZXNCZXR3ZWVuRW50aXRpZXModGhpcy5lbnRpdHksIHRoaXMuZW50aXR5UHJpb3JDaGFuZ2VzLCB0aGlzLmh0dHAsIHRoaXMuaW5qZWN0b3IpO1xuICAgICAgICBpZiAoIXRoaXMudmFsaWRhdGlvbkVycm9ycy5sZW5ndGggJiYgdGhpcy5jaGFuZ2VzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy50b29sdGlwQ29udGVudCA9IHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PiBnZXRDaGFuZ2VzVG9vbHRpcENvbnRlbnQodGhpcy5jaGFuZ2VzKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc0VudGl0eURpcnR5ID0gISF0aGlzLmNoYW5nZXMubGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgY2hlY2tJc0VudGl0eVZhbGlkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMgPSBhd2FpdCBWYWxpZGF0aW9uVXRpbGl0aWVzLmdldEVudGl0eVZhbGlkYXRpb25FcnJvcnModGhpcy5lbnRpdHksIHRoaXMuaW5qZWN0b3IsICd1cGRhdGUnKTtcbiAgICAgICAgaWYgKHRoaXMudmFsaWRhdGlvbkVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcENvbnRlbnQgPSBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvciwgKCkgPT4gZ2V0VmFsaWRhdGlvbkVycm9yc1Rvb2x0aXBDb250ZW50KHRoaXMudmFsaWRhdGlvbkVycm9ycykpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNFbnRpdHlWYWxpZCA9IHRoaXMudmFsaWRhdGlvbkVycm9ycy5sZW5ndGggPT09IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJpZXMgdG8gc2F2ZSB0aGUgY2hhbmdlcyBhbmQgY2xvc2UgdGhlIGRpYWxvZyBhZnRlcndhcmRzLlxuICAgICAqIEFsc28gaGFuZGxlcyB0aGUgY29uZmlybWF0aW9uIGlmIHJlcXVpcmVkLlxuICAgICAqL1xuICAgIGFzeW5jIGVkaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLmlzRW50aXR5UmVhZE9ubHkgfHwgIXRoaXMuaXNFbnRpdHlWYWxpZCB8fCAhdGhpcy5pc0VudGl0eURpcnR5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmRhdGEuZWRpdERhdGEuZWRpdFJlcXVpcmVzQ29uZmlybURpYWxvZykge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5jb25maXJtRWRpdCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHN0eWxpc3RpYy9tYXgtbGVuXG4gICAgICAgIGNvbnN0IGRpYWxvZ0RhdGE6IENvbmZpcm1EaWFsb2dEYXRhSW50ZXJuYWwgPSBuZXcgQ29uZmlybURpYWxvZ0RhdGFCdWlsZGVyKHRoaXMuZ2xvYmFsQ29uZmlnLCB0aGlzLmRhdGEuZWRpdERhdGEuY29uZmlybUVkaXREaWFsb2dEYXRhKVxuICAgICAgICAgICAgLndpdGhEZWZhdWx0KCd0ZXh0JywgdGhpcy5nbG9iYWxDb25maWcuY29uZmlybVNhdmVUZXh0KVxuICAgICAgICAgICAgLndpdGhEZWZhdWx0KCdjb25maXJtQnV0dG9uTGFiZWwnLCB0aGlzLmdsb2JhbENvbmZpZy5zYXZlTGFiZWwpXG4gICAgICAgICAgICAud2l0aERlZmF1bHQoJ3RpdGxlJywgdGhpcy5nbG9iYWxDb25maWcuZWRpdExhYmVsKVxuICAgICAgICAgICAgLmdldFJlc3VsdCgpO1xuICAgICAgICBjb25zdCBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxOZ3hNYXRFbnRpdHlDb25maXJtRGlhbG9nQ29tcG9uZW50LCBib29sZWFuPiA9IHRoaXMuZGlhbG9nLm9wZW4oTmd4TWF0RW50aXR5Q29uZmlybURpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICAgICAgZGF0YTogZGlhbG9nRGF0YSxcbiAgICAgICAgICAgIGF1dG9Gb2N1czogZmFsc2UsXG4gICAgICAgICAgICByZXN0b3JlRm9jdXM6IGZhbHNlXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCByZXM6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKSk7XG4gICAgICAgIGlmIChyZXMgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5jb25maXJtRWRpdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBjb25maXJtRWRpdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5lbnRpdHlTZXJ2aWNlLnVwZGF0ZSh0aGlzLmVudGl0eSwgdGhpcy5lbnRpdHlQcmlvckNoYW5nZXMpO1xuICAgICAgICB0aGlzLmNvbmZpcm1OYXZpZ2F0ZUJhY2soKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmllcyB0byBkZWxldGUgdGhlIGVudGl0eSBhbmQgY2xvc2UgdGhlIGRpYWxvZyBhZnRlcndhcmRzLlxuICAgICAqIEFsc28gaGFuZGxlcyB0aGUgY29uZmlybWF0aW9uIGlmIHJlcXVpcmVkLlxuICAgICAqL1xuICAgIGFzeW5jIGRlbGV0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKCF0aGlzLmRhdGEuZWRpdERhdGEuZGVsZXRlUmVxdWlyZXNDb25maXJtRGlhbG9nKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNvbmZpcm1EZWxldGUoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzdHlsaXN0aWMvbWF4LWxlblxuICAgICAgICBjb25zdCBkaWFsb2dEYXRhOiBDb25maXJtRGlhbG9nRGF0YUludGVybmFsID0gbmV3IENvbmZpcm1EaWFsb2dEYXRhQnVpbGRlcih0aGlzLmdsb2JhbENvbmZpZywgdGhpcy5kYXRhLmVkaXREYXRhLmNvbmZpcm1EZWxldGVEaWFsb2dEYXRhKVxuICAgICAgICAgICAgLndpdGhEZWZhdWx0KCd0ZXh0JywgdGhpcy5nbG9iYWxDb25maWcuY29uZmlybURlbGV0ZVRleHQpXG4gICAgICAgICAgICAud2l0aERlZmF1bHQoJ3R5cGUnLCAnZGVsZXRlJylcbiAgICAgICAgICAgIC53aXRoRGVmYXVsdCgnY29uZmlybUJ1dHRvbkxhYmVsJywgdGhpcy5nbG9iYWxDb25maWcuZGVsZXRlTGFiZWwpXG4gICAgICAgICAgICAud2l0aERlZmF1bHQoJ3RpdGxlJywgdGhpcy5nbG9iYWxDb25maWcuZGVsZXRlTGFiZWwpXG4gICAgICAgICAgICAuZ2V0UmVzdWx0KCk7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE5neE1hdEVudGl0eUNvbmZpcm1EaWFsb2dDb21wb25lbnQsIGJvb2xlYW4+ID0gdGhpcy5kaWFsb2cub3BlbihOZ3hNYXRFbnRpdHlDb25maXJtRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiBkaWFsb2dEYXRhLFxuICAgICAgICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgICAgICAgIHJlc3RvcmVGb2N1czogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHJlczogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpKTtcbiAgICAgICAgaWYgKHJlcyA9PSB0cnVlKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNvbmZpcm1EZWxldGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgY29uZmlybURlbGV0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5lbnRpdHlTZXJ2aWNlLmRlbGV0ZSh0aGlzLmVudGl0eVByaW9yQ2hhbmdlcyk7XG4gICAgICAgIHRoaXMuY29uZmlybU5hdmlnYXRlQmFjaygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRyaWVzIHRvIG5hdmlnYXRlIGJhY2suXG4gICAgICovXG4gICAgYXN5bmMgbmF2aWdhdGVCYWNrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAoIXRoaXMuaGFzVW5zYXZlZENoYW5nZXMpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlybU5hdmlnYXRlQmFjaygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzOiBib29sZWFuID0gYXdhaXQgdGhpcy5vcGVuQ29uZmlybU5hdmlnYXRpb25EaWFsb2coKTtcbiAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgdGhpcy5jb25maXJtTmF2aWdhdGVCYWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGFzeW5jIG9wZW5Db25maXJtTmF2aWdhdGlvbkRpYWxvZygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8Tmd4TWF0RW50aXR5Q29uZmlybURpYWxvZ0NvbXBvbmVudCwgYm9vbGVhbj4gPSB0aGlzLmRpYWxvZy5vcGVuKE5neE1hdEVudGl0eUNvbmZpcm1EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGRhdGE6IHRoaXMuZGF0YS5lZGl0RGF0YS5jb25maXJtVW5zYXZlZENoYW5nZXNEaWFsb2dEYXRhLFxuICAgICAgICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgICAgICAgIHJlc3RvcmVGb2N1czogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBhd2FpdCBmaXJzdFZhbHVlRnJvbShkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKSkgPz8gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb25maXJtTmF2aWdhdGVCYWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluQ29uZmlybU5hdmlnYXRpb24gPSB0cnVlO1xuICAgICAgICBFbnRpdHlVdGlsaXRpZXMucmVzZXRDaGFuZ2VzT25FbnRpdHkodGhpcy5lbnRpdHksIHRoaXMuZW50aXR5UHJpb3JDaGFuZ2VzKTtcbiAgICAgICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUnVucyB0aGUgZWRpdCBhY3Rpb24gb24gdGhlIGVudGl0eS5cbiAgICAgKiBAcGFyYW0gYWN0aW9uIC0gVGhlIGFjdGlvbiB0byBydW4uXG4gICAgICovXG4gICAgYXN5bmMgcnVuRWRpdEFjdGlvbihhY3Rpb246IEVkaXRBY3Rpb25JbnRlcm5hbDxFbnRpdHlUeXBlPik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCByZXF1aXJlQ29uZmlybURpYWxvZzogYm9vbGVhbiA9IHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYWN0aW9uLnJlcXVpcmVDb25maXJtRGlhbG9nKHRoaXMuZW50aXR5UHJpb3JDaGFuZ2VzKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCFyZXF1aXJlQ29uZmlybURpYWxvZykge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5jb25maXJtUnVuRWRpdEFjdGlvbihhY3Rpb24pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE5neE1hdEVudGl0eUNvbmZpcm1EaWFsb2dDb21wb25lbnQsIGJvb2xlYW4+ID0gdGhpcy5kaWFsb2cub3BlbihOZ3hNYXRFbnRpdHlDb25maXJtRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiBhY3Rpb24uY29uZmlybURpYWxvZ0RhdGEsXG4gICAgICAgICAgICBhdXRvRm9jdXM6IGZhbHNlLFxuICAgICAgICAgICAgcmVzdG9yZUZvY3VzOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgcmVzOiBib29sZWFuIHwgdW5kZWZpbmVkID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkpO1xuICAgICAgICBpZiAocmVzID09IHRydWUpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY29uZmlybVJ1bkVkaXRBY3Rpb24oYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgY29uZmlybVJ1bkVkaXRBY3Rpb24oYWN0aW9uOiBFZGl0QWN0aW9uSW50ZXJuYWw8RW50aXR5VHlwZT4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGF3YWl0IGFjdGlvbi5hY3Rpb24odGhpcy5lbnRpdHksIHRoaXMuZW50aXR5UHJpb3JDaGFuZ2VzKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY2hlY2tFbnRpdHkoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGFuIEVkaXRBY3Rpb24gaXMgZGlzYWJsZWQgKGUuZy4gQmVjYXVzZSB0aGUgY3VycmVudCBlbnRyeSBkb2Vzbid0IGZ1bGxmaWwgdGhlIHJlcXVpcmVtZW50cykuXG4gICAgICogQHBhcmFtIGFjdGlvbiAtIFRoZSBFZGl0QWN0aW9uIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIFdoZXRoZXIgb3Igbm90IHRoZSBBY3Rpb24gY2FuIGJlIHVzZWQuXG4gICAgICovXG4gICAgZWRpdEFjdGlvbkRpc2FibGVkKGFjdGlvbjogRWRpdEFjdGlvbkludGVybmFsPEVudGl0eVR5cGU+KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvciwgKCkgPT4gIWFjdGlvbi5lbmFibGVkKHRoaXMuZW50aXR5UHJpb3JDaGFuZ2VzKSk7XG4gICAgfVxufSIsIiBcbjwhLS0gZXNsaW50LWRpc2FibGUgYW5ndWxhci9uby1jYWxsLWV4cHJlc3Npb24gLS0+XG5AaWYgKCFpc0xvYWRlZCAmJiBkYXRhLmRpc3BsYXlMb2FkaW5nU3Bpbm5lcikge1xuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgICAgPGJyPlxuICAgICAgICA8bWF0LXNwaW5uZXI+PC9tYXQtc3Bpbm5lcj5cbiAgICAgICAgPGJyPlxuICAgIDwvZGl2PlxufVxuXG5AaWYgKGlzTG9hZGVkKSB7XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxuICAgICAgICA8YnI+XG4gICAgXG4gICAgICAgIDwhLS0tLS0tLS0tLS0tPlxuICAgICAgICA8IS0tIEhlYWRlciAtLT5cbiAgICAgICAgPCEtLS0tLS0tLS0tLS0+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYW5jZWwtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LXJhaXNlZC1idXR0b24gY2xhc3M9XCJiYWNrLWJ1dHRvblwiIHRhYmluZGV4PVwiLTFcIiBbY2xhc3MudW5zYXZlZENoYW5nZXNdPVwiaGFzVW5zYXZlZENoYW5nZXNcIiAoY2xpY2spPVwibmF2aWdhdGVCYWNrKClcIj5cbiAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hldnJvbi1sZWZ0XCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICB7e2RhdGEuZWRpdERhdGEuY2FuY2VsQnV0dG9uTGFiZWx9fVxuICAgICAgICAgICAgICAgICAgICBAaWYgKGhhc1Vuc2F2ZWRDaGFuZ2VzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS13YXJuaW5nXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIEBpZiAoZGF0YS5lZGl0RGF0YS5hY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtcmFpc2VkLWJ1dHRvbiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWVudVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3tkYXRhLmVkaXREYXRhLmFjdGlvbnNMYWJlbH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8bWF0LW1lbnUgI21lbnU9XCJtYXRNZW51XCI+XG4gICAgICAgICAgICAgICAgICAgIEBmb3IgKGFjdGlvbiBvZiBkYXRhLmVkaXREYXRhLmFjdGlvbnM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LW1lbnUtaXRlbSBbZGlzYWJsZWRdPVwiZWRpdEFjdGlvbkRpc2FibGVkKGFjdGlvbilcIiAoY2xpY2spPVwicnVuRWRpdEFjdGlvbihhY3Rpb24pXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3thY3Rpb24uZGlzcGxheU5hbWV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L21hdC1tZW51PlxuICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgQGlmIChhbGxvd0RlbGV0ZSkge1xuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtcmFpc2VkLWJ1dHRvbiBjb2xvcj1cIndhcm5cIiBjbGFzcz1cImRlbGV0ZS1idXR0b25cIiB0YWJpbmRleD1cIi0xXCIgKGNsaWNrKT1cImRlbGV0ZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e2RhdGEuZWRpdERhdGEuZGVsZXRlQnV0dG9uTGFiZWx9fVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgXG4gICAgICAgIDxoMT57e2RhdGEuZWRpdERhdGEudGl0bGUoZW50aXR5UHJpb3JDaGFuZ2VzKX19PC9oMT5cbiAgICBcbiAgICAgICAgPCEtLS0tLS0tLS0tLT5cbiAgICAgICAgPCEtLSBJbnB1dCAtLT5cbiAgICAgICAgPCEtLS0tLS0tLS0tLT5cbiAgICAgICAgPGZvcm0+XG4gICAgICAgICAgICA8bmd4LW1hdC1lbnRpdHktZm9ybSBbaGlkZU9taXRGb3JFZGl0XT1cInRydWVcIiBbaXNFbnRpdHlSZWFkT25seV09XCJpc0VudGl0eVJlYWRPbmx5XCIgW2VudGl0eV09XCJlbnRpdHlcIiAoc2VsZWN0ZWRUYWJDaGFuZ2UpPVwiY2hlY2tPZmZzZXQoKVwiIChmb3JtQ2hhbmdlKT1cImNoZWNrRW50aXR5KClcIj5cbiAgICAgICAgICAgIDwvbmd4LW1hdC1lbnRpdHktZm9ybT5cbiAgICBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3R0b20tcm93LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3R0b20tcm93IGNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBtYXQtcmFpc2VkLWJ1dHRvbiBtYXRCYWRnZUNvbG9yPVwid2FyblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYmFkZ2UtY2hhbmdlc109XCIhdmFsaWRhdGlvbkVycm9ycy5sZW5ndGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzRW50aXR5UmVhZE9ubHkgfHwgIWlzRW50aXR5VmFsaWQgfHwgIWlzRW50aXR5RGlydHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlXT1cInZhbGlkYXRpb25FcnJvcnMubGVuZ3RoID4gMCA/IHZhbGlkYXRpb25FcnJvcnMubGVuZ3RoIDogY2hhbmdlcy5sZW5ndGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlSGlkZGVuXT1cIiF2YWxpZGF0aW9uRXJyb3JzLmxlbmd0aCAmJiAhY2hhbmdlcy5sZW5ndGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cImVkaXQoKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ZGF0YS5lZGl0RGF0YS5jb25maXJtQnV0dG9uTGFiZWx9fVxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgQGlmICh2YWxpZGF0aW9uRXJyb3JzLmxlbmd0aCB8fCBjaGFuZ2VzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1tYXQtZW50aXR5LXRvb2x0aXAgW3Rvb2x0aXBDb250ZW50XT1cInRvb2x0aXBDb250ZW50XCI+PC9uZ3gtbWF0LWVudGl0eS10b29sdGlwPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9mb3JtPlxuICAgICAgICA8YnI+XG4gICAgPC9kaXY+XG59Il19
|
|
362
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1wYWdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvZWRpdC1wYWdlL2VkaXQtcGFnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2VkaXQtcGFnZS9lZGl0LXBhZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQVUsU0FBUyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNKLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sMEJBQTBCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsZUFBZSxFQUFrQixNQUFNLGtDQUFrQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFD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cm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRW52aXJvbm1lbnRJbmplY3RvciwgSG9zdExpc3RlbmVyLCBJbmplY3QsIEluamVjdGlvblRva2VuLCBPbkluaXQsIFJlbmRlcmVyMiwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEJhZGdlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYmFkZ2UnO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdERpYWxvZywgTWF0RGlhbG9nUmVmIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdE1lbnVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9tZW51JztcbmltcG9ydCB7IE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLXNwaW5uZXInO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgRmFJY29uQ29tcG9uZW50LCBJY29uRGVmaW5pdGlvbiB9IGZyb20gJ0Bmb3J0YXdlc29tZS9hbmd1bGFyLWZvbnRhd2Vzb21lJztcbmltcG9ydCB7IGZhQ2hldnJvbkxlZnQsIGZhV2FybmluZyB9IGZyb20gJ0Bmb3J0YXdlc29tZS9mcmVlLXNvbGlkLXN2Zy1pY29ucyc7XG5pbXBvcnQgeyBmaXJzdFZhbHVlRnJvbSB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBQYWdlRWRpdERhdGFCdWlsZGVyLCBQYWdlRWRpdERhdGFJbnRlcm5hbCB9IGZyb20gJy4vcGFnZS1lZGl0LWRhdGEuYnVpbGRlcic7XG5pbXBvcnQgeyBCYXNlRW50aXR5VHlwZSwgRW50aXR5Q2xhc3NOZXdhYmxlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgTG9kYXNoVXRpbGl0aWVzIH0gZnJvbSAnLi4vLi4vZW5jYXBzdWxhdGlvbi9sb2Rhc2gudXRpbGl0aWVzJztcbmltcG9ydCB7IGdldENoYW5nZXNUb29sdGlwQ29udGVudCB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucy9nZXQtY2hhbmdlcy10b29sdGlwLWNvbnRlbnQuZnVuY3Rpb24nO1xuaW1wb3J0IHsgZ2V0VmFsaWRhdGlvbkVycm9yc1Rvb2x0aXBDb250ZW50IH0gZnJvbSAnLi4vLi4vZnVuY3Rpb25zL2dldC12YWxpZGF0aW9uLWVycm9ycy10b29sdGlwLWNvbnRlbnQuZnVuY3Rpb24nO1xuaW1wb3J0IHsgTkdYX0NPTVBMRVRFX0dMT0JBTF9ERUZBVUxUX1ZBTFVFUywgTmd4R2xvYmFsRGVmYXVsdFZhbHVlcyB9IGZyb20gJy4uLy4uL2dsb2JhbC1jb25maWd1cmF0aW9uLXZhbHVlcyc7XG5pbXBvcnQgeyBFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZW50aXR5LnNlcnZpY2UnO1xuaW1wb3J0IHsgVW5zYXZlZENoYW5nZXNQYWdlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdW5zYXZlZC1jaGFuZ2VzLmd1YXJkJztcbmltcG9ydCB7IERpZmZlcmVuY2UsIEVudGl0eVV0aWxpdGllcyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9lbnRpdHkudXRpbGl0aWVzJztcbmltcG9ydCB7IFZhbGlkYXRpb25FcnJvciwgVmFsaWRhdGlvblV0aWxpdGllcyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy92YWxpZGF0aW9uLnV0aWxpdGllcyc7XG5pbXBvcnQgeyBDb25maXJtRGlhbG9nRGF0YSB9IGZyb20gJy4uL2NvbmZpcm0tZGlhbG9nL2NvbmZpcm0tZGlhbG9nLWRhdGEnO1xuaW1wb3J0IHsgQ29uZmlybURpYWxvZ0RhdGFCdWlsZGVyLCBDb25maXJtRGlhbG9nRGF0YUludGVybmFsIH0gZnJvbSAnLi4vY29uZmlybS1kaWFsb2cvY29uZmlybS1kaWFsb2ctZGF0YS5idWlsZGVyJztcbmltcG9ydCB7IE5neE1hdEVudGl0eUNvbmZpcm1EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmd4TWF0RW50aXR5Rm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2Zvcm0vZm9ybS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRWRpdEFjdGlvbkludGVybmFsIH0gZnJvbSAnLi4vdGFibGUvZWRpdC1kaWFsb2cvZWRpdC1kYXRhLmJ1aWxkZXInO1xuaW1wb3J0IHsgRWRpdEVudGl0eURhdGEgfSBmcm9tICcuLi90YWJsZS9lZGl0LWRpYWxvZy9lZGl0LWVudGl0eS1kYXRhJztcbmltcG9ydCB7IEVkaXREYXRhIH0gZnJvbSAnLi4vdGFibGUvdGFibGUtZGF0YSc7XG5pbXBvcnQgeyBUb29sdGlwQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9vbHRpcC90b29sdGlwLmNvbXBvbmVudCc7XG5cbi8qKlxuICogVGhlIGRhdGEgdGhhdCBuZWVkcyB0byBiZSBwcm92aWRlZCBmb3IgYSByb3V0ZSB0byBiZSBhYmxlIHRvIGVkaXQgYSBlbnRpdHkuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzdHlsaXN0aWMvbWF4LWxlblxuZXhwb3J0IHR5cGUgUGFnZUVkaXREYXRhPEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj4gPSBPbWl0PEVkaXRFbnRpdHlEYXRhPEVudGl0eVR5cGU+LCAnZW50aXR5JyB8ICdFbnRpdHlTZXJ2aWNlQ2xhc3MnPiAmIHtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCB0byBkaXNwbGF5IGEgbG9hZGluZyBzcGlubmVyIHdoaWxlIHRoZSBlbnRpdHkgZm9yIHRoZSBwYWdlIGlzIGxvYWRlZC5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgZGlzcGxheUxvYWRpbmdTcGlubmVyPzogYm9vbGVhbixcbiAgICAvKipcbiAgICAgKiBUaGUgZGF0YSBvZiB0aGUgZGVmYXVsdCBlZGl0IHBhZ2UuXG4gICAgICovXG4gICAgZWRpdERhdGE/OiBFZGl0RGF0YTxFbnRpdHlUeXBlPiAmIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIFRoZSBkYXRhIGZvciB0aGUgZGlhbG9nIHdoZW4gdGhlIHVzZXIgdHJpZXMgdG8gbGVhdmUgdGhlIHNpdGUgd2l0aCB1bnNhdmVkIGNoYW5nZXMuXG4gICAgICAgICAqL1xuICAgICAgICBjb25maXJtVW5zYXZlZENoYW5nZXNEaWFsb2dEYXRhPzogQ29uZmlybURpYWxvZ0RhdGEsXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBXaGV0aGVyIG9yIG5vdCBsZWF2aW5nIHdpdGggdW5zYXZlZCBjaGFuZ2VzIHNob3VsZCByZXF1aXJlIGEgY29uZmlybSBkaWFsb2cuXG4gICAgICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgICAgICovXG4gICAgICAgIHVuc2F2ZWRDaGFuZ2VzUmVxdWlyZUNvbmZpcm1EaWFsb2c/OiBib29sZWFuXG4gICAgfVxufTtcblxuLyoqXG4gKiBUaGUgZW50aXR5IHNlcnZpY2UgdGhhdCBuZWVkcyB0byBiZSBwcm92aWRlZCBpbiB0aGUgcHJvdmlkZXJzIGFycmF5IG9mIHRoZSBlZGl0IHBhZ2Ugcm91dGUuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSB0eXBlc2NyaXB0L25vLWV4cGxpY2l0LWFueSwgc3R5bGlzdGljL21heC1sZW5cbmV4cG9ydCBjb25zdCBOR1hfRURJVF9EQVRBX0VOVElUWV9TRVJWSUNFOiBJbmplY3Rpb25Ub2tlbjxFbnRpdHlTZXJ2aWNlPGFueT4+ID0gbmV3IEluamVjdGlvblRva2VuPEVudGl0eVNlcnZpY2U8YW55Pj4oJ05HWF9FRElUX0RBVEFfRU5USVRZX1NFUlZJQ0UnKTtcbi8qKlxuICogVGhlIGVudGl0eSBjbGFzcyB0aGF0IG5lZWRzIHRvIGJlIHByb3ZpZGVkIGluIHRoZSBwcm92aWRlcnMgYXJyYXkgb2YgdGhlIGVkaXQgcGFnZSByb3V0ZS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHR5cGVzY3JpcHQvbm8tZXhwbGljaXQtYW55LCBzdHlsaXN0aWMvbWF4LWxlblxuZXhwb3J0IGNvbnN0IE5HWF9FRElUX0RBVEFfRU5USVRZOiBJbmplY3Rpb25Ub2tlbjxFbnRpdHlDbGFzc05ld2FibGU8YW55Pj4gPSBuZXcgSW5qZWN0aW9uVG9rZW48RW50aXR5Q2xhc3NOZXdhYmxlPGFueT4+KCdOR1hfRURJVF9EQVRBX0VOVElUWScpO1xuLyoqXG4gKiBUaGUgY29uZmlndXJhdGlvbiB0aGF0IG5lZWRzIHRvIGJlIHByb3ZpZGVkIGluIHRoZSBwcm92aWRlcnMgYXJyYXkgb2YgdGhlIGVkaXQgcGFnZSByb3V0ZS5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHR5cGVzY3JpcHQvbm8tZXhwbGljaXQtYW55XG5leHBvcnQgY29uc3QgTkdYX0VESVRfREFUQTogSW5qZWN0aW9uVG9rZW48UGFnZUVkaXREYXRhPGFueT4+ID0gbmV3IEluamVjdGlvblRva2VuPFBhZ2VFZGl0RGF0YTxhbnk+PignTkdYX0VESVRfREFUQScpO1xuXG4vKipcbiAqIEEgZ2VuZXJpYyBwYWdlIHRoYXQgYWxsb3dzIHlvdSB0byBlZGl0IGEgc3BlY2lmaWMgZW50aXR5LlxuICogRm9yIHRoaXMgdG8gd29yayB5b3UgbmVlZCB0byBwcm92aWRlIHNvbWUgZGF0YSBmb3IgdGhlIHJvdXRlLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25neC1tYXQtZW50aXR5LWVkaXQtcGFnZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VkaXQtcGFnZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZWRpdC1wYWdlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgICAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgICAgIE1hdEJhZGdlTW9kdWxlLFxuICAgICAgICBUb29sdGlwQ29tcG9uZW50LFxuICAgICAgICBOZ3hNYXRFbnRpdHlGb3JtQ29tcG9uZW50LFxuICAgICAgICBGYUljb25Db21wb25lbnQsXG4gICAgICAgIEZvcm1zTW9kdWxlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3hNYXRFbnRpdHlFZGl0UGFnZUNvbXBvbmVudDxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+IGltcGxlbWVudHMgT25Jbml0LCBVbnNhdmVkQ2hhbmdlc1BhZ2Uge1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBmYUNoZXZyb25MZWZ0OiBJY29uRGVmaW5pdGlvbiA9IGZhQ2hldnJvbkxlZnQ7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBmYVdhcm5pbmc6IEljb25EZWZpbml0aW9uID0gZmFXYXJuaW5nO1xuXG4gICAgLyoqXG4gICAgICogQ29udGFpbnMgSGVscGVyTWV0aG9kcyBhcm91bmQgaGFuZGxpbmcgRW50aXRpZXMgYW5kIHRoZWlyIHByb3BlcnR5LW1ldGFkYXRhLlxuICAgICAqL1xuICAgIEVudGl0eVV0aWxpdGllczogdHlwZW9mIEVudGl0eVV0aWxpdGllcyA9IEVudGl0eVV0aWxpdGllcztcblxuICAgIC8qKlxuICAgICAqIFRoZSBlbnRpdHkgdGhhdCBpcyBiZWluZyBlZGl0ZWQuXG4gICAgICovXG4gICAgZW50aXR5ITogRW50aXR5VHlwZTtcbiAgICAvKipcbiAgICAgKiBUaGUgZW50aXR5IGJlZm9yZSBhbnkgY2hhbmdlcyBoYXZlIGJlZW4gbWFkZS5cbiAgICAgKi9cbiAgICBlbnRpdHlQcmlvckNoYW5nZXMhOiBFbnRpdHlUeXBlO1xuXG4gICAgLyoqXG4gICAgICogQ29uZmlndXJhdGlvbiBkYXRhIGZvciB0aGUgY29tcG9uZW50LlxuICAgICAqL1xuICAgIGRhdGEhOiBQYWdlRWRpdERhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPjtcblxuICAgIC8qKlxuICAgICAqIEFsbCB2YWxpZGF0aW9uIGVycm9ycyBvZiB0aGUgZW50aXR5LlxuICAgICAqL1xuICAgIHZhbGlkYXRpb25FcnJvcnM6IFZhbGlkYXRpb25FcnJvcltdID0gW107XG4gICAgLyoqXG4gICAgICogV2hldGhlciBvciBub3QgdGhlIGVudGl0eSBpcyB2YWxpZC5cbiAgICAgKi9cbiAgICBpc0VudGl0eVZhbGlkOiBib29sZWFuID0gdHJ1ZTtcbiAgICAvKipcbiAgICAgKiBBbGwgY2hhbmdlcyB0aGF0IGhhdmUgYmVlbiBkb25lIHRvIHRoZSBlbnRpdHkuXG4gICAgICovXG4gICAgY2hhbmdlczogRGlmZmVyZW5jZTxFbnRpdHlUeXBlPltdID0gW107XG4gICAgLyoqXG4gICAgICogV2hldGhlciBvciBub3QgdGhlIGVudGl0eSBpcyBkaXJ0eS5cbiAgICAgKi9cbiAgICBpc0VudGl0eURpcnR5OiBib29sZWFuID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogV2hhdCB0byBkaXNwbGF5IGluc2lkZSB0aGUgdG9vbHRpcC5cbiAgICAgKi9cbiAgICB0b29sdGlwQ29udGVudDogc3RyaW5nID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgZW50aXR5IGlzIHJlYWRvbmx5LlxuICAgICAqL1xuICAgIGlzRW50aXR5UmVhZE9ubHkhOiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgb3Igbm90IHRoZSBjdXJyZW50IHVzZXIgaXMgYWxsb3dlZCB0byBkZWxldGUgdGhlIGVudGl0eS5cbiAgICAgKi9cbiAgICBhbGxvd0RlbGV0ZSE6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgcGFnZSBoYXMgYmVlbiBsb2FkZWQuXG4gICAgICovXG4gICAgaXNMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHByaXZhdGUgaW5Db25maXJtTmF2aWdhdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBnZXQgaGFzVW5zYXZlZENoYW5nZXMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzRW50aXR5RGlydHkgJiYgdGhpcy5kYXRhLmVkaXREYXRhLnVuc2F2ZWRDaGFuZ2VzUmVxdWlyZUNvbmZpcm1EaWFsb2c7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgbG9jYXRpb246IExvY2F0aW9uLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvcjogRW52aXJvbm1lbnRJbmplY3RvcixcbiAgICAgICAgQEluamVjdChOR1hfRURJVF9EQVRBX0VOVElUWV9TRVJWSUNFKVxuICAgICAgICByZWFkb25seSBlbnRpdHlTZXJ2aWNlOiBFbnRpdHlTZXJ2aWNlPEVudGl0eVR5cGU+LFxuICAgICAgICBASW5qZWN0KE5HWF9FRElUX0RBVEFfRU5USVRZKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IEVudGl0eUNsYXNzOiBFbnRpdHlDbGFzc05ld2FibGU8RW50aXR5VHlwZT4sXG4gICAgICAgIEBJbmplY3QoTkdYX0VESVRfREFUQSlcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBpbnB1dERhdGE6IFBhZ2VFZGl0RGF0YTxFbnRpdHlUeXBlPixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBodHRwOiBIdHRwQ2xpZW50LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGVsOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIEBJbmplY3QoTkdYX0NPTVBMRVRFX0dMT0JBTF9ERUZBVUxUX1ZBTFVFUylcbiAgICAgICAgcHJvdGVjdGVkIHJlYWRvbmx5IGdsb2JhbENvbmZpZzogTmd4R2xvYmFsRGVmYXVsdFZhbHVlc1xuICAgICkgeyB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRhID0gbmV3IFBhZ2VFZGl0RGF0YUJ1aWxkZXIodGhpcy5pbnB1dERhdGEsIHRoaXMuZ2xvYmFsQ29uZmlnKS5nZXRSZXN1bHQoKTtcbiAgICAgICAgaWYgKHRoaXMuZGF0YSA9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlybU5hdmlnYXRlQmFjaygpO1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdObyBlZGl0IGRhdGEgd2FzIHByb3ZpZGVkIGZvciBcIk5HWF9FRElUX0RBVEFcIi4gWW91IG5lZWQgdG8gcHJvdmlkZSBhIHZhbHVlIGluIHlvdXIgcm91dGVzIHByb3ZpZGVycyBhcnJheS4nKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGlkOiBFbnRpdHlUeXBlW2tleW9mIEVudGl0eVR5cGVdID0gdGhpcy5yb3V0ZS5zbmFwc2hvdC5wYXJhbU1hcC5nZXQoJ2lkJykgYXMgRW50aXR5VHlwZVtrZXlvZiBFbnRpdHlUeXBlXTtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHByb21pc2UvcHJlZmVyLWF3YWl0LXRvLXRoZW5cbiAgICAgICAgdm9pZCB0aGlzLmVudGl0eVNlcnZpY2UuZmluZEJ5SWQoaWQpLnRoZW4oZm91bmRFbnRpdHkgPT4ge1xuICAgICAgICAgICAgaWYgKGZvdW5kRW50aXR5ID09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlybU5hdmlnYXRlQmFjaygpO1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IGZpbmQgZW50aXR5IHdpdGggaWQgJHtpZH1gKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5lbnRpdHkgPSBuZXcgdGhpcy5FbnRpdHlDbGFzcyhmb3VuZEVudGl0eSk7XG4gICAgICAgICAgICB0aGlzLmVudGl0eVByaW9yQ2hhbmdlcyA9IExvZGFzaFV0aWxpdGllcy5jbG9uZURlZXAodGhpcy5lbnRpdHkpO1xuXG4gICAgICAgICAgICBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvciwgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuaXNFbnRpdHlSZWFkT25seSA9ICF0aGlzLmRhdGEuYWxsb3dVcGRhdGUodGhpcy5lbnRpdHlQcmlvckNoYW5nZXMpO1xuICAgICAgICAgICAgICAgIHRoaXMuYWxsb3dEZWxldGUgPSB0aGlzLmRhdGEuYWxsb3dEZWxldGUodGhpcy5lbnRpdHlQcmlvckNoYW5nZXMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmlzTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jaGVja09mZnNldCgpLCAxKTtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLmNoZWNrSXNFbnRpdHlWYWxpZCgpLCAxKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSBib3R0b20gcm93IHNob3VsZCBiZSBkaXNwbGF5ZWQgYXMgZml4ZWQuXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcpXG4gICAgY2hlY2tPZmZzZXQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNjcm9sbFk6IG51bWJlciA9IHdpbmRvdy5zY3JvbGxZO1xuICAgICAgICBjb25zdCBib3R0b21Sb3c6IEhUTUxFbGVtZW50IHwgbnVsbCA9ICh0aGlzLmVsLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTEVsZW1lbnQpLnF1ZXJ5U2VsZWN0b3IoJy5ib3R0b20tcm93Jyk7XG4gICAgICAgIGNvbnN0IGJvdHRvbVJvd0NvbnRhaW5lcjogSFRNTEVsZW1lbnQgfCBudWxsID0gKHRoaXMuZWwubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCkucXVlcnlTZWxlY3RvcignLmJvdHRvbS1yb3ctY29udGFpbmVyJyk7XG5cbiAgICAgICAgaWYgKGJvdHRvbVJvdyAmJiBib3R0b21Sb3dDb250YWluZXIpIHtcbiAgICAgICAgICAgIGNvbnN0IGJvdHRvbVJvd0NvbnRhaW5lck9mZnNldDogbnVtYmVyID0gYm90dG9tUm93Q29udGFpbmVyLm9mZnNldFRvcDtcbiAgICAgICAgICAgIGNvbnN0IHdpbmRvd0hlaWdodDogbnVtYmVyID0gd2luZG93LmlubmVySGVpZ2h0O1xuXG4gICAgICAgICAgICBpZiAoc2Nyb2xsWSArIHdpbmRvd0hlaWdodCA+PSBib3R0b21Sb3dDb250YWluZXJPZmZzZXQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKGJvdHRvbVJvdywgJ2ZpeGVkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKGJvdHRvbVJvdywgJ2ZpeGVkJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpiZWZvcmV1bmxvYWQnKVxuICAgIGNhbkRlYWN0aXZhdGUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5oYXNVbnNhdmVkQ2hhbmdlcyB8fCB0aGlzLmluQ29uZmlybU5hdmlnYXRpb247XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSBlbnRpdHkgaGFzIGJlY29tZSBpbnZhbGlkIG9yIGRpcnR5LlxuICAgICAqL1xuICAgIGFzeW5jIGNoZWNrRW50aXR5KCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBhd2FpdCB0aGlzLmNoZWNrSXNFbnRpdHlWYWxpZCgpO1xuICAgICAgICB0aGlzLmNoYW5nZXMgPSBhd2FpdCBFbnRpdHlVdGlsaXRpZXMuZ2V0RGlmZmVyZW5jZXNCZXR3ZWVuRW50aXRpZXModGhpcy5lbnRpdHksIHRoaXMuZW50aXR5UHJpb3JDaGFuZ2VzLCB0aGlzLmh0dHAsIHRoaXMuaW5qZWN0b3IpO1xuICAgICAgICBpZiAoIXRoaXMudmFsaWRhdGlvbkVycm9ycy5sZW5ndGggJiYgdGhpcy5jaGFuZ2VzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy50b29sdGlwQ29udGVudCA9IHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PiBnZXRDaGFuZ2VzVG9vbHRpcENvbnRlbnQodGhpcy5jaGFuZ2VzKSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pc0VudGl0eURpcnR5ID0gISF0aGlzLmNoYW5nZXMubGVuZ3RoO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgY2hlY2tJc0VudGl0eVZhbGlkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICB0aGlzLnZhbGlkYXRpb25FcnJvcnMgPSBhd2FpdCBWYWxpZGF0aW9uVXRpbGl0aWVzLmdldEVudGl0eVZhbGlkYXRpb25FcnJvcnModGhpcy5lbnRpdHksIHRoaXMuaW5qZWN0b3IsICd1cGRhdGUnKTtcbiAgICAgICAgaWYgKHRoaXMudmFsaWRhdGlvbkVycm9ycy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMudG9vbHRpcENvbnRlbnQgPSBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvciwgKCkgPT4gZ2V0VmFsaWRhdGlvbkVycm9yc1Rvb2x0aXBDb250ZW50KHRoaXMudmFsaWRhdGlvbkVycm9ycykpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuaXNFbnRpdHlWYWxpZCA9IHRoaXMudmFsaWRhdGlvbkVycm9ycy5sZW5ndGggPT09IDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJpZXMgdG8gc2F2ZSB0aGUgY2hhbmdlcyBhbmQgY2xvc2UgdGhlIGRpYWxvZyBhZnRlcndhcmRzLlxuICAgICAqIEFsc28gaGFuZGxlcyB0aGUgY29uZmlybWF0aW9uIGlmIHJlcXVpcmVkLlxuICAgICAqL1xuICAgIGFzeW5jIGVkaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGlmICh0aGlzLmlzRW50aXR5UmVhZE9ubHkgfHwgIXRoaXMuaXNFbnRpdHlWYWxpZCB8fCAhdGhpcy5pc0VudGl0eURpcnR5KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKCF0aGlzLmRhdGEuZWRpdERhdGEuZWRpdFJlcXVpcmVzQ29uZmlybURpYWxvZykge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5jb25maXJtRWRpdCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHN0eWxpc3RpYy9tYXgtbGVuXG4gICAgICAgIGNvbnN0IGRpYWxvZ0RhdGE6IENvbmZpcm1EaWFsb2dEYXRhSW50ZXJuYWwgPSBuZXcgQ29uZmlybURpYWxvZ0RhdGFCdWlsZGVyKHRoaXMuZ2xvYmFsQ29uZmlnLCB0aGlzLmRhdGEuZWRpdERhdGEuY29uZmlybUVkaXREaWFsb2dEYXRhKVxuICAgICAgICAgICAgLndpdGhEZWZhdWx0KCd0ZXh0JywgdGhpcy5nbG9iYWxDb25maWcuY29uZmlybVNhdmVUZXh0KVxuICAgICAgICAgICAgLndpdGhEZWZhdWx0KCdjb25maXJtQnV0dG9uTGFiZWwnLCB0aGlzLmdsb2JhbENvbmZpZy5zYXZlTGFiZWwpXG4gICAgICAgICAgICAud2l0aERlZmF1bHQoJ3RpdGxlJywgdGhpcy5nbG9iYWxDb25maWcuZWRpdExhYmVsKVxuICAgICAgICAgICAgLmdldFJlc3VsdCgpO1xuICAgICAgICBjb25zdCBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxOZ3hNYXRFbnRpdHlDb25maXJtRGlhbG9nQ29tcG9uZW50LCBib29sZWFuPiA9IHRoaXMuZGlhbG9nLm9wZW4oTmd4TWF0RW50aXR5Q29uZmlybURpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICAgICAgZGF0YTogZGlhbG9nRGF0YSxcbiAgICAgICAgICAgIGF1dG9Gb2N1czogZmFsc2UsXG4gICAgICAgICAgICByZXN0b3JlRm9jdXM6IGZhbHNlXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCByZXM6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBhd2FpdCBmaXJzdFZhbHVlRnJvbShkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKSk7XG4gICAgICAgIGlmIChyZXMgPT0gdHJ1ZSkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5jb25maXJtRWRpdCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBjb25maXJtRWRpdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5lbnRpdHlTZXJ2aWNlLnVwZGF0ZSh0aGlzLmVudGl0eSwgdGhpcy5lbnRpdHlQcmlvckNoYW5nZXMpO1xuICAgICAgICB0aGlzLmNvbmZpcm1OYXZpZ2F0ZUJhY2soKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmllcyB0byBkZWxldGUgdGhlIGVudGl0eSBhbmQgY2xvc2UgdGhlIGRpYWxvZyBhZnRlcndhcmRzLlxuICAgICAqIEFsc28gaGFuZGxlcyB0aGUgY29uZmlybWF0aW9uIGlmIHJlcXVpcmVkLlxuICAgICAqL1xuICAgIGFzeW5jIGRlbGV0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgaWYgKCF0aGlzLmRhdGEuZWRpdERhdGEuZGVsZXRlUmVxdWlyZXNDb25maXJtRGlhbG9nKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNvbmZpcm1EZWxldGUoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBzdHlsaXN0aWMvbWF4LWxlblxuICAgICAgICBjb25zdCBkaWFsb2dEYXRhOiBDb25maXJtRGlhbG9nRGF0YUludGVybmFsID0gbmV3IENvbmZpcm1EaWFsb2dEYXRhQnVpbGRlcih0aGlzLmdsb2JhbENvbmZpZywgdGhpcy5kYXRhLmVkaXREYXRhLmNvbmZpcm1EZWxldGVEaWFsb2dEYXRhKVxuICAgICAgICAgICAgLndpdGhEZWZhdWx0KCd0ZXh0JywgdGhpcy5nbG9iYWxDb25maWcuY29uZmlybURlbGV0ZVRleHQpXG4gICAgICAgICAgICAud2l0aERlZmF1bHQoJ3R5cGUnLCAnZGVsZXRlJylcbiAgICAgICAgICAgIC53aXRoRGVmYXVsdCgnY29uZmlybUJ1dHRvbkxhYmVsJywgdGhpcy5nbG9iYWxDb25maWcuZGVsZXRlTGFiZWwpXG4gICAgICAgICAgICAud2l0aERlZmF1bHQoJ3RpdGxlJywgdGhpcy5nbG9iYWxDb25maWcuZGVsZXRlTGFiZWwpXG4gICAgICAgICAgICAuZ2V0UmVzdWx0KCk7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE5neE1hdEVudGl0eUNvbmZpcm1EaWFsb2dDb21wb25lbnQsIGJvb2xlYW4+ID0gdGhpcy5kaWFsb2cub3BlbihOZ3hNYXRFbnRpdHlDb25maXJtRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiBkaWFsb2dEYXRhLFxuICAgICAgICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgICAgICAgIHJlc3RvcmVGb2N1czogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IHJlczogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGF3YWl0IGZpcnN0VmFsdWVGcm9tKGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpKTtcbiAgICAgICAgaWYgKHJlcyA9PSB0cnVlKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmNvbmZpcm1EZWxldGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgY29uZmlybURlbGV0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgdGhpcy5lbnRpdHlTZXJ2aWNlLmRlbGV0ZSh0aGlzLmVudGl0eVByaW9yQ2hhbmdlcyk7XG4gICAgICAgIHRoaXMuY29uZmlybU5hdmlnYXRlQmFjaygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRyaWVzIHRvIG5hdmlnYXRlIGJhY2suXG4gICAgICovXG4gICAgYXN5bmMgbmF2aWdhdGVCYWNrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAoIXRoaXMuaGFzVW5zYXZlZENoYW5nZXMpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlybU5hdmlnYXRlQmFjaygpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgcmVzOiBib29sZWFuID0gYXdhaXQgdGhpcy5vcGVuQ29uZmlybU5hdmlnYXRpb25EaWFsb2coKTtcbiAgICAgICAgaWYgKHJlcykge1xuICAgICAgICAgICAgdGhpcy5jb25maXJtTmF2aWdhdGVCYWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGFzeW5jIG9wZW5Db25maXJtTmF2aWdhdGlvbkRpYWxvZygpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8Tmd4TWF0RW50aXR5Q29uZmlybURpYWxvZ0NvbXBvbmVudCwgYm9vbGVhbj4gPSB0aGlzLmRpYWxvZy5vcGVuKE5neE1hdEVudGl0eUNvbmZpcm1EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGRhdGE6IHRoaXMuZGF0YS5lZGl0RGF0YS5jb25maXJtVW5zYXZlZENoYW5nZXNEaWFsb2dEYXRhLFxuICAgICAgICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgICAgICAgIHJlc3RvcmVGb2N1czogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBhd2FpdCBmaXJzdFZhbHVlRnJvbShkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKSkgPz8gZmFsc2U7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb25maXJtTmF2aWdhdGVCYWNrKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluQ29uZmlybU5hdmlnYXRpb24gPSB0cnVlO1xuICAgICAgICBFbnRpdHlVdGlsaXRpZXMucmVzZXRDaGFuZ2VzT25FbnRpdHkodGhpcy5lbnRpdHksIHRoaXMuZW50aXR5UHJpb3JDaGFuZ2VzKTtcbiAgICAgICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUnVucyB0aGUgZWRpdCBhY3Rpb24gb24gdGhlIGVudGl0eS5cbiAgICAgKiBAcGFyYW0gYWN0aW9uIC0gVGhlIGFjdGlvbiB0byBydW4uXG4gICAgICovXG4gICAgYXN5bmMgcnVuRWRpdEFjdGlvbihhY3Rpb246IEVkaXRBY3Rpb25JbnRlcm5hbDxFbnRpdHlUeXBlPik6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBjb25zdCByZXF1aXJlQ29uZmlybURpYWxvZzogYm9vbGVhbiA9IHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYWN0aW9uLnJlcXVpcmVDb25maXJtRGlhbG9nKHRoaXMuZW50aXR5UHJpb3JDaGFuZ2VzKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgaWYgKCFyZXF1aXJlQ29uZmlybURpYWxvZykge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5jb25maXJtUnVuRWRpdEFjdGlvbihhY3Rpb24pO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE5neE1hdEVudGl0eUNvbmZpcm1EaWFsb2dDb21wb25lbnQsIGJvb2xlYW4+ID0gdGhpcy5kaWFsb2cub3BlbihOZ3hNYXRFbnRpdHlDb25maXJtRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiBhY3Rpb24uY29uZmlybURpYWxvZ0RhdGEsXG4gICAgICAgICAgICBhdXRvRm9jdXM6IGZhbHNlLFxuICAgICAgICAgICAgcmVzdG9yZUZvY3VzOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgcmVzOiBib29sZWFuIHwgdW5kZWZpbmVkID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20oZGlhbG9nUmVmLmFmdGVyQ2xvc2VkKCkpO1xuICAgICAgICBpZiAocmVzID09IHRydWUpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY29uZmlybVJ1bkVkaXRBY3Rpb24oYWN0aW9uKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgY29uZmlybVJ1bkVkaXRBY3Rpb24oYWN0aW9uOiBFZGl0QWN0aW9uSW50ZXJuYWw8RW50aXR5VHlwZT4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgYXdhaXQgcnVuSW5JbmplY3Rpb25Db250ZXh0KHRoaXMuaW5qZWN0b3IsIGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGF3YWl0IGFjdGlvbi5hY3Rpb24odGhpcy5lbnRpdHksIHRoaXMuZW50aXR5UHJpb3JDaGFuZ2VzKTtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuY2hlY2tFbnRpdHkoKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIGFuIEVkaXRBY3Rpb24gaXMgZGlzYWJsZWQgKGUuZy4gQmVjYXVzZSB0aGUgY3VycmVudCBlbnRyeSBkb2Vzbid0IGZ1bGxmaWwgdGhlIHJlcXVpcmVtZW50cykuXG4gICAgICogQHBhcmFtIGFjdGlvbiAtIFRoZSBFZGl0QWN0aW9uIHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIFdoZXRoZXIgb3Igbm90IHRoZSBBY3Rpb24gY2FuIGJlIHVzZWQuXG4gICAgICovXG4gICAgZWRpdEFjdGlvbkRpc2FibGVkKGFjdGlvbjogRWRpdEFjdGlvbkludGVybmFsPEVudGl0eVR5cGU+KTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvciwgKCkgPT4gIWFjdGlvbi5lbmFibGVkKHRoaXMuZW50aXR5UHJpb3JDaGFuZ2VzKSk7XG4gICAgfVxufSIsIiBcbjwhLS0gZXNsaW50LWRpc2FibGUgYW5ndWxhci9uby1jYWxsLWV4cHJlc3Npb24gLS0+XG5AaWYgKCFpc0xvYWRlZCAmJiBkYXRhLmRpc3BsYXlMb2FkaW5nU3Bpbm5lcikge1xuICAgIDxkaXYgY2xhc3M9XCJwYWdlLWNvbnRhaW5lclwiPlxuICAgICAgICA8YnI+XG4gICAgICAgIDxtYXQtc3Bpbm5lcj48L21hdC1zcGlubmVyPlxuICAgICAgICA8YnI+XG4gICAgPC9kaXY+XG59XG5cbkBpZiAoaXNMb2FkZWQpIHtcbiAgICA8ZGl2IGNsYXNzPVwicGFnZS1jb250YWluZXJcIj5cbiAgICAgICAgPGJyPlxuICAgIFxuICAgICAgICA8IS0tLS0tLS0tLS0tLT5cbiAgICAgICAgPCEtLSBIZWFkZXIgLS0+XG4gICAgICAgIDwhLS0tLS0tLS0tLS0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FuY2VsLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1yYWlzZWQtYnV0dG9uIGNsYXNzPVwiYmFjay1idXR0b25cIiB0YWJpbmRleD1cIi0xXCIgW2NsYXNzLnVuc2F2ZWRDaGFuZ2VzXT1cImhhc1Vuc2F2ZWRDaGFuZ2VzXCIgKGNsaWNrKT1cIm5hdmlnYXRlQmFjaygpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxmYS1pY29uIFtpY29uXT1cImZhQ2hldnJvbkxlZnRcIj48L2ZhLWljb24+XG4gICAgICAgICAgICAgICAgICAgIHt7ZGF0YS5lZGl0RGF0YS5jYW5jZWxCdXR0b25MYWJlbH19XG4gICAgICAgICAgICAgICAgICAgIEBpZiAoaGFzVW5zYXZlZENoYW5nZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxmYS1pY29uIHN0eWxlPVwiY29sb3I6IG9yYW5nZTtcIiBbaWNvbl09XCJmYVdhcm5pbmdcIj48L2ZhLWljb24+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbnMtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgQGlmIChkYXRhLmVkaXREYXRhLmFjdGlvbnMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1yYWlzZWQtYnV0dG9uIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e2RhdGEuZWRpdERhdGEuYWN0aW9uc0xhYmVsfX1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoYWN0aW9uIG9mIGRhdGEuZWRpdERhdGEuYWN0aW9uczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBtYXQtbWVudS1pdGVtIFtkaXNhYmxlZF09XCJlZGl0QWN0aW9uRGlzYWJsZWQoYWN0aW9uKVwiIChjbGljayk9XCJydW5FZGl0QWN0aW9uKGFjdGlvbilcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2FjdGlvbi5kaXNwbGF5TmFtZX19XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBAaWYgKGFsbG93RGVsZXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdC1yYWlzZWQtYnV0dG9uIGNvbG9yPVwid2FyblwiIGNsYXNzPVwiZGVsZXRlLWJ1dHRvblwiIHRhYmluZGV4PVwiLTFcIiAoY2xpY2spPVwiZGVsZXRlKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7ZGF0YS5lZGl0RGF0YS5kZWxldGVCdXR0b25MYWJlbH19XG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICBcbiAgICAgICAgPGgxPnt7ZGF0YS5lZGl0RGF0YS50aXRsZShlbnRpdHlQcmlvckNoYW5nZXMpfX08L2gxPlxuICAgIFxuICAgICAgICA8IS0tLS0tLS0tLS0tPlxuICAgICAgICA8IS0tIElucHV0IC0tPlxuICAgICAgICA8IS0tLS0tLS0tLS0tPlxuICAgICAgICA8Zm9ybSAobmdTdWJtaXQpPVwiZWRpdCgpXCI+XG4gICAgICAgICAgICA8bmd4LW1hdC1lbnRpdHktZm9ybSBbaGlkZU9taXRGb3JFZGl0XT1cInRydWVcIiBbaXNFbnRpdHlSZWFkT25seV09XCJpc0VudGl0eVJlYWRPbmx5XCIgW2VudGl0eV09XCJlbnRpdHlcIiAoc2VsZWN0ZWRUYWJDaGFuZ2UpPVwiY2hlY2tPZmZzZXQoKVwiIChmb3JtQ2hhbmdlKT1cImNoZWNrRW50aXR5KClcIj5cbiAgICAgICAgICAgIDwvbmd4LW1hdC1lbnRpdHktZm9ybT5cbiAgICBcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3R0b20tcm93LWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3R0b20tcm93IGNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiBtYXQtcmFpc2VkLWJ1dHRvbiBtYXRCYWRnZUNvbG9yPVwid2FyblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYmFkZ2UtY2hhbmdlc109XCIhdmFsaWRhdGlvbkVycm9ycy5sZW5ndGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzRW50aXR5UmVhZE9ubHkgfHwgIWlzRW50aXR5VmFsaWQgfHwgIWlzRW50aXR5RGlydHlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlXT1cInZhbGlkYXRpb25FcnJvcnMubGVuZ3RoID4gMCA/IHZhbGlkYXRpb25FcnJvcnMubGVuZ3RoIDogY2hhbmdlcy5sZW5ndGhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW21hdEJhZGdlSGlkZGVuXT1cIiF2YWxpZGF0aW9uRXJyb3JzLmxlbmd0aCAmJiAhY2hhbmdlcy5sZW5ndGhcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7e2RhdGEuZWRpdERhdGEuY29uZmlybUJ1dHRvbkxhYmVsfX1cbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgIEBpZiAodmFsaWRhdGlvbkVycm9ycy5sZW5ndGggfHwgY2hhbmdlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtbWF0LWVudGl0eS10b29sdGlwIFt0b29sdGlwQ29udGVudF09XCJ0b29sdGlwQ29udGVudFwiPjwvbmd4LW1hdC1lbnRpdHktdG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZm9ybT5cbiAgICAgICAgPGJyPlxuICAgIDwvZGl2PlxufSJdfQ==
|
|
@@ -77,16 +77,16 @@ export class NgxMatEntityFormComponent {
|
|
|
77
77
|
this.entityTabs = EntityUtilities.getEntityTabs(this.entity, this.injector, this.hideOmitForCreate, this.hideOmitForEdit, this.additionalOmitKeys);
|
|
78
78
|
this.formChange.emit();
|
|
79
79
|
}
|
|
80
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
81
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.
|
|
80
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: NgxMatEntityFormComponent, deps: [{ token: i0.EnvironmentInjector }], target: i0.ɵɵFactoryTarget.Component });
|
|
81
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.7", type: NgxMatEntityFormComponent, isStandalone: true, selector: "ngx-mat-entity-form", inputs: { entity: "entity", isEntityReadOnly: "isEntityReadOnly", hideOmitForCreate: "hideOmitForCreate", hideOmitForEdit: "hideOmitForEdit", additionalOmitKeys: "additionalOmitKeys" }, outputs: { formChange: "formChange", selectedTabChange: "selectedTabChange" }, ngImport: i0, template: " <!-- eslint-disable angular/no-call-expression -->\n@if (entityTabs.length > 1) {\n <mat-tab-group preserveContent (selectedTabChange)=\"selectedTabChange.emit()\">\n @for (tab of entityTabs; track $index) {\n <mat-tab [label]=\"tab.tabName\">\n @for (row of tab.rows; track $index) {\n <div class=\"grid grid-cols-12\" style=\"column-gap: 24px;\">\n @for (key of row.keys; track key) {\n <ngx-mat-entity-input\n [entity]=\"entity\"\n [propertyKey]=\"key\"\n [hideOmitForEdit]=\"hideOmitForEdit\"\n [hideOmitForCreate]=\"hideOmitForCreate\"\n [class]=\"EntityUtilities.getWidthClasses(entity, key)\"\n [isReadOnly]=\"isReadOnly(key)\"\n (inputChangeEvent)=\"inputChange()\"\n >\n </ngx-mat-entity-input>\n }\n </div>\n }\n </mat-tab>\n }\n </mat-tab-group>\n}\n@else {\n @if (!entityTabs.length) {\n <span class=\"no-entity-tabs\">\n ERROR: No Inputs. Did you correctly assign all values in the model constructor?\n </span>\n }\n @else {\n @for (row of entityTabs[0].rows; track $index) {\n <div class=\"grid grid-cols-12\" style=\"column-gap: 24px;\">\n @for (key of row.keys; track key) {\n <ngx-mat-entity-input\n [entity]=\"entity\"\n [propertyKey]=\"key\"\n [hideOmitForEdit]=\"hideOmitForEdit\"\n [hideOmitForCreate]=\"hideOmitForCreate\"\n [class]=\"EntityUtilities.getWidthClasses(entity, key)\"\n [isReadOnly]=\"isReadOnly(key)\"\n (inputChangeEvent)=\"inputChange()\"\n >\n </ngx-mat-entity-input>\n }\n </div>\n }\n }\n}", styles: [".no-entity-tabs{padding:10px;background-color:red;color:#f5f5f5}\n", ".grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid{display:grid}@media (min-width: 1024px){.lg\\:col-span-12{grid-column:span 12/span 12!important}.lg\\:col-span-11{grid-column:span 11/span 11!important}.lg\\:col-span-10{grid-column:span 10/span 10!important}.lg\\:col-span-9{grid-column:span 9/span 9!important}.lg\\:col-span-8{grid-column:span 8/span 8!important}.lg\\:col-span-7{grid-column:span 7/span 7!important}.lg\\:col-span-6{grid-column:span 6/span 6!important}.lg\\:col-span-5{grid-column:span 5/span 5!important}.lg\\:col-span-4{grid-column:span 4/span 4!important}.lg\\:col-span-3{grid-column:span 3/span 3!important}.lg\\:col-span-2{grid-column:span 2/span 2!important}.lg\\:col-span-1{grid-column:span 1/span 1!important}}@media (min-width: 768px) and (max-width: 1023px){.md\\:col-span-12{grid-column:span 12/span 12!important}.md\\:col-span-11{grid-column:span 11/span 11!important}.md\\:col-span-10{grid-column:span 10/span 10!important}.md\\:col-span-9{grid-column:span 9/span 9!important}.md\\:col-span-8{grid-column:span 8/span 8!important}.md\\:col-span-7{grid-column:span 7/span 7!important}.md\\:col-span-6{grid-column:span 6/span 6!important}.md\\:col-span-5{grid-column:span 5/span 5!important}.md\\:col-span-4{grid-column:span 4/span 4!important}.md\\:col-span-3{grid-column:span 3/span 3!important}.md\\:col-span-2{grid-column:span 2/span 2!important}.md\\:col-span-1{grid-column:span 1/span 1!important}}.col-span-12{grid-column:span 12/span 12}.col-span-11{grid-column:span 11/span 11}.col-span-10{grid-column:span 10/span 10}.col-span-9{grid-column:span 9/span 9}.col-span-8{grid-column:span 8/span 8}.col-span-7{grid-column:span 7/span 7}.col-span-6{grid-column:span 6/span 6}.col-span-5{grid-column:span 5/span 5}.col-span-4{grid-column:span 4/span 4}.col-span-3{grid-column:span 3/span 3}.col-span-2{grid-column:span 2/span 2}.col-span-1{grid-column:span 1/span 1}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatTabsModule }, { kind: "component", type: i1.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby", "labelClass", "bodyClass"], exportAs: ["matTab"] }, { kind: "component", type: i1.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "fitInkBarToContent", "mat-stretch-tabs", "dynamicHeight", "selectedIndex", "headerPosition", "animationDuration", "contentTabIndex", "disablePagination", "disableRipple", "preserveContent", "backgroundColor", "aria-label", "aria-labelledby"], outputs: ["selectedIndexChange", "focusChange", "animationDone", "selectedTabChange"], exportAs: ["matTabGroup"] }, { kind: "component", type: NgxMatEntityInputComponent, selector: "ngx-mat-entity-input", inputs: ["entity", "propertyKey", "getValidationErrorMessage", "hideOmitForCreate", "hideOmitForEdit", "validEmpty", "isReadOnly"], outputs: ["inputChangeEvent"] }] });
|
|
82
82
|
}
|
|
83
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: NgxMatEntityFormComponent, decorators: [{
|
|
84
84
|
type: Component,
|
|
85
85
|
args: [{ selector: 'ngx-mat-entity-form', standalone: true, imports: [
|
|
86
86
|
CommonModule,
|
|
87
87
|
MatTabsModule,
|
|
88
88
|
NgxMatEntityInputComponent
|
|
89
|
-
], template: " <!-- eslint-disable angular/no-call-expression -->\n@if (entityTabs.length > 1) {\n <mat-tab-group preserveContent (selectedTabChange)=\"selectedTabChange.emit()\">\n @for (tab of entityTabs; track $index) {\n <mat-tab [label]=\"tab.tabName\">\n @for (row of tab.rows; track $index) {\n <div class=\"
|
|
89
|
+
], template: " <!-- eslint-disable angular/no-call-expression -->\n@if (entityTabs.length > 1) {\n <mat-tab-group preserveContent (selectedTabChange)=\"selectedTabChange.emit()\">\n @for (tab of entityTabs; track $index) {\n <mat-tab [label]=\"tab.tabName\">\n @for (row of tab.rows; track $index) {\n <div class=\"grid grid-cols-12\" style=\"column-gap: 24px;\">\n @for (key of row.keys; track key) {\n <ngx-mat-entity-input\n [entity]=\"entity\"\n [propertyKey]=\"key\"\n [hideOmitForEdit]=\"hideOmitForEdit\"\n [hideOmitForCreate]=\"hideOmitForCreate\"\n [class]=\"EntityUtilities.getWidthClasses(entity, key)\"\n [isReadOnly]=\"isReadOnly(key)\"\n (inputChangeEvent)=\"inputChange()\"\n >\n </ngx-mat-entity-input>\n }\n </div>\n }\n </mat-tab>\n }\n </mat-tab-group>\n}\n@else {\n @if (!entityTabs.length) {\n <span class=\"no-entity-tabs\">\n ERROR: No Inputs. Did you correctly assign all values in the model constructor?\n </span>\n }\n @else {\n @for (row of entityTabs[0].rows; track $index) {\n <div class=\"grid grid-cols-12\" style=\"column-gap: 24px;\">\n @for (key of row.keys; track key) {\n <ngx-mat-entity-input\n [entity]=\"entity\"\n [propertyKey]=\"key\"\n [hideOmitForEdit]=\"hideOmitForEdit\"\n [hideOmitForCreate]=\"hideOmitForCreate\"\n [class]=\"EntityUtilities.getWidthClasses(entity, key)\"\n [isReadOnly]=\"isReadOnly(key)\"\n (inputChangeEvent)=\"inputChange()\"\n >\n </ngx-mat-entity-input>\n }\n </div>\n }\n }\n}", styles: [".no-entity-tabs{padding:10px;background-color:red;color:#f5f5f5}\n", ".grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.grid{display:grid}@media (min-width: 1024px){.lg\\:col-span-12{grid-column:span 12/span 12!important}.lg\\:col-span-11{grid-column:span 11/span 11!important}.lg\\:col-span-10{grid-column:span 10/span 10!important}.lg\\:col-span-9{grid-column:span 9/span 9!important}.lg\\:col-span-8{grid-column:span 8/span 8!important}.lg\\:col-span-7{grid-column:span 7/span 7!important}.lg\\:col-span-6{grid-column:span 6/span 6!important}.lg\\:col-span-5{grid-column:span 5/span 5!important}.lg\\:col-span-4{grid-column:span 4/span 4!important}.lg\\:col-span-3{grid-column:span 3/span 3!important}.lg\\:col-span-2{grid-column:span 2/span 2!important}.lg\\:col-span-1{grid-column:span 1/span 1!important}}@media (min-width: 768px) and (max-width: 1023px){.md\\:col-span-12{grid-column:span 12/span 12!important}.md\\:col-span-11{grid-column:span 11/span 11!important}.md\\:col-span-10{grid-column:span 10/span 10!important}.md\\:col-span-9{grid-column:span 9/span 9!important}.md\\:col-span-8{grid-column:span 8/span 8!important}.md\\:col-span-7{grid-column:span 7/span 7!important}.md\\:col-span-6{grid-column:span 6/span 6!important}.md\\:col-span-5{grid-column:span 5/span 5!important}.md\\:col-span-4{grid-column:span 4/span 4!important}.md\\:col-span-3{grid-column:span 3/span 3!important}.md\\:col-span-2{grid-column:span 2/span 2!important}.md\\:col-span-1{grid-column:span 1/span 1!important}}.col-span-12{grid-column:span 12/span 12}.col-span-11{grid-column:span 11/span 11}.col-span-10{grid-column:span 10/span 10}.col-span-9{grid-column:span 9/span 9}.col-span-8{grid-column:span 8/span 8}.col-span-7{grid-column:span 7/span 7}.col-span-6{grid-column:span 6/span 6}.col-span-5{grid-column:span 5/span 5}.col-span-4{grid-column:span 4/span 4}.col-span-3{grid-column:span 3/span 3}.col-span-2{grid-column:span 2/span 2}.col-span-1{grid-column:span 1/span 1}\n"] }]
|
|
90
90
|
}], ctorParameters: () => [{ type: i0.EnvironmentInjector }], propDecorators: { entity: [{
|
|
91
91
|
type: Input,
|
|
92
92
|
args: [{ required: true }]
|
|
@@ -103,4 +103,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
103
103
|
}], selectedTabChange: [{
|
|
104
104
|
type: Output
|
|
105
105
|
}] } });
|
|
106
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2Zvcm0vZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2Zvcm0vZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzSCxPQUFPLEVBQXFCLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSTFFLE9BQU8sRUFBYSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBRXRFOztHQUVHO0FBWUgsTUFBTSxPQUFPLHlCQUF5QjtJQXlETDtJQXZEN0IsK0NBQStDO0lBQy9DLGVBQWUsR0FBMkIsZUFBZSxDQUFDO0lBRTFEOztPQUVHO0lBRUgsTUFBTSxDQUFjO0lBRXBCOztPQUVHO0lBQ0gsVUFBVSxDQUEyQjtJQUVyQzs7O09BR0c7SUFFSCxnQkFBZ0IsR0FBWSxLQUFLLENBQUM7SUFFbEM7Ozs7T0FJRztJQUVILGlCQUFpQixDQUFXO0lBRTVCOzs7O09BSUc7SUFFSCxlQUFlLENBQVc7SUFFMUI7O09BRUc7SUFFSCxrQkFBa0IsQ0FBd0I7SUFFMUM7O09BRUc7SUFFTSxVQUFVLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7SUFFbkU7O09BRUc7SUFFTSxpQkFBaUIsR0FBb0MsSUFBSSxZQUFZLEVBQXFCLENBQUM7SUFFcEcsWUFBNkIsUUFBNkI7UUFBN0IsYUFBUSxHQUFSLFFBQVEsQ0FBcUI7SUFBSSxDQUFDO0lBRS9ELFFBQVE7UUFDSixJQUFJLENBQUMsVUFBVSxHQUFHLGVBQWUsQ0FBQyxhQUFhLENBQzNDLElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLFFBQVEsRUFDYixJQUFJLENBQUMsaUJBQWlCLEVBQ3RCLElBQUksQ0FBQyxlQUFlLEVBQ3BCLElBQUksQ0FBQyxrQkFBa0IsQ0FDMUIsQ0FBQztJQUNOLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsVUFBVSxDQUFDLEdBQXFCO1FBQzVCLE9BQU8scUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7WUFDN0MsTUFBTSxRQUFRLEdBQXlELGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzdILElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDWixNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzFFLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyRSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFVBQVUsR0FBRyxlQUFlLENBQUMsYUFBYSxDQUMzQyxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxRQUFRLEVBQ2IsSUFBSSxDQUFDLGlCQUFpQixFQUN0QixJQUFJLENBQUMsZUFBZSxFQUNwQixJQUFJLENBQUMsa0JBQWtCLENBQzFCLENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7dUdBakdRLHlCQUF5QjsyRkFBekIseUJBQXlCLHdWQ3ZCdEMsNmtFQWlEQywySEQvQk8sWUFBWSw4QkFDWixhQUFhLDRtQkFDYiwwQkFBMEI7OzJGQUdyQix5QkFBeUI7a0JBWHJDLFNBQVM7K0JBQ0kscUJBQXFCLGNBR25CLElBQUksV0FDUDt3QkFDTCxZQUFZO3dCQUNaLGFBQWE7d0JBQ2IsMEJBQTBCO3FCQUM3Qjt3RkFXRCxNQUFNO3NCQURMLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQWF6QixnQkFBZ0I7c0JBRGYsS0FBSztnQkFTTixpQkFBaUI7c0JBRGhCLEtBQUs7Z0JBU04sZUFBZTtzQkFEZCxLQUFLO2dCQU9OLGtCQUFrQjtzQkFEakIsS0FBSztnQkFPRyxVQUFVO3NCQURsQixNQUFNO2dCQU9FLGlCQUFpQjtzQkFEekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVudmlyb25tZW50SW5qZWN0b3IsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBydW5JbkluamVjdGlvbkNvbnRleHQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdFRhYkNoYW5nZUV2ZW50LCBNYXRUYWJzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdGFicyc7XG5cbmltcG9ydCB7IEJhc2VFbnRpdHlUeXBlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgUHJvcGVydHlEZWNvcmF0b3JDb25maWdJbnRlcm5hbCB9IGZyb20gJy4uLy4uL2RlY29yYXRvcnMvYmFzZS9wcm9wZXJ0eS1kZWNvcmF0b3ItaW50ZXJuYWwuZGF0YSc7XG5pbXBvcnQgeyBFbnRpdHlUYWIsIEVudGl0eVV0aWxpdGllcyB9IGZyb20gJy4uLy4uL3V0aWxpdGllcy9lbnRpdHkudXRpbGl0aWVzJztcbmltcG9ydCB7IE5neE1hdEVudGl0eUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vaW5wdXQvaW5wdXQuY29tcG9uZW50JztcblxuLyoqXG4gKiBBIGZvcm0gY29tcG9uZW50IGJhc2VkIG9uIHRoZSBuZ3gtbWF0ZXJpYWwtZW50aXR5IGZyYW1ld29yay5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3gtbWF0LWVudGl0eS1mb3JtJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZm9ybS5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIE1hdFRhYnNNb2R1bGUsXG4gICAgICAgIE5neE1hdEVudGl0eUlucHV0Q29tcG9uZW50XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBOZ3hNYXRFbnRpdHlGb3JtQ29tcG9uZW50PEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBFbnRpdHlVdGlsaXRpZXM6IHR5cGVvZiBFbnRpdHlVdGlsaXRpZXMgPSBFbnRpdHlVdGlsaXRpZXM7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZW50aXR5IHRoYXQgc2hvdWxkIGJlIHJlcHJlc2VudGVkIGJ5IHRoZSBmb3JtLlxuICAgICAqL1xuICAgIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gICAgZW50aXR5ITogRW50aXR5VHlwZTtcblxuICAgIC8qKlxuICAgICAqIFRoZSB0YWJzIHRvIGRpc3BsYXkuXG4gICAgICovXG4gICAgZW50aXR5VGFicyE6IEVudGl0eVRhYjxFbnRpdHlUeXBlPltdO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciBvciBub3QgdGhlIGVudGl0eSBpcyByZWFkb25seS5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaXNFbnRpdHlSZWFkT25seTogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBoaWRlIGEgdmFsdWUgaWYgaXQgaXMgb21pdHRlZCBmb3IgY3JlYXRpb24uXG4gICAgICogSXMgdXNlZCBpbnRlcm5hbGx5IGZvciB0aGUgb2JqZWN0IHByb3BlcnR5LlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBoaWRlT21pdEZvckNyZWF0ZT86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIGhpZGUgYSB2YWx1ZSBpZiBpdCBpcyBvbWl0dGVkIGZvciBlZGl0aW5nLlxuICAgICAqIElzIHVzZWQgaW50ZXJuYWxseSBmb3IgdGhlIG9iamVjdCBwcm9wZXJ0eS5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaGlkZU9taXRGb3JFZGl0PzogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEFkZGl0aW9uYWwga2V5cyB0aGF0IHNob3VsZCBiZSBvbWl0dGVkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgYWRkaXRpb25hbE9taXRLZXlzPzogKGtleW9mIEVudGl0eVR5cGUpW107XG5cbiAgICAvKipcbiAgICAgKiBGaXJlcyB3aGVuZXZlciBhbiBpbnB1dCBvZiB0aGUgZm9ybSBjaGFuZ2VzLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IGZvcm1DaGFuZ2U6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqIEZpcmVzIHdoZW4gdGhlIHNlbGVjdGVkIHRhYiBoYXMgYmVlbiBjaGFuZ2VkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHJlYWRvbmx5IHNlbGVjdGVkVGFiQ2hhbmdlOiBFdmVudEVtaXR0ZXI8TWF0VGFiQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxNYXRUYWJDaGFuZ2VFdmVudD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3I6IEVudmlyb25tZW50SW5qZWN0b3IpIHsgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZW50aXR5VGFicyA9IEVudGl0eVV0aWxpdGllcy5nZXRFbnRpdHlUYWJzKFxuICAgICAgICAgICAgdGhpcy5lbnRpdHksXG4gICAgICAgICAgICB0aGlzLmluamVjdG9yLFxuICAgICAgICAgICAgdGhpcy5oaWRlT21pdEZvckNyZWF0ZSxcbiAgICAgICAgICAgIHRoaXMuaGlkZU9taXRGb3JFZGl0LFxuICAgICAgICAgICAgdGhpcy5hZGRpdGlvbmFsT21pdEtleXNcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGVja3MgaWYgdGhlIGlucHV0IHdpdGggdGhlIGdpdmVuIGtleSBpcyByZWFkb25seS5cbiAgICAgKiBAcGFyYW0ga2V5IC0gVGhlIGtleSBmb3IgdGhlIGlucHV0IHRvIGNoZWNrLlxuICAgICAqIEByZXR1cm5zIFdoZXRoZXIgb3Igbm90IHRoZSBpbnB1dCBmb3IgdGhlIGtleSBpcyByZWFkIG9ubHkuXG4gICAgICovXG4gICAgaXNSZWFkT25seShrZXk6IGtleW9mIEVudGl0eVR5cGUpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHJ1bkluSW5qZWN0aW9uQ29udGV4dCh0aGlzLmluamVjdG9yLCAoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBtZXRhZGF0YTogUHJvcGVydHlEZWNvcmF0b3JDb25maWdJbnRlcm5hbDx1bmtub3duPiB8IHVuZGVmaW5lZCA9IEVudGl0eVV0aWxpdGllcy5nZXRQcm9wZXJ0eU1ldGFkYXRhKHRoaXMuZW50aXR5LCBrZXkpO1xuICAgICAgICAgICAgaWYgKCFtZXRhZGF0YSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gbWV0YWRhdGEgd2FzIGZvdW5kIGZvciB0aGUga2V5IFwiJHtTdHJpbmcoa2V5KX1cImApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHRoaXMuaXNFbnRpdHlSZWFkT25seSB8fCBtZXRhZGF0YS5pc1JlYWRPbmx5KHRoaXMuZW50aXR5KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogV2hhdCBoYXBwZW5zIHdoZW4gYW4gaW5wdXQgY2hhbmdlcyBpdHMgdmFsdWUuXG4gICAgICogVGhpcyByZWZyZXNoZXMgdGhlIGVudGl0eSB0YWJzIHRvIGNoZWNrIGlmIHRoZXJlIGFyZSBub3cgZGlmZmVyZW50IGlucHV0cyB0byBkaXNwbGF5IGFuZCBlbWl0cyB0aGUgZm9ybSBjaGFuZ2UuXG4gICAgICovXG4gICAgaW5wdXRDaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZW50aXR5VGFicyA9IEVudGl0eVV0aWxpdGllcy5nZXRFbnRpdHlUYWJzKFxuICAgICAgICAgICAgdGhpcy5lbnRpdHksXG4gICAgICAgICAgICB0aGlzLmluamVjdG9yLFxuICAgICAgICAgICAgdGhpcy5oaWRlT21pdEZvckNyZWF0ZSxcbiAgICAgICAgICAgIHRoaXMuaGlkZU9taXRGb3JFZGl0LFxuICAgICAgICAgICAgdGhpcy5hZGRpdGlvbmFsT21pdEtleXNcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5mb3JtQ2hhbmdlLmVtaXQoKTtcbiAgICB9XG59IiwiIDwhLS0gZXNsaW50LWRpc2FibGUgYW5ndWxhci9uby1jYWxsLWV4cHJlc3Npb24gLS0+XG5AaWYgKGVudGl0eVRhYnMubGVuZ3RoID4gMSkge1xuICAgIDxtYXQtdGFiLWdyb3VwIHByZXNlcnZlQ29udGVudCAoc2VsZWN0ZWRUYWJDaGFuZ2UpPVwic2VsZWN0ZWRUYWJDaGFuZ2UuZW1pdCgpXCI+XG4gICAgICAgIEBmb3IgKHRhYiBvZiBlbnRpdHlUYWJzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgIDxtYXQtdGFiIFtsYWJlbF09XCJ0YWIudGFiTmFtZVwiPlxuICAgICAgICAgICAgICAgIEBmb3IgKHJvdyBvZiB0YWIucm93czsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGtleSBvZiByb3cua2V5czsgdHJhY2sga2V5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG5neC1tYXQtZW50aXR5LWlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtlbnRpdHldPVwiZW50aXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3Byb3BlcnR5S2V5XT1cImtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRlT21pdEZvckVkaXRdPVwiaGlkZU9taXRGb3JFZGl0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGVPbWl0Rm9yQ3JlYXRlXT1cImhpZGVPbWl0Rm9yQ3JlYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzXT1cIkVudGl0eVV0aWxpdGllcy5nZXRXaWR0aENsYXNzZXMoZW50aXR5LCBrZXkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lzUmVhZE9ubHldPVwiaXNSZWFkT25seShrZXkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGlucHV0Q2hhbmdlRXZlbnQpPVwiaW5wdXRDaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbmd4LW1hdC1lbnRpdHktaW5wdXQ+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvbWF0LXRhYj5cbiAgICAgICAgfVxuICAgIDwvbWF0LXRhYi1ncm91cD5cbn1cbkBlbHNlIHtcbiAgICBAaWYgKCFlbnRpdHlUYWJzLmxlbmd0aCkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cIm5vLWVudGl0eS10YWJzXCI+XG4gICAgICAgICAgICBFUlJPUjogTm8gSW5wdXRzLiBEaWQgeW91IGNvcnJlY3RseSBhc3NpZ24gYWxsIHZhbHVlcyBpbiB0aGUgbW9kZWwgY29uc3RydWN0b3I/XG4gICAgICAgIDwvc3Bhbj5cbiAgICB9XG4gICAgQGVsc2Uge1xuICAgICAgICBAZm9yIChyb3cgb2YgZW50aXR5VGFic1swXS5yb3dzOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChrZXkgb2Ygcm93LmtleXM7IHRyYWNrIGtleSkge1xuICAgICAgICAgICAgICAgICAgICA8bmd4LW1hdC1lbnRpdHktaW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIFtlbnRpdHldPVwiZW50aXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwcm9wZXJ0eUtleV09XCJrZXlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGVPbWl0Rm9yRWRpdF09XCJoaWRlT21pdEZvckVkaXRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2hpZGVPbWl0Rm9yQ3JlYXRlXT1cImhpZGVPbWl0Rm9yQ3JlYXRlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJFbnRpdHlVdGlsaXRpZXMuZ2V0V2lkdGhDbGFzc2VzKGVudGl0eSwga2V5KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbaXNSZWFkT25seV09XCJpc1JlYWRPbmx5KGtleSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgKGlucHV0Q2hhbmdlRXZlbnQpPVwiaW5wdXRDaGFuZ2UoKVwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPC9uZ3gtbWF0LWVudGl0eS1pbnB1dD5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIH1cbn0iXX0=
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2Zvcm0vZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2Zvcm0vZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzSCxPQUFPLEVBQXFCLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBSTFFLE9BQU8sRUFBYSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUM5RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7O0FBRXRFOztHQUVHO0FBWUgsTUFBTSxPQUFPLHlCQUF5QjtJQXlETDtJQXZEN0IsK0NBQStDO0lBQy9DLGVBQWUsR0FBMkIsZUFBZSxDQUFDO0lBRTFEOztPQUVHO0lBRUgsTUFBTSxDQUFjO0lBRXBCOztPQUVHO0lBQ0gsVUFBVSxDQUEyQjtJQUVyQzs7O09BR0c7SUFFSCxnQkFBZ0IsR0FBWSxLQUFLLENBQUM7SUFFbEM7Ozs7T0FJRztJQUVILGlCQUFpQixDQUFXO0lBRTVCOzs7O09BSUc7SUFFSCxlQUFlLENBQVc7SUFFMUI7O09BRUc7SUFFSCxrQkFBa0IsQ0FBd0I7SUFFMUM7O09BRUc7SUFFTSxVQUFVLEdBQXVCLElBQUksWUFBWSxFQUFRLENBQUM7SUFFbkU7O09BRUc7SUFFTSxpQkFBaUIsR0FBb0MsSUFBSSxZQUFZLEVBQXFCLENBQUM7SUFFcEcsWUFBNkIsUUFBNkI7UUFBN0IsYUFBUSxHQUFSLFFBQVEsQ0FBcUI7SUFBSSxDQUFDO0lBRS9ELFFBQVE7UUFDSixJQUFJLENBQUMsVUFBVSxHQUFHLGVBQWUsQ0FBQyxhQUFhLENBQzNDLElBQUksQ0FBQyxNQUFNLEVBQ1gsSUFBSSxDQUFDLFFBQVEsRUFDYixJQUFJLENBQUMsaUJBQWlCLEVBQ3RCLElBQUksQ0FBQyxlQUFlLEVBQ3BCLElBQUksQ0FBQyxrQkFBa0IsQ0FDMUIsQ0FBQztJQUNOLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsVUFBVSxDQUFDLEdBQXFCO1FBQzVCLE9BQU8scUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUU7WUFDN0MsTUFBTSxRQUFRLEdBQXlELGVBQWUsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQzdILElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztnQkFDWixNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzFFLENBQUM7WUFDRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxRQUFRLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyRSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFVBQVUsR0FBRyxlQUFlLENBQUMsYUFBYSxDQUMzQyxJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxRQUFRLEVBQ2IsSUFBSSxDQUFDLGlCQUFpQixFQUN0QixJQUFJLENBQUMsZUFBZSxFQUNwQixJQUFJLENBQUMsa0JBQWtCLENBQzFCLENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUM7dUdBakdRLHlCQUF5QjsyRkFBekIseUJBQXlCLHdWQ3ZCdEMsaXFFQWlEQywyL0REL0JPLFlBQVksOEJBQ1osYUFBYSw2b0JBQ2IsMEJBQTBCOzsyRkFHckIseUJBQXlCO2tCQVhyQyxTQUFTOytCQUNJLHFCQUFxQixjQUduQixJQUFJLFdBQ1A7d0JBQ0wsWUFBWTt3QkFDWixhQUFhO3dCQUNiLDBCQUEwQjtxQkFDN0I7d0ZBV0QsTUFBTTtzQkFETCxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFhekIsZ0JBQWdCO3NCQURmLEtBQUs7Z0JBU04saUJBQWlCO3NCQURoQixLQUFLO2dCQVNOLGVBQWU7c0JBRGQsS0FBSztnQkFPTixrQkFBa0I7c0JBRGpCLEtBQUs7Z0JBT0csVUFBVTtzQkFEbEIsTUFBTTtnQkFPRSxpQkFBaUI7c0JBRHpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFbnZpcm9ubWVudEluamVjdG9yLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgcnVuSW5JbmplY3Rpb25Db250ZXh0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRUYWJDaGFuZ2VFdmVudCwgTWF0VGFic01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYnMnO1xuXG5pbXBvcnQgeyBCYXNlRW50aXR5VHlwZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IFByb3BlcnR5RGVjb3JhdG9yQ29uZmlnSW50ZXJuYWwgfSBmcm9tICcuLi8uLi9kZWNvcmF0b3JzL2Jhc2UvcHJvcGVydHktZGVjb3JhdG9yLWludGVybmFsLmRhdGEnO1xuaW1wb3J0IHsgRW50aXR5VGFiLCBFbnRpdHlVdGlsaXRpZXMgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvZW50aXR5LnV0aWxpdGllcyc7XG5pbXBvcnQgeyBOZ3hNYXRFbnRpdHlJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uL2lucHV0L2lucHV0LmNvbXBvbmVudCc7XG5cbi8qKlxuICogQSBmb3JtIGNvbXBvbmVudCBiYXNlZCBvbiB0aGUgbmd4LW1hdGVyaWFsLWVudGl0eSBmcmFtZXdvcmsuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd4LW1hdC1lbnRpdHktZm9ybScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2Zvcm0uY29tcG9uZW50LnNjc3MnLCAnLi4vLi4vc2Nzcy90YWlsd2luZC1jbGFzc2VzLnNjc3MnXSxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBNYXRUYWJzTW9kdWxlLFxuICAgICAgICBOZ3hNYXRFbnRpdHlJbnB1dENvbXBvbmVudFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgTmd4TWF0RW50aXR5Rm9ybUNvbXBvbmVudDxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgRW50aXR5VXRpbGl0aWVzOiB0eXBlb2YgRW50aXR5VXRpbGl0aWVzID0gRW50aXR5VXRpbGl0aWVzO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGVudGl0eSB0aGF0IHNob3VsZCBiZSByZXByZXNlbnRlZCBieSB0aGUgZm9ybS5cbiAgICAgKi9cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICAgIGVudGl0eSE6IEVudGl0eVR5cGU7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdGFicyB0byBkaXNwbGF5LlxuICAgICAqL1xuICAgIGVudGl0eVRhYnMhOiBFbnRpdHlUYWI8RW50aXR5VHlwZT5bXTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgb3Igbm90IHRoZSBlbnRpdHkgaXMgcmVhZG9ubHkuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGlzRW50aXR5UmVhZE9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdG8gaGlkZSBhIHZhbHVlIGlmIGl0IGlzIG9taXR0ZWQgZm9yIGNyZWF0aW9uLlxuICAgICAqIElzIHVzZWQgaW50ZXJuYWxseSBmb3IgdGhlIG9iamVjdCBwcm9wZXJ0eS5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaGlkZU9taXRGb3JDcmVhdGU/OiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0byBoaWRlIGEgdmFsdWUgaWYgaXQgaXMgb21pdHRlZCBmb3IgZWRpdGluZy5cbiAgICAgKiBJcyB1c2VkIGludGVybmFsbHkgZm9yIHRoZSBvYmplY3QgcHJvcGVydHkuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGhpZGVPbWl0Rm9yRWRpdD86IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBBZGRpdGlvbmFsIGtleXMgdGhhdCBzaG91bGQgYmUgb21pdHRlZC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGFkZGl0aW9uYWxPbWl0S2V5cz86IChrZXlvZiBFbnRpdHlUeXBlKVtdO1xuXG4gICAgLyoqXG4gICAgICogRmlyZXMgd2hlbmV2ZXIgYW4gaW5wdXQgb2YgdGhlIGZvcm0gY2hhbmdlcy5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBmb3JtQ2hhbmdlOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBGaXJlcyB3aGVuIHRoZSBzZWxlY3RlZCB0YWIgaGFzIGJlZW4gY2hhbmdlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICByZWFkb25seSBzZWxlY3RlZFRhYkNoYW5nZTogRXZlbnRFbWl0dGVyPE1hdFRhYkNoYW5nZUV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8TWF0VGFiQ2hhbmdlRXZlbnQ+KCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBFbnZpcm9ubWVudEluamVjdG9yKSB7IH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVudGl0eVRhYnMgPSBFbnRpdHlVdGlsaXRpZXMuZ2V0RW50aXR5VGFicyhcbiAgICAgICAgICAgIHRoaXMuZW50aXR5LFxuICAgICAgICAgICAgdGhpcy5pbmplY3RvcixcbiAgICAgICAgICAgIHRoaXMuaGlkZU9taXRGb3JDcmVhdGUsXG4gICAgICAgICAgICB0aGlzLmhpZGVPbWl0Rm9yRWRpdCxcbiAgICAgICAgICAgIHRoaXMuYWRkaXRpb25hbE9taXRLZXlzXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHRoZSBpbnB1dCB3aXRoIHRoZSBnaXZlbiBrZXkgaXMgcmVhZG9ubHkuXG4gICAgICogQHBhcmFtIGtleSAtIFRoZSBrZXkgZm9yIHRoZSBpbnB1dCB0byBjaGVjay5cbiAgICAgKiBAcmV0dXJucyBXaGV0aGVyIG9yIG5vdCB0aGUgaW5wdXQgZm9yIHRoZSBrZXkgaXMgcmVhZCBvbmx5LlxuICAgICAqL1xuICAgIGlzUmVhZE9ubHkoa2V5OiBrZXlvZiBFbnRpdHlUeXBlKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiBydW5JbkluamVjdGlvbkNvbnRleHQodGhpcy5pbmplY3RvciwgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbWV0YWRhdGE6IFByb3BlcnR5RGVjb3JhdG9yQ29uZmlnSW50ZXJuYWw8dW5rbm93bj4gfCB1bmRlZmluZWQgPSBFbnRpdHlVdGlsaXRpZXMuZ2V0UHJvcGVydHlNZXRhZGF0YSh0aGlzLmVudGl0eSwga2V5KTtcbiAgICAgICAgICAgIGlmICghbWV0YWRhdGEpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIG1ldGFkYXRhIHdhcyBmb3VuZCBmb3IgdGhlIGtleSBcIiR7U3RyaW5nKGtleSl9XCJgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlzRW50aXR5UmVhZE9ubHkgfHwgbWV0YWRhdGEuaXNSZWFkT25seSh0aGlzLmVudGl0eSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdoYXQgaGFwcGVucyB3aGVuIGFuIGlucHV0IGNoYW5nZXMgaXRzIHZhbHVlLlxuICAgICAqIFRoaXMgcmVmcmVzaGVzIHRoZSBlbnRpdHkgdGFicyB0byBjaGVjayBpZiB0aGVyZSBhcmUgbm93IGRpZmZlcmVudCBpbnB1dHMgdG8gZGlzcGxheSBhbmQgZW1pdHMgdGhlIGZvcm0gY2hhbmdlLlxuICAgICAqL1xuICAgIGlucHV0Q2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVudGl0eVRhYnMgPSBFbnRpdHlVdGlsaXRpZXMuZ2V0RW50aXR5VGFicyhcbiAgICAgICAgICAgIHRoaXMuZW50aXR5LFxuICAgICAgICAgICAgdGhpcy5pbmplY3RvcixcbiAgICAgICAgICAgIHRoaXMuaGlkZU9taXRGb3JDcmVhdGUsXG4gICAgICAgICAgICB0aGlzLmhpZGVPbWl0Rm9yRWRpdCxcbiAgICAgICAgICAgIHRoaXMuYWRkaXRpb25hbE9taXRLZXlzXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuZm9ybUNoYW5nZS5lbWl0KCk7XG4gICAgfVxufSIsIiA8IS0tIGVzbGludC1kaXNhYmxlIGFuZ3VsYXIvbm8tY2FsbC1leHByZXNzaW9uIC0tPlxuQGlmIChlbnRpdHlUYWJzLmxlbmd0aCA+IDEpIHtcbiAgICA8bWF0LXRhYi1ncm91cCBwcmVzZXJ2ZUNvbnRlbnQgKHNlbGVjdGVkVGFiQ2hhbmdlKT1cInNlbGVjdGVkVGFiQ2hhbmdlLmVtaXQoKVwiPlxuICAgICAgICBAZm9yICh0YWIgb2YgZW50aXR5VGFiczsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8bWF0LXRhYiBbbGFiZWxdPVwidGFiLnRhYk5hbWVcIj5cbiAgICAgICAgICAgICAgICBAZm9yIChyb3cgb2YgdGFiLnJvd3M7IHRyYWNrICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMTJcIiBzdHlsZT1cImNvbHVtbi1nYXA6IDI0cHg7XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBAZm9yIChrZXkgb2Ygcm93LmtleXM7IHRyYWNrIGtleSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxuZ3gtbWF0LWVudGl0eS1pbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZW50aXR5XT1cImVudGl0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwcm9wZXJ0eUtleV09XCJrZXlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaGlkZU9taXRGb3JFZGl0XT1cImhpZGVPbWl0Rm9yRWRpdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRlT21pdEZvckNyZWF0ZV09XCJoaWRlT21pdEZvckNyZWF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc109XCJFbnRpdHlVdGlsaXRpZXMuZ2V0V2lkdGhDbGFzc2VzKGVudGl0eSwga2V5KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpc1JlYWRPbmx5XT1cImlzUmVhZE9ubHkoa2V5KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dENoYW5nZUV2ZW50KT1cImlucHV0Q2hhbmdlKClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L25neC1tYXQtZW50aXR5LWlucHV0PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L21hdC10YWI+XG4gICAgICAgIH1cbiAgICA8L21hdC10YWItZ3JvdXA+XG59XG5AZWxzZSB7XG4gICAgQGlmICghZW50aXR5VGFicy5sZW5ndGgpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJuby1lbnRpdHktdGFic1wiPlxuICAgICAgICAgICAgRVJST1I6IE5vIElucHV0cy4gRGlkIHlvdSBjb3JyZWN0bHkgYXNzaWduIGFsbCB2YWx1ZXMgaW4gdGhlIG1vZGVsIGNvbnN0cnVjdG9yP1xuICAgICAgICA8L3NwYW4+XG4gICAgfVxuICAgIEBlbHNlIHtcbiAgICAgICAgQGZvciAocm93IG9mIGVudGl0eVRhYnNbMF0ucm93czsgdHJhY2sgJGluZGV4KSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLWNvbHMtMTJcIiBzdHlsZT1cImNvbHVtbi1nYXA6IDI0cHg7XCI+XG4gICAgICAgICAgICAgICAgQGZvciAoa2V5IG9mIHJvdy5rZXlzOyB0cmFjayBrZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgPG5neC1tYXQtZW50aXR5LWlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBbZW50aXR5XT1cImVudGl0eVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbcHJvcGVydHlLZXldPVwia2V5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRlT21pdEZvckVkaXRdPVwiaGlkZU9taXRGb3JFZGl0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtoaWRlT21pdEZvckNyZWF0ZV09XCJoaWRlT21pdEZvckNyZWF0ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NdPVwiRW50aXR5VXRpbGl0aWVzLmdldFdpZHRoQ2xhc3NlcyhlbnRpdHksIGtleSlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW2lzUmVhZE9ubHldPVwiaXNSZWFkT25seShrZXkpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIChpbnB1dENoYW5nZUV2ZW50KT1cImlucHV0Q2hhbmdlKClcIlxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDwvbmd4LW1hdC1lbnRpdHktaW5wdXQ+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICB9XG59Il19
|
|
@@ -35,10 +35,10 @@ export class ArrayDateInputComponent extends ArrayTableComponent {
|
|
|
35
35
|
ReflectUtilities.defineMetadata('metadata', this.metadata, this.entity, this.key);
|
|
36
36
|
this.setTableConfig();
|
|
37
37
|
}
|
|
38
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
39
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.
|
|
38
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: ArrayDateInputComponent, deps: [{ token: i1.MatDialog }, { token: i2.HttpClient }, { token: NGX_COMPLETE_GLOBAL_DEFAULT_VALUES }], target: i0.ɵɵFactoryTarget.Component });
|
|
39
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.7", type: ArrayDateInputComponent, isStandalone: true, selector: "array-date-input", usesInheritance: true, ngImport: i0, template: "<!-- eslint-disable angular/no-call-expression -->\n<div class=\"mat-elevation-z8 elevation-container\">\n <div class=\"array-headline\">\n <b>{{metadata.displayName}}</b>\n </div>\n @if (!isReadOnly) {\n <mat-form-field>\n <mat-label>{{metadata.displayName}}</mat-label>\n <input\n #model=\"ngModel\"\n matInput\n [name]=\"name\"\n [matDatepicker]=\"picker\"\n [required]=\"metadata.required(entity)\"\n [min]=\"metadata.min ? metadata.min(input) : undefined\"\n [max]=\"metadata.max ? metadata.max(input) : undefined\"\n [matDatepickerFilter]=\"metadata.filter ?? DateUtilities.defaultDateFilter\"\n [(ngModel)]=\"input\"\n >\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n <mat-error>{{getValidationErrorMessage(model)}}</mat-error>\n </mat-form-field>\n \n <div class=\"buttons\">\n <button type=\"button\" mat-raised-button\n [disabled]=\"model.errors\"\n (click)=\"add()\">\n {{metadata.addButtonLabel}}\n </button>\n <button type=\"button\" mat-raised-button\n [disabled]=\"!selected.length\"\n (click)=\"remove()\">\n {{metadata.removeButtonLabel}}\n </button>\n </div>\n }\n\n <custom-table\n [configuration]=\"tableConfig\"\n [data]=\"propertyValue\"\n [required]=\"metadata.required(entity)\"\n (selectionChanged)=\"selected = $any($event)\"\n >\n </custom-table>\n</div>", styles: ["mat-form-field{width:100%}.buttons{display:flex;justify-content:space-between;margin-bottom:10px;margin-top:5px;flex-wrap:wrap;gap:10px}.buttons button{flex-grow:1}.elevation-container{border-radius:5px;padding:15px 15px 0;margin-bottom:15px;margin-top:15px}.array-headline{padding-bottom:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i4.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: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i5.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i5.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i5.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.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: "ngmodule", type: MatButtonModule }, { kind: "component", type: i7.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: CustomTableComponent, selector: "custom-table", inputs: ["data", "searchString", "required", "isLoading", "configuration"], outputs: ["cellClicked", "selectionChanged"] }] });
|
|
40
40
|
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
41
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: ArrayDateInputComponent, decorators: [{
|
|
42
42
|
type: Component,
|
|
43
43
|
args: [{ selector: 'array-date-input', standalone: true, imports: [
|
|
44
44
|
CommonModule,
|
|
@@ -48,9 +48,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0", ngImpor
|
|
|
48
48
|
MatInputModule,
|
|
49
49
|
MatButtonModule,
|
|
50
50
|
CustomTableComponent
|
|
51
|
-
], template: "<!-- eslint-disable angular/no-call-expression -->\n<div class=\"mat-elevation-z8 elevation-container\">\n <div class=\"array-headline\">\n <b>{{metadata.displayName}}</b>\n </div>\n @if (!isReadOnly) {\n <mat-form-field
|
|
51
|
+
], template: "<!-- eslint-disable angular/no-call-expression -->\n<div class=\"mat-elevation-z8 elevation-container\">\n <div class=\"array-headline\">\n <b>{{metadata.displayName}}</b>\n </div>\n @if (!isReadOnly) {\n <mat-form-field>\n <mat-label>{{metadata.displayName}}</mat-label>\n <input\n #model=\"ngModel\"\n matInput\n [name]=\"name\"\n [matDatepicker]=\"picker\"\n [required]=\"metadata.required(entity)\"\n [min]=\"metadata.min ? metadata.min(input) : undefined\"\n [max]=\"metadata.max ? metadata.max(input) : undefined\"\n [matDatepickerFilter]=\"metadata.filter ?? DateUtilities.defaultDateFilter\"\n [(ngModel)]=\"input\"\n >\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n <mat-error>{{getValidationErrorMessage(model)}}</mat-error>\n </mat-form-field>\n \n <div class=\"buttons\">\n <button type=\"button\" mat-raised-button\n [disabled]=\"model.errors\"\n (click)=\"add()\">\n {{metadata.addButtonLabel}}\n </button>\n <button type=\"button\" mat-raised-button\n [disabled]=\"!selected.length\"\n (click)=\"remove()\">\n {{metadata.removeButtonLabel}}\n </button>\n </div>\n }\n\n <custom-table\n [configuration]=\"tableConfig\"\n [data]=\"propertyValue\"\n [required]=\"metadata.required(entity)\"\n (selectionChanged)=\"selected = $any($event)\"\n >\n </custom-table>\n</div>", styles: ["mat-form-field{width:100%}.buttons{display:flex;justify-content:space-between;margin-bottom:10px;margin-top:5px;flex-wrap:wrap;gap:10px}.buttons button{flex-grow:1}.elevation-container{border-radius:5px;padding:15px 15px 0;margin-bottom:15px;margin-top:15px}.array-headline{padding-bottom:10px}\n"] }]
|
|
52
52
|
}], ctorParameters: () => [{ type: i1.MatDialog }, { type: i2.HttpClient }, { type: undefined, decorators: [{
|
|
53
53
|
type: Inject,
|
|
54
54
|
args: [NGX_COMPLETE_GLOBAL_DEFAULT_VALUES]
|
|
55
55
|
}] }] });
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktZGF0ZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2lucHV0L2FycmF5L2FycmF5LWRhdGUtaW5wdXQvYXJyYXktZGF0ZS1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2lucHV0L2FycmF5L2FycmF5LWRhdGUtaW5wdXQvYXJyYXktZGF0ZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3Q0FBd0M7QUFDeEMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMxRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHekQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sNERBQTRELENBQUM7QUFFOUcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGtDQUFrQyxFQUEwQixNQUFNLHlDQUF5QyxDQUFDO0FBQ3JILE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNwRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7O0FBa0IzRCxNQUFNLE9BQU8sdUJBQ1QsU0FBUSxtQkFBZ0U7SUFRbkQ7SUFOckIsYUFBYSxHQUF5QixhQUFhLENBQUM7SUFFcEQsWUFDSSxNQUFpQixFQUNqQixJQUFnQixFQUVDLFlBQW9DO1FBRXJELEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFGSCxpQkFBWSxHQUFaLFlBQVksQ0FBd0I7SUFHekQsQ0FBQztJQUVRLFFBQVE7UUFDYixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGdDQUFnQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZGLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNsRixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDMUIsQ0FBQzt1R0FuQlEsdUJBQXVCLHFFQVFwQixrQ0FBa0M7MkZBUnJDLHVCQUF1QixtR0NwQ3BDLHl2REE2Q00saVdEbEJFLFlBQVksOEJBQ1osa0JBQWtCLHdnQkFDbEIsV0FBVywyMEJBQ1gsbUJBQW1CLGlnQkFDbkIsY0FBYywwV0FDZCxlQUFlLDROQUNmLG9CQUFvQjs7MkZBR2YsdUJBQXVCO2tCQWhCbkMsU0FBUzsrQkFFSSxrQkFBa0IsY0FHaEIsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osa0JBQWtCO3dCQUNsQixXQUFXO3dCQUNYLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLG9CQUFvQjtxQkFDdkI7OzBCQVVJLE1BQU07MkJBQUMsa0NBQWtDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUganNkb2MvcmVxdWlyZS1qc2RvYyAqL1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcblxuaW1wb3J0IHsgQmFzZUVudGl0eVR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi9jbGFzc2VzL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBEYXRlQXJyYXlEZWNvcmF0b3JDb25maWdJbnRlcm5hbCB9IGZyb20gJy4uLy4uLy4uLy4uL2RlY29yYXRvcnMvYXJyYXkvYXJyYXktZGVjb3JhdG9yLWludGVybmFsLmRhdGEnO1xuaW1wb3J0IHsgRGVjb3JhdG9yVHlwZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9kZWNvcmF0b3JzL2Jhc2UvZGVjb3JhdG9yLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgUmVmbGVjdFV0aWxpdGllcyB9IGZyb20gJy4uLy4uLy4uLy4uL2VuY2Fwc3VsYXRpb24vcmVmbGVjdC51dGlsaXRpZXMnO1xuaW1wb3J0IHsgTkdYX0NPTVBMRVRFX0dMT0JBTF9ERUZBVUxUX1ZBTFVFUywgTmd4R2xvYmFsRGVmYXVsdFZhbHVlcyB9IGZyb20gJy4uLy4uLy4uLy4uL2dsb2JhbC1jb25maWd1cmF0aW9uLXZhbHVlcyc7XG5pbXBvcnQgeyBEYXRlVXRpbGl0aWVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbGl0aWVzL2RhdGUudXRpbGl0aWVzJztcbmltcG9ydCB7IEN1c3RvbVRhYmxlQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY3VzdG9tLXRhYmxlL2N1c3RvbS10YWJsZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXJyYXlUYWJsZUNvbXBvbmVudCB9IGZyb20gJy4uL2FycmF5LXRhYmxlLmNsYXNzJztcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGFuZ3VsYXIvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdhcnJheS1kYXRlLWlucHV0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXJyYXktZGF0ZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYXJyYXktZGF0ZS1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICAgICAgRm9ybXNNb2R1bGUsXG4gICAgICAgIE1hdERhdGVwaWNrZXJNb2R1bGUsXG4gICAgICAgIE1hdElucHV0TW9kdWxlLFxuICAgICAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgICAgIEN1c3RvbVRhYmxlQ29tcG9uZW50XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBBcnJheURhdGVJbnB1dENvbXBvbmVudDxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+XG4gICAgZXh0ZW5kcyBBcnJheVRhYmxlQ29tcG9uZW50PERhdGUsIEVudGl0eVR5cGUsIERlY29yYXRvclR5cGVzLkFSUkFZX0RBVEU+IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIERhdGVVdGlsaXRpZXM6IHR5cGVvZiBEYXRlVXRpbGl0aWVzID0gRGF0ZVV0aWxpdGllcztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBkaWFsb2c6IE1hdERpYWxvZyxcbiAgICAgICAgaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgQEluamVjdChOR1hfQ09NUExFVEVfR0xPQkFMX0RFRkFVTFRfVkFMVUVTKVxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGdsb2JhbENvbmZpZzogTmd4R2xvYmFsRGVmYXVsdFZhbHVlc1xuICAgICkge1xuICAgICAgICBzdXBlcihkaWFsb2csIGh0dHApO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLm1ldGFkYXRhID0gbmV3IERhdGVBcnJheURlY29yYXRvckNvbmZpZ0ludGVybmFsKHRoaXMubWV0YWRhdGEsIHRoaXMuZ2xvYmFsQ29uZmlnKTtcbiAgICAgICAgUmVmbGVjdFV0aWxpdGllcy5kZWZpbmVNZXRhZGF0YSgnbWV0YWRhdGEnLCB0aGlzLm1ldGFkYXRhLCB0aGlzLmVudGl0eSwgdGhpcy5rZXkpO1xuICAgICAgICB0aGlzLnNldFRhYmxlQ29uZmlnKCk7XG4gICAgfVxufSIsIjwhLS0gZXNsaW50LWRpc2FibGUgYW5ndWxhci9uby1jYWxsLWV4cHJlc3Npb24gLS0+XG48ZGl2IGNsYXNzPVwibWF0LWVsZXZhdGlvbi16OCBlbGV2YXRpb24tY29udGFpbmVyXCI+XG4gICAgPGRpdiBjbGFzcz1cImFycmF5LWhlYWRsaW5lXCI+XG4gICAgICAgIDxiPnt7bWV0YWRhdGEuZGlzcGxheU5hbWV9fTwvYj5cbiAgICA8L2Rpdj5cbiAgICBAaWYgKCFpc1JlYWRPbmx5KSB7XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDxtYXQtbGFiZWw+e3ttZXRhZGF0YS5kaXNwbGF5TmFtZX19PC9tYXQtbGFiZWw+XG4gICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAjbW9kZWw9XCJuZ01vZGVsXCJcbiAgICAgICAgICAgICAgICBtYXRJbnB1dFxuICAgICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgICAgICAgICAgICAgIFttYXREYXRlcGlja2VyXT1cInBpY2tlclwiXG4gICAgICAgICAgICAgICAgW3JlcXVpcmVkXT1cIm1ldGFkYXRhLnJlcXVpcmVkKGVudGl0eSlcIlxuICAgICAgICAgICAgICAgIFttaW5dPVwibWV0YWRhdGEubWluID8gbWV0YWRhdGEubWluKGlucHV0KSA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgICAgW21heF09XCJtZXRhZGF0YS5tYXggPyBtZXRhZGF0YS5tYXgoaW5wdXQpIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgICAgICBbbWF0RGF0ZXBpY2tlckZpbHRlcl09XCJtZXRhZGF0YS5maWx0ZXIgPz8gRGF0ZVV0aWxpdGllcy5kZWZhdWx0RGF0ZUZpbHRlclwiXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJpbnB1dFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cInBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgICAgICAgICAgPG1hdC1kYXRlcGlja2VyICNwaWNrZXI+PC9tYXQtZGF0ZXBpY2tlcj5cbiAgICAgICAgICAgIDxtYXQtZXJyb3I+e3tnZXRWYWxpZGF0aW9uRXJyb3JNZXNzYWdlKG1vZGVsKX19PC9tYXQtZXJyb3I+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIFxuICAgICAgICA8ZGl2IGNsYXNzPVwiYnV0dG9uc1wiPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwibW9kZWwuZXJyb3JzXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiYWRkKClcIj5cbiAgICAgICAgICAgICAgICB7e21ldGFkYXRhLmFkZEJ1dHRvbkxhYmVsfX1cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgbWF0LXJhaXNlZC1idXR0b25cbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXNlbGVjdGVkLmxlbmd0aFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZSgpXCI+XG4gICAgICAgICAgICAgICAge3ttZXRhZGF0YS5yZW1vdmVCdXR0b25MYWJlbH19XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPGN1c3RvbS10YWJsZVxuICAgICAgICBbY29uZmlndXJhdGlvbl09XCJ0YWJsZUNvbmZpZ1wiXG4gICAgICAgIFtkYXRhXT1cInByb3BlcnR5VmFsdWVcIlxuICAgICAgICBbcmVxdWlyZWRdPVwibWV0YWRhdGEucmVxdWlyZWQoZW50aXR5KVwiXG4gICAgICAgIChzZWxlY3Rpb25DaGFuZ2VkKT1cInNlbGVjdGVkID0gJGFueSgkZXZlbnQpXCJcbiAgICA+XG4gICAgPC9jdXN0b20tdGFibGU+XG48L2Rpdj4iXX0=
|
package/esm2022/components/input/array/array-date-range-input/array-date-range-input.component.mjs
CHANGED
|
@@ -62,10 +62,10 @@ export class ArrayDateRangeInputComponent extends ArrayTableComponent {
|
|
|
62
62
|
this.dateRangeStart = undefined;
|
|
63
63
|
this.dateRangeEnd = undefined;
|
|
64
64
|
}
|
|
65
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.
|
|
66
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.
|
|
65
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: ArrayDateRangeInputComponent, deps: [{ token: i1.MatDialog }, { token: i2.HttpClient }, { token: NGX_COMPLETE_GLOBAL_DEFAULT_VALUES }], target: i0.ɵɵFactoryTarget.Component });
|
|
66
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.7", type: ArrayDateRangeInputComponent, isStandalone: true, selector: "array-date-range-input", usesInheritance: true, ngImport: i0, template: "<!-- eslint-disable angular/no-call-expression -->\n<div class=\"mat-elevation-z8 elevation-container\">\n <div class=\"array-headline\">\n <b>{{metadata.displayName}}</b>\n </div>\n @if (!isReadOnly) {\n <mat-form-field>\n <mat-label>{{metadata.displayName}}</mat-label>\n \n <mat-date-range-input [rangePicker]=\"picker\" [required]=\"metadata.required(entity)\" [dateFilter]=\"metadata.filter ? metadata.filter : DateUtilities.defaultDateFilter\">\n <input #startModel=\"ngModel\"\n matStartDate\n [name]=\"name + 'start'\"\n [required]=\"metadata.required(entity)\"\n [min]=\"metadata.minStart ? metadata.minStart(input?.start) : undefined\"\n [max]=\"metadata.maxStart ? metadata.maxStart(input?.start) : undefined\"\n [placeholder]=\"metadata.placeholderStart\"\n [(ngModel)]=\"dateRangeStart\"\n >\n <input #endModel=\"ngModel\"\n matEndDate\n [name]=\"name + 'end'\"\n [required]=\"metadata.required(entity)\"\n [min]=\"metadata.minEnd ? metadata.minEnd(input?.end) : undefined\"\n [max]=\"metadata.maxEnd ? metadata.maxEnd(input?.end) : undefined\"\n [placeholder]=\"metadata.placeholderEnd\"\n [(ngModel)]=\"dateRangeEnd\"\n >\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker #picker></mat-date-range-picker>\n \n @if (startModel.errors) {\n <mat-error>{{getValidationErrorMessage(startModel)}}</mat-error>\n }\n @if (!startModel.errors && endModel.errors) {\n <mat-error>{{getValidationErrorMessage(endModel)}}</mat-error>\n }\n </mat-form-field>\n \n <div class=\"buttons\">\n <button type=\"button\" mat-raised-button\n [disabled]=\"startModel.errors || endModel.errors\"\n (click)=\"add()\">\n {{metadata.addButtonLabel}}\n </button>\n <button type=\"button\" mat-raised-button\n [disabled]=\"!selected.length\"\n (click)=\"remove()\">\n {{metadata.removeButtonLabel}}\n </button>\n </div>\n }\n\n <custom-table\n [configuration]=\"tableConfig\"\n [data]=\"propertyValue\"\n [required]=\"metadata.required(entity)\"\n (selectionChanged)=\"selected = $any($event)\"\n >\n </custom-table>\n</div>", styles: ["mat-form-field{width:100%}.buttons{display:flex;justify-content:space-between;margin-bottom:10px;margin-top:5px;flex-wrap:wrap;gap:10px}.buttons button{flex-grow:1}.elevation-container{border-radius:5px;padding:15px 15px 0;margin-bottom:15px;margin-top:15px}.array-headline{padding-bottom:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i4.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i4.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i4.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i4.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i4.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.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: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i6.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: CustomTableComponent, selector: "custom-table", inputs: ["data", "searchString", "required", "isLoading", "configuration"], outputs: ["cellClicked", "selectionChanged"] }] });
|
|
67
67
|
}
|
|
68
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.
|
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: ArrayDateRangeInputComponent, decorators: [{
|
|
69
69
|
type: Component,
|
|
70
70
|
args: [{ selector: 'array-date-range-input', standalone: true, imports: [
|
|
71
71
|
CommonModule,
|