ngx-material-entity 1.0.0 → 1.1.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 (112) hide show
  1. package/README.md +11 -5
  2. package/capsulation/jszip.utilities.d.ts +12 -0
  3. package/capsulation/reflect.utilities.d.ts +1 -1
  4. package/classes/date.utilities.d.ts +3 -3
  5. package/classes/entity.model.d.ts +1 -1
  6. package/classes/entity.utilities.d.ts +26 -5
  7. package/classes/file.utilities.d.ts +13 -0
  8. package/components/input/array/array-string-autocomplete-chips/array-string-autocomplete-chips.component.d.ts +1 -2
  9. package/components/input/array/array-string-chips-input/array-string-chips-input.component.d.ts +1 -3
  10. package/components/input/array/array-table.class.d.ts +5 -6
  11. package/components/input/base-input.component.d.ts +29 -3
  12. package/components/input/boolean/boolean-checkbox-input/boolean-checkbox-input.component.d.ts +1 -1
  13. package/components/input/boolean/boolean-dropdown-input/boolean-dropdown-input.component.d.ts +1 -1
  14. package/components/input/boolean/boolean-toggle-input/boolean-toggle-input.component.d.ts +1 -1
  15. package/components/input/custom/custom.component.d.ts +3 -3
  16. package/components/input/date/date-input/date-input.component.d.ts +1 -3
  17. package/components/input/date/date-range-input/date-range-input.component.d.ts +2 -3
  18. package/components/input/date/date-time-input/date-time-input.component.d.ts +2 -3
  19. package/components/input/file/file-default-input/file-default-input.component.d.ts +1 -1
  20. package/components/input/file/file-image-input/file-image-input.component.d.ts +1 -1
  21. package/components/input/file/file-input/file-input.component.d.ts +8 -7
  22. package/components/input/input.component.d.ts +17 -5
  23. package/components/input/input.module.d.ts +38 -34
  24. package/components/input/number/number-dropdown-input/number-dropdown-input.component.d.ts +1 -1
  25. package/components/input/number/number-input/number-input.component.d.ts +1 -1
  26. package/components/input/number/number-slider-input/number-slider-input.component.d.ts +9 -0
  27. package/components/input/string/string-autocomplete-input/string-autocomplete-input.component.d.ts +2 -2
  28. package/components/input/string/string-dropdown-input/string-dropdown-input.component.d.ts +1 -1
  29. package/components/input/string/string-input/string-input.component.d.ts +1 -1
  30. package/components/input/string/string-password-input/string-password-input.component.d.ts +15 -0
  31. package/components/input/string/string-textbox-input/string-textbox-input.component.d.ts +1 -1
  32. package/components/table/create-dialog/create-entity-dialog.component.d.ts +2 -2
  33. package/components/table/create-dialog/create-entity-dialog.module.d.ts +2 -1
  34. package/components/table/edit-dialog/edit-entity-dialog-data.d.ts +4 -0
  35. package/components/table/edit-dialog/edit-entity-dialog.builder.d.ts +2 -1
  36. package/components/table/edit-dialog/edit-entity-dialog.component.d.ts +8 -4
  37. package/components/table/edit-dialog/edit-entity-dialog.module.d.ts +3 -2
  38. package/components/table/table-data.builder.d.ts +4 -3
  39. package/components/table/table-data.d.ts +12 -4
  40. package/decorators/base/decorator-types.enum.d.ts +5 -3
  41. package/decorators/base/property-decorator-internal.data.d.ts +2 -0
  42. package/decorators/base/property-decorator.data.d.ts +15 -0
  43. package/decorators/custom/custom-decorator.data.d.ts +4 -0
  44. package/decorators/file/file-decorator-internal.data.d.ts +2 -0
  45. package/decorators/file/file-decorator.data.d.ts +9 -1
  46. package/decorators/number/number-decorator-internal.data.d.ts +20 -1
  47. package/decorators/number/number-decorator.data.d.ts +27 -1
  48. package/decorators/number/number.decorator.d.ts +2 -2
  49. package/decorators/string/string-decorator-internal.data.d.ts +14 -1
  50. package/decorators/string/string-decorator.data.d.ts +37 -1
  51. package/decorators/string/string.decorator.d.ts +2 -2
  52. package/esm2020/capsulation/jszip.utilities.mjs +18 -0
  53. package/esm2020/capsulation/reflect.utilities.mjs +1 -1
  54. package/esm2020/classes/date.utilities.mjs +3 -3
  55. package/esm2020/classes/entity.model.mjs +1 -1
  56. package/esm2020/classes/entity.utilities.mjs +108 -31
  57. package/esm2020/classes/file.utilities.mjs +42 -2
  58. package/esm2020/components/confirm-dialog/confirm-dialog.component.mjs +2 -2
  59. package/esm2020/components/input/array/array-date-input/array-date-input.component.mjs +6 -6
  60. package/esm2020/components/input/array/array-date-range-input/array-date-range-input.component.mjs +5 -5
  61. package/esm2020/components/input/array/array-date-time-input/array-date-time-input.component.mjs +6 -6
  62. package/esm2020/components/input/array/array-string-autocomplete-chips/array-string-autocomplete-chips.component.mjs +9 -25
  63. package/esm2020/components/input/array/array-string-chips-input/array-string-chips-input.component.mjs +9 -28
  64. package/esm2020/components/input/array/array-table.class.mjs +10 -13
  65. package/esm2020/components/input/base-input.component.mjs +28 -2
  66. package/esm2020/components/input/boolean/boolean-checkbox-input/boolean-checkbox-input.component.mjs +4 -6
  67. package/esm2020/components/input/boolean/boolean-dropdown-input/boolean-dropdown-input.component.mjs +3 -3
  68. package/esm2020/components/input/boolean/boolean-toggle-input/boolean-toggle-input.component.mjs +4 -6
  69. package/esm2020/components/input/custom/custom.component.mjs +2 -1
  70. package/esm2020/components/input/date/date-input/date-input.component.mjs +3 -4
  71. package/esm2020/components/input/date/date-range-input/date-range-input.component.mjs +6 -6
  72. package/esm2020/components/input/date/date-time-input/date-time-input.component.mjs +13 -13
  73. package/esm2020/components/input/file/file-default-input/file-default-input.component.mjs +4 -5
  74. package/esm2020/components/input/file/file-image-input/file-image-input.component.mjs +21 -16
  75. package/esm2020/components/input/file/file-input/file-input.component.mjs +58 -31
  76. package/esm2020/components/input/input.component.mjs +36 -30
  77. package/esm2020/components/input/input.module.mjs +18 -4
  78. package/esm2020/components/input/number/number-dropdown-input/number-dropdown-input.component.mjs +3 -3
  79. package/esm2020/components/input/number/number-input/number-input.component.mjs +3 -3
  80. package/esm2020/components/input/number/number-slider-input/number-slider-input.component.mjs +17 -0
  81. package/esm2020/components/input/string/string-autocomplete-input/string-autocomplete-input.component.mjs +5 -7
  82. package/esm2020/components/input/string/string-dropdown-input/string-dropdown-input.component.mjs +3 -3
  83. package/esm2020/components/input/string/string-input/string-input.component.mjs +3 -3
  84. package/esm2020/components/input/string/string-password-input/string-password-input.component.mjs +36 -0
  85. package/esm2020/components/input/string/string-textbox-input/string-textbox-input.component.mjs +3 -3
  86. package/esm2020/components/table/create-dialog/create-entity-dialog.component.mjs +9 -8
  87. package/esm2020/components/table/create-dialog/create-entity-dialog.module.mjs +8 -4
  88. package/esm2020/components/table/edit-dialog/edit-entity-dialog-data.mjs +1 -1
  89. package/esm2020/components/table/edit-dialog/edit-entity-dialog.builder.mjs +4 -3
  90. package/esm2020/components/table/edit-dialog/edit-entity-dialog.component.mjs +16 -12
  91. package/esm2020/components/table/edit-dialog/edit-entity-dialog.module.mjs +5 -1
  92. package/esm2020/components/table/table-data.builder.mjs +13 -10
  93. package/esm2020/components/table/table-data.mjs +1 -1
  94. package/esm2020/components/table/table.component.mjs +16 -14
  95. package/esm2020/decorators/base/base-property.decorator.mjs +1 -1
  96. package/esm2020/decorators/base/decorator-types.enum.mjs +3 -1
  97. package/esm2020/decorators/base/property-decorator-internal.data.mjs +6 -1
  98. package/esm2020/decorators/base/property-decorator.data.mjs +1 -1
  99. package/esm2020/decorators/custom/custom-decorator.data.mjs +1 -1
  100. package/esm2020/decorators/file/file-decorator-internal.data.mjs +3 -1
  101. package/esm2020/decorators/file/file-decorator.data.mjs +1 -1
  102. package/esm2020/decorators/number/number-decorator-internal.data.mjs +24 -1
  103. package/esm2020/decorators/number/number-decorator.data.mjs +1 -1
  104. package/esm2020/decorators/number/number.decorator.mjs +9 -7
  105. package/esm2020/decorators/string/string-decorator-internal.data.mjs +16 -1
  106. package/esm2020/decorators/string/string-decorator.data.mjs +1 -1
  107. package/esm2020/decorators/string/string.decorator.mjs +13 -13
  108. package/fesm2015/ngx-material-entity.mjs +567 -287
  109. package/fesm2015/ngx-material-entity.mjs.map +1 -1
  110. package/fesm2020/ngx-material-entity.mjs +536 -270
  111. package/fesm2020/ngx-material-entity.mjs.map +1 -1
  112. package/package.json +2 -1
@@ -18,9 +18,6 @@ export class ArrayStringAutocompleteChipsComponent extends NgxMatEntityBaseInput
18
18
  ngOnInit() {
19
19
  super.ngOnInit();
20
20
  this.filteredAutocompleteStrings = LodashUtilities.cloneDeep(this.metadata.autocompleteValues);
21
- if (this.entity[this.key]?.length) {
22
- this.stringChipsArrayValues = this.entity[this.key];
23
- }
24
21
  }
25
22
  /**
26
23
  * Handles adding strings to the chipsArray.
@@ -45,13 +42,8 @@ export class ArrayStringAutocompleteChipsComponent extends NgxMatEntityBaseInput
45
42
  if (this.metadata.regex && !value.match(this.metadata.regex)) {
46
43
  return;
47
44
  }
48
- if (!this.stringChipsArrayValues) {
49
- if (this.entity[this.key] == null) {
50
- this.entity[this.key] = [];
51
- }
52
- this.stringChipsArrayValues = this.entity[this.key];
53
- }
54
- this.stringChipsArrayValues.push(value);
45
+ this.propertyValue = this.propertyValue ?? [];
46
+ this.propertyValue.push(value);
55
47
  }
56
48
  event.chipInput?.clear();
57
49
  }
@@ -66,11 +58,8 @@ export class ArrayStringAutocompleteChipsComponent extends NgxMatEntityBaseInput
66
58
  * @param value - The string to remove from the array.
67
59
  */
68
60
  removeStringChipArrayValue(value) {
69
- this.stringChipsArrayValues?.splice(this.stringChipsArrayValues.indexOf(value), 1);
70
- if (!this.stringChipsArrayValues?.length) {
71
- this.entity[this.key] = undefined;
72
- this.stringChipsArrayValues = this.entity[this.key];
73
- }
61
+ this.propertyValue?.splice(this.propertyValue.indexOf(value), 1);
62
+ this.propertyValue = this.propertyValue?.length ? this.propertyValue : undefined;
74
63
  }
75
64
  /**
76
65
  * Handles adding a string to the array when an autocomplete value has been selected.
@@ -89,13 +78,8 @@ export class ArrayStringAutocompleteChipsComponent extends NgxMatEntityBaseInput
89
78
  if (this.metadata.regex && !value.match(this.metadata.regex)) {
90
79
  return;
91
80
  }
92
- if (!this.stringChipsArrayValues) {
93
- if (this.entity[this.key] == null) {
94
- this.entity[this.key] = [];
95
- }
96
- this.stringChipsArrayValues = this.entity[this.key];
97
- }
98
- this.stringChipsArrayValues.push(value);
81
+ this.propertyValue = this.propertyValue ?? [];
82
+ this.propertyValue.push(value);
99
83
  chipsInput.value = '';
100
84
  }
101
85
  /**
@@ -111,9 +95,9 @@ export class ArrayStringAutocompleteChipsComponent extends NgxMatEntityBaseInput
111
95
  }
112
96
  }
113
97
  ArrayStringAutocompleteChipsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ArrayStringAutocompleteChipsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
114
- ArrayStringAutocompleteChipsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ArrayStringAutocompleteChipsComponent, selector: "array-string-autocomplete-chips", usesInheritance: true, ngImport: i0, template: "<mat-form-field>\n <mat-label>{{metadata.displayName}}</mat-label>\n <mat-chip-list #chipList\n (ngModelChange)=\"emitChange()\"\n [(ngModel)]=\"entity[key]\" [name]=\"key.toString()\" #model=\"ngModel\"\n [required]=\"metadata.required\"\n >\n <mat-chip *ngFor=\"let value of stringChipsArrayValues\" (removed)=\"removeStringChipArrayValue(value)\">\n {{value}}\n <button matChipRemove>\n <i class=\"{{metadata.deleteIcon}}\"></i>\n </button>\n </mat-chip>\n <input matInput\n [matChipInputFor]=\"chipList\"\n [matAutocomplete]=\"auto\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"addStringChipArrayValue($event)\"\n (keyup)=\"filterAutocompleteStrings(chipsInput)\"\n [(ngModel)]=\"chipsInput\" [name]=\"key.toString()\" #chipsModel=\"ngModel\"\n #chipsElement\n [minlength]='metadata.minLength ?? null'\n [maxlength]='metadata.maxLength ?? null'\n [pattern]=\"metadata.regex ?? '[\\\\s\\\\S]*'\"\n >\n <mat-error *ngIf=\"chipsModel.errors\">{{getValidationErrorMessage(chipsModel)}}</mat-error>\n </mat-chip-list>\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event, chipsElement)\">\n <mat-option *ngFor=\"let value of metadata.autocompleteValues\" [value]=\"value\">\n {{value}}\n </mat-option>\n </mat-autocomplete>\n <mat-error *ngIf=\"!chipsModel.errors\">{{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.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i1.MatLabel, selector: "mat-label" }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i2.MatChipRemove, selector: "[matChipRemove]" }, { type: i7.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: i2.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { type: i3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { type: i5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i5.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatError, selector: "mat-error", inputs: ["id"] }] });
98
+ ArrayStringAutocompleteChipsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ArrayStringAutocompleteChipsComponent, selector: "array-string-autocomplete-chips", usesInheritance: true, ngImport: i0, template: "<mat-form-field>\n <mat-label>{{metadata.displayName}}</mat-label>\n <mat-chip-list #chipList\n (ngModelChange)=\"emitChange()\"\n [(ngModel)]=\"propertyValue\" [name]=\"key.toString()\" #model=\"ngModel\"\n [required]=\"metadata.required\"\n [disabled]=\"isReadOnly\"\n >\n <mat-chip *ngFor=\"let value of propertyValue\" (removed)=\"removeStringChipArrayValue(value)\">\n {{value}}\n <button matChipRemove>\n <i class=\"{{metadata.deleteIcon}}\"></i>\n </button>\n </mat-chip>\n <input matInput\n [matChipInputFor]=\"chipList\"\n [matAutocomplete]=\"auto\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"addStringChipArrayValue($event)\"\n (keyup)=\"filterAutocompleteStrings(chipsInput)\"\n [(ngModel)]=\"chipsInput\" [name]=\"key.toString()\" #chipsModel=\"ngModel\"\n #chipsElement\n [minlength]='metadata.minLength ?? null'\n [maxlength]='metadata.maxLength ?? null'\n [pattern]=\"metadata.regex ?? '[\\\\s\\\\S]*'\"\n >\n <mat-error *ngIf=\"chipsModel.errors\">{{getValidationErrorMessage(chipsModel)}}</mat-error>\n </mat-chip-list>\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event, chipsElement)\">\n <mat-option *ngFor=\"let value of metadata.autocompleteValues\" [value]=\"value\">\n {{value}}\n </mat-option>\n </mat-autocomplete>\n <mat-error *ngIf=\"!chipsModel.errors\">{{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.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i3.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { type: i4.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i1.MatLabel, selector: "mat-label" }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i5.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i2.MatChipRemove, selector: "[matChipRemove]" }, { type: i7.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: i2.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { type: i3.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { type: i5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i5.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatError, selector: "mat-error", inputs: ["id"] }] });
115
99
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ArrayStringAutocompleteChipsComponent, decorators: [{
116
100
  type: Component,
117
- args: [{ selector: 'array-string-autocomplete-chips', template: "<mat-form-field>\n <mat-label>{{metadata.displayName}}</mat-label>\n <mat-chip-list #chipList\n (ngModelChange)=\"emitChange()\"\n [(ngModel)]=\"entity[key]\" [name]=\"key.toString()\" #model=\"ngModel\"\n [required]=\"metadata.required\"\n >\n <mat-chip *ngFor=\"let value of stringChipsArrayValues\" (removed)=\"removeStringChipArrayValue(value)\">\n {{value}}\n <button matChipRemove>\n <i class=\"{{metadata.deleteIcon}}\"></i>\n </button>\n </mat-chip>\n <input matInput\n [matChipInputFor]=\"chipList\"\n [matAutocomplete]=\"auto\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"addStringChipArrayValue($event)\"\n (keyup)=\"filterAutocompleteStrings(chipsInput)\"\n [(ngModel)]=\"chipsInput\" [name]=\"key.toString()\" #chipsModel=\"ngModel\"\n #chipsElement\n [minlength]='metadata.minLength ?? null'\n [maxlength]='metadata.maxLength ?? null'\n [pattern]=\"metadata.regex ?? '[\\\\s\\\\S]*'\"\n >\n <mat-error *ngIf=\"chipsModel.errors\">{{getValidationErrorMessage(chipsModel)}}</mat-error>\n </mat-chip-list>\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event, chipsElement)\">\n <mat-option *ngFor=\"let value of metadata.autocompleteValues\" [value]=\"value\">\n {{value}}\n </mat-option>\n </mat-autocomplete>\n <mat-error *ngIf=\"!chipsModel.errors\">{{getValidationErrorMessage(model)}}</mat-error>\n</mat-form-field>", styles: ["mat-form-field{width:100%}\n"] }]
101
+ args: [{ selector: 'array-string-autocomplete-chips', template: "<mat-form-field>\n <mat-label>{{metadata.displayName}}</mat-label>\n <mat-chip-list #chipList\n (ngModelChange)=\"emitChange()\"\n [(ngModel)]=\"propertyValue\" [name]=\"key.toString()\" #model=\"ngModel\"\n [required]=\"metadata.required\"\n [disabled]=\"isReadOnly\"\n >\n <mat-chip *ngFor=\"let value of propertyValue\" (removed)=\"removeStringChipArrayValue(value)\">\n {{value}}\n <button matChipRemove>\n <i class=\"{{metadata.deleteIcon}}\"></i>\n </button>\n </mat-chip>\n <input matInput\n [matChipInputFor]=\"chipList\"\n [matAutocomplete]=\"auto\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"addStringChipArrayValue($event)\"\n (keyup)=\"filterAutocompleteStrings(chipsInput)\"\n [(ngModel)]=\"chipsInput\" [name]=\"key.toString()\" #chipsModel=\"ngModel\"\n #chipsElement\n [minlength]='metadata.minLength ?? null'\n [maxlength]='metadata.maxLength ?? null'\n [pattern]=\"metadata.regex ?? '[\\\\s\\\\S]*'\"\n >\n <mat-error *ngIf=\"chipsModel.errors\">{{getValidationErrorMessage(chipsModel)}}</mat-error>\n </mat-chip-list>\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event, chipsElement)\">\n <mat-option *ngFor=\"let value of metadata.autocompleteValues\" [value]=\"value\">\n {{value}}\n </mat-option>\n </mat-autocomplete>\n <mat-error *ngIf=\"!chipsModel.errors\">{{getValidationErrorMessage(model)}}</mat-error>\n</mat-form-field>", styles: ["mat-form-field{width:100%}\n"] }]
118
102
  }] });
119
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktc3RyaW5nLWF1dG9jb21wbGV0ZS1jaGlwcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2lucHV0L2FycmF5L2FycmF5LXN0cmluZy1hdXRvY29tcGxldGUtY2hpcHMvYXJyYXktc3RyaW5nLWF1dG9jb21wbGV0ZS1jaGlwcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2lucHV0L2FycmF5L2FycmF5LXN0cmluZy1hdXRvY29tcGxldGUtY2hpcHMvYXJyYXktc3RyaW5nLWF1dG9jb21wbGV0ZS1jaGlwcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3Q0FBd0M7QUFDeEMsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUlsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFM0UsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7OztBQVE1RSxNQUFNLE9BQU8scUNBQ1QsU0FBUSw4QkFBMEY7SUFQdEc7O1FBYUksZUFBVSxHQUFXLEVBQUUsQ0FBQztLQW9HM0I7SUFsR1ksUUFBUTtRQUNiLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsMkJBQTJCLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDL0YsSUFBSyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTBCLEVBQUUsTUFBTSxFQUFFO1lBQ3pELElBQUksQ0FBQyxzQkFBc0IsR0FBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUks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LENBQUMsR0FBRyxDQUFjLEdBQUcsRUFBRSxDQUFDO2FBQzVDO1lBQ0QsSUFBSSxDQUFDLHNCQUFzQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBYSxDQUFDO1NBQ25FO1FBQ0QsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxVQUFVLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILHlCQUF5QixDQUFDLEtBQWM7UUFDcEMsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFO1lBQ2YsTUFBTSxXQUFXLEdBQUksS0FBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNwRCxJQUFJLENBQUMsMkJBQTJCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7U0FDMUg7SUFDTCxDQUFDOzttSUExR1EscUNBQXFDO3VIQUFyQyxxQ0FBcUMsOEZDZmxELHNtREFpQ2lCOzRGRGxCSixxQ0FBcUM7a0JBTmpELFNBQVM7K0JBRUksaUNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUganNkb2MvcmVxdWlyZS1qc2RvYyAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0Q2hpcElucHV0RXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBCYXNlRW50aXR5VHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NsYXNzZXMvZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IExvZGFzaFV0aWxpdGllcyB9IGZyb20gJy4uLy4uLy4uLy4uL2NhcHN1bGF0aW9uL2xvZGFzaC51dGlsaXRpZXMnO1xuaW1wb3J0IHsgRGVjb3JhdG9yVHlwZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9kZWNvcmF0b3JzL2Jhc2UvZGVjb3JhdG9yLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgTmd4TWF0RW50aXR5QmFzZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS1pbnB1dC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnYXJyYXktc3RyaW5nLWF1dG9jb21wbGV0ZS1jaGlwcycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FycmF5LXN0cmluZy1hdXRvY29tcGxldGUtY2hpcHMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2FycmF5LXN0cmluZy1hdXRvY29tcGxldGUtY2hpcHMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBcnJheVN0cmluZ0F1dG9jb21wbGV0ZUNoaXBzQ29tcG9uZW50PEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj5cbiAgICBleHRlbmRzIE5neE1hdEVudGl0eUJhc2VJbnB1dENvbXBvbmVudDxFbnRpdHlUeXBlLCBEZWNvcmF0b3JUeXBlcy5BUlJBWV9TVFJJTkdfQVVUT0NPTVBMRVRFX0NISVBTPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBzdHJpbmdDaGlwc0FycmF5VmFsdWVzPzogc3RyaW5nW107XG5cbiAgICBmaWx0ZXJlZEF1dG9jb21wbGV0ZVN0cmluZ3MhOiBzdHJpbmdbXTtcblxuICAgIGNoaXBzSW5wdXQ6IHN0cmluZyA9ICcnO1xuXG4gICAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMuZmlsdGVyZWRBdXRvY29tcGxldGVTdHJpbmdzID0gTG9kYXNoVXRpbGl0aWVzLmNsb25lRGVlcCh0aGlzLm1ldGFkYXRhLmF1dG9jb21wbGV0ZVZhbHVlcyk7XG4gICAgICAgIGlmICgodGhpcy5lbnRpdHlbdGhpcy5rZXldIGFzIHN0cmluZ1tdIHwgdW5kZWZpbmVkKT8ubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnN0cmluZ0NoaXBzQXJyYXlWYWx1ZXMgPSAodGhpcy5lbnRpdHlbdGhpcy5rZXldIGFzIHN0cmluZ1tdKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZXMgYWRkaW5nIHN0cmluZ3MgdG8gdGhlIGNoaXBzQXJyYXkuXG4gICAgICogQ2hlY2tzIHZhbGlkYXRpb24gYW5kIGFsc28gY3JlYXRlcyBhIG5ldyBhcnJheSBpZiBpdCBpcyB1bmRlZmluZWQuXG4gICAgICogVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSB0d28gdGhpbmdzIGFyZSB2YWxpZGF0ZWQ6IFRoZSBhcnJheSBpdHNlbGZcbiAgICAgKiBhbmQgdGhlIGNvbnRlbnRzIG9mIHRoZSBhcnJheS4gQW5kIHdlIG5lZWQgYSB3YXkgdG8gZGlzcGxheSBhblxuICAgICAqIG1hdC1lcnJvci4gQXMgdGhlIG9ubHkgdmFsaWRhdGlvbiBmb3IgdGhlIGFycmF5IGlzIHdoZXRoZXIgb3Igbm90XG4gICAgICogaXQgY29udGFpbnMgdmFsdWVzLCB3ZSBjYW4gc2V0IGl0IHRvIHVuZGVmaW5lZCB3aGVuIHRoZSBsYXN0IGVsZW1lbnQgaXMgcmVtb3ZlZFxuICAgICAqIChyZW1vdmVTdHJpbmdDaGlwQXJyYXlWYWx1ZSkuIFRoYXQgd2F5IHdlIGNhbiB1c2UgdGhlIFwicmVxdWlyZWRcIiB2YWxpZGF0b3IuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZXZlbnQgLSBUaGUgZXZlbnQgdGhhdCBmaXJlcyB3aGVuIGEgbmV3IGNoaXAgaXMgY29tcGxldGVkLlxuICAgICAqL1xuICAgIGFkZFN0cmluZ0NoaXBBcnJheVZhbHVlKGV2ZW50OiBNYXRDaGlwSW5wdXRFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IChldmVudC52YWx1ZSB8fCAnJykudHJpbSgpO1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1ldGFkYXRhLm1pbkxlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPCB0aGlzLm1ldGFkYXRhLm1pbkxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLm1ldGFkYXRhLm1heExlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPiB0aGlzLm1ldGFkYXRhLm1heExlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLm1ldGFkYXRhLnJlZ2V4ICAmJiAhdmFsdWUubWF0Y2godGhpcy5tZXRhZGF0YS5yZWdleCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIXRoaXMuc3RyaW5nQ2hpcHNBcnJheVZhbHVlcykge1xuICAgICAgICAgICAgICAgIGlmICh0aGlzLmVudGl0eVt0aGlzLmtleV0gPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICAodGhpcy5lbnRpdHlbdGhpcy5rZXldIGFzIHN0cmluZ1tdKSA9IFtdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLnN0cmluZ0NoaXBzQXJyYXlWYWx1ZXMgPSB0aGlzLmVudGl0eVt0aGlzLmtleV0gYXMgc3RyaW5nW107XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN0cmluZ0NoaXBzQXJyYXlWYWx1ZXMucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZXZlbnQuY2hpcElucHV0Py5jbGVhcigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgdGhlIGdpdmVuIHZhbHVlIGZyb20gdGhlIGFycmF5LlxuICAgICAqIFNldHMgdGhlIGFycmF5IHRvIHVuZGVmaW5lZCBpZiBpdCBpcyBub3cgZW1wdHkuXG4gICAgICogVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSB0d28gdGhpbmdzIGFyZSB2YWxpZGF0ZWQ6IFRoZSBhcnJheSBpdHNlbGZcbiAgICAgKiBhbmQgdGhlIGNvbnRlbnRzIG9mIHRoZSBhcnJheS4gQW5kIHdlIG5lZWQgYSB3YXkgdG8gZGlzcGxheSBhblxuICAgICAqIG1hdC1lcnJvci4gQXMgdGhlIG9ubHkgdmFsaWRhdGlvbiBmb3IgdGhlIGFycmF5IGlzIHdoZXRoZXIgb3Igbm90XG4gICAgICogaXQgaXMgZW1wdHksIHNldHRpbmcgaXQgdG8gdW5kZWZpbmVkIGhlcmUgZW5hYmxlcyB1cyB0byB1c2UgdGhlIFwicmVxdWlyZWRcIiB2YWxpZGF0b3IuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgc3RyaW5nIHRvIHJlbW92ZSBmcm9tIHRoZSBhcnJheS5cbiAgICAgKi9cbiAgICByZW1vdmVTdHJpbmdDaGlwQXJyYXlWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3RyaW5nQ2hpcHNBcnJheVZhbHVlcz8uc3BsaWNlKHRoaXMuc3RyaW5nQ2hpcHNBcnJheVZhbHVlcy5pbmRleE9mKHZhbHVlKSwgMSk7XG4gICAgICAgIGlmICghdGhpcy5zdHJpbmdDaGlwc0FycmF5VmFsdWVzPy5sZW5ndGgpIHtcbiAgICAgICAgICAgICh0aGlzLmVudGl0eVt0aGlzLmtleV0gYXMgdW5rbm93bikgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0aGlzLnN0cmluZ0NoaXBzQXJyYXlWYWx1ZXMgPSB0aGlzLmVudGl0eVt0aGlzLmtleV0gYXMgdW5kZWZpbmVkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlcyBhZGRpbmcgYSBzdHJpbmcgdG8gdGhlIGFycmF5IHdoZW4gYW4gYXV0b2NvbXBsZXRlIHZhbHVlIGhhcyBiZWVuIHNlbGVjdGVkLlxuICAgICAqXG4gICAgICogQHBhcmFtIGV2ZW50IC0gVGhlIGF1dG9jb21wbGV0ZSBzZWxlY3RlZCBldmVudC5cbiAgICAgKiBAcGFyYW0gY2hpcHNJbnB1dCAtIFRoZSBlbGVtZW50IHdoZXJlIHRoZSB1c2VyIHR5cGVkIHRoZSB2YWx1ZS5cbiAgICAgKi9cbiAgICBzZWxlY3RlZChldmVudDogTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCwgY2hpcHNJbnB1dDogSFRNTElucHV0RWxlbWVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IChldmVudC5vcHRpb24udmlld1ZhbHVlIHx8ICcnKS50cmltKCk7XG4gICAgICAgIGlmICh0aGlzLm1ldGFkYXRhLm1pbkxlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPCB0aGlzLm1ldGFkYXRhLm1pbkxlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm1ldGFkYXRhLm1heExlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPiB0aGlzLm1ldGFkYXRhLm1heExlbmd0aCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLm1ldGFkYXRhLnJlZ2V4ICAmJiAhdmFsdWUubWF0Y2godGhpcy5tZXRhZGF0YS5yZWdleCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIXRoaXMuc3RyaW5nQ2hpcHNBcnJheVZhbHVlcykge1xuICAgICAgICAgICAgaWYgKHRoaXMuZW50aXR5W3RoaXMua2V5XSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgKHRoaXMuZW50aXR5W3RoaXMua2V5XSBhcyBzdHJpbmdbXSkgPSBbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3RyaW5nQ2hpcHNBcnJheVZhbHVlcyA9IHRoaXMuZW50aXR5W3RoaXMua2V5XSBhcyBzdHJpbmdbXTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnN0cmluZ0NoaXBzQXJyYXlWYWx1ZXMucHVzaCh2YWx1ZSk7XG4gICAgICAgIGNoaXBzSW5wdXQudmFsdWUgPSAnJztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEeW5hbWljYWxseSBmaWx0ZXJzIHRoZSBBdXRvY29tcGxldGUgb3B0aW9ucyB3aGVuIHRoZSB1c2VyIGlucHV0cyBzb21ldGhpbmcuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gaW5wdXQgLSBUaGUgaW5wdXQgb2YgdGhlIHVzZXIuXG4gICAgICovXG4gICAgZmlsdGVyQXV0b2NvbXBsZXRlU3RyaW5ncyhpbnB1dDogdW5rbm93bik6IHZvaWQge1xuICAgICAgICBpZiAoaW5wdXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgZmlsdGVyVmFsdWUgPSAoaW5wdXQgYXMgc3RyaW5nKS50b0xvd2VyQ2FzZSgpO1xuICAgICAgICAgICAgdGhpcy5maWx0ZXJlZEF1dG9jb21wbGV0ZVN0cmluZ3MgPSB0aGlzLm1ldGFkYXRhLmF1dG9jb21wbGV0ZVZhbHVlcy5maWx0ZXIocyA9PiBzLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyVmFsdWUpKTtcbiAgICAgICAgfVxuICAgIH1cbn0iLCI8bWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1sYWJlbD57e21ldGFkYXRhLmRpc3BsYXlOYW1lfX08L21hdC1sYWJlbD5cbiAgICA8bWF0LWNoaXAtbGlzdCAjY2hpcExpc3RcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiZW1pdENoYW5nZSgpXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJlbnRpdHlba2V5XVwiIFtuYW1lXT1cImtleS50b1N0cmluZygpXCIgI21vZGVsPVwibmdNb2RlbFwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJtZXRhZGF0YS5yZXF1aXJlZFwiXG4gICAgPlxuICAgICAgICA8bWF0LWNoaXAgKm5nRm9yPVwibGV0IHZhbHVlIG9mIHN0cmluZ0NoaXBzQXJyYXlWYWx1ZXNcIiAocmVtb3ZlZCk9XCJyZW1vdmVTdHJpbmdDaGlwQXJyYXlWYWx1ZSh2YWx1ZSlcIj5cbiAgICAgICAgICAgIHt7dmFsdWV9fVxuICAgICAgICAgICAgPGJ1dHRvbiBtYXRDaGlwUmVtb3ZlPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwie3ttZXRhZGF0YS5kZWxldGVJY29ufX1cIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9tYXQtY2hpcD5cbiAgICAgICAgPGlucHV0IG1hdElucHV0XG4gICAgICAgICAgICBbbWF0Q2hpcElucHV0Rm9yXT1cImNoaXBMaXN0XCJcbiAgICAgICAgICAgIFttYXRBdXRvY29tcGxldGVdPVwiYXV0b1wiXG4gICAgICAgICAgICBbbWF0Q2hpcElucHV0QWRkT25CbHVyXT1cInRydWVcIlxuICAgICAgICAgICAgKG1hdENoaXBJbnB1dFRva2VuRW5kKT1cImFkZFN0cmluZ0NoaXBBcnJheVZhbHVlKCRldmVudClcIlxuICAgICAgICAgICAgKGtleXVwKT1cImZpbHRlckF1dG9jb21wbGV0ZVN0cmluZ3MoY2hpcHNJbnB1dClcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjaGlwc0lucHV0XCIgW25hbWVdPVwia2V5LnRvU3RyaW5nKClcIiAjY2hpcHNNb2RlbD1cIm5nTW9kZWxcIlxuICAgICAgICAgICAgI2NoaXBzRWxlbWVudFxuICAgICAgICAgICAgW21pbmxlbmd0aF09J21ldGFkYXRhLm1pbkxlbmd0aCA/PyBudWxsJ1xuICAgICAgICAgICAgW21heGxlbmd0aF09J21ldGFkYXRhLm1heExlbmd0aCA/PyBudWxsJ1xuICAgICAgICAgICAgW3BhdHRlcm5dPVwibWV0YWRhdGEucmVnZXggPz8gJ1tcXFxcc1xcXFxTXSonXCJcbiAgICAgICAgPlxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiY2hpcHNNb2RlbC5lcnJvcnNcIj57e2dldFZhbGlkYXRpb25FcnJvck1lc3NhZ2UoY2hpcHNNb2RlbCl9fTwvbWF0LWVycm9yPlxuICAgIDwvbWF0LWNoaXAtbGlzdD5cbiAgICA8bWF0LWF1dG9jb21wbGV0ZSAjYXV0bz1cIm1hdEF1dG9jb21wbGV0ZVwiIChvcHRpb25TZWxlY3RlZCk9XCJzZWxlY3RlZCgkZXZlbnQsIGNoaXBzRWxlbWVudClcIj5cbiAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHZhbHVlIG9mIG1ldGFkYXRhLmF1dG9jb21wbGV0ZVZhbHVlc1wiIFt2YWx1ZV09XCJ2YWx1ZVwiPlxuICAgICAgICAgIHt7dmFsdWV9fVxuICAgICAgICA8L21hdC1vcHRpb24+XG4gICAgPC9tYXQtYXV0b2NvbXBsZXRlPlxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCIhY2hpcHNNb2RlbC5lcnJvcnNcIj57e2dldFZhbGlkYXRpb25FcnJvck1lc3NhZ2UobW9kZWwpfX08L21hdC1lcnJvcj5cbjwvbWF0LWZvcm0tZmllbGQ+Il19
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktc3RyaW5nLWF1dG9jb21wbGV0ZS1jaGlwcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2lucHV0L2FycmF5L2FycmF5LXN0cmluZy1hdXRvY29tcGxldGUtY2hpcHMvYXJyYXktc3RyaW5nLWF1dG9jb21wbGV0ZS1jaGlwcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2lucHV0L2FycmF5L2FycmF5LXN0cmluZy1hdXRvY29tcGxldGUtY2hpcHMvYXJyYXktc3RyaW5nLWF1dG9jb21wbGV0ZS1jaGlwcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3Q0FBd0M7QUFDeEMsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUlsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFM0UsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7OztBQVE1RSxNQUFNLE9BQU8scUNBQ1QsU0FBUSw4QkFBb0c7SUFQaEg7O1FBV0ksZUFBVSxHQUFXLEVBQUUsQ0FBQztLQW9GM0I7SUFsRlksUUFBUTtRQUNiLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsMkJBQTJCLEdBQUcsZUFBZSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDbkcsQ0FBQztJQUVEOzs7Ozs7Ozs7O09BVUc7SUFDSCx1QkFBdUIsQ0FBQyxLQUF3QjtRQUM1QyxNQUFNLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxF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anNkb2MgKi9cbmltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYXV0b2NvbXBsZXRlJztcbmltcG9ydCB7IE1hdENoaXBJbnB1dEV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHsgQmFzZUVudGl0eVR5cGUgfSBmcm9tICcuLi8uLi8uLi8uLi9jbGFzc2VzL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBMb2Rhc2hVdGlsaXRpZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9jYXBzdWxhdGlvbi9sb2Rhc2gudXRpbGl0aWVzJztcbmltcG9ydCB7IERlY29yYXRvclR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGVjb3JhdG9ycy9iYXNlL2RlY29yYXRvci10eXBlcy5lbnVtJztcbmltcG9ydCB7IE5neE1hdEVudGl0eUJhc2VJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UtaW5wdXQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2FycmF5LXN0cmluZy1hdXRvY29tcGxldGUtY2hpcHMnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hcnJheS1zdHJpbmctYXV0b2NvbXBsZXRlLWNoaXBzLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9hcnJheS1zdHJpbmctYXV0b2NvbXBsZXRlLWNoaXBzLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlTdHJpbmdBdXRvY29tcGxldGVDaGlwc0NvbXBvbmVudDxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+XG4gICAgZXh0ZW5kcyBOZ3hNYXRFbnRpdHlCYXNlSW5wdXRDb21wb25lbnQ8RW50aXR5VHlwZSwgRGVjb3JhdG9yVHlwZXMuQVJSQVlfU1RSSU5HX0FVVE9DT01QTEVURV9DSElQUywgc3RyaW5nW10+IGltcGxlbWVudHMgT25Jbml0IHtcblxuICAgIGZpbHRlcmVkQXV0b2NvbXBsZXRlU3RyaW5ncyE6IHN0cmluZ1tdO1xuXG4gICAgY2hpcHNJbnB1dDogc3RyaW5nID0gJyc7XG5cbiAgICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgdGhpcy5maWx0ZXJlZEF1dG9jb21wbGV0ZVN0cmluZ3MgPSBMb2Rhc2hVdGlsaXRpZXMuY2xvbmVEZWVwKHRoaXMubWV0YWRhdGEuYXV0b2NvbXBsZXRlVmFsdWVzKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGVzIGFkZGluZyBzdHJpbmdzIHRvIHRoZSBjaGlwc0FycmF5LlxuICAgICAqIENoZWNrcyB2YWxpZGF0aW9uIGFuZCBhbHNvIGNyZWF0ZXMgYSBuZXcgYXJyYXkgaWYgaXQgaXMgdW5kZWZpbmVkLlxuICAgICAqIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2UgdHdvIHRoaW5ncyBhcmUgdmFsaWRhdGVkOiBUaGUgYXJyYXkgaXRzZWxmXG4gICAgICogYW5kIHRoZSBjb250ZW50cyBvZiB0aGUgYXJyYXkuIEFuZCB3ZSBuZWVkIGEgd2F5IHRvIGRpc3BsYXkgYW5cbiAgICAgKiBtYXQtZXJyb3IuIEFzIHRoZSBvbmx5IHZhbGlkYXRpb24gZm9yIHRoZSBhcnJheSBpcyB3aGV0aGVyIG9yIG5vdFxuICAgICAqIGl0IGNvbnRhaW5zIHZhbHVlcywgd2UgY2FuIHNldCBpdCB0byB1bmRlZmluZWQgd2hlbiB0aGUgbGFzdCBlbGVtZW50IGlzIHJlbW92ZWRcbiAgICAgKiAocmVtb3ZlU3RyaW5nQ2hpcEFycmF5VmFsdWUpLiBUaGF0IHdheSB3ZSBjYW4gdXNlIHRoZSBcInJlcXVpcmVkXCIgdmFsaWRhdG9yLlxuICAgICAqXG4gICAgICogQHBhcmFtIGV2ZW50IC0gVGhlIGV2ZW50IHRoYXQgZmlyZXMgd2hlbiBhIG5ldyBjaGlwIGlzIGNvbXBsZXRlZC5cbiAgICAgKi9cbiAgICBhZGRTdHJpbmdDaGlwQXJyYXlWYWx1ZShldmVudDogTWF0Q2hpcElucHV0RXZlbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSAoZXZlbnQudmFsdWUgfHwgJycpLnRyaW0oKTtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5tZXRhZGF0YS5taW5MZW5ndGggJiYgdmFsdWUubGVuZ3RoIDwgdGhpcy5tZXRhZGF0YS5taW5MZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5tZXRhZGF0YS5tYXhMZW5ndGggJiYgdmFsdWUubGVuZ3RoID4gdGhpcy5tZXRhZGF0YS5tYXhMZW5ndGgpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5tZXRhZGF0YS5yZWdleCAgJiYgIXZhbHVlLm1hdGNoKHRoaXMubWV0YWRhdGEucmVnZXgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5wcm9wZXJ0eVZhbHVlID0gdGhpcy5wcm9wZXJ0eVZhbHVlID8/IFtdO1xuICAgICAgICAgICAgdGhpcy5wcm9wZXJ0eVZhbHVlLnB1c2godmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIGV2ZW50LmNoaXBJbnB1dD8uY2xlYXIoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZW1vdmVzIHRoZSBnaXZlbiB2YWx1ZSBmcm9tIHRoZSBhcnJheS5cbiAgICAgKiBTZXRzIHRoZSBhcnJheSB0byB1bmRlZmluZWQgaWYgaXQgaXMgbm93IGVtcHR5LlxuICAgICAqIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2UgdHdvIHRoaW5ncyBhcmUgdmFsaWRhdGVkOiBUaGUgYXJyYXkgaXRzZWxmXG4gICAgICogYW5kIHRoZSBjb250ZW50cyBvZiB0aGUgYXJyYXkuIEFuZCB3ZSBuZWVkIGEgd2F5IHRvIGRpc3BsYXkgYW5cbiAgICAgKiBtYXQtZXJyb3IuIEFzIHRoZSBvbmx5IHZhbGlkYXRpb24gZm9yIHRoZSBhcnJheSBpcyB3aGV0aGVyIG9yIG5vdFxuICAgICAqIGl0IGlzIGVtcHR5LCBzZXR0aW5nIGl0IHRvIHVuZGVmaW5lZCBoZXJlIGVuYWJsZXMgdXMgdG8gdXNlIHRoZSBcInJlcXVpcmVkXCIgdmFsaWRhdG9yLlxuICAgICAqXG4gICAgICogQHBhcmFtIHZhbHVlIC0gVGhlIHN0cmluZyB0byByZW1vdmUgZnJvbSB0aGUgYXJyYXkuXG4gICAgICovXG4gICAgcmVtb3ZlU3RyaW5nQ2hpcEFycmF5VmFsdWUodmFsdWU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICB0aGlzLnByb3BlcnR5VmFsdWU/LnNwbGljZSh0aGlzLnByb3BlcnR5VmFsdWUuaW5kZXhPZih2YWx1ZSksIDEpO1xuICAgICAgICB0aGlzLnByb3BlcnR5VmFsdWUgPSB0aGlzLnByb3BlcnR5VmFsdWU/Lmxlbmd0aCA/IHRoaXMucHJvcGVydHlWYWx1ZSA6IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGVzIGFkZGluZyBhIHN0cmluZyB0byB0aGUgYXJyYXkgd2hlbiBhbiBhdXRvY29tcGxldGUgdmFsdWUgaGFzIGJlZW4gc2VsZWN0ZWQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZXZlbnQgLSBUaGUgYXV0b2NvbXBsZXRlIHNlbGVjdGVkIGV2ZW50LlxuICAgICAqIEBwYXJhbSBjaGlwc0lucHV0IC0gVGhlIGVsZW1lbnQgd2hlcmUgdGhlIHVzZXIgdHlwZWQgdGhlIHZhbHVlLlxuICAgICAqL1xuICAgIHNlbGVjdGVkKGV2ZW50OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50LCBjaGlwc0lucHV0OiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50Lm9wdGlvbi52aWV3VmFsdWUgfHwgJycpLnRyaW0oKTtcbiAgICAgICAgaWYgKHRoaXMubWV0YWRhdGEubWluTGVuZ3RoICYmIHZhbHVlLmxlbmd0aCA8IHRoaXMubWV0YWRhdGEubWluTGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubWV0YWRhdGEubWF4TGVuZ3RoICYmIHZhbHVlLmxlbmd0aCA+IHRoaXMubWV0YWRhdGEubWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubWV0YWRhdGEucmVnZXggICYmICF2YWx1ZS5tYXRjaCh0aGlzLm1ldGFkYXRhLnJlZ2V4KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucHJvcGVydHlWYWx1ZSA9IHRoaXMucHJvcGVydHlWYWx1ZSA/PyBbXTtcbiAgICAgICAgdGhpcy5wcm9wZXJ0eVZhbHVlLnB1c2godmFsdWUpO1xuICAgICAgICBjaGlwc0lucHV0LnZhbHVlID0gJyc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRHluYW1pY2FsbHkgZmlsdGVycyB0aGUgQXV0b2NvbXBsZXRlIG9wdGlvbnMgd2hlbiB0aGUgdXNlciBpbnB1dHMgc29tZXRoaW5nLlxuICAgICAqXG4gICAgICogQHBhcmFtIGlucHV0IC0gVGhlIGlucHV0IG9mIHRoZSB1c2VyLlxuICAgICAqL1xuICAgIGZpbHRlckF1dG9jb21wbGV0ZVN0cmluZ3MoaW5wdXQ6IHVua25vd24pOiB2b2lkIHtcbiAgICAgICAgaWYgKGlucHV0ICE9IG51bGwpIHtcbiAgICAgICAgICAgIGNvbnN0IGZpbHRlclZhbHVlID0gKGlucHV0IGFzIHN0cmluZykudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRBdXRvY29tcGxldGVTdHJpbmdzID0gdGhpcy5tZXRhZGF0YS5hdXRvY29tcGxldGVWYWx1ZXMuZmlsdGVyKHMgPT4gcy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGZpbHRlclZhbHVlKSk7XG4gICAgICAgIH1cbiAgICB9XG59IiwiPG1hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtbGFiZWw+e3ttZXRhZGF0YS5kaXNwbGF5TmFtZX19PC9tYXQtbGFiZWw+XG4gICAgPG1hdC1jaGlwLWxpc3QgI2NoaXBMaXN0XG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImVtaXRDaGFuZ2UoKVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwicHJvcGVydHlWYWx1ZVwiIFtuYW1lXT1cImtleS50b1N0cmluZygpXCIgI21vZGVsPVwibmdNb2RlbFwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJtZXRhZGF0YS5yZXF1aXJlZFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc1JlYWRPbmx5XCJcbiAgICA+XG4gICAgICAgIDxtYXQtY2hpcCAqbmdGb3I9XCJsZXQgdmFsdWUgb2YgcHJvcGVydHlWYWx1ZVwiIChyZW1vdmVkKT1cInJlbW92ZVN0cmluZ0NoaXBBcnJheVZhbHVlKHZhbHVlKVwiPlxuICAgICAgICAgICAge3t2YWx1ZX19XG4gICAgICAgICAgICA8YnV0dG9uIG1hdENoaXBSZW1vdmU+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ7e21ldGFkYXRhLmRlbGV0ZUljb259fVwiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L21hdC1jaGlwPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXRcbiAgICAgICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcExpc3RcIlxuICAgICAgICAgICAgW21hdEF1dG9jb21wbGV0ZV09XCJhdXRvXCJcbiAgICAgICAgICAgIFttYXRDaGlwSW5wdXRBZGRPbkJsdXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICAobWF0Q2hpcElucHV0VG9rZW5FbmQpPVwiYWRkU3RyaW5nQ2hpcEFycmF5VmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICAgICAoa2V5dXApPVwiZmlsdGVyQXV0b2NvbXBsZXRlU3RyaW5ncyhjaGlwc0lucHV0KVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNoaXBzSW5wdXRcIiBbbmFtZV09XCJrZXkudG9TdHJpbmcoKVwiICNjaGlwc01vZGVsPVwibmdNb2RlbFwiXG4gICAgICAgICAgICAjY2hpcHNFbGVtZW50XG4gICAgICAgICAgICBbbWlubGVuZ3RoXT0nbWV0YWRhdGEubWluTGVuZ3RoID8/IG51bGwnXG4gICAgICAgICAgICBbbWF4bGVuZ3RoXT0nbWV0YWRhdGEubWF4TGVuZ3RoID8/IG51bGwnXG4gICAgICAgICAgICBbcGF0dGVybl09XCJtZXRhZGF0YS5yZWdleCA/PyAnW1xcXFxzXFxcXFNdKidcIlxuICAgICAgICA+XG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJjaGlwc01vZGVsLmVycm9yc1wiPnt7Z2V0VmFsaWRhdGlvbkVycm9yTWVzc2FnZShjaGlwc01vZGVsKX19PC9tYXQtZXJyb3I+XG4gICAgPC9tYXQtY2hpcC1saXN0PlxuICAgIDxtYXQtYXV0b2NvbXBsZXRlICNhdXRvPVwibWF0QXV0b2NvbXBsZXRlXCIgKG9wdGlvblNlbGVjdGVkKT1cInNlbGVjdGVkKCRldmVudCwgY2hpcHNFbGVtZW50KVwiPlxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgdmFsdWUgb2YgbWV0YWRhdGEuYXV0b2NvbXBsZXRlVmFsdWVzXCIgW3ZhbHVlXT1cInZhbHVlXCI+XG4gICAgICAgICAge3t2YWx1ZX19XG4gICAgICAgIDwvbWF0LW9wdGlvbj5cbiAgICA8L21hdC1hdXRvY29tcGxldGU+XG4gICAgPG1hdC1lcnJvciAqbmdJZj1cIiFjaGlwc01vZGVsLmVycm9yc1wiPnt7Z2V0VmFsaWRhdGlvbkVycm9yTWVzc2FnZShtb2RlbCl9fTwvbWF0LWVycm9yPlxuPC9tYXQtZm9ybS1maWVsZD4iXX0=
@@ -12,12 +12,6 @@ export class ArrayStringChipsInputComponent extends NgxMatEntityBaseInputCompone
12
12
  super(...arguments);
13
13
  this.chipsInput = '';
14
14
  }
15
- ngOnInit() {
16
- super.ngOnInit();
17
- if (this.entity[this.key]?.length) {
18
- this.stringChipsArrayValues = this.entity[this.key];
19
- }
20
- }
21
15
  /**
22
16
  * Handles adding strings to the chipsArray.
23
17
  * Checks validation and also creates a new array if it is undefined.
@@ -41,13 +35,8 @@ export class ArrayStringChipsInputComponent extends NgxMatEntityBaseInputCompone
41
35
  if (this.metadata.regex && !value.match(this.metadata.regex)) {
42
36
  return;
43
37
  }
44
- if (!this.stringChipsArrayValues) {
45
- if (this.entity[this.key] == null) {
46
- this.entity[this.key] = [];
47
- }
48
- this.stringChipsArrayValues = this.entity[this.key];
49
- }
50
- this.stringChipsArrayValues.push(value);
38
+ this.propertyValue = this.propertyValue ?? [];
39
+ this.propertyValue.push(value);
51
40
  }
52
41
  event.chipInput?.clear();
53
42
  }
@@ -62,11 +51,8 @@ export class ArrayStringChipsInputComponent extends NgxMatEntityBaseInputCompone
62
51
  * @param value - The string to remove from the array.
63
52
  */
64
53
  removeStringChipArrayValue(value) {
65
- this.stringChipsArrayValues?.splice(this.stringChipsArrayValues.indexOf(value), 1);
66
- if (!this.stringChipsArrayValues?.length) {
67
- this.entity[this.key] = undefined;
68
- this.stringChipsArrayValues = this.entity[this.key];
69
- }
54
+ this.propertyValue?.splice(this.propertyValue.indexOf(value), 1);
55
+ this.propertyValue = this.propertyValue?.length ? this.propertyValue : undefined;
70
56
  }
71
57
  /**
72
58
  * Handles adding a string to the array when an autocomplete value has been selected.
@@ -85,20 +71,15 @@ export class ArrayStringChipsInputComponent extends NgxMatEntityBaseInputCompone
85
71
  if (this.metadata.regex && !value.match(this.metadata.regex)) {
86
72
  return;
87
73
  }
88
- if (!this.stringChipsArrayValues) {
89
- if (this.entity[this.key] == null) {
90
- this.entity[this.key] = [];
91
- }
92
- this.stringChipsArrayValues = this.entity[this.key];
93
- }
94
- this.stringChipsArrayValues.push(value);
74
+ this.propertyValue = this.propertyValue ?? [];
75
+ this.propertyValue.push(value);
95
76
  chipsInput.value = '';
96
77
  }
97
78
  }
98
79
  ArrayStringChipsInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ArrayStringChipsInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
99
- ArrayStringChipsInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ArrayStringChipsInputComponent, selector: "array-string-chips-input", usesInheritance: true, ngImport: i0, template: "<mat-form-field>\n <mat-label>{{metadata.displayName}}</mat-label>\n <mat-chip-list #chipList\n (ngModelChange)=\"emitChange()\"\n [(ngModel)]=\"entity[key]\" [name]=\"key.toString()\" #model=\"ngModel\"\n [required]=\"metadata.required\"\n >\n <mat-chip *ngFor=\"let value of stringChipsArrayValues\" (removed)=\"removeStringChipArrayValue(value)\">\n {{value}}\n <button matChipRemove>\n <i class=\"{{metadata.deleteIcon}}\"></i>\n </button>\n </mat-chip>\n <input matInput\n [matChipInputFor]=\"chipList\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"addStringChipArrayValue($event)\"\n [(ngModel)]=\"chipsInput\" [name]=\"key.toString()\" #chipsModel=\"ngModel\"\n [minlength]='metadata.minLength ?? null'\n [maxlength]='metadata.maxLength ?? null'\n [pattern]=\"metadata.regex ?? '[\\\\s\\\\S]*'\"\n >\n <mat-error *ngIf=\"chipsModel.errors\">{{getValidationErrorMessage(chipsModel)}}</mat-error>\n </mat-chip-list>\n <mat-error *ngIf=\"!chipsModel.errors\">{{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.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }], 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: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i2.MatChipRemove, selector: "[matChipRemove]" }, { 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: i2.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { 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.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatError, selector: "mat-error", inputs: ["id"] }] });
80
+ ArrayStringChipsInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: ArrayStringChipsInputComponent, selector: "array-string-chips-input", usesInheritance: true, ngImport: i0, template: "<mat-form-field>\n <mat-label>{{metadata.displayName}}</mat-label>\n <mat-chip-list #chipList\n (ngModelChange)=\"emitChange()\"\n [(ngModel)]=\"propertyValue\" [name]=\"key.toString()\" #model=\"ngModel\"\n [required]=\"metadata.required\"\n [disabled]=\"isReadOnly\"\n >\n <mat-chip *ngFor=\"let value of propertyValue\" (removed)=\"removeStringChipArrayValue(value)\">\n {{value}}\n <button matChipRemove>\n <i class=\"{{metadata.deleteIcon}}\"></i>\n </button>\n </mat-chip>\n <input matInput\n [matChipInputFor]=\"chipList\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"addStringChipArrayValue($event)\"\n [(ngModel)]=\"chipsInput\" [name]=\"key.toString()\" #chipsModel=\"ngModel\"\n [minlength]='metadata.minLength ?? null'\n [maxlength]='metadata.maxLength ?? null'\n [pattern]=\"metadata.regex ?? '[\\\\s\\\\S]*'\"\n >\n <mat-error *ngIf=\"chipsModel.errors\">{{getValidationErrorMessage(chipsModel)}}</mat-error>\n </mat-chip-list>\n <mat-error *ngIf=\"!chipsModel.errors\">{{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.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }], 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: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i2.MatChipRemove, selector: "[matChipRemove]" }, { 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: i2.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { 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.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatError, selector: "mat-error", inputs: ["id"] }] });
100
81
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: ArrayStringChipsInputComponent, decorators: [{
101
82
  type: Component,
102
- args: [{ selector: 'array-string-chips-input', template: "<mat-form-field>\n <mat-label>{{metadata.displayName}}</mat-label>\n <mat-chip-list #chipList\n (ngModelChange)=\"emitChange()\"\n [(ngModel)]=\"entity[key]\" [name]=\"key.toString()\" #model=\"ngModel\"\n [required]=\"metadata.required\"\n >\n <mat-chip *ngFor=\"let value of stringChipsArrayValues\" (removed)=\"removeStringChipArrayValue(value)\">\n {{value}}\n <button matChipRemove>\n <i class=\"{{metadata.deleteIcon}}\"></i>\n </button>\n </mat-chip>\n <input matInput\n [matChipInputFor]=\"chipList\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"addStringChipArrayValue($event)\"\n [(ngModel)]=\"chipsInput\" [name]=\"key.toString()\" #chipsModel=\"ngModel\"\n [minlength]='metadata.minLength ?? null'\n [maxlength]='metadata.maxLength ?? null'\n [pattern]=\"metadata.regex ?? '[\\\\s\\\\S]*'\"\n >\n <mat-error *ngIf=\"chipsModel.errors\">{{getValidationErrorMessage(chipsModel)}}</mat-error>\n </mat-chip-list>\n <mat-error *ngIf=\"!chipsModel.errors\">{{getValidationErrorMessage(model)}}</mat-error>\n</mat-form-field>", styles: ["mat-form-field{width:100%}\n"] }]
83
+ args: [{ selector: 'array-string-chips-input', template: "<mat-form-field>\n <mat-label>{{metadata.displayName}}</mat-label>\n <mat-chip-list #chipList\n (ngModelChange)=\"emitChange()\"\n [(ngModel)]=\"propertyValue\" [name]=\"key.toString()\" #model=\"ngModel\"\n [required]=\"metadata.required\"\n [disabled]=\"isReadOnly\"\n >\n <mat-chip *ngFor=\"let value of propertyValue\" (removed)=\"removeStringChipArrayValue(value)\">\n {{value}}\n <button matChipRemove>\n <i class=\"{{metadata.deleteIcon}}\"></i>\n </button>\n </mat-chip>\n <input matInput\n [matChipInputFor]=\"chipList\"\n [matChipInputAddOnBlur]=\"true\"\n (matChipInputTokenEnd)=\"addStringChipArrayValue($event)\"\n [(ngModel)]=\"chipsInput\" [name]=\"key.toString()\" #chipsModel=\"ngModel\"\n [minlength]='metadata.minLength ?? null'\n [maxlength]='metadata.maxLength ?? null'\n [pattern]=\"metadata.regex ?? '[\\\\s\\\\S]*'\"\n >\n <mat-error *ngIf=\"chipsModel.errors\">{{getValidationErrorMessage(chipsModel)}}</mat-error>\n </mat-chip-list>\n <mat-error *ngIf=\"!chipsModel.errors\">{{getValidationErrorMessage(model)}}</mat-error>\n</mat-form-field>", styles: ["mat-form-field{width:100%}\n"] }]
103
84
  }] });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktc3RyaW5nLWNoaXBzLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvaW5wdXQvYXJyYXkvYXJyYXktc3RyaW5nLWNoaXBzLWlucHV0L2FycmF5LXN0cmluZy1jaGlwcy1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2lucHV0L2FycmF5L2FycmF5LXN0cmluZy1jaGlwcy1pbnB1dC9hcnJheS1zdHJpbmctY2hpcHMtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0NBQXdDO0FBQ3hDLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLbEQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7QUFRNUUsTUFBTSxPQUFPLDhCQUNULFNBQVEsOEJBQTZFO0lBUHpGOztRQVdJLGVBQVUsR0FBVyxFQUFFLENBQUM7S0F1RjNCO0lBckZZLFFBQVE7UUFDYixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDakIsSUFBSyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTBCLEVBQUUsTUFBTSxFQUFFO1lBQ3pELElBQUksQ0FBQyxzQkFBc0IsR0FBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWMsQ0FBQztTQUNyRTtJQUNMLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsdUJBQXVCLENBQUMsS0FBd0I7UUFDNUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pDLElBQUks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QztRQUN4QyxVQUFVLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUMxQixDQUFDOzs0SEEzRlEsOEJBQThCO2dIQUE5Qiw4QkFBOEIsdUZDZDNDLDZ0Q0F5QmlCOzRGRFhKLDhCQUE4QjtrQkFOMUMsU0FBUzsrQkFFSSwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBqc2RvYy9yZXF1aXJlLWpzZG9jICovXG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGVjb3JhdG9yVHlwZXMgfSBmcm9tICcuLi8uLi8uLi8uLi9kZWNvcmF0b3JzL2Jhc2UvZGVjb3JhdG9yLXR5cGVzLmVudW0nO1xuaW1wb3J0IHsgTWF0QXV0b2NvbXBsZXRlU2VsZWN0ZWRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2F1dG9jb21wbGV0ZSc7XG5pbXBvcnQgeyBNYXRDaGlwSW5wdXRFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcbmltcG9ydCB7IEJhc2VFbnRpdHlUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY2xhc3Nlcy9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgTmd4TWF0RW50aXR5QmFzZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS1pbnB1dC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnYXJyYXktc3RyaW5nLWNoaXBzLWlucHV0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vYXJyYXktc3RyaW5nLWNoaXBzLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9hcnJheS1zdHJpbmctY2hpcHMtaW5wdXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBBcnJheVN0cmluZ0NoaXBzSW5wdXRDb21wb25lbnQ8RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PlxuICAgIGV4dGVuZHMgTmd4TWF0RW50aXR5QmFzZUlucHV0Q29tcG9uZW50PEVudGl0eVR5cGUsIERlY29yYXRvclR5cGVzLkFSUkFZX1NUUklOR19DSElQUz4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgc3RyaW5nQ2hpcHNBcnJheVZhbHVlcz86IHN0cmluZ1tdO1xuXG4gICAgY2hpcHNJbnB1dDogc3RyaW5nID0gJyc7XG5cbiAgICBvdmVycmlkZSBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAgICAgaWYgKCh0aGlzLmVudGl0eVt0aGlzLmtleV0gYXMgc3RyaW5nW10gfCB1bmRlZmluZWQpPy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuc3RyaW5nQ2hpcHNBcnJheVZhbHVlcyA9ICh0aGlzLmVudGl0eVt0aGlzLmtleV0gYXMgc3RyaW5nW10pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlcyBhZGRpbmcgc3RyaW5ncyB0byB0aGUgY2hpcHNBcnJheS5cbiAgICAgKiBDaGVja3MgdmFsaWRhdGlvbiBhbmQgYWxzbyBjcmVhdGVzIGEgbmV3IGFycmF5IGlmIGl0IGlzIHVuZGVmaW5lZC5cbiAgICAgKiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHR3byB0aGluZ3MgYXJlIHZhbGlkYXRlZDogVGhlIGFycmF5IGl0c2VsZlxuICAgICAqIGFuZCB0aGUgY29udGVudHMgb2YgdGhlIGFycmF5LiBBbmQgd2UgbmVlZCBhIHdheSB0byBkaXNwbGF5IGFuXG4gICAgICogbWF0LWVycm9yLiBBcyB0aGUgb25seSB2YWxpZGF0aW9uIGZvciB0aGUgYXJyYXkgaXMgd2hldGhlciBvciBub3RcbiAgICAgKiBpdCBjb250YWlucyB2YWx1ZXMsIHdlIGNhbiBzZXQgaXQgdG8gdW5kZWZpbmVkIHdoZW4gdGhlIGxhc3QgZWxlbWVudCBpcyByZW1vdmVkXG4gICAgICogKHJlbW92ZVN0cmluZ0NoaXBBcnJheVZhbHVlKS4gVGhhdCB3YXkgd2UgY2FuIHVzZSB0aGUgXCJyZXF1aXJlZFwiIHZhbGlkYXRvci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBldmVudCAtIFRoZSBldmVudCB0aGF0IGZpcmVzIHdoZW4gYSBuZXcgY2hpcCBpcyBjb21wbGV0ZWQuXG4gICAgICovXG4gICAgYWRkU3RyaW5nQ2hpcEFycmF5VmFsdWUoZXZlbnQ6IE1hdENoaXBJbnB1dEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50LnZhbHVlIHx8ICcnKS50cmltKCk7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMubWV0YWRhdGEubWluTGVuZ3RoICYmIHZhbHVlLmxlbmd0aCA8IHRoaXMubWV0YWRhdGEubWluTGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMubWV0YWRhdGEubWF4TGVuZ3RoICYmIHZhbHVlLmxlbmd0aCA+IHRoaXMubWV0YWRhdGEubWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMubWV0YWRhdGEucmVnZXggICYmICF2YWx1ZS5tYXRjaCh0aGlzLm1ldGFkYXRhLnJlZ2V4KSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghdGhpcy5zdHJpbmdDaGlwc0FycmF5VmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuZW50aXR5W3RoaXMua2V5XSA9PSBudWxsKSB7XG4gICAgICAgICAgICAgICAgICAgICh0aGlzLmVudGl0eVt0aGlzLmtleV0gYXMgc3RyaW5nW10pID0gW107XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuc3RyaW5nQ2hpcHNBcnJheVZhbHVlcyA9IHRoaXMuZW50aXR5W3RoaXMua2V5XSBhcyBzdHJpbmdbXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3RyaW5nQ2hpcHNBcnJheVZhbHVlcy5wdXNoKHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBldmVudC5jaGlwSW5wdXQ/LmNsZWFyKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyB0aGUgZ2l2ZW4gdmFsdWUgZnJvbSB0aGUgYXJyYXkuXG4gICAgICogU2V0cyB0aGUgYXJyYXkgdG8gdW5kZWZpbmVkIGlmIGl0IGlzIG5vdyBlbXB0eS5cbiAgICAgKiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIHR3byB0aGluZ3MgYXJlIHZhbGlkYXRlZDogVGhlIGFycmF5IGl0c2VsZlxuICAgICAqIGFuZCB0aGUgY29udGVudHMgb2YgdGhlIGFycmF5LiBBbmQgd2UgbmVlZCBhIHdheSB0byBkaXNwbGF5IGFuXG4gICAgICogbWF0LWVycm9yLiBBcyB0aGUgb25seSB2YWxpZGF0aW9uIGZvciB0aGUgYXJyYXkgaXMgd2hldGhlciBvciBub3RcbiAgICAgKiBpdCBpcyBlbXB0eSwgc2V0dGluZyBpdCB0byB1bmRlZmluZWQgaGVyZSBlbmFibGVzIHVzIHRvIHVzZSB0aGUgXCJyZXF1aXJlZFwiIHZhbGlkYXRvci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB2YWx1ZSAtIFRoZSBzdHJpbmcgdG8gcmVtb3ZlIGZyb20gdGhlIGFycmF5LlxuICAgICAqL1xuICAgIHJlbW92ZVN0cmluZ0NoaXBBcnJheVZhbHVlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdHJpbmdDaGlwc0FycmF5VmFsdWVzPy5zcGxpY2UodGhpcy5zdHJpbmdDaGlwc0FycmF5VmFsdWVzLmluZGV4T2YodmFsdWUpLCAxKTtcbiAgICAgICAgaWYgKCF0aGlzLnN0cmluZ0NoaXBzQXJyYXlWYWx1ZXM/Lmxlbmd0aCkge1xuICAgICAgICAgICAgKHRoaXMuZW50aXR5W3RoaXMua2V5XSBhcyB1bmtub3duKSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIHRoaXMuc3RyaW5nQ2hpcHNBcnJheVZhbHVlcyA9IHRoaXMuZW50aXR5W3RoaXMua2V5XSBhcyB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBIYW5kbGVzIGFkZGluZyBhIHN0cmluZyB0byB0aGUgYXJyYXkgd2hlbiBhbiBhdXRvY29tcGxldGUgdmFsdWUgaGFzIGJlZW4gc2VsZWN0ZWQuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZXZlbnQgLSBUaGUgYXV0b2NvbXBsZXRlIHNlbGVjdGVkIGV2ZW50LlxuICAgICAqIEBwYXJhbSBjaGlwc0lucHV0IC0gVGhlIGVsZW1lbnQgd2hlcmUgdGhlIHVzZXIgdHlwZWQgdGhlIHZhbHVlLlxuICAgICAqL1xuICAgIHNlbGVjdGVkKGV2ZW50OiBNYXRBdXRvY29tcGxldGVTZWxlY3RlZEV2ZW50LCBjaGlwc0lucHV0OiBIVE1MSW5wdXRFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50Lm9wdGlvbi52aWV3VmFsdWUgfHwgJycpLnRyaW0oKTtcbiAgICAgICAgaWYgKHRoaXMubWV0YWRhdGEubWluTGVuZ3RoICYmIHZhbHVlLmxlbmd0aCA8IHRoaXMubWV0YWRhdGEubWluTGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubWV0YWRhdGEubWF4TGVuZ3RoICYmIHZhbHVlLmxlbmd0aCA+IHRoaXMubWV0YWRhdGEubWF4TGVuZ3RoKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubWV0YWRhdGEucmVnZXggICYmICF2YWx1ZS5tYXRjaCh0aGlzLm1ldGFkYXRhLnJlZ2V4KSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5zdHJpbmdDaGlwc0FycmF5VmFsdWVzKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5lbnRpdHlbdGhpcy5rZXldID09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAodGhpcy5lbnRpdHlbdGhpcy5rZXldIGFzIHN0cmluZ1tdKSA9IFtdO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zdHJpbmdDaGlwc0FycmF5VmFsdWVzID0gdGhpcy5lbnRpdHlbdGhpcy5rZXldIGFzIHN0cmluZ1tdO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc3RyaW5nQ2hpcHNBcnJheVZhbHVlcy5wdXNoKHZhbHVlKTtcbiAgICAgICAgY2hpcHNJbnB1dC52YWx1ZSA9ICcnO1xuICAgIH1cbn0iLCI8bWF0LWZvcm0tZmllbGQ+XG4gICAgPG1hdC1sYWJlbD57e21ldGFkYXRhLmRpc3BsYXlOYW1lfX08L21hdC1sYWJlbD5cbiAgICA8bWF0LWNoaXAtbGlzdCAjY2hpcExpc3RcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwiZW1pdENoYW5nZSgpXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJlbnRpdHlba2V5XVwiIFtuYW1lXT1cImtleS50b1N0cmluZygpXCIgI21vZGVsPVwibmdNb2RlbFwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJtZXRhZGF0YS5yZXF1aXJlZFwiXG4gICAgPlxuICAgICAgICA8bWF0LWNoaXAgKm5nRm9yPVwibGV0IHZhbHVlIG9mIHN0cmluZ0NoaXBzQXJyYXlWYWx1ZXNcIiAocmVtb3ZlZCk9XCJyZW1vdmVTdHJpbmdDaGlwQXJyYXlWYWx1ZSh2YWx1ZSlcIj5cbiAgICAgICAgICAgIHt7dmFsdWV9fVxuICAgICAgICAgICAgPGJ1dHRvbiBtYXRDaGlwUmVtb3ZlPlxuICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwie3ttZXRhZGF0YS5kZWxldGVJY29ufX1cIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9tYXQtY2hpcD5cbiAgICAgICAgPGlucHV0IG1hdElucHV0XG4gICAgICAgICAgICBbbWF0Q2hpcElucHV0Rm9yXT1cImNoaXBMaXN0XCJcbiAgICAgICAgICAgIFttYXRDaGlwSW5wdXRBZGRPbkJsdXJdPVwidHJ1ZVwiXG4gICAgICAgICAgICAobWF0Q2hpcElucHV0VG9rZW5FbmQpPVwiYWRkU3RyaW5nQ2hpcEFycmF5VmFsdWUoJGV2ZW50KVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNoaXBzSW5wdXRcIiBbbmFtZV09XCJrZXkudG9TdHJpbmcoKVwiICNjaGlwc01vZGVsPVwibmdNb2RlbFwiXG4gICAgICAgICAgICBbbWlubGVuZ3RoXT0nbWV0YWRhdGEubWluTGVuZ3RoID8/IG51bGwnXG4gICAgICAgICAgICBbbWF4bGVuZ3RoXT0nbWV0YWRhdGEubWF4TGVuZ3RoID8/IG51bGwnXG4gICAgICAgICAgICBbcGF0dGVybl09XCJtZXRhZGF0YS5yZWdleCA/PyAnW1xcXFxzXFxcXFNdKidcIlxuICAgICAgICA+XG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJjaGlwc01vZGVsLmVycm9yc1wiPnt7Z2V0VmFsaWRhdGlvbkVycm9yTWVzc2FnZShjaGlwc01vZGVsKX19PC9tYXQtZXJyb3I+XG4gICAgPC9tYXQtY2hpcC1saXN0PlxuICAgIDxtYXQtZXJyb3IgKm5nSWY9XCIhY2hpcHNNb2RlbC5lcnJvcnNcIj57e2dldFZhbGlkYXRpb25FcnJvck1lc3NhZ2UobW9kZWwpfX08L21hdC1lcnJvcj5cbjwvbWF0LWZvcm0tZmllbGQ+Il19
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktc3RyaW5nLWNoaXBzLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvaW5wdXQvYXJyYXkvYXJyYXktc3RyaW5nLWNoaXBzLWlucHV0L2FycmF5LXN0cmluZy1jaGlwcy1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2lucHV0L2FycmF5L2FycmF5LXN0cmluZy1jaGlwcy1pbnB1dC9hcnJheS1zdHJpbmctY2hpcHMtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0NBQXdDO0FBQ3hDLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFLbEQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7Ozs7QUFRNUUsTUFBTSxPQUFPLDhCQUNULFNBQVEsOEJBQXVGO0lBUG5HOztRQVNJLGVBQVUsR0FBVyxFQUFFLENBQUM7S0FtRTNCO0lBakVHOzs7Ozs7Ozs7O09BVUc7SUFDSCx1QkFBdUIsQ0FBQyxLQUF3QjtRQUM1QyxNQUFNLEtBQUssR0FBRyxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekMsSUFBSSxLQUFLLEVBQUU7WUFDUCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUU7Z0JBQ25FLE9BQU87YUFDVjtZQUNELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRTtnQkFDbkUsT0FBTzthQUNWO1lBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssSUFBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDM0QsT0FBTzthQUNWO1lBQ0QsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNsQztRQUNELEtBQUssQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILDBCQUEwQixDQUFDLEtBQWE7UUFDcEMsSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDakUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQ3JGLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILFFBQVEsQ0FBQyxLQUFtQyxFQUFFLFVBQTRCO1FBQ3RFLE1BQU0sS0FBSyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDcEQsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFO1lBQ25FLE9BQU87U0FDVjtRQUNELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRTtZQUNuRSxPQUFPO1NBQ1Y7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFLLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzNELE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0IsVUFBVSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDMUIsQ0FBQzs7NEhBckVRLDhCQUE4QjtnSEFBOUIsOEJBQThCLHVGQ2QzQyx5dkNBMEJpQjs0RkRaSiw4QkFBOEI7a0JBTjFDLFNBQVM7K0JBRUksMEJBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUganNkb2MvcmVxdWlyZS1qc2RvYyAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlY29yYXRvclR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGVjb3JhdG9ycy9iYXNlL2RlY29yYXRvci10eXBlcy5lbnVtJztcbmltcG9ydCB7IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9hdXRvY29tcGxldGUnO1xuaW1wb3J0IHsgTWF0Q2hpcElucHV0RXZlbnQgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jaGlwcyc7XG5pbXBvcnQgeyBCYXNlRW50aXR5VHlwZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NsYXNzZXMvZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IE5neE1hdEVudGl0eUJhc2VJbnB1dENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2Jhc2UtaW5wdXQuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgICBzZWxlY3RvcjogJ2FycmF5LXN0cmluZy1jaGlwcy1pbnB1dCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FycmF5LXN0cmluZy1jaGlwcy1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vYXJyYXktc3RyaW5nLWNoaXBzLWlucHV0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQXJyYXlTdHJpbmdDaGlwc0lucHV0Q29tcG9uZW50PEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj5cbiAgICBleHRlbmRzIE5neE1hdEVudGl0eUJhc2VJbnB1dENvbXBvbmVudDxFbnRpdHlUeXBlLCBEZWNvcmF0b3JUeXBlcy5BUlJBWV9TVFJJTkdfQ0hJUFMsIHN0cmluZ1tdPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBjaGlwc0lucHV0OiBzdHJpbmcgPSAnJztcblxuICAgIC8qKlxuICAgICAqIEhhbmRsZXMgYWRkaW5nIHN0cmluZ3MgdG8gdGhlIGNoaXBzQXJyYXkuXG4gICAgICogQ2hlY2tzIHZhbGlkYXRpb24gYW5kIGFsc28gY3JlYXRlcyBhIG5ldyBhcnJheSBpZiBpdCBpcyB1bmRlZmluZWQuXG4gICAgICogVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSB0d28gdGhpbmdzIGFyZSB2YWxpZGF0ZWQ6IFRoZSBhcnJheSBpdHNlbGZcbiAgICAgKiBhbmQgdGhlIGNvbnRlbnRzIG9mIHRoZSBhcnJheS4gQW5kIHdlIG5lZWQgYSB3YXkgdG8gZGlzcGxheSBhblxuICAgICAqIG1hdC1lcnJvci4gQXMgdGhlIG9ubHkgdmFsaWRhdGlvbiBmb3IgdGhlIGFycmF5IGlzIHdoZXRoZXIgb3Igbm90XG4gICAgICogaXQgY29udGFpbnMgdmFsdWVzLCB3ZSBjYW4gc2V0IGl0IHRvIHVuZGVmaW5lZCB3aGVuIHRoZSBsYXN0IGVsZW1lbnQgaXMgcmVtb3ZlZFxuICAgICAqIChyZW1vdmVTdHJpbmdDaGlwQXJyYXlWYWx1ZSkuIFRoYXQgd2F5IHdlIGNhbiB1c2UgdGhlIFwicmVxdWlyZWRcIiB2YWxpZGF0b3IuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZXZlbnQgLSBUaGUgZXZlbnQgdGhhdCBmaXJlcyB3aGVuIGEgbmV3IGNoaXAgaXMgY29tcGxldGVkLlxuICAgICAqL1xuICAgIGFkZFN0cmluZ0NoaXBBcnJheVZhbHVlKGV2ZW50OiBNYXRDaGlwSW5wdXRFdmVudCk6IHZvaWQge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IChldmVudC52YWx1ZSB8fCAnJykudHJpbSgpO1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1ldGFkYXRhLm1pbkxlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPCB0aGlzLm1ldGFkYXRhLm1pbkxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLm1ldGFkYXRhLm1heExlbmd0aCAmJiB2YWx1ZS5sZW5ndGggPiB0aGlzLm1ldGFkYXRhLm1heExlbmd0aCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLm1ldGFkYXRhLnJlZ2V4ICAmJiAhdmFsdWUubWF0Y2godGhpcy5tZXRhZGF0YS5yZWdleCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnByb3BlcnR5VmFsdWUgPSB0aGlzLnByb3BlcnR5VmFsdWUgPz8gW107XG4gICAgICAgICAgICB0aGlzLnByb3BlcnR5VmFsdWUucHVzaCh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZXZlbnQuY2hpcElucHV0Py5jbGVhcigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgdGhlIGdpdmVuIHZhbHVlIGZyb20gdGhlIGFycmF5LlxuICAgICAqIFNldHMgdGhlIGFycmF5IHRvIHVuZGVmaW5lZCBpZiBpdCBpcyBub3cgZW1wdHkuXG4gICAgICogVGhpcyBpcyBuZWVkZWQgYmVjYXVzZSB0d28gdGhpbmdzIGFyZSB2YWxpZGF0ZWQ6IFRoZSBhcnJheSBpdHNlbGZcbiAgICAgKiBhbmQgdGhlIGNvbnRlbnRzIG9mIHRoZSBhcnJheS4gQW5kIHdlIG5lZWQgYSB3YXkgdG8gZGlzcGxheSBhblxuICAgICAqIG1hdC1lcnJvci4gQXMgdGhlIG9ubHkgdmFsaWRhdGlvbiBmb3IgdGhlIGFycmF5IGlzIHdoZXRoZXIgb3Igbm90XG4gICAgICogaXQgaXMgZW1wdHksIHNldHRpbmcgaXQgdG8gdW5kZWZpbmVkIGhlcmUgZW5hYmxlcyB1cyB0byB1c2UgdGhlIFwicmVxdWlyZWRcIiB2YWxpZGF0b3IuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gdmFsdWUgLSBUaGUgc3RyaW5nIHRvIHJlbW92ZSBmcm9tIHRoZSBhcnJheS5cbiAgICAgKi9cbiAgICByZW1vdmVTdHJpbmdDaGlwQXJyYXlWYWx1ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMucHJvcGVydHlWYWx1ZT8uc3BsaWNlKHRoaXMucHJvcGVydHlWYWx1ZS5pbmRleE9mKHZhbHVlKSwgMSk7XG4gICAgICAgIHRoaXMucHJvcGVydHlWYWx1ZSA9IHRoaXMucHJvcGVydHlWYWx1ZT8ubGVuZ3RoID8gdGhpcy5wcm9wZXJ0eVZhbHVlIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZXMgYWRkaW5nIGEgc3RyaW5nIHRvIHRoZSBhcnJheSB3aGVuIGFuIGF1dG9jb21wbGV0ZSB2YWx1ZSBoYXMgYmVlbiBzZWxlY3RlZC5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBldmVudCAtIFRoZSBhdXRvY29tcGxldGUgc2VsZWN0ZWQgZXZlbnQuXG4gICAgICogQHBhcmFtIGNoaXBzSW5wdXQgLSBUaGUgZWxlbWVudCB3aGVyZSB0aGUgdXNlciB0eXBlZCB0aGUgdmFsdWUuXG4gICAgICovXG4gICAgc2VsZWN0ZWQoZXZlbnQ6IE1hdEF1dG9jb21wbGV0ZVNlbGVjdGVkRXZlbnQsIGNoaXBzSW5wdXQ6IEhUTUxJbnB1dEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSAoZXZlbnQub3B0aW9uLnZpZXdWYWx1ZSB8fCAnJykudHJpbSgpO1xuICAgICAgICBpZiAodGhpcy5tZXRhZGF0YS5taW5MZW5ndGggJiYgdmFsdWUubGVuZ3RoIDwgdGhpcy5tZXRhZGF0YS5taW5MZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5tZXRhZGF0YS5tYXhMZW5ndGggJiYgdmFsdWUubGVuZ3RoID4gdGhpcy5tZXRhZGF0YS5tYXhMZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5tZXRhZGF0YS5yZWdleCAgJiYgIXZhbHVlLm1hdGNoKHRoaXMubWV0YWRhdGEucmVnZXgpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wcm9wZXJ0eVZhbHVlID0gdGhpcy5wcm9wZXJ0eVZhbHVlID8/IFtdO1xuICAgICAgICB0aGlzLnByb3BlcnR5VmFsdWUucHVzaCh2YWx1ZSk7XG4gICAgICAgIGNoaXBzSW5wdXQudmFsdWUgPSAnJztcbiAgICB9XG59IiwiPG1hdC1mb3JtLWZpZWxkPlxuICAgIDxtYXQtbGFiZWw+e3ttZXRhZGF0YS5kaXNwbGF5TmFtZX19PC9tYXQtbGFiZWw+XG4gICAgPG1hdC1jaGlwLWxpc3QgI2NoaXBMaXN0XG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImVtaXRDaGFuZ2UoKVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwicHJvcGVydHlWYWx1ZVwiIFtuYW1lXT1cImtleS50b1N0cmluZygpXCIgI21vZGVsPVwibmdNb2RlbFwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJtZXRhZGF0YS5yZXF1aXJlZFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc1JlYWRPbmx5XCJcbiAgICA+XG4gICAgICAgIDxtYXQtY2hpcCAqbmdGb3I9XCJsZXQgdmFsdWUgb2YgcHJvcGVydHlWYWx1ZVwiIChyZW1vdmVkKT1cInJlbW92ZVN0cmluZ0NoaXBBcnJheVZhbHVlKHZhbHVlKVwiPlxuICAgICAgICAgICAge3t2YWx1ZX19XG4gICAgICAgICAgICA8YnV0dG9uIG1hdENoaXBSZW1vdmU+XG4gICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJ7e21ldGFkYXRhLmRlbGV0ZUljb259fVwiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L21hdC1jaGlwPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXRcbiAgICAgICAgICAgIFttYXRDaGlwSW5wdXRGb3JdPVwiY2hpcExpc3RcIlxuICAgICAgICAgICAgW21hdENoaXBJbnB1dEFkZE9uQmx1cl09XCJ0cnVlXCJcbiAgICAgICAgICAgIChtYXRDaGlwSW5wdXRUb2tlbkVuZCk9XCJhZGRTdHJpbmdDaGlwQXJyYXlWYWx1ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY2hpcHNJbnB1dFwiIFtuYW1lXT1cImtleS50b1N0cmluZygpXCIgI2NoaXBzTW9kZWw9XCJuZ01vZGVsXCJcbiAgICAgICAgICAgIFttaW5sZW5ndGhdPSdtZXRhZGF0YS5taW5MZW5ndGggPz8gbnVsbCdcbiAgICAgICAgICAgIFttYXhsZW5ndGhdPSdtZXRhZGF0YS5tYXhMZW5ndGggPz8gbnVsbCdcbiAgICAgICAgICAgIFtwYXR0ZXJuXT1cIm1ldGFkYXRhLnJlZ2V4ID8/ICdbXFxcXHNcXFxcU10qJ1wiXG4gICAgICAgID5cbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImNoaXBzTW9kZWwuZXJyb3JzXCI+e3tnZXRWYWxpZGF0aW9uRXJyb3JNZXNzYWdlKGNoaXBzTW9kZWwpfX08L21hdC1lcnJvcj5cbiAgICA8L21hdC1jaGlwLWxpc3Q+XG4gICAgPG1hdC1lcnJvciAqbmdJZj1cIiFjaGlwc01vZGVsLmVycm9yc1wiPnt7Z2V0VmFsaWRhdGlvbkVycm9yTWVzc2FnZShtb2RlbCl9fTwvbWF0LWVycm9yPlxuPC9tYXQtZm9ybS1maWVsZD4iXX0=
@@ -10,7 +10,7 @@ import { Component } from '@angular/core';
10
10
  import * as i0 from "@angular/core";
11
11
  import * as i1 from "@angular/material/dialog";
12
12
  /**
13
- * The base data needed for all arrays that are displayed as a table.
13
+ * The base component needed for all arrays that are displayed as a table.
14
14
  */
15
15
  export class ArrayTableComponent extends NgxMatEntityBaseInputComponent {
16
16
  constructor(matDialog) {
@@ -22,17 +22,14 @@ export class ArrayTableComponent extends NgxMatEntityBaseInputComponent {
22
22
  }
23
23
  ngOnInit() {
24
24
  super.ngOnInit();
25
- if (this.entity[this.key] == null) {
26
- this.entity[this.key] = [];
27
- }
28
- this.arrayValues = this.entity[this.key];
25
+ this.propertyValue = this.propertyValue ?? [];
29
26
  const givenDisplayColumns = this.metadata.displayColumns.map((v) => v.displayName);
30
27
  if (givenDisplayColumns.find(s => s === 'select')) {
31
28
  throw new Error(`The name "select" for a display column is reserved.
32
29
  Please choose a different name.`);
33
30
  }
34
- this.displayedColumns = ['select'].concat(givenDisplayColumns);
35
- this.dataSource.data = this.arrayValues;
31
+ this.displayedColumns = this.isReadOnly ? givenDisplayColumns : ['select'].concat(givenDisplayColumns);
32
+ this.dataSource.data = this.propertyValue;
36
33
  }
37
34
  /**
38
35
  * Toggles all array-items in the table.
@@ -63,7 +60,7 @@ export class ArrayTableComponent extends NgxMatEntityBaseInputComponent {
63
60
  add() {
64
61
  if (this.input != null) {
65
62
  if (!this.metadata.allowDuplicates
66
- && this.arrayValues.find(async (v) => await EntityUtilities.isEqual(this.input, v, this.metadata, this.metadata.itemType)) != null) {
63
+ && this.propertyValue?.find(async (v) => await EntityUtilities.isEqual(this.input, v, this.metadata, this.metadata.itemType)) != null) {
67
64
  this.matDialog.open(NgxMatEntityConfirmDialogComponent, {
68
65
  data: this.metadata.duplicatesErrorDialog,
69
66
  autoFocus: false,
@@ -71,8 +68,8 @@ export class ArrayTableComponent extends NgxMatEntityBaseInputComponent {
71
68
  });
72
69
  return;
73
70
  }
74
- this.arrayValues.push(LodashUtilities.cloneDeep(this.input));
75
- this.dataSource.data = this.arrayValues;
71
+ this.propertyValue?.push(LodashUtilities.cloneDeep(this.input));
72
+ this.dataSource.data = this.propertyValue ?? [];
76
73
  this.resetInput();
77
74
  this.emitChange();
78
75
  }
@@ -88,9 +85,9 @@ export class ArrayTableComponent extends NgxMatEntityBaseInputComponent {
88
85
  */
89
86
  remove() {
90
87
  this.selection.selected.forEach(s => {
91
- this.arrayValues.splice(this.arrayValues.indexOf(s), 1);
88
+ this.propertyValue?.splice(this.propertyValue.indexOf(s), 1);
92
89
  });
93
- this.dataSource.data = this.arrayValues;
90
+ this.dataSource.data = this.propertyValue ?? [];
94
91
  this.selection.clear();
95
92
  this.emitChange();
96
93
  }
@@ -104,4 +101,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
104
101
  template: ''
105
102
  }]
106
103
  }], ctorParameters: function () { return [{ type: i1.MatDialog }]; } });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktdGFibGUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2lucHV0L2FycmF5L2FycmF5LXRhYmxlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdDQUF3QztBQUN4QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFbkcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFekUsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7O0FBS2xEOztHQUVHO0FBS0gsTUFBTSxPQUFnQixtQkFDbEIsU0FBUSw4QkFBcUQ7SUFRN0QsWUFBNkIsU0FBb0I7UUFDN0MsS0FBSyxFQUFFLENBQUM7UUFEaUIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUxqRCxVQUFLLEdBQU8sU0FBUyxDQUFDO1FBQ3RCLGVBQVUsR0FBMEIsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQzdELGNBQVMsR0FBc0IsSUFBSSxjQUFjLENBQUksSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBSy9ELENBQUM7SUFFUSxRQUFRO1FBQ2IsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksSUFBSSxF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QVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDNUQsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7O2lIQWpHaUIsbUJBQW1CO3FHQUFuQixtQkFBbUIseUZBRjNCLEVBQUU7NEZBRU0sbUJBQW1CO2tCQUp4QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFFBQVEsRUFBRSxFQUFFO2lCQUNmIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUganNkb2MvcmVxdWlyZS1qc2RvYyAqL1xuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IExvZGFzaFV0aWxpdGllcyB9IGZyb20gJy4uLy4uLy4uL2NhcHN1bGF0aW9uL2xvZGFzaC51dGlsaXRpZXMnO1xuaW1wb3J0IHsgRW50aXR5VXRpbGl0aWVzIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9lbnRpdHkudXRpbGl0aWVzJztcbmltcG9ydCB7IE5neE1hdEVudGl0eUNvbmZpcm1EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFzZUVudGl0eVR5cGUgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBOZ3hNYXRFbnRpdHlCYXNlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZWNvcmF0b3JUeXBlcyB9IGZyb20gJy4uLy4uLy4uL2RlY29yYXRvcnMvYmFzZS9kZWNvcmF0b3ItdHlwZXMuZW51bSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG50eXBlIEFycmF5VGFibGVUeXBlID0gRGVjb3JhdG9yVHlwZXMuQVJSQVkgfCBEZWNvcmF0b3JUeXBlcy5BUlJBWV9EQVRFXG4gICAgfCBEZWNvcmF0b3JUeXBlcy5BUlJBWV9EQVRFX1JBTkdFIHwgRGVjb3JhdG9yVHlwZXMuQVJSQVlfREFURV9USU1FO1xuXG4vKipcbiAqIFRoZSBiYXNlIGRhdGEgbmVlZGVkIGZvciBhbGwgYXJyYXlzIHRoYXQgYXJlIGRpc3BsYXllZCBhcyBhIHRhYmxlLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25neC1tYXQtZW50aXR5LWFycmF5LXRhYmxlJyxcbiAgICB0ZW1wbGF0ZTogJydcbn0pXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQXJyYXlUYWJsZUNvbXBvbmVudDxULCBFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4sIEFycmF5VHlwZSBleHRlbmRzIEFycmF5VGFibGVUeXBlPlxuICAgIGV4dGVuZHMgTmd4TWF0RW50aXR5QmFzZUlucHV0Q29tcG9uZW50PEVudGl0eVR5cGUsIEFycmF5VHlwZT4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgYXJyYXlWYWx1ZXMhOiBUW107XG4gICAgaW5wdXQ/OiBUID0gdW5kZWZpbmVkO1xuICAgIGRhdGFTb3VyY2U6IE1hdFRhYmxlRGF0YVNvdXJjZTxUPiA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UoKTtcbiAgICBzZWxlY3Rpb246IFNlbGVjdGlvbk1vZGVsPFQ+ID0gbmV3IFNlbGVjdGlvbk1vZGVsPFQ+KHRydWUsIFtdKTtcbiAgICBkaXNwbGF5ZWRDb2x1bW5zITogc3RyaW5nW107XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG1hdERpYWxvZzogTWF0RGlhbG9nKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGlmICh0aGlzLmVudGl0eVt0aGlzLmtleV0gPT0gbnVsbCkge1xuICAgICAgICAgICAgKHRoaXMuZW50aXR5W3RoaXMua2V5XSBhcyBUW10pID0gW107XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5hcnJheVZhbHVlcyA9IHRoaXMuZW50aXR5W3RoaXMua2V5XSBhcyBUW107XG4gICAgICAgIGNvbnN0IGdpdmVuRGlzcGxheUNvbHVtbnM6IHN0cmluZ1tdID0gdGhpcy5tZXRhZGF0YS5kaXNwbGF5Q29sdW1ucy5tYXAoKHYpID0+IHYuZGlzcGxheU5hbWUpO1xuICAgICAgICBpZiAoZ2l2ZW5EaXNwbGF5Q29sdW1ucy5maW5kKHMgPT4gcyA9PT0gJ3NlbGVjdCcpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgYFRoZSBuYW1lIFwic2VsZWN0XCIgZm9yIGEgZGlzcGxheSBjb2x1bW4gaXMgcmVzZXJ2ZWQuXG4gICAgICAgICAgICAgICAgUGxlYXNlIGNob29zZSBhIGRpZmZlcmVudCBuYW1lLmBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gWydzZWxlY3QnXS5jb25jYXQoZ2l2ZW5EaXNwbGF5Q29sdW1ucyk7XG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhID0gdGhpcy5hcnJheVZhbHVlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUb2dnbGVzIGFsbCBhcnJheS1pdGVtcyBpbiB0aGUgdGFibGUuXG4gICAgICpcbiAgICAgKi9cbiAgICBtYXN0ZXJUb2dnbGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzQWxsU2VsZWN0ZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhLmZvckVhY2gocm93ID0+IHRoaXMuc2VsZWN0aW9uLnNlbGVjdChyb3cpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBhbGwgYXJyYXktaXRlbXMgaW4gdGhlIHRhYmxlIGhhdmUgYmVlbiBzZWxlY3RlZC5cbiAgICAgKiBUaGlzIGlzIG5lZWRlZCB0byBkaXNwbGF5IHRoZSBcIm1hc3RlclRvZ2dsZVwiLWNoZWNrYm94IGNvcnJlY3RseS5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIFdoZXRoZXIgb3Igbm90IGFsbCBhcnJheS1pdGVtcyBpbiB0aGUgdGFibGUgaGF2ZSBiZWVuIHNlbGVjdGVkLlxuICAgICAqL1xuICAgIGlzQWxsU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IG51bVNlbGVjdGVkID0gdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoO1xuICAgICAgICBjb25zdCBudW1Sb3dzID0gdGhpcy5kYXRhU291cmNlLmRhdGEubGVuZ3RoO1xuICAgICAgICByZXR1cm4gbnVtU2VsZWN0ZWQgPT09IG51bVJvd3M7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJpZXMgdG8gYWRkIGFuIGl0ZW0gdG8gdGhlIGFycmF5LlxuICAgICAqL1xuICAgIGFkZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICF0aGlzLm1ldGFkYXRhLmFsbG93RHVwbGljYXRlc1xuICAgICAgICAgICAgICAgICYmIHRoaXMuYXJyYXlWYWx1ZXMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgdiA9PiBhd2FpdCBFbnRpdHlVdGlsaXRpZXMuaXNFcXVhbCh0aGlzLmlucHV0LCB2LCB0aGlzLm1ldGFkYXRhLCB0aGlzLm1ldGFkYXRhLml0ZW1UeXBlKVxuICAgICAgICAgICAgICAgICkgIT0gbnVsbFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXREaWFsb2cub3BlbihOZ3hNYXRFbnRpdHlDb25maXJtRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHRoaXMubWV0YWRhdGEuZHVwbGljYXRlc0Vycm9yRGlhbG9nLFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICByZXN0b3JlRm9jdXM6IGZhbHNlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5hcnJheVZhbHVlcy5wdXNoKExvZGFzaFV0aWxpdGllcy5jbG9uZURlZXAodGhpcy5pbnB1dCkpO1xuICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSB0aGlzLmFycmF5VmFsdWVzO1xuICAgICAgICAgICAgdGhpcy5yZXNldElucHV0KCk7XG4gICAgICAgICAgICB0aGlzLmVtaXRDaGFuZ2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIElzIHNwbGl0IHVwIGZyb20gdGhlIGFkZCBtZXRob2QgdG8gb3ZlcnJpZGUgdGhpcyBmdW5jdGlvbmFsaXR5IG1vcmUgZWFzaWx5LlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZXNldElucHV0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlucHV0ID0gdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgYWxsIHNlbGVjdGVkIGVudHJpZXMgZnJvbSB0aGUgZW50aXR5IGFycmF5LlxuICAgICAqL1xuICAgIHJlbW92ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQuZm9yRWFjaChzID0+IHtcbiAgICAgICAgICAgIHRoaXMuYXJyYXlWYWx1ZXMuc3BsaWNlKHRoaXMuYXJyYXlWYWx1ZXMuaW5kZXhPZihzKSwgMSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IHRoaXMuYXJyYXlWYWx1ZXM7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuZW1pdENoYW5nZSgpO1xuICAgIH1cbn0iXX0=
104
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXktdGFibGUuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2lucHV0L2FycmF5L2FycmF5LXRhYmxlLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdDQUF3QztBQUN4QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDcEUsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFFbkcsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFekUsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7O0FBS2xEOztHQUVHO0FBS0gsTUFBTSxPQUFnQixtQkFDbEIsU0FBUSw4QkFBa0U7SUFPMUUsWUFBNkIsU0FBb0I7UUFDN0MsS0FBSyxFQUFFLENBQUM7UUFEaUIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQUxqRCxVQUFLLEdBQWUsU0FBUyxDQUFDO1FBQzlCLGVBQVUsR0FBa0MsSUFBSSxrQkFBa0IsRUFBRSxDQUFDO1FBQ3JFLGNBQVMsR0FBOEIsSUFBSSxjQUFjLENBQVksSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBSy9FLENBQUM7SUFFUSxRQUFRO1FBQ2IsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUM7UUFDOUMs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QUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDO1FBQ2hELElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7O2lIQTdGaUIsbUJBQW1CO3FHQUFuQixtQkFBbUIseUZBRjNCLEVBQUU7NEZBRU0sbUJBQW1CO2tCQUp4QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw0QkFBNEI7b0JBQ3RDLFFBQVEsRUFBRSxFQUFFO2lCQUNmIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUganNkb2MvcmVxdWlyZS1qc2RvYyAqL1xuaW1wb3J0IHsgU2VsZWN0aW9uTW9kZWwgfSBmcm9tICdAYW5ndWxhci9jZGsvY29sbGVjdGlvbnMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IE1hdFRhYmxlRGF0YVNvdXJjZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3RhYmxlJztcbmltcG9ydCB7IExvZGFzaFV0aWxpdGllcyB9IGZyb20gJy4uLy4uLy4uL2NhcHN1bGF0aW9uL2xvZGFzaC51dGlsaXRpZXMnO1xuaW1wb3J0IHsgRW50aXR5VXRpbGl0aWVzIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9lbnRpdHkudXRpbGl0aWVzJztcbmltcG9ydCB7IE5neE1hdEVudGl0eUNvbmZpcm1EaWFsb2dDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb25maXJtLWRpYWxvZy9jb25maXJtLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFzZUVudGl0eVR5cGUgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBOZ3hNYXRFbnRpdHlCYXNlSW5wdXRDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEZWNvcmF0b3JUeXBlcyB9IGZyb20gJy4uLy4uLy4uL2RlY29yYXRvcnMvYmFzZS9kZWNvcmF0b3ItdHlwZXMuZW51bSc7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG50eXBlIEFycmF5VGFibGVUeXBlID0gRGVjb3JhdG9yVHlwZXMuQVJSQVkgfCBEZWNvcmF0b3JUeXBlcy5BUlJBWV9EQVRFXG4gICAgfCBEZWNvcmF0b3JUeXBlcy5BUlJBWV9EQVRFX1JBTkdFIHwgRGVjb3JhdG9yVHlwZXMuQVJSQVlfREFURV9USU1FO1xuXG4vKipcbiAqIFRoZSBiYXNlIGNvbXBvbmVudCBuZWVkZWQgZm9yIGFsbCBhcnJheXMgdGhhdCBhcmUgZGlzcGxheWVkIGFzIGEgdGFibGUuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd4LW1hdC1lbnRpdHktYXJyYXktdGFibGUnLFxuICAgIHRlbXBsYXRlOiAnJ1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBcnJheVRhYmxlQ29tcG9uZW50PFZhbHVlVHlwZSwgRW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+LCBBcnJheVR5cGUgZXh0ZW5kcyBBcnJheVRhYmxlVHlwZT5cbiAgICBleHRlbmRzIE5neE1hdEVudGl0eUJhc2VJbnB1dENvbXBvbmVudDxFbnRpdHlUeXBlLCBBcnJheVR5cGUsIFZhbHVlVHlwZVtdPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgICBpbnB1dD86IFZhbHVlVHlwZSA9IHVuZGVmaW5lZDtcbiAgICBkYXRhU291cmNlOiBNYXRUYWJsZURhdGFTb3VyY2U8VmFsdWVUeXBlPiA9IG5ldyBNYXRUYWJsZURhdGFTb3VyY2UoKTtcbiAgICBzZWxlY3Rpb246IFNlbGVjdGlvbk1vZGVsPFZhbHVlVHlwZT4gPSBuZXcgU2VsZWN0aW9uTW9kZWw8VmFsdWVUeXBlPih0cnVlLCBbXSk7XG4gICAgZGlzcGxheWVkQ29sdW1ucyE6IHN0cmluZ1tdO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBtYXREaWFsb2c6IE1hdERpYWxvZykge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgICAgICB0aGlzLnByb3BlcnR5VmFsdWUgPSB0aGlzLnByb3BlcnR5VmFsdWUgPz8gW107XG4gICAgICAgIGNvbnN0IGdpdmVuRGlzcGxheUNvbHVtbnM6IHN0cmluZ1tdID0gdGhpcy5tZXRhZGF0YS5kaXNwbGF5Q29sdW1ucy5tYXAoKHYpID0+IHYuZGlzcGxheU5hbWUpO1xuICAgICAgICBpZiAoZ2l2ZW5EaXNwbGF5Q29sdW1ucy5maW5kKHMgPT4gcyA9PT0gJ3NlbGVjdCcpKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgYFRoZSBuYW1lIFwic2VsZWN0XCIgZm9yIGEgZGlzcGxheSBjb2x1bW4gaXMgcmVzZXJ2ZWQuXG4gICAgICAgICAgICAgICAgUGxlYXNlIGNob29zZSBhIGRpZmZlcmVudCBuYW1lLmBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5kaXNwbGF5ZWRDb2x1bW5zID0gdGhpcy5pc1JlYWRPbmx5ID8gZ2l2ZW5EaXNwbGF5Q29sdW1ucyA6IFsnc2VsZWN0J10uY29uY2F0KGdpdmVuRGlzcGxheUNvbHVtbnMpO1xuICAgICAgICB0aGlzLmRhdGFTb3VyY2UuZGF0YSA9IHRoaXMucHJvcGVydHlWYWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUb2dnbGVzIGFsbCBhcnJheS1pdGVtcyBpbiB0aGUgdGFibGUuXG4gICAgICpcbiAgICAgKi9cbiAgICBtYXN0ZXJUb2dnbGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzQWxsU2VsZWN0ZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb24uY2xlYXIoKTtcbiAgICAgICAgfVxuICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGF0YVNvdXJjZS5kYXRhLmZvckVhY2gocm93ID0+IHRoaXMuc2VsZWN0aW9uLnNlbGVjdChyb3cpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoZWNrcyBpZiBhbGwgYXJyYXktaXRlbXMgaW4gdGhlIHRhYmxlIGhhdmUgYmVlbiBzZWxlY3RlZC5cbiAgICAgKiBUaGlzIGlzIG5lZWRlZCB0byBkaXNwbGF5IHRoZSBcIm1hc3RlclRvZ2dsZVwiLWNoZWNrYm94IGNvcnJlY3RseS5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIFdoZXRoZXIgb3Igbm90IGFsbCBhcnJheS1pdGVtcyBpbiB0aGUgdGFibGUgaGF2ZSBiZWVuIHNlbGVjdGVkLlxuICAgICAqL1xuICAgIGlzQWxsU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IG51bVNlbGVjdGVkID0gdGhpcy5zZWxlY3Rpb24uc2VsZWN0ZWQubGVuZ3RoO1xuICAgICAgICBjb25zdCBudW1Sb3dzID0gdGhpcy5kYXRhU291cmNlLmRhdGEubGVuZ3RoO1xuICAgICAgICByZXR1cm4gbnVtU2VsZWN0ZWQgPT09IG51bVJvd3M7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJpZXMgdG8gYWRkIGFuIGl0ZW0gdG8gdGhlIGFycmF5LlxuICAgICAqL1xuICAgIGFkZCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaW5wdXQgIT0gbnVsbCkge1xuICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICF0aGlzLm1ldGFkYXRhLmFsbG93RHVwbGljYXRlc1xuICAgICAgICAgICAgICAgICYmIHRoaXMucHJvcGVydHlWYWx1ZT8uZmluZChcbiAgICAgICAgICAgICAgICAgICAgYXN5bmMgdiA9PiBhd2FpdCBFbnRpdHlVdGlsaXRpZXMuaXNFcXVhbCh0aGlzLmlucHV0LCB2LCB0aGlzLm1ldGFkYXRhLCB0aGlzLm1ldGFkYXRhLml0ZW1UeXBlKVxuICAgICAgICAgICAgICAgICkgIT0gbnVsbFxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tYXREaWFsb2cub3BlbihOZ3hNYXRFbnRpdHlDb25maXJtRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHRoaXMubWV0YWRhdGEuZHVwbGljYXRlc0Vycm9yRGlhbG9nLFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXM6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICByZXN0b3JlRm9jdXM6IGZhbHNlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5wcm9wZXJ0eVZhbHVlPy5wdXNoKExvZGFzaFV0aWxpdGllcy5jbG9uZURlZXAodGhpcy5pbnB1dCkpO1xuICAgICAgICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSB0aGlzLnByb3BlcnR5VmFsdWUgPz8gW107XG4gICAgICAgICAgICB0aGlzLnJlc2V0SW5wdXQoKTtcbiAgICAgICAgICAgIHRoaXMuZW1pdENoYW5nZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSXMgc3BsaXQgdXAgZnJvbSB0aGUgYWRkIG1ldGhvZCB0byBvdmVycmlkZSB0aGlzIGZ1bmN0aW9uYWxpdHkgbW9yZSBlYXNpbHkuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlc2V0SW5wdXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaW5wdXQgPSB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVtb3ZlcyBhbGwgc2VsZWN0ZWQgZW50cmllcyBmcm9tIHRoZSBlbnRpdHkgYXJyYXkuXG4gICAgICovXG4gICAgcmVtb3ZlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGlvbi5zZWxlY3RlZC5mb3JFYWNoKHMgPT4ge1xuICAgICAgICAgICAgdGhpcy5wcm9wZXJ0eVZhbHVlPy5zcGxpY2UodGhpcy5wcm9wZXJ0eVZhbHVlLmluZGV4T2YocyksIDEpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5kYXRhU291cmNlLmRhdGEgPSB0aGlzLnByb3BlcnR5VmFsdWUgPz8gW107XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uLmNsZWFyKCk7XG4gICAgICAgIHRoaXMuZW1pdENoYW5nZSgpO1xuICAgIH1cbn0iXX0=
@@ -3,12 +3,36 @@ import { EntityUtilities } from '../../classes/entity.utilities';
3
3
  import * as i0 from "@angular/core";
4
4
  /**
5
5
  * The abstract base class of any ngx-mat-entity input.
6
+ * Extend from this when implementing your own custom decorator.
7
+ *
8
+ * It already provides:
9
+ *
10
+ * - entity: The entity which the property is on. (type-safe due to the Generic "EntityType")
11
+ * - key: The key of the property. (type-safe due to the Generic "EntityType")
12
+ * - getValidationErrorMessage: The function that generates the error message when the input is invalid.
13
+ * - isReadOnly: Whether or not the input is read only. Can be used to disable elements.
14
+ * - propertyValue: Just the typed version of the property, its the same as entity[key].
15
+ * - metadata: The metadata of the property. (type-safe due to the Generic "CustomMetadataType")
16
+ * - ngOnInit: Gets the metadata for the property, be aware of this when overriding this method.
17
+ * - emitChange: Should be called when the input has changed. This is needed to trigger validation and dirty checks.
6
18
  */
7
19
  // eslint-disable-next-line max-len
8
20
  export class NgxMatEntityBaseInputComponent {
9
21
  constructor() {
10
22
  this.inputChangeEvent = new EventEmitter();
11
23
  }
24
+ // eslint-disable-next-line jsdoc/require-returns
25
+ /**
26
+ * The property value of entity[key] correctly typed.
27
+ * Uses getters and setters so that inputs are always linked to the original value.
28
+ */
29
+ get propertyValue() {
30
+ return this.entity[this.key];
31
+ }
32
+ // eslint-disable-next-line jsdoc/require-jsdoc
33
+ set propertyValue(value) {
34
+ this.entity[this.key] = value;
35
+ }
12
36
  ngOnInit() {
13
37
  this.metadata = EntityUtilities.getPropertyMetadata(this.entity, this.key);
14
38
  }
@@ -20,7 +44,7 @@ export class NgxMatEntityBaseInputComponent {
20
44
  }
21
45
  }
22
46
  NgxMatEntityBaseInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NgxMatEntityBaseInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
- NgxMatEntityBaseInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: NgxMatEntityBaseInputComponent, selector: "ngx-mat-entity-base-input", inputs: { entity: "entity", key: "key", getValidationErrorMessage: "getValidationErrorMessage" }, outputs: { inputChangeEvent: "inputChangeEvent" }, ngImport: i0, template: '', isInline: true });
47
+ NgxMatEntityBaseInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: NgxMatEntityBaseInputComponent, selector: "ngx-mat-entity-base-input", inputs: { entity: "entity", key: "key", getValidationErrorMessage: "getValidationErrorMessage", isReadOnly: "isReadOnly" }, outputs: { inputChangeEvent: "inputChangeEvent" }, ngImport: i0, template: '', isInline: true });
24
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NgxMatEntityBaseInputComponent, decorators: [{
25
49
  type: Component,
26
50
  args: [{
@@ -33,7 +57,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
33
57
  type: Input
34
58
  }], getValidationErrorMessage: [{
35
59
  type: Input
60
+ }], isReadOnly: [{
61
+ type: Input
36
62
  }], inputChangeEvent: [{
37
63
  type: Output
38
64
  }] } });
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2lucHV0L2Jhc2UtaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUVqRTs7R0FFRztBQUtILG1DQUFtQztBQUNuQyxNQUFNLE9BQWdCLDhCQUE4QjtJQUxwRDtRQTZCSSxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBYy9DO0lBVkcsUUFBUTtRQUNKLElBQUksQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRDs7T0FFRztJQUNILFVBQVU7UUFDTixJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakMsQ0FBQzs7NEhBckNpQiw4QkFBOEI7Z0hBQTlCLDhCQUE4QixzTkFIdEMsRUFBRTs0RkFHTSw4QkFBOEI7a0JBTG5ELFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsUUFBUSxFQUFFLEVBQUU7aUJBQ2Y7OEJBV0csTUFBTTtzQkFETCxLQUFLO2dCQU9OLEdBQUc7c0JBREYsS0FBSztnQkFPTix5QkFBeUI7c0JBRHhCLEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ01vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmFzZUVudGl0eVR5cGUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBEZWNvcmF0b3JUeXBlLCBEZWNvcmF0b3JUeXBlcyB9IGZyb20gJy4uLy4uL2RlY29yYXRvcnMvYmFzZS9kZWNvcmF0b3ItdHlwZXMuZW51bSc7XG5pbXBvcnQgeyBFbnRpdHlVdGlsaXRpZXMgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2VudGl0eS51dGlsaXRpZXMnO1xuXG4vKipcbiAqIFRoZSBhYnN0cmFjdCBiYXNlIGNsYXNzIG9mIGFueSBuZ3gtbWF0LWVudGl0eSBpbnB1dC5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3gtbWF0LWVudGl0eS1iYXNlLWlucHV0JyxcbiAgICB0ZW1wbGF0ZTogJydcbn0pXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbWF4LWxlblxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIE5neE1hdEVudGl0eUJhc2VJbnB1dENvbXBvbmVudDxcbiAgICBFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4sXG4gICAgVHlwZSBleHRlbmRzIERlY29yYXRvclR5cGVzLFxuICAgIEN1c3RvbU1ldGFkYXRhVHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEN1c3RvbU1ldGFkYXRhVHlwZT4gPSB7fVxuPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLyoqXG4gICAgICogVGhlIGVudGl0eSB0aGF0IHRoZSBwcm9wZXJ0eSB0byBkaXNwbGF5IGFzIGFuIGlucHV0IGNvbWVzIGZyb20uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBlbnRpdHkhOiBFbnRpdHlUeXBlO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGtleSBvZiB0aGUgcHJvcGVydHkgdG8gYnVpbGQgdGhlIGlucHV0IGZvci5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGtleSE6IGtleW9mIEVudGl0eVR5cGU7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZnVuY3Rpb24gdGhhdCBnZW5lcmF0ZXMgdGhlIGVycm9yIG1lc3NhZ2Ugd2hlbiB0aGUgaW5wdXQgaXMgaW52YWxpZC5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGdldFZhbGlkYXRpb25FcnJvck1lc3NhZ2UhOiAobW9kZWw6IE5nTW9kZWwpID0+IHN0cmluZztcblxuICAgIEBPdXRwdXQoKVxuICAgIGlucHV0Q2hhbmdlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBtZXRhZGF0YSE6IERlY29yYXRvclR5cGU8VHlwZSwgQ3VzdG9tTWV0YWRhdGFUeXBlPjtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1ldGFkYXRhID0gRW50aXR5VXRpbGl0aWVzLmdldFByb3BlcnR5TWV0YWRhdGEodGhpcy5lbnRpdHksIHRoaXMua2V5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG91bGQgZW1pdCB3aGVuIHRoZSBpbnB1dCBoYXMgY2hhbmdlZC4gVGhpcyBpcyBuZWVkZWQgdG8gdHJpZ2dlciB2YWxpZGF0aW9uIGFuZCBkaXJ0eSBjaGVja3MuXG4gICAgICovXG4gICAgZW1pdENoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dENoYW5nZUV2ZW50LmVtaXQoKTtcbiAgICB9XG59Il19
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2lucHV0L2Jhc2UtaW5wdXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJL0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUVqRTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUtILG1DQUFtQztBQUNuQyxNQUFNLE9BQWdCLDhCQUE4QjtJQUxwRDtRQXFDSSxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO0tBOEIvQztJQTVCRyxpREFBaUQ7SUFDakQ7OztPQUdHO0lBQ0gsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTBCLENBQUM7SUFDMUQsQ0FBQztJQUNELCtDQUErQztJQUMvQyxJQUFJLGFBQWEsQ0FBQyxLQUE0QjtRQUN6QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQTJCLEdBQUcsS0FBSyxDQUFDO0lBQzdELENBQUM7SUFPRCxRQUFRO1FBQ0osSUFBSSxDQUFDLFFBQVEsR0FBRyxlQUFlLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0UsQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVTtRQUNOLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDOzs0SEE3RGlCLDhCQUE4QjtnSEFBOUIsOEJBQThCLGdQQUh0QyxFQUFFOzRGQUdNLDhCQUE4QjtrQkFMbkQsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxRQUFRLEVBQUUsRUFBRTtpQkFDZjs4QkFZRyxNQUFNO3NCQURMLEtBQUs7Z0JBT04sR0FBRztzQkFERixLQUFLO2dCQU9OLHlCQUF5QjtzQkFEeEIsS0FBSztnQkFRTixVQUFVO3NCQURULEtBQUs7Z0JBSU4sZ0JBQWdCO3NCQURmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ01vZGVsIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQmFzZUVudGl0eVR5cGUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBEZWNvcmF0b3JUeXBlLCBEZWNvcmF0b3JUeXBlcyB9IGZyb20gJy4uLy4uL2RlY29yYXRvcnMvYmFzZS9kZWNvcmF0b3ItdHlwZXMuZW51bSc7XG5pbXBvcnQgeyBFbnRpdHlVdGlsaXRpZXMgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2VudGl0eS51dGlsaXRpZXMnO1xuXG4vKipcbiAqIFRoZSBhYnN0cmFjdCBiYXNlIGNsYXNzIG9mIGFueSBuZ3gtbWF0LWVudGl0eSBpbnB1dC5cbiAqIEV4dGVuZCBmcm9tIHRoaXMgd2hlbiBpbXBsZW1lbnRpbmcgeW91ciBvd24gY3VzdG9tIGRlY29yYXRvci5cbiAqXG4gKiBJdCBhbHJlYWR5IHByb3ZpZGVzOlxuICpcbiAqIC0gZW50aXR5OiBUaGUgZW50aXR5IHdoaWNoIHRoZSBwcm9wZXJ0eSBpcyBvbi4gKHR5cGUtc2FmZSBkdWUgdG8gdGhlIEdlbmVyaWMgXCJFbnRpdHlUeXBlXCIpXG4gKiAtIGtleTogVGhlIGtleSBvZiB0aGUgcHJvcGVydHkuICh0eXBlLXNhZmUgZHVlIHRvIHRoZSBHZW5lcmljIFwiRW50aXR5VHlwZVwiKVxuICogLSBnZXRWYWxpZGF0aW9uRXJyb3JNZXNzYWdlOiBUaGUgZnVuY3Rpb24gdGhhdCBnZW5lcmF0ZXMgdGhlIGVycm9yIG1lc3NhZ2Ugd2hlbiB0aGUgaW5wdXQgaXMgaW52YWxpZC5cbiAqIC0gaXNSZWFkT25seTogV2hldGhlciBvciBub3QgdGhlIGlucHV0IGlzIHJlYWQgb25seS4gQ2FuIGJlIHVzZWQgdG8gZGlzYWJsZSBlbGVtZW50cy5cbiAqIC0gcHJvcGVydHlWYWx1ZTogSnVzdCB0aGUgdHlwZWQgdmVyc2lvbiBvZiB0aGUgcHJvcGVydHksIGl0cyB0aGUgc2FtZSBhcyBlbnRpdHlba2V5XS5cbiAqIC0gbWV0YWRhdGE6IFRoZSBtZXRhZGF0YSBvZiB0aGUgcHJvcGVydHkuICh0eXBlLXNhZmUgZHVlIHRvIHRoZSBHZW5lcmljIFwiQ3VzdG9tTWV0YWRhdGFUeXBlXCIpXG4gKiAtIG5nT25Jbml0OiBHZXRzIHRoZSBtZXRhZGF0YSBmb3IgdGhlIHByb3BlcnR5LCBiZSBhd2FyZSBvZiB0aGlzIHdoZW4gb3ZlcnJpZGluZyB0aGlzIG1ldGhvZC5cbiAqIC0gZW1pdENoYW5nZTogU2hvdWxkIGJlIGNhbGxlZCB3aGVuIHRoZSBpbnB1dCBoYXMgY2hhbmdlZC4gVGhpcyBpcyBuZWVkZWQgdG8gdHJpZ2dlciB2YWxpZGF0aW9uIGFuZCBkaXJ0eSBjaGVja3MuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbmd4LW1hdC1lbnRpdHktYmFzZS1pbnB1dCcsXG4gICAgdGVtcGxhdGU6ICcnXG59KVxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG1heC1sZW5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBOZ3hNYXRFbnRpdHlCYXNlSW5wdXRDb21wb25lbnQ8XG4gICAgRW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+LFxuICAgIFR5cGUgZXh0ZW5kcyBEZWNvcmF0b3JUeXBlcyxcbiAgICBWYWx1ZVR5cGUsXG4gICAgQ3VzdG9tTWV0YWRhdGFUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8Q3VzdG9tTWV0YWRhdGFUeXBlPiA9IHt9XG4+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiBUaGUgZW50aXR5IHRoYXQgdGhlIHByb3BlcnR5IHRvIGRpc3BsYXkgYXMgYW4gaW5wdXQgY29tZXMgZnJvbS5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGVudGl0eSE6IEVudGl0eVR5cGU7XG5cbiAgICAvKipcbiAgICAgKiBUaGUga2V5IG9mIHRoZSBwcm9wZXJ0eSB0byBidWlsZCB0aGUgaW5wdXQgZm9yLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAga2V5IToga2V5b2YgRW50aXR5VHlwZTtcblxuICAgIC8qKlxuICAgICAqIFRoZSBmdW5jdGlvbiB0aGF0IGdlbmVyYXRlcyB0aGUgZXJyb3IgbWVzc2FnZSB3aGVuIHRoZSBpbnB1dCBpcyBpbnZhbGlkLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0VmFsaWRhdGlvbkVycm9yTWVzc2FnZSE6IChtb2RlbDogTmdNb2RlbCkgPT4gc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciBvciBub3QgdGhlIGlucHV0IHNob3VsZCBiZSByZWFkb25seS5cbiAgICAgKiBJbiB0aGF0IGNhc2UgaXQgaXMgZGlzYWJsZWQsIGJ1dCBtb3N0IG9mIHRoZSBkaXNhYmxlZC1zdHlsaW5nIGlzIG92ZXJyaWRkZW4uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpc1JlYWRPbmx5ITogYm9vbGVhbjtcblxuICAgIEBPdXRwdXQoKVxuICAgIGlucHV0Q2hhbmdlRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1yZXR1cm5zXG4gICAgLyoqXG4gICAgICogVGhlIHByb3BlcnR5IHZhbHVlIG9mIGVudGl0eVtrZXldIGNvcnJlY3RseSB0eXBlZC5cbiAgICAgKiBVc2VzIGdldHRlcnMgYW5kIHNldHRlcnMgc28gdGhhdCBpbnB1dHMgYXJlIGFsd2F5cyBsaW5rZWQgdG8gdGhlIG9yaWdpbmFsIHZhbHVlLlxuICAgICAqL1xuICAgIGdldCBwcm9wZXJ0eVZhbHVlKCk6IFZhbHVlVHlwZSB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiB0aGlzLmVudGl0eVt0aGlzLmtleV0gYXMgVmFsdWVUeXBlIHwgdW5kZWZpbmVkO1xuICAgIH1cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIHNldCBwcm9wZXJ0eVZhbHVlKHZhbHVlOiBWYWx1ZVR5cGUgfCB1bmRlZmluZWQpIHtcbiAgICAgICAgKHRoaXMuZW50aXR5W3RoaXMua2V5XSBhcyBWYWx1ZVR5cGUgfCB1bmRlZmluZWQpID0gdmFsdWU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIG1ldGFkYXRhIG9mIHRoZSBwcm9wZXJ0eS5cbiAgICAgKi9cbiAgICBtZXRhZGF0YSE6IERlY29yYXRvclR5cGU8VHlwZSwgQ3VzdG9tTWV0YWRhdGFUeXBlPjtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1ldGFkYXRhID0gRW50aXR5VXRpbGl0aWVzLmdldFByb3BlcnR5TWV0YWRhdGEodGhpcy5lbnRpdHksIHRoaXMua2V5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTaG91bGQgZW1pdCB3aGVuIHRoZSBpbnB1dCBoYXMgY2hhbmdlZC4gVGhpcyBpcyBuZWVkZWQgdG8gdHJpZ2dlciB2YWxpZGF0aW9uIGFuZCBkaXJ0eSBjaGVja3MuXG4gICAgICovXG4gICAgZW1pdENoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pbnB1dENoYW5nZUV2ZW50LmVtaXQoKTtcbiAgICB9XG59Il19
@@ -9,15 +9,13 @@ import * as i4 from "@angular/material/input";
9
9
  export class BooleanCheckboxInputComponent extends NgxMatEntityBaseInputComponent {
10
10
  ngOnInit() {
11
11
  super.ngOnInit();
12
- if (this.entity[this.key] == null) {
13
- this.entity[this.key] = false;
14
- }
12
+ this.propertyValue = this.propertyValue ?? false;
15
13
  }
16
14
  }
17
15
  BooleanCheckboxInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BooleanCheckboxInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
18
- BooleanCheckboxInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: BooleanCheckboxInputComponent, selector: "boolean-checkbox-input", usesInheritance: true, ngImport: i0, template: "<mat-form-field class=\"hideUnderline\">\n <mat-label>{{metadata.displayName}}</mat-label>\n <mat-checkbox (ngModelChange)=\"emitChange()\" (click)=\"model.control.markAsTouched()\" [(ngModel)]=\"entity[key]\" [name]=\"key.toString()\"></mat-checkbox>\n <!-- hidden input is needed so that the checkbox 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 <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.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }], 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"] }] });
16
+ BooleanCheckboxInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: BooleanCheckboxInputComponent, selector: "boolean-checkbox-input", usesInheritance: true, ngImport: i0, template: "<mat-form-field class=\"hideUnderline\">\n <mat-label>{{metadata.displayName}}</mat-label>\n <mat-checkbox\n color=\"primary\"\n (ngModelChange)=\"emitChange()\"\n (click)=\"model.control.markAsTouched()\"\n [(ngModel)]=\"propertyValue\"\n [name]=\"key.toString()\"\n [disabled]=\"isReadOnly\"\n [class.disabled]=\"isReadOnly\"\n [class.mat-checkbox-disabled]=\"false\"\n >\n </mat-checkbox>\n <!-- hidden input is needed so that the checkbox can be used inside a mat-form-field -->\n <input matInput hidden\n [(ngModel)]=\"propertyValue\"\n [name]=\"key.toString() + 'Helper'\"\n #model=\"ngModel\"\n [pattern]=\"metadata.required ? 'true' : '[\\\\s\\\\S]*'\"\n [required]=\"metadata.required\"\n [disabled]=\"isReadOnly\"\n >\n <mat-error>{{getValidationErrorMessage(model)}}</mat-error>\n</mat-form-field>", styles: ["::ng-deep .hideUnderline .mat-form-field-underline{opacity:0%}::ng-deep .disabled .mat-checkbox-ripple{display:none}::ng-deep .disabled:hover{cursor:default}mat-form-field{width:100%}\n"], components: [{ type: i1.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex", "aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }], 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"] }] });
19
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BooleanCheckboxInputComponent, decorators: [{
20
18
  type: Component,
21
- args: [{ selector: 'boolean-checkbox-input', template: "<mat-form-field class=\"hideUnderline\">\n <mat-label>{{metadata.displayName}}</mat-label>\n <mat-checkbox (ngModelChange)=\"emitChange()\" (click)=\"model.control.markAsTouched()\" [(ngModel)]=\"entity[key]\" [name]=\"key.toString()\"></mat-checkbox>\n <!-- hidden input is needed so that the checkbox 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 <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"] }]
19
+ args: [{ selector: 'boolean-checkbox-input', template: "<mat-form-field class=\"hideUnderline\">\n <mat-label>{{metadata.displayName}}</mat-label>\n <mat-checkbox\n color=\"primary\"\n (ngModelChange)=\"emitChange()\"\n (click)=\"model.control.markAsTouched()\"\n [(ngModel)]=\"propertyValue\"\n [name]=\"key.toString()\"\n [disabled]=\"isReadOnly\"\n [class.disabled]=\"isReadOnly\"\n [class.mat-checkbox-disabled]=\"false\"\n >\n </mat-checkbox>\n <!-- hidden input is needed so that the checkbox can be used inside a mat-form-field -->\n <input matInput hidden\n [(ngModel)]=\"propertyValue\"\n [name]=\"key.toString() + 'Helper'\"\n #model=\"ngModel\"\n [pattern]=\"metadata.required ? 'true' : '[\\\\s\\\\S]*'\"\n [required]=\"metadata.required\"\n [disabled]=\"isReadOnly\"\n >\n <mat-error>{{getValidationErrorMessage(model)}}</mat-error>\n</mat-form-field>", styles: ["::ng-deep .hideUnderline .mat-form-field-underline{opacity:0%}::ng-deep .disabled .mat-checkbox-ripple{display:none}::ng-deep .disabled:hover{cursor:default}mat-form-field{width:100%}\n"] }]
22
20
  }] });
23
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi1jaGVja2JveC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2lucHV0L2Jvb2xlYW4vYm9vbGVhbi1jaGVja2JveC1pbnB1dC9ib29sZWFuLWNoZWNrYm94LWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvaW5wdXQvYm9vbGVhbi9ib29sZWFuLWNoZWNrYm94LWlucHV0L2Jvb2xlYW4tY2hlY2tib3gtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0NBQXdDO0FBQ3hDLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHbEQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7OztBQVE1RSxNQUFNLE9BQU8sNkJBQ1QsU0FBUSw4QkFBMkU7SUFFMUUsUUFBUTtRQUNiLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLElBQUksRUFBRTtZQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQWEsR0FBRyxLQUFLLENBQUM7U0FDOUM7SUFDTCxDQUFDOzsySEFSUSw2QkFBNkI7K0dBQTdCLDZCQUE2QixxRkNaMUMsK3FCQVdpQjs0RkRDSiw2QkFBNkI7a0JBTnpDLFNBQVM7K0JBRUksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUganNkb2MvcmVxdWlyZS1qc2RvYyAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlY29yYXRvclR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGVjb3JhdG9ycy9iYXNlL2RlY29yYXRvci10eXBlcy5lbnVtJztcbmltcG9ydCB7IEJhc2VFbnRpdHlUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY2xhc3Nlcy9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgTmd4TWF0RW50aXR5QmFzZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS1pbnB1dC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnYm9vbGVhbi1jaGVja2JveC1pbnB1dCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Jvb2xlYW4tY2hlY2tib3gtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2Jvb2xlYW4tY2hlY2tib3gtaW5wdXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCb29sZWFuQ2hlY2tib3hJbnB1dENvbXBvbmVudDxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+XG4gICAgZXh0ZW5kcyBOZ3hNYXRFbnRpdHlCYXNlSW5wdXRDb21wb25lbnQ8RW50aXR5VHlwZSwgRGVjb3JhdG9yVHlwZXMuQk9PTEVBTl9DSEVDS0JPWD4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIGlmICh0aGlzLmVudGl0eVt0aGlzLmtleV0gPT0gbnVsbCkge1xuICAgICAgICAgICAgKHRoaXMuZW50aXR5W3RoaXMua2V5XSBhcyBib29sZWFuKSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxufSIsIjxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImhpZGVVbmRlcmxpbmVcIj5cbiAgICA8bWF0LWxhYmVsPnt7bWV0YWRhdGEuZGlzcGxheU5hbWV9fTwvbWF0LWxhYmVsPlxuICAgIDxtYXQtY2hlY2tib3ggKG5nTW9kZWxDaGFuZ2UpPVwiZW1pdENoYW5nZSgpXCIgKGNsaWNrKT1cIm1vZGVsLmNvbnRyb2wubWFya0FzVG91Y2hlZCgpXCIgWyhuZ01vZGVsKV09XCJlbnRpdHlba2V5XVwiIFtuYW1lXT1cImtleS50b1N0cmluZygpXCI+PC9tYXQtY2hlY2tib3g+XG4gICAgPCEtLSBoaWRkZW4gaW5wdXQgaXMgbmVlZGVkIHNvIHRoYXQgdGhlIGNoZWNrYm94IGNhbiBiZSB1c2VkIGluc2lkZSBhIG1hdC1mb3JtLWZpZWxkIC0tPlxuICAgIDxpbnB1dCBtYXRJbnB1dCBoaWRkZW5cbiAgICAgICAgWyhuZ01vZGVsKV09XCJlbnRpdHlba2V5XVwiXG4gICAgICAgIFtuYW1lXT1cImtleS50b1N0cmluZygpICsgJ0hlbHBlcidcIlxuICAgICAgICAjbW9kZWw9XCJuZ01vZGVsXCJcbiAgICAgICAgW3BhdHRlcm5dPVwibWV0YWRhdGEucmVxdWlyZWQgPyAndHJ1ZScgOiAnW1xcXFxzXFxcXFNdKidcIlxuICAgICAgICBbcmVxdWlyZWRdPVwibWV0YWRhdGEucmVxdWlyZWRcIj5cbiAgICA8bWF0LWVycm9yPnt7Z2V0VmFsaWRhdGlvbkVycm9yTWVzc2FnZShtb2RlbCl9fTwvbWF0LWVycm9yPlxuPC9tYXQtZm9ybS1maWVsZD4iXX0=
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi1jaGVja2JveC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2lucHV0L2Jvb2xlYW4vYm9vbGVhbi1jaGVja2JveC1pbnB1dC9ib29sZWFuLWNoZWNrYm94LWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvaW5wdXQvYm9vbGVhbi9ib29sZWFuLWNoZWNrYm94LWlucHV0L2Jvb2xlYW4tY2hlY2tib3gtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0NBQXdDO0FBQ3hDLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHbEQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7OztBQVE1RSxNQUFNLE9BQU8sNkJBQ1QsU0FBUSw4QkFBb0Y7SUFFbkYsUUFBUTtRQUNiLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLElBQUksS0FBSyxDQUFDO0lBQ3JELENBQUM7OzJIQU5RLDZCQUE2QjsrR0FBN0IsNkJBQTZCLHFGQ1oxQyxvNkJBdUJpQjs0RkRYSiw2QkFBNkI7a0JBTnpDLFNBQVM7K0JBRUksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUganNkb2MvcmVxdWlyZS1qc2RvYyAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlY29yYXRvclR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGVjb3JhdG9ycy9iYXNlL2RlY29yYXRvci10eXBlcy5lbnVtJztcbmltcG9ydCB7IEJhc2VFbnRpdHlUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY2xhc3Nlcy9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgTmd4TWF0RW50aXR5QmFzZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS1pbnB1dC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnYm9vbGVhbi1jaGVja2JveC1pbnB1dCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Jvb2xlYW4tY2hlY2tib3gtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2Jvb2xlYW4tY2hlY2tib3gtaW5wdXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCb29sZWFuQ2hlY2tib3hJbnB1dENvbXBvbmVudDxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+XG4gICAgZXh0ZW5kcyBOZ3hNYXRFbnRpdHlCYXNlSW5wdXRDb21wb25lbnQ8RW50aXR5VHlwZSwgRGVjb3JhdG9yVHlwZXMuQk9PTEVBTl9DSEVDS0JPWCwgYm9vbGVhbj4gaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIHRoaXMucHJvcGVydHlWYWx1ZSA9IHRoaXMucHJvcGVydHlWYWx1ZSA/PyBmYWxzZTtcbiAgICB9XG59IiwiPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiaGlkZVVuZGVybGluZVwiPlxuICAgIDxtYXQtbGFiZWw+e3ttZXRhZGF0YS5kaXNwbGF5TmFtZX19PC9tYXQtbGFiZWw+XG4gICAgPG1hdC1jaGVja2JveFxuICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJlbWl0Q2hhbmdlKClcIlxuICAgICAgICAoY2xpY2spPVwibW9kZWwuY29udHJvbC5tYXJrQXNUb3VjaGVkKClcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cInByb3BlcnR5VmFsdWVcIlxuICAgICAgICBbbmFtZV09XCJrZXkudG9TdHJpbmcoKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc1JlYWRPbmx5XCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImlzUmVhZE9ubHlcIlxuICAgICAgICBbY2xhc3MubWF0LWNoZWNrYm94LWRpc2FibGVkXT1cImZhbHNlXCJcbiAgICA+XG4gICAgPC9tYXQtY2hlY2tib3g+XG4gICAgPCEtLSBoaWRkZW4gaW5wdXQgaXMgbmVlZGVkIHNvIHRoYXQgdGhlIGNoZWNrYm94IGNhbiBiZSB1c2VkIGluc2lkZSBhIG1hdC1mb3JtLWZpZWxkIC0tPlxuICAgIDxpbnB1dCBtYXRJbnB1dCBoaWRkZW5cbiAgICAgICAgWyhuZ01vZGVsKV09XCJwcm9wZXJ0eVZhbHVlXCJcbiAgICAgICAgW25hbWVdPVwia2V5LnRvU3RyaW5nKCkgKyAnSGVscGVyJ1wiXG4gICAgICAgICNtb2RlbD1cIm5nTW9kZWxcIlxuICAgICAgICBbcGF0dGVybl09XCJtZXRhZGF0YS5yZXF1aXJlZCA/ICd0cnVlJyA6ICdbXFxcXHNcXFxcU10qJ1wiXG4gICAgICAgIFtyZXF1aXJlZF09XCJtZXRhZGF0YS5yZXF1aXJlZFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc1JlYWRPbmx5XCJcbiAgICA+XG4gICAgPG1hdC1lcnJvcj57e2dldFZhbGlkYXRpb25FcnJvck1lc3NhZ2UobW9kZWwpfX08L21hdC1lcnJvcj5cbjwvbWF0LWZvcm0tZmllbGQ+Il19
@@ -9,9 +9,9 @@ import * as i4 from "@angular/forms";
9
9
  export class BooleanDropdownInputComponent extends NgxMatEntityBaseInputComponent {
10
10
  }
11
11
  BooleanDropdownInputComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BooleanDropdownInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
12
- BooleanDropdownInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: BooleanDropdownInputComponent, selector: "boolean-dropdown-input", usesInheritance: true, ngImport: i0, template: "<mat-form-field>\n <mat-label>{{metadata.displayName}}</mat-label>\n <mat-select (ngModelChange)=\"emitChange()\" [(ngModel)]=\"entity[key]\" [name]=\"key.toString()\" #model=\"ngModel\" [required]=\"metadata.required\">\n <mat-option [value]=\"undefined\">-</mat-option>\n <mat-option [value]=\"true\">{{metadata.dropdownTrue}}</mat-option>\n <mat-option [value]=\"false\">{{metadata.dropdownFalse}}</mat-option>\n </mat-select>\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.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i3.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i1.MatLabel, selector: "mat-label" }, { 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.MatError, selector: "mat-error", inputs: ["id"] }] });
12
+ BooleanDropdownInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: BooleanDropdownInputComponent, selector: "boolean-dropdown-input", usesInheritance: true, ngImport: i0, template: "<mat-form-field>\n <mat-label>{{metadata.displayName}}</mat-label>\n <mat-select\n (ngModelChange)=\"emitChange()\"\n [(ngModel)]=\"propertyValue\"\n [name]=\"key.toString()\"\n #model=\"ngModel\"\n [required]=\"metadata.required\"\n [disabled]=\"isReadOnly\"\n >\n <mat-option [value]=\"undefined\">-</mat-option>\n <mat-option [value]=\"true\">{{metadata.dropdownTrue}}</mat-option>\n <mat-option [value]=\"false\">{{metadata.dropdownFalse}}</mat-option>\n </mat-select>\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.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i3.MatOption, selector: "mat-option", exportAs: ["matOption"] }], directives: [{ type: i1.MatLabel, selector: "mat-label" }, { 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.MatError, selector: "mat-error", inputs: ["id"] }] });
13
13
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BooleanDropdownInputComponent, decorators: [{
14
14
  type: Component,
15
- args: [{ selector: 'boolean-dropdown-input', template: "<mat-form-field>\n <mat-label>{{metadata.displayName}}</mat-label>\n <mat-select (ngModelChange)=\"emitChange()\" [(ngModel)]=\"entity[key]\" [name]=\"key.toString()\" #model=\"ngModel\" [required]=\"metadata.required\">\n <mat-option [value]=\"undefined\">-</mat-option>\n <mat-option [value]=\"true\">{{metadata.dropdownTrue}}</mat-option>\n <mat-option [value]=\"false\">{{metadata.dropdownFalse}}</mat-option>\n </mat-select>\n <mat-error>{{getValidationErrorMessage(model)}}</mat-error>\n</mat-form-field>", styles: ["mat-form-field{width:100%}\n"] }]
15
+ args: [{ selector: 'boolean-dropdown-input', template: "<mat-form-field>\n <mat-label>{{metadata.displayName}}</mat-label>\n <mat-select\n (ngModelChange)=\"emitChange()\"\n [(ngModel)]=\"propertyValue\"\n [name]=\"key.toString()\"\n #model=\"ngModel\"\n [required]=\"metadata.required\"\n [disabled]=\"isReadOnly\"\n >\n <mat-option [value]=\"undefined\">-</mat-option>\n <mat-option [value]=\"true\">{{metadata.dropdownTrue}}</mat-option>\n <mat-option [value]=\"false\">{{metadata.dropdownFalse}}</mat-option>\n </mat-select>\n <mat-error>{{getValidationErrorMessage(model)}}</mat-error>\n</mat-form-field>", styles: ["mat-form-field{width:100%}\n"] }]
16
16
  }] });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi1kcm9wZG93bi1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2lucHV0L2Jvb2xlYW4vYm9vbGVhbi1kcm9wZG93bi1pbnB1dC9ib29sZWFuLWRyb3Bkb3duLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvaW5wdXQvYm9vbGVhbi9ib29sZWFuLWRyb3Bkb3duLWlucHV0L2Jvb2xlYW4tZHJvcGRvd24taW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0NBQXdDO0FBQ3hDLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHbEQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7OztBQVE1RSxNQUFNLE9BQU8sNkJBQ1QsU0FBUSw4QkFBMkU7OzJIQUQxRSw2QkFBNkI7K0dBQTdCLDZCQUE2QixxRkNaMUMsaWlCQVFpQjs0RkRJSiw2QkFBNkI7a0JBTnpDLFNBQVM7K0JBRUksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUganNkb2MvcmVxdWlyZS1qc2RvYyAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlY29yYXRvclR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGVjb3JhdG9ycy9iYXNlL2RlY29yYXRvci10eXBlcy5lbnVtJztcbmltcG9ydCB7IEJhc2VFbnRpdHlUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY2xhc3Nlcy9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgTmd4TWF0RW50aXR5QmFzZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS1pbnB1dC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnYm9vbGVhbi1kcm9wZG93bi1pbnB1dCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Jvb2xlYW4tZHJvcGRvd24taW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2Jvb2xlYW4tZHJvcGRvd24taW5wdXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCb29sZWFuRHJvcGRvd25JbnB1dENvbXBvbmVudDxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+XG4gICAgZXh0ZW5kcyBOZ3hNYXRFbnRpdHlCYXNlSW5wdXRDb21wb25lbnQ8RW50aXR5VHlwZSwgRGVjb3JhdG9yVHlwZXMuQk9PTEVBTl9EUk9QRE9XTj4gaW1wbGVtZW50cyBPbkluaXQge1xufSIsIjxtYXQtZm9ybS1maWVsZD5cbiAgICA8bWF0LWxhYmVsPnt7bWV0YWRhdGEuZGlzcGxheU5hbWV9fTwvbWF0LWxhYmVsPlxuICAgIDxtYXQtc2VsZWN0IChuZ01vZGVsQ2hhbmdlKT1cImVtaXRDaGFuZ2UoKVwiIFsobmdNb2RlbCldPVwiZW50aXR5W2tleV1cIiBbbmFtZV09XCJrZXkudG9TdHJpbmcoKVwiICNtb2RlbD1cIm5nTW9kZWxcIiBbcmVxdWlyZWRdPVwibWV0YWRhdGEucmVxdWlyZWRcIj5cbiAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cInVuZGVmaW5lZFwiPi08L21hdC1vcHRpb24+XG4gICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJ0cnVlXCI+e3ttZXRhZGF0YS5kcm9wZG93blRydWV9fTwvbWF0LW9wdGlvbj5cbiAgICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImZhbHNlXCI+e3ttZXRhZGF0YS5kcm9wZG93bkZhbHNlfX08L21hdC1vcHRpb24+XG4gICAgPC9tYXQtc2VsZWN0PlxuICAgIDxtYXQtZXJyb3I+e3tnZXRWYWxpZGF0aW9uRXJyb3JNZXNzYWdlKG1vZGVsKX19PC9tYXQtZXJyb3I+XG48L21hdC1mb3JtLWZpZWxkPiJdfQ==
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9vbGVhbi1kcm9wZG93bi1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbWF0ZXJpYWwtZW50aXR5L3NyYy9jb21wb25lbnRzL2lucHV0L2Jvb2xlYW4vYm9vbGVhbi1kcm9wZG93bi1pbnB1dC9ib29sZWFuLWRyb3Bkb3duLWlucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvaW5wdXQvYm9vbGVhbi9ib29sZWFuLWRyb3Bkb3duLWlucHV0L2Jvb2xlYW4tZHJvcGRvd24taW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0NBQXdDO0FBQ3hDLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFHbEQsT0FBTyxFQUFFLDhCQUE4QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7OztBQVE1RSxNQUFNLE9BQU8sNkJBQ1QsU0FBUSw4QkFBb0Y7OzJIQURuRiw2QkFBNkI7K0dBQTdCLDZCQUE2QixxRkNaMUMseW5CQWVpQjs0RkRISiw2QkFBNkI7a0JBTnpDLFNBQVM7K0JBRUksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUganNkb2MvcmVxdWlyZS1qc2RvYyAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlY29yYXRvclR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGVjb3JhdG9ycy9iYXNlL2RlY29yYXRvci10eXBlcy5lbnVtJztcbmltcG9ydCB7IEJhc2VFbnRpdHlUeXBlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY2xhc3Nlcy9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgTmd4TWF0RW50aXR5QmFzZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vYmFzZS1pbnB1dC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnYm9vbGVhbi1kcm9wZG93bi1pbnB1dCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Jvb2xlYW4tZHJvcGRvd24taW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2Jvb2xlYW4tZHJvcGRvd24taW5wdXQuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBCb29sZWFuRHJvcGRvd25JbnB1dENvbXBvbmVudDxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+XG4gICAgZXh0ZW5kcyBOZ3hNYXRFbnRpdHlCYXNlSW5wdXRDb21wb25lbnQ8RW50aXR5VHlwZSwgRGVjb3JhdG9yVHlwZXMuQk9PTEVBTl9EUk9QRE9XTiwgYm9vbGVhbj4gaW1wbGVtZW50cyBPbkluaXQge1xufSIsIjxtYXQtZm9ybS1maWVsZD5cbiAgICA8bWF0LWxhYmVsPnt7bWV0YWRhdGEuZGlzcGxheU5hbWV9fTwvbWF0LWxhYmVsPlxuICAgIDxtYXQtc2VsZWN0XG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cImVtaXRDaGFuZ2UoKVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwicHJvcGVydHlWYWx1ZVwiXG4gICAgICAgIFtuYW1lXT1cImtleS50b1N0cmluZygpXCJcbiAgICAgICAgI21vZGVsPVwibmdNb2RlbFwiXG4gICAgICAgIFtyZXF1aXJlZF09XCJtZXRhZGF0YS5yZXF1aXJlZFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc1JlYWRPbmx5XCJcbiAgICA+XG4gICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJ1bmRlZmluZWRcIj4tPC9tYXQtb3B0aW9uPlxuICAgICAgICA8bWF0LW9wdGlvbiBbdmFsdWVdPVwidHJ1ZVwiPnt7bWV0YWRhdGEuZHJvcGRvd25UcnVlfX08L21hdC1vcHRpb24+XG4gICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJmYWxzZVwiPnt7bWV0YWRhdGEuZHJvcGRvd25GYWxzZX19PC9tYXQtb3B0aW9uPlxuICAgIDwvbWF0LXNlbGVjdD5cbiAgICA8bWF0LWVycm9yPnt7Z2V0VmFsaWRhdGlvbkVycm9yTWVzc2FnZShtb2RlbCl9fTwvbWF0LWVycm9yPlxuPC9tYXQtZm9ybS1maWVsZD4iXX0=