ngx-material-entity 0.1.5 → 1.0.0

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.
Files changed (70) hide show
  1. package/README.md +406 -35
  2. package/classes/entity.model.d.ts +1 -0
  3. package/classes/entity.utilities.d.ts +2 -1
  4. package/components/input/array/array-date-input/array-date-input.component.d.ts +5 -16
  5. package/components/input/array/array-date-range-input/array-date-range-input.component.d.ts +5 -15
  6. package/components/input/array/array-date-time-input/array-date-time-input.component.d.ts +5 -15
  7. package/components/input/array/array-string-autocomplete-chips/array-string-autocomplete-chips.component.d.ts +5 -12
  8. package/components/input/array/array-string-chips-input/array-string-chips-input.component.d.ts +5 -12
  9. package/components/input/array/array-table.class.d.ts +10 -9
  10. package/components/input/base-input.component.d.ts +31 -0
  11. package/components/input/boolean/boolean-checkbox-input/boolean-checkbox-input.component.d.ts +5 -12
  12. package/components/input/boolean/boolean-dropdown-input/boolean-dropdown-input.component.d.ts +5 -13
  13. package/components/input/boolean/boolean-toggle-input/boolean-toggle-input.component.d.ts +5 -12
  14. package/components/input/custom/custom.component.d.ts +13 -0
  15. package/components/input/date/date-input/date-input.component.d.ts +5 -13
  16. package/components/input/date/date-range-input/date-range-input.component.d.ts +5 -12
  17. package/components/input/date/date-time-input/date-time-input.component.d.ts +5 -12
  18. package/components/input/file/file-default-input/file-default-input.component.d.ts +5 -13
  19. package/components/input/file/file-image-input/file-image-input.component.d.ts +5 -13
  20. package/components/input/input.component.d.ts +1 -1
  21. package/components/input/input.module.d.ts +17 -16
  22. package/components/input/number/number-dropdown-input/number-dropdown-input.component.d.ts +5 -13
  23. package/components/input/number/number-input/number-input.component.d.ts +5 -13
  24. package/components/input/string/string-autocomplete-input/string-autocomplete-input.component.d.ts +5 -12
  25. package/components/input/string/string-dropdown-input/string-dropdown-input.component.d.ts +5 -13
  26. package/components/input/string/string-input/string-input.component.d.ts +5 -13
  27. package/components/input/string/string-textbox-input/string-textbox-input.component.d.ts +5 -13
  28. package/decorators/base/base-property.decorator.d.ts +1 -1
  29. package/decorators/base/decorator-types.enum.d.ts +4 -2
  30. package/decorators/custom/custom-decorator-internal.data.d.ts +17 -0
  31. package/decorators/custom/custom-decorator.data.d.ts +33 -0
  32. package/decorators/custom/custom.decorator.d.ts +11 -0
  33. package/esm2020/classes/entity.model.mjs +5 -1
  34. package/esm2020/classes/entity.utilities.mjs +19 -2
  35. package/esm2020/components/input/array/array-date-input/array-date-input.component.mjs +17 -35
  36. package/esm2020/components/input/array/array-date-range-input/array-date-range-input.component.mjs +17 -35
  37. package/esm2020/components/input/array/array-date-time-input/array-date-time-input.component.mjs +20 -35
  38. package/esm2020/components/input/array/array-string-autocomplete-chips/array-string-autocomplete-chips.component.mjs +9 -21
  39. package/esm2020/components/input/array/array-string-chips-input/array-string-chips-input.component.mjs +9 -21
  40. package/esm2020/components/input/array/array-table.class.mjs +19 -4
  41. package/esm2020/components/input/base-input.component.mjs +39 -0
  42. package/esm2020/components/input/boolean/boolean-checkbox-input/boolean-checkbox-input.component.mjs +8 -23
  43. package/esm2020/components/input/boolean/boolean-dropdown-input/boolean-dropdown-input.component.mjs +7 -25
  44. package/esm2020/components/input/boolean/boolean-toggle-input/boolean-toggle-input.component.mjs +8 -23
  45. package/esm2020/components/input/custom/custom.component.mjs +25 -0
  46. package/esm2020/components/input/date/date-input/date-input.component.mjs +8 -23
  47. package/esm2020/components/input/date/date-range-input/date-range-input.component.mjs +9 -21
  48. package/esm2020/components/input/date/date-time-input/date-time-input.component.mjs +11 -22
  49. package/esm2020/components/input/file/file-default-input/file-default-input.component.mjs +8 -23
  50. package/esm2020/components/input/file/file-image-input/file-image-input.component.mjs +8 -24
  51. package/esm2020/components/input/input.component.mjs +20 -14
  52. package/esm2020/components/input/input.module.mjs +4 -1
  53. package/esm2020/components/input/number/number-dropdown-input/number-dropdown-input.component.mjs +7 -25
  54. package/esm2020/components/input/number/number-input/number-input.component.mjs +7 -25
  55. package/esm2020/components/input/string/string-autocomplete-input/string-autocomplete-input.component.mjs +8 -23
  56. package/esm2020/components/input/string/string-dropdown-input/string-dropdown-input.component.mjs +7 -25
  57. package/esm2020/components/input/string/string-input/string-input.component.mjs +7 -25
  58. package/esm2020/components/input/string/string-textbox-input/string-textbox-input.component.mjs +7 -25
  59. package/esm2020/decorators/base/base-property.decorator.mjs +1 -1
  60. package/esm2020/decorators/base/decorator-types.enum.mjs +2 -1
  61. package/esm2020/decorators/custom/custom-decorator-internal.data.mjs +26 -0
  62. package/esm2020/decorators/custom/custom-decorator.data.mjs +2 -0
  63. package/esm2020/decorators/custom/custom.decorator.mjs +13 -0
  64. package/esm2020/public-api.mjs +4 -1
  65. package/fesm2015/ngx-material-entity.mjs +282 -427
  66. package/fesm2015/ngx-material-entity.mjs.map +1 -1
  67. package/fesm2020/ngx-material-entity.mjs +408 -552
  68. package/fesm2020/ngx-material-entity.mjs.map +1 -1
  69. package/package.json +1 -1
  70. package/public-api.d.ts +3 -0
@@ -1,38 +1,23 @@
1
1
  /* eslint-disable jsdoc/require-jsdoc */
2
- import { Component, EventEmitter, Input, Output } from '@angular/core';
3
- import { DecoratorTypes } from '../../../../decorators/base/decorator-types.enum';
4
- import { EntityUtilities } from '../../../../classes/entity.utilities';
2
+ import { Component } from '@angular/core';
3
+ import { NgxMatEntityBaseInputComponent } from '../../base-input.component';
5
4
  import * as i0 from "@angular/core";
6
5
  import * as i1 from "@angular/material/form-field";
7
6
  import * as i2 from "@angular/material/slide-toggle";
8
7
  import * as i3 from "@angular/forms";
9
8
  import * as i4 from "@angular/material/input";
10
- export class BooleanToggleInputComponent {
11
- constructor() {
12
- this.inputChangeEvent = new EventEmitter();
13
- }
9
+ export class BooleanToggleInputComponent extends NgxMatEntityBaseInputComponent {
14
10
  ngOnInit() {
15
- this.metadata = EntityUtilities.getPropertyMetadata(this.entity, this.key, DecoratorTypes.BOOLEAN_TOGGLE);
11
+ super.ngOnInit();
16
12
  if (this.entity[this.key] == null) {
17
13
  this.entity[this.key] = false;
18
14
  }
19
15
  }
20
- emitChange() {
21
- this.inputChangeEvent.emit();
22
- }
23
16
  }
24
- BooleanToggleInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BooleanToggleInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
25
- BooleanToggleInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: BooleanToggleInputComponent, selector: "boolean-toggle-input", inputs: { entity: "entity", key: "key", getValidationErrorMessage: "getValidationErrorMessage" }, outputs: { inputChangeEvent: "inputChangeEvent" }, ngImport: i0, template: "<mat-form-field class=\"hideUnderline\">\n <mat-label>{{metadata.displayName}}</mat-label>\n <mat-slide-toggle (click)=\"model.control.markAsTouched()\" [(ngModel)]=\"entity[key]\" [name]=\"key.toString()\"></mat-slide-toggle>\n <!-- hidden input is needed so that the toggle can be used inside a mat-form-field -->\n <input matInput hidden\n [(ngModel)]=\"entity[key]\"\n [name]=\"key.toString() + 'Helper'\"\n #model=\"ngModel\"\n [pattern]=\"metadata.required ? 'true' : '[\\\\s\\\\S]*'\"\n [required]=\"metadata.required\"\n (ngModelChange)=\"emitChange\"\n >\n <mat-error>{{getValidationErrorMessage(model)}}</mat-error>\n</mat-form-field>", styles: ["::ng-deep .hideUnderline .mat-form-field-underline{opacity:0%}mat-form-field{width:100%}\n"], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex", "name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "checked"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }], directives: [{ type: i1.MatLabel, selector: "mat-label" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.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"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1.MatError, selector: "mat-error", inputs: ["id"] }] });
17
+ BooleanToggleInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BooleanToggleInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
18
+ BooleanToggleInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: BooleanToggleInputComponent, selector: "boolean-toggle-input", usesInheritance: true, ngImport: i0, template: "<mat-form-field class=\"hideUnderline\">\n <mat-label>{{metadata.displayName}}</mat-label>\n <mat-slide-toggle (click)=\"model.control.markAsTouched()\" [(ngModel)]=\"entity[key]\" [name]=\"key.toString()\"></mat-slide-toggle>\n <!-- hidden input is needed so that the toggle can be used inside a mat-form-field -->\n <input matInput hidden\n [(ngModel)]=\"entity[key]\"\n [name]=\"key.toString() + 'Helper'\"\n #model=\"ngModel\"\n [pattern]=\"metadata.required ? 'true' : '[\\\\s\\\\S]*'\"\n [required]=\"metadata.required\"\n (ngModelChange)=\"emitChange\"\n >\n <mat-error>{{getValidationErrorMessage(model)}}</mat-error>\n</mat-form-field>", styles: ["::ng-deep .hideUnderline .mat-form-field-underline{opacity:0%}mat-form-field{width:100%}\n"], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex", "name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "checked"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }], directives: [{ type: i1.MatLabel, selector: "mat-label" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.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"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1.MatError, selector: "mat-error", inputs: ["id"] }] });
26
19
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BooleanToggleInputComponent, decorators: [{
27
20
  type: Component,
28
21
  args: [{ selector: 'boolean-toggle-input', template: "<mat-form-field class=\"hideUnderline\">\n <mat-label>{{metadata.displayName}}</mat-label>\n <mat-slide-toggle (click)=\"model.control.markAsTouched()\" [(ngModel)]=\"entity[key]\" [name]=\"key.toString()\"></mat-slide-toggle>\n <!-- hidden input is needed so that the toggle can be used inside a mat-form-field -->\n <input matInput hidden\n [(ngModel)]=\"entity[key]\"\n [name]=\"key.toString() + 'Helper'\"\n #model=\"ngModel\"\n [pattern]=\"metadata.required ? 'true' : '[\\\\s\\\\S]*'\"\n [required]=\"metadata.required\"\n (ngModelChange)=\"emitChange\"\n >\n <mat-error>{{getValidationErrorMessage(model)}}</mat-error>\n</mat-form-field>", styles: ["::ng-deep .hideUnderline .mat-form-field-underline{opacity:0%}mat-form-field{width:100%}\n"] }]
29
- }], ctorParameters: function () { return []; }, propDecorators: { entity: [{
30
- type: Input
31
- }], key: [{
32
- type: Input
33
- }], getValidationErrorMessage: [{
34
- type: Input
35
- }], inputChangeEvent: [{
36
- type: Output
37
- }] } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi10b2dnbGUtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLWVudGl0eS9zcmMvY29tcG9uZW50cy9pbnB1dC9ib29sZWFuL2Jvb2xlYW4tdG9nZ2xlLWlucHV0L2Jvb2xlYW4tdG9nZ2xlLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvaW5wdXQvYm9vbGVhbi9ib29sZWFuLXRvZ2dsZS1pbnB1dC9ib29sZWFuLXRvZ2dsZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3Q0FBd0M7QUFDeEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDbEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDOzs7Ozs7QUFXdkUsTUFBTSxPQUFPLDJCQUEyQjtJQWdCcEM7UUFKQSxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBSTVCLENBQUM7SUFFakIsUUFBUTtRQUNKLElBQUksQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDMUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLEVBQUU7WUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFhLEdBQUcsS0FBSyxDQUFDO1NBQzlDO0lBQ0wsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQzs7eUhBM0JRLDJCQUEyQjs2R0FBM0IsMkJBQTJCLGlOQ2R4Qyxrc0JBYWlCOzRGRENKLDJCQUEyQjtrQkFOdkMsU0FBUzsrQkFFSSxzQkFBc0I7MEVBT2hDLE1BQU07c0JBREwsS0FBSztnQkFJTixHQUFHO3NCQURGLEtBQUs7Z0JBSU4seUJBQXlCO3NCQUR4QixLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUganNkb2MvcmVxdWlyZS1qc2RvYyAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGVjb3JhdG9yVHlwZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9kZWNvcmF0b3JzL2Jhc2UvZGVjb3JhdG9yLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgRW50aXR5VXRpbGl0aWVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vY2xhc3Nlcy9lbnRpdHkudXRpbGl0aWVzJztcbmltcG9ydCB7IFRvZ2dsZUJvb2xlYW5EZWNvcmF0b3JDb25maWdJbnRlcm5hbCB9IGZyb20gJy4uLy4uLy4uLy4uL2RlY29yYXRvcnMvYm9vbGVhbi9ib29sZWFuLWRlY29yYXRvci1pbnRlcm5hbC5kYXRhJztcbmltcG9ydCB7IE5nTW9kZWwgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBCYXNlRW50aXR5VHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NsYXNzZXMvZW50aXR5Lm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2Jvb2xlYW4tdG9nZ2xlLWlucHV0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYm9vbGVhbi10b2dnbGUtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2Jvb2xlYW4tdG9nZ2xlLWlucHV0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQm9vbGVhblRvZ2dsZUlucHV0Q29tcG9uZW50PEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgQElucHV0KClcbiAgICBlbnRpdHkhOiBFbnRpdHlUeXBlO1xuXG4gICAgQElucHV0KClcbiAgICBrZXkhOiBrZXlvZiBFbnRpdHlUeXBlO1xuXG4gICAgQElucHV0KClcbiAgICBnZXRWYWxpZGF0aW9uRXJyb3JNZXNzYWdlITogKG1vZGVsOiBOZ01vZGVsKSA9PiBzdHJpbmc7XG5cbiAgICBAT3V0cHV0KClcbiAgICBpbnB1dENoYW5nZUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gICAgbWV0YWRhdGEhOiBUb2dnbGVCb29sZWFuRGVjb3JhdG9yQ29uZmlnSW50ZXJuYWw7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubWV0YWRhdGEgPSBFbnRpdHlVdGlsaXRpZXMuZ2V0UHJvcGVydHlNZXRhZGF0YSh0aGlzLmVudGl0eSwgdGhpcy5rZXksIERlY29yYXRvclR5cGVzLkJPT0xFQU5fVE9HR0xFKTtcbiAgICAgICAgaWYgKHRoaXMuZW50aXR5W3RoaXMua2V5XSA9PSBudWxsKSB7XG4gICAgICAgICAgICAodGhpcy5lbnRpdHlbdGhpcy5rZXldIGFzIGJvb2xlYW4pID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBlbWl0Q2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0Q2hhbmdlRXZlbnQuZW1pdCgpO1xuICAgIH1cbn0iLCI8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJoaWRlVW5kZXJsaW5lXCI+XG4gICAgPG1hdC1sYWJlbD57e21ldGFkYXRhLmRpc3BsYXlOYW1lfX08L21hdC1sYWJlbD5cbiAgICA8bWF0LXNsaWRlLXRvZ2dsZSAoY2xpY2spPVwibW9kZWwuY29udHJvbC5tYXJrQXNUb3VjaGVkKClcIiBbKG5nTW9kZWwpXT1cImVudGl0eVtrZXldXCIgW25hbWVdPVwia2V5LnRvU3RyaW5nKClcIj48L21hdC1zbGlkZS10b2dnbGU+XG4gICAgPCEtLSBoaWRkZW4gaW5wdXQgaXMgbmVlZGVkIHNvIHRoYXQgdGhlIHRvZ2dsZSBjYW4gYmUgdXNlZCBpbnNpZGUgYSBtYXQtZm9ybS1maWVsZCAtLT5cbiAgICA8aW5wdXQgbWF0SW5wdXQgaGlkZGVuXG4gICAgICAgIFsobmdNb2RlbCldPVwiZW50aXR5W2tleV1cIlxuICAgICAgICBbbmFtZV09XCJrZXkudG9TdHJpbmcoKSArICdIZWxwZXInXCJcbiAgICAgICAgI21vZGVsPVwibmdNb2RlbFwiXG4gICAgICAgIFtwYXR0ZXJuXT1cIm1ldGFkYXRhLnJlcXVpcmVkID8gJ3RydWUnIDogJ1tcXFxcc1xcXFxTXSonXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cIm1ldGFkYXRhLnJlcXVpcmVkXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiZW1pdENoYW5nZVwiXG4gICAgPlxuICAgIDxtYXQtZXJyb3I+e3tnZXRWYWxpZGF0aW9uRXJyb3JNZXNzYWdlKG1vZGVsKX19PC9tYXQtZXJyb3I+XG48L21hdC1mb3JtLWZpZWxkPiJdfQ==
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi10b2dnbGUtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLWVudGl0eS9zcmMvY29tcG9uZW50cy9pbnB1dC9ib29sZWFuL2Jvb2xlYW4tdG9nZ2xlLWlucHV0L2Jvb2xlYW4tdG9nZ2xlLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvaW5wdXQvYm9vbGVhbi9ib29sZWFuLXRvZ2dsZS1pbnB1dC9ib29sZWFuLXRvZ2dsZS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3Q0FBd0M7QUFDeEMsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUdsRCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7O0FBUTVFLE1BQU0sT0FBTywyQkFDVCxTQUFRLDhCQUF5RTtJQUV4RSxRQUFRO1FBQ2IsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFO1lBQzlCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBYSxHQUFHLEtBQUssQ0FBQztTQUM5QztJQUNMLENBQUM7O3lIQVJRLDJCQUEyQjs2R0FBM0IsMkJBQTJCLG1GQ1p4Qyxrc0JBYWlCOzRGRERKLDJCQUEyQjtrQkFOdkMsU0FBUzsrQkFFSSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBqc2RvYy9yZXF1aXJlLWpzZG9jICovXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGVjb3JhdG9yVHlwZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9kZWNvcmF0b3JzL2Jhc2UvZGVjb3JhdG9yLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgQmFzZUVudGl0eVR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi9jbGFzc2VzL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBOZ3hNYXRFbnRpdHlCYXNlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlLWlucHV0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdib29sZWFuLXRvZ2dsZS1pbnB1dCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Jvb2xlYW4tdG9nZ2xlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9ib29sZWFuLXRvZ2dsZS1pbnB1dC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEJvb2xlYW5Ub2dnbGVJbnB1dENvbXBvbmVudDxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+XG4gICAgZXh0ZW5kcyBOZ3hNYXRFbnRpdHlCYXNlSW5wdXRDb21wb25lbnQ8RW50aXR5VHlwZSwgRGVjb3JhdG9yVHlwZXMuQk9PTEVBTl9UT0dHTEU+IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICBpZiAodGhpcy5lbnRpdHlbdGhpcy5rZXldID09IG51bGwpIHtcbiAgICAgICAgICAgICh0aGlzLmVudGl0eVt0aGlzLmtleV0gYXMgYm9vbGVhbikgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCI8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJoaWRlVW5kZXJsaW5lXCI+XG4gICAgPG1hdC1sYWJlbD57e21ldGFkYXRhLmRpc3BsYXlOYW1lfX08L21hdC1sYWJlbD5cbiAgICA8bWF0LXNsaWRlLXRvZ2dsZSAoY2xpY2spPVwibW9kZWwuY29udHJvbC5tYXJrQXNUb3VjaGVkKClcIiBbKG5nTW9kZWwpXT1cImVudGl0eVtrZXldXCIgW25hbWVdPVwia2V5LnRvU3RyaW5nKClcIj48L21hdC1zbGlkZS10b2dnbGU+XG4gICAgPCEtLSBoaWRkZW4gaW5wdXQgaXMgbmVlZGVkIHNvIHRoYXQgdGhlIHRvZ2dsZSBjYW4gYmUgdXNlZCBpbnNpZGUgYSBtYXQtZm9ybS1maWVsZCAtLT5cbiAgICA8aW5wdXQgbWF0SW5wdXQgaGlkZGVuXG4gICAgICAgIFsobmdNb2RlbCldPVwiZW50aXR5W2tleV1cIlxuICAgICAgICBbbmFtZV09XCJrZXkudG9TdHJpbmcoKSArICdIZWxwZXInXCJcbiAgICAgICAgI21vZGVsPVwibmdNb2RlbFwiXG4gICAgICAgIFtwYXR0ZXJuXT1cIm1ldGFkYXRhLnJlcXVpcmVkID8gJ3RydWUnIDogJ1tcXFxcc1xcXFxTXSonXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cIm1ldGFkYXRhLnJlcXVpcmVkXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiZW1pdENoYW5nZVwiXG4gICAgPlxuICAgIDxtYXQtZXJyb3I+e3tnZXRWYWxpZGF0aW9uRXJyb3JNZXNzYWdlKG1vZGVsKX19PC9tYXQtZXJyb3I+XG48L21hdC1mb3JtLWZpZWxkPiJdfQ==
@@ -0,0 +1,25 @@
1
+ /* eslint-disable jsdoc/require-jsdoc */
2
+ import { Component, ViewContainerRef } from '@angular/core';
3
+ import { NgxMatEntityBaseInputComponent } from '../base-input.component';
4
+ import * as i0 from "@angular/core";
5
+ export class CustomInputComponent extends NgxMatEntityBaseInputComponent {
6
+ constructor(viewContainerRef) {
7
+ super();
8
+ this.viewContainerRef = viewContainerRef;
9
+ }
10
+ ngOnInit() {
11
+ super.ngOnInit();
12
+ this.component = this.viewContainerRef.createComponent(this.metadata.component);
13
+ this.component.instance.entity = this.entity;
14
+ this.component.instance.key = this.key;
15
+ this.component.instance.getValidationErrorMessage = this.getValidationErrorMessage;
16
+ this.component.instance.inputChangeEvent.subscribe(this.inputChangeEvent);
17
+ }
18
+ }
19
+ CustomInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CustomInputComponent, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component });
20
+ CustomInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: CustomInputComponent, selector: "custom-input", usesInheritance: true, ngImport: i0, template: "", styles: [""] });
21
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CustomInputComponent, decorators: [{
22
+ type: Component,
23
+ args: [{ selector: 'custom-input', template: "", styles: [""] }]
24
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }]; } });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvaW5wdXQvY3VzdG9tL2N1c3RvbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2lucHV0L2N1c3RvbS9jdXN0b20uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0NBQXdDO0FBQ3hDLE9BQU8sRUFBRSxTQUFTLEVBQThCLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3hGLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOztBQVF6RSxNQUFNLE9BQU8sb0JBSVgsU0FBUSw4QkFBaUU7SUFJdkUsWUFBNkIsZ0JBQWtDO1FBQzNELEtBQUssRUFBRSxDQUFDO1FBRGlCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFFL0QsQ0FBQztJQUVRLFFBQVE7UUFDYixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFnQixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQWdDLENBQUMsQ0FBQztRQUN0SCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQztRQUM3QyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQztRQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUM7UUFDbkYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzlFLENBQUM7O2tIQW5CUSxvQkFBb0I7c0dBQXBCLG9CQUFvQiwyRUNaakMsRUFBQTs0RkRZYSxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBRUksY0FBYyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGpzZG9jL3JlcXVpcmUtanNkb2MgKi9cbmltcG9ydCB7IENvbXBvbmVudCwgQ29tcG9uZW50UmVmLCBPbkluaXQsIFR5cGUsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJhc2VFbnRpdHlUeXBlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgRGVjb3JhdG9yVHlwZXMgfSBmcm9tICcuLi8uLi8uLi9kZWNvcmF0b3JzL2Jhc2UvZGVjb3JhdG9yLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgTmd4TWF0RW50aXR5QmFzZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1pbnB1dC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnY3VzdG9tLWlucHV0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9jdXN0b20uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21JbnB1dENvbXBvbmVudDxcbiAgICBFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4sXG4gICAgTWV0YWRhdGFUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8TWV0YWRhdGFUeXBlPixcbiAgICBDb21wb25lbnRUeXBlIGV4dGVuZHMgTmd4TWF0RW50aXR5QmFzZUlucHV0Q29tcG9uZW50PEVudGl0eVR5cGUsIERlY29yYXRvclR5cGVzLkNVU1RPTSwgTWV0YWRhdGFUeXBlPlxuPiBleHRlbmRzIE5neE1hdEVudGl0eUJhc2VJbnB1dENvbXBvbmVudDxFbnRpdHlUeXBlLCBEZWNvcmF0b3JUeXBlcy5DVVNUT00+IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIGNvbXBvbmVudCE6IENvbXBvbmVudFJlZjxDb21wb25lbnRUeXBlPjtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZikge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmNvbXBvbmVudCA9IHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQ8Q29tcG9uZW50VHlwZT4odGhpcy5tZXRhZGF0YS5jb21wb25lbnQgYXMgVHlwZTxDb21wb25lbnRUeXBlPik7XG4gICAgICAgIHRoaXMuY29tcG9uZW50Lmluc3RhbmNlLmVudGl0eSA9IHRoaXMuZW50aXR5O1xuICAgICAgICB0aGlzLmNvbXBvbmVudC5pbnN0YW5jZS5rZXkgPSB0aGlzLmtleTtcbiAgICAgICAgdGhpcy5jb21wb25lbnQuaW5zdGFuY2UuZ2V0VmFsaWRhdGlvbkVycm9yTWVzc2FnZSA9IHRoaXMuZ2V0VmFsaWRhdGlvbkVycm9yTWVzc2FnZTtcbiAgICAgICAgdGhpcy5jb21wb25lbnQuaW5zdGFuY2UuaW5wdXRDaGFuZ2VFdmVudC5zdWJzY3JpYmUodGhpcy5pbnB1dENoYW5nZUV2ZW50KTtcbiAgICB9XG59IiwiIl19
@@ -1,38 +1,23 @@
1
1
  /* eslint-disable jsdoc/require-jsdoc */
2
- import { Component, EventEmitter, Input, Output } from '@angular/core';
3
- import { EntityUtilities } from '../../../../classes/entity.utilities';
4
- import { DecoratorTypes } from '../../../../decorators/base/decorator-types.enum';
2
+ import { Component } from '@angular/core';
5
3
  import { DateUtilities } from '../../../../classes/date.utilities';
4
+ import { NgxMatEntityBaseInputComponent } from '../../base-input.component';
6
5
  import * as i0 from "@angular/core";
7
6
  import * as i1 from "@angular/material/form-field";
8
7
  import * as i2 from "@angular/material/datepicker";
9
8
  import * as i3 from "@angular/material/input";
10
9
  import * as i4 from "@angular/forms";
11
- export class DateInputComponent {
10
+ export class DateInputComponent extends NgxMatEntityBaseInputComponent {
12
11
  constructor() {
12
+ super(...arguments);
13
13
  this.DateUtilities = DateUtilities;
14
- this.inputChangeEvent = new EventEmitter();
15
14
  this.defaultDateFilter = () => true;
16
15
  }
17
- ngOnInit() {
18
- this.metadata = EntityUtilities.getPropertyMetadata(this.entity, this.key, DecoratorTypes.DATE);
19
- }
20
- emitChange() {
21
- this.inputChangeEvent.emit();
22
- }
23
16
  }
24
- DateInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DateInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
25
- DateInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DateInputComponent, selector: "date-input", inputs: { entity: "entity", key: "key", getValidationErrorMessage: "getValidationErrorMessage" }, outputs: { inputChangeEvent: "inputChangeEvent" }, ngImport: i0, template: "<mat-form-field appearance=\"standard\">\n <mat-label>{{metadata.displayName}}</mat-label>\n <input\n (ngModelChange)=\"emitChange()\"\n matInput\n [(ngModel)]=\"entity[key]\"\n [name]=\"key.toString()\"\n #model=\"ngModel\"\n [matDatepicker]=\"picker\"\n [required]=\"metadata.required\"\n [min]=\"metadata.min ? metadata.min(DateUtilities.asDate(entity[key])) : undefined\"\n [max]=\"metadata.max ? metadata.max(DateUtilities.asDate(entity[key])) : undefined\"\n [matDatepickerFilter]=\"metadata.filter ?? defaultDateFilter\"\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>", styles: ["mat-form-field{width:100%}\n"], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { type: i2.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }], directives: [{ type: i1.MatLabel, selector: "mat-label" }, { type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { 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]" }, { type: i2.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1.MatSuffix, selector: "[matSuffix]" }, { type: i1.MatError, selector: "mat-error", inputs: ["id"] }] });
17
+ DateInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DateInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
18
+ DateInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DateInputComponent, selector: "date-input", usesInheritance: true, ngImport: i0, template: "<mat-form-field appearance=\"standard\">\n <mat-label>{{metadata.displayName}}</mat-label>\n <input\n (ngModelChange)=\"emitChange()\"\n matInput\n [(ngModel)]=\"entity[key]\"\n [name]=\"key.toString()\"\n #model=\"ngModel\"\n [matDatepicker]=\"picker\"\n [required]=\"metadata.required\"\n [min]=\"metadata.min ? metadata.min(DateUtilities.asDate(entity[key])) : undefined\"\n [max]=\"metadata.max ? metadata.max(DateUtilities.asDate(entity[key])) : undefined\"\n [matDatepickerFilter]=\"metadata.filter ?? defaultDateFilter\"\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>", styles: ["mat-form-field{width:100%}\n"], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { type: i2.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }], directives: [{ type: i1.MatLabel, selector: "mat-label" }, { type: i3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { 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]" }, { type: i2.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i4.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1.MatSuffix, selector: "[matSuffix]" }, { type: i1.MatError, selector: "mat-error", inputs: ["id"] }] });
26
19
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DateInputComponent, decorators: [{
27
20
  type: Component,
28
21
  args: [{ selector: 'date-input', template: "<mat-form-field appearance=\"standard\">\n <mat-label>{{metadata.displayName}}</mat-label>\n <input\n (ngModelChange)=\"emitChange()\"\n matInput\n [(ngModel)]=\"entity[key]\"\n [name]=\"key.toString()\"\n #model=\"ngModel\"\n [matDatepicker]=\"picker\"\n [required]=\"metadata.required\"\n [min]=\"metadata.min ? metadata.min(DateUtilities.asDate(entity[key])) : undefined\"\n [max]=\"metadata.max ? metadata.max(DateUtilities.asDate(entity[key])) : undefined\"\n [matDatepickerFilter]=\"metadata.filter ?? defaultDateFilter\"\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>", styles: ["mat-form-field{width:100%}\n"] }]
29
- }], ctorParameters: function () { return []; }, propDecorators: { entity: [{
30
- type: Input
31
- }], key: [{
32
- type: Input
33
- }], getValidationErrorMessage: [{
34
- type: Input
35
- }], inputChangeEvent: [{
36
- type: Output
37
- }] } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2lucHV0L2RhdGUvZGF0ZS1pbnB1dC9kYXRlLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvaW5wdXQvZGF0ZS9kYXRlLWlucHV0L2RhdGUtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0NBQXdDO0FBQ3hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUVsRixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7Ozs7OztBQVVuRSxNQUFNLE9BQU8sa0JBQWtCO0lBa0IzQjtRQWhCQSxrQkFBYSxHQUFHLGFBQWEsQ0FBQztRQVk5QixxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBTTVDLHNCQUFpQixHQUEwQyxHQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFGL0QsQ0FBQztJQUlqQixRQUFRO1FBQ0osSUFBSSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwRyxDQUFDO0lBRUQsVUFBVTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDOztnSEE1QlEsa0JBQWtCO29HQUFsQixrQkFBa0IsdU1DaEIvQix1ekJBaUJpQjs0RkRESixrQkFBa0I7a0JBTjlCLFNBQVM7K0JBRUksWUFBWTswRUFTdEIsTUFBTTtzQkFETCxLQUFLO2dCQUlOLEdBQUc7c0JBREYsS0FBSztnQkFJTix5QkFBeUI7c0JBRHhCLEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBqc2RvYy9yZXF1aXJlLWpzZG9jICovXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbnRpdHlVdGlsaXRpZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9jbGFzc2VzL2VudGl0eS51dGlsaXRpZXMnO1xuaW1wb3J0IHsgRGVmYXVsdERhdGVEZWNvcmF0b3JDb25maWdJbnRlcm5hbCB9IGZyb20gJy4uLy4uLy4uLy4uL2RlY29yYXRvcnMvZGF0ZS9kYXRlLWRlY29yYXRvci1pbnRlcm5hbC5kYXRhJztcbmltcG9ydCB7IERlY29yYXRvclR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGVjb3JhdG9ycy9iYXNlL2RlY29yYXRvci10eXBlcy5lbnVtJztcbmltcG9ydCB7IE5nTW9kZWwgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRlVXRpbGl0aWVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vY2xhc3Nlcy9kYXRlLnV0aWxpdGllcyc7XG5pbXBvcnQgeyBEYXRlRmlsdGVyRm4gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IEJhc2VFbnRpdHlUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY2xhc3Nlcy9lbnRpdHkubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnZGF0ZS1pbnB1dCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RhdGUtaW5wdXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlSW5wdXRDb21wb25lbnQ8RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBEYXRlVXRpbGl0aWVzID0gRGF0ZVV0aWxpdGllcztcblxuICAgIEBJbnB1dCgpXG4gICAgZW50aXR5ITogRW50aXR5VHlwZTtcblxuICAgIEBJbnB1dCgpXG4gICAga2V5IToga2V5b2YgRW50aXR5VHlwZTtcblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0VmFsaWRhdGlvbkVycm9yTWVzc2FnZSE6IChtb2RlbDogTmdNb2RlbCkgPT4gc3RyaW5nO1xuXG4gICAgQE91dHB1dCgpXG4gICAgaW5wdXRDaGFuZ2VFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIG1ldGFkYXRhITogRGVmYXVsdERhdGVEZWNvcmF0b3JDb25maWdJbnRlcm5hbDtcblxuICAgIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgICBkZWZhdWx0RGF0ZUZpbHRlcjogRGF0ZUZpbHRlckZuPERhdGUgfCBudWxsIHwgdW5kZWZpbmVkPiA9ICgpOiBib29sZWFuID0+IHRydWU7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXRhZGF0YSA9IEVudGl0eVV0aWxpdGllcy5nZXRQcm9wZXJ0eU1ldGFkYXRhKHRoaXMuZW50aXR5LCB0aGlzLmtleSwgRGVjb3JhdG9yVHlwZXMuREFURSk7XG4gICAgfVxuXG4gICAgZW1pdENoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dENoYW5nZUV2ZW50LmVtaXQoKTtcbiAgICB9XG59IiwiPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJzdGFuZGFyZFwiPlxuICAgIDxtYXQtbGFiZWw+e3ttZXRhZGF0YS5kaXNwbGF5TmFtZX19PC9tYXQtbGFiZWw+XG4gICAgPGlucHV0XG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImVtaXRDaGFuZ2UoKVwiXG4gICAgICAgIG1hdElucHV0XG4gICAgICAgIFsobmdNb2RlbCldPVwiZW50aXR5W2tleV1cIlxuICAgICAgICBbbmFtZV09XCJrZXkudG9TdHJpbmcoKVwiXG4gICAgICAgICNtb2RlbD1cIm5nTW9kZWxcIlxuICAgICAgICBbbWF0RGF0ZXBpY2tlcl09XCJwaWNrZXJcIlxuICAgICAgICBbcmVxdWlyZWRdPVwibWV0YWRhdGEucmVxdWlyZWRcIlxuICAgICAgICBbbWluXT1cIm1ldGFkYXRhLm1pbiA/IG1ldGFkYXRhLm1pbihEYXRlVXRpbGl0aWVzLmFzRGF0ZShlbnRpdHlba2V5XSkpIDogdW5kZWZpbmVkXCJcbiAgICAgICAgW21heF09XCJtZXRhZGF0YS5tYXggPyBtZXRhZGF0YS5tYXgoRGF0ZVV0aWxpdGllcy5hc0RhdGUoZW50aXR5W2tleV0pKSA6IHVuZGVmaW5lZFwiXG4gICAgICAgIFttYXREYXRlcGlja2VyRmlsdGVyXT1cIm1ldGFkYXRhLmZpbHRlciA/PyBkZWZhdWx0RGF0ZUZpbHRlclwiXG4gICAgPlxuICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwicGlja2VyXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XG4gICAgPG1hdC1kYXRlcGlja2VyICNwaWNrZXI+PC9tYXQtZGF0ZXBpY2tlcj5cbiAgICA8bWF0LWVycm9yPnt7Z2V0VmFsaWRhdGlvbkVycm9yTWVzc2FnZShtb2RlbCl9fTwvbWF0LWVycm9yPlxuPC9tYXQtZm9ybS1maWVsZD4iXX0=
22
+ }] });
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2lucHV0L2RhdGUvZGF0ZS1pbnB1dC9kYXRlLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvaW5wdXQvZGF0ZS9kYXRlLWlucHV0L2RhdGUtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0NBQXdDO0FBQ3hDLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBR25FLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7QUFRNUUsTUFBTSxPQUFPLGtCQUNULFNBQVEsOEJBQStEO0lBUDNFOztRQVNJLGtCQUFhLEdBQUcsYUFBYSxDQUFDO1FBRTlCLHNCQUFpQixHQUEwQyxHQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUM7S0FDbEY7O2dIQU5ZLGtCQUFrQjtvR0FBbEIsa0JBQWtCLHlFQ2QvQix1ekJBaUJpQjs0RkRISixrQkFBa0I7a0JBTjlCLFNBQVM7K0JBRUksWUFBWSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGpzZG9jL3JlcXVpcmUtanNkb2MgKi9cbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZWNvcmF0b3JUeXBlcyB9IGZyb20gJy4uLy4uLy4uLy4uL2RlY29yYXRvcnMvYmFzZS9kZWNvcmF0b3ItdHlwZXMuZW51bSc7XG5pbXBvcnQgeyBEYXRlVXRpbGl0aWVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vY2xhc3Nlcy9kYXRlLnV0aWxpdGllcyc7XG5pbXBvcnQgeyBEYXRlRmlsdGVyRm4gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IEJhc2VFbnRpdHlUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY2xhc3Nlcy9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgTmd4TWF0RW50aXR5QmFzZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS1pbnB1dC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnZGF0ZS1pbnB1dCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RhdGUtaW5wdXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlSW5wdXRDb21wb25lbnQ8RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PlxuICAgIGV4dGVuZHMgTmd4TWF0RW50aXR5QmFzZUlucHV0Q29tcG9uZW50PEVudGl0eVR5cGUsIERlY29yYXRvclR5cGVzLkRBVEU+IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIERhdGVVdGlsaXRpZXMgPSBEYXRlVXRpbGl0aWVzO1xuXG4gICAgZGVmYXVsdERhdGVGaWx0ZXI6IERhdGVGaWx0ZXJGbjxEYXRlIHwgbnVsbCB8IHVuZGVmaW5lZD4gPSAoKTogYm9vbGVhbiA9PiB0cnVlO1xufSIsIjxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwic3RhbmRhcmRcIj5cbiAgICA8bWF0LWxhYmVsPnt7bWV0YWRhdGEuZGlzcGxheU5hbWV9fTwvbWF0LWxhYmVsPlxuICAgIDxpbnB1dFxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJlbWl0Q2hhbmdlKClcIlxuICAgICAgICBtYXRJbnB1dFxuICAgICAgICBbKG5nTW9kZWwpXT1cImVudGl0eVtrZXldXCJcbiAgICAgICAgW25hbWVdPVwia2V5LnRvU3RyaW5nKClcIlxuICAgICAgICAjbW9kZWw9XCJuZ01vZGVsXCJcbiAgICAgICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cIm1ldGFkYXRhLnJlcXVpcmVkXCJcbiAgICAgICAgW21pbl09XCJtZXRhZGF0YS5taW4gPyBtZXRhZGF0YS5taW4oRGF0ZVV0aWxpdGllcy5hc0RhdGUoZW50aXR5W2tleV0pKSA6IHVuZGVmaW5lZFwiXG4gICAgICAgIFttYXhdPVwibWV0YWRhdGEubWF4ID8gbWV0YWRhdGEubWF4KERhdGVVdGlsaXRpZXMuYXNEYXRlKGVudGl0eVtrZXldKSkgOiB1bmRlZmluZWRcIlxuICAgICAgICBbbWF0RGF0ZXBpY2tlckZpbHRlcl09XCJtZXRhZGF0YS5maWx0ZXIgPz8gZGVmYXVsdERhdGVGaWx0ZXJcIlxuICAgID5cbiAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cInBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgIDxtYXQtZGF0ZXBpY2tlciAjcGlja2VyPjwvbWF0LWRhdGVwaWNrZXI+XG4gICAgPG1hdC1lcnJvcj57e2dldFZhbGlkYXRpb25FcnJvck1lc3NhZ2UobW9kZWwpfX08L21hdC1lcnJvcj5cbjwvbWF0LWZvcm0tZmllbGQ+Il19
@@ -1,9 +1,8 @@
1
1
  /* eslint-disable jsdoc/require-jsdoc */
2
- import { Component, EventEmitter, Input, Output } from '@angular/core';
3
- import { EntityUtilities } from '../../../../classes/entity.utilities';
4
- import { DecoratorTypes } from '../../../../decorators/base/decorator-types.enum';
2
+ import { Component } from '@angular/core';
5
3
  import { LodashUtilities } from '../../../../capsulation/lodash.utilities';
6
4
  import { DateUtilities } from '../../../../classes/date.utilities';
5
+ import { NgxMatEntityBaseInputComponent } from '../../base-input.component';
7
6
  import * as i0 from "@angular/core";
8
7
  import * as i1 from "@angular/material/form-field";
9
8
  import * as i2 from "@angular/material/datepicker";
@@ -14,13 +13,13 @@ const EMPTY_DATERANGE = {
14
13
  end: undefined,
15
14
  values: undefined
16
15
  };
17
- export class DateRangeInputComponent {
16
+ export class DateRangeInputComponent extends NgxMatEntityBaseInputComponent {
18
17
  constructor() {
19
- this.inputChangeEvent = new EventEmitter();
18
+ super(...arguments);
20
19
  this.defaultDateFilter = () => true;
21
20
  }
22
21
  ngOnInit() {
23
- this.metadata = EntityUtilities.getPropertyMetadata(this.entity, this.key, DecoratorTypes.DATE_RANGE);
22
+ super.ngOnInit();
24
23
  this.dateRange = LodashUtilities.cloneDeep(this.entity[this.key]) ?? EMPTY_DATERANGE;
25
24
  this.dateRangeStart = new Date(this.dateRange.start);
26
25
  this.dateRangeEnd = new Date(this.dateRange.end);
@@ -42,22 +41,11 @@ export class DateRangeInputComponent {
42
41
  this.entity[this.key] = this.dateRange;
43
42
  this.emitChange();
44
43
  }
45
- emitChange() {
46
- this.inputChangeEvent.emit();
47
- }
48
44
  }
49
- DateRangeInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DateRangeInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
50
- DateRangeInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DateRangeInputComponent, selector: "date-range-input", inputs: { entity: "entity", key: "key", getValidationErrorMessage: "getValidationErrorMessage" }, outputs: { inputChangeEvent: "inputChangeEvent" }, ngImport: i0, template: "<mat-form-field appearance=\"standard\">\n <mat-label>{{metadata.displayName}}</mat-label>\n \n <mat-date-range-input [rangePicker]=\"picker\" [required]=\"metadata.required\" [dateFilter]=\"metadata.filter ?? defaultDateFilter\">\n <input matStartDate\n [(ngModel)]=\"dateRangeStart\"\n [name]=\"key.toString() + 'start'\"\n #startModel=\"ngModel\"\n [required]=\"metadata.required\"\n [min]=\"metadata.minStart ? metadata.minStart(dateRange.start) : undefined\"\n [max]=\"metadata.maxStart ? metadata.maxStart(dateRange.start) : undefined\"\n [placeholder]=\"metadata.placeholderStart\"\n (ngModelChange)=\"setDateRangeValues()\"\n >\n <input matEndDate\n [(ngModel)]=\"dateRangeEnd\"\n [name]=\"key.toString() + 'end'\"\n #endModel=\"ngModel\"\n [required]=\"metadata.required\"\n [min]=\"metadata.minEnd ? metadata.minEnd(dateRange.end) : undefined\"\n [max]=\"metadata.maxEnd ? metadata.maxEnd(dateRange.end) : undefined\"\n [placeholder]=\"metadata.placeholderEnd\"\n (ngModelChange)=\"setDateRangeValues()\"\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 <mat-error *ngIf=\"startModel.errors\">{{getValidationErrorMessage(startModel)}}</mat-error>\n <mat-error *ngIf=\"!startModel.errors && endModel.errors\">{{getValidationErrorMessage(endModel)}}</mat-error>\n</mat-form-field>", styles: ["mat-form-field{width:100%}\n"], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { type: i2.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { type: i2.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }], directives: [{ type: i1.MatLabel, selector: "mat-label" }, { type: i2.MatStartDate, selector: "input[matStartDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i2.MatEndDate, selector: "input[matEndDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { type: i1.MatSuffix, selector: "[matSuffix]" }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatError, selector: "mat-error", inputs: ["id"] }] });
45
+ DateRangeInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DateRangeInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
46
+ DateRangeInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DateRangeInputComponent, selector: "date-range-input", usesInheritance: true, ngImport: i0, template: "<mat-form-field appearance=\"standard\">\n <mat-label>{{metadata.displayName}}</mat-label>\n \n <mat-date-range-input [rangePicker]=\"picker\" [required]=\"metadata.required\" [dateFilter]=\"metadata.filter ?? defaultDateFilter\">\n <input matStartDate\n [(ngModel)]=\"dateRangeStart\"\n [name]=\"key.toString() + 'start'\"\n #startModel=\"ngModel\"\n [required]=\"metadata.required\"\n [min]=\"metadata.minStart ? metadata.minStart(dateRange.start) : undefined\"\n [max]=\"metadata.maxStart ? metadata.maxStart(dateRange.start) : undefined\"\n [placeholder]=\"metadata.placeholderStart\"\n (ngModelChange)=\"setDateRangeValues()\"\n >\n <input matEndDate\n [(ngModel)]=\"dateRangeEnd\"\n [name]=\"key.toString() + 'end'\"\n #endModel=\"ngModel\"\n [required]=\"metadata.required\"\n [min]=\"metadata.minEnd ? metadata.minEnd(dateRange.end) : undefined\"\n [max]=\"metadata.maxEnd ? metadata.maxEnd(dateRange.end) : undefined\"\n [placeholder]=\"metadata.placeholderEnd\"\n (ngModelChange)=\"setDateRangeValues()\"\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 <mat-error *ngIf=\"startModel.errors\">{{getValidationErrorMessage(startModel)}}</mat-error>\n <mat-error *ngIf=\"!startModel.errors && endModel.errors\">{{getValidationErrorMessage(endModel)}}</mat-error>\n</mat-form-field>", styles: ["mat-form-field{width:100%}\n"], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { type: i2.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { type: i2.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }], directives: [{ type: i1.MatLabel, selector: "mat-label" }, { type: i2.MatStartDate, selector: "input[matStartDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i2.MatEndDate, selector: "input[matEndDate]", inputs: ["errorStateMatcher"], outputs: ["dateChange", "dateInput"] }, { type: i1.MatSuffix, selector: "[matSuffix]" }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatError, selector: "mat-error", inputs: ["id"] }] });
51
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DateRangeInputComponent, decorators: [{
52
48
  type: Component,
53
49
  args: [{ selector: 'date-range-input', template: "<mat-form-field appearance=\"standard\">\n <mat-label>{{metadata.displayName}}</mat-label>\n \n <mat-date-range-input [rangePicker]=\"picker\" [required]=\"metadata.required\" [dateFilter]=\"metadata.filter ?? defaultDateFilter\">\n <input matStartDate\n [(ngModel)]=\"dateRangeStart\"\n [name]=\"key.toString() + 'start'\"\n #startModel=\"ngModel\"\n [required]=\"metadata.required\"\n [min]=\"metadata.minStart ? metadata.minStart(dateRange.start) : undefined\"\n [max]=\"metadata.maxStart ? metadata.maxStart(dateRange.start) : undefined\"\n [placeholder]=\"metadata.placeholderStart\"\n (ngModelChange)=\"setDateRangeValues()\"\n >\n <input matEndDate\n [(ngModel)]=\"dateRangeEnd\"\n [name]=\"key.toString() + 'end'\"\n #endModel=\"ngModel\"\n [required]=\"metadata.required\"\n [min]=\"metadata.minEnd ? metadata.minEnd(dateRange.end) : undefined\"\n [max]=\"metadata.maxEnd ? metadata.maxEnd(dateRange.end) : undefined\"\n [placeholder]=\"metadata.placeholderEnd\"\n (ngModelChange)=\"setDateRangeValues()\"\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 <mat-error *ngIf=\"startModel.errors\">{{getValidationErrorMessage(startModel)}}</mat-error>\n <mat-error *ngIf=\"!startModel.errors && endModel.errors\">{{getValidationErrorMessage(endModel)}}</mat-error>\n</mat-form-field>", styles: ["mat-form-field{width:100%}\n"] }]
54
- }], ctorParameters: function () { return []; }, propDecorators: { entity: [{
55
- type: Input
56
- }], key: [{
57
- type: Input
58
- }], getValidationErrorMessage: [{
59
- type: Input
60
- }], inputChangeEvent: [{
61
- type: Output
62
- }] } });
63
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2lucHV0L2RhdGUvZGF0ZS1yYW5nZS1pbnB1dC9kYXRlLXJhbmdlLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvaW5wdXQvZGF0ZS9kYXRlLXJhbmdlLWlucHV0L2RhdGUtcmFuZ2UtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0NBQXdDO0FBQ3hDLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRXZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUlsRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7QUFHbkUsTUFBTSxlQUFlLEdBQWM7SUFDL0IsS0FBSyxFQUFFLFNBQTRCO0lBQ25DLEdBQUcsRUFBRSxTQUE0QjtJQUNqQyxNQUFNLEVBQUUsU0FBUztDQUNwQixDQUFDO0FBUUYsTUFBTSxPQUFPLHVCQUF1QjtJQW9CaEM7UUFSQSxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBVTVDLHNCQUFpQixHQUEwQyxHQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFGL0QsQ0FBQztJQUlqQixRQUFRO1FBQ0osSUFBSSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUV0RyxJQUFJLENBQUMsU0FBUyxHQUFHLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFjLENBQUMsSUFBSSxlQUFlLENBQUM7UUFDbEcsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxrQkFBa0I7UUFDZCxJQUFJLElBQUksQ0FBQyxjQUFjLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUMxQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7WUFDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2pELE1BQU0sTUFBTSxHQUFXLGFBQWEsQ0FBQyxlQUFlLENBQ2hELElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQzlCLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQzVCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUN2QixDQUFDO1lBQ0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7U0FDOUQ7YUFDSTtZQUNELElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztTQUNyQztRQUNBLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBZSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDdEQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxVQUFVO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2pDLENBQUM7O3FIQXhEUSx1QkFBdUI7eUdBQXZCLHVCQUF1Qiw2TUN4QnBDLHNtREE4QmlCOzRGRE5KLHVCQUF1QjtrQkFObkMsU0FBUzsrQkFFSSxrQkFBa0I7MEVBTzVCLE1BQU07c0JBREwsS0FBSztnQkFJTixHQUFHO3NCQURGLEtBQUs7Z0JBSU4seUJBQXlCO3NCQUR4QixLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUganNkb2MvcmVxdWlyZS1qc2RvYyAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRW50aXR5VXRpbGl0aWVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vY2xhc3Nlcy9lbnRpdHkudXRpbGl0aWVzJztcbmltcG9ydCB7IERhdGVSYW5nZURhdGVEZWNvcmF0b3JDb25maWdJbnRlcm5hbCB9IGZyb20gJy4uLy4uLy4uLy4uL2RlY29yYXRvcnMvZGF0ZS9kYXRlLWRlY29yYXRvci1pbnRlcm5hbC5kYXRhJztcbmltcG9ydCB7IERlY29yYXRvclR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGVjb3JhdG9ycy9iYXNlL2RlY29yYXRvci10eXBlcy5lbnVtJztcbmltcG9ydCB7IE5nTW9kZWwgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRlRmlsdGVyRm4gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IERhdGVSYW5nZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RlY29yYXRvcnMvZGF0ZS9kYXRlLWRlY29yYXRvci5kYXRhJztcbmltcG9ydCB7IExvZGFzaFV0aWxpdGllcyB9IGZyb20gJy4uLy4uLy4uLy4uL2NhcHN1bGF0aW9uL2xvZGFzaC51dGlsaXRpZXMnO1xuaW1wb3J0IHsgRGF0ZVV0aWxpdGllcyB9IGZyb20gJy4uLy4uLy4uLy4uL2NsYXNzZXMvZGF0ZS51dGlsaXRpZXMnO1xuaW1wb3J0IHsgQmFzZUVudGl0eVR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi9jbGFzc2VzL2VudGl0eS5tb2RlbCc7XG5cbmNvbnN0IEVNUFRZX0RBVEVSQU5HRTogRGF0ZVJhbmdlID0ge1xuICAgIHN0YXJ0OiB1bmRlZmluZWQgYXMgdW5rbm93biBhcyBEYXRlLFxuICAgIGVuZDogdW5kZWZpbmVkIGFzIHVua25vd24gYXMgRGF0ZSxcbiAgICB2YWx1ZXM6IHVuZGVmaW5lZFxufTtcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2RhdGUtcmFuZ2UtaW5wdXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXJhbmdlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kYXRlLXJhbmdlLWlucHV0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVJhbmdlSW5wdXRDb21wb25lbnQ8RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBASW5wdXQoKVxuICAgIGVudGl0eSE6IEVudGl0eVR5cGU7XG5cbiAgICBASW5wdXQoKVxuICAgIGtleSE6IGtleW9mIEVudGl0eVR5cGU7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldFZhbGlkYXRpb25FcnJvck1lc3NhZ2UhOiAobW9kZWw6IE5nTW9kZWwpID0+IHN0cmluZztcblxuICAgIEBPdXRwdXQoKVxuICAgIGlucHV0Q2hhbmdlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBtZXRhZGF0YSE6IERhdGVSYW5nZURhdGVEZWNvcmF0b3JDb25maWdJbnRlcm5hbDtcblxuICAgIGRhdGVSYW5nZSE6IERhdGVSYW5nZTtcbiAgICBkYXRlUmFuZ2VTdGFydD86IERhdGU7XG4gICAgZGF0ZVJhbmdlRW5kPzogRGF0ZTtcblxuICAgIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgICBkZWZhdWx0RGF0ZUZpbHRlcjogRGF0ZUZpbHRlckZuPERhdGUgfCBudWxsIHwgdW5kZWZpbmVkPiA9ICgpOiBib29sZWFuID0+IHRydWU7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXRhZGF0YSA9IEVudGl0eVV0aWxpdGllcy5nZXRQcm9wZXJ0eU1ldGFkYXRhKHRoaXMuZW50aXR5LCB0aGlzLmtleSwgRGVjb3JhdG9yVHlwZXMuREFURV9SQU5HRSk7XG5cbiAgICAgICAgdGhpcy5kYXRlUmFuZ2UgPSBMb2Rhc2hVdGlsaXRpZXMuY2xvbmVEZWVwKHRoaXMuZW50aXR5W3RoaXMua2V5XSBhcyBEYXRlUmFuZ2UpID8/IEVNUFRZX0RBVEVSQU5HRTtcbiAgICAgICAgdGhpcy5kYXRlUmFuZ2VTdGFydCA9IG5ldyBEYXRlKHRoaXMuZGF0ZVJhbmdlLnN0YXJ0KTtcbiAgICAgICAgdGhpcy5kYXRlUmFuZ2VFbmQgPSBuZXcgRGF0ZSh0aGlzLmRhdGVSYW5nZS5lbmQpO1xuICAgICAgICB0aGlzLnNldERhdGVSYW5nZVZhbHVlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIGRhdGUgcmFuZ2UgdmFsdWVzIGJhc2VkIG9uIHRoZSBzdGFydCBhbmQgZW5kIGRhdGUuXG4gICAgICovXG4gICAgc2V0RGF0ZVJhbmdlVmFsdWVzKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kYXRlUmFuZ2VTdGFydCAmJiB0aGlzLmRhdGVSYW5nZUVuZCkge1xuICAgICAgICAgICAgdGhpcy5kYXRlUmFuZ2Uuc3RhcnQgPSBuZXcgRGF0ZSh0aGlzLmRhdGVSYW5nZVN0YXJ0KTtcbiAgICAgICAgICAgIHRoaXMuZGF0ZVJhbmdlLmVuZCA9IG5ldyBEYXRlKHRoaXMuZGF0ZVJhbmdlRW5kKTtcbiAgICAgICAgICAgIGNvbnN0IHZhbHVlczogRGF0ZVtdID0gRGF0ZVV0aWxpdGllcy5nZXREYXRlc0JldHdlZW4oXG4gICAgICAgICAgICAgICAgbmV3IERhdGUodGhpcy5kYXRlUmFuZ2Uuc3RhcnQpLFxuICAgICAgICAgICAgICAgIG5ldyBEYXRlKHRoaXMuZGF0ZVJhbmdlLmVuZCksXG4gICAgICAgICAgICAgICAgdGhpcy5tZXRhZGF0YS5maWx0ZXJcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmRhdGVSYW5nZS52YWx1ZXMgPSB2YWx1ZXMubGVuZ3RoID8gdmFsdWVzIDogdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kYXRlUmFuZ2UudmFsdWVzID0gdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgICAgICh0aGlzLmVudGl0eVt0aGlzLmtleV0gYXMgRGF0ZVJhbmdlKSA9IHRoaXMuZGF0ZVJhbmdlO1xuICAgICAgICB0aGlzLmVtaXRDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBlbWl0Q2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0Q2hhbmdlRXZlbnQuZW1pdCgpO1xuICAgIH1cbn0iLCI8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cInN0YW5kYXJkXCI+XG4gICAgPG1hdC1sYWJlbD57e21ldGFkYXRhLmRpc3BsYXlOYW1lfX08L21hdC1sYWJlbD5cbiAgICBcbiAgICA8bWF0LWRhdGUtcmFuZ2UtaW5wdXQgW3JhbmdlUGlja2VyXT1cInBpY2tlclwiIFtyZXF1aXJlZF09XCJtZXRhZGF0YS5yZXF1aXJlZFwiIFtkYXRlRmlsdGVyXT1cIm1ldGFkYXRhLmZpbHRlciA/PyBkZWZhdWx0RGF0ZUZpbHRlclwiPlxuICAgICAgICA8aW5wdXQgbWF0U3RhcnREYXRlXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImRhdGVSYW5nZVN0YXJ0XCJcbiAgICAgICAgICAgIFtuYW1lXT1cImtleS50b1N0cmluZygpICsgJ3N0YXJ0J1wiXG4gICAgICAgICAgICAjc3RhcnRNb2RlbD1cIm5nTW9kZWxcIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cIm1ldGFkYXRhLnJlcXVpcmVkXCJcbiAgICAgICAgICAgIFttaW5dPVwibWV0YWRhdGEubWluU3RhcnQgPyBtZXRhZGF0YS5taW5TdGFydChkYXRlUmFuZ2Uuc3RhcnQpIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgIFttYXhdPVwibWV0YWRhdGEubWF4U3RhcnQgPyBtZXRhZGF0YS5tYXhTdGFydChkYXRlUmFuZ2Uuc3RhcnQpIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJtZXRhZGF0YS5wbGFjZWhvbGRlclN0YXJ0XCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNldERhdGVSYW5nZVZhbHVlcygpXCJcbiAgICAgICAgPlxuICAgICAgICA8aW5wdXQgbWF0RW5kRGF0ZVxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJkYXRlUmFuZ2VFbmRcIlxuICAgICAgICAgICAgW25hbWVdPVwia2V5LnRvU3RyaW5nKCkgKyAnZW5kJ1wiXG4gICAgICAgICAgICAjZW5kTW9kZWw9XCJuZ01vZGVsXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJtZXRhZGF0YS5yZXF1aXJlZFwiXG4gICAgICAgICAgICBbbWluXT1cIm1ldGFkYXRhLm1pbkVuZCA/IG1ldGFkYXRhLm1pbkVuZChkYXRlUmFuZ2UuZW5kKSA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICBbbWF4XT1cIm1ldGFkYXRhLm1heEVuZCA/IG1ldGFkYXRhLm1heEVuZChkYXRlUmFuZ2UuZW5kKSA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwibWV0YWRhdGEucGxhY2Vob2xkZXJFbmRcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0RGF0ZVJhbmdlVmFsdWVzKClcIlxuICAgICAgICA+XG4gICAgPC9tYXQtZGF0ZS1yYW5nZS1pbnB1dD5cbiAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cInBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgIDxtYXQtZGF0ZS1yYW5nZS1waWNrZXIgI3BpY2tlcj48L21hdC1kYXRlLXJhbmdlLXBpY2tlcj5cblxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJzdGFydE1vZGVsLmVycm9yc1wiPnt7Z2V0VmFsaWRhdGlvbkVycm9yTWVzc2FnZShzdGFydE1vZGVsKX19PC9tYXQtZXJyb3I+XG4gICAgPG1hdC1lcnJvciAqbmdJZj1cIiFzdGFydE1vZGVsLmVycm9ycyAmJiBlbmRNb2RlbC5lcnJvcnNcIj57e2dldFZhbGlkYXRpb25FcnJvck1lc3NhZ2UoZW5kTW9kZWwpfX08L21hdC1lcnJvcj5cbjwvbWF0LWZvcm0tZmllbGQ+Il19
50
+ }] });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2lucHV0L2RhdGUvZGF0ZS1yYW5nZS1pbnB1dC9kYXRlLXJhbmdlLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvaW5wdXQvZGF0ZS9kYXRlLXJhbmdlLWlucHV0L2RhdGUtcmFuZ2UtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0NBQXdDO0FBQ3hDLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFJbEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVuRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7O0FBRTVFLE1BQU0sZUFBZSxHQUFjO0lBQy9CLEtBQUssRUFBRSxTQUE0QjtJQUNuQyxHQUFHLEVBQUUsU0FBNEI7SUFDakMsTUFBTSxFQUFFLFNBQVM7Q0FDcEIsQ0FBQztBQVFGLE1BQU0sT0FBTyx1QkFDVCxTQUFRLDhCQUFxRTtJQVBqRjs7UUFhSSxzQkFBaUIsR0FBMEMsR0FBWSxFQUFFLENBQUMsSUFBSSxDQUFDO0tBOEJsRjtJQTVCWSxRQUFRO1FBQ2IsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWMsQ0FBQyxJQUFJLGVBQWUsQ0FBQztRQUNsRyxJQUFJLENBQUMsY0FBYyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRDs7T0FFRztJQUNILGtCQUFrQjtRQUNkLElBQUksSUFBSSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQzFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUNyRCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDakQsTUFBTSxNQUFNLEdBQVcsYUFBYSxDQUFDLGVBQWUsQ0FDaEQsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFDOUIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFDNUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQ3ZCLENBQUM7WUFDRixJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztTQUM5RDthQUNJO1lBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO1NBQ3JDO1FBQ0EsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFlLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUN0RCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEIsQ0FBQzs7cUhBcENRLHVCQUF1Qjt5R0FBdkIsdUJBQXVCLCtFQ3RCcEMsc21EQThCaUI7NEZEUkosdUJBQXVCO2tCQU5uQyxTQUFTOytCQUVJLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGpzZG9jL3JlcXVpcmUtanNkb2MgKi9cbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEZWNvcmF0b3JUeXBlcyB9IGZyb20gJy4uLy4uLy4uLy4uL2RlY29yYXRvcnMvYmFzZS9kZWNvcmF0b3ItdHlwZXMuZW51bSc7XG5pbXBvcnQgeyBEYXRlRmlsdGVyRm4gfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyJztcbmltcG9ydCB7IERhdGVSYW5nZSB9IGZyb20gJy4uLy4uLy4uLy4uL2RlY29yYXRvcnMvZGF0ZS9kYXRlLWRlY29yYXRvci5kYXRhJztcbmltcG9ydCB7IExvZGFzaFV0aWxpdGllcyB9IGZyb20gJy4uLy4uLy4uLy4uL2NhcHN1bGF0aW9uL2xvZGFzaC51dGlsaXRpZXMnO1xuaW1wb3J0IHsgRGF0ZVV0aWxpdGllcyB9IGZyb20gJy4uLy4uLy4uLy4uL2NsYXNzZXMvZGF0ZS51dGlsaXRpZXMnO1xuaW1wb3J0IHsgQmFzZUVudGl0eVR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi9jbGFzc2VzL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBOZ3hNYXRFbnRpdHlCYXNlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlLWlucHV0LmNvbXBvbmVudCc7XG5cbmNvbnN0IEVNUFRZX0RBVEVSQU5HRTogRGF0ZVJhbmdlID0ge1xuICAgIHN0YXJ0OiB1bmRlZmluZWQgYXMgdW5rbm93biBhcyBEYXRlLFxuICAgIGVuZDogdW5kZWZpbmVkIGFzIHVua25vd24gYXMgRGF0ZSxcbiAgICB2YWx1ZXM6IHVuZGVmaW5lZFxufTtcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2RhdGUtcmFuZ2UtaW5wdXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXJhbmdlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kYXRlLXJhbmdlLWlucHV0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVJhbmdlSW5wdXRDb21wb25lbnQ8RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PlxuICAgIGV4dGVuZHMgTmd4TWF0RW50aXR5QmFzZUlucHV0Q29tcG9uZW50PEVudGl0eVR5cGUsIERlY29yYXRvclR5cGVzLkRBVEVfUkFOR0U+IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIGRhdGVSYW5nZSE6IERhdGVSYW5nZTtcbiAgICBkYXRlUmFuZ2VTdGFydD86IERhdGU7XG4gICAgZGF0ZVJhbmdlRW5kPzogRGF0ZTtcblxuICAgIGRlZmF1bHREYXRlRmlsdGVyOiBEYXRlRmlsdGVyRm48RGF0ZSB8IG51bGwgfCB1bmRlZmluZWQ+ID0gKCk6IGJvb2xlYW4gPT4gdHJ1ZTtcblxuICAgIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLmRhdGVSYW5nZSA9IExvZGFzaFV0aWxpdGllcy5jbG9uZURlZXAodGhpcy5lbnRpdHlbdGhpcy5rZXldIGFzIERhdGVSYW5nZSkgPz8gRU1QVFlfREFURVJBTkdFO1xuICAgICAgICB0aGlzLmRhdGVSYW5nZVN0YXJ0ID0gbmV3IERhdGUodGhpcy5kYXRlUmFuZ2Uuc3RhcnQpO1xuICAgICAgICB0aGlzLmRhdGVSYW5nZUVuZCA9IG5ldyBEYXRlKHRoaXMuZGF0ZVJhbmdlLmVuZCk7XG4gICAgICAgIHRoaXMuc2V0RGF0ZVJhbmdlVmFsdWVzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVXBkYXRlcyB0aGUgZGF0ZSByYW5nZSB2YWx1ZXMgYmFzZWQgb24gdGhlIHN0YXJ0IGFuZCBlbmQgZGF0ZS5cbiAgICAgKi9cbiAgICBzZXREYXRlUmFuZ2VWYWx1ZXMoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRhdGVSYW5nZVN0YXJ0ICYmIHRoaXMuZGF0ZVJhbmdlRW5kKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVSYW5nZS5zdGFydCA9IG5ldyBEYXRlKHRoaXMuZGF0ZVJhbmdlU3RhcnQpO1xuICAgICAgICAgICAgdGhpcy5kYXRlUmFuZ2UuZW5kID0gbmV3IERhdGUodGhpcy5kYXRlUmFuZ2VFbmQpO1xuICAgICAgICAgICAgY29uc3QgdmFsdWVzOiBEYXRlW10gPSBEYXRlVXRpbGl0aWVzLmdldERhdGVzQmV0d2VlbihcbiAgICAgICAgICAgICAgICBuZXcgRGF0ZSh0aGlzLmRhdGVSYW5nZS5zdGFydCksXG4gICAgICAgICAgICAgICAgbmV3IERhdGUodGhpcy5kYXRlUmFuZ2UuZW5kKSxcbiAgICAgICAgICAgICAgICB0aGlzLm1ldGFkYXRhLmZpbHRlclxuICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIHRoaXMuZGF0ZVJhbmdlLnZhbHVlcyA9IHZhbHVlcy5sZW5ndGggPyB2YWx1ZXMgOiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVSYW5nZS52YWx1ZXMgPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgKHRoaXMuZW50aXR5W3RoaXMua2V5XSBhcyBEYXRlUmFuZ2UpID0gdGhpcy5kYXRlUmFuZ2U7XG4gICAgICAgIHRoaXMuZW1pdENoYW5nZSgpO1xuICAgIH1cbn0iLCI8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cInN0YW5kYXJkXCI+XG4gICAgPG1hdC1sYWJlbD57e21ldGFkYXRhLmRpc3BsYXlOYW1lfX08L21hdC1sYWJlbD5cbiAgICBcbiAgICA8bWF0LWRhdGUtcmFuZ2UtaW5wdXQgW3JhbmdlUGlja2VyXT1cInBpY2tlclwiIFtyZXF1aXJlZF09XCJtZXRhZGF0YS5yZXF1aXJlZFwiIFtkYXRlRmlsdGVyXT1cIm1ldGFkYXRhLmZpbHRlciA/PyBkZWZhdWx0RGF0ZUZpbHRlclwiPlxuICAgICAgICA8aW5wdXQgbWF0U3RhcnREYXRlXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImRhdGVSYW5nZVN0YXJ0XCJcbiAgICAgICAgICAgIFtuYW1lXT1cImtleS50b1N0cmluZygpICsgJ3N0YXJ0J1wiXG4gICAgICAgICAgICAjc3RhcnRNb2RlbD1cIm5nTW9kZWxcIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cIm1ldGFkYXRhLnJlcXVpcmVkXCJcbiAgICAgICAgICAgIFttaW5dPVwibWV0YWRhdGEubWluU3RhcnQgPyBtZXRhZGF0YS5taW5TdGFydChkYXRlUmFuZ2Uuc3RhcnQpIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgIFttYXhdPVwibWV0YWRhdGEubWF4U3RhcnQgPyBtZXRhZGF0YS5tYXhTdGFydChkYXRlUmFuZ2Uuc3RhcnQpIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJtZXRhZGF0YS5wbGFjZWhvbGRlclN0YXJ0XCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNldERhdGVSYW5nZVZhbHVlcygpXCJcbiAgICAgICAgPlxuICAgICAgICA8aW5wdXQgbWF0RW5kRGF0ZVxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJkYXRlUmFuZ2VFbmRcIlxuICAgICAgICAgICAgW25hbWVdPVwia2V5LnRvU3RyaW5nKCkgKyAnZW5kJ1wiXG4gICAgICAgICAgICAjZW5kTW9kZWw9XCJuZ01vZGVsXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJtZXRhZGF0YS5yZXF1aXJlZFwiXG4gICAgICAgICAgICBbbWluXT1cIm1ldGFkYXRhLm1pbkVuZCA/IG1ldGFkYXRhLm1pbkVuZChkYXRlUmFuZ2UuZW5kKSA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICBbbWF4XT1cIm1ldGFkYXRhLm1heEVuZCA/IG1ldGFkYXRhLm1heEVuZChkYXRlUmFuZ2UuZW5kKSA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwibWV0YWRhdGEucGxhY2Vob2xkZXJFbmRcIlxuICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2V0RGF0ZVJhbmdlVmFsdWVzKClcIlxuICAgICAgICA+XG4gICAgPC9tYXQtZGF0ZS1yYW5nZS1pbnB1dD5cbiAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cInBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgIDxtYXQtZGF0ZS1yYW5nZS1waWNrZXIgI3BpY2tlcj48L21hdC1kYXRlLXJhbmdlLXBpY2tlcj5cblxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJzdGFydE1vZGVsLmVycm9yc1wiPnt7Z2V0VmFsaWRhdGlvbkVycm9yTWVzc2FnZShzdGFydE1vZGVsKX19PC9tYXQtZXJyb3I+XG4gICAgPG1hdC1lcnJvciAqbmdJZj1cIiFzdGFydE1vZGVsLmVycm9ycyAmJiBlbmRNb2RlbC5lcnJvcnNcIj57e2dldFZhbGlkYXRpb25FcnJvck1lc3NhZ2UoZW5kTW9kZWwpfX08L21hdC1lcnJvcj5cbjwvbWF0LWZvcm0tZmllbGQ+Il19
@@ -1,8 +1,7 @@
1
1
  /* eslint-disable jsdoc/require-jsdoc */
2
- import { Component, EventEmitter, Input, Output } from '@angular/core';
3
- import { EntityUtilities } from '../../../../classes/entity.utilities';
4
- import { DecoratorTypes } from '../../../../decorators/base/decorator-types.enum';
2
+ import { Component } from '@angular/core';
5
3
  import { DateUtilities } from '../../../../classes/date.utilities';
4
+ import { NgxMatEntityBaseInputComponent } from '../../base-input.component';
6
5
  import * as i0 from "@angular/core";
7
6
  import * as i1 from "@angular/material/form-field";
8
7
  import * as i2 from "@angular/material/datepicker";
@@ -11,14 +10,14 @@ import * as i4 from "@angular/material/core";
11
10
  import * as i5 from "@angular/material/input";
12
11
  import * as i6 from "@angular/forms";
13
12
  import * as i7 from "@angular/common";
14
- export class DateTimeInputComponent {
13
+ export class DateTimeInputComponent extends NgxMatEntityBaseInputComponent {
15
14
  constructor() {
15
+ super(...arguments);
16
16
  this.DateUtilities = DateUtilities;
17
- this.inputChangeEvent = new EventEmitter();
18
17
  this.defaultDateFilter = () => true;
19
18
  }
20
19
  ngOnInit() {
21
- this.metadata = EntityUtilities.getPropertyMetadata(this.entity, this.key, DecoratorTypes.DATE_TIME);
20
+ super.ngOnInit();
22
21
  this.time = DateUtilities.getTimeFromDate(this.entity[this.key]);
23
22
  this.timeDropdownValues = this.metadata.times;
24
23
  if (this.entity[this.key] != null) {
@@ -33,7 +32,8 @@ export class DateTimeInputComponent {
33
32
  * @returns Whether or not the time objects are the same.
34
33
  */
35
34
  compareTimes(time1, time2) {
36
- return time1.hours === time2.hours && time1.minutes === time2.minutes;
35
+ // eslint-disable-next-line @typescript-eslint/strict-boolean-expressions
36
+ return time1 && time2 && time1.hours === time2.hours && time1.minutes === time2.minutes;
37
37
  }
38
38
  /**
39
39
  * Sets the time on a datetime property.
@@ -53,22 +53,11 @@ export class DateTimeInputComponent {
53
53
  }
54
54
  this.emitChange();
55
55
  }
56
- emitChange() {
57
- this.inputChangeEvent.emit();
58
- }
59
56
  }
60
- DateTimeInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DateTimeInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
61
- DateTimeInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DateTimeInputComponent, selector: "date-time-input", inputs: { entity: "entity", key: "key", getValidationErrorMessage: "getValidationErrorMessage" }, outputs: { inputChangeEvent: "inputChangeEvent" }, ngImport: i0, template: "<div class=\"date-time\">\n <mat-form-field appearance=\"standard\">\n <mat-label>{{metadata.displayName}}</mat-label>\n <input\n matInput\n [(ngModel)]=\"dateTime\"\n [name]=\"key.toString()\"\n #model=\"ngModel\"\n [matDatepicker]=\"picker\"\n [required]=\"metadata.required\"\n [min]=\"metadata.minDate ? metadata.minDate(dateTime) : undefined\"\n [max]=\"metadata.maxDate ? metadata.maxDate(dateTime) : undefined\"\n [matDatepickerFilter]=\"metadata.filterDate ?? defaultDateFilter\"\n (dateInput)=\"setTime()\"\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 <mat-form-field class=\"timepicker\">\n <mat-label>{{metadata.timeDisplayName}}</mat-label>\n <mat-select\n [(ngModel)]=\"time\"\n [name]=\"key.toString() + 'time'\"\n #timeModel=\"ngModel\"\n [required]=\"metadata.required\"\n [compareWith]=\"compareTimes\"\n (ngModelChange)=\"setTime()\"\n >\n <mat-option *ngFor=\"let validTime of DateUtilities.getValidTimesForDropdown(\n DateUtilities.asDate(entity[key]),\n metadata.times,\n metadata.minTime,\n metadata.maxTime,\n metadata.filterTime\n )\"\n [value]=\"validTime.value\"\n >\n {{validTime.displayName}}\n </mat-option>\n </mat-select>\n <mat-error>{{getValidationErrorMessage(timeModel)}}</mat-error>\n </mat-form-field>\n</div>", styles: ["mat-form-field{width:100%}.date-time{display:flex;align-items:baseline}.date-time .timepicker{margin-left:10px}\n"], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { type: i2.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { type: i3.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i1.MatLabel, selector: "mat-label" }, { type: i5.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"] }, { type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1.MatSuffix, selector: "[matSuffix]" }, { type: i1.MatError, selector: "mat-error", inputs: ["id"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
57
+ DateTimeInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DateTimeInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
58
+ DateTimeInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: DateTimeInputComponent, selector: "date-time-input", usesInheritance: true, ngImport: i0, template: "<div class=\"date-time\">\n <mat-form-field appearance=\"standard\">\n <mat-label>{{metadata.displayName}}</mat-label>\n <input\n matInput\n [(ngModel)]=\"dateTime\"\n [name]=\"key.toString()\"\n #model=\"ngModel\"\n [matDatepicker]=\"picker\"\n [required]=\"metadata.required\"\n [min]=\"metadata.minDate ? metadata.minDate(dateTime) : undefined\"\n [max]=\"metadata.maxDate ? metadata.maxDate(dateTime) : undefined\"\n [matDatepickerFilter]=\"metadata.filterDate ?? defaultDateFilter\"\n (dateInput)=\"setTime()\"\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 <mat-form-field class=\"timepicker\">\n <mat-label>{{metadata.timeDisplayName}}</mat-label>\n <mat-select\n [(ngModel)]=\"time\"\n [name]=\"key.toString() + 'time'\"\n #timeModel=\"ngModel\"\n [required]=\"metadata.required\"\n [compareWith]=\"compareTimes\"\n (ngModelChange)=\"setTime()\"\n >\n <mat-option *ngFor=\"let validTime of DateUtilities.getValidTimesForDropdown(\n DateUtilities.asDate(entity[key]),\n metadata.times,\n metadata.minTime,\n metadata.maxTime,\n metadata.filterTime\n )\"\n [value]=\"validTime.value\"\n >\n {{validTime.displayName}}\n </mat-option>\n </mat-select>\n <mat-error>{{getValidationErrorMessage(timeModel)}}</mat-error>\n </mat-form-field>\n</div>", styles: ["mat-form-field{width:100%}.date-time{display:flex;align-items:baseline}.date-time .timepicker{margin-left:10px}\n"], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { type: i2.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { type: i3.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i1.MatLabel, selector: "mat-label" }, { type: i5.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"] }, { type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i2.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i1.MatSuffix, selector: "[matSuffix]" }, { type: i1.MatError, selector: "mat-error", inputs: ["id"] }, { type: i7.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
62
59
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: DateTimeInputComponent, decorators: [{
63
60
  type: Component,
64
61
  args: [{ selector: 'date-time-input', template: "<div class=\"date-time\">\n <mat-form-field appearance=\"standard\">\n <mat-label>{{metadata.displayName}}</mat-label>\n <input\n matInput\n [(ngModel)]=\"dateTime\"\n [name]=\"key.toString()\"\n #model=\"ngModel\"\n [matDatepicker]=\"picker\"\n [required]=\"metadata.required\"\n [min]=\"metadata.minDate ? metadata.minDate(dateTime) : undefined\"\n [max]=\"metadata.maxDate ? metadata.maxDate(dateTime) : undefined\"\n [matDatepickerFilter]=\"metadata.filterDate ?? defaultDateFilter\"\n (dateInput)=\"setTime()\"\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 <mat-form-field class=\"timepicker\">\n <mat-label>{{metadata.timeDisplayName}}</mat-label>\n <mat-select\n [(ngModel)]=\"time\"\n [name]=\"key.toString() + 'time'\"\n #timeModel=\"ngModel\"\n [required]=\"metadata.required\"\n [compareWith]=\"compareTimes\"\n (ngModelChange)=\"setTime()\"\n >\n <mat-option *ngFor=\"let validTime of DateUtilities.getValidTimesForDropdown(\n DateUtilities.asDate(entity[key]),\n metadata.times,\n metadata.minTime,\n metadata.maxTime,\n metadata.filterTime\n )\"\n [value]=\"validTime.value\"\n >\n {{validTime.displayName}}\n </mat-option>\n </mat-select>\n <mat-error>{{getValidationErrorMessage(timeModel)}}</mat-error>\n </mat-form-field>\n</div>", styles: ["mat-form-field{width:100%}.date-time{display:flex;align-items:baseline}.date-time .timepicker{margin-left:10px}\n"] }]
65
- }], ctorParameters: function () { return []; }, propDecorators: { entity: [{
66
- type: Input
67
- }], key: [{
68
- type: Input
69
- }], getValidationErrorMessage: [{
70
- type: Input
71
- }], inputChangeEvent: [{
72
- type: Output
73
- }] } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvaW5wdXQvZGF0ZS9kYXRlLXRpbWUtaW5wdXQvZGF0ZS10aW1lLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvaW5wdXQvZGF0ZS9kYXRlLXRpbWUtaW5wdXQvZGF0ZS10aW1lLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdDQUF3QztBQUN4QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUV2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFLbEYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7Ozs7QUFTbkUsTUFBTSxPQUFPLHNCQUFzQjtJQXNCL0I7UUFwQkEsa0JBQWEsR0FBRyxhQUFhLENBQUM7UUFZOUIscUJBQWdCLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQVU1QyxzQkFBaUIsR0FBMEMsR0FBWSxFQUFFLENBQUMsSUFBSSxDQUFDO0lBRi9ELENBQUM7SUFJakIsUUFBUTtRQUNKLElBQUksQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckcsSUFBSSxDQUFDLElBQUksR0FBRyxhQUFhLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUyxDQUFDLENBQUM7UUFDekUsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO1FBQzlDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxFQUFFO1lBQy9CLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFTLENBQUMsQ0FBQztTQUMzRDtJQUNMLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSCxZQUFZLENBQUMsS0FBVyxFQUFFLEtBQVc7UUFDakMsT0FBTyxLQUFLLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxLQUFLLElBQUksS0FBSyxDQUFDLE9BQU8sS0FBSyxLQUFLLENBQUMsT0FBTyxDQUFDO0lBQzFFLENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU87UUFDSCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNmLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBZSxHQUFHLFNBQVMsQ0FBQztZQUNqRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDbEIsT0FBTztTQUNWO1FBQ0EsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFVLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQzFELElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsT0FBTyxJQUFJLElBQUksRUFBRTtZQUN2RCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3RGO2FBQ0k7WUFDQSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDeEQ7UUFDRCxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQzs7b0hBbkVRLHNCQUFzQjt3R0FBdEIsc0JBQXNCLDRNQ2xCbkMsMHpEQTJDTTs0RkR6Qk8sc0JBQXNCO2tCQU5sQyxTQUFTOytCQUVJLGlCQUFpQjswRUFTM0IsTUFBTTtzQkFETCxLQUFLO2dCQUlOLEdBQUc7c0JBREYsS0FBSztnQkFJTix5QkFBeUI7c0JBRHhCLEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBqc2RvYy9yZXF1aXJlLWpzZG9jICovXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBFbnRpdHlVdGlsaXRpZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9jbGFzc2VzL2VudGl0eS51dGlsaXRpZXMnO1xuaW1wb3J0IHsgRGF0ZVRpbWVEYXRlRGVjb3JhdG9yQ29uZmlnSW50ZXJuYWwgfSBmcm9tICcuLi8uLi8uLi8uLi9kZWNvcmF0b3JzL2RhdGUvZGF0ZS1kZWNvcmF0b3ItaW50ZXJuYWwuZGF0YSc7XG5pbXBvcnQgeyBEZWNvcmF0b3JUeXBlcyB9IGZyb20gJy4uLy4uLy4uLy4uL2RlY29yYXRvcnMvYmFzZS9kZWNvcmF0b3ItdHlwZXMuZW51bSc7XG5pbXBvcnQgeyBOZ01vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRGF0ZUZpbHRlckZuIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBUaW1lIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERyb3Bkb3duVmFsdWUgfSBmcm9tICcuLi8uLi8uLi8uLi9kZWNvcmF0b3JzL2Jhc2UvZHJvcGRvd24tdmFsdWUuaW50ZXJmYWNlJztcbmltcG9ydCB7IERhdGVVdGlsaXRpZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9jbGFzc2VzL2RhdGUudXRpbGl0aWVzJztcbmltcG9ydCB7IEJhc2VFbnRpdHlUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY2xhc3Nlcy9lbnRpdHkubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnZGF0ZS10aW1lLWlucHV0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS10aW1lLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kYXRlLXRpbWUtaW5wdXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlVGltZUlucHV0Q29tcG9uZW50PEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgRGF0ZVV0aWxpdGllcyA9IERhdGVVdGlsaXRpZXM7XG5cbiAgICBASW5wdXQoKVxuICAgIGVudGl0eSE6IEVudGl0eVR5cGU7XG5cbiAgICBASW5wdXQoKVxuICAgIGtleSE6IGtleW9mIEVudGl0eVR5cGU7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldFZhbGlkYXRpb25FcnJvck1lc3NhZ2UhOiAobW9kZWw6IE5nTW9kZWwpID0+IHN0cmluZztcblxuICAgIEBPdXRwdXQoKVxuICAgIGlucHV0Q2hhbmdlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBtZXRhZGF0YSE6IERhdGVUaW1lRGF0ZURlY29yYXRvckNvbmZpZ0ludGVybmFsO1xuXG4gICAgZGF0ZVRpbWU/OiBEYXRlO1xuICAgIHRpbWU/OiBUaW1lO1xuICAgIHRpbWVEcm9wZG93blZhbHVlcyE6IERyb3Bkb3duVmFsdWU8VGltZT5bXTtcblxuICAgIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgICBkZWZhdWx0RGF0ZUZpbHRlcjogRGF0ZUZpbHRlckZuPERhdGUgfCBudWxsIHwgdW5kZWZpbmVkPiA9ICgpOiBib29sZWFuID0+IHRydWU7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXRhZGF0YSA9IEVudGl0eVV0aWxpdGllcy5nZXRQcm9wZXJ0eU1ldGFkYXRhKHRoaXMuZW50aXR5LCB0aGlzLmtleSwgRGVjb3JhdG9yVHlwZXMuREFURV9USU1FKTtcbiAgICAgICAgdGhpcy50aW1lID0gRGF0ZVV0aWxpdGllcy5nZXRUaW1lRnJvbURhdGUodGhpcy5lbnRpdHlbdGhpcy5rZXldIGFzIERhdGUpO1xuICAgICAgICB0aGlzLnRpbWVEcm9wZG93blZhbHVlcyA9IHRoaXMubWV0YWRhdGEudGltZXM7XG4gICAgICAgIGlmICh0aGlzLmVudGl0eVt0aGlzLmtleV0gIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5kYXRlVGltZSA9IG5ldyBEYXRlKHRoaXMuZW50aXR5W3RoaXMua2V5XSBhcyBEYXRlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiB0d28gdGltZXMgYXJlIGVxdWFsLiBJcyBuZWVkZWQgZm9yIHRoZSBkcm9wZG93bi5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0aW1lMSAtIFRoZSBmaXJzdCB0aW1lIHRvIGNvbXBhcmUuXG4gICAgICogQHBhcmFtIHRpbWUyIC0gVGhlIHNlY29uZCB0aW1lIHRvIGNvbXBhcmUuXG4gICAgICogQHJldHVybnMgV2hldGhlciBvciBub3QgdGhlIHRpbWUgb2JqZWN0cyBhcmUgdGhlIHNhbWUuXG4gICAgICovXG4gICAgY29tcGFyZVRpbWVzKHRpbWUxOiBUaW1lLCB0aW1lMjogVGltZSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGltZTEuaG91cnMgPT09IHRpbWUyLmhvdXJzICYmIHRpbWUxLm1pbnV0ZXMgPT09IHRpbWUyLm1pbnV0ZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgdGltZSBvbiBhIGRhdGV0aW1lIHByb3BlcnR5LlxuICAgICAqL1xuICAgIHNldFRpbWUoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kYXRlVGltZSkge1xuICAgICAgICAgICAgKHRoaXMuZW50aXR5W3RoaXMua2V5XSBhcyB1bmRlZmluZWQpID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgKHRoaXMuZW50aXR5W3RoaXMua2V5XSBhcyBEYXRlKSA9IG5ldyBEYXRlKHRoaXMuZGF0ZVRpbWUpO1xuICAgICAgICBpZiAodGhpcy50aW1lPy5ob3VycyAhPSBudWxsICYmIHRoaXMudGltZT8ubWludXRlcyAhPSBudWxsKSB7XG4gICAgICAgICAgICAodGhpcy5lbnRpdHlbdGhpcy5rZXldIGFzIERhdGUpLnNldEhvdXJzKHRoaXMudGltZS5ob3VycywgdGhpcy50aW1lLm1pbnV0ZXMsIDAsIDApO1xuICAgICAgICB9XG4gICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgKHRoaXMuZW50aXR5W3RoaXMua2V5XSBhcyBEYXRlKS5zZXRIb3VycygwLCAwLCAwLCAwKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmVtaXRDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBlbWl0Q2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0Q2hhbmdlRXZlbnQuZW1pdCgpO1xuICAgIH1cbn0iLCI8ZGl2IGNsYXNzPVwiZGF0ZS10aW1lXCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJzdGFuZGFyZFwiPlxuICAgICAgICA8bWF0LWxhYmVsPnt7bWV0YWRhdGEuZGlzcGxheU5hbWV9fTwvbWF0LWxhYmVsPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIG1hdElucHV0XG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImRhdGVUaW1lXCJcbiAgICAgICAgICAgIFtuYW1lXT1cImtleS50b1N0cmluZygpXCJcbiAgICAgICAgICAgICNtb2RlbD1cIm5nTW9kZWxcIlxuICAgICAgICAgICAgW21hdERhdGVwaWNrZXJdPVwicGlja2VyXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJtZXRhZGF0YS5yZXF1aXJlZFwiXG4gICAgICAgICAgICBbbWluXT1cIm1ldGFkYXRhLm1pbkRhdGUgPyBtZXRhZGF0YS5taW5EYXRlKGRhdGVUaW1lKSA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICBbbWF4XT1cIm1ldGFkYXRhLm1heERhdGUgPyBtZXRhZGF0YS5tYXhEYXRlKGRhdGVUaW1lKSA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICBbbWF0RGF0ZXBpY2tlckZpbHRlcl09XCJtZXRhZGF0YS5maWx0ZXJEYXRlID8/IGRlZmF1bHREYXRlRmlsdGVyXCJcbiAgICAgICAgICAgIChkYXRlSW5wdXQpPVwic2V0VGltZSgpXCJcbiAgICAgICAgPlxuICAgICAgICA8bWF0LWRhdGVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cInBpY2tlclwiPjwvbWF0LWRhdGVwaWNrZXItdG9nZ2xlPlxuICAgICAgICA8bWF0LWRhdGVwaWNrZXIgI3BpY2tlcj48L21hdC1kYXRlcGlja2VyPlxuICAgICAgICA8bWF0LWVycm9yPnt7Z2V0VmFsaWRhdGlvbkVycm9yTWVzc2FnZShtb2RlbCl9fTwvbWF0LWVycm9yPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidGltZXBpY2tlclwiPlxuICAgICAgICA8bWF0LWxhYmVsPnt7bWV0YWRhdGEudGltZURpc3BsYXlOYW1lfX08L21hdC1sYWJlbD5cbiAgICAgICAgPG1hdC1zZWxlY3RcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwidGltZVwiXG4gICAgICAgICAgICBbbmFtZV09XCJrZXkudG9TdHJpbmcoKSArICd0aW1lJ1wiXG4gICAgICAgICAgICAjdGltZU1vZGVsPVwibmdNb2RlbFwiXG4gICAgICAgICAgICBbcmVxdWlyZWRdPVwibWV0YWRhdGEucmVxdWlyZWRcIlxuICAgICAgICAgICAgW2NvbXBhcmVXaXRoXT1cImNvbXBhcmVUaW1lc1wiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZXRUaW1lKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdmFsaWRUaW1lIG9mIERhdGVVdGlsaXRpZXMuZ2V0VmFsaWRUaW1lc0ZvckRyb3Bkb3duKFxuICAgICAgICAgICAgICAgICAgICBEYXRlVXRpbGl0aWVzLmFzRGF0ZShlbnRpdHlba2V5XSksXG4gICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLnRpbWVzLFxuICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YS5taW5UaW1lLFxuICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YS5tYXhUaW1lLFxuICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YS5maWx0ZXJUaW1lXG4gICAgICAgICAgICAgICAgKVwiXG4gICAgICAgICAgICAgICAgW3ZhbHVlXT1cInZhbGlkVGltZS52YWx1ZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3t2YWxpZFRpbWUuZGlzcGxheU5hbWV9fVxuICAgICAgICAgICAgPC9tYXQtb3B0aW9uPlxuICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgIDxtYXQtZXJyb3I+e3tnZXRWYWxpZGF0aW9uRXJyb3JNZXNzYWdlKHRpbWVNb2RlbCl9fTwvbWF0LWVycm9yPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG48L2Rpdj4iXX0=
62
+ }] });
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvaW5wdXQvZGF0ZS9kYXRlLXRpbWUtaW5wdXQvZGF0ZS10aW1lLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvaW5wdXQvZGF0ZS9kYXRlLXRpbWUtaW5wdXQvZGF0ZS10aW1lLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdDQUF3QztBQUN4QyxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBS2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVuRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7O0FBUTVFLE1BQU0sT0FBTyxzQkFDVCxTQUFRLDhCQUFvRTtJQVBoRjs7UUFTSSxrQkFBYSxHQUFHLGFBQWEsQ0FBQztRQU05QixzQkFBaUIsR0FBMEMsR0FBWSxFQUFFLENBQUMsSUFBSSxDQUFDO0tBeUNsRjtJQXZDWSxRQUFRO1FBQ2IsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxJQUFJLEdBQUcsYUFBYSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQVMsQ0FBQyxDQUFDO1FBQ3pFLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUM5QyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRTtZQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBUyxDQUFDLENBQUM7U0FDM0Q7SUFDTCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsWUFBWSxDQUFDLEtBQVcsRUFBRSxLQUFXO1FBQ2pDLHlFQUF5RTtRQUN6RSxPQUFPLEtBQUssSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLEtBQUssS0FBSyxLQUFLLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxPQUFPLEtBQUssS0FBSyxDQUFDLE9BQU8sQ0FBQztJQUM1RixDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPO1FBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWUsR0FBRyxTQUFTLENBQUM7WUFDakQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2xCLE9BQU87U0FDVjtRQUNBLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBVSxHQUFHLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUMxRCxJQUFJLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU8sSUFBSSxJQUFJLEVBQUU7WUFDdkQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFVLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUN0RjthQUNJO1lBQ0EsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFVLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ3hEO1FBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7O29IQWpEUSxzQkFBc0I7d0dBQXRCLHNCQUFzQiw4RUNoQm5DLDB6REEyQ007NEZEM0JPLHNCQUFzQjtrQkFObEMsU0FBUzsrQkFFSSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBqc2RvYy9yZXF1aXJlLWpzZG9jICovXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGVjb3JhdG9yVHlwZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9kZWNvcmF0b3JzL2Jhc2UvZGVjb3JhdG9yLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgRGF0ZUZpbHRlckZuIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyBUaW1lIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERyb3Bkb3duVmFsdWUgfSBmcm9tICcuLi8uLi8uLi8uLi9kZWNvcmF0b3JzL2Jhc2UvZHJvcGRvd24tdmFsdWUuaW50ZXJmYWNlJztcbmltcG9ydCB7IERhdGVVdGlsaXRpZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9jbGFzc2VzL2RhdGUudXRpbGl0aWVzJztcbmltcG9ydCB7IEJhc2VFbnRpdHlUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY2xhc3Nlcy9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgTmd4TWF0RW50aXR5QmFzZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS1pbnB1dC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnZGF0ZS10aW1lLWlucHV0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS10aW1lLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kYXRlLXRpbWUtaW5wdXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlVGltZUlucHV0Q29tcG9uZW50PEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj5cbiAgICBleHRlbmRzIE5neE1hdEVudGl0eUJhc2VJbnB1dENvbXBvbmVudDxFbnRpdHlUeXBlLCBEZWNvcmF0b3JUeXBlcy5EQVRFX1RJTUU+IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIERhdGVVdGlsaXRpZXMgPSBEYXRlVXRpbGl0aWVzO1xuXG4gICAgZGF0ZVRpbWU/OiBEYXRlO1xuICAgIHRpbWU/OiBUaW1lO1xuICAgIHRpbWVEcm9wZG93blZhbHVlcyE6IERyb3Bkb3duVmFsdWU8VGltZT5bXTtcblxuICAgIGRlZmF1bHREYXRlRmlsdGVyOiBEYXRlRmlsdGVyRm48RGF0ZSB8IG51bGwgfCB1bmRlZmluZWQ+ID0gKCk6IGJvb2xlYW4gPT4gdHJ1ZTtcblxuICAgIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnRpbWUgPSBEYXRlVXRpbGl0aWVzLmdldFRpbWVGcm9tRGF0ZSh0aGlzLmVudGl0eVt0aGlzLmtleV0gYXMgRGF0ZSk7XG4gICAgICAgIHRoaXMudGltZURyb3Bkb3duVmFsdWVzID0gdGhpcy5tZXRhZGF0YS50aW1lcztcbiAgICAgICAgaWYgKHRoaXMuZW50aXR5W3RoaXMua2V5XSAhPSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVUaW1lID0gbmV3IERhdGUodGhpcy5lbnRpdHlbdGhpcy5rZXldIGFzIERhdGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2hlY2tzIGlmIHR3byB0aW1lcyBhcmUgZXF1YWwuIElzIG5lZWRlZCBmb3IgdGhlIGRyb3Bkb3duLlxuICAgICAqXG4gICAgICogQHBhcmFtIHRpbWUxIC0gVGhlIGZpcnN0IHRpbWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcGFyYW0gdGltZTIgLSBUaGUgc2Vjb25kIHRpbWUgdG8gY29tcGFyZS5cbiAgICAgKiBAcmV0dXJucyBXaGV0aGVyIG9yIG5vdCB0aGUgdGltZSBvYmplY3RzIGFyZSB0aGUgc2FtZS5cbiAgICAgKi9cbiAgICBjb21wYXJlVGltZXModGltZTE6IFRpbWUsIHRpbWUyOiBUaW1lKTogYm9vbGVhbiB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvc3RyaWN0LWJvb2xlYW4tZXhwcmVzc2lvbnNcbiAgICAgICAgcmV0dXJuIHRpbWUxICYmIHRpbWUyICYmIHRpbWUxLmhvdXJzID09PSB0aW1lMi5ob3VycyAmJiB0aW1lMS5taW51dGVzID09PSB0aW1lMi5taW51dGVzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIHRpbWUgb24gYSBkYXRldGltZSBwcm9wZXJ0eS5cbiAgICAgKi9cbiAgICBzZXRUaW1lKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGF0ZVRpbWUpIHtcbiAgICAgICAgICAgICh0aGlzLmVudGl0eVt0aGlzLmtleV0gYXMgdW5kZWZpbmVkKSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMuZW1pdENoYW5nZSgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgICh0aGlzLmVudGl0eVt0aGlzLmtleV0gYXMgRGF0ZSkgPSBuZXcgRGF0ZSh0aGlzLmRhdGVUaW1lKTtcbiAgICAgICAgaWYgKHRoaXMudGltZT8uaG91cnMgIT0gbnVsbCAmJiB0aGlzLnRpbWU/Lm1pbnV0ZXMgIT0gbnVsbCkge1xuICAgICAgICAgICAgKHRoaXMuZW50aXR5W3RoaXMua2V5XSBhcyBEYXRlKS5zZXRIb3Vycyh0aGlzLnRpbWUuaG91cnMsIHRoaXMudGltZS5taW51dGVzLCAwLCAwKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICh0aGlzLmVudGl0eVt0aGlzLmtleV0gYXMgRGF0ZSkuc2V0SG91cnMoMCwgMCwgMCwgMCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgfVxufSIsIjxkaXYgY2xhc3M9XCJkYXRlLXRpbWVcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cInN0YW5kYXJkXCI+XG4gICAgICAgIDxtYXQtbGFiZWw+e3ttZXRhZGF0YS5kaXNwbGF5TmFtZX19PC9tYXQtbGFiZWw+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiZGF0ZVRpbWVcIlxuICAgICAgICAgICAgW25hbWVdPVwia2V5LnRvU3RyaW5nKClcIlxuICAgICAgICAgICAgI21vZGVsPVwibmdNb2RlbFwiXG4gICAgICAgICAgICBbbWF0RGF0ZXBpY2tlcl09XCJwaWNrZXJcIlxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cIm1ldGFkYXRhLnJlcXVpcmVkXCJcbiAgICAgICAgICAgIFttaW5dPVwibWV0YWRhdGEubWluRGF0ZSA/IG1ldGFkYXRhLm1pbkRhdGUoZGF0ZVRpbWUpIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgIFttYXhdPVwibWV0YWRhdGEubWF4RGF0ZSA/IG1ldGFkYXRhLm1heERhdGUoZGF0ZVRpbWUpIDogdW5kZWZpbmVkXCJcbiAgICAgICAgICAgIFttYXREYXRlcGlja2VyRmlsdGVyXT1cIm1ldGFkYXRhLmZpbHRlckRhdGUgPz8gZGVmYXVsdERhdGVGaWx0ZXJcIlxuICAgICAgICAgICAgKGRhdGVJbnB1dCk9XCJzZXRUaW1lKClcIlxuICAgICAgICA+XG4gICAgICAgIDxtYXQtZGF0ZXBpY2tlci10b2dnbGUgbWF0U3VmZml4IFtmb3JdPVwicGlja2VyXCI+PC9tYXQtZGF0ZXBpY2tlci10b2dnbGU+XG4gICAgICAgIDxtYXQtZGF0ZXBpY2tlciAjcGlja2VyPjwvbWF0LWRhdGVwaWNrZXI+XG4gICAgICAgIDxtYXQtZXJyb3I+e3tnZXRWYWxpZGF0aW9uRXJyb3JNZXNzYWdlKG1vZGVsKX19PC9tYXQtZXJyb3I+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJ0aW1lcGlja2VyXCI+XG4gICAgICAgIDxtYXQtbGFiZWw+e3ttZXRhZGF0YS50aW1lRGlzcGxheU5hbWV9fTwvbWF0LWxhYmVsPlxuICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJ0aW1lXCJcbiAgICAgICAgICAgIFtuYW1lXT1cImtleS50b1N0cmluZygpICsgJ3RpbWUnXCJcbiAgICAgICAgICAgICN0aW1lTW9kZWw9XCJuZ01vZGVsXCJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJtZXRhZGF0YS5yZXF1aXJlZFwiXG4gICAgICAgICAgICBbY29tcGFyZVdpdGhdPVwiY29tcGFyZVRpbWVzXCJcbiAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNldFRpbWUoKVwiXG4gICAgICAgID5cbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCB2YWxpZFRpbWUgb2YgRGF0ZVV0aWxpdGllcy5nZXRWYWxpZFRpbWVzRm9yRHJvcGRvd24oXG4gICAgICAgICAgICAgICAgICAgIERhdGVVdGlsaXRpZXMuYXNEYXRlKGVudGl0eVtrZXldKSxcbiAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEudGltZXMsXG4gICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLm1pblRpbWUsXG4gICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLm1heFRpbWUsXG4gICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLmZpbHRlclRpbWVcbiAgICAgICAgICAgICAgICApXCJcbiAgICAgICAgICAgICAgICBbdmFsdWVdPVwidmFsaWRUaW1lLnZhbHVlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7e3ZhbGlkVGltZS5kaXNwbGF5TmFtZX19XG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgPG1hdC1lcnJvcj57e2dldFZhbGlkYXRpb25FcnJvck1lc3NhZ2UodGltZU1vZGVsKX19PC9tYXQtZXJyb3I+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbjwvZGl2PiJdfQ==
@@ -1,39 +1,24 @@
1
1
  /* eslint-disable jsdoc/require-jsdoc */
2
- import { Component, EventEmitter, Input, Output } from '@angular/core';
3
- import { EntityUtilities } from '../../../../classes/entity.utilities';
2
+ import { Component } from '@angular/core';
4
3
  import { FileUtilities } from '../../../../classes/file.utilities';
5
- import { DecoratorTypes } from '../../../../decorators/base/decorator-types.enum';
4
+ import { NgxMatEntityBaseInputComponent } from '../../base-input.component';
6
5
  import * as i0 from "@angular/core";
7
6
  import * as i1 from "../file-input/file-input.component";
8
7
  import * as i2 from "@angular/common";
9
- export class FileDefaultInputComponent {
8
+ export class FileDefaultInputComponent extends NgxMatEntityBaseInputComponent {
10
9
  constructor() {
10
+ super(...arguments);
11
11
  this.FileUtilities = FileUtilities;
12
- this.inputChangeEvent = new EventEmitter();
13
- }
14
- async ngOnInit() {
15
- this.metadata = EntityUtilities.getPropertyMetadata(this.entity, this.key, DecoratorTypes.FILE_DEFAULT);
16
12
  }
17
13
  async refreshFileData(fileData) {
18
14
  this.entity[this.key] = fileData;
19
15
  this.emitChange();
20
16
  }
21
- emitChange() {
22
- this.inputChangeEvent.emit();
23
- }
24
17
  }
25
- FileDefaultInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FileDefaultInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
26
- FileDefaultInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: FileDefaultInputComponent, selector: "file-default-input", inputs: { entity: "entity", key: "key", getValidationErrorMessage: "getValidationErrorMessage" }, outputs: { inputChangeEvent: "inputChangeEvent" }, ngImport: i0, template: "<div *ngIf=\"metadata.dragAndDrop\" class=\"file-input mat-elevation-z8\">\n <file-input (fileDataChangeEvent)=\"refreshFileData($event)\" [entity]=\"entity\" [key]=\"key\" [getValidationErrorMessage]=\"getValidationErrorMessage\"></file-input>\n</div>\n\n<div *ngIf=\"!metadata.dragAndDrop\">\n <file-input (fileDataChangeEvent)=\"refreshFileData($event)\" [entity]=\"entity\" [key]=\"key\" [getValidationErrorMessage]=\"getValidationErrorMessage\"></file-input>\n</div>", styles: [".file-input{margin-top:15px;margin-bottom:15px;padding:15px;border-radius:5px}\n"], components: [{ type: i1.FileInputComponent, selector: "file-input", inputs: ["entity", "key", "getValidationErrorMessage"], outputs: ["fileDataChangeEvent"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
18
+ FileDefaultInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FileDefaultInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
19
+ FileDefaultInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: FileDefaultInputComponent, selector: "file-default-input", usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"metadata.dragAndDrop\" class=\"file-input mat-elevation-z8\">\n <file-input (fileDataChangeEvent)=\"refreshFileData($event)\" [entity]=\"entity\" [key]=\"key\" [getValidationErrorMessage]=\"getValidationErrorMessage\"></file-input>\n</div>\n\n<div *ngIf=\"!metadata.dragAndDrop\">\n <file-input (fileDataChangeEvent)=\"refreshFileData($event)\" [entity]=\"entity\" [key]=\"key\" [getValidationErrorMessage]=\"getValidationErrorMessage\"></file-input>\n</div>", styles: [".file-input{margin-top:15px;margin-bottom:15px;padding:15px;border-radius:5px}\n"], components: [{ type: i1.FileInputComponent, selector: "file-input", inputs: ["entity", "key", "getValidationErrorMessage"], outputs: ["fileDataChangeEvent"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
27
20
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FileDefaultInputComponent, decorators: [{
28
21
  type: Component,
29
22
  args: [{ selector: 'file-default-input', template: "<div *ngIf=\"metadata.dragAndDrop\" class=\"file-input mat-elevation-z8\">\n <file-input (fileDataChangeEvent)=\"refreshFileData($event)\" [entity]=\"entity\" [key]=\"key\" [getValidationErrorMessage]=\"getValidationErrorMessage\"></file-input>\n</div>\n\n<div *ngIf=\"!metadata.dragAndDrop\">\n <file-input (fileDataChangeEvent)=\"refreshFileData($event)\" [entity]=\"entity\" [key]=\"key\" [getValidationErrorMessage]=\"getValidationErrorMessage\"></file-input>\n</div>", styles: [".file-input{margin-top:15px;margin-bottom:15px;padding:15px;border-radius:5px}\n"] }]
30
- }], ctorParameters: function () { return []; }, propDecorators: { entity: [{
31
- type: Input
32
- }], key: [{
33
- type: Input
34
- }], getValidationErrorMessage: [{
35
- type: Input
36
- }], inputChangeEvent: [{
37
- type: Output
38
- }] } });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kZWZhdWx0LWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvaW5wdXQvZmlsZS9maWxlLWRlZmF1bHQtaW5wdXQvZmlsZS1kZWZhdWx0LWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvaW5wdXQvZmlsZS9maWxlLWRlZmF1bHQtaW5wdXQvZmlsZS1kZWZhdWx0LWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdDQUF3QztBQUN4QyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtEQUFrRCxDQUFDOzs7O0FBVWxGLE1BQU0sT0FBTyx5QkFBeUI7SUFrQmxDO1FBaEJBLGtCQUFhLEdBQUcsYUFBYSxDQUFDO1FBWTlCLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFJNUIsQ0FBQztJQUVqQixLQUFLLENBQUMsUUFBUTtRQUNWLElBQUksQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDNUcsQ0FBQztJQUVELEtBQUssQ0FBQyxlQUFlLENBQUMsUUFBZ0M7UUFDakQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUF1QyxHQUFHLFFBQVEsQ0FBQztRQUN4RSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQzs7dUhBL0JRLHlCQUF5QjsyR0FBekIseUJBQXlCLCtNQ2hCdEMsK2RBTU07NEZEVU8seUJBQXlCO2tCQU5yQyxTQUFTOytCQUVJLG9CQUFvQjswRUFTOUIsTUFBTTtzQkFETCxLQUFLO2dCQUlOLEdBQUc7c0JBREYsS0FBSztnQkFJTix5QkFBeUI7c0JBRHhCLEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBqc2RvYy9yZXF1aXJlLWpzZG9jICovXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ01vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRGVmYXVsdEZpbGVEZWNvcmF0b3JDb25maWdJbnRlcm5hbCB9IGZyb20gJy4uLy4uLy4uLy4uL2RlY29yYXRvcnMvZmlsZS9maWxlLWRlY29yYXRvci1pbnRlcm5hbC5kYXRhJztcbmltcG9ydCB7IEVudGl0eVV0aWxpdGllcyB9IGZyb20gJy4uLy4uLy4uLy4uL2NsYXNzZXMvZW50aXR5LnV0aWxpdGllcyc7XG5pbXBvcnQgeyBGaWxlVXRpbGl0aWVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vY2xhc3Nlcy9maWxlLnV0aWxpdGllcyc7XG5pbXBvcnQgeyBEZWNvcmF0b3JUeXBlcyB9IGZyb20gJy4uLy4uLy4uLy4uL2RlY29yYXRvcnMvYmFzZS9kZWNvcmF0b3ItdHlwZXMuZW51bSc7XG5pbXBvcnQgeyBGaWxlRGF0YSB9IGZyb20gJy4uLy4uLy4uLy4uL2RlY29yYXRvcnMvZmlsZS9maWxlLWRlY29yYXRvci5kYXRhJztcbmltcG9ydCB7IEJhc2VFbnRpdHlUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY2xhc3Nlcy9lbnRpdHkubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnZmlsZS1kZWZhdWx0LWlucHV0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZmlsZS1kZWZhdWx0LWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9maWxlLWRlZmF1bHQtaW5wdXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGaWxlRGVmYXVsdElucHV0Q29tcG9uZW50PEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgRmlsZVV0aWxpdGllcyA9IEZpbGVVdGlsaXRpZXM7XG5cbiAgICBASW5wdXQoKVxuICAgIGVudGl0eSE6IEVudGl0eVR5cGU7XG5cbiAgICBASW5wdXQoKVxuICAgIGtleSE6IGtleW9mIEVudGl0eVR5cGU7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldFZhbGlkYXRpb25FcnJvck1lc3NhZ2UhOiAobW9kZWw6IE5nTW9kZWwpID0+IHN0cmluZztcblxuICAgIEBPdXRwdXQoKVxuICAgIGlucHV0Q2hhbmdlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBtZXRhZGF0YSE6IERlZmF1bHRGaWxlRGVjb3JhdG9yQ29uZmlnSW50ZXJuYWw7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gICAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIHRoaXMubWV0YWRhdGEgPSBFbnRpdHlVdGlsaXRpZXMuZ2V0UHJvcGVydHlNZXRhZGF0YSh0aGlzLmVudGl0eSwgdGhpcy5rZXksIERlY29yYXRvclR5cGVzLkZJTEVfREVGQVVMVCk7XG4gICAgfVxuXG4gICAgYXN5bmMgcmVmcmVzaEZpbGVEYXRhKGZpbGVEYXRhPzogRmlsZURhdGEgfCBGaWxlRGF0YVtdKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgICh0aGlzLmVudGl0eVt0aGlzLmtleV0gYXMgRmlsZURhdGEgfCBGaWxlRGF0YVtdIHwgdW5kZWZpbmVkKSA9IGZpbGVEYXRhO1xuICAgICAgICB0aGlzLmVtaXRDaGFuZ2UoKTtcbiAgICB9XG5cbiAgICBlbWl0Q2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0Q2hhbmdlRXZlbnQuZW1pdCgpO1xuICAgIH1cbn0iLCI8ZGl2ICpuZ0lmPVwibWV0YWRhdGEuZHJhZ0FuZERyb3BcIiBjbGFzcz1cImZpbGUtaW5wdXQgbWF0LWVsZXZhdGlvbi16OFwiPlxuICAgIDxmaWxlLWlucHV0IChmaWxlRGF0YUNoYW5nZUV2ZW50KT1cInJlZnJlc2hGaWxlRGF0YSgkZXZlbnQpXCIgW2VudGl0eV09XCJlbnRpdHlcIiBba2V5XT1cImtleVwiIFtnZXRWYWxpZGF0aW9uRXJyb3JNZXNzYWdlXT1cImdldFZhbGlkYXRpb25FcnJvck1lc3NhZ2VcIj48L2ZpbGUtaW5wdXQ+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cIiFtZXRhZGF0YS5kcmFnQW5kRHJvcFwiPlxuICAgIDxmaWxlLWlucHV0IChmaWxlRGF0YUNoYW5nZUV2ZW50KT1cInJlZnJlc2hGaWxlRGF0YSgkZXZlbnQpXCIgW2VudGl0eV09XCJlbnRpdHlcIiBba2V5XT1cImtleVwiIFtnZXRWYWxpZGF0aW9uRXJyb3JNZXNzYWdlXT1cImdldFZhbGlkYXRpb25FcnJvck1lc3NhZ2VcIj48L2ZpbGUtaW5wdXQ+XG48L2Rpdj4iXX0=
23
+ }] });
24
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsZS1kZWZhdWx0LWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvaW5wdXQvZmlsZS9maWxlLWRlZmF1bHQtaW5wdXQvZmlsZS1kZWZhdWx0LWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvaW5wdXQvZmlsZS9maWxlLWRlZmF1bHQtaW5wdXQvZmlsZS1kZWZhdWx0LWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdDQUF3QztBQUN4QyxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUluRSxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7OztBQVE1RSxNQUFNLE9BQU8seUJBQ1QsU0FBUSw4QkFBdUU7SUFQbkY7O1FBU0ksa0JBQWEsR0FBRyxhQUFhLENBQUM7S0FNakM7SUFKRyxLQUFLLENBQUMsZUFBZSxDQUFDLFFBQWdDO1FBQ2pELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBdUMsR0FBRyxRQUFRLENBQUM7UUFDeEUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7O3VIQVJRLHlCQUF5QjsyR0FBekIseUJBQXlCLGlGQ2R0QywrZEFNTTs0RkRRTyx5QkFBeUI7a0JBTnJDLFNBQVM7K0JBRUksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUganNkb2MvcmVxdWlyZS1qc2RvYyAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZpbGVVdGlsaXRpZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9jbGFzc2VzL2ZpbGUudXRpbGl0aWVzJztcbmltcG9ydCB7IERlY29yYXRvclR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGVjb3JhdG9ycy9iYXNlL2RlY29yYXRvci10eXBlcy5lbnVtJztcbmltcG9ydCB7IEZpbGVEYXRhIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGVjb3JhdG9ycy9maWxlL2ZpbGUtZGVjb3JhdG9yLmRhdGEnO1xuaW1wb3J0IHsgQmFzZUVudGl0eVR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi9jbGFzc2VzL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBOZ3hNYXRFbnRpdHlCYXNlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9iYXNlLWlucHV0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdmaWxlLWRlZmF1bHQtaW5wdXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9maWxlLWRlZmF1bHQtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZpbGUtZGVmYXVsdC1pbnB1dC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZpbGVEZWZhdWx0SW5wdXRDb21wb25lbnQ8RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PlxuICAgIGV4dGVuZHMgTmd4TWF0RW50aXR5QmFzZUlucHV0Q29tcG9uZW50PEVudGl0eVR5cGUsIERlY29yYXRvclR5cGVzLkZJTEVfREVGQVVMVD4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgRmlsZVV0aWxpdGllcyA9IEZpbGVVdGlsaXRpZXM7XG5cbiAgICBhc3luYyByZWZyZXNoRmlsZURhdGEoZmlsZURhdGE/OiBGaWxlRGF0YSB8IEZpbGVEYXRhW10pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICAgICAgKHRoaXMuZW50aXR5W3RoaXMua2V5XSBhcyBGaWxlRGF0YSB8IEZpbGVEYXRhW10gfCB1bmRlZmluZWQpID0gZmlsZURhdGE7XG4gICAgICAgIHRoaXMuZW1pdENoYW5nZSgpO1xuICAgIH1cbn0iLCI8ZGl2ICpuZ0lmPVwibWV0YWRhdGEuZHJhZ0FuZERyb3BcIiBjbGFzcz1cImZpbGUtaW5wdXQgbWF0LWVsZXZhdGlvbi16OFwiPlxuICAgIDxmaWxlLWlucHV0IChmaWxlRGF0YUNoYW5nZUV2ZW50KT1cInJlZnJlc2hGaWxlRGF0YSgkZXZlbnQpXCIgW2VudGl0eV09XCJlbnRpdHlcIiBba2V5XT1cImtleVwiIFtnZXRWYWxpZGF0aW9uRXJyb3JNZXNzYWdlXT1cImdldFZhbGlkYXRpb25FcnJvck1lc3NhZ2VcIj48L2ZpbGUtaW5wdXQ+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cIiFtZXRhZGF0YS5kcmFnQW5kRHJvcFwiPlxuICAgIDxmaWxlLWlucHV0IChmaWxlRGF0YUNoYW5nZUV2ZW50KT1cInJlZnJlc2hGaWxlRGF0YSgkZXZlbnQpXCIgW2VudGl0eV09XCJlbnRpdHlcIiBba2V5XT1cImtleVwiIFtnZXRWYWxpZGF0aW9uRXJyb3JNZXNzYWdlXT1cImdldFZhbGlkYXRpb25FcnJvck1lc3NhZ2VcIj48L2ZpbGUtaW5wdXQ+XG48L2Rpdj4iXX0=