ngx-material-entity 0.1.2 → 0.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (183) hide show
  1. package/README.md +533 -326
  2. package/capsulation/lodash.utilities.d.ts +62 -0
  3. package/capsulation/reflect.utilities.d.ts +56 -0
  4. package/classes/base.builder.d.ts +36 -0
  5. package/classes/date.utilities.d.ts +70 -0
  6. package/classes/entity.model.d.ts +19 -0
  7. package/classes/entity.service.d.ts +108 -0
  8. package/classes/entity.utilities.d.ts +180 -0
  9. package/classes/file.utilities.d.ts +52 -0
  10. package/components/confirm-dialog/confirm-dialog-data.builder.d.ts +10 -11
  11. package/components/confirm-dialog/confirm-dialog-data.d.ts +4 -0
  12. package/components/confirm-dialog/confirm-dialog.component.d.ts +11 -0
  13. package/components/input/add-array-item-dialog-data.builder.d.ts +21 -0
  14. package/components/input/{array-table/add-array-item-dialog/add-array-item-dialog-data.d.ts → add-array-item-dialog-data.d.ts} +6 -3
  15. package/components/input/array/array-date-input/array-date-input.component.d.ts +22 -0
  16. package/components/input/array/array-date-range-input/array-date-range-input.component.d.ts +30 -0
  17. package/components/input/array/array-date-time-input/array-date-time-input.component.d.ts +32 -0
  18. package/components/input/array/array-string-autocomplete-chips/array-string-autocomplete-chips.component.d.ts +58 -0
  19. package/components/input/array/array-string-chips-input/array-string-chips-input.component.d.ts +51 -0
  20. package/components/input/array/array-table.class.d.ts +48 -0
  21. package/components/input/boolean/boolean-checkbox-input/boolean-checkbox-input.component.d.ts +17 -0
  22. package/components/input/boolean/boolean-dropdown-input/boolean-dropdown-input.component.d.ts +17 -0
  23. package/components/input/boolean/boolean-toggle-input/boolean-toggle-input.component.d.ts +17 -0
  24. package/components/input/date/date-input/date-input.component.d.ts +21 -0
  25. package/components/input/date/date-range-input/date-range-input.component.d.ts +27 -0
  26. package/components/input/date/date-time-input/date-time-input.component.d.ts +38 -0
  27. package/components/input/file/file-default-input/file-default-input.component.d.ts +21 -0
  28. package/components/input/file/file-image-input/file-image-input.component.d.ts +30 -0
  29. package/components/input/file/file-input/dragDrop.directive.d.ts +32 -0
  30. package/components/input/file/file-input/file-input.component.d.ts +32 -0
  31. package/components/input/input.component.d.ts +108 -39
  32. package/components/input/input.module.d.ts +37 -13
  33. package/components/input/number/number-dropdown-input/number-dropdown-input.component.d.ts +17 -0
  34. package/components/input/number/number-input/number-input.component.d.ts +17 -0
  35. package/components/input/string/string-autocomplete-input/string-autocomplete-input.component.d.ts +25 -0
  36. package/components/input/string/string-dropdown-input/string-dropdown-input.component.d.ts +17 -0
  37. package/components/input/string/string-input/string-input.component.d.ts +17 -0
  38. package/components/input/string/string-textbox-input/string-textbox-input.component.d.ts +17 -0
  39. package/components/table/create-dialog/create-dialog-data.builder.d.ts +9 -8
  40. package/components/table/create-dialog/create-entity-dialog-data.builder.d.ts +12 -6
  41. package/components/table/create-dialog/create-entity-dialog-data.d.ts +3 -3
  42. package/components/table/create-dialog/create-entity-dialog.component.d.ts +23 -7
  43. package/components/table/edit-dialog/edit-dialog-data.builder.d.ts +11 -13
  44. package/components/table/edit-dialog/edit-entity-dialog-data.d.ts +3 -3
  45. package/components/table/edit-dialog/edit-entity-dialog.builder.d.ts +12 -6
  46. package/components/table/edit-dialog/edit-entity-dialog.component.d.ts +25 -7
  47. package/components/table/table-data.builder.d.ts +25 -14
  48. package/components/table/table-data.d.ts +22 -10
  49. package/components/table/table.component.d.ts +48 -2
  50. package/components/table/table.module.d.ts +3 -1
  51. package/decorators/array/array-decorator-internal.data.d.ts +85 -9
  52. package/decorators/array/array-decorator.data.d.ts +200 -25
  53. package/decorators/array/array.decorator.d.ts +4 -4
  54. package/decorators/base/base-property.decorator.d.ts +2 -3
  55. package/decorators/base/decorator-types.enum.d.ts +13 -4
  56. package/decorators/base/dropdown-value.interface.d.ts +14 -0
  57. package/decorators/base/property-decorator-internal.data.d.ts +16 -3
  58. package/decorators/base/property-decorator.data.d.ts +26 -5
  59. package/decorators/boolean/boolean-decorator-internal.data.d.ts +9 -0
  60. package/decorators/boolean/boolean-decorator.data.d.ts +9 -0
  61. package/decorators/boolean/boolean.decorator.d.ts +1 -1
  62. package/decorators/date/date-decorator-internal.data.d.ts +44 -0
  63. package/decorators/date/date-decorator.data.d.ts +129 -0
  64. package/decorators/date/date.decorator.d.ts +8 -0
  65. package/decorators/file/file-decorator-internal.data.d.ts +92 -0
  66. package/decorators/file/file-decorator.data.d.ts +92 -0
  67. package/decorators/file/file.decorator.d.ts +9 -0
  68. package/decorators/number/number-decorator-internal.data.d.ts +8 -4
  69. package/decorators/number/number-decorator.data.d.ts +8 -4
  70. package/decorators/number/number.decorator.d.ts +2 -2
  71. package/decorators/object/object-decorator-internal.data.d.ts +6 -3
  72. package/decorators/object/object-decorator.data.d.ts +8 -5
  73. package/decorators/object/object.decorator.d.ts +3 -3
  74. package/decorators/string/string-decorator-internal.data.d.ts +14 -4
  75. package/decorators/string/string-decorator.data.d.ts +14 -4
  76. package/decorators/string/string.decorator.d.ts +1 -1
  77. package/esm2020/capsulation/lodash.utilities.mjs +75 -0
  78. package/esm2020/capsulation/reflect.utilities.mjs +69 -0
  79. package/esm2020/classes/base.builder.mjs +42 -0
  80. package/esm2020/classes/date.utilities.mjs +158 -0
  81. package/esm2020/classes/entity.model.mjs +19 -0
  82. package/esm2020/classes/entity.service.mjs +180 -0
  83. package/esm2020/classes/entity.utilities.mjs +669 -0
  84. package/esm2020/classes/file.utilities.mjs +123 -0
  85. package/esm2020/components/confirm-dialog/confirm-dialog-data.builder.mjs +17 -50
  86. package/esm2020/components/confirm-dialog/confirm-dialog-data.mjs +1 -1
  87. package/esm2020/components/confirm-dialog/confirm-dialog.component.mjs +15 -4
  88. package/esm2020/components/get-validation-error-message.function.mjs +5 -1
  89. package/esm2020/components/input/add-array-item-dialog-data.builder.mjs +30 -0
  90. package/esm2020/components/input/add-array-item-dialog-data.mjs +2 -0
  91. package/esm2020/components/input/array/array-date-input/array-date-input.component.mjs +44 -0
  92. package/esm2020/components/input/array/array-date-range-input/array-date-range-input.component.mjs +68 -0
  93. package/esm2020/components/input/array/array-date-time-input/array-date-time-input.component.mjs +65 -0
  94. package/esm2020/components/input/array/array-string-autocomplete-chips/array-string-autocomplete-chips.component.mjs +131 -0
  95. package/esm2020/components/input/array/array-string-chips-input/array-string-chips-input.component.mjs +116 -0
  96. package/esm2020/components/input/array/array-table.class.mjs +92 -0
  97. package/esm2020/components/input/boolean/boolean-checkbox-input/boolean-checkbox-input.component.mjs +38 -0
  98. package/esm2020/components/input/boolean/boolean-dropdown-input/boolean-dropdown-input.component.mjs +35 -0
  99. package/esm2020/components/input/boolean/boolean-toggle-input/boolean-toggle-input.component.mjs +38 -0
  100. package/esm2020/components/input/date/date-input/date-input.component.mjs +38 -0
  101. package/esm2020/components/input/date/date-range-input/date-range-input.component.mjs +63 -0
  102. package/esm2020/components/input/date/date-time-input/date-time-input.component.mjs +74 -0
  103. package/esm2020/components/input/file/file-default-input/file-default-input.component.mjs +39 -0
  104. package/esm2020/components/input/file/file-image-input/file-image-input.component.mjs +95 -0
  105. package/esm2020/components/input/file/file-input/dragDrop.directive.mjs +64 -0
  106. package/esm2020/components/input/file/file-input/file-input.component.mjs +152 -0
  107. package/esm2020/components/input/input.component.mjs +207 -110
  108. package/esm2020/components/input/input.module.mjs +87 -10
  109. package/esm2020/components/input/number/number-dropdown-input/number-dropdown-input.component.mjs +36 -0
  110. package/esm2020/components/input/number/number-input/number-input.component.mjs +34 -0
  111. package/esm2020/components/input/string/string-autocomplete-input/string-autocomplete-input.component.mjs +52 -0
  112. package/esm2020/components/input/string/string-dropdown-input/string-dropdown-input.component.mjs +36 -0
  113. package/esm2020/components/input/string/string-input/string-input.component.mjs +34 -0
  114. package/esm2020/components/input/string/string-textbox-input/string-textbox-input.component.mjs +35 -0
  115. package/esm2020/components/table/create-dialog/create-dialog-data.builder.mjs +18 -40
  116. package/esm2020/components/table/create-dialog/create-entity-dialog-data.builder.mjs +15 -7
  117. package/esm2020/components/table/create-dialog/create-entity-dialog-data.mjs +1 -1
  118. package/esm2020/components/table/create-dialog/create-entity-dialog.component.mjs +36 -22
  119. package/esm2020/components/table/create-dialog/create-entity-dialog.module.mjs +20 -4
  120. package/esm2020/components/table/edit-dialog/edit-dialog-data.builder.mjs +23 -63
  121. package/esm2020/components/table/edit-dialog/edit-entity-dialog-data.mjs +1 -1
  122. package/esm2020/components/table/edit-dialog/edit-entity-dialog.builder.mjs +15 -7
  123. package/esm2020/components/table/edit-dialog/edit-entity-dialog.component.mjs +50 -31
  124. package/esm2020/components/table/table-data.builder.mjs +31 -15
  125. package/esm2020/components/table/table-data.mjs +1 -1
  126. package/esm2020/components/table/table.component.mjs +77 -32
  127. package/esm2020/components/table/table.module.mjs +12 -4
  128. package/esm2020/decorators/array/array-decorator-internal.data.mjs +111 -12
  129. package/esm2020/decorators/array/array-decorator.data.mjs +2 -2
  130. package/esm2020/decorators/array/array.decorator.mjs +9 -3
  131. package/esm2020/decorators/base/base-property.decorator.mjs +4 -3
  132. package/esm2020/decorators/base/decorator-types.enum.mjs +9 -1
  133. package/esm2020/decorators/base/dropdown-value.interface.mjs +2 -0
  134. package/esm2020/decorators/base/property-decorator-internal.data.mjs +33 -10
  135. package/esm2020/decorators/base/property-decorator.data.mjs +1 -1
  136. package/esm2020/decorators/boolean/boolean-decorator-internal.data.mjs +12 -1
  137. package/esm2020/decorators/boolean/boolean-decorator.data.mjs +1 -1
  138. package/esm2020/decorators/boolean/boolean.decorator.mjs +2 -2
  139. package/esm2020/decorators/date/date-decorator-internal.data.mjs +48 -0
  140. package/esm2020/decorators/date/date-decorator.data.mjs +7 -0
  141. package/esm2020/decorators/date/date.decorator.mjs +21 -0
  142. package/esm2020/decorators/file/file-decorator-internal.data.mjs +98 -0
  143. package/esm2020/decorators/file/file-decorator.data.mjs +7 -0
  144. package/esm2020/decorators/file/file.decorator.mjs +22 -0
  145. package/esm2020/decorators/number/number-decorator-internal.data.mjs +7 -1
  146. package/esm2020/decorators/number/number-decorator.data.mjs +1 -1
  147. package/esm2020/decorators/number/number.decorator.mjs +3 -3
  148. package/esm2020/decorators/object/object-decorator-internal.data.mjs +5 -2
  149. package/esm2020/decorators/object/object-decorator.data.mjs +1 -1
  150. package/esm2020/decorators/object/object.decorator.mjs +2 -2
  151. package/esm2020/decorators/string/string-decorator-internal.data.mjs +13 -1
  152. package/esm2020/decorators/string/string-decorator.data.mjs +1 -1
  153. package/esm2020/decorators/string/string.decorator.mjs +2 -2
  154. package/esm2020/mocks/placeholder-data.png.mjs +3 -0
  155. package/esm2020/public-api.mjs +12 -5
  156. package/fesm2015/ngx-material-entity.mjs +3271 -894
  157. package/fesm2015/ngx-material-entity.mjs.map +1 -1
  158. package/fesm2020/ngx-material-entity.mjs +3140 -829
  159. package/fesm2020/ngx-material-entity.mjs.map +1 -1
  160. package/mocks/placeholder-data.png.d.ts +1 -0
  161. package/package.json +7 -1
  162. package/public-api.d.ts +12 -5
  163. package/classes/entity-model.class.d.ts +0 -9
  164. package/classes/entity-service.class.d.ts +0 -66
  165. package/classes/entity-utilities.class.d.ts +0 -112
  166. package/components/input/array-table/add-array-item-dialog/add-array-item-dialog-data.builder.d.ts +0 -17
  167. package/components/input/array-table/add-array-item-dialog/add-array-item-dialog.component.d.ts +0 -22
  168. package/components/input/array-table/add-array-item-dialog/add-array-item-dialog.module.d.ts +0 -12
  169. package/components/input/array-table/array-table.component.d.ts +0 -34
  170. package/components/input/array-table/array-table.module.d.ts +0 -19
  171. package/components/input/internal-input/internal-input.component.d.ts +0 -54
  172. package/components/input/internal-input/internal-input.module.d.ts +0 -16
  173. package/esm2020/classes/entity-model.class.mjs +0 -19
  174. package/esm2020/classes/entity-service.class.mjs +0 -76
  175. package/esm2020/classes/entity-utilities.class.mjs +0 -329
  176. package/esm2020/components/input/array-table/add-array-item-dialog/add-array-item-dialog-data.builder.mjs +0 -33
  177. package/esm2020/components/input/array-table/add-array-item-dialog/add-array-item-dialog-data.mjs +0 -2
  178. package/esm2020/components/input/array-table/add-array-item-dialog/add-array-item-dialog.component.mjs +0 -45
  179. package/esm2020/components/input/array-table/add-array-item-dialog/add-array-item-dialog.module.mjs +0 -22
  180. package/esm2020/components/input/array-table/array-table.component.mjs +0 -119
  181. package/esm2020/components/input/array-table/array-table.module.mjs +0 -66
  182. package/esm2020/components/input/internal-input/internal-input.component.mjs +0 -70
  183. package/esm2020/components/input/internal-input/internal-input.module.mjs +0 -54
@@ -1,16 +1,22 @@
1
1
  import { Component, Inject, Injector } from '@angular/core';
2
2
  import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';
3
- import { EntityUtilities } from '../../../classes/entity-utilities.class';
4
- import { cloneDeep } from 'lodash';
3
+ import { EntityUtilities } from '../../../classes/entity.utilities';
5
4
  import { NgxMatEntityConfirmDialogComponent } from '../../confirm-dialog/confirm-dialog.component';
6
5
  import { ConfirmDialogDataBuilder } from '../../confirm-dialog/confirm-dialog-data.builder';
7
6
  import { EditEntityDialogDataBuilder } from './edit-entity-dialog.builder';
7
+ import { LodashUtilities } from '../../../capsulation/lodash.utilities';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "@angular/material/dialog";
10
10
  import * as i2 from "@angular/material/button";
11
11
  import * as i3 from "../../input/input.component";
12
12
  import * as i4 from "@angular/common";
13
13
  import * as i5 from "@angular/forms";
14
+ /**
15
+ * The default dialog used to edit an existing entity based on the configuration passed in the MAT_DIALOG_DATA "inputData".
16
+ * Used by the ngx-mat-entity-table.
17
+ *
18
+ * It offers a lot of customization options which can be found in "EditEntityDialogData".
19
+ */
14
20
  export class NgxMatEntityEditDialogComponent {
15
21
  constructor(inputData, dialogRef, injector, dialog) {
16
22
  this.inputData = inputData;
@@ -18,80 +24,93 @@ export class NgxMatEntityEditDialogComponent {
18
24
  this.injector = injector;
19
25
  this.dialog = dialog;
20
26
  this.EntityUtilities = EntityUtilities;
21
- this.getWidth = EntityUtilities.getWidth;
27
+ this.isEntityValid = true;
28
+ this.isEntityDirty = (async () => false).call(this);
22
29
  }
23
30
  ngOnInit() {
24
- this.data = new EditEntityDialogDataBuilder(this.inputData).editDialogData;
31
+ this.data = new EditEntityDialogDataBuilder(this.inputData).getResult();
25
32
  this.dialogRef.disableClose = true;
26
- this.setEntityKeys();
33
+ this.entityRows = EntityUtilities.getEntityRows(this.data.entity, false, true);
27
34
  this.entityService = this.injector.get(this.data.EntityServiceClass);
28
- this.entityPriorChanges = cloneDeep(this.data.entity);
35
+ this.entityPriorChanges = LodashUtilities.cloneDeep(this.data.entity);
29
36
  }
30
- setEntityKeys() {
31
- this.entityKeys = Reflect.ownKeys(this.data.entity);
32
- const omitUpdateKeys = EntityUtilities.getOmitForUpdate(this.data.entity);
33
- this.entityKeys = this.entityKeys.filter((k) => !omitUpdateKeys.includes(k))
34
- .sort((a, b) => EntityUtilities.compareOrder(a, b, this.data.entity));
37
+ // eslint-disable-next-line jsdoc/require-jsdoc
38
+ checkEntity() {
39
+ this.isEntityValid = EntityUtilities.isEntityValid(this.data.entity, 'update');
40
+ this.isEntityDirty = EntityUtilities.dirty(this.data.entity, this.entityPriorChanges);
35
41
  }
42
+ /**
43
+ * Tries to save the changes and close the dialog afterwards.
44
+ * Also handles the confirmation if required.
45
+ */
36
46
  edit() {
37
47
  if (!this.data.editDialogData.editRequiresConfirmDialog) {
38
- return this.confirmEdit();
48
+ this.confirmEdit();
49
+ return;
39
50
  }
40
51
  const dialogData = new ConfirmDialogDataBuilder(this.data.editDialogData.confirmEditDialogData)
41
- .withDefaultText(['Do you really want to save all changes?'])
42
- .withDefaultConfirmButtonLabel('Save')
43
- .withDefaultTitle('Edit')
44
- .confirmDialogData;
45
- const dialogref = this.dialog.open(NgxMatEntityConfirmDialogComponent, {
52
+ .withDefault('text', ['Do you really want to save all changes?'])
53
+ .withDefault('confirmButtonLabel', 'Save')
54
+ .withDefault('title', 'Edit')
55
+ .getResult();
56
+ const dialogRef = this.dialog.open(NgxMatEntityConfirmDialogComponent, {
46
57
  data: dialogData,
47
58
  autoFocus: false,
48
59
  restoreFocus: false
49
60
  });
50
- dialogref.afterClosed().subscribe((res) => {
61
+ dialogRef.afterClosed().subscribe((res) => {
51
62
  if (res === 1) {
52
63
  this.confirmEdit();
53
64
  }
54
65
  });
55
66
  }
56
67
  confirmEdit() {
57
- this.entityService.update(this.data.entity, this.entityPriorChanges).then(() => this.dialogRef.close(1));
68
+ void this.entityService.update(this.data.entity, this.entityPriorChanges).then(() => this.dialogRef.close(1));
58
69
  }
70
+ /**
71
+ * Tries to delete the entity and close the dialog afterwards.
72
+ * Also handles the confirmation if required.
73
+ */
59
74
  delete() {
60
75
  if (!this.data.editDialogData.deleteRequiresConfirmDialog) {
61
- return this.confirmDelete();
76
+ this.confirmDelete();
77
+ return;
62
78
  }
63
79
  const dialogData = new ConfirmDialogDataBuilder(this.data.editDialogData.confirmDeleteDialogData)
64
- .withDefaultText(['Do you really want to delete this entity?'])
65
- .withDefaultType('delete')
66
- .withDefaultConfirmButtonLabel('Delete')
67
- .withDefaultTitle('Delete')
68
- .confirmDialogData;
69
- const dialogref = this.dialog.open(NgxMatEntityConfirmDialogComponent, {
80
+ .withDefault('text', ['Do you really want to delete this entity?'])
81
+ .withDefault('type', 'delete')
82
+ .withDefault('confirmButtonLabel', 'Delete')
83
+ .withDefault('title', 'Delete')
84
+ .getResult();
85
+ const dialogRef = this.dialog.open(NgxMatEntityConfirmDialogComponent, {
70
86
  data: dialogData,
71
87
  autoFocus: false,
72
88
  restoreFocus: false
73
89
  });
74
- dialogref.afterClosed().subscribe((res) => {
90
+ dialogRef.afterClosed().subscribe((res) => {
75
91
  if (res === 1) {
76
92
  this.confirmDelete();
77
93
  }
78
94
  });
79
95
  }
80
96
  confirmDelete() {
81
- this.entityService.delete(this.entityPriorChanges.id).then(() => this.dialogRef.close(2));
97
+ void this.entityService.delete(this.entityPriorChanges).then(() => this.dialogRef.close(2));
82
98
  }
99
+ /**
100
+ * Reverts all changes made and closes the dialog.
101
+ */
83
102
  cancel() {
84
103
  EntityUtilities.resetChangesOnEntity(this.data.entity, this.entityPriorChanges);
85
104
  this.dialogRef.close(0);
86
105
  }
87
106
  }
88
107
  NgxMatEntityEditDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NgxMatEntityEditDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1.MatDialogRef }, { token: i0.Injector }, { token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
89
- NgxMatEntityEditDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: NgxMatEntityEditDialogComponent, selector: "ngx-mat-entity-edit-dialog", ngImport: i0, template: "<h2 mat-dialog-title>\n {{data.editDialogData.title(data.entity)}}\n <button *ngIf=\"data.allowDelete(data.entity)\" mat-raised-button (click)=\"delete()\" color=\"warn\" class=\"delete-button\" tabindex=\"-1\">\n {{data.editDialogData.deleteButtonLabel}}\n </button>\n</h2>\n\n<mat-dialog-content>\n <form #form=\"ngForm\" class=\"row\">\n <ngx-mat-entity-input\n *ngFor=\"let key of entityKeys\"\n [entity]=\"data.entity\"\n [propertyKey]=\"key\"\n [hideOmitForEdit]=\"true\"\n class=\"col-lg-{{getWidth(data.entity, key, 'lg')}} col-md-{{getWidth(data.entity, key, 'md')}} col-sm-{{getWidth(data.entity, key, 'sm')}}\"\n >\n </ngx-mat-entity-input>\n </form>\n</mat-dialog-content>\n\n<mat-dialog-actions>\n <button mat-raised-button (click)=\"edit()\" [disabled]=\"!EntityUtilities.isEntityValid(data.entity, 'update') || !EntityUtilities.dirty(data.entity, entityPriorChanges)\">\n {{data.editDialogData.confirmButtonLabel}}\n </button>\n <button mat-raised-button (click)=\"cancel()\" class=\"cancel-button\">\n {{data.editDialogData.cancelButtonLabel}}\n </button>\n</mat-dialog-actions>\n", styles: ["mat-dialog-actions{display:flex;justify-content:space-between}.delete-button{float:right}\n"], components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.NgxMatEntityInputComponent, selector: "ngx-mat-entity-input", inputs: ["entity", "propertyKey", "getValidationErrorMessage", "hideOmitForCreate", "hideOmitForEdit"] }], directives: [{ type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }] });
108
+ NgxMatEntityEditDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: NgxMatEntityEditDialogComponent, selector: "ngx-mat-entity-edit-dialog", ngImport: i0, template: "<h2 mat-dialog-title>\n {{data.editDialogData.title(data.entity)}}\n <button *ngIf=\"data.allowDelete(data.entity)\" mat-raised-button (click)=\"delete()\" color=\"warn\" class=\"delete-button\" tabindex=\"-1\">\n {{data.editDialogData.deleteButtonLabel}}\n </button>\n</h2>\n\n<mat-dialog-content>\n <form #form=\"ngForm\" class=\"row\">\n <div class=\"row\" *ngFor=\"let row of entityRows\">\n <ngx-mat-entity-input\n *ngFor=\"let key of row.keys\"\n [entity]=\"data.entity\"\n [propertyKey]=\"key\"\n [hideOmitForEdit]=\"true\"\n class=\"col-lg-{{EntityUtilities.getWidth(data.entity, key, 'lg')}} col-md-{{EntityUtilities.getWidth(data.entity, key, 'md')}} col-sm-{{EntityUtilities.getWidth(data.entity, key, 'sm')}}\"\n (inputChangeEvent)=\"checkEntity()\"\n >\n </ngx-mat-entity-input>\n </div>\n </form>\n</mat-dialog-content>\n\n<mat-dialog-actions>\n <button mat-raised-button (click)=\"edit()\" [disabled]=\"!isEntityValid || (isEntityDirty | async) === false\">\n {{data.editDialogData.confirmButtonLabel}}\n </button>\n <button mat-raised-button (click)=\"cancel()\" class=\"cancel-button\">\n {{data.editDialogData.cancelButtonLabel}}\n </button>\n</mat-dialog-actions>\n", styles: ["mat-dialog-actions{display:flex;justify-content:space-between}.delete-button{float:right}\n"], components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i3.NgxMatEntityInputComponent, selector: "ngx-mat-entity-input", inputs: ["entity", "propertyKey", "getValidationErrorMessage", "hideOmitForCreate", "hideOmitForEdit"], outputs: ["inputChangeEvent"] }], directives: [{ type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }], pipes: { "async": i4.AsyncPipe } });
90
109
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: NgxMatEntityEditDialogComponent, decorators: [{
91
110
  type: Component,
92
- args: [{ selector: 'ngx-mat-entity-edit-dialog', template: "<h2 mat-dialog-title>\n {{data.editDialogData.title(data.entity)}}\n <button *ngIf=\"data.allowDelete(data.entity)\" mat-raised-button (click)=\"delete()\" color=\"warn\" class=\"delete-button\" tabindex=\"-1\">\n {{data.editDialogData.deleteButtonLabel}}\n </button>\n</h2>\n\n<mat-dialog-content>\n <form #form=\"ngForm\" class=\"row\">\n <ngx-mat-entity-input\n *ngFor=\"let key of entityKeys\"\n [entity]=\"data.entity\"\n [propertyKey]=\"key\"\n [hideOmitForEdit]=\"true\"\n class=\"col-lg-{{getWidth(data.entity, key, 'lg')}} col-md-{{getWidth(data.entity, key, 'md')}} col-sm-{{getWidth(data.entity, key, 'sm')}}\"\n >\n </ngx-mat-entity-input>\n </form>\n</mat-dialog-content>\n\n<mat-dialog-actions>\n <button mat-raised-button (click)=\"edit()\" [disabled]=\"!EntityUtilities.isEntityValid(data.entity, 'update') || !EntityUtilities.dirty(data.entity, entityPriorChanges)\">\n {{data.editDialogData.confirmButtonLabel}}\n </button>\n <button mat-raised-button (click)=\"cancel()\" class=\"cancel-button\">\n {{data.editDialogData.cancelButtonLabel}}\n </button>\n</mat-dialog-actions>\n", styles: ["mat-dialog-actions{display:flex;justify-content:space-between}.delete-button{float:right}\n"] }]
111
+ args: [{ selector: 'ngx-mat-entity-edit-dialog', template: "<h2 mat-dialog-title>\n {{data.editDialogData.title(data.entity)}}\n <button *ngIf=\"data.allowDelete(data.entity)\" mat-raised-button (click)=\"delete()\" color=\"warn\" class=\"delete-button\" tabindex=\"-1\">\n {{data.editDialogData.deleteButtonLabel}}\n </button>\n</h2>\n\n<mat-dialog-content>\n <form #form=\"ngForm\" class=\"row\">\n <div class=\"row\" *ngFor=\"let row of entityRows\">\n <ngx-mat-entity-input\n *ngFor=\"let key of row.keys\"\n [entity]=\"data.entity\"\n [propertyKey]=\"key\"\n [hideOmitForEdit]=\"true\"\n class=\"col-lg-{{EntityUtilities.getWidth(data.entity, key, 'lg')}} col-md-{{EntityUtilities.getWidth(data.entity, key, 'md')}} col-sm-{{EntityUtilities.getWidth(data.entity, key, 'sm')}}\"\n (inputChangeEvent)=\"checkEntity()\"\n >\n </ngx-mat-entity-input>\n </div>\n </form>\n</mat-dialog-content>\n\n<mat-dialog-actions>\n <button mat-raised-button (click)=\"edit()\" [disabled]=\"!isEntityValid || (isEntityDirty | async) === false\">\n {{data.editDialogData.confirmButtonLabel}}\n </button>\n <button mat-raised-button (click)=\"cancel()\" class=\"cancel-button\">\n {{data.editDialogData.cancelButtonLabel}}\n </button>\n</mat-dialog-actions>\n", styles: ["mat-dialog-actions{display:flex;justify-content:space-between}.delete-button{float:right}\n"] }]
93
112
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
94
113
  type: Inject,
95
114
  args: [MAT_DIALOG_DATA]
96
115
  }] }, { type: i1.MatDialogRef }, { type: i0.Injector }, { type: i1.MatDialog }]; } });
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1lbnRpdHktZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvdGFibGUvZWRpdC1kaWFsb2cvZWRpdC1lbnRpdHktZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvdGFibGUvZWRpdC1kaWFsb2cvZWRpdC1lbnRpdHktZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUdwRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVuQyxPQUFPLEVBQUUsa0NBQWtDLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUNuRyxPQUFPLEVBQUUsd0JBQXdCLEVBQTZCLE1BQU0sa0RBQWtELENBQUM7QUFDdkgsT0FBTyxFQUFFLDJCQUEyQixFQUFnQyxNQUFNLDhCQUE4QixDQUFDOzs7Ozs7O0FBT3pHLE1BQU0sT0FBUSwrQkFBK0I7SUFhekMsWUFFcUIsU0FBMkMsRUFDckQsU0FBb0UsRUFDMUQsUUFBa0IsRUFDbEIsTUFBaUI7UUFIakIsY0FBUyxHQUFULFNBQVMsQ0FBa0M7UUFDckQsY0FBUyxHQUFULFNBQVMsQ0FBMkQ7UUFDMUQsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBakJ0QyxvQkFBZSxHQUFHLGVBQWUsQ0FBQztRQVVs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bXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5qZWN0b3IsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nLCBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9lbnRpdHktc2VydmljZS5jbGFzcyc7XG5pbXBvcnQgeyBFbnRpdHkgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2VudGl0eS1tb2RlbC5jbGFzcyc7XG5pbXBvcnQgeyBFbnRpdHlVdGlsaXRpZXMgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2VudGl0eS11dGlsaXRpZXMuY2xhc3MnO1xuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEVkaXRFbnRpdHlEaWFsb2dEYXRhIH0gZnJvbSAnLi9lZGl0LWVudGl0eS1kaWFsb2ctZGF0YSc7XG5pbXBvcnQgeyBOZ3hNYXRFbnRpdHlDb25maXJtRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29uZmlybS1kaWFsb2cvY29uZmlybS1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IENvbmZpcm1EaWFsb2dEYXRhQnVpbGRlciwgQ29uZmlybURpYWxvZ0RhdGFJbnRlcm5hbCB9IGZyb20gJy4uLy4uL2NvbmZpcm0tZGlhbG9nL2NvbmZpcm0tZGlhbG9nLWRhdGEuYnVpbGRlcic7XG5pbXBvcnQgeyBFZGl0RW50aXR5RGlhbG9nRGF0YUJ1aWxkZXIsIEVkaXRFbnRpdHlEaWFsb2dEYXRhSW50ZXJuYWwgfSBmcm9tICcuL2VkaXQtZW50aXR5LWRpYWxvZy5idWlsZGVyJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3gtbWF0LWVudGl0eS1lZGl0LWRpYWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VkaXQtZW50aXR5LWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZWRpdC1lbnRpdHktZGlhbG9nLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgIE5neE1hdEVudGl0eUVkaXREaWFsb2dDb21wb25lbnQ8RW50aXR5VHlwZSBleHRlbmRzIEVudGl0eT4gaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEVudGl0eVV0aWxpdGllcyA9IEVudGl0eVV0aWxpdGllcztcblxuICAgIGVudGl0eUtleXMhOiAoa2V5b2YgRW50aXR5VHlwZSlbXTtcblxuICAgIGVudGl0eVNlcnZpY2UhOiBFbnRpdHlTZXJ2aWNlPEVudGl0eVR5cGU+O1xuXG4gICAgZW50aXR5UHJpb3JDaGFuZ2VzITogRW50aXR5VHlwZTtcblxuICAgIGRhdGEhOiBFZGl0RW50aXR5RGlhbG9nRGF0YUludGVybmFsPEVudGl0eVR5cGU+O1xuXG4gICAgZ2V0V2lkdGggPSBFbnRpdHlVdGlsaXRpZXMuZ2V0V2lkdGg7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaW5wdXREYXRhOiBFZGl0RW50aXR5RGlhbG9nRGF0YTxFbnRpdHlUeXBlPixcbiAgICAgICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE5neE1hdEVudGl0eUVkaXREaWFsb2dDb21wb25lbnQ8RW50aXR5VHlwZT4+LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2c6IE1hdERpYWxvZ1xuICAgICkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGEgPSBuZXcgRWRpdEVudGl0eURpYWxvZ0RhdGFCdWlsZGVyKHRoaXMuaW5wdXREYXRhKS5lZGl0RGlhbG9nRGF0YTtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuZGlzYWJsZUNsb3NlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5zZXRFbnRpdHlLZXlzKCk7XG4gICAgICAgIHRoaXMuZW50aXR5U2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0KHRoaXMuZGF0YS5FbnRpdHlTZXJ2aWNlQ2xhc3MpIGFzIEVudGl0eVNlcnZpY2U8RW50aXR5VHlwZT47XG4gICAgICAgIHRoaXMuZW50aXR5UHJpb3JDaGFuZ2VzID0gY2xvbmVEZWVwKHRoaXMuZGF0YS5lbnRpdHkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0RW50aXR5S2V5cygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5lbnRpdHlLZXlzID0gUmVmbGVjdC5vd25LZXlzKHRoaXMuZGF0YS5lbnRpdHkpIGFzIChrZXlvZiBFbnRpdHlUeXBlKVtdO1xuICAgICAgICBjb25zdCBvbWl0VXBkYXRlS2V5cyA9IEVudGl0eVV0aWxpdGllcy5nZXRPbWl0Rm9yVXBkYXRlKHRoaXMuZGF0YS5lbnRpdHkpO1xuICAgICAgICB0aGlzLmVudGl0eUtleXMgPSB0aGlzLmVudGl0eUtleXMuZmlsdGVyKChrKSA9PiAhb21pdFVwZGF0ZUtleXMuaW5jbHVkZXMoaykpXG4gICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gRW50aXR5VXRpbGl0aWVzLmNvbXBhcmVPcmRlcihhLCBiLCB0aGlzLmRhdGEuZW50aXR5KSk7XG4gICAgfVxuXG4gICAgZWRpdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLmRhdGEuZWRpdERpYWxvZ0RhdGEuZWRpdFJlcXVpcmVzQ29uZmlybURpYWxvZykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlybUVkaXQoKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBkaWFsb2dEYXRhOiBDb25maXJtRGlhbG9nRGF0YUludGVybmFsID0gbmV3IENvbmZpcm1EaWFsb2dEYXRhQnVpbGRlcih0aGlzLmRhdGEuZWRpdERpYWxvZ0RhdGEuY29uZmlybUVkaXREaWFsb2dEYXRhKVxuICAgICAgICAgICAgLndpdGhEZWZhdWx0VGV4dChbJ0RvIHlvdSByZWFsbHkgd2FudCB0byBzYXZlIGFsbCBjaGFuZ2VzPyddKVxuICAgICAgICAgICAgLndpdGhEZWZhdWx0Q29uZmlybUJ1dHRvbkxhYmVsKCdTYXZlJylcbiAgICAgICAgICAgIC53aXRoRGVmYXVsdFRpdGxlKCdFZGl0JylcbiAgICAgICAgICAgIC5jb25maXJtRGlhbG9nRGF0YTtcbiAgICAgICAgY29uc3QgZGlhbG9ncmVmID0gdGhpcy5kaWFsb2cub3BlbihOZ3hNYXRFbnRpdHlDb25maXJtRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiBkaWFsb2dEYXRhLFxuICAgICAgICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgICAgICAgIHJlc3RvcmVGb2N1czogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICAgIGRpYWxvZ3JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzOiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIGlmIChyZXMgPT09IDEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpcm1FZGl0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBwcml2YXRlIGNvbmZpcm1FZGl0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVudGl0eVNlcnZpY2UudXBkYXRlKHRoaXMuZGF0YS5lbnRpdHksIHRoaXMuZW50aXR5UHJpb3JDaGFuZ2VzKS50aGVuKCgpID0+IHRoaXMuZGlhbG9nUmVmLmNsb3NlKDEpKTtcbiAgICB9XG5cbiAgICBkZWxldGUoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kYXRhLmVkaXREaWFsb2dEYXRhLmRlbGV0ZVJlcXVpcmVzQ29uZmlybURpYWxvZykge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlybURlbGV0ZSgpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRpYWxvZ0RhdGE6IENvbmZpcm1EaWFsb2dEYXRhSW50ZXJuYWwgPSBuZXcgQ29uZmlybURpYWxvZ0RhdGFCdWlsZGVyKHRoaXMuZGF0YS5lZGl0RGlhbG9nRGF0YS5jb25maXJtRGVsZXRlRGlhbG9nRGF0YSlcbiAgICAgICAgICAgIC53aXRoRGVmYXVsdFRleHQoWydEbyB5b3UgcmVhbGx5IHdhbnQgdG8gZGVsZXRlIHRoaXMgZW50aXR5PyddKVxuICAgICAgICAgICAgLndpdGhEZWZhdWx0VHlwZSgnZGVsZXRlJylcbiAgICAgICAgICAgIC53aXRoRGVmYXVsdENvbmZpcm1CdXR0b25MYWJlbCgnRGVsZXRlJylcbiAgICAgICAgICAgIC53aXRoRGVmYXVsdFRpdGxlKCdEZWxldGUnKVxuICAgICAgICAgICAgLmNvbmZpcm1EaWFsb2dEYXRhO1xuICAgICAgICBjb25zdCBkaWFsb2dyZWYgPSB0aGlzLmRpYWxvZy5vcGVuKE5neE1hdEVudGl0eUNvbmZpcm1EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgICAgICAgIGRhdGE6IGRpYWxvZ0RhdGEsXG4gICAgICAgICAgICBhdXRvRm9jdXM6IGZhbHNlLFxuICAgICAgICAgICAgcmVzdG9yZUZvY3VzOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICAgICAgZGlhbG9ncmVmLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXM6IG51bWJlcikgPT4ge1xuICAgICAgICAgICAgaWYgKHJlcyA9PT0gMSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlybURlbGV0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgcHJpdmF0ZSBjb25maXJtRGVsZXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVudGl0eVNlcnZpY2UuZGVsZXRlKHRoaXMuZW50aXR5UHJpb3JDaGFuZ2VzLmlkKS50aGVuKCgpID0+IHRoaXMuZGlhbG9nUmVmLmNsb3NlKDIpKTtcbiAgICB9XG5cbiAgICBjYW5jZWwoKTogdm9pZCB7XG4gICAgICAgIEVudGl0eVV0aWxpdGllcy5yZXNldENoYW5nZXNPbkVudGl0eSh0aGlzLmRhdGEuZW50aXR5LCB0aGlzLmVudGl0eVByaW9yQ2hhbmdlcyk7XG4gICAgICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKDApO1xuICAgIH1cbn0iLCI8aDIgbWF0LWRpYWxvZy10aXRsZT5cbiAgICB7e2RhdGEuZWRpdERpYWxvZ0RhdGEudGl0bGUoZGF0YS5lbnRpdHkpfX1cbiAgICA8YnV0dG9uICpuZ0lmPVwiZGF0YS5hbGxvd0RlbGV0ZShkYXRhLmVudGl0eSlcIiBtYXQtcmFpc2VkLWJ1dHRvbiAoY2xpY2spPVwiZGVsZXRlKClcIiBjb2xvcj1cIndhcm5cIiBjbGFzcz1cImRlbGV0ZS1idXR0b25cIiB0YWJpbmRleD1cIi0xXCI+XG4gICAgICAgIHt7ZGF0YS5lZGl0RGlhbG9nRGF0YS5kZWxldGVCdXR0b25MYWJlbH19XG4gICAgPC9idXR0b24+XG48L2gyPlxuXG48bWF0LWRpYWxvZy1jb250ZW50PlxuICAgIDxmb3JtICNmb3JtPVwibmdGb3JtXCIgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgPG5neC1tYXQtZW50aXR5LWlucHV0XG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQga2V5IG9mIGVudGl0eUtleXNcIlxuICAgICAgICAgICAgW2VudGl0eV09XCJkYXRhLmVudGl0eVwiXG4gICAgICAgICAgICBbcHJvcGVydHlLZXldPVwia2V5XCJcbiAgICAgICAgICAgIFtoaWRlT21pdEZvckVkaXRdPVwidHJ1ZVwiXG4gICAgICAgICAgICBjbGFzcz1cImNvbC1sZy17e2dldFdpZHRoKGRhdGEuZW50aXR5LCBrZXksICdsZycpfX0gY29sLW1kLXt7Z2V0V2lkdGgoZGF0YS5lbnRpdHksIGtleSwgJ21kJyl9fSBjb2wtc20te3tnZXRXaWR0aChkYXRhLmVudGl0eSwga2V5LCAnc20nKX19XCJcbiAgICAgICAgPlxuICAgICAgICA8L25neC1tYXQtZW50aXR5LWlucHV0PlxuICAgIDwvZm9ybT5cbjwvbWF0LWRpYWxvZy1jb250ZW50PlxuXG48bWF0LWRpYWxvZy1hY3Rpb25zPlxuICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cImVkaXQoKVwiIFtkaXNhYmxlZF09XCIhRW50aXR5VXRpbGl0aWVzLmlzRW50aXR5VmFsaWQoZGF0YS5lbnRpdHksICd1cGRhdGUnKSB8fCAhRW50aXR5VXRpbGl0aWVzLmRpcnR5KGRhdGEuZW50aXR5LCBlbnRpdHlQcmlvckNoYW5nZXMpXCI+XG4gICAgICAgIHt7ZGF0YS5lZGl0RGlhbG9nRGF0YS5jb25maXJtQnV0dG9uTGFiZWx9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cImNhbmNlbCgpXCIgY2xhc3M9XCJjYW5jZWwtYnV0dG9uXCI+XG4gICAgICAgIHt7ZGF0YS5lZGl0RGlhbG9nRGF0YS5jYW5jZWxCdXR0b25MYWJlbH19XG4gICAgPC9idXR0b24+XG48L21hdC1kaWFsb2ctYWN0aW9ucz5cbiJdfQ==
116
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1lbnRpdHktZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvdGFibGUvZWRpdC1kaWFsb2cvZWRpdC1lbnRpdHktZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvdGFibGUvZWRpdC1kaWFsb2cvZWRpdC1lbnRpdHktZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUVwRixPQUFPLEVBQWEsZUFBZSxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFL0UsT0FBTyxFQUFFLGtDQUFrQyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDbkcsT0FBTyxFQUFFLHdCQUF3QixFQUE2QixNQUFNLGtEQUFrRCxDQUFDO0FBQ3ZILE9BQU8sRUFBRSwyQkFBMkIsRUFBZ0MsTUFBTSw4QkFBOEIsQ0FBQztBQUN6RyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7QUFHeEU7Ozs7O0dBS0c7QUFNSCxNQUFNLE9BQU8sK0JBQStCO0lBY3hDLFlBRXFCLFNBQTJDLEVBQ3JELFNBQW9FLEVBQzFELFFBQWtCLEVBQ2xCLE1BQWlCO1FBSGpCLGNBQVMsR0FBVCxTQUFTLENBQWtDO1FBQ3JELGNBQVMsR0FBVCxTQUFTLENBQTJEO1FBQzFELGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQWxCdEMsb0JBQWUsR0FB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QTs0RkRUYSwrQkFBK0I7a0JBTDNDLFNBQVM7K0JBQ0ksNEJBQTRCOzswQkFtQmpDLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbmplY3RvciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2csIE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEVudGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2VudGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IEVudGl0eVJvdywgRW50aXR5VXRpbGl0aWVzIH0gZnJvbSAnLi4vLi4vLi4vY2xhc3Nlcy9lbnRpdHkudXRpbGl0aWVzJztcbmltcG9ydCB7IEVkaXRFbnRpdHlEaWFsb2dEYXRhIH0gZnJvbSAnLi9lZGl0LWVudGl0eS1kaWFsb2ctZGF0YSc7XG5pbXBvcnQgeyBOZ3hNYXRFbnRpdHlDb25maXJtRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29uZmlybS1kaWFsb2cvY29uZmlybS1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IENvbmZpcm1EaWFsb2dEYXRhQnVpbGRlciwgQ29uZmlybURpYWxvZ0RhdGFJbnRlcm5hbCB9IGZyb20gJy4uLy4uL2NvbmZpcm0tZGlhbG9nL2NvbmZpcm0tZGlhbG9nLWRhdGEuYnVpbGRlcic7XG5pbXBvcnQgeyBFZGl0RW50aXR5RGlhbG9nRGF0YUJ1aWxkZXIsIEVkaXRFbnRpdHlEaWFsb2dEYXRhSW50ZXJuYWwgfSBmcm9tICcuL2VkaXQtZW50aXR5LWRpYWxvZy5idWlsZGVyJztcbmltcG9ydCB7IExvZGFzaFV0aWxpdGllcyB9IGZyb20gJy4uLy4uLy4uL2NhcHN1bGF0aW9uL2xvZGFzaC51dGlsaXRpZXMnO1xuaW1wb3J0IHsgQmFzZUVudGl0eVR5cGUgfSBmcm9tICcuLi8uLi8uLi9jbGFzc2VzL2VudGl0eS5tb2RlbCc7XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgZGlhbG9nIHVzZWQgdG8gZWRpdCBhbiBleGlzdGluZyBlbnRpdHkgYmFzZWQgb24gdGhlIGNvbmZpZ3VyYXRpb24gcGFzc2VkIGluIHRoZSBNQVRfRElBTE9HX0RBVEEgXCJpbnB1dERhdGFcIi5cbiAqIFVzZWQgYnkgdGhlIG5neC1tYXQtZW50aXR5LXRhYmxlLlxuICpcbiAqIEl0IG9mZmVycyBhIGxvdCBvZiBjdXN0b21pemF0aW9uIG9wdGlvbnMgd2hpY2ggY2FuIGJlIGZvdW5kIGluIFwiRWRpdEVudGl0eURpYWxvZ0RhdGFcIi5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICduZ3gtbWF0LWVudGl0eS1lZGl0LWRpYWxvZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2VkaXQtZW50aXR5LWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZWRpdC1lbnRpdHktZGlhbG9nLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgTmd4TWF0RW50aXR5RWRpdERpYWxvZ0NvbXBvbmVudDxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBFbnRpdHlVdGlsaXRpZXMgPSBFbnRpdHlVdGlsaXRpZXM7XG5cbiAgICBlbnRpdHlSb3dzITogRW50aXR5Um93PEVudGl0eVR5cGU+W107XG5cbiAgICBlbnRpdHlTZXJ2aWNlITogRW50aXR5U2VydmljZTxFbnRpdHlUeXBlPjtcblxuICAgIGVudGl0eVByaW9yQ2hhbmdlcyE6IEVudGl0eVR5cGU7XG5cbiAgICBkYXRhITogRWRpdEVudGl0eURpYWxvZ0RhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPjtcblxuICAgIGlzRW50aXR5VmFsaWQ6IGJvb2xlYW4gPSB0cnVlO1xuICAgIGlzRW50aXR5RGlydHk6IFByb21pc2U8Ym9vbGVhbj4gPSAoYXN5bmMgKCkgPT4gZmFsc2UpLmNhbGwodGhpcyk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgaW5wdXREYXRhOiBFZGl0RW50aXR5RGlhbG9nRGF0YTxFbnRpdHlUeXBlPixcbiAgICAgICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPE5neE1hdEVudGl0eUVkaXREaWFsb2dDb21wb25lbnQ8RW50aXR5VHlwZT4+LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBkaWFsb2c6IE1hdERpYWxvZ1xuICAgICkge31cblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGEgPSBuZXcgRWRpdEVudGl0eURpYWxvZ0RhdGFCdWlsZGVyKHRoaXMuaW5wdXREYXRhKS5nZXRSZXN1bHQoKTtcbiAgICAgICAgdGhpcy5kaWFsb2dSZWYuZGlzYWJsZUNsb3NlID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5lbnRpdHlSb3dzID0gRW50aXR5VXRpbGl0aWVzLmdldEVudGl0eVJvd3ModGhpcy5kYXRhLmVudGl0eSwgZmFsc2UsIHRydWUpO1xuICAgICAgICB0aGlzLmVudGl0eVNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldCh0aGlzLmRhdGEuRW50aXR5U2VydmljZUNsYXNzKSBhcyBFbnRpdHlTZXJ2aWNlPEVudGl0eVR5cGU+O1xuICAgICAgICB0aGlzLmVudGl0eVByaW9yQ2hhbmdlcyA9IExvZGFzaFV0aWxpdGllcy5jbG9uZURlZXAodGhpcy5kYXRhLmVudGl0eSk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBjaGVja0VudGl0eSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0VudGl0eVZhbGlkID0gRW50aXR5VXRpbGl0aWVzLmlzRW50aXR5VmFsaWQodGhpcy5kYXRhLmVudGl0eSwgJ3VwZGF0ZScpO1xuICAgICAgICB0aGlzLmlzRW50aXR5RGlydHkgPSBFbnRpdHlVdGlsaXRpZXMuZGlydHkodGhpcy5kYXRhLmVudGl0eSwgdGhpcy5lbnRpdHlQcmlvckNoYW5nZXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRyaWVzIHRvIHNhdmUgdGhlIGNoYW5nZXMgYW5kIGNsb3NlIHRoZSBkaWFsb2cgYWZ0ZXJ3YXJkcy5cbiAgICAgKiBBbHNvIGhhbmRsZXMgdGhlIGNvbmZpcm1hdGlvbiBpZiByZXF1aXJlZC5cbiAgICAgKi9cbiAgICBlZGl0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGF0YS5lZGl0RGlhbG9nRGF0YS5lZGl0UmVxdWlyZXNDb25maXJtRGlhbG9nKSB7XG4gICAgICAgICAgICB0aGlzLmNvbmZpcm1FZGl0KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZGlhbG9nRGF0YTogQ29uZmlybURpYWxvZ0RhdGFJbnRlcm5hbCA9IG5ldyBDb25maXJtRGlhbG9nRGF0YUJ1aWxkZXIodGhpcy5kYXRhLmVkaXREaWFsb2dEYXRhLmNvbmZpcm1FZGl0RGlhbG9nRGF0YSlcbiAgICAgICAgICAgIC53aXRoRGVmYXVsdCgndGV4dCcsIFsnRG8geW91IHJlYWxseSB3YW50IHRvIHNhdmUgYWxsIGNoYW5nZXM/J10pXG4gICAgICAgICAgICAud2l0aERlZmF1bHQoJ2NvbmZpcm1CdXR0b25MYWJlbCcsICdTYXZlJylcbiAgICAgICAgICAgIC53aXRoRGVmYXVsdCgndGl0bGUnLCAnRWRpdCcpXG4gICAgICAgICAgICAuZ2V0UmVzdWx0KCk7XG4gICAgICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oTmd4TWF0RW50aXR5Q29uZmlybURpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICAgICAgZGF0YTogZGlhbG9nRGF0YSxcbiAgICAgICAgICAgIGF1dG9Gb2N1czogZmFsc2UsXG4gICAgICAgICAgICByZXN0b3JlRm9jdXM6IGZhbHNlXG4gICAgICAgIH0pO1xuICAgICAgICBkaWFsb2dSZWYuYWZ0ZXJDbG9zZWQoKS5zdWJzY3JpYmUoKHJlczogbnVtYmVyKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzID09PSAxKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb25maXJtRWRpdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbmZpcm1FZGl0KCk6IHZvaWQge1xuICAgICAgICB2b2lkIHRoaXMuZW50aXR5U2VydmljZS51cGRhdGUodGhpcy5kYXRhLmVudGl0eSwgdGhpcy5lbnRpdHlQcmlvckNoYW5nZXMpLnRoZW4oKCkgPT4gdGhpcy5kaWFsb2dSZWYuY2xvc2UoMSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRyaWVzIHRvIGRlbGV0ZSB0aGUgZW50aXR5IGFuZCBjbG9zZSB0aGUgZGlhbG9nIGFmdGVyd2FyZHMuXG4gICAgICogQWxzbyBoYW5kbGVzIHRoZSBjb25maXJtYXRpb24gaWYgcmVxdWlyZWQuXG4gICAgICovXG4gICAgZGVsZXRlKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuZGF0YS5lZGl0RGlhbG9nRGF0YS5kZWxldGVSZXF1aXJlc0NvbmZpcm1EaWFsb2cpIHtcbiAgICAgICAgICAgIHRoaXMuY29uZmlybURlbGV0ZSgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGRpYWxvZ0RhdGE6IENvbmZpcm1EaWFsb2dEYXRhSW50ZXJuYWwgPSBuZXcgQ29uZmlybURpYWxvZ0RhdGFCdWlsZGVyKHRoaXMuZGF0YS5lZGl0RGlhbG9nRGF0YS5jb25maXJtRGVsZXRlRGlhbG9nRGF0YSlcbiAgICAgICAgICAgIC53aXRoRGVmYXVsdCgndGV4dCcsIFsnRG8geW91IHJlYWxseSB3YW50IHRvIGRlbGV0ZSB0aGlzIGVudGl0eT8nXSlcbiAgICAgICAgICAgIC53aXRoRGVmYXVsdCgndHlwZScsICdkZWxldGUnKVxuICAgICAgICAgICAgLndpdGhEZWZhdWx0KCdjb25maXJtQnV0dG9uTGFiZWwnLCAnRGVsZXRlJylcbiAgICAgICAgICAgIC53aXRoRGVmYXVsdCgndGl0bGUnLCAnRGVsZXRlJylcbiAgICAgICAgICAgIC5nZXRSZXN1bHQoKTtcbiAgICAgICAgY29uc3QgZGlhbG9nUmVmID0gdGhpcy5kaWFsb2cub3BlbihOZ3hNYXRFbnRpdHlDb25maXJtRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICBkYXRhOiBkaWFsb2dEYXRhLFxuICAgICAgICAgICAgYXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgICAgICAgIHJlc3RvcmVGb2N1czogZmFsc2VcbiAgICAgICAgfSk7XG4gICAgICAgIGRpYWxvZ1JlZi5hZnRlckNsb3NlZCgpLnN1YnNjcmliZSgocmVzOiBudW1iZXIpID0+IHtcbiAgICAgICAgICAgIGlmIChyZXMgPT09IDEpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpcm1EZWxldGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb25maXJtRGVsZXRlKCk6IHZvaWQge1xuICAgICAgICB2b2lkIHRoaXMuZW50aXR5U2VydmljZS5kZWxldGUodGhpcy5lbnRpdHlQcmlvckNoYW5nZXMpLnRoZW4oKCkgPT4gdGhpcy5kaWFsb2dSZWYuY2xvc2UoMikpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldmVydHMgYWxsIGNoYW5nZXMgbWFkZSBhbmQgY2xvc2VzIHRoZSBkaWFsb2cuXG4gICAgICovXG4gICAgY2FuY2VsKCk6IHZvaWQge1xuICAgICAgICBFbnRpdHlVdGlsaXRpZXMucmVzZXRDaGFuZ2VzT25FbnRpdHkodGhpcy5kYXRhLmVudGl0eSwgdGhpcy5lbnRpdHlQcmlvckNoYW5nZXMpO1xuICAgICAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSgwKTtcbiAgICB9XG59IiwiPGgyIG1hdC1kaWFsb2ctdGl0bGU+XG4gICAge3tkYXRhLmVkaXREaWFsb2dEYXRhLnRpdGxlKGRhdGEuZW50aXR5KX19XG4gICAgPGJ1dHRvbiAqbmdJZj1cImRhdGEuYWxsb3dEZWxldGUoZGF0YS5lbnRpdHkpXCIgbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cImRlbGV0ZSgpXCIgY29sb3I9XCJ3YXJuXCIgY2xhc3M9XCJkZWxldGUtYnV0dG9uXCIgdGFiaW5kZXg9XCItMVwiPlxuICAgICAgICB7e2RhdGEuZWRpdERpYWxvZ0RhdGEuZGVsZXRlQnV0dG9uTGFiZWx9fVxuICAgIDwvYnV0dG9uPlxuPC9oMj5cblxuPG1hdC1kaWFsb2ctY29udGVudD5cbiAgICA8Zm9ybSAjZm9ybT1cIm5nRm9ybVwiIGNsYXNzPVwicm93XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIiAqbmdGb3I9XCJsZXQgcm93IG9mIGVudGl0eVJvd3NcIj5cbiAgICAgICAgICAgIDxuZ3gtbWF0LWVudGl0eS1pbnB1dFxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBrZXkgb2Ygcm93LmtleXNcIlxuICAgICAgICAgICAgICAgIFtlbnRpdHldPVwiZGF0YS5lbnRpdHlcIlxuICAgICAgICAgICAgICAgIFtwcm9wZXJ0eUtleV09XCJrZXlcIlxuICAgICAgICAgICAgICAgIFtoaWRlT21pdEZvckVkaXRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjb2wtbGcte3tFbnRpdHlVdGlsaXRpZXMuZ2V0V2lkdGgoZGF0YS5lbnRpdHksIGtleSwgJ2xnJyl9fSBjb2wtbWQte3tFbnRpdHlVdGlsaXRpZXMuZ2V0V2lkdGgoZGF0YS5lbnRpdHksIGtleSwgJ21kJyl9fSBjb2wtc20te3tFbnRpdHlVdGlsaXRpZXMuZ2V0V2lkdGgoZGF0YS5lbnRpdHksIGtleSwgJ3NtJyl9fVwiXG4gICAgICAgICAgICAgICAgKGlucHV0Q2hhbmdlRXZlbnQpPVwiY2hlY2tFbnRpdHkoKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICA8L25neC1tYXQtZW50aXR5LWlucHV0PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Zvcm0+XG48L21hdC1kaWFsb2ctY29udGVudD5cblxuPG1hdC1kaWFsb2ctYWN0aW9ucz5cbiAgICA8YnV0dG9uIG1hdC1yYWlzZWQtYnV0dG9uIChjbGljayk9XCJlZGl0KClcIiBbZGlzYWJsZWRdPVwiIWlzRW50aXR5VmFsaWQgfHwgKGlzRW50aXR5RGlydHkgfCBhc3luYykgPT09IGZhbHNlXCI+XG4gICAgICAgIHt7ZGF0YS5lZGl0RGlhbG9nRGF0YS5jb25maXJtQnV0dG9uTGFiZWx9fVxuICAgIDwvYnV0dG9uPlxuICAgIDxidXR0b24gbWF0LXJhaXNlZC1idXR0b24gKGNsaWNrKT1cImNhbmNlbCgpXCIgY2xhc3M9XCJjYW5jZWwtYnV0dG9uXCI+XG4gICAgICAgIHt7ZGF0YS5lZGl0RGlhbG9nRGF0YS5jYW5jZWxCdXR0b25MYWJlbH19XG4gICAgPC9idXR0b24+XG48L21hdC1kaWFsb2ctYWN0aW9ucz5cbiJdfQ==
@@ -1,5 +1,9 @@
1
1
  import { CreateDialogDataBuilder } from './create-dialog/create-dialog-data.builder';
2
2
  import { EditDialogDataBuilder } from './edit-dialog/edit-dialog-data.builder';
3
+ import { BaseBuilder } from '../../classes/base.builder';
4
+ /**
5
+ * The internal TableData. Requires all default values the user can leave out.
6
+ */
3
7
  export class TableDataInternal {
4
8
  constructor(baseData, createDialogData, editDialogData) {
5
9
  this.baseData = baseData;
@@ -7,14 +11,21 @@ export class TableDataInternal {
7
11
  this.editDialogData = editDialogData;
8
12
  }
9
13
  }
10
- export class BaseDataBuilder {
14
+ /**
15
+ * The Builder for the table BaseData. Sets default values.
16
+ */
17
+ export class BaseDataBuilder extends BaseBuilder {
11
18
  constructor(data) {
12
- //this.validateInput(data);
13
- this.dataInput = data;
14
- this.baseData = new BaseDataInternal(data.title, data.displayColumns, data.EntityServiceClass, data.searchLabel ? data.searchLabel : 'Search', data.createButtonLabel ? data.createButtonLabel : 'Create', data.searchString ? data.searchString : defaultSearchFunction, data.allowCreate ? data.allowCreate : true, data.allowEdit ? data.allowEdit : () => true, data.allowDelete ? data.allowDelete : () => true, data.multiSelectActions ? data.multiSelectActions : [], data.multiSelectLabel ? data.multiSelectLabel : 'Actions', data.EntityClass, data.edit, data.create);
15
- return this;
19
+ super(data);
20
+ }
21
+ // eslint-disable-next-line jsdoc/require-jsdoc
22
+ generateBaseData(data) {
23
+ return new BaseDataInternal(data.title, data.displayColumns, data.EntityServiceClass, data.searchLabel ?? 'Search', data.createButtonLabel ?? 'Create', data.searchString ?? defaultSearchFunction, data.allowCreate ?? true, data.allowEdit ?? (() => true), data.allowDelete ?? (() => true), data.multiSelectActions ?? [], data.multiSelectLabel ?? 'Actions', data.EntityClass, data.edit, data.create);
16
24
  }
17
25
  }
26
+ /**
27
+ * The internal TableData. Requires all default values the user can leave out.
28
+ */
18
29
  export class BaseDataInternal {
19
30
  constructor(title, displayColumns, EntityServiceClass, searchLabel, createButtonLabel, searchString, allowCreate, allowEdit, allowDelete, multiSelectActions, multiSelectLabel, EntityClass, edit, create) {
20
31
  this.title = title;
@@ -33,16 +44,21 @@ export class BaseDataInternal {
33
44
  this.create = create;
34
45
  }
35
46
  }
36
- export class TableDataBuilder {
47
+ /**
48
+ * The Builder for the complete TableData. Sets default values and validates user input.
49
+ */
50
+ export class TableDataBuilder extends BaseBuilder {
37
51
  constructor(data) {
38
- this.validateInput(data);
39
- this.dataInput = data;
40
- const createDialogData = new CreateDialogDataBuilder(data.createDialogData).createDialogData;
41
- const editDialogData = new EditDialogDataBuilder(data.editDialogData).editDialogData;
42
- const baseData = new BaseDataBuilder(data.baseData).baseData;
43
- this.tableData = new TableDataInternal(baseData, createDialogData, editDialogData);
44
- return this;
52
+ super(data);
53
+ }
54
+ // eslint-disable-next-line jsdoc/require-jsdoc
55
+ generateBaseData(data) {
56
+ const createDialogData = new CreateDialogDataBuilder(data.createDialogData).getResult();
57
+ const editDialogData = new EditDialogDataBuilder(data.editDialogData).getResult();
58
+ const baseData = new BaseDataBuilder(data.baseData).getResult();
59
+ return new TableDataInternal(baseData, createDialogData, editDialogData);
45
60
  }
61
+ // eslint-disable-next-line jsdoc/require-jsdoc
46
62
  validateInput(data) {
47
63
  if (data.baseData.multiSelectActions?.length && data.baseData.displayColumns.find(dp => dp.displayName === 'select')) {
48
64
  throw new Error(`The name "select" for a display column is reserved for the multi-select action functionality.
@@ -50,7 +66,7 @@ export class TableDataBuilder {
50
66
  }
51
67
  if ((data.baseData.allowEdit && data.baseData.allowEdit !== (() => false)
52
68
  || data.baseData.allowDelete && data.baseData.allowDelete !== (() => false)
53
- || data.baseData.allowCreate)
69
+ || data.baseData.allowCreate === true)
54
70
  && !data.baseData.EntityClass) {
55
71
  throw new Error(`
56
72
  Missing required Input data "EntityClass".
@@ -86,4 +102,4 @@ function defaultSearchFunction(entity) {
86
102
  .toLowerCase();
87
103
  return searchString;
88
104
  }
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZGF0YS5idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLWVudGl0eS9zcmMvY29tcG9uZW50cy90YWJsZS90YWJsZS1kYXRhLmJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLHVCQUF1QixFQUE0QixNQUFNLDRDQUE0QyxDQUFDO0FBQy9HLE9BQU8sRUFBRSxxQkFBcUIsRUFBMEIsTUFBTSx3Q0FBd0MsQ0FBQztBQUl2RyxNQUFNLE9BQU8saUJBQWlCO0lBSzFCLFlBQ0ksUUFBc0MsRUFDdEMsZ0JBQTBDLEVBQzFDLGNBQWtEO1FBRWxELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztJQUN6QyxDQUFDO0NBQ0o7QUFFRCxNQUFNLE9BQU8sZUFBZTtJQUl4QixZQUFZLElBQTBCO1FBQ2xDLDJCQUEyQjtRQUMzQixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksZ0JBQWdCLENBQ2hDLElBQUksQ0FBQyxLQUFLLEVBQ1YsSUFBSSxDQUFDLGNBQWMsRUFDbkIsSUFBSSxDQUFDLGtCQUFrQixFQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQzlDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQzFELElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLHFCQUFxQixFQUM3RCxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQzFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksRUFDNUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxFQUNoRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUN0RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxFQUN6RCxJQUFJLENBQUMsV0FBVyxFQUNoQixJQUFJLENBQUMsSUFBSSxFQUNULElBQUksQ0FBQyxNQUFNLENBQ2QsQ0FBQztRQUNGLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxnQkFBZ0I7SUFpQnpCLFlBQ0ksS0FBYSxFQUNiLGNBQTJDLEVBQzNDLGtCQUE2RSxFQUM3RSxXQUFtQixFQUNuQixpQkFBeUIsRUFDekIsWUFBMkMsRUFDM0MsV0FBb0IsRUFDcEIsU0FBMEMsRUFDMUMsV0FBNEMsRUFDNUMsa0JBQW1ELEVBQ25ELGdCQUF3QixFQUV4QixXQUFxRCxFQUNyRCxJQUFzQyxFQUN0QyxNQUF3QztRQUV4QyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztRQUNyQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsa0JBQWtCLENBQUM7UUFDN0MsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDL0IsSUFBSSxDQUFDLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDO1FBQzNDLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDO1FBQzNCLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1FBQy9CLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztRQUM3QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZ0JBQWdCLENBQUM7UUFDekMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7SUFDekIsQ0FBQztDQUNKO0FBRUQsTUFBTSxPQUFPLGdCQUFnQjtJQUl6QixZQUFZLElBQTJCO1FBQ25DLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsTUFBTSxnQkFBZ0IsR0FBNkIsSUFBSSx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztRQUN2SCxNQUFNLGNBQWMsR0FBdUMsSUFBSSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsY0FBYyxDQUFDO1FBQ3pILE1BQU0sUUFBUSxHQUFpQyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDO1FBQzNGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxpQkFBaUIsQ0FDbEMsUUFBUSxFQUNSLGdCQUFnQixFQUNoQixjQUFjLENBQ2pCLENBQUM7UUFDRixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU8sYUFBYSxDQUFDLElBQTJCO1FBQzdDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQVcsS0FBSyxRQUFRLENBQUMsRUFBRTtZQUNsSCxNQUFNLElBQUksS0FBSyxDQUNYO2dEQUNnQyxDQUNuQyxDQUFDO1NBQ0w7UUFDRCxJQUNJLENBQ0ksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUM7ZUFDakUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUM7ZUFDeEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQy9CO2VBQ0UsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsRUFDL0I7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDOzsyRkFFK0QsQ0FDOUUsQ0FBQztTQUNMO1FBQ0QsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsS0FBSyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN4RixNQUFNLElBQUksS0FBSyxDQUNYOzhHQUM4RixDQUNqRyxDQUFDO1NBQ0w7UUFDRCxJQUNJLENBQ0ksSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUM7ZUFDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FDakQ7ZUFDRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSTtlQUNuQixDQUFDLElBQUksQ0FBQyxjQUFjLEVBQ3pCO1lBQ0UsTUFBTSxJQUFJLEtBQUssQ0FDWDt3SEFDd0csQ0FDM0csQ0FBQztTQUNMO0lBQ0wsQ0FBQztDQUNKO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFTLHFCQUFxQixDQUE0QixNQUFrQjtJQUN4RSxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQTRDLENBQUM7U0FDekUsTUFBTSxDQUFDLENBQUMsV0FBbUIsRUFBRSxHQUFXLEVBQUUsRUFBRTtRQUN6QyxPQUFPLEdBQUcsV0FBVyxHQUFJLE1BQTZDLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQztJQUNuRixDQUFDLEVBQUUsRUFBRSxDQUFDO1NBQ0wsV0FBVyxFQUFFLENBQUM7SUFDbkIsT0FBTyxZQUFZLENBQUM7QUFDeEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2VudGl0eS1zZXJ2aWNlLmNsYXNzJztcbmltcG9ydCB7IEVudGl0eSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZW50aXR5LW1vZGVsLmNsYXNzJztcbmltcG9ydCB7IENyZWF0ZURpYWxvZ0RhdGFCdWlsZGVyLCBDcmVhdGVEaWFsb2dEYXRhSW50ZXJuYWwgfSBmcm9tICcuL2NyZWF0ZS1kaWFsb2cvY3JlYXRlLWRpYWxvZy1kYXRhLmJ1aWxkZXInO1xuaW1wb3J0IHsgRWRpdERpYWxvZ0RhdGFCdWlsZGVyLCBFZGl0RGlhbG9nRGF0YUludGVybmFsIH0gZnJvbSAnLi9lZGl0LWRpYWxvZy9lZGl0LWRpYWxvZy1kYXRhLmJ1aWxkZXInO1xuaW1wb3J0IHsgQmFzZURhdGEsIERpc3BsYXlDb2x1bW4sIE11bHRpU2VsZWN0QWN0aW9uLCBUYWJsZURhdGEgfSBmcm9tICcuL3RhYmxlLWRhdGEnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcblxuZXhwb3J0IGNsYXNzIFRhYmxlRGF0YUludGVybmFsPEVudGl0eVR5cGUgZXh0ZW5kcyBFbnRpdHk+IGltcGxlbWVudHMgVGFibGVEYXRhPEVudGl0eVR5cGU+IHtcbiAgICBiYXNlRGF0YTogQmFzZURhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPjtcbiAgICBjcmVhdGVEaWFsb2dEYXRhOiBDcmVhdGVEaWFsb2dEYXRhSW50ZXJuYWw7XG4gICAgZWRpdERpYWxvZ0RhdGE6IEVkaXREaWFsb2dEYXRhSW50ZXJuYWw8RW50aXR5VHlwZT47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgYmFzZURhdGE6IEJhc2VEYXRhSW50ZXJuYWw8RW50aXR5VHlwZT4sXG4gICAgICAgIGNyZWF0ZURpYWxvZ0RhdGE6IENyZWF0ZURpYWxvZ0RhdGFJbnRlcm5hbCxcbiAgICAgICAgZWRpdERpYWxvZ0RhdGE6IEVkaXREaWFsb2dEYXRhSW50ZXJuYWw8RW50aXR5VHlwZT5cbiAgICApIHtcbiAgICAgICAgdGhpcy5iYXNlRGF0YSA9IGJhc2VEYXRhO1xuICAgICAgICB0aGlzLmNyZWF0ZURpYWxvZ0RhdGEgPSBjcmVhdGVEaWFsb2dEYXRhO1xuICAgICAgICB0aGlzLmVkaXREaWFsb2dEYXRhID0gZWRpdERpYWxvZ0RhdGE7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQmFzZURhdGFCdWlsZGVyPEVudGl0eVR5cGUgZXh0ZW5kcyBFbnRpdHk+IHtcbiAgICBiYXNlRGF0YTogQmFzZURhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPjtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRhdGFJbnB1dDogQmFzZURhdGE8RW50aXR5VHlwZT47XG5cbiAgICBjb25zdHJ1Y3RvcihkYXRhOiBCYXNlRGF0YTxFbnRpdHlUeXBlPikge1xuICAgICAgICAvL3RoaXMudmFsaWRhdGVJbnB1dChkYXRhKTtcbiAgICAgICAgdGhpcy5kYXRhSW5wdXQgPSBkYXRhO1xuICAgICAgICB0aGlzLmJhc2VEYXRhID0gbmV3IEJhc2VEYXRhSW50ZXJuYWw8RW50aXR5VHlwZT4oXG4gICAgICAgICAgICBkYXRhLnRpdGxlLFxuICAgICAgICAgICAgZGF0YS5kaXNwbGF5Q29sdW1ucyxcbiAgICAgICAgICAgIGRhdGEuRW50aXR5U2VydmljZUNsYXNzLFxuICAgICAgICAgICAgZGF0YS5zZWFyY2hMYWJlbCA/IGRhdGEuc2VhcmNoTGFiZWwgOiAnU2VhcmNoJyxcbiAgICAgICAgICAgIGRhdGEuY3JlYXRlQnV0dG9uTGFiZWwgPyBkYXRhLmNyZWF0ZUJ1dHRvbkxhYmVsIDogJ0NyZWF0ZScsXG4gICAgICAgICAgICBkYXRhLnNlYXJjaFN0cmluZyA/IGRhdGEuc2VhcmNoU3RyaW5nIDogZGVmYXVsdFNlYXJjaEZ1bmN0aW9uLFxuICAgICAgICAgICAgZGF0YS5hbGxvd0NyZWF0ZSA/IGRhdGEuYWxsb3dDcmVhdGUgOiB0cnVlLFxuICAgICAgICAgICAgZGF0YS5hbGxvd0VkaXQgPyBkYXRhLmFsbG93RWRpdCA6ICgpID0+IHRydWUsXG4gICAgICAgICAgICBkYXRhLmFsbG93RGVsZXRlID8gZGF0YS5hbGxvd0RlbGV0ZSA6ICgpID0+IHRydWUsXG4gICAgICAgICAgICBkYXRhLm11bHRpU2VsZWN0QWN0aW9ucyA/IGRhdGEubXVsdGlTZWxlY3RBY3Rpb25zIDogW10sXG4gICAgICAgICAgICBkYXRhLm11bHRpU2VsZWN0TGFiZWwgPyBkYXRhLm11bHRpU2VsZWN0TGFiZWwgOiAnQWN0aW9ucycsXG4gICAgICAgICAgICBkYXRhLkVudGl0eUNsYXNzLFxuICAgICAgICAgICAgZGF0YS5lZGl0LFxuICAgICAgICAgICAgZGF0YS5jcmVhdGVcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgQmFzZURhdGFJbnRlcm5hbDxFbnRpdHlUeXBlIGV4dGVuZHMgRW50aXR5PiBpbXBsZW1lbnRzIEJhc2VEYXRhPEVudGl0eVR5cGU+IHtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGRpc3BsYXlDb2x1bW5zOiBEaXNwbGF5Q29sdW1uPEVudGl0eVR5cGU+W107XG4gICAgRW50aXR5U2VydmljZUNsYXNzOiBuZXcgKGh0dHBDbGllbnQ6IEh0dHBDbGllbnQpID0+IEVudGl0eVNlcnZpY2U8RW50aXR5VHlwZT47XG4gICAgc2VhcmNoTGFiZWw6IHN0cmluZztcbiAgICBjcmVhdGVCdXR0b25MYWJlbDogc3RyaW5nO1xuICAgIHNlYXJjaFN0cmluZzogKGVuaXR5OiBFbnRpdHlUeXBlKSA9PiBzdHJpbmc7XG4gICAgYWxsb3dDcmVhdGU6IGJvb2xlYW47XG4gICAgYWxsb3dFZGl0OiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiBib29sZWFuO1xuICAgIGFsbG93RGVsZXRlOiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiBib29sZWFuO1xuICAgIG11bHRpU2VsZWN0QWN0aW9uczogTXVsdGlTZWxlY3RBY3Rpb248RW50aXR5VHlwZT5bXTtcbiAgICBtdWx0aVNlbGVjdExhYmVsOiBzdHJpbmdcblxuICAgIEVudGl0eUNsYXNzPzogbmV3IChlbnRpdHk/OiBFbnRpdHlUeXBlKSA9PiBFbnRpdHlUeXBlO1xuICAgIGVkaXQ/OiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiB1bmtub3duO1xuICAgIGNyZWF0ZT86IChlbnRpdHk6IEVudGl0eVR5cGUpID0+IHVua25vd247XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgdGl0bGU6IHN0cmluZyxcbiAgICAgICAgZGlzcGxheUNvbHVtbnM6IERpc3BsYXlDb2x1bW48RW50aXR5VHlwZT5bXSxcbiAgICAgICAgRW50aXR5U2VydmljZUNsYXNzOiBuZXcgKGh0dHBDbGllbnQ6IEh0dHBDbGllbnQpID0+IEVudGl0eVNlcnZpY2U8RW50aXR5VHlwZT4sXG4gICAgICAgIHNlYXJjaExhYmVsOiBzdHJpbmcsXG4gICAgICAgIGNyZWF0ZUJ1dHRvbkxhYmVsOiBzdHJpbmcsXG4gICAgICAgIHNlYXJjaFN0cmluZzogKGVuaXR5OiBFbnRpdHlUeXBlKSA9PiBzdHJpbmcsXG4gICAgICAgIGFsbG93Q3JlYXRlOiBib29sZWFuLFxuICAgICAgICBhbGxvd0VkaXQ6IChlbnRpdHk6IEVudGl0eVR5cGUpID0+IGJvb2xlYW4sXG4gICAgICAgIGFsbG93RGVsZXRlOiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiBib29sZWFuLFxuICAgICAgICBtdWx0aVNlbGVjdEFjdGlvbnM6IE11bHRpU2VsZWN0QWN0aW9uPEVudGl0eVR5cGU+W10sXG4gICAgICAgIG11bHRpU2VsZWN0TGFiZWw6IHN0cmluZyxcblxuICAgICAgICBFbnRpdHlDbGFzcz86IG5ldyAoZW50aXR5PzogRW50aXR5VHlwZSkgPT4gRW50aXR5VHlwZSxcbiAgICAgICAgZWRpdD86IChlbnRpdHk6IEVudGl0eVR5cGUpID0+IHVua25vd24sXG4gICAgICAgIGNyZWF0ZT86IChlbnRpdHk6IEVudGl0eVR5cGUpID0+IHVua25vd24sXG4gICAgKSB7XG4gICAgICAgIHRoaXMudGl0bGUgPSB0aXRsZTtcbiAgICAgICAgdGhpcy5kaXNwbGF5Q29sdW1ucyA9IGRpc3BsYXlDb2x1bW5zO1xuICAgICAgICB0aGlzLkVudGl0eVNlcnZpY2VDbGFzcyA9IEVudGl0eVNlcnZpY2VDbGFzcztcbiAgICAgICAgdGhpcy5FbnRpdHlDbGFzcyA9IEVudGl0eUNsYXNzO1xuICAgICAgICB0aGlzLnNlYXJjaExhYmVsID0gc2VhcmNoTGFiZWw7XG4gICAgICAgIHRoaXMuY3JlYXRlQnV0dG9uTGFiZWwgPSBjcmVhdGVCdXR0b25MYWJlbDtcbiAgICAgICAgdGhpcy5zZWFyY2hTdHJpbmcgPSBzZWFyY2hTdHJpbmc7XG4gICAgICAgIHRoaXMuYWxsb3dDcmVhdGUgPSBhbGxvd0NyZWF0ZTtcbiAgICAgICAgdGhpcy5hbGxvd0VkaXQgPSBhbGxvd0VkaXQ7XG4gICAgICAgIHRoaXMuYWxsb3dEZWxldGUgPSBhbGxvd0RlbGV0ZTtcbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdEFjdGlvbnMgPSBtdWx0aVNlbGVjdEFjdGlvbnM7XG4gICAgICAgIHRoaXMubXVsdGlTZWxlY3RMYWJlbCA9IG11bHRpU2VsZWN0TGFiZWw7XG4gICAgICAgIHRoaXMuZWRpdCA9IGVkaXQ7XG4gICAgICAgIHRoaXMuY3JlYXRlID0gY3JlYXRlO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIFRhYmxlRGF0YUJ1aWxkZXI8RW50aXR5VHlwZSBleHRlbmRzIEVudGl0eT4ge1xuICAgIHRhYmxlRGF0YTogVGFibGVEYXRhSW50ZXJuYWw8RW50aXR5VHlwZT47XG4gICAgcHJpdmF0ZSByZWFkb25seSBkYXRhSW5wdXQ6IFRhYmxlRGF0YTxFbnRpdHlUeXBlPjtcblxuICAgIGNvbnN0cnVjdG9yKGRhdGE6IFRhYmxlRGF0YTxFbnRpdHlUeXBlPikge1xuICAgICAgICB0aGlzLnZhbGlkYXRlSW5wdXQoZGF0YSk7XG4gICAgICAgIHRoaXMuZGF0YUlucHV0ID0gZGF0YTtcbiAgICAgICAgY29uc3QgY3JlYXRlRGlhbG9nRGF0YTogQ3JlYXRlRGlhbG9nRGF0YUludGVybmFsID0gbmV3IENyZWF0ZURpYWxvZ0RhdGFCdWlsZGVyKGRhdGEuY3JlYXRlRGlhbG9nRGF0YSkuY3JlYXRlRGlhbG9nRGF0YTtcbiAgICAgICAgY29uc3QgZWRpdERpYWxvZ0RhdGE6IEVkaXREaWFsb2dEYXRhSW50ZXJuYWw8RW50aXR5VHlwZT4gPSBuZXcgRWRpdERpYWxvZ0RhdGFCdWlsZGVyKGRhdGEuZWRpdERpYWxvZ0RhdGEpLmVkaXREaWFsb2dEYXRhO1xuICAgICAgICBjb25zdCBiYXNlRGF0YTogQmFzZURhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPiA9IG5ldyBCYXNlRGF0YUJ1aWxkZXIoZGF0YS5iYXNlRGF0YSkuYmFzZURhdGE7XG4gICAgICAgIHRoaXMudGFibGVEYXRhID0gbmV3IFRhYmxlRGF0YUludGVybmFsPEVudGl0eVR5cGU+KFxuICAgICAgICAgICAgYmFzZURhdGEsXG4gICAgICAgICAgICBjcmVhdGVEaWFsb2dEYXRhLFxuICAgICAgICAgICAgZWRpdERpYWxvZ0RhdGFcbiAgICAgICAgKTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB2YWxpZGF0ZUlucHV0KGRhdGE6IFRhYmxlRGF0YTxFbnRpdHlUeXBlPik6IHZvaWQge1xuICAgICAgICBpZiAoZGF0YS5iYXNlRGF0YS5tdWx0aVNlbGVjdEFjdGlvbnM/Lmxlbmd0aCAmJiBkYXRhLmJhc2VEYXRhLmRpc3BsYXlDb2x1bW5zLmZpbmQoZHAgPT4gZHAuZGlzcGxheU5hbWUgPT09ICdzZWxlY3QnKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgIGBUaGUgbmFtZSBcInNlbGVjdFwiIGZvciBhIGRpc3BsYXkgY29sdW1uIGlzIHJlc2VydmVkIGZvciB0aGUgbXVsdGktc2VsZWN0IGFjdGlvbiBmdW5jdGlvbmFsaXR5LlxuICAgICAgICAgICAgICAgIFBsZWFzZSBjaG9vc2UgYSBkaWZmZXJlbnQgbmFtZS5gXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICBkYXRhLmJhc2VEYXRhLmFsbG93RWRpdCAmJiBkYXRhLmJhc2VEYXRhLmFsbG93RWRpdCAhPT0gKCgpID0+IGZhbHNlKVxuICAgICAgICAgICAgICAgIHx8IGRhdGEuYmFzZURhdGEuYWxsb3dEZWxldGUgJiYgZGF0YS5iYXNlRGF0YS5hbGxvd0RlbGV0ZSAhPT0gKCgpID0+IGZhbHNlKVxuICAgICAgICAgICAgICAgIHx8IGRhdGEuYmFzZURhdGEuYWxsb3dDcmVhdGVcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICYmICFkYXRhLmJhc2VEYXRhLkVudGl0eUNsYXNzXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBcbiAgICAgICAgICAgICAgICBNaXNzaW5nIHJlcXVpcmVkIElucHV0IGRhdGEgXCJFbnRpdHlDbGFzc1wiLlxuICAgICAgICAgICAgICAgIFlvdSBjYW4gb25seSBvbWl0IHRoaXMgdmFsdWUgaWYgeW91IGNhbiBuZWl0aGVyIGNyZWF0ZSBvciB1cGRhdGUgZW50aXRpZXMuYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5iYXNlRGF0YS5hbGxvd0NyZWF0ZSAhPT0gZmFsc2UgJiYgIWRhdGEuYmFzZURhdGEuY3JlYXRlICYmICFkYXRhLmNyZWF0ZURpYWxvZ0RhdGEpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICBgTWlzc2luZyByZXF1aXJlZCBJbnB1dCBkYXRhIFwiY3JlYXRlRGlhbG9nRGF0YVwiLlxuICAgICAgICAgICAgICAgIFlvdSBjYW4gb25seSBvbWl0IHRoaXMgdmFsdWUgd2hlbiBjcmVhdGlvbiBpcyBkaXNhbGxvd2VkIG9yIGRvbmUgd2l0aCBhIGN1c3RvbSBjcmVhdGUgbWV0aG9kLmBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgIGRhdGEuYmFzZURhdGEuYWxsb3dFZGl0ICE9PSAoKCkgPT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgfHwgZGF0YS5iYXNlRGF0YS5hbGxvd0RlbGV0ZSAhPT0gKCgpID0+IGZhbHNlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgJiYgIWRhdGEuYmFzZURhdGEuZWRpdFxuICAgICAgICAgICAgJiYgIWRhdGEuZWRpdERpYWxvZ0RhdGFcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgYE1pc3NpbmcgcmVxdWlyZWQgSW5wdXQgZGF0YSBcImVkaXREaWFsb2dEYXRhXCIuXG4gICAgICAgICAgICAgICAgWW91IGNhbiBvbmx5IG9taXQgdGhpcyB2YWx1ZSB3aGVuIGVkaXRpbmcgYW5kIGRlbGV0aW5nIGlzIGRpc2FsbG93ZWQgb3IgZG9uZSB3aXRoIGEgY3VzdG9tIGVkaXQgbWV0aG9kLmBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgc2VhcmNoIGZ1bmN0aW9uIHRha2VuIGZyb20gZ29vZ2xlcyBtYXQgdGFibGUuXG4gKiBUaGlzIHdpbGwgYmUgdXNlZCBpZiBubyBjdXN0b20gc2VhcmNoIGZ1bmN0aW9uIGlzIHByb3ZpZGVkIGJ5IHRoZSBjb25maWd1cmF0aW9uLlxuICpcbiAqIEl0IGdlbmVyYXRlcyBhIHN0cmluZyBmcm9tIGFuIGVudGl0eSB3aGljaCBpcyB0aGVuIHVzZWQgdG8gY29tcGFyZSBpdCB0byB0aGUgc2VhcmNoIGlucHV0LlxuICpcbiAqIEBwYXJhbSBlbnRpdHkgLSBBbiBlbnRpdHkgdGhhdCBpcyBpbiB0aGUgc2VhcmNoLlxuICogQHJldHVybnMgVGhlIGdlbmVyYXRlZCBzdHJpbmcgb2YgdGhlIGdpdmVuIGVudGl0eSB1c2VkIGZvciBjb21wYXJpc29uIHdpdGggdGhlIHNlYXJjaCBpbnB1dC5cbiAqL1xuZnVuY3Rpb24gZGVmYXVsdFNlYXJjaEZ1bmN0aW9uPEVudGl0eVR5cGUgZXh0ZW5kcyBFbnRpdHk+KGVudGl0eTogRW50aXR5VHlwZSk6IHN0cmluZyB7XG4gICAgY29uc3Qgc2VhcmNoU3RyaW5nID0gT2JqZWN0LmtleXMoZW50aXR5IGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pXG4gICAgICAgIC5yZWR1Y2UoKGN1cnJlbnRUZXJtOiBzdHJpbmcsIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYCR7Y3VycmVudFRlcm19JHsoZW50aXR5IGFzIHVua25vd24gYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4pW2tleV194pesYDtcbiAgICAgICAgfSwgJycpXG4gICAgICAgIC50b0xvd2VyQ2FzZSgpO1xuICAgIHJldHVybiBzZWFyY2hTdHJpbmc7XG59Il19
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZGF0YS5idWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LW1hdGVyaWFsLWVudGl0eS9zcmMvY29tcG9uZW50cy90YWJsZS90YWJsZS1kYXRhLmJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLHVCQUF1QixFQUE0QixNQUFNLDRDQUE0QyxDQUFDO0FBQy9HLE9BQU8sRUFBRSxxQkFBcUIsRUFBMEIsTUFBTSx3Q0FBd0MsQ0FBQztBQUd2RyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFHekQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8saUJBQWlCO0lBUTFCLFlBQ0ksUUFBc0MsRUFDdEMsZ0JBQTBDLEVBQzFDLGNBQWtEO1FBRWxELElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxnQkFBZ0IsQ0FBQztRQUN6QyxJQUFJLENBQUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztJQUN6QyxDQUFDO0NBQ0o7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBTyxlQUNULFNBQVEsV0FBK0Q7SUFFdkUsWUFBWSxJQUEwQjtRQUNsQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEIsQ0FBQztJQUVELCtDQUErQztJQUNyQyxnQkFBZ0IsQ0FBQyxJQUEwQjtRQUNqRCxPQUFPLElBQUksZ0JBQWdCLENBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQ1YsSUFBSSxDQUFDLGNBQWMsRUFDbkIsSUFBSSxDQUFDLGtCQUFrQixFQUN2QixJQUFJLENBQUMsV0FBVyxJQUFJLFFBQVEsRUFDNUIsSUFBSSxDQUFDLGlCQUFpQixJQUFJLFFBQVEsRUFDbEMsSUFBSSxDQUFDLFlBQVksSUFBSSxxQkFBcUIsRUFDMUMsSUFBSSxDQUFDLFdBQVcsSUFBSSxJQUFJLEVBQ3hCLElBQUksQ0FBQyxTQUFTLElBQUks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QUFPLFlBQVksQ0FBQztBQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW50aXR5U2VydmljZSB9IGZyb20gJy4uLy4uL2NsYXNzZXMvZW50aXR5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ3JlYXRlRGlhbG9nRGF0YUJ1aWxkZXIsIENyZWF0ZURpYWxvZ0RhdGFJbnRlcm5hbCB9IGZyb20gJy4vY3JlYXRlLWRpYWxvZy9jcmVhdGUtZGlhbG9nLWRhdGEuYnVpbGRlcic7XG5pbXBvcnQgeyBFZGl0RGlhbG9nRGF0YUJ1aWxkZXIsIEVkaXREaWFsb2dEYXRhSW50ZXJuYWwgfSBmcm9tICcuL2VkaXQtZGlhbG9nL2VkaXQtZGlhbG9nLWRhdGEuYnVpbGRlcic7XG5pbXBvcnQgeyBCYXNlRGF0YSwgRGlzcGxheUNvbHVtbiwgTXVsdGlTZWxlY3RBY3Rpb24sIFRhYmxlRGF0YSB9IGZyb20gJy4vdGFibGUtZGF0YSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgQmFzZUJ1aWxkZXIgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2Jhc2UuYnVpbGRlcic7XG5pbXBvcnQgeyBCYXNlRW50aXR5VHlwZSwgRW50aXR5Q2xhc3NOZXdhYmxlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9lbnRpdHkubW9kZWwnO1xuXG4vKipcbiAqIFRoZSBpbnRlcm5hbCBUYWJsZURhdGEuIFJlcXVpcmVzIGFsbCBkZWZhdWx0IHZhbHVlcyB0aGUgdXNlciBjYW4gbGVhdmUgb3V0LlxuICovXG5leHBvcnQgY2xhc3MgVGFibGVEYXRhSW50ZXJuYWw8RW50aXR5VHlwZSBleHRlbmRzIEJhc2VFbnRpdHlUeXBlPEVudGl0eVR5cGU+PiBpbXBsZW1lbnRzIFRhYmxlRGF0YTxFbnRpdHlUeXBlPiB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBiYXNlRGF0YTogQmFzZURhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPjtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGNyZWF0ZURpYWxvZ0RhdGE6IENyZWF0ZURpYWxvZ0RhdGFJbnRlcm5hbDtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGVkaXREaWFsb2dEYXRhOiBFZGl0RGlhbG9nRGF0YUludGVybmFsPEVudGl0eVR5cGU+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIGJhc2VEYXRhOiBCYXNlRGF0YUludGVybmFsPEVudGl0eVR5cGU+LFxuICAgICAgICBjcmVhdGVEaWFsb2dEYXRhOiBDcmVhdGVEaWFsb2dEYXRhSW50ZXJuYWwsXG4gICAgICAgIGVkaXREaWFsb2dEYXRhOiBFZGl0RGlhbG9nRGF0YUludGVybmFsPEVudGl0eVR5cGU+XG4gICAgKSB7XG4gICAgICAgIHRoaXMuYmFzZURhdGEgPSBiYXNlRGF0YTtcbiAgICAgICAgdGhpcy5jcmVhdGVEaWFsb2dEYXRhID0gY3JlYXRlRGlhbG9nRGF0YTtcbiAgICAgICAgdGhpcy5lZGl0RGlhbG9nRGF0YSA9IGVkaXREaWFsb2dEYXRhO1xuICAgIH1cbn1cblxuLyoqXG4gKiBUaGUgQnVpbGRlciBmb3IgdGhlIHRhYmxlIEJhc2VEYXRhLiBTZXRzIGRlZmF1bHQgdmFsdWVzLlxuICovXG5leHBvcnQgY2xhc3MgQmFzZURhdGFCdWlsZGVyPEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj5cbiAgICBleHRlbmRzIEJhc2VCdWlsZGVyPEJhc2VEYXRhSW50ZXJuYWw8RW50aXR5VHlwZT4sIEJhc2VEYXRhPEVudGl0eVR5cGU+PiB7XG5cbiAgICBjb25zdHJ1Y3RvcihkYXRhOiBCYXNlRGF0YTxFbnRpdHlUeXBlPikge1xuICAgICAgICBzdXBlcihkYXRhKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIHByb3RlY3RlZCBnZW5lcmF0ZUJhc2VEYXRhKGRhdGE6IEJhc2VEYXRhPEVudGl0eVR5cGU+KTogQmFzZURhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPiB7XG4gICAgICAgIHJldHVybiBuZXcgQmFzZURhdGFJbnRlcm5hbDxFbnRpdHlUeXBlPihcbiAgICAgICAgICAgIGRhdGEudGl0bGUsXG4gICAgICAgICAgICBkYXRhLmRpc3BsYXlDb2x1bW5zLFxuICAgICAgICAgICAgZGF0YS5FbnRpdHlTZXJ2aWNlQ2xhc3MsXG4gICAgICAgICAgICBkYXRhLnNlYXJjaExhYmVsID8/ICdTZWFyY2gnLFxuICAgICAgICAgICAgZGF0YS5jcmVhdGVCdXR0b25MYWJlbCA/PyAnQ3JlYXRlJyxcbiAgICAgICAgICAgIGRhdGEuc2VhcmNoU3RyaW5nID8/IGRlZmF1bHRTZWFyY2hGdW5jdGlvbixcbiAgICAgICAgICAgIGRhdGEuYWxsb3dDcmVhdGUgPz8gdHJ1ZSxcbiAgICAgICAgICAgIGRhdGEuYWxsb3dFZGl0ID8/ICgoKSA9PiB0cnVlKSxcbiAgICAgICAgICAgIGRhdGEuYWxsb3dEZWxldGUgPz8gKCgpID0+IHRydWUpLFxuICAgICAgICAgICAgZGF0YS5tdWx0aVNlbGVjdEFjdGlvbnMgPz8gW10sXG4gICAgICAgICAgICBkYXRhLm11bHRpU2VsZWN0TGFiZWwgPz8gJ0FjdGlvbnMnLFxuICAgICAgICAgICAgZGF0YS5FbnRpdHlDbGFzcyxcbiAgICAgICAgICAgIGRhdGEuZWRpdCxcbiAgICAgICAgICAgIGRhdGEuY3JlYXRlXG4gICAgICAgICk7XG4gICAgfVxufVxuXG4vKipcbiAqIFRoZSBpbnRlcm5hbCBUYWJsZURhdGEuIFJlcXVpcmVzIGFsbCBkZWZhdWx0IHZhbHVlcyB0aGUgdXNlciBjYW4gbGVhdmUgb3V0LlxuICovXG5leHBvcnQgY2xhc3MgQmFzZURhdGFJbnRlcm5hbDxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+IGltcGxlbWVudHMgQmFzZURhdGE8RW50aXR5VHlwZT4ge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgdGl0bGU6IHN0cmluZztcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGRpc3BsYXlDb2x1bW5zOiBEaXNwbGF5Q29sdW1uPEVudGl0eVR5cGU+W107XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBFbnRpdHlTZXJ2aWNlQ2xhc3M6IG5ldyAoaHR0cENsaWVudDogSHR0cENsaWVudCkgPT4gRW50aXR5U2VydmljZTxFbnRpdHlUeXBlPjtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIHNlYXJjaExhYmVsOiBzdHJpbmc7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBjcmVhdGVCdXR0b25MYWJlbDogc3RyaW5nO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgc2VhcmNoU3RyaW5nOiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiBzdHJpbmc7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBhbGxvd0NyZWF0ZTogYm9vbGVhbjtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGFsbG93RWRpdDogKGVudGl0eTogRW50aXR5VHlwZSkgPT4gYm9vbGVhbjtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGFsbG93RGVsZXRlOiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiBib29sZWFuO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgbXVsdGlTZWxlY3RBY3Rpb25zOiBNdWx0aVNlbGVjdEFjdGlvbjxFbnRpdHlUeXBlPltdO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgbXVsdGlTZWxlY3RMYWJlbDogc3RyaW5nO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGpzZG9jL3JlcXVpcmUtanNkb2NcbiAgICBFbnRpdHlDbGFzcz86IEVudGl0eUNsYXNzTmV3YWJsZTxFbnRpdHlUeXBlPjtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIGVkaXQ/OiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiB1bmtub3duO1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBqc2RvYy9yZXF1aXJlLWpzZG9jXG4gICAgY3JlYXRlPzogKGVudGl0eTogRW50aXR5VHlwZSkgPT4gdW5rbm93bjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICB0aXRsZTogc3RyaW5nLFxuICAgICAgICBkaXNwbGF5Q29sdW1uczogRGlzcGxheUNvbHVtbjxFbnRpdHlUeXBlPltdLFxuICAgICAgICBFbnRpdHlTZXJ2aWNlQ2xhc3M6IG5ldyAoaHR0cENsaWVudDogSHR0cENsaWVudCkgPT4gRW50aXR5U2VydmljZTxFbnRpdHlUeXBlPixcbiAgICAgICAgc2VhcmNoTGFiZWw6IHN0cmluZyxcbiAgICAgICAgY3JlYXRlQnV0dG9uTGFiZWw6IHN0cmluZyxcbiAgICAgICAgc2VhcmNoU3RyaW5nOiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiBzdHJpbmcsXG4gICAgICAgIGFsbG93Q3JlYXRlOiBib29sZWFuLFxuICAgICAgICBhbGxvd0VkaXQ6IChlbnRpdHk6IEVudGl0eVR5cGUpID0+IGJvb2xlYW4sXG4gICAgICAgIGFsbG93RGVsZXRlOiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiBib29sZWFuLFxuICAgICAgICBtdWx0aVNlbGVjdEFjdGlvbnM6IE11bHRpU2VsZWN0QWN0aW9uPEVudGl0eVR5cGU+W10sXG4gICAgICAgIG11bHRpU2VsZWN0TGFiZWw6IHN0cmluZyxcblxuICAgICAgICBFbnRpdHlDbGFzcz86IEVudGl0eUNsYXNzTmV3YWJsZTxFbnRpdHlUeXBlPixcbiAgICAgICAgZWRpdD86IChlbnRpdHk6IEVudGl0eVR5cGUpID0+IHVua25vd24sXG4gICAgICAgIGNyZWF0ZT86IChlbnRpdHk6IEVudGl0eVR5cGUpID0+IHVua25vd24sXG4gICAgKSB7XG4gICAgICAgIHRoaXMudGl0bGUgPSB0aXRsZTtcbiAgICAgICAgdGhpcy5kaXNwbGF5Q29sdW1ucyA9IGRpc3BsYXlDb2x1bW5zO1xuICAgICAgICB0aGlzLkVudGl0eVNlcnZpY2VDbGFzcyA9IEVudGl0eVNlcnZpY2VDbGFzcztcbiAgICAgICAgdGhpcy5FbnRpdHlDbGFzcyA9IEVudGl0eUNsYXNzO1xuICAgICAgICB0aGlzLnNlYXJjaExhYmVsID0gc2VhcmNoTGFiZWw7XG4gICAgICAgIHRoaXMuY3JlYXRlQnV0dG9uTGFiZWwgPSBjcmVhdGVCdXR0b25MYWJlbDtcbiAgICAgICAgdGhpcy5zZWFyY2hTdHJpbmcgPSBzZWFyY2hTdHJpbmc7XG4gICAgICAgIHRoaXMuYWxsb3dDcmVhdGUgPSBhbGxvd0NyZWF0ZTtcbiAgICAgICAgdGhpcy5hbGxvd0VkaXQgPSBhbGxvd0VkaXQ7XG4gICAgICAgIHRoaXMuYWxsb3dEZWxldGUgPSBhbGxvd0RlbGV0ZTtcbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdEFjdGlvbnMgPSBtdWx0aVNlbGVjdEFjdGlvbnM7XG4gICAgICAgIHRoaXMubXVsdGlTZWxlY3RMYWJlbCA9IG11bHRpU2VsZWN0TGFiZWw7XG4gICAgICAgIHRoaXMuZWRpdCA9IGVkaXQ7XG4gICAgICAgIHRoaXMuY3JlYXRlID0gY3JlYXRlO1xuICAgIH1cbn1cblxuLyoqXG4gKiBUaGUgQnVpbGRlciBmb3IgdGhlIGNvbXBsZXRlIFRhYmxlRGF0YS4gU2V0cyBkZWZhdWx0IHZhbHVlcyBhbmQgdmFsaWRhdGVzIHVzZXIgaW5wdXQuXG4gKi9cbmV4cG9ydCBjbGFzcyBUYWJsZURhdGFCdWlsZGVyPEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj5cbiAgICBleHRlbmRzIEJhc2VCdWlsZGVyPFRhYmxlRGF0YUludGVybmFsPEVudGl0eVR5cGU+LCBUYWJsZURhdGE8RW50aXR5VHlwZT4+IHtcblxuICAgIGNvbnN0cnVjdG9yKGRhdGE6IFRhYmxlRGF0YTxFbnRpdHlUeXBlPikge1xuICAgICAgICBzdXBlcihkYXRhKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIHByb3RlY3RlZCBnZW5lcmF0ZUJhc2VEYXRhKGRhdGE6IFRhYmxlRGF0YTxFbnRpdHlUeXBlPik6IFRhYmxlRGF0YUludGVybmFsPEVudGl0eVR5cGU+IHtcbiAgICAgICAgY29uc3QgY3JlYXRlRGlhbG9nRGF0YTogQ3JlYXRlRGlhbG9nRGF0YUludGVybmFsID0gbmV3IENyZWF0ZURpYWxvZ0RhdGFCdWlsZGVyKGRhdGEuY3JlYXRlRGlhbG9nRGF0YSkuZ2V0UmVzdWx0KCk7XG4gICAgICAgIGNvbnN0IGVkaXREaWFsb2dEYXRhOiBFZGl0RGlhbG9nRGF0YUludGVybmFsPEVudGl0eVR5cGU+ID0gbmV3IEVkaXREaWFsb2dEYXRhQnVpbGRlcihkYXRhLmVkaXREaWFsb2dEYXRhKS5nZXRSZXN1bHQoKTtcbiAgICAgICAgY29uc3QgYmFzZURhdGE6IEJhc2VEYXRhSW50ZXJuYWw8RW50aXR5VHlwZT4gPSBuZXcgQmFzZURhdGFCdWlsZGVyKGRhdGEuYmFzZURhdGEpLmdldFJlc3VsdCgpO1xuICAgICAgICByZXR1cm4gbmV3IFRhYmxlRGF0YUludGVybmFsPEVudGl0eVR5cGU+KFxuICAgICAgICAgICAgYmFzZURhdGEsXG4gICAgICAgICAgICBjcmVhdGVEaWFsb2dEYXRhLFxuICAgICAgICAgICAgZWRpdERpYWxvZ0RhdGFcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUganNkb2MvcmVxdWlyZS1qc2RvY1xuICAgIHByb3RlY3RlZCBvdmVycmlkZSB2YWxpZGF0ZUlucHV0KGRhdGE6IFRhYmxlRGF0YTxFbnRpdHlUeXBlPik6IHZvaWQge1xuICAgICAgICBpZiAoZGF0YS5iYXNlRGF0YS5tdWx0aVNlbGVjdEFjdGlvbnM/Lmxlbmd0aCAmJiBkYXRhLmJhc2VEYXRhLmRpc3BsYXlDb2x1bW5zLmZpbmQoZHAgPT4gZHAuZGlzcGxheU5hbWUgPT09ICdzZWxlY3QnKSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgICAgIGBUaGUgbmFtZSBcInNlbGVjdFwiIGZvciBhIGRpc3BsYXkgY29sdW1uIGlzIHJlc2VydmVkIGZvciB0aGUgbXVsdGktc2VsZWN0IGFjdGlvbiBmdW5jdGlvbmFsaXR5LlxuICAgICAgICAgICAgICAgIFBsZWFzZSBjaG9vc2UgYSBkaWZmZXJlbnQgbmFtZS5gXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICBkYXRhLmJhc2VEYXRhLmFsbG93RWRpdCAmJiBkYXRhLmJhc2VEYXRhLmFsbG93RWRpdCAhPT0gKCgpID0+IGZhbHNlKVxuICAgICAgICAgICAgICAgIHx8IGRhdGEuYmFzZURhdGEuYWxsb3dEZWxldGUgJiYgZGF0YS5iYXNlRGF0YS5hbGxvd0RlbGV0ZSAhPT0gKCgpID0+IGZhbHNlKVxuICAgICAgICAgICAgICAgIHx8IGRhdGEuYmFzZURhdGEuYWxsb3dDcmVhdGUgPT09IHRydWVcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgICYmICFkYXRhLmJhc2VEYXRhLkVudGl0eUNsYXNzXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBcbiAgICAgICAgICAgICAgICBNaXNzaW5nIHJlcXVpcmVkIElucHV0IGRhdGEgXCJFbnRpdHlDbGFzc1wiLlxuICAgICAgICAgICAgICAgIFlvdSBjYW4gb25seSBvbWl0IHRoaXMgdmFsdWUgaWYgeW91IGNhbiBuZWl0aGVyIGNyZWF0ZSBvciB1cGRhdGUgZW50aXRpZXMuYFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZGF0YS5iYXNlRGF0YS5hbGxvd0NyZWF0ZSAhPT0gZmFsc2UgJiYgIWRhdGEuYmFzZURhdGEuY3JlYXRlICYmICFkYXRhLmNyZWF0ZURpYWxvZ0RhdGEpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICBgTWlzc2luZyByZXF1aXJlZCBJbnB1dCBkYXRhIFwiY3JlYXRlRGlhbG9nRGF0YVwiLlxuICAgICAgICAgICAgICAgIFlvdSBjYW4gb25seSBvbWl0IHRoaXMgdmFsdWUgd2hlbiBjcmVhdGlvbiBpcyBkaXNhbGxvd2VkIG9yIGRvbmUgd2l0aCBhIGN1c3RvbSBjcmVhdGUgbWV0aG9kLmBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgKFxuICAgICAgICAgICAgICAgIGRhdGEuYmFzZURhdGEuYWxsb3dFZGl0ICE9PSAoKCkgPT4gZmFsc2UpXG4gICAgICAgICAgICAgICAgfHwgZGF0YS5iYXNlRGF0YS5hbGxvd0RlbGV0ZSAhPT0gKCgpID0+IGZhbHNlKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgJiYgIWRhdGEuYmFzZURhdGEuZWRpdFxuICAgICAgICAgICAgJiYgIWRhdGEuZWRpdERpYWxvZ0RhdGFcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICAgICAgYE1pc3NpbmcgcmVxdWlyZWQgSW5wdXQgZGF0YSBcImVkaXREaWFsb2dEYXRhXCIuXG4gICAgICAgICAgICAgICAgWW91IGNhbiBvbmx5IG9taXQgdGhpcyB2YWx1ZSB3aGVuIGVkaXRpbmcgYW5kIGRlbGV0aW5nIGlzIGRpc2FsbG93ZWQgb3IgZG9uZSB3aXRoIGEgY3VzdG9tIGVkaXQgbWV0aG9kLmBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG59XG5cbi8qKlxuICogVGhlIGRlZmF1bHQgc2VhcmNoIGZ1bmN0aW9uIHRha2VuIGZyb20gZ29vZ2xlcyBtYXQgdGFibGUuXG4gKiBUaGlzIHdpbGwgYmUgdXNlZCBpZiBubyBjdXN0b20gc2VhcmNoIGZ1bmN0aW9uIGlzIHByb3ZpZGVkIGJ5IHRoZSBjb25maWd1cmF0aW9uLlxuICpcbiAqIEl0IGdlbmVyYXRlcyBhIHN0cmluZyBmcm9tIGFuIGVudGl0eSB3aGljaCBpcyB0aGVuIHVzZWQgdG8gY29tcGFyZSBpdCB0byB0aGUgc2VhcmNoIGlucHV0LlxuICpcbiAqIEBwYXJhbSBlbnRpdHkgLSBBbiBlbnRpdHkgdGhhdCBpcyBpbiB0aGUgc2VhcmNoLlxuICogQHJldHVybnMgVGhlIGdlbmVyYXRlZCBzdHJpbmcgb2YgdGhlIGdpdmVuIGVudGl0eSB1c2VkIGZvciBjb21wYXJpc29uIHdpdGggdGhlIHNlYXJjaCBpbnB1dC5cbiAqL1xuZnVuY3Rpb24gZGVmYXVsdFNlYXJjaEZ1bmN0aW9uPEVudGl0eVR5cGUgZXh0ZW5kcyBCYXNlRW50aXR5VHlwZTxFbnRpdHlUeXBlPj4oZW50aXR5OiBFbnRpdHlUeXBlKTogc3RyaW5nIHtcbiAgICBjb25zdCBzZWFyY2hTdHJpbmcgPSBPYmplY3Qua2V5cyhlbnRpdHkpXG4gICAgICAgIC5yZWR1Y2UoKGN1cnJlbnRUZXJtOiBzdHJpbmcsIGtleTogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYCR7Y3VycmVudFRlcm19JHsoZW50aXR5IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVtrZXldfeKXrGA7XG4gICAgICAgIH0sICcnKVxuICAgICAgICAudG9Mb3dlckNhc2UoKTtcbiAgICByZXR1cm4gc2VhcmNoU3RyaW5nO1xufSJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvdGFibGUvdGFibGUtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJ1xuaW1wb3J0IHsgRW50aXR5IH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9lbnRpdHktbW9kZWwuY2xhc3MnXG5pbXBvcnQgeyBFbnRpdHlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY2xhc3Nlcy9lbnRpdHktc2VydmljZS5jbGFzcydcbmltcG9ydCB7IENvbmZpcm1EaWFsb2dEYXRhIH0gZnJvbSAnLi4vY29uZmlybS1kaWFsb2cvY29uZmlybS1kaWFsb2ctZGF0YSdcblxuLyoqXG4gKiBUaGUgRGVmaW5pdGlvbiBvZiBhIENvbHVtbiBpbnNpZGUgdGhlIHRhYmxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERpc3BsYXlDb2x1bW48RW50aXR5VHlwZSBleHRlbmRzIEVudGl0eT4ge1xuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIGluc2lkZSB0aGUgaGVhZGVyLlxuICAgICAqL1xuICAgIGRpc3BsYXlOYW1lOiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogQSBtZXRob2QgdG8gZ2V0IHRoZSB2YWx1ZSBpbnNpZGUgYW4gcm93LlxuICAgICAqL1xuICAgIHZhbHVlOiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiBzdHJpbmdcbn1cblxuLyoqXG4gKiBUaGUgRGVmaW5pdGlvbiBvZiBhbiBBY3Rpb24gdGhhdCBjYW4gYmUgcnVuIG9uIG11bHRpcGxlIHNlbGVjdGVkIGVudGl0aWVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE11bHRpU2VsZWN0QWN0aW9uPEVudGl0eVR5cGUgZXh0ZW5kcyBFbnRpdHk+IHtcbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgYWN0aW9uLlxuICAgICAqL1xuICAgIGRpc3BsYXlOYW1lOiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIGFjdGlvbiBpdHNlbGYuXG4gICAgICovXG4gICAgYWN0aW9uOiAoc2VsZWN0ZWRFbnRpdGllczogRW50aXR5VHlwZVtdKSA9PiB1bmtub3duLFxuICAgIC8qKlxuICAgICAqIEEgbWV0aG9kIHRoYXQgZGVmaW5lcyB3aGV0aGVyIG9yIG5vdCB0aGUgYWN0aW9uIGNhbiBiZSB1c2VkLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIGVuYWJsZWQ/OiAoc2VsZWN0ZWRFbnRpdGllczogRW50aXR5VHlwZVtdKSA9PiBib29sZWFuLFxuICAgIC8qKlxuICAgICAqIEEgbWV0aG9kIHRoYXQgZGVmaW5lcyB3aGV0aGVyIG9yIG5vdCBhIGNvbmZpcm0gZGlhbG9nIGlzIG5lZWRlZCB0byBydW4gdGhlIGFjdGlvbi5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcmVxdWlyZUNvbmZpcm1EaWFsb2c/OiAoc2VsZWN0ZWRFbnRpdGllczogRW50aXR5VHlwZVtdKSA9PiBib29sZWFuLFxuICAgIC8qKlxuICAgICAqIFRoZSBkYXRhIHVzZWQgdG8gZ2VuZXJhdGUgYSBjb25maXJtYXRpb24gZGlhbG9nIGZvciB0aGUgbXVsdGlzZWxlY3QgYWN0aW9uLlxuICAgICAqL1xuICAgIGNvbmZpcm1EaWFsb2dEYXRhPzogQ29uZmlybURpYWxvZ0RhdGFcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCYXNlRGF0YTxFbnRpdHlUeXBlIGV4dGVuZHMgRW50aXR5PiB7XG4gICAgLyoqXG4gICAgICogVGhlIHRpdGxlIG9mIHRoZSB0YWJsZS5cbiAgICAgKi9cbiAgICB0aXRsZTogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFRoZSBkZWZpbml0aW9uIG9mIHRoZSBjb2x1bW5zIHRvIGRpc3BsYXkuIENvbnNpc3RzIG9mIHRoZSBkaXNwbGF5TmFtZSB0byBzaG93IGluIHRoZSBoZWFkZXIgb2YgdGhlIHJvd1xuICAgICAqIGFuZCB0aGUgdmFsdWUsIHdoaWNoIGlzIGEgZnVuY3Rpb24gdGhhdCBnZW5lcmF0ZXMgdGhlIHZhbHVlIHRvIGRpc3BsYXkgaW5zaWRlIGEgY29sdW1uLlxuICAgICAqL1xuICAgIGRpc3BsYXlDb2x1bW5zOiBEaXNwbGF5Q29sdW1uPEVudGl0eVR5cGU+W10sXG4gICAgLyoqXG4gICAgICogVGhlIENsYXNzIG9mIHRoZSBzZXJ2aWNlIHRoYXQgaGFuZGxlcyB0aGUgZW50aXRpZXMuXG4gICAgICogTmVlZHMgdG8gYmUgaW5qZWN0YWJsZSBhbmQgYW4gZXh0ZW5zaW9uIG9mIHRoZSBcIkVudGl0eVNlcnZpY2VcIi1DbGFzcy5cbiAgICAgKi9cbiAgICBFbnRpdHlTZXJ2aWNlQ2xhc3M6IG5ldyAoaHR0cENsaWVudDogSHR0cENsaWVudCkgPT4gRW50aXR5U2VydmljZTxFbnRpdHlUeXBlPixcbiAgICAvKipcbiAgICAgKiBUaGUgQ2xhc3Mgb2YgdGhlIGVudGl0aWVzIHRvIG1hbmFnZS5cbiAgICAgKi9cbiAgICBFbnRpdHlDbGFzcz86IG5ldyAoZW50aXR5PzogRW50aXR5VHlwZSkgPT4gRW50aXR5VHlwZSxcbiAgICAvKipcbiAgICAgKiBUaGUgbGFiZWwgb24gdGhlIHNlYXJjaCBiYXIuIERlZmF1bHRzIHRvIFwiU2VhcmNoXCIuXG4gICAgICovXG4gICAgc2VhcmNoTGFiZWw/OiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIGxhYmVsIG9uIHRoZSBidXR0b24gZm9yIGFkZGluZyBuZXcgZW50aXRpZXMuIERlZmF1bHRzIHRvIFwiQ3JlYXRlXCIuXG4gICAgICovXG4gICAgY3JlYXRlQnV0dG9uTGFiZWw/OiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGFrZXMgYSBjdXN0b20gZWRpdCBtZXRob2Qgd2hpY2ggcnVucyB3aGVuIHlvdSBjbGljayBvbiBhIGVudGl0eS5cbiAgICAgKiBJZiB5b3UgZG9uJ3QgbmVlZCBhbnkgc3BlY2lhbCBlZGl0aW5nIG9mIGVudHJpZXMgeW91IGNhbiBhbHNvIG9taXQgdGhpcy5cbiAgICAgKiBJbiB0aGF0IGNhc2UgYSBkZWZhdWx0IGVkaXQgZGlhbG9nIGlzIGdlbmVyYXRlZC5cbiAgICAgKi9cbiAgICBlZGl0PzogKGVudGl0eTogRW50aXR5VHlwZSkgPT4gdW5rbm93bixcbiAgICAvKipcbiAgICAgKiBUYWtlcyBhIG1ldGhvZCB0byBydW4gd2hlbiB5b3UgY2xpY2sgb24gdGhlIG5ldyBidXR0b24uXG4gICAgICogSWYgeW91IGRvbid0IG5lZWQgYW55dGhpbmcgc3BlY2lhbCB5b3UgY2FuIGFsc28gb21pdCB0aGlzLlxuICAgICAqIEluIHRoYXQgY2FzZSBhIGRlZmF1bHQgY3JlYXRlIGRpYWxvZyBpcyBnZW5lcmF0ZWQuXG4gICAgICovXG4gICAgY3JlYXRlPzogKGVudGl0eTogRW50aXR5VHlwZSkgPT4gdW5rbm93bixcbiAgICAvKipcbiAgICAgKiBEZWZpbmVzIGhvdyB0aGUgc2VhcmNoIHN0cmluZyBvZiBlbnRpdGllcyBpcyBnZW5lcmF0ZWQuXG4gICAgICovXG4gICAgc2VhcmNoU3RyaW5nPzogKGVuaXR5OiBFbnRpdHlUeXBlKSA9PiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB3aGV0aGVyIG9yIG5vdCB0aGUgdXNlciBjYW4gYWRkIG5ldyBlbnRpdGllcy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBhbGxvd0NyZWF0ZT86IGJvb2xlYW4sXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB3aGV0aGVyIG9yIG5vdCB0aGUgdXNlciBjYW4gZWRpdCBlbnRpdGllcy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0ICgpID0+IHRydWVcbiAgICAgKi9cbiAgICBhbGxvd0VkaXQ/OiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiBib29sZWFuLFxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgb3Igbm90IHRoZSB1c2VyIGNhbiBkZWxldGUgdGhpcyBzcGVjaWZpYyBlbnRpdHkuXG4gICAgICovXG4gICAgYWxsb3dEZWxldGU/OiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiBib29sZWFuLFxuICAgIC8qKlxuICAgICAqIEFsbCBBY3Rpb25zIHRoYXQgeW91IHdhbnQgdG8gcnVuIG9uIG11bHRpcGxlIGVudGl0aWVzIGNhbiBiZSBkZWZpbmVkIGhlcmUuXG4gICAgICogKGUuZy4gRG93bmxvYWQgYXMgemlwLWZpbGUgb3IgbWFzcyBkZWxldGUpLlxuICAgICAqL1xuICAgIG11bHRpU2VsZWN0QWN0aW9ucz86IE11bHRpU2VsZWN0QWN0aW9uPEVudGl0eVR5cGU+W10sXG4gICAgLyoqXG4gICAgICogVGhlIExhYmVsIGZvciB0aGUgYnV0dG9uIHRoYXQgb3BlbnMgYWxsIG11bHRpLWFjdGlvbnMuXG4gICAgICovXG4gICAgbXVsdGlTZWxlY3RMYWJlbD86IHN0cmluZ1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZURpYWxvZ0RhdGEge1xuICAgIC8qKlxuICAgICAqIFRoZSB0aXRsZSBvZiB0aGUgZGVmYXVsdCBjcmVhdGUtZGlhbG9nLlxuICAgICAqL1xuICAgIHRpdGxlPzogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFRoZSBsYWJlbCBvbiB0aGUgY3JlYXRlLWJ1dHRvbiBvZiB0aGUgZGVmYXVsdCBjcmVhdGUtZGlhbG9nLiBEZWZhdWx0cyB0byBcIkNyZWF0ZVwiLlxuICAgICAqL1xuICAgIGNyZWF0ZUJ1dHRvbkxhYmVsPzogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFRoZSBsYWJlbCBvbiB0aGUgY2FuY2VsLWJ1dHRvbiBmb3IgdGhlIGRlZmF1bHQgY3JlYXRlLWRpYWxvZy4gRGVmYXVsdHMgdG8gXCJDYW5jZWxcIi5cbiAgICAgKi9cbiAgICBjYW5jZWxCdXR0b25MYWJlbD86IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgY3JlYXRpb24gb2YgYW4gZW50cnkgc2hvdWxkIHJlcXVpcmUgYSBjb25maXJtIGRpYWxvZy5cbiAgICAgKi9cbiAgICBjcmVhdGVSZXF1aXJlc0NvbmZpcm1EaWFsb2c/OiBib29sZWFuLFxuICAgIC8qKlxuICAgICAqIFRoZSBkYXRhIHVzZWQgdG8gZ2VuZXJhdGUgYSBjb25maXJtYXRpb24gZGlhbG9nIGZvciB0aGUgY3JlYXRlIGFjdGlvbi5cbiAgICAgKi9cbiAgICBjb25maXJtQ3JlYXRlRGlhbG9nRGF0YT86IENvbmZpcm1EaWFsb2dEYXRhXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRWRpdERpYWxvZ0RhdGE8RW50aXR5VHlwZSBleHRlbmRzIEVudGl0eT4ge1xuICAgIC8qKlxuICAgICAqIFRoZSB0aXRsZSBvZiB0aGUgZGVmYXVsdCBlZGl0LWRpYWxvZy5cbiAgICAgKi9cbiAgICB0aXRsZT86IChlbnRpdHk6IEVudGl0eVR5cGUpID0+IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgbGFiZWwgb24gdGhlIGNvbmZpcm0tYnV0dG9uIG9mIHRoZSBkZWZhdWx0IGVkaXQtZGlhbG9nLiBEZWZhdWx0cyB0byBcIlNhdmVcIi5cbiAgICAgKi9cbiAgICBjb25maXJtQnV0dG9uTGFiZWw/OiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIGxhYmVsIG9uIHRoZSBkZWxldGUtYnV0dG9uIG9mIHRoZSBkZWZhdWx0IGVkaXQtZGlhbG9nLiBEZWZhdWx0cyB0byBcIkRlbGV0ZVwiLlxuICAgICAqL1xuICAgIGRlbGV0ZUJ1dHRvbkxhYmVsPzogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFRoZSBsYWJlbCBvbiB0aGUgY2FuY2VsLWJ1dHRvbiBmb3IgdGhlIGRlZmF1bHQgZWRpdC1kaWFsb2cuIERlZmF1bHRzIHRvIFwiQ2FuY2VsXCIuXG4gICAgICovXG4gICAgY2FuY2VsQnV0dG9uTGFiZWw/OiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogV2hldGhlciBvciBub3QgdGhlIGRlbGV0aW9uIG9mIGFuIGVudHJ5IHNob3VsZCByZXF1aXJlIGEgY29uZmlybSBkaWFsb2cuXG4gICAgICovXG4gICAgZGVsZXRlUmVxdWlyZXNDb25maXJtRGlhbG9nPzogYm9vbGVhbixcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIG9yIG5vdCB0aGUgZWRpdGluZyBvZiBhbiBlbnRyeSBzaG91bGQgcmVxdWlyZSBhIGNvbmZpcm0gZGlhbG9nLlxuICAgICAqL1xuICAgIGVkaXRSZXF1aXJlc0NvbmZpcm1EaWFsb2c/OiBib29sZWFuLFxuXG4gICAgLyoqXG4gICAgICogVGhlIGRhdGEgdXNlZCB0byBnZW5lcmF0ZSBhIGNvbmZpcm1hdGlvbiBkaWFsb2cgZm9yIHRoZSBkZWxldGUgYWN0aW9uLlxuICAgICAqL1xuICAgIGNvbmZpcm1EZWxldGVEaWFsb2dEYXRhPzogQ29uZmlybURpYWxvZ0RhdGEsXG5cbiAgICAvKipcbiAgICAgKiBUaGUgZGF0YSB1c2VkIHRvIGdlbmVyYXRlIGEgY29uZmlybWF0aW9uIGRpYWxvZyBmb3IgdGhlIGRlbGV0ZSBhY3Rpb24uXG4gICAgICovXG4gICAgY29uZmlybUVkaXREaWFsb2dEYXRhPzogQ29uZmlybURpYWxvZ0RhdGFcbn1cblxuZXhwb3J0IGludGVyZmFjZSBUYWJsZURhdGE8RW50aXR5VHlwZSBleHRlbmRzIEVudGl0eT4ge1xuICAgIC8qKlxuICAgICAqIFRoZSBiYXNlIGRhdGEgZm9yIHRoZSB0YWJsZS1jb21wb25lbnQuXG4gICAgICogSW5jbHVkZXMgc3R1ZmYgbGlrZSB0aGUgdGl0bGUgZm9yIHRoZSB0YWJsZSwgd2hhdCB0byBkaXNwbGF5IGluc2lkZSB0aGUgcm93cyBldGMuXG4gICAgICovXG4gICAgYmFzZURhdGE6IEJhc2VEYXRhPEVudGl0eVR5cGU+LFxuICAgIC8qKlxuICAgICAqIFRoZSBkYXRhIGZvciB0aGUgZGVmYXVsdCBjcmVhdGUtZGlhbG9nLlxuICAgICAqIENhbiBiZSBvbWl0dGVkIHdoZW4gc3BlY2lmeWluZyBhIGN1c3RvbSBcImNyZWF0ZVwiIG1ldGhvZCBpbnNpZGUgdGhlIGJhc2VEYXRhLlxuICAgICAqL1xuICAgIGNyZWF0ZURpYWxvZ0RhdGE/OiBDcmVhdGVEaWFsb2dEYXRhLFxuICAgIC8qKlxuICAgICAqIFRoZSBkYXRhIGZvciB0aGUgZGVmYXVsdCBlZGl0LWRpYWxvZy5cbiAgICAgKiBDYW4gYmUgb21pdHRlZCB3aGVuIHNwZWNpZnlpbmcgYSBjdXN0b20gXCJlZGl0XCIgbWV0aG9kIGluc2lkZSB0aGUgYmFzZURhdGEuXG4gICAgICovXG4gICAgZWRpdERpYWxvZ0RhdGE/OiBFZGl0RGlhbG9nRGF0YTxFbnRpdHlUeXBlPlxufSJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZGF0YS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXRlcmlhbC1lbnRpdHkvc3JjL2NvbXBvbmVudHMvdGFibGUvdGFibGUtZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEVudGl0eVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2VudGl0eS5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2VFbnRpdHlUeXBlLCBFbnRpdHlDbGFzc05ld2FibGUgfSBmcm9tICcuLi8uLi9jbGFzc2VzL2VudGl0eS5tb2RlbCc7XG5pbXBvcnQgeyBDb25maXJtRGlhbG9nRGF0YSB9IGZyb20gJy4uL2NvbmZpcm0tZGlhbG9nL2NvbmZpcm0tZGlhbG9nLWRhdGEnO1xuXG4vKipcbiAqIFRoZSBEZWZpbml0aW9uIG9mIGEgQ29sdW1uIGluc2lkZSB0aGUgdGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlzcGxheUNvbHVtbjxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+IHtcbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBpbnNpZGUgdGhlIGhlYWRlci5cbiAgICAgKi9cbiAgICBkaXNwbGF5TmFtZTogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIEEgbWV0aG9kIHRvIGdldCB0aGUgdmFsdWUgaW5zaWRlIGFuIHJvdy5cbiAgICAgKi9cbiAgICB2YWx1ZTogKGVudGl0eTogRW50aXR5VHlwZSkgPT4gc3RyaW5nXG59XG5cbi8qKlxuICogVGhlIERlZmluaXRpb24gb2YgYW4gQWN0aW9uIHRoYXQgY2FuIGJlIHJ1biBvbiBtdWx0aXBsZSBzZWxlY3RlZCBlbnRpdGllcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNdWx0aVNlbGVjdEFjdGlvbjxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+IHtcbiAgICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgYWN0aW9uLlxuICAgICAqL1xuICAgIGRpc3BsYXlOYW1lOiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIGFjdGlvbiBpdHNlbGYuXG4gICAgICovXG4gICAgYWN0aW9uOiAoc2VsZWN0ZWRFbnRpdGllczogRW50aXR5VHlwZVtdKSA9PiB1bmtub3duLFxuICAgIC8qKlxuICAgICAqIEEgbWV0aG9kIHRoYXQgZGVmaW5lcyB3aGV0aGVyIG9yIG5vdCB0aGUgYWN0aW9uIGNhbiBiZSB1c2VkLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgdHJ1ZVxuICAgICAqL1xuICAgIGVuYWJsZWQ/OiAoc2VsZWN0ZWRFbnRpdGllczogRW50aXR5VHlwZVtdKSA9PiBib29sZWFuLFxuICAgIC8qKlxuICAgICAqIEEgbWV0aG9kIHRoYXQgZGVmaW5lcyB3aGV0aGVyIG9yIG5vdCBhIGNvbmZpcm0gZGlhbG9nIGlzIG5lZWRlZCB0byBydW4gdGhlIGFjdGlvbi5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgcmVxdWlyZUNvbmZpcm1EaWFsb2c/OiAoc2VsZWN0ZWRFbnRpdGllczogRW50aXR5VHlwZVtdKSA9PiBib29sZWFuLFxuICAgIC8qKlxuICAgICAqIFRoZSBkYXRhIHVzZWQgdG8gZ2VuZXJhdGUgYSBjb25maXJtYXRpb24gZGlhbG9nIGZvciB0aGUgbXVsdGlTZWxlY3QgYWN0aW9uLlxuICAgICAqL1xuICAgIGNvbmZpcm1EaWFsb2dEYXRhPzogQ29uZmlybURpYWxvZ0RhdGFcbn1cblxuLyoqXG4gKiBUaGUgYmFzZSBkYXRhIG9mIHRoZSBuZ3gtbWF0LWVudGl0eS10YWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNlRGF0YTxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+IHtcbiAgICAvKipcbiAgICAgKiBUaGUgdGl0bGUgb2YgdGhlIHRhYmxlLlxuICAgICAqL1xuICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIGRlZmluaXRpb24gb2YgdGhlIGNvbHVtbnMgdG8gZGlzcGxheS4gQ29uc2lzdHMgb2YgdGhlIGRpc3BsYXlOYW1lIHRvIHNob3cgaW4gdGhlIGhlYWRlciBvZiB0aGUgcm93XG4gICAgICogYW5kIHRoZSB2YWx1ZSwgd2hpY2ggaXMgYSBmdW5jdGlvbiB0aGF0IGdlbmVyYXRlcyB0aGUgdmFsdWUgdG8gZGlzcGxheSBpbnNpZGUgYSBjb2x1bW4uXG4gICAgICovXG4gICAgZGlzcGxheUNvbHVtbnM6IERpc3BsYXlDb2x1bW48RW50aXR5VHlwZT5bXSxcbiAgICAvKipcbiAgICAgKiBUaGUgQ2xhc3Mgb2YgdGhlIHNlcnZpY2UgdGhhdCBoYW5kbGVzIHRoZSBlbnRpdGllcy5cbiAgICAgKiBOZWVkcyB0byBiZSBpbmplY3RhYmxlIGFuZCBhbiBleHRlbnNpb24gb2YgdGhlIFwiRW50aXR5U2VydmljZVwiLUNsYXNzLlxuICAgICAqL1xuICAgIEVudGl0eVNlcnZpY2VDbGFzczogbmV3IChodHRwQ2xpZW50OiBIdHRwQ2xpZW50KSA9PiBFbnRpdHlTZXJ2aWNlPEVudGl0eVR5cGU+LFxuICAgIC8qKlxuICAgICAqIFRoZSBDbGFzcyBvZiB0aGUgZW50aXRpZXMgdG8gbWFuYWdlLlxuICAgICAqL1xuICAgIEVudGl0eUNsYXNzPzogRW50aXR5Q2xhc3NOZXdhYmxlPEVudGl0eVR5cGU+LFxuICAgIC8qKlxuICAgICAqIFRoZSBsYWJlbCBvbiB0aGUgc2VhcmNoIGJhci4gRGVmYXVsdHMgdG8gXCJTZWFyY2hcIi5cbiAgICAgKi9cbiAgICBzZWFyY2hMYWJlbD86IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgbGFiZWwgb24gdGhlIGJ1dHRvbiBmb3IgYWRkaW5nIG5ldyBlbnRpdGllcy4gRGVmYXVsdHMgdG8gXCJDcmVhdGVcIi5cbiAgICAgKi9cbiAgICBjcmVhdGVCdXR0b25MYWJlbD86IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUYWtlcyBhIGN1c3RvbSBlZGl0IG1ldGhvZCB3aGljaCBydW5zIHdoZW4geW91IGNsaWNrIG9uIGEgZW50aXR5LlxuICAgICAqIElmIHlvdSBkb24ndCBuZWVkIGFueSBzcGVjaWFsIGVkaXRpbmcgb2YgZW50cmllcyB5b3UgY2FuIGFsc28gb21pdCB0aGlzLlxuICAgICAqIEluIHRoYXQgY2FzZSBhIGRlZmF1bHQgZWRpdCBkaWFsb2cgaXMgZ2VuZXJhdGVkLlxuICAgICAqL1xuICAgIGVkaXQ/OiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiB1bmtub3duLFxuICAgIC8qKlxuICAgICAqIFRha2VzIGEgbWV0aG9kIHRvIHJ1biB3aGVuIHlvdSBjbGljayBvbiB0aGUgbmV3IGJ1dHRvbi5cbiAgICAgKiBJZiB5b3UgZG9uJ3QgbmVlZCBhbnl0aGluZyBzcGVjaWFsIHlvdSBjYW4gYWxzbyBvbWl0IHRoaXMuXG4gICAgICogSW4gdGhhdCBjYXNlIGEgZGVmYXVsdCBjcmVhdGUgZGlhbG9nIGlzIGdlbmVyYXRlZC5cbiAgICAgKi9cbiAgICBjcmVhdGU/OiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiB1bmtub3duLFxuICAgIC8qKlxuICAgICAqIERlZmluZXMgaG93IHRoZSBzZWFyY2ggc3RyaW5nIG9mIGVudGl0aWVzIGlzIGdlbmVyYXRlZC5cbiAgICAgKi9cbiAgICBzZWFyY2hTdHJpbmc/OiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB3aGV0aGVyIG9yIG5vdCB0aGUgdXNlciBjYW4gYWRkIG5ldyBlbnRpdGllcy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBhbGxvd0NyZWF0ZT86IGJvb2xlYW4sXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyB3aGV0aGVyIG9yIG5vdCB0aGUgdXNlciBjYW4gZWRpdCBlbnRpdGllcy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0ICgpID0+IHRydWVcbiAgICAgKi9cbiAgICBhbGxvd0VkaXQ/OiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiBib29sZWFuLFxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgb3Igbm90IHRoZSB1c2VyIGNhbiBkZWxldGUgdGhpcyBzcGVjaWZpYyBlbnRpdHkuXG4gICAgICovXG4gICAgYWxsb3dEZWxldGU/OiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiBib29sZWFuLFxuICAgIC8qKlxuICAgICAqIEFsbCBBY3Rpb25zIHRoYXQgeW91IHdhbnQgdG8gcnVuIG9uIG11bHRpcGxlIGVudGl0aWVzIGNhbiBiZSBkZWZpbmVkIGhlcmUuXG4gICAgICogKGUuZy4gRG93bmxvYWQgYXMgemlwLWZpbGUgb3IgbWFzcyBkZWxldGUpLlxuICAgICAqL1xuICAgIG11bHRpU2VsZWN0QWN0aW9ucz86IE11bHRpU2VsZWN0QWN0aW9uPEVudGl0eVR5cGU+W10sXG4gICAgLyoqXG4gICAgICogVGhlIExhYmVsIGZvciB0aGUgYnV0dG9uIHRoYXQgb3BlbnMgYWxsIG11bHRpLWFjdGlvbnMuXG4gICAgICovXG4gICAgbXVsdGlTZWxlY3RMYWJlbD86IHN0cmluZ1xufVxuXG4vKipcbiAqIFRoZSBkYXRhIG9mIHRoZSBkZWZhdWx0IGNyZWF0ZS1kaWFsb2cuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlRGlhbG9nRGF0YSB7XG4gICAgLyoqXG4gICAgICogVGhlIHRpdGxlIG9mIHRoZSBkZWZhdWx0IGNyZWF0ZS1kaWFsb2cuXG4gICAgICovXG4gICAgdGl0bGU/OiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIGxhYmVsIG9uIHRoZSBjcmVhdGUtYnV0dG9uIG9mIHRoZSBkZWZhdWx0IGNyZWF0ZS1kaWFsb2cuIERlZmF1bHRzIHRvIFwiQ3JlYXRlXCIuXG4gICAgICovXG4gICAgY3JlYXRlQnV0dG9uTGFiZWw/OiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIGxhYmVsIG9uIHRoZSBjYW5jZWwtYnV0dG9uIGZvciB0aGUgZGVmYXVsdCBjcmVhdGUtZGlhbG9nLiBEZWZhdWx0cyB0byBcIkNhbmNlbFwiLlxuICAgICAqL1xuICAgIGNhbmNlbEJ1dHRvbkxhYmVsPzogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgb3Igbm90IHRoZSBjcmVhdGlvbiBvZiBhbiBlbnRyeSBzaG91bGQgcmVxdWlyZSBhIGNvbmZpcm0gZGlhbG9nLlxuICAgICAqL1xuICAgIGNyZWF0ZVJlcXVpcmVzQ29uZmlybURpYWxvZz86IGJvb2xlYW4sXG4gICAgLyoqXG4gICAgICogVGhlIGRhdGEgdXNlZCB0byBnZW5lcmF0ZSBhIGNvbmZpcm1hdGlvbiBkaWFsb2cgZm9yIHRoZSBjcmVhdGUgYWN0aW9uLlxuICAgICAqL1xuICAgIGNvbmZpcm1DcmVhdGVEaWFsb2dEYXRhPzogQ29uZmlybURpYWxvZ0RhdGFcbn1cblxuLyoqXG4gKiBUaGUgZGF0YSBvZiB0aGUgZGVmYXVsdCBlZGl0LWRpYWxvZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFZGl0RGlhbG9nRGF0YTxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+IHtcbiAgICAvKipcbiAgICAgKiBUaGUgdGl0bGUgb2YgdGhlIGRlZmF1bHQgZWRpdC1kaWFsb2cuXG4gICAgICovXG4gICAgdGl0bGU/OiAoZW50aXR5OiBFbnRpdHlUeXBlKSA9PiBzdHJpbmcsXG4gICAgLyoqXG4gICAgICogVGhlIGxhYmVsIG9uIHRoZSBjb25maXJtLWJ1dHRvbiBvZiB0aGUgZGVmYXVsdCBlZGl0LWRpYWxvZy4gRGVmYXVsdHMgdG8gXCJTYXZlXCIuXG4gICAgICovXG4gICAgY29uZmlybUJ1dHRvbkxhYmVsPzogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFRoZSBsYWJlbCBvbiB0aGUgZGVsZXRlLWJ1dHRvbiBvZiB0aGUgZGVmYXVsdCBlZGl0LWRpYWxvZy4gRGVmYXVsdHMgdG8gXCJEZWxldGVcIi5cbiAgICAgKi9cbiAgICBkZWxldGVCdXR0b25MYWJlbD86IHN0cmluZyxcbiAgICAvKipcbiAgICAgKiBUaGUgbGFiZWwgb24gdGhlIGNhbmNlbC1idXR0b24gZm9yIHRoZSBkZWZhdWx0IGVkaXQtZGlhbG9nLiBEZWZhdWx0cyB0byBcIkNhbmNlbFwiLlxuICAgICAqL1xuICAgIGNhbmNlbEJ1dHRvbkxhYmVsPzogc3RyaW5nLFxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgb3Igbm90IHRoZSBkZWxldGlvbiBvZiBhbiBlbnRyeSBzaG91bGQgcmVxdWlyZSBhIGNvbmZpcm0gZGlhbG9nLlxuICAgICAqL1xuICAgIGRlbGV0ZVJlcXVpcmVzQ29uZmlybURpYWxvZz86IGJvb2xlYW4sXG4gICAgLyoqXG4gICAgICogV2hldGhlciBvciBub3QgdGhlIGVkaXRpbmcgb2YgYW4gZW50cnkgc2hvdWxkIHJlcXVpcmUgYSBjb25maXJtIGRpYWxvZy5cbiAgICAgKi9cbiAgICBlZGl0UmVxdWlyZXNDb25maXJtRGlhbG9nPzogYm9vbGVhbixcblxuICAgIC8qKlxuICAgICAqIFRoZSBkYXRhIHVzZWQgdG8gZ2VuZXJhdGUgYSBjb25maXJtYXRpb24gZGlhbG9nIGZvciB0aGUgZGVsZXRlIGFjdGlvbi5cbiAgICAgKi9cbiAgICBjb25maXJtRGVsZXRlRGlhbG9nRGF0YT86IENvbmZpcm1EaWFsb2dEYXRhLFxuXG4gICAgLyoqXG4gICAgICogVGhlIGRhdGEgdXNlZCB0byBnZW5lcmF0ZSBhIGNvbmZpcm1hdGlvbiBkaWFsb2cgZm9yIHRoZSBkZWxldGUgYWN0aW9uLlxuICAgICAqL1xuICAgIGNvbmZpcm1FZGl0RGlhbG9nRGF0YT86IENvbmZpcm1EaWFsb2dEYXRhXG59XG5cbi8qKlxuICogQWxsIHRoZSBjb25maWd1cmF0aW9uIGRhdGEgcmVxdWlyZWQgdG8gZGlzcGxheSBhIG5neC1tYXQtZW50aXR5LXRhYmxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhYmxlRGF0YTxFbnRpdHlUeXBlIGV4dGVuZHMgQmFzZUVudGl0eVR5cGU8RW50aXR5VHlwZT4+IHtcbiAgICAvKipcbiAgICAgKiBUaGUgYmFzZSBkYXRhIGZvciB0aGUgdGFibGUtY29tcG9uZW50LlxuICAgICAqIEluY2x1ZGVzIHN0dWZmIGxpa2UgdGhlIHRpdGxlIGZvciB0aGUgdGFibGUsIHdoYXQgdG8gZGlzcGxheSBpbnNpZGUgdGhlIHJvd3MgZXRjLlxuICAgICAqL1xuICAgIGJhc2VEYXRhOiBCYXNlRGF0YTxFbnRpdHlUeXBlPixcbiAgICAvKipcbiAgICAgKiBUaGUgZGF0YSBmb3IgdGhlIGRlZmF1bHQgY3JlYXRlLWRpYWxvZy5cbiAgICAgKiBDYW4gYmUgb21pdHRlZCB3aGVuIHNwZWNpZnlpbmcgYSBjdXN0b20gXCJjcmVhdGVcIiBtZXRob2QgaW5zaWRlIHRoZSBiYXNlRGF0YS5cbiAgICAgKi9cbiAgICBjcmVhdGVEaWFsb2dEYXRhPzogQ3JlYXRlRGlhbG9nRGF0YSxcbiAgICAvKipcbiAgICAgKiBUaGUgZGF0YSBmb3IgdGhlIGRlZmF1bHQgZWRpdC1kaWFsb2cuXG4gICAgICogQ2FuIGJlIG9taXR0ZWQgd2hlbiBzcGVjaWZ5aW5nIGEgY3VzdG9tIFwiZWRpdFwiIG1ldGhvZCBpbnNpZGUgdGhlIGJhc2VEYXRhLlxuICAgICAqL1xuICAgIGVkaXREaWFsb2dEYXRhPzogRWRpdERpYWxvZ0RhdGE8RW50aXR5VHlwZT5cbn0iXX0=