ngx-material-entity 16.0.7 → 16.0.8

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 (53) hide show
  1. package/components/input/array/array-string-autocomplete-chips/array-string-autocomplete-chips.component.d.ts +10 -5
  2. package/components/input/array/array-string-chips-input/array-string-chips-input.component.d.ts +4 -2
  3. package/components/input/input.component.d.ts +28 -8
  4. package/components/input/number/number-dropdown-input/number-dropdown-input.component.d.ts +12 -2
  5. package/components/input/relations/references-many-input/references-many-input.component.d.ts +10 -2
  6. package/components/input/string/string-autocomplete-input/string-autocomplete-input.component.d.ts +4 -2
  7. package/components/input/string/string-dropdown-input/string-dropdown-input.component.d.ts +12 -2
  8. package/components/input/string/string-password-input/string-password-input.component.d.ts +12 -0
  9. package/components/table/create-dialog/create-entity-dialog.component.d.ts +1 -1
  10. package/components/table/edit-dialog/edit-entity-dialog.component.d.ts +1 -1
  11. package/components/table/table-data.builder.d.ts +2 -1
  12. package/components/table/table-data.d.ts +10 -0
  13. package/decorators/array/array-decorator-internal.data.d.ts +2 -1
  14. package/decorators/array/array-decorator.data.d.ts +3 -1
  15. package/decorators/string/string-decorator-internal.data.d.ts +3 -1
  16. package/decorators/string/string-decorator.data.d.ts +7 -1
  17. package/directives/dynamic-style-class.directive.d.ts +25 -0
  18. package/directives/included-in.directive.d.ts +1 -1
  19. package/esm2022/components/create-page/create-page.component.mjs +8 -5
  20. package/esm2022/components/edit-page/edit-page.component.mjs +8 -5
  21. package/esm2022/components/input/array/array-string-autocomplete-chips/array-string-autocomplete-chips.component.mjs +28 -15
  22. package/esm2022/components/input/array/array-string-chips-input/array-string-chips-input.component.mjs +14 -19
  23. package/esm2022/components/input/base-input.component.mjs +7 -2
  24. package/esm2022/components/input/input.component.mjs +73 -27
  25. package/esm2022/components/input/number/number-dropdown-input/number-dropdown-input.component.mjs +36 -8
  26. package/esm2022/components/input/relations/references-many-input/references-many-input.component.mjs +29 -5
  27. package/esm2022/components/input/string/string-autocomplete-input/string-autocomplete-input.component.mjs +17 -10
  28. package/esm2022/components/input/string/string-dropdown-input/string-dropdown-input.component.mjs +36 -8
  29. package/esm2022/components/input/string/string-password-input/string-password-input.component.mjs +57 -3
  30. package/esm2022/components/table/create-dialog/create-entity-dialog.component.mjs +4 -4
  31. package/esm2022/components/table/edit-dialog/edit-entity-dialog.component.mjs +9 -5
  32. package/esm2022/components/table/table-data.builder.mjs +5 -1
  33. package/esm2022/components/table/table-data.mjs +1 -1
  34. package/esm2022/components/table/table.component.mjs +6 -4
  35. package/esm2022/decorators/array/array-decorator-internal.data.mjs +11 -3
  36. package/esm2022/decorators/array/array-decorator.data.mjs +1 -1
  37. package/esm2022/decorators/string/string-decorator-internal.data.mjs +14 -3
  38. package/esm2022/decorators/string/string-decorator.data.mjs +1 -1
  39. package/esm2022/directives/dynamic-style-class.directive.mjs +51 -0
  40. package/esm2022/directives/included-in.directive.mjs +2 -3
  41. package/esm2022/encapsulation/reflect.utilities.mjs +6 -2
  42. package/esm2022/functions/default-style-classes.function.mjs +7 -0
  43. package/esm2022/public-api.mjs +6 -1
  44. package/esm2022/services/entity.service.mjs +3 -1
  45. package/esm2022/utilities/entity.utilities.mjs +37 -33
  46. package/esm2022/utilities/validation.utilities.mjs +46 -12
  47. package/fesm2022/ngx-material-entity.mjs +485 -158
  48. package/fesm2022/ngx-material-entity.mjs.map +1 -1
  49. package/functions/default-style-classes.function.d.ts +6 -0
  50. package/package.json +1 -1
  51. package/public-api.d.ts +4 -0
  52. package/utilities/entity.utilities.d.ts +4 -3
  53. package/utilities/validation.utilities.d.ts +7 -3
@@ -21,10 +21,15 @@ export class ArrayStringChipsInputComponent extends NgxMatEntityBaseInputCompone
21
21
  * it contains values, we can set it to undefined when the last element is removed
22
22
  * (removeStringChipArrayValue). That way we can use the "required" validator.
23
23
  * @param event - The event that fires when a new chip is completed.
24
+ * @param invalid - Whether or not the input is invalid.
24
25
  */
25
- addStringChipArrayValue(event) {
26
- const value = (event.value || '').trim();
27
- this.validateAndSetPropertyValue(value);
26
+ addStringChipArrayValue(event, invalid) {
27
+ if (invalid || !event.value) {
28
+ return;
29
+ }
30
+ const value = event.value.trim();
31
+ this.propertyValue = this.propertyValue ?? [];
32
+ this.propertyValue.push(value);
28
33
  event.chipInput?.clear();
29
34
  this.chipsInput = '';
30
35
  this.emitChange();
@@ -43,26 +48,16 @@ export class ArrayStringChipsInputComponent extends NgxMatEntityBaseInputCompone
43
48
  this.propertyValue = this.propertyValue?.length ? this.propertyValue : undefined;
44
49
  this.emitChange();
45
50
  }
46
- validateAndSetPropertyValue(value) {
47
- if (value) {
48
- if (this.metadata.minLength && value.length < this.metadata.minLength) {
49
- return;
50
- }
51
- if (this.metadata.maxLength && value.length > this.metadata.maxLength) {
52
- return;
53
- }
54
- if (this.metadata.regex && !value.match(this.metadata.regex)) {
55
- return;
56
- }
57
- this.propertyValue = this.propertyValue ?? [];
58
- this.propertyValue.push(value);
51
+ setValidationErrors(model, chipsModel) {
52
+ if (chipsModel.errors) {
53
+ model.control.setErrors(chipsModel.errors);
59
54
  }
60
55
  }
61
56
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ArrayStringChipsInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
62
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: ArrayStringChipsInputComponent, selector: "array-string-chips-input", usesInheritance: true, ngImport: i0, template: "<!-- eslint-disable angular/no-call-expression -->\n<mat-form-field>\n <mat-label>{{metadata.displayName}}</mat-label>\n <mat-chip-grid #chipGrid\n #model=\"ngModel\" [name]=\"name\" [required]=\"metadata.required(entity)\"\n [disabled]=\"isReadOnly\"\n [(ngModel)]=\"propertyValue\"\n >\n <mat-chip-row *ngFor=\"let value of propertyValue\" (removed)=\"removeStringChipArrayValue(value)\">\n {{value}}\n <button type=\"button\" matChipRemove>\n <i [class]=\"metadata.deleteIcon\"></i>\n </button>\n </mat-chip-row>\n <input #chipsModel=\"ngModel\"\n matInput\n [matChipInputFor]=\"chipGrid\"\n [matChipInputAddOnBlur]=\"true\"\n [name]=\"uuid2\" [minlength]=\"metadata.minLength ?? null\" [maxlength]=\"metadata.maxLength ?? null\"\n [pattern]=\"metadata.regex ?? '[\\\\s\\\\S]*'\"\n [(ngModel)]=\"chipsInput\"\n (matChipInputTokenEnd)=\"addStringChipArrayValue($event)\"\n />\n <mat-error *ngIf=\"chipsModel.errors\">{{getValidationErrorMessage(chipsModel)}}</mat-error>\n </mat-chip-grid>\n <mat-error *ngIf=\"!chipsModel.errors\">{{getValidationErrorMessage(model)}}</mat-error>\n</mat-form-field>", styles: ["mat-form-field{width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatChipGrid, selector: "mat-chip-grid", inputs: ["tabIndex", "disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i3.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i3.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i3.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "editable"], outputs: ["edited"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", 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"] }] });
57
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.0", type: ArrayStringChipsInputComponent, selector: "array-string-chips-input", usesInheritance: true, ngImport: i0, template: "<!-- eslint-disable angular/no-call-expression -->\n<mat-form-field>\n <mat-label>{{metadata.displayName}}</mat-label>\n <mat-chip-grid #chipGrid\n #model=\"ngModel\" [name]=\"name\" [required]=\"metadata.required(entity)\"\n [disabled]=\"isReadOnly\"\n [(ngModel)]=\"propertyValue\"\n (ngModelChange)=\"setValidationErrors(model, chipsModel)\"\n >\n <mat-chip-row *ngFor=\"let value of propertyValue\" (removed)=\"removeStringChipArrayValue(value)\">\n {{value}}\n <button type=\"button\" matChipRemove>\n <i [class]=\"metadata.deleteIcon\"></i>\n </button>\n </mat-chip-row>\n <input #chipsModel=\"ngModel\"\n matInput\n [matChipInputFor]=\"chipGrid\"\n [matChipInputAddOnBlur]=\"true\"\n [name]=\"uuid2\"\n [minlength]=\"metadata.minLength ?? null\"\n [maxlength]=\"metadata.maxLength ?? null\"\n [pattern]=\"metadata.regex ?? '[\\\\s\\\\S]*'\"\n [(ngModel)]=\"chipsInput\"\n (matChipInputTokenEnd)=\"addStringChipArrayValue($event, !!chipsModel.errors)\"\n />\n </mat-chip-grid>\n <mat-error>{{getValidationErrorMessage(model)}}</mat-error>\n</mat-form-field>", styles: ["mat-form-field{width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatChipGrid, selector: "mat-chip-grid", inputs: ["tabIndex", "disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i3.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i3.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i3.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["color", "disabled", "disableRipple", "tabIndex", "editable"], outputs: ["edited"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", 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"] }] });
63
58
  }
64
59
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImport: i0, type: ArrayStringChipsInputComponent, decorators: [{
65
60
  type: Component,
66
- args: [{ selector: 'array-string-chips-input', template: "<!-- eslint-disable angular/no-call-expression -->\n<mat-form-field>\n <mat-label>{{metadata.displayName}}</mat-label>\n <mat-chip-grid #chipGrid\n #model=\"ngModel\" [name]=\"name\" [required]=\"metadata.required(entity)\"\n [disabled]=\"isReadOnly\"\n [(ngModel)]=\"propertyValue\"\n >\n <mat-chip-row *ngFor=\"let value of propertyValue\" (removed)=\"removeStringChipArrayValue(value)\">\n {{value}}\n <button type=\"button\" matChipRemove>\n <i [class]=\"metadata.deleteIcon\"></i>\n </button>\n </mat-chip-row>\n <input #chipsModel=\"ngModel\"\n matInput\n [matChipInputFor]=\"chipGrid\"\n [matChipInputAddOnBlur]=\"true\"\n [name]=\"uuid2\" [minlength]=\"metadata.minLength ?? null\" [maxlength]=\"metadata.maxLength ?? null\"\n [pattern]=\"metadata.regex ?? '[\\\\s\\\\S]*'\"\n [(ngModel)]=\"chipsInput\"\n (matChipInputTokenEnd)=\"addStringChipArrayValue($event)\"\n />\n <mat-error *ngIf=\"chipsModel.errors\">{{getValidationErrorMessage(chipsModel)}}</mat-error>\n </mat-chip-grid>\n <mat-error *ngIf=\"!chipsModel.errors\">{{getValidationErrorMessage(model)}}</mat-error>\n</mat-form-field>", styles: ["mat-form-field{width:100%}\n"] }]
61
+ args: [{ selector: 'array-string-chips-input', template: "<!-- eslint-disable angular/no-call-expression -->\n<mat-form-field>\n <mat-label>{{metadata.displayName}}</mat-label>\n <mat-chip-grid #chipGrid\n #model=\"ngModel\" [name]=\"name\" [required]=\"metadata.required(entity)\"\n [disabled]=\"isReadOnly\"\n [(ngModel)]=\"propertyValue\"\n (ngModelChange)=\"setValidationErrors(model, chipsModel)\"\n >\n <mat-chip-row *ngFor=\"let value of propertyValue\" (removed)=\"removeStringChipArrayValue(value)\">\n {{value}}\n <button type=\"button\" matChipRemove>\n <i [class]=\"metadata.deleteIcon\"></i>\n </button>\n </mat-chip-row>\n <input #chipsModel=\"ngModel\"\n matInput\n [matChipInputFor]=\"chipGrid\"\n [matChipInputAddOnBlur]=\"true\"\n [name]=\"uuid2\"\n [minlength]=\"metadata.minLength ?? null\"\n [maxlength]=\"metadata.maxLength ?? null\"\n [pattern]=\"metadata.regex ?? '[\\\\s\\\\S]*'\"\n [(ngModel)]=\"chipsInput\"\n (matChipInputTokenEnd)=\"addStringChipArrayValue($event, !!chipsModel.errors)\"\n />\n </mat-chip-grid>\n <mat-error>{{getValidationErrorMessage(model)}}</mat-error>\n</mat-form-field>", styles: ["mat-form-field{width:100%}\n"] }]
67
62
  }] });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktc3RyaW5nLWNoaXBzLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvaW5wdXQvYXJyYXkvYXJyYXktc3RyaW5nLWNoaXBzLWlucHV0L2FycmF5LXN0cmluZy1jaGlwcy1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2lucHV0L2FycmF5L2FycmF5LXN0cmluZy1jaGlwcy1pbnB1dC9hcnJheS1zdHJpbmctY2hpcHMtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0NBQXdDO0FBQ3hDLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFJbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7O0FBRTVFLCtEQUErRDtBQU0vRCxNQUFNLE9BQU8sOEJBQ1QsU0FBUSw4QkFBdUY7SUFFL0YsS0FBSyxHQUFXLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN2QyxVQUFVLEdBQVcsRUFBRSxDQUFDO0lBRXhCOzs7Ozs7Ozs7T0FTRztJQUNILHVCQUF1QixDQUFDLEtBQXdCO1FBQzVDLE1BQU0sS0FBSyxHQUFXLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNqRCxJQUFJLENBQUMsMkJBQTJCLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUVyQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsMEJBQTBCLENBQUMsS0FBYTtRQUNwQyxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFakYsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFUywyQkFBMkIsQ0FBQyxLQUFhO1FBQy9DLElBQUksS0FBSyxFQUFFO1lBQ1AsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFO2dCQUNuRSxPQUFPO2FBQ1Y7WUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUU7Z0JBQ25FLE9BQU87YUFDVjtZQUNELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQzFELE9BQU87YUFDVjtZQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUM7WUFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDbEM7SUFDTCxDQUFDO3VHQXZEUSw4QkFBOEI7MkZBQTlCLDhCQUE4Qix1RkNkM0MsbXhDQTBCaUI7OzJGRFpKLDhCQUE4QjtrQkFMMUMsU0FBUzsrQkFDSSwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBqc2RvYy9yZXF1aXJlLWpzZG9jICovXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0Q2hpcElucHV0RXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBCYXNlRW50aXR5VHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NsYXNzZXMvZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IERlY29yYXRvclR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGVjb3JhdG9ycy9iYXNlL2RlY29yYXRvci10eXBlcy5lbnVtJztcbmltcG9ydCB7IFVVSURVdGlsaXRpZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9lbmNhcHN1bGF0aW9uL3V1aWQudXRpbGl0aWVzJztcbmltcG9ydCB7IE5neE1hdEVudGl0eUJhc2VJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UtaW5wdXQuY29tcG9uZW50JztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGFuZ3VsYXIvcHJlZmVyLXN0YW5kYWxvbmUtY29tcG9uZW50XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FycmF5LXN0cmluZy1jaGlwcy1pbnB1dCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FycmF5LXN0cmluZy1jaGlwcy1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYXJyYXktc3RyaW5nLWNoaXBzLWlucHV0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlTdHJpbmdDaGlwc0lucHV0Q29tcG9uZW50PEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj5cbiAgICBleHRlbmRzIE5neE1hdEVudGl0eUJhc2VJbnB1dENvbXBvbmVudDxFbnRpdHlUeXBlLCBEZWNvcmF0b3JUeXBlcy5BUlJBWV9TVFJJTkdfQ0hJUFMsIHN0cmluZ1tdPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICB1dWlkMjogc3RyaW5nID0gVVVJRFV0aWxpdGllcy5jcmVhdGUoKTtcbiAgICBjaGlwc0lucHV0OiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIEhhbmRsZXMgYWRkaW5nIHN0cmluZ3MgdG8gdGhlIGNoaXBzQXJyYXkuXG4gICAgICogQ2hlY2tzIHZhbGlkYXRpb24gYW5kIGFsc28gY3JlYXRlcyBhIG5ldyBhcnJheSBpZiBpdCBpcyB1bmRlZmluZWQuXG4gICAgICogVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSB0d28gdGhpbmdzIGFyZSB2YWxpZGF0ZWQ6IFRoZSBhcnJheSBpdHNlbGZcbiAgICAgKiBhbmQgdGhlIGNvbnRlbnRzIG9mIHRoZSBhcnJheS4gQW5kIHdlIG5lZWQgYSB3YXkgdG8gZGlzcGxheSBhblxuICAgICAqIG1hdC1lcnJvci4gQXMgdGhlIG9ubHkgdmFsaWRhdGlvbiBmb3IgdGhlIGFycmF5IGlzIHdoZXRoZXIgb3Igbm90XG4gICAgICogaXQgY29udGFpbnMgdmFsdWVzLCB3ZSBjYW4gc2V0IGl0IHRvIHVuZGVmaW5lZCB3aGVuIHRoZSBsYXN0IGVsZW1lbnQgaXMgcmVtb3ZlZFxuICAgICAqIChyZW1vdmVTdHJpbmdDaGlwQXJyYXlWYWx1ZSkuIFRoYXQgd2F5IHdlIGNhbiB1c2UgdGhlIFwicmVxdWlyZWRcIiB2YWxpZGF0b3IuXG4gICAgICogQHBhcmFtIGV2ZW50IC0gVGhlIGV2ZW50IHRoYXQgZmlyZXMgd2hlbiBhIG5ldyBjaGlwIGlzIGNvbXBsZXRlZC5cbiAgICAgKi9cbiAgICBhZGRTdHJpbmdDaGlwQXJyYXlWYWx1ZShldmVudDogTWF0Q2hpcElucHV0RXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsdWU6IHN0cmluZyA9IChldmVudC52YWx1ZSB8fCAnJykudHJpbSgpO1xuICAgICAgICB0aGlzLnZhbGlkYXRlQW5kU2V0UHJvcGVydHlWYWx1ZSh2YWx1ZSk7XG4gICAgICAgIGV2ZW50LmNoaXBJbnB1dD8uY2xlYXIoKTtcbiAgICAgICAgdGhpcy5jaGlwc0lucHV0ID0gJyc7XG5cbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyB0aGUgZ2l2ZW4gdmFsdWUgZnJvbSB0aGUgYXJyYXkuXG4gICAgICogU2V0cyB0aGUgYXJyYXkgdG8gdW5kZWZpbmVkIGlmIGl0IGlzIG5vdyBlbXB0eS5cbiAgICAgKiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHR3byB0aGluZ3MgYXJlIHZhbGlkYXRlZDogVGhlIGFycmF5IGl0c2VsZlxuICAgICAqIGFuZCB0aGUgY29udGVudHMgb2YgdGhlIGFycmF5LiBBbmQgd2UgbmVlZCBhIHdheSB0byBkaXNwbGF5IGFuXG4gICAgICogbWF0LWVycm9yLiBBcyB0aGUgb25seSB2YWxpZGF0aW9uIGZvciB0aGUgYXJyYXkgaXMgd2hldGhlciBvciBub3RcbiAgICAgKiBpdCBpcyBlbXB0eSwgc2V0dGluZyBpdCB0byB1bmRlZmluZWQgaGVyZSBlbmFibGVzIHVzIHRvIHVzZSB0aGUgXCJyZXF1aXJlZFwiIHZhbGlkYXRvci5cbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgc3RyaW5nIHRvIHJlbW92ZSBmcm9tIHRoZSBhcnJheS5cbiAgICAgKi9cbiAgICByZW1vdmVTdHJpbmdDaGlwQXJyYXlWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvcGVydHlWYWx1ZT8uc3BsaWNlKHRoaXMucHJvcGVydHlWYWx1ZS5pbmRleE9mKHZhbHVlKSwgMSk7XG4gICAgICAgIHRoaXMucHJvcGVydHlWYWx1ZSA9IHRoaXMucHJvcGVydHlWYWx1ZT8ubGVuZ3RoID8gdGhpcy5wcm9wZXJ0eVZhbHVlIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIHRoaXMuZW1pdENoYW5nZSgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCB2YWxpZGF0ZUFuZFNldFByb3BlcnR5VmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1ldGFkYXRhLm1pbkxlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPCB0aGlzLm1ldGFkYXRhLm1pbkxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLm1ldGFkYXRhLm1heExlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPiB0aGlzLm1ldGFkYXRhLm1heExlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLm1ldGFkYXRhLnJlZ2V4ICYmICF2YWx1ZS5tYXRjaCh0aGlzLm1ldGFkYXRhLnJlZ2V4KSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucHJvcGVydHlWYWx1ZSA9IHRoaXMucHJvcGVydHlWYWx1ZSA/PyBbXTtcbiAgICAgICAgICAgIHRoaXMucHJvcGVydHlWYWx1ZS5wdXNoKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCI8IS0tIGVzbGludC1kaXNhYmxlIGFuZ3VsYXIvbm8tY2FsbC1leHByZXNzaW9uIC0tPlxuPG1hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtbGFiZWw+e3ttZXRhZGF0YS5kaXNwbGF5TmFtZX19PC9tYXQtbGFiZWw+XG4gICAgPG1hdC1jaGlwLWdyaWQgI2NoaXBHcmlkXG4gICAgICAgICNtb2RlbD1cIm5nTW9kZWxcIiBbbmFtZV09XCJuYW1lXCIgW3JlcXVpcmVkXT1cIm1ldGFkYXRhLnJlcXVpcmVkKGVudGl0eSlcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiaXNSZWFkT25seVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwicHJvcGVydHlWYWx1ZVwiXG4gICAgPlxuICAgICAgICA8bWF0LWNoaXAtcm93ICpuZ0Zvcj1cImxldCB2YWx1ZSBvZiBwcm9wZXJ0eVZhbHVlXCIgKHJlbW92ZWQpPVwicmVtb3ZlU3RyaW5nQ2hpcEFycmF5VmFsdWUodmFsdWUpXCI+XG4gICAgICAgICAgICB7e3ZhbHVlfX1cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdENoaXBSZW1vdmU+XG4gICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIm1ldGFkYXRhLmRlbGV0ZUljb25cIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9tYXQtY2hpcC1yb3c+XG4gICAgICAgIDxpbnB1dCAjY2hpcHNNb2RlbD1cIm5nTW9kZWxcIlxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcEdyaWRcIlxuICAgICAgICAgICAgW21hdENoaXBJbnB1dEFkZE9uQmx1cl09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtuYW1lXT1cInV1aWQyXCIgW21pbmxlbmd0aF09XCJtZXRhZGF0YS5taW5MZW5ndGggPz8gbnVsbFwiIFttYXhsZW5ndGhdPVwibWV0YWRhdGEubWF4TGVuZ3RoID8/IG51bGxcIlxuICAgICAgICAgICAgW3BhdHRlcm5dPVwibWV0YWRhdGEucmVnZXggPz8gJ1tcXFxcc1xcXFxTXSonXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY2hpcHNJbnB1dFwiXG4gICAgICAgICAgICAobWF0Q2hpcElucHV0VG9rZW5FbmQpPVwiYWRkU3RyaW5nQ2hpcEFycmF5VmFsdWUoJGV2ZW50KVwiXG4gICAgICAgIC8+XG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJjaGlwc01vZGVsLmVycm9yc1wiPnt7Z2V0VmFsaWRhdGlvbkVycm9yTWVzc2FnZShjaGlwc01vZGVsKX19PC9tYXQtZXJyb3I+XG4gICAgPC9tYXQtY2hpcC1ncmlkPlxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCIhY2hpcHNNb2RlbC5lcnJvcnNcIj57e2dldFZhbGlkYXRpb25FcnJvck1lc3NhZ2UobW9kZWwpfX08L21hdC1lcnJvcj5cbjwvbWF0LWZvcm0tZmllbGQ+Il19
63
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktc3RyaW5nLWNoaXBzLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvaW5wdXQvYXJyYXkvYXJyYXktc3RyaW5nLWNoaXBzLWlucHV0L2FycmF5LXN0cmluZy1jaGlwcy1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2lucHV0L2FycmF5L2FycmF5LXN0cmluZy1jaGlwcy1pbnB1dC9hcnJheS1zdHJpbmctY2hpcHMtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0NBQXdDO0FBQ3hDLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7Ozs7O0FBRTVFLCtEQUErRDtBQU0vRCxNQUFNLE9BQU8sOEJBQ1QsU0FBUSw4QkFBdUY7SUFFL0YsS0FBSyxHQUFXLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUN2QyxVQUFVLEdBQVcsRUFBRSxDQUFDO0lBRXhCOzs7Ozs7Ozs7O09BVUc7SUFDSCx1QkFBdUIsQ0FBQyxLQUF3QixFQUFFLE9BQWdCO1FBQzlELElBQUksT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRTtZQUN6QixPQUFPO1NBQ1Y7UUFFRCxNQUFNLEtBQUssR0FBVyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFL0IsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUVyQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsMEJBQTBCLENBQUMsS0FBYTtRQUNwQyxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFFakYsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxLQUFjLEVBQUUsVUFBbUI7UUFDbkQsSUFBSSxVQUFVLENBQUMsTUFBTSxFQUFFO1lBQ25CLEtBQUssQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUM5QztJQUNMLENBQUM7dUdBcERRLDhCQUE4QjsyRkFBOUIsOEJBQThCLHVGQ2YzQyxtd0NBNEJpQjs7MkZEYkosOEJBQThCO2tCQUwxQyxTQUFTOytCQUNJLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGpzZG9jL3JlcXVpcmUtanNkb2MgKi9cbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ01vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0Q2hpcElucHV0RXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBCYXNlRW50aXR5VHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NsYXNzZXMvZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IERlY29yYXRvclR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGVjb3JhdG9ycy9iYXNlL2RlY29yYXRvci10eXBlcy5lbnVtJztcbmltcG9ydCB7IFVVSURVdGlsaXRpZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9lbmNhcHN1bGF0aW9uL3V1aWQudXRpbGl0aWVzJztcbmltcG9ydCB7IE5neE1hdEVudGl0eUJhc2VJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UtaW5wdXQuY29tcG9uZW50JztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGFuZ3VsYXIvcHJlZmVyLXN0YW5kYWxvbmUtY29tcG9uZW50XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FycmF5LXN0cmluZy1jaGlwcy1pbnB1dCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FycmF5LXN0cmluZy1jaGlwcy1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYXJyYXktc3RyaW5nLWNoaXBzLWlucHV0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlTdHJpbmdDaGlwc0lucHV0Q29tcG9uZW50PEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj5cbiAgICBleHRlbmRzIE5neE1hdEVudGl0eUJhc2VJbnB1dENvbXBvbmVudDxFbnRpdHlUeXBlLCBEZWNvcmF0b3JUeXBlcy5BUlJBWV9TVFJJTkdfQ0hJUFMsIHN0cmluZ1tdPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICB1dWlkMjogc3RyaW5nID0gVVVJRFV0aWxpdGllcy5jcmVhdGUoKTtcbiAgICBjaGlwc0lucHV0OiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIEhhbmRsZXMgYWRkaW5nIHN0cmluZ3MgdG8gdGhlIGNoaXBzQXJyYXkuXG4gICAgICogQ2hlY2tzIHZhbGlkYXRpb24gYW5kIGFsc28gY3JlYXRlcyBhIG5ldyBhcnJheSBpZiBpdCBpcyB1bmRlZmluZWQuXG4gICAgICogVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSB0d28gdGhpbmdzIGFyZSB2YWxpZGF0ZWQ6IFRoZSBhcnJheSBpdHNlbGZcbiAgICAgKiBhbmQgdGhlIGNvbnRlbnRzIG9mIHRoZSBhcnJheS4gQW5kIHdlIG5lZWQgYSB3YXkgdG8gZGlzcGxheSBhblxuICAgICAqIG1hdC1lcnJvci4gQXMgdGhlIG9ubHkgdmFsaWRhdGlvbiBmb3IgdGhlIGFycmF5IGlzIHdoZXRoZXIgb3Igbm90XG4gICAgICogaXQgY29udGFpbnMgdmFsdWVzLCB3ZSBjYW4gc2V0IGl0IHRvIHVuZGVmaW5lZCB3aGVuIHRoZSBsYXN0IGVsZW1lbnQgaXMgcmVtb3ZlZFxuICAgICAqIChyZW1vdmVTdHJpbmdDaGlwQXJyYXlWYWx1ZSkuIFRoYXQgd2F5IHdlIGNhbiB1c2UgdGhlIFwicmVxdWlyZWRcIiB2YWxpZGF0b3IuXG4gICAgICogQHBhcmFtIGV2ZW50IC0gVGhlIGV2ZW50IHRoYXQgZmlyZXMgd2hlbiBhIG5ldyBjaGlwIGlzIGNvbXBsZXRlZC5cbiAgICAgKiBAcGFyYW0gaW52YWxpZCAtIFdoZXRoZXIgb3Igbm90IHRoZSBpbnB1dCBpcyBpbnZhbGlkLlxuICAgICAqL1xuICAgIGFkZFN0cmluZ0NoaXBBcnJheVZhbHVlKGV2ZW50OiBNYXRDaGlwSW5wdXRFdmVudCwgaW52YWxpZDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAoaW52YWxpZCB8fCAhZXZlbnQudmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbHVlOiBzdHJpbmcgPSBldmVudC52YWx1ZS50cmltKCk7XG4gICAgICAgIHRoaXMucHJvcGVydHlWYWx1ZSA9IHRoaXMucHJvcGVydHlWYWx1ZSA/PyBbXTtcbiAgICAgICAgdGhpcy5wcm9wZXJ0eVZhbHVlLnB1c2godmFsdWUpO1xuXG4gICAgICAgIGV2ZW50LmNoaXBJbnB1dD8uY2xlYXIoKTtcbiAgICAgICAgdGhpcy5jaGlwc0lucHV0ID0gJyc7XG5cbiAgICAgICAgdGhpcy5lbWl0Q2hhbmdlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyB0aGUgZ2l2ZW4gdmFsdWUgZnJvbSB0aGUgYXJyYXkuXG4gICAgICogU2V0cyB0aGUgYXJyYXkgdG8gdW5kZWZpbmVkIGlmIGl0IGlzIG5vdyBlbXB0eS5cbiAgICAgKiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHR3byB0aGluZ3MgYXJlIHZhbGlkYXRlZDogVGhlIGFycmF5IGl0c2VsZlxuICAgICAqIGFuZCB0aGUgY29udGVudHMgb2YgdGhlIGFycmF5LiBBbmQgd2UgbmVlZCBhIHdheSB0byBkaXNwbGF5IGFuXG4gICAgICogbWF0LWVycm9yLiBBcyB0aGUgb25seSB2YWxpZGF0aW9uIGZvciB0aGUgYXJyYXkgaXMgd2hldGhlciBvciBub3RcbiAgICAgKiBpdCBpcyBlbXB0eSwgc2V0dGluZyBpdCB0byB1bmRlZmluZWQgaGVyZSBlbmFibGVzIHVzIHRvIHVzZSB0aGUgXCJyZXF1aXJlZFwiIHZhbGlkYXRvci5cbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgc3RyaW5nIHRvIHJlbW92ZSBmcm9tIHRoZSBhcnJheS5cbiAgICAgKi9cbiAgICByZW1vdmVTdHJpbmdDaGlwQXJyYXlWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvcGVydHlWYWx1ZT8uc3BsaWNlKHRoaXMucHJvcGVydHlWYWx1ZS5pbmRleE9mKHZhbHVlKSwgMSk7XG4gICAgICAgIHRoaXMucHJvcGVydHlWYWx1ZSA9IHRoaXMucHJvcGVydHlWYWx1ZT8ubGVuZ3RoID8gdGhpcy5wcm9wZXJ0eVZhbHVlIDogdW5kZWZpbmVkO1xuXG4gICAgICAgIHRoaXMuZW1pdENoYW5nZSgpO1xuICAgIH1cblxuICAgIHNldFZhbGlkYXRpb25FcnJvcnMobW9kZWw6IE5nTW9kZWwsIGNoaXBzTW9kZWw6IE5nTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgaWYgKGNoaXBzTW9kZWwuZXJyb3JzKSB7XG4gICAgICAgICAgICBtb2RlbC5jb250cm9sLnNldEVycm9ycyhjaGlwc01vZGVsLmVycm9ycyk7XG4gICAgICAgIH1cbiAgICB9XG59IiwiPCEtLSBlc2xpbnQtZGlzYWJsZSBhbmd1bGFyL25vLWNhbGwtZXhwcmVzc2lvbiAtLT5cbjxtYXQtZm9ybS1maWVsZD5cbiAgICA8bWF0LWxhYmVsPnt7bWV0YWRhdGEuZGlzcGxheU5hbWV9fTwvbWF0LWxhYmVsPlxuICAgIDxtYXQtY2hpcC1ncmlkICNjaGlwR3JpZFxuICAgICAgICAjbW9kZWw9XCJuZ01vZGVsXCIgW25hbWVdPVwibmFtZVwiIFtyZXF1aXJlZF09XCJtZXRhZGF0YS5yZXF1aXJlZChlbnRpdHkpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzUmVhZE9ubHlcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cInByb3BlcnR5VmFsdWVcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZXRWYWxpZGF0aW9uRXJyb3JzKG1vZGVsLCBjaGlwc01vZGVsKVwiXG4gICAgPlxuICAgICAgICA8bWF0LWNoaXAtcm93ICpuZ0Zvcj1cImxldCB2YWx1ZSBvZiBwcm9wZXJ0eVZhbHVlXCIgKHJlbW92ZWQpPVwicmVtb3ZlU3RyaW5nQ2hpcEFycmF5VmFsdWUodmFsdWUpXCI+XG4gICAgICAgICAgICB7e3ZhbHVlfX1cbiAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIG1hdENoaXBSZW1vdmU+XG4gICAgICAgICAgICAgICAgPGkgW2NsYXNzXT1cIm1ldGFkYXRhLmRlbGV0ZUljb25cIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9tYXQtY2hpcC1yb3c+XG4gICAgICAgIDxpbnB1dCAjY2hpcHNNb2RlbD1cIm5nTW9kZWxcIlxuICAgICAgICAgICAgbWF0SW5wdXRcbiAgICAgICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcEdyaWRcIlxuICAgICAgICAgICAgW21hdENoaXBJbnB1dEFkZE9uQmx1cl09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtuYW1lXT1cInV1aWQyXCJcbiAgICAgICAgICAgIFttaW5sZW5ndGhdPVwibWV0YWRhdGEubWluTGVuZ3RoID8/IG51bGxcIlxuICAgICAgICAgICAgW21heGxlbmd0aF09XCJtZXRhZGF0YS5tYXhMZW5ndGggPz8gbnVsbFwiXG4gICAgICAgICAgICBbcGF0dGVybl09XCJtZXRhZGF0YS5yZWdleCA/PyAnW1xcXFxzXFxcXFNdKidcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjaGlwc0lucHV0XCJcbiAgICAgICAgICAgIChtYXRDaGlwSW5wdXRUb2tlbkVuZCk9XCJhZGRTdHJpbmdDaGlwQXJyYXlWYWx1ZSgkZXZlbnQsICEhY2hpcHNNb2RlbC5lcnJvcnMpXCJcbiAgICAgICAgLz5cbiAgICA8L21hdC1jaGlwLWdyaWQ+XG4gICAgPG1hdC1lcnJvcj57e2dldFZhbGlkYXRpb25FcnJvck1lc3NhZ2UobW9kZWwpfX08L21hdC1lcnJvcj5cbjwvbWF0LWZvcm0tZmllbGQ+Il19
@@ -61,7 +61,12 @@ export class NgxMatEntityBaseInputComponent {
61
61
  */
62
62
  name;
63
63
  ngOnInit() {
64
- this.metadata = EntityUtilities.getPropertyMetadata(this.entity, this.key);
64
+ // eslint-disable-next-line max-len
65
+ const foundMetadata = EntityUtilities.getPropertyMetadata(this.entity, this.key);
66
+ if (!foundMetadata) {
67
+ throw new Error(`No metadata was found for the key "${String(this.key)}"`);
68
+ }
69
+ this.metadata = foundMetadata;
65
70
  this.name = this.key.toString() + UUIDUtilities.create();
66
71
  }
67
72
  /**
@@ -90,4 +95,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.0", ngImpor
90
95
  }], inputChangeEvent: [{
91
96
  type: Output
92
97
  }] } });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2lucHV0L2Jhc2UtaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJL0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFFbkU7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCwrREFBK0Q7QUFLL0QsTUFBTSxPQUFnQiw4QkFBOEI7SUFNaEQ7O09BRUc7SUFFSCxNQUFNLENBQWM7SUFFcEI7O09BRUc7SUFFSCxHQUFHLENBQW9CO0lBRXZCOztPQUVHO0lBRUgseUJBQXlCLENBQThCO0lBRXZEOzs7T0FHRztJQUVILFVBQVUsQ0FBVztJQUVyQjs7T0FFRztJQUVILGdCQUFnQixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO0lBRWhFLGlEQUFpRDtJQUNqRDs7O09BR0c7SUFDSCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBMEIsQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFBSSxhQUFhLENBQUMsS0FBNEI7UUFDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUEyQixHQUFHLEtBQUssQ0FBQztRQUN6RCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRLENBQTJDO0lBRW5EOztPQUVHO0lBQ0gsSUFBSSxDQUFVO0lBRWQsUUFBUTtRQUNKLElBQUksQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzNFLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDN0QsQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDO3VHQXZFaUIsOEJBQThCOzJGQUE5Qiw4QkFBOEIsZ1BBRnRDLEVBQUU7OzJGQUVNLDhCQUE4QjtrQkFKbkQsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxRQUFRLEVBQUUsRUFBRTtpQkFDZjs4QkFXRyxNQUFNO3NCQURMLEtBQUs7Z0JBT04sR0FBRztzQkFERixLQUFLO2dCQU9OLHlCQUF5QjtzQkFEeEIsS0FBSztnQkFRTixVQUFVO3NCQURULEtBQUs7Z0JBT04sZ0JBQWdCO3NCQURmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ01vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmFzZUVudGl0eVR5cGUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBEZWNvcmF0b3JUeXBlLCBEZWNvcmF0b3JUeXBlcyB9IGZyb20gJy4uLy4uL2RlY29yYXRvcnMvYmFzZS9kZWNvcmF0b3ItdHlwZXMuZW51bSc7XG5pbXBvcnQgeyBVVUlEVXRpbGl0aWVzIH0gZnJvbSAnLi4vLi4vZW5jYXBzdWxhdGlvbi91dWlkLnV0aWxpdGllcyc7XG5pbXBvcnQgeyBFbnRpdHlVdGlsaXRpZXMgfSBmcm9tICcuLi8uLi91dGlsaXRpZXMvZW50aXR5LnV0aWxpdGllcyc7XG5cbi8qKlxuICogVGhlIGFic3RyYWN0IGJhc2UgY2xhc3Mgb2YgYW55IG5neC1tYXQtZW50aXR5IGlucHV0LlxuICogRXh0ZW5kIGZyb20gdGhpcyB3aGVuIGltcGxlbWVudGluZyB5b3VyIG93biBjdXN0b20gZGVjb3JhdG9yLlxuICpcbiAqIEl0IGFscmVhZHkgcHJvdmlkZXM6XG4gKlxuICogLSBlbnRpdHk6IFRoZSBlbnRpdHkgd2hpY2ggdGhlIHByb3BlcnR5IGlzIG9uLiAodHlwZS1zYWZlIGR1ZSB0byB0aGUgR2VuZXJpYyBcIkVudGl0eVR5cGVcIilcbiAqIC0ga2V5OiBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eS4gKHR5cGUtc2FmZSBkdWUgdG8gdGhlIEdlbmVyaWMgXCJFbnRpdHlUeXBlXCIpXG4gKiAtIGdldFZhbGlkYXRpb25FcnJvck1lc3NhZ2U6IFRoZSBmdW5jdGlvbiB0aGF0IGdlbmVyYXRlcyB0aGUgZXJyb3IgbWVzc2FnZSB3aGVuIHRoZSBpbnB1dCBpcyBpbnZhbGlkLlxuICogLSBpc1JlYWRPbmx5OiBXaGV0aGVyIG9yIG5vdCB0aGUgaW5wdXQgaXMgcmVhZCBvbmx5LiBDYW4gYmUgdXNlZCB0byBkaXNhYmxlIGVsZW1lbnRzLlxuICogLSBwcm9wZXJ0eVZhbHVlOiBKdXN0IHRoZSB0eXBlZCB2ZXJzaW9uIG9mIHRoZSBwcm9wZXJ0eSwgaXRzIHRoZSBzYW1lIGFzIGVudGl0eVtrZXldLlxuICogLSBtZXRhZGF0YTogVGhlIG1ldGFkYXRhIG9mIHRoZSBwcm9wZXJ0eS4gKHR5cGUtc2FmZSBkdWUgdG8gdGhlIEdlbmVyaWMgXCJDdXN0b21NZXRhZGF0YVR5cGVcIilcbiAqIC0gbmdPbkluaXQ6IEdldHMgdGhlIG1ldGFkYXRhIGZvciB0aGUgcHJvcGVydHksIGJlIGF3YXJlIG9mIHRoaXMgd2hlbiBvdmVycmlkaW5nIHRoaXMgbWV0aG9kLlxuICogLSBlbWl0Q2hhbmdlOiBTaG91bGQgYmUgY2FsbGVkIHdoZW4gdGhlIGlucHV0IGhhcyBjaGFuZ2VkLiBUaGlzIGlzIG5lZWRlZCB0byB0cmlnZ2VyIHZhbGlkYXRpb24gYW5kIGRpcnR5IGNoZWNrcy5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGFuZ3VsYXIvcHJlZmVyLXN0YW5kYWxvbmUtY29tcG9uZW50XG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25neC1tYXQtZW50aXR5LWJhc2UtaW5wdXQnLFxuICAgIHRlbXBsYXRlOiAnJ1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOZ3hNYXRFbnRpdHlCYXNlSW5wdXRDb21wb25lbnQ8XG4gICAgRW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+LFxuICAgIFR5cGUgZXh0ZW5kcyBEZWNvcmF0b3JUeXBlcyxcbiAgICBWYWx1ZVR5cGUsXG4gICAgQ3VzdG9tTWV0YWRhdGFUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8Q3VzdG9tTWV0YWRhdGFUeXBlPiA9IHt9XG4+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiBUaGUgZW50aXR5IHRoYXQgdGhlIHByb3BlcnR5IHRvIGRpc3BsYXkgYXMgYW4gaW5wdXQgY29tZXMgZnJvbS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGVudGl0eSE6IEVudGl0eVR5cGU7XG5cbiAgICAvKipcbiAgICAgKiBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBidWlsZCB0aGUgaW5wdXQgZm9yLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAga2V5IToga2V5b2YgRW50aXR5VHlwZTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBmdW5jdGlvbiB0aGF0IGdlbmVyYXRlcyB0aGUgZXJyb3IgbWVzc2FnZSB3aGVuIHRoZSBpbnB1dCBpcyBpbnZhbGlkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0VmFsaWRhdGlvbkVycm9yTWVzc2FnZSE6IChtb2RlbDogTmdNb2RlbCkgPT4gc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciBvciBub3QgdGhlIGlucHV0IHNob3VsZCBiZSByZWFkb25seS5cbiAgICAgKiBJbiB0aGF0IGNhc2UgaXQgaXMgZGlzYWJsZWQsIGJ1dCBtb3N0IG9mIHRoZSBkaXNhYmxlZC1zdHlsaW5nIGlzIG92ZXJyaWRkZW4uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpc1JlYWRPbmx5ITogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEVtaXRzIHdoZW4gdGhlIHByb3BlcnR5IHZhbHVlIGhhcyBjaGFuZ2VkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGlucHV0Q2hhbmdlRXZlbnQ6IEV2ZW50RW1pdHRlcjx2b2lkPiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLXJldHVybnNcbiAgICAvKipcbiAgICAgKiBUaGUgcHJvcGVydHkgdmFsdWUgb2YgZW50aXR5W2tleV0gY29ycmVjdGx5IHR5cGVkLlxuICAgICAqIFVzZXMgZ2V0dGVycyBhbmQgc2V0dGVycyBzbyB0aGF0IGlucHV0cyBhcmUgYWx3YXlzIGxpbmtlZCB0byB0aGUgb3JpZ2luYWwgdmFsdWUuXG4gICAgICovXG4gICAgZ2V0IHByb3BlcnR5VmFsdWUoKTogVmFsdWVUeXBlIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZW50aXR5W3RoaXMua2V5XSBhcyBWYWx1ZVR5cGUgfCB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgc2V0IHByb3BlcnR5VmFsdWUodmFsdWU6IFZhbHVlVHlwZSB8IHVuZGVmaW5lZCkge1xuICAgICAgICAodGhpcy5lbnRpdHlbdGhpcy5rZXldIGFzIFZhbHVlVHlwZSB8IHVuZGVmaW5lZCkgPSB2YWx1ZTtcbiAgICAgICAgdGhpcy5tZXRhZGF0YS5jaGFuZ2U/Lih0aGlzLmVudGl0eSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIG1ldGFkYXRhIG9mIHRoZSBwcm9wZXJ0eS5cbiAgICAgKi9cbiAgICBtZXRhZGF0YSE6IERlY29yYXRvclR5cGU8VHlwZSwgQ3VzdG9tTWV0YWRhdGFUeXBlPjtcblxuICAgIC8qKlxuICAgICAqIEEgdW5pcXVlIG5hbWUgZm9yIGlucHV0cy4gSW5jbHVkZXMgYSB1dWlkLlxuICAgICAqL1xuICAgIG5hbWUhOiBzdHJpbmc7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5tZXRhZGF0YSA9IEVudGl0eVV0aWxpdGllcy5nZXRQcm9wZXJ0eU1ldGFkYXRhKHRoaXMuZW50aXR5LCB0aGlzLmtleSk7XG4gICAgICAgIHRoaXMubmFtZSA9IHRoaXMua2V5LnRvU3RyaW5nKCkgKyBVVUlEVXRpbGl0aWVzLmNyZWF0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNob3VsZCBlbWl0IHdoZW4gdGhlIGlucHV0IGhhcyBjaGFuZ2VkLiBUaGlzIGlzIG5lZWRlZCB0byB0cmlnZ2VyIHZhbGlkYXRpb24gYW5kIGRpcnR5IGNoZWNrcy5cbiAgICAgKi9cbiAgICBlbWl0Q2hhbmdlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0Q2hhbmdlRXZlbnQuZW1pdCgpO1xuICAgIH1cbn0iXX0=
98
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2lucHV0L2Jhc2UtaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJL0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7QUFFbkU7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCwrREFBK0Q7QUFLL0QsTUFBTSxPQUFnQiw4QkFBOEI7SUFNaEQ7O09BRUc7SUFFSCxNQUFNLENBQWM7SUFFcEI7O09BRUc7SUFFSCxHQUFHLENBQW9CO0lBRXZCOztPQUVHO0lBRUgseUJBQXlCLENBQThCO0lBRXZEOzs7T0FHRztJQUVILFVBQVUsQ0FBVztJQUVyQjs7T0FFRztJQUVILGdCQUFnQixHQUF1QixJQUFJLFlBQVksRUFBUSxDQUFDO0lBRWhFLGlEQUFpRDtJQUNqRDs7O09BR0c7SUFDSCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBMEIsQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFBSSxhQUFhLENBQUMsS0FBNEI7UUFDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUEyQixHQUFHLEtBQUssQ0FBQztRQUN6RCxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRLENBQTJDO0lBRW5EOztPQUVHO0lBQ0gsSUFBSSxDQUFVO0lBRWQsUUFBUTtRQUNKLG1DQUFtQztRQUNuQyxNQUFNLGFBQWEsR0FBd0QsZUFBZSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDaEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxzQ0FBc0MsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDOUU7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLGFBQWEsQ0FBQztRQUM5QixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsYUFBYSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQzdELENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVU7UUFDTixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQzt1R0E1RWlCLDhCQUE4QjsyRkFBOUIsOEJBQThCLGdQQUZ0QyxFQUFFOzsyRkFFTSw4QkFBOEI7a0JBSm5ELFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsUUFBUSxFQUFFLEVBQUU7aUJBQ2Y7OEJBV0csTUFBTTtzQkFETCxLQUFLO2dCQU9OLEdBQUc7c0JBREYsS0FBSztnQkFPTix5QkFBeUI7c0JBRHhCLEtBQUs7Z0JBUU4sVUFBVTtzQkFEVCxLQUFLO2dCQU9OLGdCQUFnQjtzQkFEZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdNb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEJhc2VFbnRpdHlUeXBlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgRGVjb3JhdG9yVHlwZSwgRGVjb3JhdG9yVHlwZXMgfSBmcm9tICcuLi8uLi9kZWNvcmF0b3JzL2Jhc2UvZGVjb3JhdG9yLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgVVVJRFV0aWxpdGllcyB9IGZyb20gJy4uLy4uL2VuY2Fwc3VsYXRpb24vdXVpZC51dGlsaXRpZXMnO1xuaW1wb3J0IHsgRW50aXR5VXRpbGl0aWVzIH0gZnJvbSAnLi4vLi4vdXRpbGl0aWVzL2VudGl0eS51dGlsaXRpZXMnO1xuXG4vKipcbiAqIFRoZSBhYnN0cmFjdCBiYXNlIGNsYXNzIG9mIGFueSBuZ3gtbWF0LWVudGl0eSBpbnB1dC5cbiAqIEV4dGVuZCBmcm9tIHRoaXMgd2hlbiBpbXBsZW1lbnRpbmcgeW91ciBvd24gY3VzdG9tIGRlY29yYXRvci5cbiAqXG4gKiBJdCBhbHJlYWR5IHByb3ZpZGVzOlxuICpcbiAqIC0gZW50aXR5OiBUaGUgZW50aXR5IHdoaWNoIHRoZSBwcm9wZXJ0eSBpcyBvbi4gKHR5cGUtc2FmZSBkdWUgdG8gdGhlIEdlbmVyaWMgXCJFbnRpdHlUeXBlXCIpXG4gKiAtIGtleTogVGhlIGtleSBvZiB0aGUgcHJvcGVydHkuICh0eXBlLXNhZmUgZHVlIHRvIHRoZSBHZW5lcmljIFwiRW50aXR5VHlwZVwiKVxuICogLSBnZXRWYWxpZGF0aW9uRXJyb3JNZXNzYWdlOiBUaGUgZnVuY3Rpb24gdGhhdCBnZW5lcmF0ZXMgdGhlIGVycm9yIG1lc3NhZ2Ugd2hlbiB0aGUgaW5wdXQgaXMgaW52YWxpZC5cbiAqIC0gaXNSZWFkT25seTogV2hldGhlciBvciBub3QgdGhlIGlucHV0IGlzIHJlYWQgb25seS4gQ2FuIGJlIHVzZWQgdG8gZGlzYWJsZSBlbGVtZW50cy5cbiAqIC0gcHJvcGVydHlWYWx1ZTogSnVzdCB0aGUgdHlwZWQgdmVyc2lvbiBvZiB0aGUgcHJvcGVydHksIGl0cyB0aGUgc2FtZSBhcyBlbnRpdHlba2V5XS5cbiAqIC0gbWV0YWRhdGE6IFRoZSBtZXRhZGF0YSBvZiB0aGUgcHJvcGVydHkuICh0eXBlLXNhZmUgZHVlIHRvIHRoZSBHZW5lcmljIFwiQ3VzdG9tTWV0YWRhdGFUeXBlXCIpXG4gKiAtIG5nT25Jbml0OiBHZXRzIHRoZSBtZXRhZGF0YSBmb3IgdGhlIHByb3BlcnR5LCBiZSBhd2FyZSBvZiB0aGlzIHdoZW4gb3ZlcnJpZGluZyB0aGlzIG1ldGhvZC5cbiAqIC0gZW1pdENoYW5nZTogU2hvdWxkIGJlIGNhbGxlZCB3aGVuIHRoZSBpbnB1dCBoYXMgY2hhbmdlZC4gVGhpcyBpcyBuZWVkZWQgdG8gdHJpZ2dlciB2YWxpZGF0aW9uIGFuZCBkaXJ0eSBjaGVja3MuXG4gKi9cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBhbmd1bGFyL3ByZWZlci1zdGFuZGFsb25lLWNvbXBvbmVudFxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3gtbWF0LWVudGl0eS1iYXNlLWlucHV0JyxcbiAgICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTmd4TWF0RW50aXR5QmFzZUlucHV0Q29tcG9uZW50PFxuICAgIEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPixcbiAgICBUeXBlIGV4dGVuZHMgRGVjb3JhdG9yVHlwZXMsXG4gICAgVmFsdWVUeXBlLFxuICAgIEN1c3RvbU1ldGFkYXRhVHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEN1c3RvbU1ldGFkYXRhVHlwZT4gPSB7fVxuPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqXG4gICAgICogVGhlIGVudGl0eSB0aGF0IHRoZSBwcm9wZXJ0eSB0byBkaXNwbGF5IGFzIGFuIGlucHV0IGNvbWVzIGZyb20uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBlbnRpdHkhOiBFbnRpdHlUeXBlO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gYnVpbGQgdGhlIGlucHV0IGZvci5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGtleSE6IGtleW9mIEVudGl0eVR5cGU7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZnVuY3Rpb24gdGhhdCBnZW5lcmF0ZXMgdGhlIGVycm9yIG1lc3NhZ2Ugd2hlbiB0aGUgaW5wdXQgaXMgaW52YWxpZC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdldFZhbGlkYXRpb25FcnJvck1lc3NhZ2UhOiAobW9kZWw6IE5nTW9kZWwpID0+IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgb3Igbm90IHRoZSBpbnB1dCBzaG91bGQgYmUgcmVhZG9ubHkuXG4gICAgICogSW4gdGhhdCBjYXNlIGl0IGlzIGRpc2FibGVkLCBidXQgbW9zdCBvZiB0aGUgZGlzYWJsZWQtc3R5bGluZyBpcyBvdmVycmlkZGVuLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgaXNSZWFkT25seSE6IGJvb2xlYW47XG5cbiAgICAvKipcbiAgICAgKiBFbWl0cyB3aGVuIHRoZSBwcm9wZXJ0eSB2YWx1ZSBoYXMgY2hhbmdlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBpbnB1dENoYW5nZUV2ZW50OiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1yZXR1cm5zXG4gICAgLyoqXG4gICAgICogVGhlIHByb3BlcnR5IHZhbHVlIG9mIGVudGl0eVtrZXldIGNvcnJlY3RseSB0eXBlZC5cbiAgICAgKiBVc2VzIGdldHRlcnMgYW5kIHNldHRlcnMgc28gdGhhdCBpbnB1dHMgYXJlIGFsd2F5cyBsaW5rZWQgdG8gdGhlIG9yaWdpbmFsIHZhbHVlLlxuICAgICAqL1xuICAgIGdldCBwcm9wZXJ0eVZhbHVlKCk6IFZhbHVlVHlwZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudGl0eVt0aGlzLmtleV0gYXMgVmFsdWVUeXBlIHwgdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIHNldCBwcm9wZXJ0eVZhbHVlKHZhbHVlOiBWYWx1ZVR5cGUgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgKHRoaXMuZW50aXR5W3RoaXMua2V5XSBhcyBWYWx1ZVR5cGUgfCB1bmRlZmluZWQpID0gdmFsdWU7XG4gICAgICAgIHRoaXMubWV0YWRhdGEuY2hhbmdlPy4odGhpcy5lbnRpdHkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBtZXRhZGF0YSBvZiB0aGUgcHJvcGVydHkuXG4gICAgICovXG4gICAgbWV0YWRhdGEhOiBEZWNvcmF0b3JUeXBlPFR5cGUsIEN1c3RvbU1ldGFkYXRhVHlwZT47XG5cbiAgICAvKipcbiAgICAgKiBBIHVuaXF1ZSBuYW1lIGZvciBpbnB1dHMuIEluY2x1ZGVzIGEgdXVpZC5cbiAgICAgKi9cbiAgICBuYW1lITogc3RyaW5nO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBtYXgtbGVuXG4gICAgICAgIGNvbnN0IGZvdW5kTWV0YWRhdGE6IERlY29yYXRvclR5cGU8VHlwZSwgQ3VzdG9tTWV0YWRhdGFUeXBlPiB8IHVuZGVmaW5lZCA9IEVudGl0eVV0aWxpdGllcy5nZXRQcm9wZXJ0eU1ldGFkYXRhKHRoaXMuZW50aXR5LCB0aGlzLmtleSk7XG4gICAgICAgIGlmICghZm91bmRNZXRhZGF0YSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBtZXRhZGF0YSB3YXMgZm91bmQgZm9yIHRoZSBrZXkgXCIke1N0cmluZyh0aGlzLmtleSl9XCJgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLm1ldGFkYXRhID0gZm91bmRNZXRhZGF0YTtcbiAgICAgICAgdGhpcy5uYW1lID0gdGhpcy5rZXkudG9TdHJpbmcoKSArIFVVSURVdGlsaXRpZXMuY3JlYXRlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvdWxkIGVtaXQgd2hlbiB0aGUgaW5wdXQgaGFzIGNoYW5nZWQuIFRoaXMgaXMgbmVlZGVkIHRvIHRyaWdnZXIgdmFsaWRhdGlvbiBhbmQgZGlydHkgY2hlY2tzLlxuICAgICAqL1xuICAgIGVtaXRDaGFuZ2UoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXRDaGFuZ2VFdmVudC5lbWl0KCk7XG4gICAgfVxufSJdfQ==