@mediusinc/mng-commons 5.0.0-rc.2 → 5.0.0-rc.3

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 (204) hide show
  1. package/core/data-providers/base-data-provider.factory.d.ts +13 -0
  2. package/core/data-providers/base.data-provider.d.ts +2 -14
  3. package/core/descriptors/editor.descriptor.d.ts +1 -1
  4. package/core/descriptors/tableview.descriptor.d.ts +5 -5
  5. package/core/directives/component.directive.d.ts +2 -2
  6. package/core/index.d.ts +1 -0
  7. package/core/security/permission.service.d.ts +1 -0
  8. package/core/services/commons-router.service.d.ts +3 -3
  9. package/core/services/commons.service.d.ts +31 -42
  10. package/core/services/tokens/module-config.token.d.ts +2 -2
  11. package/esm2022/core/components/notification/notification-wrapper.component.mjs +3 -3
  12. package/esm2022/core/components/pages/error/error.page.component.mjs +3 -3
  13. package/esm2022/core/components/pages/not-found/not-found.page.component.mjs +3 -3
  14. package/esm2022/core/data-providers/base-data-provider.factory.mjs +28 -0
  15. package/esm2022/core/data-providers/base.data-provider.mjs +1 -31
  16. package/esm2022/core/descriptors/editor.descriptor.mjs +1 -1
  17. package/esm2022/core/descriptors/tableview.descriptor.mjs +1 -1
  18. package/esm2022/core/directives/component.directive.mjs +10 -7
  19. package/esm2022/core/index.mjs +2 -1
  20. package/esm2022/core/security/permission.service.mjs +4 -2
  21. package/esm2022/core/services/commons-init.service.mjs +2 -2
  22. package/esm2022/core/services/commons-router.service.mjs +16 -15
  23. package/esm2022/core/services/commons.service.mjs +109 -166
  24. package/esm2022/core/services/tokens/module-config.token.mjs +1 -1
  25. package/esm2022/filter/descriptors/filter-lookup.descriptor.mjs +4 -4
  26. package/esm2022/form/api/data-providers/lookup-data-provider.factory.mjs +31 -0
  27. package/esm2022/form/api/data-providers/lookup.data-provider.mjs +1 -31
  28. package/esm2022/form/api/index.mjs +2 -1
  29. package/esm2022/form/components/autocomplete/autocomplete.component.mjs +92 -83
  30. package/esm2022/form/components/dropdown/dropdown.component.mjs +145 -87
  31. package/esm2022/model/data-providers/base-from-type-data-provider.factory.mjs +8 -0
  32. package/esm2022/model/descriptors/enum.descriptor.mjs +3 -6
  33. package/esm2022/model/descriptors/model.descriptor.mjs +22 -9
  34. package/esm2022/model/descriptors/type.descriptor.mjs +3 -9
  35. package/esm2022/model/index.mjs +3 -1
  36. package/esm2022/table/api/data-providers/table-data-provider.factory.mjs +33 -0
  37. package/esm2022/table/api/data-providers/table.data-provider.mjs +1 -31
  38. package/esm2022/table/api/descriptors/sort.descriptor.mjs +2 -2
  39. package/esm2022/table/api/descriptors/table-descriptor.factory.mjs +89 -0
  40. package/esm2022/table/api/descriptors/table.descriptor.mjs +4 -139
  41. package/esm2022/table/api/helpers/table-descriptor-helpers.mjs +97 -0
  42. package/esm2022/table/api/index.mjs +4 -1
  43. package/esm2022/table/components/column-filter-full/column-filter-full.component.mjs +6 -7
  44. package/esm2022/table/components/column-value/column-value.component.mjs +2 -2
  45. package/esm2022/table/components/table/table.component.mjs +5 -5
  46. package/esm2022/table/pipes/locale-default-row-class.pipe.mjs +2 -2
  47. package/esm2022/table/services/data-list.service.mjs +1 -1
  48. package/esm2022/tableview/action/components/action/action.component.mjs +140 -188
  49. package/esm2022/tableview/action/components/editor/action-editor.component.mjs +56 -66
  50. package/esm2022/tableview/action/components/editor/injector-context/action-editor-injector-context.component.mjs +119 -141
  51. package/esm2022/tableview/action/components/localization/data-language-dropdown.component.mjs +21 -39
  52. package/esm2022/tableview/action/components/route/action-route.component.mjs +17 -23
  53. package/esm2022/tableview/action/components/table/action-table.component.mjs +1 -1
  54. package/esm2022/tableview/action/services/action-executor.service.mjs +9 -9
  55. package/esm2022/tableview/action/services/navigation.service.mjs +3 -2
  56. package/esm2022/tableview/action/services/view-container.service.mjs +5 -21
  57. package/esm2022/tableview/api/action/descriptors/action-descriptor.factory.mjs +119 -0
  58. package/esm2022/tableview/api/action/descriptors/action-editor-descriptor.factory.mjs +77 -0
  59. package/esm2022/tableview/api/action/descriptors/action-editor.descriptor.mjs +20 -80
  60. package/esm2022/tableview/api/action/descriptors/action-link-descriptor.factory.mjs +45 -0
  61. package/esm2022/tableview/api/action/descriptors/action-link.descriptor.mjs +1 -32
  62. package/esm2022/tableview/api/action/descriptors/action.descriptor.mjs +3 -69
  63. package/esm2022/tableview/api/action/models/action-component.model.mjs +1 -1
  64. package/esm2022/tableview/api/action/models/execution/view-container.model.mjs +1 -1
  65. package/esm2022/tableview/api/editor/data-providers/editor-data-provider.factory.mjs +33 -0
  66. package/esm2022/tableview/api/editor/data-providers/editor.data-provider.mjs +1 -31
  67. package/esm2022/tableview/api/editor/descriptors/editor-descriptor.factory.mjs +81 -0
  68. package/esm2022/tableview/api/editor/descriptors/editor.descriptor.mjs +7 -133
  69. package/esm2022/tableview/api/editor/descriptors/field-action.descriptor.mjs +1 -1
  70. package/esm2022/tableview/api/editor/descriptors/field-base.descriptor.mjs +13 -5
  71. package/esm2022/tableview/api/editor/descriptors/field-group.descriptor.mjs +1 -1
  72. package/esm2022/tableview/api/editor/descriptors/field-lookup.descriptor.mjs +4 -4
  73. package/esm2022/tableview/api/editor/descriptors/field-many.descriptor.mjs +3 -3
  74. package/esm2022/tableview/api/editor/descriptors/field-validation.descriptor.mjs +1 -1
  75. package/esm2022/tableview/api/editor/descriptors/field.descriptor.mjs +1 -1
  76. package/esm2022/tableview/api/editor/helpers/editor-descriptor-helpers.mjs +95 -0
  77. package/esm2022/tableview/api/editor/helpers/field-validators.mjs +7 -7
  78. package/esm2022/tableview/api/editor/models/editor-fields.model.mjs +1 -1
  79. package/esm2022/tableview/api/editor/models/field-action-context.model.mjs +1 -1
  80. package/esm2022/tableview/api/editor/models/field-validation.model.mjs +2 -0
  81. package/esm2022/tableview/api/editor/models/field.model.mjs +1 -1
  82. package/esm2022/tableview/api/editor/models/form-editor.event.mjs +1 -1
  83. package/esm2022/tableview/api/editor/models/form-editor.interface.mjs +1 -1
  84. package/esm2022/tableview/api/editor/models/formly-field.model.mjs +1 -1
  85. package/esm2022/tableview/api/index.mjs +11 -1
  86. package/esm2022/tableview/api/tableview/data-providers/tableview-data-provider.factory.mjs +47 -0
  87. package/esm2022/tableview/api/tableview/data-providers/tableview.data-provider.mjs +5 -46
  88. package/esm2022/tableview/api/tableview/descriptors/tableview-descriptor.factory.mjs +111 -0
  89. package/esm2022/tableview/api/tableview/descriptors/tableview.descriptor.mjs +15 -168
  90. package/esm2022/tableview/api/tableview/helpers/files-export.mjs +2 -2
  91. package/esm2022/tableview/api/tableview/helpers/tableview-create.mjs +5 -5
  92. package/esm2022/tableview/api/tableview/helpers/tableview-default-actions.mjs +53 -18
  93. package/esm2022/tableview/api/tableview/helpers/tableview-descriptor-helpers.mjs +110 -0
  94. package/esm2022/tableview/api/tableview/helpers/tableview-input-builder.mjs +2 -2
  95. package/esm2022/tableview/editor/components/editor/form-editor.component.mjs +16 -11
  96. package/esm2022/tableview/editor/components/formly/fields/formly-field-action/formly-field-action.component.mjs +6 -2
  97. package/esm2022/tableview/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +10 -11
  98. package/esm2022/tableview/editor/components/formly/fields/formly-field-custom/formly-field-custom.component.mjs +1 -1
  99. package/esm2022/tableview/editor/components/formly/fields/formly-field-datepicker/formly-field-datepicker.component.mjs +4 -4
  100. package/esm2022/tableview/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +9 -11
  101. package/esm2022/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.mjs +4 -4
  102. package/esm2022/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +16 -18
  103. package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +20 -22
  104. package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +18 -20
  105. package/esm2022/tableview/editor/helpers/editor-formly.mjs +27 -6
  106. package/esm2022/tableview/editor/services/form-editor.service.mjs +96 -0
  107. package/esm2022/tableview/index.mjs +2 -1
  108. package/esm2022/tableview/tableview/components/tableview/tableview.component.mjs +3 -3
  109. package/fesm2022/mediusinc-mng-commons-core.mjs +155 -210
  110. package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
  111. package/fesm2022/mediusinc-mng-commons-filter.mjs +3 -3
  112. package/fesm2022/mediusinc-mng-commons-filter.mjs.map +1 -1
  113. package/fesm2022/mediusinc-mng-commons-form-api.mjs +18 -18
  114. package/fesm2022/mediusinc-mng-commons-form-api.mjs.map +1 -1
  115. package/fesm2022/mediusinc-mng-commons-form.mjs +236 -169
  116. package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -1
  117. package/fesm2022/mediusinc-mng-commons-model.mjs +43 -33
  118. package/fesm2022/mediusinc-mng-commons-model.mjs.map +1 -1
  119. package/fesm2022/mediusinc-mng-commons-table-api.mjs +192 -146
  120. package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -1
  121. package/fesm2022/mediusinc-mng-commons-table.mjs +11 -12
  122. package/fesm2022/mediusinc-mng-commons-table.mjs.map +1 -1
  123. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +822 -590
  124. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
  125. package/fesm2022/mediusinc-mng-commons-tableview.mjs +564 -571
  126. package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
  127. package/form/api/data-providers/lookup-data-provider.factory.d.ts +18 -0
  128. package/form/api/data-providers/lookup.data-provider.d.ts +2 -14
  129. package/form/api/index.d.ts +1 -0
  130. package/form/components/autocomplete/autocomplete.component.d.ts +31 -23
  131. package/form/components/dropdown/dropdown.component.d.ts +38 -25
  132. package/model/data-providers/base-from-type-data-provider.factory.d.ts +8 -0
  133. package/model/descriptors/enum.descriptor.d.ts +1 -2
  134. package/model/descriptors/model.descriptor.d.ts +11 -4
  135. package/model/descriptors/type.descriptor.d.ts +2 -4
  136. package/model/index.d.ts +1 -0
  137. package/package.json +1 -1
  138. package/table/api/data-providers/table-data-provider.factory.d.ts +18 -0
  139. package/table/api/data-providers/table.data-provider.d.ts +2 -14
  140. package/table/api/descriptors/table-descriptor.factory.d.ts +44 -0
  141. package/table/api/descriptors/table.descriptor.d.ts +4 -65
  142. package/table/api/helpers/table-descriptor-helpers.d.ts +44 -0
  143. package/table/api/index.d.ts +3 -0
  144. package/table/components/column-filter-full/column-filter-full.component.d.ts +5 -4
  145. package/table/components/table/table.component.d.ts +11 -11
  146. package/table/services/data-list.service.d.ts +9 -10
  147. package/tableview/action/components/action/action.component.d.ts +37 -44
  148. package/tableview/action/components/editor/action-editor.component.d.ts +20 -18
  149. package/tableview/action/components/editor/injector-context/action-editor-injector-context.component.d.ts +23 -23
  150. package/tableview/action/components/localization/data-language-dropdown.component.d.ts +11 -14
  151. package/tableview/action/components/route/action-route.component.d.ts +6 -11
  152. package/tableview/action/components/table/action-table.component.d.ts +3 -3
  153. package/tableview/action/services/view-container.service.d.ts +3 -9
  154. package/tableview/api/action/descriptors/action-descriptor.factory.d.ts +36 -0
  155. package/tableview/api/action/descriptors/action-editor-descriptor.factory.d.ts +31 -0
  156. package/tableview/api/action/descriptors/action-editor.descriptor.d.ts +17 -37
  157. package/tableview/api/action/descriptors/action-link-descriptor.factory.d.ts +15 -0
  158. package/tableview/api/action/descriptors/action-link.descriptor.d.ts +1 -9
  159. package/tableview/api/action/descriptors/action.descriptor.d.ts +4 -27
  160. package/tableview/api/action/models/action-component.model.d.ts +8 -8
  161. package/tableview/api/action/models/execution/view-container.model.d.ts +4 -3
  162. package/tableview/api/editor/data-providers/editor-data-provider.factory.d.ts +18 -0
  163. package/tableview/api/editor/data-providers/editor.data-provider.d.ts +2 -14
  164. package/tableview/api/editor/descriptors/editor-descriptor.factory.d.ts +44 -0
  165. package/tableview/api/editor/descriptors/editor.descriptor.d.ts +34 -90
  166. package/tableview/api/editor/descriptors/field-action.descriptor.d.ts +3 -3
  167. package/tableview/api/editor/descriptors/field-base.descriptor.d.ts +15 -13
  168. package/tableview/api/editor/descriptors/field-group.descriptor.d.ts +7 -6
  169. package/tableview/api/editor/descriptors/field-lookup.descriptor.d.ts +2 -2
  170. package/tableview/api/editor/descriptors/field-many.descriptor.d.ts +8 -8
  171. package/tableview/api/editor/descriptors/field-validation.descriptor.d.ts +6 -6
  172. package/tableview/api/editor/descriptors/field.descriptor.d.ts +1 -1
  173. package/tableview/api/editor/helpers/editor-descriptor-helpers.d.ts +43 -0
  174. package/tableview/api/editor/helpers/field-validators.d.ts +1 -1
  175. package/tableview/api/editor/models/editor-fields.model.d.ts +24 -22
  176. package/tableview/api/editor/models/field-action-context.model.d.ts +10 -8
  177. package/tableview/api/editor/models/field-validation.model.d.ts +26 -0
  178. package/tableview/api/editor/models/field.model.d.ts +0 -19
  179. package/tableview/api/editor/models/form-editor.event.d.ts +24 -16
  180. package/tableview/api/editor/models/form-editor.interface.d.ts +2 -1
  181. package/tableview/api/editor/models/formly-custom-field.model.d.ts +1 -1
  182. package/tableview/api/editor/models/formly-field.model.d.ts +4 -4
  183. package/tableview/api/index.d.ts +10 -0
  184. package/tableview/api/tableview/data-providers/tableview-data-provider.factory.d.ts +25 -0
  185. package/tableview/api/tableview/data-providers/tableview.data-provider.d.ts +3 -20
  186. package/tableview/api/tableview/descriptors/tableview-descriptor.factory.d.ts +49 -0
  187. package/tableview/api/tableview/descriptors/tableview.descriptor.d.ts +40 -100
  188. package/tableview/api/tableview/helpers/tableview-create.d.ts +2 -2
  189. package/tableview/api/tableview/helpers/tableview-default-actions.d.ts +4 -2
  190. package/tableview/api/tableview/helpers/tableview-descriptor-helpers.d.ts +42 -0
  191. package/tableview/api/tableview/helpers/tableview-input-builder.d.ts +1 -1
  192. package/tableview/editor/components/editor/form-editor.component.d.ts +6 -4
  193. package/tableview/editor/components/formly/fields/formly-field-action/formly-field-action.component.d.ts +5 -3
  194. package/tableview/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +1 -0
  195. package/tableview/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +1 -1
  196. package/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +1 -1
  197. package/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +3 -4
  198. package/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +3 -4
  199. package/tableview/editor/helpers/editor-formly.d.ts +1 -1
  200. package/tableview/editor/services/form-editor.service.d.ts +39 -0
  201. package/tableview/index.d.ts +1 -0
  202. package/tableview/tableview/components/route/tableview-route.component.d.ts +1 -1
  203. package/tableview/tableview/components/tableview/tableview.component.d.ts +1 -1
  204. package/version-info.json +4 -4
@@ -11,12 +11,16 @@ import { CommonsService, LoggerService, objectDeepCopy } from '@mediusinc/mng-co
11
11
  import { FormEventTypeEnum, FormFieldEventComponentSubtype, TableviewEditorTypeEnum } from '@mediusinc/mng-commons/tableview/api';
12
12
  import { createFormlyConfigFromDescriptor } from '../../helpers/editor-formly';
13
13
  import { getFormEditorInfoMessage, getFormEditorWarningMessage } from '../../helpers/notification';
14
+ import { FormEditorService, provideFormComponent } from '../../services/form-editor.service';
14
15
  import * as i0 from "@angular/core";
15
16
  import * as i1 from "@ngx-formly/core";
16
17
  import * as i2 from "@angular/forms";
17
18
  import * as i3 from "primeng/messages";
18
19
  import * as i4 from "primeng/button";
19
20
  export class FormEditorComponent {
21
+ get parent() {
22
+ return this.formService.parent;
23
+ }
20
24
  get form() {
21
25
  return this._form;
22
26
  }
@@ -41,6 +45,7 @@ export class FormEditorComponent {
41
45
  this.commons = inject(CommonsService);
42
46
  this.logger = inject(LoggerService).create('FormEditorComponent');
43
47
  this.destroyRef = inject(DestroyRef);
48
+ this.formService = inject((FormEditorService));
44
49
  this.descriptor = input.required();
45
50
  this.submitLoading = input(false);
46
51
  this.item = input(undefined);
@@ -61,6 +66,7 @@ export class FormEditorComponent {
61
66
  this._formlyFields = []; // initialized in ngOnInit, should not be changed after
62
67
  this._formlyInitialItem = {}; // initialized in ngOnInit, should not be changed after
63
68
  this.formMessages = signal([]);
69
+ this.formService.init(this);
64
70
  effect(() => {
65
71
  const item = this.item();
66
72
  if (item !== this.initialItemInput) {
@@ -97,16 +103,16 @@ export class FormEditorComponent {
97
103
  this.formMessages.set([
98
104
  ...this.formMessages(),
99
105
  getFormEditorInfoMessage(this.translateService, 'mngEditor.localizations.addInDefaultLanguageTitle', 'mngEditor.localizations.addInDefaultLanguageDescription', {
100
- defaultLanguage: this.commons.defaultDataLanguage
106
+ defaultLanguage: this.commons.getDefaultLocale()
101
107
  })
102
108
  ]);
103
109
  }
104
110
  // emit lifecycle event
105
- this.descriptor().nextEvent(FormEventTypeEnum.ComponentLifecycle, FormEditorComponent, this, {
111
+ this.descriptor().nextEvent(FormEventTypeEnum.ComponentLifecycle, this, {
106
112
  eventSubtype: FormFieldEventComponentSubtype.ON_INIT
107
113
  });
108
114
  this._form.valueChanges.pipe(takeUntilDestroyed(this.destroyRef), debounceTime(250), distinctUntilChanged()).subscribe(v => {
109
- this.descriptor().nextEvent(FormEventTypeEnum.ValueChange, FormEditorComponent, this, {
115
+ this.descriptor().nextEvent(FormEventTypeEnum.ValueChange, this, {
110
116
  value: v,
111
117
  formValue: () => this.getFormValue()
112
118
  });
@@ -118,7 +124,7 @@ export class FormEditorComponent {
118
124
  }
119
125
  ngOnDestroy() {
120
126
  // emit lifecycle event
121
- this.descriptor().nextEvent(FormEventTypeEnum.ComponentLifecycle, FormEditorComponent, this, {
127
+ this.descriptor().nextEvent(FormEventTypeEnum.ComponentLifecycle, this, {
122
128
  eventSubtype: FormFieldEventComponentSubtype.ON_DESTROY
123
129
  });
124
130
  }
@@ -135,7 +141,7 @@ export class FormEditorComponent {
135
141
  success: true,
136
142
  formItem: formSubmitItem
137
143
  });
138
- this.descriptor().nextEvent(FormEventTypeEnum.Submit, FormEditorComponent, this, {
144
+ this.descriptor().nextEvent(FormEventTypeEnum.Submit, this, {
139
145
  submitValid: true,
140
146
  submitValue: formSubmitItem
141
147
  });
@@ -145,15 +151,14 @@ export class FormEditorComponent {
145
151
  const formFields = this._formlyFields;
146
152
  if (formFields[0].type === 'tabs' && formFields[0].fieldGroup) {
147
153
  for (const tab of formFields[0].fieldGroup) {
148
- const isInvalid = this.isAnyFieldInvalid(tab.fieldGroup);
149
- this._formlyOptions.formState['tab_' + (tab.id ? tab.id : tab.props.props.label) + '_invalid'] = isInvalid;
154
+ this._formlyOptions.formState['tab_' + (tab.id ? tab.id : tab.props.props.label) + '_invalid'] = this.isAnyFieldInvalid(tab.fieldGroup);
150
155
  }
151
156
  }
152
157
  const event = { success: false, formItem: formSubmitItem };
153
158
  event.success = false;
154
159
  this.formMessages().push(getFormEditorWarningMessage(this.translateService, 'mngEditor.invalidFormToastTitle', 'mngEditor.invalidFormToastMessage'));
155
160
  this.formSubmit.emit(event);
156
- this.descriptor().nextEvent(FormEventTypeEnum.Submit, FormEditorComponent, this, {
161
+ this.descriptor().nextEvent(FormEventTypeEnum.Submit, this, {
157
162
  submitValid: false,
158
163
  submitValue: formSubmitItem
159
164
  });
@@ -296,10 +301,10 @@ export class FormEditorComponent {
296
301
  return false;
297
302
  }
298
303
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: FormEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
299
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "17.3.4", type: FormEditorComponent, isStandalone: true, selector: "mng-form-editor", inputs: { descriptor: { classPropertyName: "descriptor", publicName: "descriptor", isSignal: true, isRequired: true, transformFunction: null }, submitLoading: { classPropertyName: "submitLoading", publicName: "submitLoading", isSignal: true, isRequired: false, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, isFormDisabled: { classPropertyName: "isFormDisabled", publicName: "isFormDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { formSubmit: "formSubmit" }, viewQueries: [{ propertyName: "submitButtonElementRef", first: true, predicate: ["submitButton"], descendants: true, isSignal: true }], ngImport: i0, template: "<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit($event)\">\n <formly-form [form]=\"form\" [fields]=\"formlyFields\" [options]=\"formlyOptions\" [model]=\"formlyInitialItem\"></formly-form>\n <button #submitButton pButton type=\"submit\" class=\"hidden\" [disabled]=\"form.disabled\" [loading]=\"submitLoading()\" loadingIcon=\"pi pi-spin pi-spinner\"></button>\n</form>\n<p-messages [value]=\"formMessages()\" [enableService]=\"false\"></p-messages>\n", dependencies: [{ kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i1.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MessagesModule }, { kind: "component", type: i3.Messages, selector: "p-messages", inputs: ["value", "closable", "style", "styleClass", "enableService", "key", "escape", "severity", "showTransitionOptions", "hideTransitionOptions"], outputs: ["valueChange", "onClose"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
304
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "17.3.4", type: FormEditorComponent, isStandalone: true, selector: "mng-form-editor", inputs: { descriptor: { classPropertyName: "descriptor", publicName: "descriptor", isSignal: true, isRequired: true, transformFunction: null }, submitLoading: { classPropertyName: "submitLoading", publicName: "submitLoading", isSignal: true, isRequired: false, transformFunction: null }, item: { classPropertyName: "item", publicName: "item", isSignal: true, isRequired: false, transformFunction: null }, isFormDisabled: { classPropertyName: "isFormDisabled", publicName: "isFormDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { formSubmit: "formSubmit" }, providers: [provideFormComponent()], viewQueries: [{ propertyName: "submitButtonElementRef", first: true, predicate: ["submitButton"], descendants: true, isSignal: true }], ngImport: i0, template: "<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit($event)\">\n <formly-form [form]=\"form\" [fields]=\"formlyFields\" [options]=\"formlyOptions\" [model]=\"formlyInitialItem\"></formly-form>\n <button #submitButton pButton type=\"submit\" class=\"hidden\" [disabled]=\"form.disabled\" [loading]=\"submitLoading()\" loadingIcon=\"pi pi-spin pi-spinner\"></button>\n</form>\n<p-messages [value]=\"formMessages()\" [enableService]=\"false\"></p-messages>\n", dependencies: [{ kind: "ngmodule", type: FormlyModule }, { kind: "component", type: i1.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MessagesModule }, { kind: "component", type: i3.Messages, selector: "p-messages", inputs: ["value", "closable", "style", "styleClass", "enableService", "key", "escape", "severity", "showTransitionOptions", "hideTransitionOptions"], outputs: ["valueChange", "onClose"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i4.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
300
305
  }
301
306
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: FormEditorComponent, decorators: [{
302
307
  type: Component,
303
- args: [{ standalone: true, selector: 'mng-form-editor', imports: [FormlyModule, ReactiveFormsModule, MessagesModule, AsyncPipe, ButtonModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit($event)\">\n <formly-form [form]=\"form\" [fields]=\"formlyFields\" [options]=\"formlyOptions\" [model]=\"formlyInitialItem\"></formly-form>\n <button #submitButton pButton type=\"submit\" class=\"hidden\" [disabled]=\"form.disabled\" [loading]=\"submitLoading()\" loadingIcon=\"pi pi-spin pi-spinner\"></button>\n</form>\n<p-messages [value]=\"formMessages()\" [enableService]=\"false\"></p-messages>\n" }]
308
+ args: [{ standalone: true, selector: 'mng-form-editor', imports: [FormlyModule, ReactiveFormsModule, MessagesModule, AsyncPipe, ButtonModule], providers: [provideFormComponent()], changeDetection: ChangeDetectionStrategy.OnPush, template: "<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit($event)\">\n <formly-form [form]=\"form\" [fields]=\"formlyFields\" [options]=\"formlyOptions\" [model]=\"formlyInitialItem\"></formly-form>\n <button #submitButton pButton type=\"submit\" class=\"hidden\" [disabled]=\"form.disabled\" [loading]=\"submitLoading()\" loadingIcon=\"pi pi-spin pi-spinner\"></button>\n</form>\n<p-messages [value]=\"formMessages()\" [enableService]=\"false\"></p-messages>\n" }]
304
309
  }], ctorParameters: () => [] });
305
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L3NyYy9lZGl0b3IvY29tcG9uZW50cy9lZGl0b3IvZm9ybS1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L3NyYy9lZGl0b3IvY29tcG9uZW50cy9lZGl0b3IvZm9ybS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFpQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5SixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQWtCLFNBQVMsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RyxPQUFPLEVBQUMsWUFBWSxFQUF3QyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFeEQsT0FBTyxFQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDMUYsT0FBTyxFQUtILGlCQUFpQixFQUNqQiw4QkFBOEIsRUFFOUIs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QW1CO2tCQVAvQixTQUFTO2lDQUNNLElBQUksWUFDTixpQkFBaUIsV0FFbEIsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLEVBQUUsY0FBYyxFQUFFLFNBQVMsRUFBRSxZQUFZLENBQUMsbUJBQ3BFLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FzeW5jUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRGVzdHJveVJlZiwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBPbkluaXQsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgb3V0cHV0LCBzaWduYWwsIHZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBVbnR5cGVkRm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7Rm9ybWx5Q29uZmlnLCBGb3JtbHlGaWVsZENvbmZpZywgRm9ybWx5Rm9ybU9wdGlvbnMsIEZvcm1seU1vZHVsZX0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtNZXNzYWdlfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQge0J1dHRvbk1vZHVsZX0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHtNZXNzYWdlc01vZHVsZX0gZnJvbSAncHJpbWVuZy9tZXNzYWdlcyc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWR9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0NvbW1vbnNTZXJ2aWNlLCBMb2dnZXJTZXJ2aWNlLCBvYmplY3REZWVwQ29weX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7XG4gICAgQ29tbW9uc0Zvcm1seUZpZWxkQ29uZmlnLFxuICAgIEVkaXRvckRlc2NyaXB0b3JJbnN0LFxuICAgIEZvcm1FZGl0b3JSZXNldEZvcm1Nb2RlbE9wdHMsXG4gICAgRm9ybUVkaXRvclN1Ym1pdEV2ZW50LFxuICAgIEZvcm1FdmVudFR5cGVFbnVtLFxuICAgIEZvcm1GaWVsZEV2ZW50Q29tcG9uZW50U3VidHlwZSxcbiAgICBJRm9ybUVkaXRvckNvbXBvbmVudCxcbiAgICBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bVxufSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5pbXBvcnQge2NyZWF0ZUZvcm1seUNvbmZpZ0Zyb21EZXNjcmlwdG9yfSBmcm9tICcuLi8uLi9oZWxwZXJzL2VkaXRvci1mb3JtbHknO1xuaW1wb3J0IHtnZXRGb3JtRWRpdG9ySW5mb01lc3NhZ2UsIGdldEZvcm1FZGl0b3JXYXJuaW5nTWVzc2FnZX0gZnJvbSAnLi4vLi4vaGVscGVycy9ub3RpZmljYXRpb24nO1xuXG50eXBlIENvbW1vbnNGb3JtbHlGb3JtT3B0aW9uczxJdGVtPiA9IEZvcm1seUZvcm1PcHRpb25zICYge1xuICAgIGZvcm1TdGF0ZT86IHtcbiAgICAgICAgZGVzY3JpcHRvcj86IEVkaXRvckRlc2NyaXB0b3JJbnN0PEl0ZW0+O1xuICAgICAgICBhZGQ6IGJvb2xlYW47XG4gICAgICAgIGVkaXQ6IGJvb2xlYW47XG4gICAgICAgIGRpc2FibGVkOiBib29sZWFuO1xuICAgIH07XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLWZvcm0tZWRpdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIGltcG9ydHM6IFtGb3JtbHlNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE1lc3NhZ2VzTW9kdWxlLCBBc3luY1BpcGUsIEJ1dHRvbk1vZHVsZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUVkaXRvckNvbXBvbmVudDxJdGVtID0gYW55PiBpbXBsZW1lbnRzIElGb3JtRWRpdG9yQ29tcG9uZW50PEl0ZW0+LCBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtbHlDb25maWcgPSBpbmplY3QoRm9ybWx5Q29uZmlnKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21tb25zID0gaW5qZWN0KENvbW1vbnNTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IGluamVjdChMb2dnZXJTZXJ2aWNlKS5jcmVhdGUoJ0Zvcm1FZGl0b3JDb21wb25lbnQnKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICBwdWJsaWMgZGVzY3JpcHRvciA9IGlucHV0LnJlcXVpcmVkPEVkaXRvckRlc2NyaXB0b3JJbnN0PEl0ZW0+PigpO1xuICAgIHB1YmxpYyBzdWJtaXRMb2FkaW5nID0gaW5wdXQoZmFsc2UpO1xuICAgIHB1YmxpYyBpdGVtID0gaW5wdXQ8SXRlbSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgICBwdWJsaWMgaXNGb3JtRGlzYWJsZWQgPSBpbnB1dChmYWxzZSk7XG5cbiAgICAvLyBldmVudCBvdXRwdXRzXG4gICAgcHVibGljIGZvcm1TdWJtaXQgPSBvdXRwdXQ8Rm9ybUVkaXRvclN1Ym1pdEV2ZW50PEl0ZW0+PigpO1xuXG4gICAgLy8gY29udGVudCBhbmQgdmlldyBxdWVyaWVzXG4gICAgcHVibGljIHN1Ym1pdEJ1dHRvbkVsZW1lbnRSZWYgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZiB8IHVuZGVmaW5lZD4oJ3N1Ym1pdEJ1dHRvbicpO1xuXG4gICAgLy8gZm9ybWx5IHNwZWNpZmljc1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Zvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZm9ybWx5T3B0aW9uczogQ29tbW9uc0Zvcm1seUZvcm1PcHRpb25zPEl0ZW0+ID0ge1xuICAgICAgICBmb3JtU3RhdGU6IHtcbiAgICAgICAgICAgIGFkZDogZmFsc2UsXG4gICAgICAgICAgICBlZGl0OiBmYWxzZSxcbiAgICAgICAgICAgIGRpc2FibGVkOiBmYWxzZVxuICAgICAgICB9XG4gICAgfTtcbiAgICBwcml2YXRlIF9mb3JtbHlGaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXTsgLy8gaW5pdGlhbGl6ZWQgaW4gbmdPbkluaXQsIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhZnRlclxuICAgIHByaXZhdGUgX2Zvcm1seUluaXRpYWxJdGVtID0ge307IC8vIGluaXRpYWxpemVkIGluIG5nT25Jbml0LCBzaG91bGQgbm90IGJlIGNoYW5nZWQgYWZ0ZXJcbiAgICBwcml2YXRlIGluaXRpYWxJdGVtSW5wdXQ6IEl0ZW0gfCB1bmRlZmluZWQ7XG5cbiAgICBwdWJsaWMgZm9ybU1lc3NhZ2VzID0gc2lnbmFsPE1lc3NhZ2VbXT4oW10pO1xuXG4gICAgZ2V0IGZvcm0oKTogRm9ybUdyb3VwPHtbSyBpbiBrZXlvZiBJdGVtXTogQWJzdHJhY3RDb250cm9sPEl0ZW1bS10+fT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybTtcbiAgICB9XG5cbiAgICBnZXQgZm9ybVVuc2FmZSgpOiBVbnR5cGVkRm9ybUdyb3VwIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm07XG4gICAgfVxuXG4gICAgZ2V0IGZvcm1seU9wdGlvbnMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtbHlPcHRpb25zO1xuICAgIH1cblxuICAgIGdldCBmb3JtbHlGaWVsZHMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtbHlGaWVsZHM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT25seSB1c2VkIGZvciBmb3JtIGluaXRpYWxpemF0aW9uLiBGdXJ0aGVyIGNoYW5nZXMgc2hvdWxkIGJlIGRvbmUgdXNpbmcge3Jlc2V0Rm9ybU1vZGVsfS5cbiAgICAgKi9cbiAgICBnZXQgZm9ybWx5SW5pdGlhbEl0ZW0oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtbHlJbml0aWFsSXRlbTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgZWZmZWN0KFxuICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLml0ZW0oKTtcbiAgICAgICAgICAgICAgICBpZiAoaXRlbSAhPT0gdGhpcy5pbml0aWFsSXRlbUlucHV0KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIG5ldyBpdGVtIGlzIGRpZmZlcmVudCBmcm9tIHRoZSBvbmUgdGhlIGZvcm0gd2FzIGluaXRpYWxpemVkIHdpdGguIE11c3QgdHJpZ2dlciByZXNldCBvZiBmb3JtIG1vZGVsLlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlc2V0Rm9ybU1vZGVsKGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAvLyByZXNldE1vZGVsIHVzZXMgc2lnbmFsIGxpa2UgY29uY2VwdFxuICAgICAgICAgICAge2FsbG93U2lnbmFsV3JpdGVzOiB0cnVlfVxuICAgICAgICApO1xuXG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9mb3JtbHlPcHRpb25zLmZvcm1TdGF0ZS5kaXNhYmxlZCA9IHRoaXMuaXNGb3JtRGlzYWJsZWQoKSB8fCB0aGlzLl9mb3JtbHlPcHRpb25zLmZvcm1TdGF0ZS5kZXNjcmlwdG9yPy5kaXNhYmxlZCA9PT0gdHJ1ZSB8fCB0aGlzLl9mb3JtbHlPcHRpb25zLmZvcm1TdGF0ZS5kZXRhaWxzO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIC8vIGluaXQgZm9ybSBzdGF0ZVxuICAgICAgICBpZiAodGhpcy5kZXNjcmlwdG9yKCkudGFibGV2aWV3RWRpdG9yVHlwZSA9PT0gVGFibGV2aWV3RWRpdG9yVHlwZUVudW0uQWRkKSB7XG4gICAgICAgICAgICB0aGlzLl9mb3JtbHlPcHRpb25zLmZvcm1TdGF0ZS5hZGQgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGVzY3JpcHRvcigpLnRhYmxldmlld0VkaXRvclR5cGUgPT09IFRhYmxldmlld0VkaXRvclR5cGVFbnVtLkVkaXQpIHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm1seU9wdGlvbnMuZm9ybVN0YXRlLmVkaXQgPSB0cnVlO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGVzY3JpcHRvcigpLnRhYmxldmlld0VkaXRvclR5cGUgPT09IFRhYmxldmlld0VkaXRvclR5cGVFbnVtLkRldGFpbHMpIHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm1seU9wdGlvbnMuZm9ybVN0YXRlLmRldGFpbHMgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2Zvcm1seU9wdGlvbnMuZm9ybVN0YXRlLmRlc2NyaXB0b3IgPSB0aGlzLmRlc2NyaXB0b3IoKTtcblxuICAgICAgICAvLyBpbml0IGZpZWxkcyBmb3IgZm9ybWx5XG4gICAgICAgIHRoaXMuX2Zvcm1seUZpZWxkcyA9IGNyZWF0ZUZvcm1seUNvbmZpZ0Zyb21EZXNjcmlwdG9yKHRoaXMuZGVzY3JpcHRvcigpLCB0aGlzLmZvcm1seUNvbmZpZywgdGhpcyk7XG5cbiAgICAgICAgLy8gaW50IGZvcm0gbW9kZWwgKG9ubHkgaW5pdGlhbCwgbm8gZnVydGhlciBjaGFuZ2VzIHRvIGZvcm1Nb2RlbCBzaG91bGQgYmUgYWxsb3dlZCEpXG4gICAgICAgIHRoaXMuaW5pdGlhbEl0ZW1JbnB1dCA9IHRoaXMuaXRlbSgpO1xuICAgICAgICB0aGlzLl9mb3JtbHlJbml0aWFsSXRlbSA9IHRoaXMuZ2V0Rm9ybU1vZGVsRnJvbUl0ZW0odGhpcy5pdGVtKCkpO1xuXG4gICAgICAgIC8vIGhhbmRsZSBsb2NhbGl6YXRpb25zIGVkaXQvYWRkIG1lc3NhZ2VcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5kZXNjcmlwdG9yKCkuaXNMb2NhbGl6ZWQgJiZcbiAgICAgICAgICAgICh0aGlzLmRlc2NyaXB0b3IoKS50YWJsZXZpZXdFZGl0b3JUeXBlID09PSBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bS5BZGQgfHwgdGhpcy5kZXNjcmlwdG9yKCkudGFibGV2aWV3RWRpdG9yVHlwZSA9PT0gVGFibGV2aWV3RWRpdG9yVHlwZUVudW0uRWRpdClcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1NZXNzYWdlcy5zZXQoW1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuZm9ybU1lc3NhZ2VzKCksXG4gICAgICAgICAgICAgICAgZ2V0Rm9ybUVkaXRvckluZm9NZXNzYWdlKHRoaXMudHJhbnNsYXRlU2VydmljZSwgJ21uZ0VkaXRvci5sb2NhbGl6YXRpb25zLmFkZEluRGVmYXVsdExhbmd1YWdlVGl0bGUnLCAnbW5nRWRpdG9yLmxvY2FsaXphdGlvbnMuYWRkSW5EZWZhdWx0TGFuZ3VhZ2VEZXNjcmlwdGlvbicsIHtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdExhbmd1YWdlOiB0aGlzLmNvbW1vbnMuZGVmYXVsdERhdGFMYW5ndWFnZVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICBdKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGVtaXQgbGlmZWN5Y2xlIGV2ZW50XG4gICAgICAgIHRoaXMuZGVzY3JpcHRvcigpLm5leHRFdmVudChGb3JtRXZlbnRUeXBlRW51bS5Db21wb25lbnRMaWZlY3ljbGUsIEZvcm1FZGl0b3JDb21wb25lbnQsIHRoaXMsIHtcbiAgICAgICAgICAgIGV2ZW50U3VidHlwZTogRm9ybUZpZWxkRXZlbnRDb21wb25lbnRTdWJ0eXBlLk9OX0lOSVRcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fZm9ybS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSwgZGVib3VuY2VUaW1lKDI1MCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSh2ID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRvcigpLm5leHRFdmVudChGb3JtRXZlbnRUeXBlRW51bS5WYWx1ZUNoYW5nZSwgRm9ybUVkaXRvckNvbXBvbmVudCwgdGhpcywge1xuICAgICAgICAgICAgICAgIHZhbHVlOiB2LFxuICAgICAgICAgICAgICAgIGZvcm1WYWx1ZTogKCkgPT4gdGhpcy5nZXRGb3JtVmFsdWUoKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIG1hcmsgZm9ybSBhcyBwcmlzdGluZSwgc2hvdWxkIGJlIGRvbmUgaW4gbmV4dCBldmVudCBob29rIHRvIGFsbG93IGZvcm1seSB0byBpbml0aWFsaXplIGZpcnN0XG4gICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fZm9ybS5tYXJrQXNQcmlzdGluZSgpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIGVtaXQgbGlmZWN5Y2xlIGV2ZW50XG4gICAgICAgIHRoaXMuZGVzY3JpcHRvcigpLm5leHRFdmVudChGb3JtRXZlbnRUeXBlRW51bS5Db21wb25lbnRMaWZlY3ljbGUsIEZvcm1FZGl0b3JDb21wb25lbnQsIHRoaXMsIHtcbiAgICAgICAgICAgIGV2ZW50U3VidHlwZTogRm9ybUZpZWxkRXZlbnRDb21wb25lbnRTdWJ0eXBlLk9OX0RFU1RST1lcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN1Ym1pdCgpIHtcbiAgICAgICAgdGhpcy5zdWJtaXRCdXR0b25FbGVtZW50UmVmKCk/Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXG4gICAgcHVibGljIG9uU3VibWl0KGV2ZW50OiBFdmVudCkge1xuICAgICAgICB0aGlzLl9mb3JtbHlPcHRpb25zLmZvcm1TdGF0ZS5zdWJtaXR0ZWRPbiA9IERhdGUubm93KCk7XG4gICAgICAgIHRoaXMuZm9ybU1lc3NhZ2VzLnNldChbXSk7XG5cbiAgICAgICAgY29uc3QgZm9ybVN1Ym1pdEl0ZW0gPSB0aGlzLmdldEZvcm1WYWx1ZSgpO1xuICAgICAgICBpZiAodGhpcy5fZm9ybS52YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5mb3JtU3VibWl0LmVtaXQoe1xuICAgICAgICAgICAgICAgIHN1Y2Nlc3M6IHRydWUsXG4gICAgICAgICAgICAgICAgZm9ybUl0ZW06IGZvcm1TdWJtaXRJdGVtXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRvcigpLm5leHRFdmVudChGb3JtRXZlbnRUeXBlRW51bS5TdWJtaXQsIEZvcm1FZGl0b3JDb21wb25lbnQsIHRoaXMsIHtcbiAgICAgICAgICAgICAgICBzdWJtaXRWYWxpZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzdWJtaXRWYWx1ZTogZm9ybVN1Ym1pdEl0ZW1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gZmluZCBhbmQgbWFyayBpbnZhbGlkIHRhYnNcbiAgICAgICAgICAgIGNvbnN0IGZvcm1GaWVsZHMgPSB0aGlzLl9mb3JtbHlGaWVsZHM7XG4gICAgICAgICAgICBpZiAoZm9ybUZpZWxkc1swXS50eXBlID09PSAndGFicycgJiYgZm9ybUZpZWxkc1swXS5maWVsZEdyb3VwKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCB0YWIgb2YgZm9ybUZpZWxkc1swXS5maWVsZEdyb3VwKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGlzSW52YWxpZCA9IHRoaXMuaXNBbnlGaWVsZEludmFsaWQodGFiLmZpZWxkR3JvdXApO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLl9mb3JtbHlPcHRpb25zLmZvcm1TdGF0ZVsndGFiXycgKyAodGFiLmlkID8gdGFiLmlkIDogKHRhYi5wcm9wcyBhcyBDb21tb25zRm9ybWx5RmllbGRDb25maWcpLnByb3BzLmxhYmVsKSArICdfaW52YWxpZCddID0gaXNJbnZhbGlkO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgZXZlbnQ6IEZvcm1FZGl0b3JTdWJtaXRFdmVudDxJdGVtPiA9IHtzdWNjZXNzOiBmYWxzZSwgZm9ybUl0ZW06IGZvcm1TdWJtaXRJdGVtfTtcbiAgICAgICAgICAgIGV2ZW50LnN1Y2Nlc3MgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMuZm9ybU1lc3NhZ2VzKCkucHVzaChnZXRGb3JtRWRpdG9yV2FybmluZ01lc3NhZ2UodGhpcy50cmFuc2xhdGVTZXJ2aWNlLCAnbW5nRWRpdG9yLmludmFsaWRGb3JtVG9hc3RUaXRsZScsICdtbmdFZGl0b3IuaW52YWxpZEZvcm1Ub2FzdE1lc3NhZ2UnKSk7XG5cbiAgICAgICAgICAgIHRoaXMuZm9ybVN1Ym1pdC5lbWl0KGV2ZW50KTtcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRvcigpLm5leHRFdmVudChGb3JtRXZlbnRUeXBlRW51bS5TdWJtaXQsIEZvcm1FZGl0b3JDb21wb25lbnQsIHRoaXMsIHtcbiAgICAgICAgICAgICAgICBzdWJtaXRWYWxpZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgc3VibWl0VmFsdWU6IGZvcm1TdWJtaXRJdGVtXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGb3JtVmFsdWUoKTogSXRlbSB7XG4gICAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IG9iamVjdERlZXBDb3B5KHRoaXMuX2Zvcm0uZ2V0UmF3VmFsdWUoKSwge21hcEdldHRlcnNUb1Byb3BlcnRpZXM6IHRydWV9KTtcblxuICAgICAgICB0aGlzLmRlc2NyaXB0b3IoKS5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICBpZiAoZmllbGQgJiYgZmllbGQuc2V0dGVyKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3BsaXRQYXRoID0gZmllbGQucHJvcGVydHkuc3BsaXQoJy4nKTtcbiAgICAgICAgICAgICAgICBsZXQgZmllbGRWYWx1ZSA9IGZvcm1WYWx1ZTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNwbGl0UGF0aC5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFN1YlBhdGggPSBzcGxpdFBhdGhbaV07XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZmllbGRWYWx1ZVtjdXJyZW50U3ViUGF0aF0gIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZFZhbHVlW2N1cnJlbnRTdWJQYXRoXSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgZmllbGRWYWx1ZSA9IGZpZWxkVmFsdWVbY3VycmVudFN1YlBhdGhdO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGZpZWxkVmFsdWUgPSBmaWVsZFZhbHVlW3NwbGl0UGF0aFtzcGxpdFBhdGgubGVuZ3RoIC0gMV1dO1xuICAgICAgICAgICAgICAgIGZpZWxkLnNldHRlcihmb3JtVmFsdWUsIGZpZWxkVmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZm9ybVZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNldEZvcm1Nb2RlbChpdGVtPzogSXRlbSwgb3B0cz86IEZvcm1FZGl0b3JSZXNldEZvcm1Nb2RlbE9wdHMpIHtcbiAgICAgICAgdGhpcy5fZm9ybWx5T3B0aW9ucy5yZXNldE1vZGVsPy4odGhpcy5nZXRGb3JtTW9kZWxGcm9tSXRlbShpdGVtKSk7XG5cbiAgICAgICAgaWYgKG9wdHM/Lm1hcmtBc1ByaXN0aW5lICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgLy8gbWFyayBmb3JtIGFzIHByaXN0aW5lLCBzaG91bGQgYmUgZG9uZSBpbiBuZXh0IGV2ZW50IGhvb2sgdG8gYWxsb3cgZm9ybWx5IHRvIGluaXRpYWxpemUgZmlyc3RcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Zvcm0ubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZpZWxkKGtleToga2V5b2YgSXRlbSkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRGaWVsZFVuc2FmZShrZXkgYXMgc3RyaW5nKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RmllbGRVbnNhZmUoa2V5OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluZEZvcm1GaWVsZCh0aGlzLl9mb3JtLCBrZXkuc3BsaXQoJy4nKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEZpZWxkVmFsdWU8UHJvcGVydHkgZXh0ZW5kcyBrZXlvZiBJdGVtPihrZXk6IFByb3BlcnR5LCB2YWx1ZTogSXRlbVtQcm9wZXJ0eV0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0RmllbGRWYWx1ZVVuc2FmZShrZXkgYXMgc3RyaW5nLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEZpZWxkVmFsdWVVbnNhZmUoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0RmllbGRVbnNhZmUoa2V5KTtcbiAgICAgICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKGBWYWx1ZSB3YXMgbm90IHNldCwgYmVjYXVzZSBmaWVsZCAke2tleX0gd2FzIG5vdCBmb3VuZC5gKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBwYXRjaEZpZWxkVmFsdWU8UHJvcGVydHkgZXh0ZW5kcyBrZXlvZiBJdGVtPihrZXk6IFByb3BlcnR5LCB2YWx1ZTogSXRlbVtQcm9wZXJ0eV0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGF0Y2hGaWVsZFZhbHVlVW5zYWZlKGtleSBhcyBzdHJpbmcsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcGF0Y2hGaWVsZFZhbHVlVW5zYWZlKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldEZpZWxkVW5zYWZlKGtleSk7XG4gICAgICAgIGlmIChjb250cm9sKSB7XG4gICAgICAgICAgICBjb250cm9sLnBhdGNoVmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKGBWYWx1ZSB3YXMgbm90IHNldCwgYmVjYXVzZSBmaWVsZCAke2tleX0gd2FzIG5vdCBmb3VuZC5gKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZXNldEZpZWxkVmFsdWU8UHJvcGVydHkgZXh0ZW5kcyBrZXlvZiBJdGVtPihrZXk6IFByb3BlcnR5LCB2YWx1ZT86IEl0ZW1bUHJvcGVydHldKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlc2V0RmllbGRWYWx1ZVVuc2FmZShrZXkgYXMgc3RyaW5nLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc2V0RmllbGRWYWx1ZVVuc2FmZShrZXk6IHN0cmluZywgdmFsdWU/OiBhbnkpIHtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0RmllbGRVbnNhZmUoa2V5KTtcbiAgICAgICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgICAgICAgIGNvbnRyb2wucmVzZXQodmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKGBWYWx1ZSB3YXMgbm90IHNldCwgYmVjYXVzZSBmaWVsZCAke2tleX0gd2FzIG5vdCBmb3VuZC5gKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Rm9ybU1vZGVsRnJvbUl0ZW0oaXRlbTogSXRlbSB8IHVuZGVmaW5lZCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGZvcm1Nb2RlbCA9IChvYmplY3REZWVwQ29weShpdGVtLCB7bWFwR2V0dGVyc1RvUHJvcGVydGllczogdHJ1ZX0pIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pID8/IHt9O1xuXG4gICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSB0aGlzLmRlc2NyaXB0b3IoKTtcbiAgICAgICAgZGVzY3JpcHRvci5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICBpZiAoZmllbGQuZ2V0dGVyICYmIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzcGxpdFBhdGggPSBmaWVsZC5wcm9wZXJ0eS5zcGxpdCgnLicpO1xuICAgICAgICAgICAgICAgIGxldCBjdXJyZW50T2JqZWN0ID0gZm9ybU1vZGVsO1xuXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzcGxpdFBhdGgubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFN1YlBhdGggPSBzcGxpdFBhdGhbaV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChpID09PSBzcGxpdFBhdGgubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudE9iamVjdFtjdXJyZW50U3ViUGF0aF0gPSBmaWVsZC5nZXR0ZXIoaXRlbT8uW2ZpZWxkLnByb3BlcnR5IGFzIGtleW9mIG9iamVjdF0sIGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjdXJyZW50T2JqZWN0W2N1cnJlbnRTdWJQYXRoXSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50T2JqZWN0W2N1cnJlbnRTdWJQYXRoXSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50T2JqZWN0ID0gY3VycmVudE9iamVjdFtjdXJyZW50U3ViUGF0aF07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBmb3JtTW9kZWw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kRm9ybUZpZWxkKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwga2V5UGF0aDogc3RyaW5nW10pOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsIHtcbiAgICAgICAgaWYgKGtleVBhdGgubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gY29udHJvbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5UGF0aC5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBjb250cm9sLmdldChrZXlQYXRoWzBdKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbmV4dENvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IG51bGwgPSBudWxsO1xuICAgICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgICAgICAgbmV4dENvbnRyb2wgPSBjb250cm9sLmdldChrZXlQYXRoWzBdKTtcbiAgICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XG4gICAgICAgICAgICBjb25zdCBpZHggPSAra2V5UGF0aFswXTtcbiAgICAgICAgICAgIGlmICghaXNOYU4oaWR4KSkge1xuICAgICAgICAgICAgICAgIG5leHRDb250cm9sID0gY29udHJvbC5hdChpZHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjb250cm9sKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5maW5kRm9ybUZpZWxkKG5leHRDb250cm9sISwga2V5UGF0aC5zbGljZSgxKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0FueUZpZWxkSW52YWxpZChmaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXSk6IGJvb2xlYW4ge1xuICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGZpZWxkcykge1xuICAgICAgICAgICAgbGV0IGZpZWxkSW52YWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmllbGQuZmllbGRHcm91cCkpIHtcbiAgICAgICAgICAgICAgICBmaWVsZEludmFsaWQgPSB0aGlzLmlzQW55RmllbGRJbnZhbGlkKGZpZWxkLmZpZWxkR3JvdXApO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZmllbGQudHlwZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBmaWVsZEludmFsaWQgPSAhZmllbGQuZm9ybUNvbnRyb2w/LnZhbGlkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGZpZWxkSW52YWxpZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiAobmdTdWJtaXQpPVwib25TdWJtaXQoJGV2ZW50KVwiPlxuICAgIDxmb3JtbHktZm9ybSBbZm9ybV09XCJmb3JtXCIgW2ZpZWxkc109XCJmb3JtbHlGaWVsZHNcIiBbb3B0aW9uc109XCJmb3JtbHlPcHRpb25zXCIgW21vZGVsXT1cImZvcm1seUluaXRpYWxJdGVtXCI+PC9mb3JtbHktZm9ybT5cbiAgICA8YnV0dG9uICNzdWJtaXRCdXR0b24gcEJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJoaWRkZW5cIiBbZGlzYWJsZWRdPVwiZm9ybS5kaXNhYmxlZFwiIFtsb2FkaW5nXT1cInN1Ym1pdExvYWRpbmcoKVwiIGxvYWRpbmdJY29uPVwicGkgcGktc3BpbiBwaS1zcGlubmVyXCI+PC9idXR0b24+XG48L2Zvcm0+XG48cC1tZXNzYWdlcyBbdmFsdWVdPVwiZm9ybU1lc3NhZ2VzKClcIiBbZW5hYmxlU2VydmljZV09XCJmYWxzZVwiPjwvcC1tZXNzYWdlcz5cbiJdfQ==
310
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L3NyYy9lZGl0b3IvY29tcG9uZW50cy9lZGl0b3IvZm9ybS1lZGl0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L3NyYy9lZGl0b3IvY29tcG9uZW50cy9lZGl0b3IvZm9ybS1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFpQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUM5SixPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQWtCLFNBQVMsRUFBRSxTQUFTLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUU1RyxPQUFPLEVBQUMsWUFBWSxFQUF3QyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUVyRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxZQUFZLEVBQUUsb0JBQW9CLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFeEQsT0FBTyxFQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDMUYsT0FBTyxFQUtILGlCQUFpQixFQUNqQiw4QkFBOEIsRUFFOUIs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Q0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDOzhHQTFVUSxtQkFBbUI7a0dBQW5CLG1CQUFtQiwrb0JBSGpCLENBQUMsb0JBQW9CLEVBQUUsQ0FBQyxrS0MxQ3ZDLDRjQUtBLDJDRG9DYyxZQUFZLDZLQUFFLG1CQUFtQixvYkFBRSxjQUFjLDJSQUFhLFlBQVk7OzJGQUkzRSxtQkFBbUI7a0JBUi9CLFNBQVM7aUNBQ00sSUFBSSxZQUNOLGlCQUFpQixXQUVsQixDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxjQUFjLEVBQUUsU0FBUyxFQUFFLFlBQVksQ0FBQyxhQUMxRSxDQUFDLG9CQUFvQixFQUFFLENBQUMsbUJBQ2xCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FzeW5jUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRGVzdHJveVJlZiwgRWxlbWVudFJlZiwgT25EZXN0cm95LCBPbkluaXQsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgb3V0cHV0LCBzaWduYWwsIHZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIEZvcm1BcnJheSwgRm9ybUdyb3VwLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBVbnR5cGVkRm9ybUdyb3VwfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7Rm9ybWx5Q29uZmlnLCBGb3JtbHlGaWVsZENvbmZpZywgRm9ybWx5Rm9ybU9wdGlvbnMsIEZvcm1seU1vZHVsZX0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtNZXNzYWdlfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQge0J1dHRvbk1vZHVsZX0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHtNZXNzYWdlc01vZHVsZX0gZnJvbSAncHJpbWVuZy9tZXNzYWdlcyc7XG5pbXBvcnQge2RlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWR9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge0NvbW1vbnNTZXJ2aWNlLCBMb2dnZXJTZXJ2aWNlLCBvYmplY3REZWVwQ29weX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7XG4gICAgQ29tbW9uc0Zvcm1seUZpZWxkQ29uZmlnLFxuICAgIEVkaXRvckRlc2NyaXB0b3JJbnN0LFxuICAgIEZvcm1FZGl0b3JSZXNldEZvcm1Nb2RlbE9wdHMsXG4gICAgRm9ybUVkaXRvclN1Ym1pdEV2ZW50LFxuICAgIEZvcm1FdmVudFR5cGVFbnVtLFxuICAgIEZvcm1GaWVsZEV2ZW50Q29tcG9uZW50U3VidHlwZSxcbiAgICBJRm9ybUVkaXRvckNvbXBvbmVudCxcbiAgICBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bVxufSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5pbXBvcnQge2NyZWF0ZUZvcm1seUNvbmZpZ0Zyb21EZXNjcmlwdG9yfSBmcm9tICcuLi8uLi9oZWxwZXJzL2VkaXRvci1mb3JtbHknO1xuaW1wb3J0IHtnZXRGb3JtRWRpdG9ySW5mb01lc3NhZ2UsIGdldEZvcm1FZGl0b3JXYXJuaW5nTWVzc2FnZX0gZnJvbSAnLi4vLi4vaGVscGVycy9ub3RpZmljYXRpb24nO1xuaW1wb3J0IHtGb3JtRWRpdG9yU2VydmljZSwgcHJvdmlkZUZvcm1Db21wb25lbnR9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2Zvcm0tZWRpdG9yLnNlcnZpY2UnO1xuXG50eXBlIENvbW1vbnNGb3JtbHlGb3JtT3B0aW9uczxJdGVtPiA9IEZvcm1seUZvcm1PcHRpb25zICYge1xuICAgIGZvcm1TdGF0ZT86IHtcbiAgICAgICAgZGVzY3JpcHRvcj86IEVkaXRvckRlc2NyaXB0b3JJbnN0PEl0ZW0+O1xuICAgICAgICBhZGQ6IGJvb2xlYW47XG4gICAgICAgIGVkaXQ6IGJvb2xlYW47XG4gICAgICAgIGRpc2FibGVkOiBib29sZWFuO1xuICAgIH07XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLWZvcm0tZWRpdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIGltcG9ydHM6IFtGb3JtbHlNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE1lc3NhZ2VzTW9kdWxlLCBBc3luY1BpcGUsIEJ1dHRvbk1vZHVsZV0sXG4gICAgcHJvdmlkZXJzOiBbcHJvdmlkZUZvcm1Db21wb25lbnQoKV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRm9ybUVkaXRvckNvbXBvbmVudDxJdGVtID0gYW55LCBQYXJlbnRJdGVtID0gYW55PiBpbXBsZW1lbnRzIElGb3JtRWRpdG9yQ29tcG9uZW50PEl0ZW0sIFBhcmVudEl0ZW0+LCBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtbHlDb25maWcgPSBpbmplY3QoRm9ybWx5Q29uZmlnKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21tb25zID0gaW5qZWN0KENvbW1vbnNTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxvZ2dlciA9IGluamVjdChMb2dnZXJTZXJ2aWNlKS5jcmVhdGUoJ0Zvcm1FZGl0b3JDb21wb25lbnQnKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtU2VydmljZSA9IGluamVjdChGb3JtRWRpdG9yU2VydmljZTxJdGVtLCBQYXJlbnRJdGVtPik7XG5cbiAgICBwdWJsaWMgZGVzY3JpcHRvciA9IGlucHV0LnJlcXVpcmVkPEVkaXRvckRlc2NyaXB0b3JJbnN0PEl0ZW0+PigpO1xuICAgIHB1YmxpYyBzdWJtaXRMb2FkaW5nID0gaW5wdXQoZmFsc2UpO1xuICAgIHB1YmxpYyBpdGVtID0gaW5wdXQ8SXRlbSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgICBwdWJsaWMgaXNGb3JtRGlzYWJsZWQgPSBpbnB1dChmYWxzZSk7XG5cbiAgICAvLyBldmVudCBvdXRwdXRzXG4gICAgcHVibGljIGZvcm1TdWJtaXQgPSBvdXRwdXQ8Rm9ybUVkaXRvclN1Ym1pdEV2ZW50PEl0ZW0+PigpO1xuXG4gICAgLy8gY29udGVudCBhbmQgdmlldyBxdWVyaWVzXG4gICAgcHVibGljIHN1Ym1pdEJ1dHRvbkVsZW1lbnRSZWYgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZiB8IHVuZGVmaW5lZD4oJ3N1Ym1pdEJ1dHRvbicpO1xuXG4gICAgLy8gZm9ybWx5IHNwZWNpZmljc1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2Zvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBfZm9ybWx5T3B0aW9uczogQ29tbW9uc0Zvcm1seUZvcm1PcHRpb25zPEl0ZW0+ID0ge1xuICAgICAgICBmb3JtU3RhdGU6IHtcbiAgICAgICAgICAgIGFkZDogZmFsc2UsXG4gICAgICAgICAgICBlZGl0OiBmYWxzZSxcbiAgICAgICAgICAgIGRpc2FibGVkOiBmYWxzZVxuICAgICAgICB9XG4gICAgfTtcbiAgICBwcml2YXRlIF9mb3JtbHlGaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXTsgLy8gaW5pdGlhbGl6ZWQgaW4gbmdPbkluaXQsIHNob3VsZCBub3QgYmUgY2hhbmdlZCBhZnRlclxuICAgIHByaXZhdGUgX2Zvcm1seUluaXRpYWxJdGVtID0ge307IC8vIGluaXRpYWxpemVkIGluIG5nT25Jbml0LCBzaG91bGQgbm90IGJlIGNoYW5nZWQgYWZ0ZXJcbiAgICBwcml2YXRlIGluaXRpYWxJdGVtSW5wdXQ6IEl0ZW0gfCB1bmRlZmluZWQ7XG5cbiAgICBwdWJsaWMgZm9ybU1lc3NhZ2VzID0gc2lnbmFsPE1lc3NhZ2VbXT4oW10pO1xuXG4gICAgZ2V0IHBhcmVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybVNlcnZpY2UucGFyZW50O1xuICAgIH1cblxuICAgIGdldCBmb3JtKCk6IEZvcm1Hcm91cDx7W0sgaW4ga2V5b2YgSXRlbV06IEFic3RyYWN0Q29udHJvbDxJdGVtW0tdPn0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Zvcm07XG4gICAgfVxuXG4gICAgZ2V0IGZvcm1VbnNhZmUoKTogVW50eXBlZEZvcm1Hcm91cCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb3JtO1xuICAgIH1cblxuICAgIGdldCBmb3JtbHlPcHRpb25zKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybWx5T3B0aW9ucztcbiAgICB9XG5cbiAgICBnZXQgZm9ybWx5RmllbGRzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybWx5RmllbGRzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE9ubHkgdXNlZCBmb3IgZm9ybSBpbml0aWFsaXphdGlvbi4gRnVydGhlciBjaGFuZ2VzIHNob3VsZCBiZSBkb25lIHVzaW5nIHtyZXNldEZvcm1Nb2RlbH0uXG4gICAgICovXG4gICAgZ2V0IGZvcm1seUluaXRpYWxJdGVtKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9ybWx5SW5pdGlhbEl0ZW07XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuZm9ybVNlcnZpY2UuaW5pdCh0aGlzKTtcblxuICAgICAgICBlZmZlY3QoXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXRlbSA9IHRoaXMuaXRlbSgpO1xuICAgICAgICAgICAgICAgIGlmIChpdGVtICE9PSB0aGlzLmluaXRpYWxJdGVtSW5wdXQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gbmV3IGl0ZW0gaXMgZGlmZmVyZW50IGZyb20gdGhlIG9uZSB0aGUgZm9ybSB3YXMgaW5pdGlhbGl6ZWQgd2l0aC4gTXVzdCB0cmlnZ2VyIHJlc2V0IG9mIGZvcm0gbW9kZWwuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVzZXRGb3JtTW9kZWwoaXRlbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIC8vIHJlc2V0TW9kZWwgdXNlcyBzaWduYWwgbGlrZSBjb25jZXB0XG4gICAgICAgICAgICB7YWxsb3dTaWduYWxXcml0ZXM6IHRydWV9XG4gICAgICAgICk7XG5cbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm1seU9wdGlvbnMuZm9ybVN0YXRlLmRpc2FibGVkID0gdGhpcy5pc0Zvcm1EaXNhYmxlZCgpIHx8IHRoaXMuX2Zvcm1seU9wdGlvbnMuZm9ybVN0YXRlLmRlc2NyaXB0b3I/LmRpc2FibGVkID09PSB0cnVlIHx8IHRoaXMuX2Zvcm1seU9wdGlvbnMuZm9ybVN0YXRlLmRldGFpbHM7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgLy8gaW5pdCBmb3JtIHN0YXRlXG4gICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3IoKS50YWJsZXZpZXdFZGl0b3JUeXBlID09PSBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bS5BZGQpIHtcbiAgICAgICAgICAgIHRoaXMuX2Zvcm1seU9wdGlvbnMuZm9ybVN0YXRlLmFkZCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5kZXNjcmlwdG9yKCkudGFibGV2aWV3RWRpdG9yVHlwZSA9PT0gVGFibGV2aWV3RWRpdG9yVHlwZUVudW0uRWRpdCkge1xuICAgICAgICAgICAgdGhpcy5fZm9ybWx5T3B0aW9ucy5mb3JtU3RhdGUuZWRpdCA9IHRydWU7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5kZXNjcmlwdG9yKCkudGFibGV2aWV3RWRpdG9yVHlwZSA9PT0gVGFibGV2aWV3RWRpdG9yVHlwZUVudW0uRGV0YWlscykge1xuICAgICAgICAgICAgdGhpcy5fZm9ybWx5T3B0aW9ucy5mb3JtU3RhdGUuZGV0YWlscyA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZm9ybWx5T3B0aW9ucy5mb3JtU3RhdGUuZGVzY3JpcHRvciA9IHRoaXMuZGVzY3JpcHRvcigpO1xuXG4gICAgICAgIC8vIGluaXQgZmllbGRzIGZvciBmb3JtbHlcbiAgICAgICAgdGhpcy5fZm9ybWx5RmllbGRzID0gY3JlYXRlRm9ybWx5Q29uZmlnRnJvbURlc2NyaXB0b3IodGhpcy5kZXNjcmlwdG9yKCksIHRoaXMuZm9ybWx5Q29uZmlnLCB0aGlzKTtcblxuICAgICAgICAvLyBpbnQgZm9ybSBtb2RlbCAob25seSBpbml0aWFsLCBubyBmdXJ0aGVyIGNoYW5nZXMgdG8gZm9ybU1vZGVsIHNob3VsZCBiZSBhbGxvd2VkISlcbiAgICAgICAgdGhpcy5pbml0aWFsSXRlbUlucHV0ID0gdGhpcy5pdGVtKCk7XG4gICAgICAgIHRoaXMuX2Zvcm1seUluaXRpYWxJdGVtID0gdGhpcy5nZXRGb3JtTW9kZWxGcm9tSXRlbSh0aGlzLml0ZW0oKSk7XG5cbiAgICAgICAgLy8gaGFuZGxlIGxvY2FsaXphdGlvbnMgZWRpdC9hZGQgbWVzc2FnZVxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB0aGlzLmRlc2NyaXB0b3IoKS5pc0xvY2FsaXplZCAmJlxuICAgICAgICAgICAgKHRoaXMuZGVzY3JpcHRvcigpLnRhYmxldmlld0VkaXRvclR5cGUgPT09IFRhYmxldmlld0VkaXRvclR5cGVFbnVtLkFkZCB8fCB0aGlzLmRlc2NyaXB0b3IoKS50YWJsZXZpZXdFZGl0b3JUeXBlID09PSBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bS5FZGl0KVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybU1lc3NhZ2VzLnNldChbXG4gICAgICAgICAgICAgICAgLi4udGhpcy5mb3JtTWVzc2FnZXMoKSxcbiAgICAgICAgICAgICAgICBnZXRGb3JtRWRpdG9ySW5mb01lc3NhZ2UodGhpcy50cmFuc2xhdGVTZXJ2aWNlLCAnbW5nRWRpdG9yLmxvY2FsaXphdGlvbnMuYWRkSW5EZWZhdWx0TGFuZ3VhZ2VUaXRsZScsICdtbmdFZGl0b3IubG9jYWxpemF0aW9ucy5hZGRJbkRlZmF1bHRMYW5ndWFnZURlc2NyaXB0aW9uJywge1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0TGFuZ3VhZ2U6IHRoaXMuY29tbW9ucy5nZXREZWZhdWx0TG9jYWxlKClcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgXSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBlbWl0IGxpZmVjeWNsZSBldmVudFxuICAgICAgICB0aGlzLmRlc2NyaXB0b3IoKS5uZXh0RXZlbnQoRm9ybUV2ZW50VHlwZUVudW0uQ29tcG9uZW50TGlmZWN5Y2xlLCB0aGlzIGFzIElGb3JtRWRpdG9yQ29tcG9uZW50PGFueT4sIHtcbiAgICAgICAgICAgIGV2ZW50U3VidHlwZTogRm9ybUZpZWxkRXZlbnRDb21wb25lbnRTdWJ0eXBlLk9OX0lOSVRcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5fZm9ybS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSwgZGVib3VuY2VUaW1lKDI1MCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSh2ID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRvcigpLm5leHRFdmVudChGb3JtRXZlbnRUeXBlRW51bS5WYWx1ZUNoYW5nZSwgdGhpcyBhcyBJRm9ybUVkaXRvckNvbXBvbmVudDxhbnk+LCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHYsXG4gICAgICAgICAgICAgICAgZm9ybVZhbHVlOiAoKSA9PiB0aGlzLmdldEZvcm1WYWx1ZSgpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gbWFyayBmb3JtIGFzIHByaXN0aW5lLCBzaG91bGQgYmUgZG9uZSBpbiBuZXh0IGV2ZW50IGhvb2sgdG8gYWxsb3cgZm9ybWx5IHRvIGluaXRpYWxpemUgZmlyc3RcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9mb3JtLm1hcmtBc1ByaXN0aW5lKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gZW1pdCBsaWZlY3ljbGUgZXZlbnRcbiAgICAgICAgdGhpcy5kZXNjcmlwdG9yKCkubmV4dEV2ZW50KEZvcm1FdmVudFR5cGVFbnVtLkNvbXBvbmVudExpZmVjeWNsZSwgdGhpcyBhcyBJRm9ybUVkaXRvckNvbXBvbmVudDxhbnk+LCB7XG4gICAgICAgICAgICBldmVudFN1YnR5cGU6IEZvcm1GaWVsZEV2ZW50Q29tcG9uZW50U3VidHlwZS5PTl9ERVNUUk9ZXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdWJtaXQoKSB7XG4gICAgICAgIHRoaXMuc3VibWl0QnV0dG9uRWxlbWVudFJlZigpPy5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIHB1YmxpYyBvblN1Ym1pdChldmVudDogRXZlbnQpIHtcbiAgICAgICAgdGhpcy5fZm9ybWx5T3B0aW9ucy5mb3JtU3RhdGUuc3VibWl0dGVkT24gPSBEYXRlLm5vdygpO1xuICAgICAgICB0aGlzLmZvcm1NZXNzYWdlcy5zZXQoW10pO1xuXG4gICAgICAgIGNvbnN0IGZvcm1TdWJtaXRJdGVtID0gdGhpcy5nZXRGb3JtVmFsdWUoKTtcbiAgICAgICAgaWYgKHRoaXMuX2Zvcm0udmFsaWQpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybVN1Ym1pdC5lbWl0KHtcbiAgICAgICAgICAgICAgICBzdWNjZXNzOiB0cnVlLFxuICAgICAgICAgICAgICAgIGZvcm1JdGVtOiBmb3JtU3VibWl0SXRlbVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLmRlc2NyaXB0b3IoKS5uZXh0RXZlbnQoRm9ybUV2ZW50VHlwZUVudW0uU3VibWl0LCB0aGlzIGFzIElGb3JtRWRpdG9yQ29tcG9uZW50PGFueT4sIHtcbiAgICAgICAgICAgICAgICBzdWJtaXRWYWxpZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzdWJtaXRWYWx1ZTogZm9ybVN1Ym1pdEl0ZW1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gZmluZCBhbmQgbWFyayBpbnZhbGlkIHRhYnNcbiAgICAgICAgICAgIGNvbnN0IGZvcm1GaWVsZHMgPSB0aGlzLl9mb3JtbHlGaWVsZHM7XG4gICAgICAgICAgICBpZiAoZm9ybUZpZWxkc1swXS50eXBlID09PSAndGFicycgJiYgZm9ybUZpZWxkc1swXS5maWVsZEdyb3VwKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCB0YWIgb2YgZm9ybUZpZWxkc1swXS5maWVsZEdyb3VwKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2Zvcm1seU9wdGlvbnMuZm9ybVN0YXRlWyd0YWJfJyArICh0YWIuaWQgPyB0YWIuaWQgOiAodGFiLnByb3BzIGFzIENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZykucHJvcHMubGFiZWwpICsgJ19pbnZhbGlkJ10gPSB0aGlzLmlzQW55RmllbGRJbnZhbGlkKFxuICAgICAgICAgICAgICAgICAgICAgICAgdGFiLmZpZWxkR3JvdXBcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGV2ZW50OiBGb3JtRWRpdG9yU3VibWl0RXZlbnQ8SXRlbT4gPSB7c3VjY2VzczogZmFsc2UsIGZvcm1JdGVtOiBmb3JtU3VibWl0SXRlbX07XG4gICAgICAgICAgICBldmVudC5zdWNjZXNzID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmZvcm1NZXNzYWdlcygpLnB1c2goZ2V0Rm9ybUVkaXRvcldhcm5pbmdNZXNzYWdlKHRoaXMudHJhbnNsYXRlU2VydmljZSwgJ21uZ0VkaXRvci5pbnZhbGlkRm9ybVRvYXN0VGl0bGUnLCAnbW5nRWRpdG9yLmludmFsaWRGb3JtVG9hc3RNZXNzYWdlJykpO1xuXG4gICAgICAgICAgICB0aGlzLmZvcm1TdWJtaXQuZW1pdChldmVudCk7XG4gICAgICAgICAgICB0aGlzLmRlc2NyaXB0b3IoKS5uZXh0RXZlbnQoRm9ybUV2ZW50VHlwZUVudW0uU3VibWl0LCB0aGlzIGFzIElGb3JtRWRpdG9yQ29tcG9uZW50PGFueT4sIHtcbiAgICAgICAgICAgICAgICBzdWJtaXRWYWxpZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgc3VibWl0VmFsdWU6IGZvcm1TdWJtaXRJdGVtXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXRGb3JtVmFsdWUoKTogSXRlbSB7XG4gICAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IG9iamVjdERlZXBDb3B5KHRoaXMuX2Zvcm0uZ2V0UmF3VmFsdWUoKSwge21hcEdldHRlcnNUb1Byb3BlcnRpZXM6IHRydWV9KTtcblxuICAgICAgICB0aGlzLmRlc2NyaXB0b3IoKS5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICBpZiAoZmllbGQgJiYgZmllbGQuc2V0dGVyKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3BsaXRQYXRoID0gZmllbGQucHJvcGVydHkuc3BsaXQoJy4nKTtcbiAgICAgICAgICAgICAgICBsZXQgZmllbGRWYWx1ZSA9IGZvcm1WYWx1ZTtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHNwbGl0UGF0aC5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFN1YlBhdGggPSBzcGxpdFBhdGhbaV07XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgZmllbGRWYWx1ZVtjdXJyZW50U3ViUGF0aF0gIT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWVsZFZhbHVlW2N1cnJlbnRTdWJQYXRoXSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgZmllbGRWYWx1ZSA9IGZpZWxkVmFsdWVbY3VycmVudFN1YlBhdGhdO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGZpZWxkVmFsdWUgPSBmaWVsZFZhbHVlW3NwbGl0UGF0aFtzcGxpdFBhdGgubGVuZ3RoIC0gMV1dO1xuICAgICAgICAgICAgICAgIGZpZWxkLnNldHRlcihmb3JtVmFsdWUsIGZpZWxkVmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gZm9ybVZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyByZXNldEZvcm1Nb2RlbChpdGVtPzogSXRlbSwgb3B0cz86IEZvcm1FZGl0b3JSZXNldEZvcm1Nb2RlbE9wdHMpIHtcbiAgICAgICAgdGhpcy5fZm9ybWx5T3B0aW9ucy5yZXNldE1vZGVsPy4odGhpcy5nZXRGb3JtTW9kZWxGcm9tSXRlbShpdGVtKSk7XG5cbiAgICAgICAgaWYgKG9wdHM/Lm1hcmtBc1ByaXN0aW5lICE9PSBmYWxzZSkge1xuICAgICAgICAgICAgLy8gbWFyayBmb3JtIGFzIHByaXN0aW5lLCBzaG91bGQgYmUgZG9uZSBpbiBuZXh0IGV2ZW50IGhvb2sgdG8gYWxsb3cgZm9ybWx5IHRvIGluaXRpYWxpemUgZmlyc3RcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Zvcm0ubWFya0FzUHJpc3RpbmUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldEZpZWxkKGtleToga2V5b2YgSXRlbSkge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRGaWVsZFVuc2FmZShrZXkgYXMgc3RyaW5nKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RmllbGRVbnNhZmUoa2V5OiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmluZEZvcm1GaWVsZCh0aGlzLl9mb3JtLCBrZXkuc3BsaXQoJy4nKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEZpZWxkVmFsdWU8UHJvcGVydHkgZXh0ZW5kcyBrZXlvZiBJdGVtPihrZXk6IFByb3BlcnR5LCB2YWx1ZTogSXRlbVtQcm9wZXJ0eV0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2V0RmllbGRWYWx1ZVVuc2FmZShrZXkgYXMgc3RyaW5nLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHNldEZpZWxkVmFsdWVVbnNhZmUoa2V5OiBzdHJpbmcsIHZhbHVlOiBhbnkpIHtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0RmllbGRVbnNhZmUoa2V5KTtcbiAgICAgICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgICAgICAgIGNvbnRyb2wuc2V0VmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKGBWYWx1ZSB3YXMgbm90IHNldCwgYmVjYXVzZSBmaWVsZCAke2tleX0gd2FzIG5vdCBmb3VuZC5gKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBwYXRjaEZpZWxkVmFsdWU8UHJvcGVydHkgZXh0ZW5kcyBrZXlvZiBJdGVtPihrZXk6IFByb3BlcnR5LCB2YWx1ZTogSXRlbVtQcm9wZXJ0eV0pIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGF0Y2hGaWVsZFZhbHVlVW5zYWZlKGtleSBhcyBzdHJpbmcsIHZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcGF0Y2hGaWVsZFZhbHVlVW5zYWZlKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KSB7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmdldEZpZWxkVW5zYWZlKGtleSk7XG4gICAgICAgIGlmIChjb250cm9sKSB7XG4gICAgICAgICAgICBjb250cm9sLnBhdGNoVmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKGBWYWx1ZSB3YXMgbm90IHNldCwgYmVjYXVzZSBmaWVsZCAke2tleX0gd2FzIG5vdCBmb3VuZC5gKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyByZXNldEZpZWxkVmFsdWU8UHJvcGVydHkgZXh0ZW5kcyBrZXlvZiBJdGVtPihrZXk6IFByb3BlcnR5LCB2YWx1ZT86IEl0ZW1bUHJvcGVydHldKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlc2V0RmllbGRWYWx1ZVVuc2FmZShrZXkgYXMgc3RyaW5nLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlc2V0RmllbGRWYWx1ZVVuc2FmZShrZXk6IHN0cmluZywgdmFsdWU/OiBhbnkpIHtcbiAgICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMuZ2V0RmllbGRVbnNhZmUoa2V5KTtcbiAgICAgICAgaWYgKGNvbnRyb2wpIHtcbiAgICAgICAgICAgIGNvbnRyb2wucmVzZXQodmFsdWUpO1xuICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmxvZ2dlci53YXJuKGBWYWx1ZSB3YXMgbm90IHNldCwgYmVjYXVzZSBmaWVsZCAke2tleX0gd2FzIG5vdCBmb3VuZC5gKTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Rm9ybU1vZGVsRnJvbUl0ZW0oaXRlbTogSXRlbSB8IHVuZGVmaW5lZCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGZvcm1Nb2RlbCA9IChvYmplY3REZWVwQ29weShpdGVtLCB7bWFwR2V0dGVyc1RvUHJvcGVydGllczogdHJ1ZX0pIGFzIFJlY29yZDxzdHJpbmcsIGFueT4pID8/IHt9O1xuXG4gICAgICAgIGNvbnN0IGRlc2NyaXB0b3IgPSB0aGlzLmRlc2NyaXB0b3IoKTtcbiAgICAgICAgZGVzY3JpcHRvci5maWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICAgICAgICBpZiAoZmllbGQuZ2V0dGVyICYmIGl0ZW0pIHtcbiAgICAgICAgICAgICAgICBjb25zdCBzcGxpdFBhdGggPSBmaWVsZC5wcm9wZXJ0eS5zcGxpdCgnLicpO1xuICAgICAgICAgICAgICAgIGxldCBjdXJyZW50T2JqZWN0ID0gZm9ybU1vZGVsO1xuXG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzcGxpdFBhdGgubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY3VycmVudFN1YlBhdGggPSBzcGxpdFBhdGhbaV07XG4gICAgICAgICAgICAgICAgICAgIGlmIChpID09PSBzcGxpdFBhdGgubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudE9iamVjdFtjdXJyZW50U3ViUGF0aF0gPSBmaWVsZC5nZXR0ZXIoaXRlbT8uW2ZpZWxkLnByb3BlcnR5IGFzIGtleW9mIG9iamVjdF0sIGl0ZW0pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjdXJyZW50T2JqZWN0W2N1cnJlbnRTdWJQYXRoXSAhPT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50T2JqZWN0W2N1cnJlbnRTdWJQYXRoXSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50T2JqZWN0ID0gY3VycmVudE9iamVjdFtjdXJyZW50U3ViUGF0aF07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiBmb3JtTW9kZWw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kRm9ybUZpZWxkKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwga2V5UGF0aDogc3RyaW5nW10pOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsIHtcbiAgICAgICAgaWYgKGtleVBhdGgubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gY29udHJvbDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoa2V5UGF0aC5sZW5ndGggPT09IDEpIHtcbiAgICAgICAgICAgIHJldHVybiBjb250cm9sLmdldChrZXlQYXRoWzBdKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbmV4dENvbnRyb2w6IEFic3RyYWN0Q29udHJvbCB8IG51bGwgPSBudWxsO1xuICAgICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIEZvcm1Hcm91cCkge1xuICAgICAgICAgICAgbmV4dENvbnRyb2wgPSBjb250cm9sLmdldChrZXlQYXRoWzBdKTtcbiAgICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XG4gICAgICAgICAgICBjb25zdCBpZHggPSAra2V5UGF0aFswXTtcbiAgICAgICAgICAgIGlmICghaXNOYU4oaWR4KSkge1xuICAgICAgICAgICAgICAgIG5leHRDb250cm9sID0gY29udHJvbC5hdChpZHgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjb250cm9sKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5maW5kRm9ybUZpZWxkKG5leHRDb250cm9sISwga2V5UGF0aC5zbGljZSgxKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpc0FueUZpZWxkSW52YWxpZChmaWVsZHM6IEZvcm1seUZpZWxkQ29uZmlnW10gPSBbXSk6IGJvb2xlYW4ge1xuICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGZpZWxkcykge1xuICAgICAgICAgICAgbGV0IGZpZWxkSW52YWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZmllbGQuZmllbGRHcm91cCkpIHtcbiAgICAgICAgICAgICAgICBmaWVsZEludmFsaWQgPSB0aGlzLmlzQW55RmllbGRJbnZhbGlkKGZpZWxkLmZpZWxkR3JvdXApO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgZmllbGQudHlwZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICBmaWVsZEludmFsaWQgPSAhZmllbGQuZm9ybUNvbnRyb2w/LnZhbGlkO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGZpZWxkSW52YWxpZCkge1xuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZvcm1cIiAobmdTdWJtaXQpPVwib25TdWJtaXQoJGV2ZW50KVwiPlxuICAgIDxmb3JtbHktZm9ybSBbZm9ybV09XCJmb3JtXCIgW2ZpZWxkc109XCJmb3JtbHlGaWVsZHNcIiBbb3B0aW9uc109XCJmb3JtbHlPcHRpb25zXCIgW21vZGVsXT1cImZvcm1seUluaXRpYWxJdGVtXCI+PC9mb3JtbHktZm9ybT5cbiAgICA8YnV0dG9uICNzdWJtaXRCdXR0b24gcEJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJoaWRkZW5cIiBbZGlzYWJsZWRdPVwiZm9ybS5kaXNhYmxlZFwiIFtsb2FkaW5nXT1cInN1Ym1pdExvYWRpbmcoKVwiIGxvYWRpbmdJY29uPVwicGkgcGktc3BpbiBwaS1zcGlubmVyXCI+PC9idXR0b24+XG48L2Zvcm0+XG48cC1tZXNzYWdlcyBbdmFsdWVdPVwiZm9ybU1lc3NhZ2VzKClcIiBbZW5hYmxlU2VydmljZV09XCJmYWxzZVwiPjwvcC1tZXNzYWdlcz5cbiJdfQ==
@@ -23,6 +23,9 @@ export class FormlyFieldActionComponent extends FieldType {
23
23
  this.props.fieldComponent = this;
24
24
  this.buttonClass = this.descriptor.button.styleClass.build();
25
25
  }
26
+ ngOnDestroy() {
27
+ this.resultSubscription?.unsubscribe();
28
+ }
26
29
  onClick() {
27
30
  this.actionMessage = undefined;
28
31
  const result = this.descriptor.runFunction?.({
@@ -39,7 +42,8 @@ export class FormlyFieldActionComponent extends FieldType {
39
42
  });
40
43
  if (result) {
41
44
  if (isObservable(result)) {
42
- result.subscribe(res => this.processResult(res));
45
+ this.resultSubscription?.unsubscribe();
46
+ this.resultSubscription = result.subscribe(res => this.processResult(res));
43
47
  }
44
48
  else {
45
49
  this.processResult(result);
@@ -58,4 +62,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
58
62
  type: Component,
59
63
  args: [{ standalone: true, selector: 'mng-formly-field-action', imports: [ButtonModule, RippleModule, TranslateModule, TooltipModule, JsonPipe, MessageModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex\">\n <button\n type=\"button\"\n pButton\n pRipple\n [icon]=\"$any(descriptor.button.icon)\"\n [label]=\"$any(descriptor.button.label === null ? null : descriptor.button.label ?? props!.label) | translate\"\n [pTooltip]=\"$any(descriptor.button.tooltip) | translate\"\n [disabled]=\"formControl.disabled\"\n (click)=\"onClick()\"\n [class]=\"buttonClass + (actionMessage ? ' mr-2' : '')\"></button>\n @if (actionMessage) {\n <p-message [text]=\"actionMessage.content\" [severity]=\"actionMessage.severity ?? 'success'\"></p-message>\n }\n</div>\n" }]
60
64
  }] });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvc3JjL2VkaXRvci9jb21wb25lbnRzL2Zvcm1seS9maWVsZHMvZm9ybWx5LWZpZWxkLWFjdGlvbi9mb3JtbHktZmllbGQtYWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvZWRpdG9yL2NvbXBvbmVudHMvZm9ybWx5L2ZpZWxkcy9mb3JtbHktZmllbGQtYWN0aW9uL2Zvcm1seS1maWVsZC1hY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQVMsTUFBTSxlQUFlLENBQUM7QUFFekUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQzNDLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDOUMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQzs7Ozs7OztBQVdsQyxNQUFNLE9BQU8sMEJBQStCLFNBQVEsU0FBbUM7SUFQdkY7O1FBVVcsZ0JBQVcsR0FBRyxrQkFBa0IsQ0FBQztLQXdDM0M7SUFwQ0csUUFBUTtRQUNKLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUF1QyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQztRQUNqQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNqRSxDQUFDO0lBRUQsT0FBTztRQUNILElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO1FBRS9CLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDekMsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO1lBQzNCLG1CQUFtQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsbUJBQStDO1lBQy9FLE1BQU0sRUFBRTtnQkFDSixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7Z0JBQ2pCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztnQkFDN0IsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO2dCQUNmLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUztnQkFDekIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPO2dCQUNyQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7YUFDcEI7U0FDSixDQUFDLENBQUM7UUFFSCxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1QsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDdkIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztZQUNyRCxDQUFDO2lCQUFNLENBQUM7Z0JBQ0osSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMvQixDQUFDO1FBQ0wsQ0FBQztJQUNMLENBQUM7SUFFTyxhQUFhLENBQUMsR0FBc0I7UUFDeEMsSUFBSSxHQUFHLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsYUFBYSxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQUM7UUFDckMsQ0FBQztJQUNMLENBQUM7OEdBMUNRLDBCQUEwQjtrR0FBMUIsMEJBQTBCLDBHQ3BCdkMscW9CQWVBLDJDREVjLFlBQVksc0tBQUUsWUFBWSw2RkFBRSxlQUFlLDJGQUFFLGFBQWEscVhBQVksYUFBYTs7MkZBR3BGLDBCQUEwQjtrQkFQdEMsU0FBUztpQ0FDTSxJQUFJLFlBQ04seUJBQXlCLFdBRTFCLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxhQUFhLENBQUMsbUJBQzdFLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0pzb25QaXBlfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0ZpZWxkVHlwZX0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0J1dHRvbk1vZHVsZX0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHtNZXNzYWdlTW9kdWxlfSBmcm9tICdwcmltZW5nL21lc3NhZ2UnO1xuaW1wb3J0IHtSaXBwbGVNb2R1bGV9IGZyb20gJ3ByaW1lbmcvcmlwcGxlJztcbmltcG9ydCB7VG9vbHRpcE1vZHVsZX0gZnJvbSAncHJpbWVuZy90b29sdGlwJztcbmltcG9ydCB7aXNPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtDb21tb25zRm9ybWx5RmllbGRDb25maWcsIEZpZWxkQWN0aW9uRGVzY3JpcHRvciwgRmllbGRBY3Rpb25SZXN1bHQsIEZpZWxkQWN0aW9uUmVzdWx0TWVzc2FnZSwgSUZvcm1FZGl0b3JDb21wb25lbnR9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvdGFibGV2aWV3L2FwaSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdtbmctZm9ybWx5LWZpZWxkLWFjdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvcm1seS1maWVsZC1hY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIGltcG9ydHM6IFtCdXR0b25Nb2R1bGUsIFJpcHBsZU1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBUb29sdGlwTW9kdWxlLCBKc29uUGlwZSwgTWVzc2FnZU1vZHVsZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRm9ybWx5RmllbGRBY3Rpb25Db21wb25lbnQ8RVQ+IGV4dGVuZHMgRmllbGRUeXBlPENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZz4gaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHB1YmxpYyBkZXNjcmlwdG9yITogRmllbGRBY3Rpb25EZXNjcmlwdG9yPEVUPjtcblxuICAgIHB1YmxpYyBidXR0b25DbGFzcyA9ICdwLWJ1dHRvbi1wcmltYXJ5JztcblxuICAgIHB1YmxpYyBhY3Rpb25NZXNzYWdlPzogRmllbGRBY3Rpb25SZXN1bHRNZXNzYWdlO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGVzY3JpcHRvciA9IHRoaXMucHJvcHMuZGVzY3JpcHRvciBhcyBGaWVsZEFjdGlvbkRlc2NyaXB0b3I8RVQ+O1xuICAgICAgICB0aGlzLnByb3BzLmZpZWxkQ29tcG9uZW50ID0gdGhpcztcbiAgICAgICAgdGhpcy5idXR0b25DbGFzcyA9IHRoaXMuZGVzY3JpcHRvci5idXR0b24uc3R5bGVDbGFzcy5idWlsZCgpO1xuICAgIH1cblxuICAgIG9uQ2xpY2soKSB7XG4gICAgICAgIHRoaXMuYWN0aW9uTWVzc2FnZSA9IHVuZGVmaW5lZDtcblxuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmRlc2NyaXB0b3IucnVuRnVuY3Rpb24/Lih7XG4gICAgICAgICAgICBkZXNjcmlwdG9yOiB0aGlzLmRlc2NyaXB0b3IsXG4gICAgICAgICAgICBmb3JtRWRpdG9yQ29tcG9uZW50OiB0aGlzLnByb3BzLmZvcm1FZGl0b3JDb21wb25lbnQgYXMgSUZvcm1FZGl0b3JDb21wb25lbnQ8RVQ+LFxuICAgICAgICAgICAgZm9ybWx5OiB7XG4gICAgICAgICAgICAgICAgbW9kZWw6IHRoaXMubW9kZWwsXG4gICAgICAgICAgICAgICAgZm9ybUNvbnRyb2w6IHRoaXMuZm9ybUNvbnRyb2wsXG4gICAgICAgICAgICAgICAgZm9ybTogdGhpcy5mb3JtLFxuICAgICAgICAgICAgICAgIGZvcm1TdGF0ZTogdGhpcy5mb3JtU3RhdGUsXG4gICAgICAgICAgICAgICAgb3B0aW9uczogdGhpcy5vcHRpb25zLFxuICAgICAgICAgICAgICAgIHByb3BzOiB0aGlzLnByb3BzXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGlmIChyZXN1bHQpIHtcbiAgICAgICAgICAgIGlmIChpc09ic2VydmFibGUocmVzdWx0KSkge1xuICAgICAgICAgICAgICAgIHJlc3VsdC5zdWJzY3JpYmUocmVzID0+IHRoaXMucHJvY2Vzc1Jlc3VsdChyZXMpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzUmVzdWx0KHJlc3VsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NSZXN1bHQocmVzOiBGaWVsZEFjdGlvblJlc3VsdCkge1xuICAgICAgICBpZiAocmVzLm1lc3NhZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uTWVzc2FnZSA9IHJlcy5tZXNzYWdlO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBwQnV0dG9uXG4gICAgICAgIHBSaXBwbGVcbiAgICAgICAgW2ljb25dPVwiJGFueShkZXNjcmlwdG9yLmJ1dHRvbi5pY29uKVwiXG4gICAgICAgIFtsYWJlbF09XCIkYW55KGRlc2NyaXB0b3IuYnV0dG9uLmxhYmVsID09PSBudWxsID8gbnVsbCA6IGRlc2NyaXB0b3IuYnV0dG9uLmxhYmVsID8/IHByb3BzIS5sYWJlbCkgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbcFRvb2x0aXBdPVwiJGFueShkZXNjcmlwdG9yLmJ1dHRvbi50b29sdGlwKSB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJmb3JtQ29udHJvbC5kaXNhYmxlZFwiXG4gICAgICAgIChjbGljayk9XCJvbkNsaWNrKClcIlxuICAgICAgICBbY2xhc3NdPVwiYnV0dG9uQ2xhc3MgKyAoYWN0aW9uTWVzc2FnZSA/ICcgbXItMicgOiAnJylcIj48L2J1dHRvbj5cbiAgICBAaWYgKGFjdGlvbk1lc3NhZ2UpIHtcbiAgICAgICAgPHAtbWVzc2FnZSBbdGV4dF09XCJhY3Rpb25NZXNzYWdlLmNvbnRlbnRcIiBbc2V2ZXJpdHldPVwiYWN0aW9uTWVzc2FnZS5zZXZlcml0eSA/PyAnc3VjY2VzcydcIj48L3AtbWVzc2FnZT5cbiAgICB9XG48L2Rpdj5cbiJdfQ==
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLWFjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvc3JjL2VkaXRvci9jb21wb25lbnRzL2Zvcm1seS9maWVsZHMvZm9ybWx5LWZpZWxkLWFjdGlvbi9mb3JtbHktZmllbGQtYWN0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvZWRpdG9yL2NvbXBvbmVudHMvZm9ybWx5L2ZpZWxkcy9mb3JtbHktZmllbGQtYWN0aW9uL2Zvcm1seS1maWVsZC1hY3Rpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBR3BGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBZSxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7QUFXaEQsTUFBTSxPQUFPLDBCQUF3QyxTQUFRLFNBQW1DO0lBUGhHOztRQVVXLGdCQUFXLEdBQUcsa0JBQWtCLENBQUM7S0ErQzNDO0lBekNHLFFBQVE7UUFDSixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBZ0QsQ0FBQztRQUM5RSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFDakMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDakUsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDM0MsQ0FBQztJQUVELE9BQU87UUFDSCxJQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQztRQUUvQixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3pDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtZQUMzQixtQkFBbUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLG1CQUF3RDtZQUN4RixNQUFNLEVBQUU7Z0JBQ0osS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2dCQUNqQixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQWdDO2dCQUNsRCxJQUFJLEVBQUUsSUFBSSxDQUFDLElBQThFO2dCQUN6RixTQUFTLEVBQUUsSUFBSSxDQUFDLFNBQVM7Z0JBQ3pCLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTztnQkFDckIsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO2FBQ3BCO1NBQ0osQ0FBQyxDQUFDO1FBRUgsSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUNULElBQUksWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxXQUFXLEVBQUUsQ0FBQztnQkFDdkMsSUFBSSxDQUFDLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDL0UsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDL0IsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRU8sYUFBYSxDQUFDLEdBQXNCO1FBQ3hDLElBQUksR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2QsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsT0FBTyxDQUFDO1FBQ3JDLENBQUM7SUFDTCxDQUFDOzhHQWpEUSwwQkFBMEI7a0dBQTFCLDBCQUEwQiwwR0NyQnZDLHFvQkFlQSwyQ0RHYyxZQUFZLHNLQUFFLFlBQVksNkZBQUUsZUFBZSwyRkFBRSxhQUFhLHFYQUFZLGFBQWE7OzJGQUdwRiwwQkFBMEI7a0JBUHRDLFNBQVM7aUNBQ00sSUFBSSxZQUNOLHlCQUF5QixXQUUxQixDQUFDLFlBQVksRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsYUFBYSxDQUFDLG1CQUM3RSx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtKc29uUGlwZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIEZvcm1Db250cm9sLCBGb3JtR3JvdXB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtGaWVsZFR5cGV9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGV9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtCdXR0b25Nb2R1bGV9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcbmltcG9ydCB7TWVzc2FnZU1vZHVsZX0gZnJvbSAncHJpbWVuZy9tZXNzYWdlJztcbmltcG9ydCB7UmlwcGxlTW9kdWxlfSBmcm9tICdwcmltZW5nL3JpcHBsZSc7XG5pbXBvcnQge1Rvb2x0aXBNb2R1bGV9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XG5pbXBvcnQge1N1YnNjcmlwdGlvbiwgaXNPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtDb21tb25zRm9ybWx5RmllbGRDb25maWcsIEZpZWxkQWN0aW9uRGVzY3JpcHRvciwgRmllbGRBY3Rpb25SZXN1bHQsIEZpZWxkQWN0aW9uUmVzdWx0TWVzc2FnZSwgSUZvcm1FZGl0b3JDb21wb25lbnR9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvdGFibGV2aWV3L2FwaSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdtbmctZm9ybWx5LWZpZWxkLWFjdGlvbicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvcm1seS1maWVsZC1hY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIGltcG9ydHM6IFtCdXR0b25Nb2R1bGUsIFJpcHBsZU1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBUb29sdGlwTW9kdWxlLCBKc29uUGlwZSwgTWVzc2FnZU1vZHVsZV0sXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRm9ybWx5RmllbGRBY3Rpb25Db21wb25lbnQ8RWRpdG9yTW9kZWw+IGV4dGVuZHMgRmllbGRUeXBlPENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZz4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHVibGljIGRlc2NyaXB0b3IhOiBGaWVsZEFjdGlvbkRlc2NyaXB0b3I8RWRpdG9yTW9kZWw+O1xuXG4gICAgcHVibGljIGJ1dHRvbkNsYXNzID0gJ3AtYnV0dG9uLXByaW1hcnknO1xuXG4gICAgcHVibGljIGFjdGlvbk1lc3NhZ2U/OiBGaWVsZEFjdGlvblJlc3VsdE1lc3NhZ2U7XG5cbiAgICBwcml2YXRlIHJlc3VsdFN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc2NyaXB0b3IgPSB0aGlzLnByb3BzLmRlc2NyaXB0b3IgYXMgRmllbGRBY3Rpb25EZXNjcmlwdG9yPEVkaXRvck1vZGVsPjtcbiAgICAgICAgdGhpcy5wcm9wcy5maWVsZENvbXBvbmVudCA9IHRoaXM7XG4gICAgICAgIHRoaXMuYnV0dG9uQ2xhc3MgPSB0aGlzLmRlc2NyaXB0b3IuYnV0dG9uLnN0eWxlQ2xhc3MuYnVpbGQoKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5yZXN1bHRTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgb25DbGljaygpIHtcbiAgICAgICAgdGhpcy5hY3Rpb25NZXNzYWdlID0gdW5kZWZpbmVkO1xuXG4gICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuZGVzY3JpcHRvci5ydW5GdW5jdGlvbj8uKHtcbiAgICAgICAgICAgIGRlc2NyaXB0b3I6IHRoaXMuZGVzY3JpcHRvcixcbiAgICAgICAgICAgIGZvcm1FZGl0b3JDb21wb25lbnQ6IHRoaXMucHJvcHMuZm9ybUVkaXRvckNvbXBvbmVudCBhcyBJRm9ybUVkaXRvckNvbXBvbmVudDxFZGl0b3JNb2RlbD4sXG4gICAgICAgICAgICBmb3JtbHk6IHtcbiAgICAgICAgICAgICAgICBtb2RlbDogdGhpcy5tb2RlbCxcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbDogdGhpcy5mb3JtQ29udHJvbCBhcyBGb3JtQ29udHJvbDx2b2lkPixcbiAgICAgICAgICAgICAgICBmb3JtOiB0aGlzLmZvcm0gYXMgRm9ybUdyb3VwPHtbSyBpbiBrZXlvZiBFZGl0b3JNb2RlbF06IEFic3RyYWN0Q29udHJvbDxFZGl0b3JNb2RlbFtLXT59PixcbiAgICAgICAgICAgICAgICBmb3JtU3RhdGU6IHRoaXMuZm9ybVN0YXRlLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHRoaXMub3B0aW9ucyxcbiAgICAgICAgICAgICAgICBwcm9wczogdGhpcy5wcm9wc1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgICBpZiAoaXNPYnNlcnZhYmxlKHJlc3VsdCkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc3VsdFN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLnJlc3VsdFN1YnNjcmlwdGlvbiA9IHJlc3VsdC5zdWJzY3JpYmUocmVzID0+IHRoaXMucHJvY2Vzc1Jlc3VsdChyZXMpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzUmVzdWx0KHJlc3VsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NSZXN1bHQocmVzOiBGaWVsZEFjdGlvblJlc3VsdCkge1xuICAgICAgICBpZiAocmVzLm1lc3NhZ2UpIHtcbiAgICAgICAgICAgIHRoaXMuYWN0aW9uTWVzc2FnZSA9IHJlcy5tZXNzYWdlO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXhcIj5cbiAgICA8YnV0dG9uXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICBwQnV0dG9uXG4gICAgICAgIHBSaXBwbGVcbiAgICAgICAgW2ljb25dPVwiJGFueShkZXNjcmlwdG9yLmJ1dHRvbi5pY29uKVwiXG4gICAgICAgIFtsYWJlbF09XCIkYW55KGRlc2NyaXB0b3IuYnV0dG9uLmxhYmVsID09PSBudWxsID8gbnVsbCA6IGRlc2NyaXB0b3IuYnV0dG9uLmxhYmVsID8/IHByb3BzIS5sYWJlbCkgfCB0cmFuc2xhdGVcIlxuICAgICAgICBbcFRvb2x0aXBdPVwiJGFueShkZXNjcmlwdG9yLmJ1dHRvbi50b29sdGlwKSB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJmb3JtQ29udHJvbC5kaXNhYmxlZFwiXG4gICAgICAgIChjbGljayk9XCJvbkNsaWNrKClcIlxuICAgICAgICBbY2xhc3NdPVwiYnV0dG9uQ2xhc3MgKyAoYWN0aW9uTWVzc2FnZSA/ICcgbXItMicgOiAnJylcIj48L2J1dHRvbj5cbiAgICBAaWYgKGFjdGlvbk1lc3NhZ2UpIHtcbiAgICAgICAgPHAtbWVzc2FnZSBbdGV4dF09XCJhY3Rpb25NZXNzYWdlLmNvbnRlbnRcIiBbc2V2ZXJpdHldPVwiYWN0aW9uTWVzc2FnZS5zZXZlcml0eSA/PyAnc3VjY2VzcydcIj48L3AtbWVzc2FnZT5cbiAgICB9XG48L2Rpdj5cbiJdfQ==
@@ -1,4 +1,5 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, DestroyRef, inject } from '@angular/core';
2
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
2
3
  import { ReactiveFormsModule } from '@angular/forms';
3
4
  import { FieldType, FormlyModule } from '@ngx-formly/core';
4
5
  import { distinctUntilChanged } from 'rxjs';
@@ -11,6 +12,7 @@ import * as i2 from "@ngx-formly/core";
11
12
  export class FormlyFieldAutocompleteComponent extends FieldType {
12
13
  constructor() {
13
14
  super(...arguments);
15
+ this.destroyRef = inject(DestroyRef);
14
16
  this.subscriptions = [];
15
17
  }
16
18
  ngOnInit() {
@@ -18,35 +20,32 @@ export class FormlyFieldAutocompleteComponent extends FieldType {
18
20
  this.descriptor = this.props.descriptor;
19
21
  this.props.fieldComponent = this;
20
22
  // emit lifecycle event
21
- this.descriptor.nextEvent(FormFieldEventTypeEnum.ComponentLifecycle, FormlyFieldAutocompleteComponent, this, {
23
+ this.descriptor.nextEvent(FormFieldEventTypeEnum.ComponentLifecycle, this, {
22
24
  eventSubtype: FormFieldEventComponentSubtype.ON_INIT
23
25
  });
24
- const subscription = this.aFormControl.valueChanges.pipe(startWith(this.aFormControl.value), distinctUntilChanged()).subscribe(v => {
25
- this.descriptor.nextEvent(FormFieldEventTypeEnum.ValueChange, FormlyFieldAutocompleteComponent, this, {
26
+ this.aFormControl.valueChanges.pipe(startWith(this.aFormControl.value), distinctUntilChanged(), takeUntilDestroyed(this.destroyRef)).subscribe(v => {
27
+ this.descriptor.nextEvent(FormFieldEventTypeEnum.ValueChange, this, {
26
28
  value: v
27
29
  });
28
30
  this.props.onValueChange?.(this.field, v);
29
31
  });
30
- this.subscriptions.push(subscription);
31
32
  }
32
33
  ngAfterViewInit() {
33
- this.descriptor.nextEvent(FormFieldEventTypeEnum.ComponentLifecycle, FormlyFieldAutocompleteComponent, this, {
34
+ this.descriptor.nextEvent(FormFieldEventTypeEnum.ComponentLifecycle, this, {
34
35
  eventSubtype: FormFieldEventComponentSubtype.ON_VIEW_INIT
35
36
  });
36
37
  }
37
38
  ngOnDestroy() {
38
- // warning: formly calls on destroy before on init
39
- this.subscriptions.forEach(value => value.unsubscribe());
40
39
  // emit lifecycle event
41
- this.descriptor?.nextEvent(FormFieldEventTypeEnum.ComponentLifecycle, FormlyFieldAutocompleteComponent, this, {
40
+ this.descriptor?.nextEvent(FormFieldEventTypeEnum.ComponentLifecycle, this, {
42
41
  eventSubtype: FormFieldEventComponentSubtype.ON_DESTROY
43
42
  });
44
43
  }
45
44
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: FormlyFieldAutocompleteComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
46
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: FormlyFieldAutocompleteComponent, isStandalone: true, selector: "mng-formly-field-autocomplete", usesInheritance: true, ngImport: i0, template: "<mng-autocomplete\n [id]=\"$any(key)\"\n [formControl]=\"aFormControl\"\n [formlyAttributes]=\"field\"\n [dataProvider]=\"descriptor.dataProvider\"\n [optionsTrackProperty]=\"descriptor.optionsTrackProperty\"\n [optionsLabelProperty]=\"descriptor.optionsLabelProperty\"\n [optionsValueProperty]=\"descriptor.optionsValueProperty\"\n [className]=\"descriptor.inputClassName\"\n [showClear]=\"!props.required\"\n [selectFirst]=\"descriptor.autocompleteSelectFirst ?? false\"\n [autoClear]=\"descriptor.autocompleteAutoClear ?? false\"\n [openOnFocus]=\"descriptor.autocompleteAutoClear ?? true\"\n [inlineSearch]=\"descriptor.autocompleteInlineSearch ?? false\">\n</mng-autocomplete>\n", dependencies: [{ kind: "component", type: AutocompleteComponent, selector: "mng-autocomplete", inputs: ["dataProvider", "optionsTrackProperty", "optionsValueProperty", "optionsLabelProperty", "optionsLabelTranslate", "inlineSearch", "openOnFocus", "multiselect", "placeholder", "className", "dropdownClassName", "showClear", "autoClear", "selectFirst", "searchTrim"], outputs: ["valueChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "directive", type: i2.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
45
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: FormlyFieldAutocompleteComponent, isStandalone: true, selector: "mng-formly-field-autocomplete", usesInheritance: true, ngImport: i0, template: "<mng-autocomplete\n [id]=\"$any(key)\"\n [formControl]=\"aFormControl\"\n [formlyAttributes]=\"field\"\n [dataProvider]=\"descriptor.dataProvider\"\n [optionsTrackProperty]=\"descriptor.optionsTrackProperty\"\n [optionsLabelProperty]=\"descriptor.optionsLabelProperty\"\n [optionsValueProperty]=\"descriptor.optionsValueProperty\"\n [className]=\"descriptor.inputClassName\"\n [showClear]=\"!props.required\"\n [selectFirst]=\"descriptor.autocompleteSelectFirst ?? false\"\n [autoClear]=\"descriptor.autocompleteAutoClear ?? false\"\n [openOnFocus]=\"descriptor.autocompleteAutoClear ?? true\"\n [inlineSearch]=\"descriptor.autocompleteInlineSearch ?? false\">\n</mng-autocomplete>\n", dependencies: [{ kind: "component", type: AutocompleteComponent, selector: "mng-autocomplete", inputs: ["dataProvider", "optionsTrackProperty", "optionsValueProperty", "optionsLabelProperty", "optionsLabelTranslate", "inlineSearch", "openOnFocus", "multiselect", "placeholder", "className", "dropdownClassName", "showClear", "autoClear", "selectFirst", "searchTrim", "disabled"], outputs: ["valueChange", "blur"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormlyModule }, { kind: "directive", type: i2.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
47
46
  }
48
47
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: FormlyFieldAutocompleteComponent, decorators: [{
49
48
  type: Component,
50
49
  args: [{ standalone: true, selector: 'mng-formly-field-autocomplete', imports: [AutocompleteComponent, ReactiveFormsModule, FormlyModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-autocomplete\n [id]=\"$any(key)\"\n [formControl]=\"aFormControl\"\n [formlyAttributes]=\"field\"\n [dataProvider]=\"descriptor.dataProvider\"\n [optionsTrackProperty]=\"descriptor.optionsTrackProperty\"\n [optionsLabelProperty]=\"descriptor.optionsLabelProperty\"\n [optionsValueProperty]=\"descriptor.optionsValueProperty\"\n [className]=\"descriptor.inputClassName\"\n [showClear]=\"!props.required\"\n [selectFirst]=\"descriptor.autocompleteSelectFirst ?? false\"\n [autoClear]=\"descriptor.autocompleteAutoClear ?? false\"\n [openOnFocus]=\"descriptor.autocompleteAutoClear ?? true\"\n [inlineSearch]=\"descriptor.autocompleteInlineSearch ?? false\">\n</mng-autocomplete>\n" }]
51
50
  }] });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvc3JjL2VkaXRvci9jb21wb25lbnRzL2Zvcm1seS9maWVsZHMvZm9ybWx5LWZpZWxkLWF1dG9jb21wbGV0ZS9mb3JtbHktZmllbGQtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvZWRpdG9yL2NvbXBvbmVudHMvZm9ybWx5L2ZpZWxkcy9mb3JtbHktZmllbGQtYXV0b2NvbXBsZXRlL2Zvcm1seS1maWVsZC1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQix1QkFBdUIsRUFBRSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBQ25HLE9BQU8sRUFBYyxtQkFBbUIsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRWhFLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDekQsT0FBTyxFQUFlLG9CQUFvQixFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3hELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUNsRSxPQUFPLEVBQWtELDhCQUE4QixFQUFFLHNCQUFzQixFQUFDLE1BQU0sc0NBQXNDLENBQUM7Ozs7QUFTN0osTUFBTSxPQUFPLGdDQUF3QyxTQUFRLFNBQW1DO0lBUGhHOztRQVdZLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztLQXNDOUM7SUFwQ1UsUUFBUTtRQUNYLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFdBQTBCLENBQUM7UUFDcEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQTBDLENBQUM7UUFDeEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBRWpDLHVCQUF1QjtRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxrQkFBa0IsRUFBRSxnQ0FBZ0MsRUFBRSxJQUFJLEVBQUU7WUFDekcsWUFBWSxFQUFFLDhCQUE4QixDQUFDLE9BQU87U0FDdkQsQ0FBQyxDQUFDO1FBRUgsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLG9CQUFvQixFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDL0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsV0FBVyxFQUFFLGdDQUFnQyxFQUFFLElBQUksRUFBRTtnQkFDbEcsS0FBSyxFQUFFLENBQUM7YUFDWCxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU0sZUFBZTtRQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxrQkFBa0IsRUFBRSxnQ0FBZ0MsRUFBRSxJQUFJLEVBQUU7WUFDekcsWUFBWSxFQUFFLDhCQUE4QixDQUFDLFlBQVk7U0FDNUQsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFdBQVc7UUFDZCxrREFBa0Q7UUFFbEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUV6RCx1QkFBdUI7UUFDdkIsSUFBSSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsc0JBQXNCLENBQUMsa0JBQWtCLEVBQUUsZ0NBQWdDLEVBQUUsSUFBSSxFQUFFO1lBQzFHLFlBQVksRUFBRSw4QkFBOEIsQ0FBQyxVQUFVO1NBQzFELENBQUMsQ0FBQztJQUNQLENBQUM7OEdBekNRLGdDQUFnQztrR0FBaEMsZ0NBQWdDLGdIQ2pCN0Msb3RCQWVBLDRDRERjLHFCQUFxQix1V0FBRSxtQkFBbUIseVRBQUUsWUFBWTs7MkZBR3pELGdDQUFnQztrQkFQNUMsU0FBUztpQ0FDTSxJQUFJLFlBQ04sK0JBQStCLFdBRWhDLENBQUMscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxDQUFDLG1CQUNsRCx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0Zvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7RmllbGRUeXBlLCBGb3JtbHlNb2R1bGV9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb24sIGRpc3RpbmN0VW50aWxDaGFuZ2VkfSBmcm9tICdyeGpzJztcbmltcG9ydCB7c3RhcnRXaXRofSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7QXV0b2NvbXBsZXRlQ29tcG9uZW50fSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2Zvcm0nO1xuaW1wb3J0IHtDb21tb25zRm9ybWx5RmllbGRDb25maWcsIEZpZWxkTG9va3VwRGVzY3JpcHRvciwgRm9ybUZpZWxkRXZlbnRDb21wb25lbnRTdWJ0eXBlLCBGb3JtRmllbGRFdmVudFR5cGVFbnVtfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLWZvcm1seS1maWVsZC1hdXRvY29tcGxldGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3JtbHktZmllbGQtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgICBpbXBvcnRzOiBbQXV0b2NvbXBsZXRlQ29tcG9uZW50LCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3JtbHlNb2R1bGVdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1seUZpZWxkQXV0b2NvbXBsZXRlQ29tcG9uZW50PFQsIEVUPiBleHRlbmRzIEZpZWxkVHlwZTxDb21tb25zRm9ybWx5RmllbGRDb25maWc+IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIHB1YmxpYyBhRm9ybUNvbnRyb2whOiBGb3JtQ29udHJvbDtcbiAgICBwdWJsaWMgZGVzY3JpcHRvciE6IEZpZWxkTG9va3VwRGVzY3JpcHRvcjxULCBFVD47XG5cbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuYUZvcm1Db250cm9sID0gdGhpcy5mb3JtQ29udHJvbCBhcyBGb3JtQ29udHJvbDtcbiAgICAgICAgdGhpcy5kZXNjcmlwdG9yID0gdGhpcy5wcm9wcy5kZXNjcmlwdG9yIGFzIEZpZWxkTG9va3VwRGVzY3JpcHRvcjxULCBFVD47XG4gICAgICAgIHRoaXMucHJvcHMuZmllbGRDb21wb25lbnQgPSB0aGlzO1xuXG4gICAgICAgIC8vIGVtaXQgbGlmZWN5Y2xlIGV2ZW50XG4gICAgICAgIHRoaXMuZGVzY3JpcHRvci5uZXh0RXZlbnQoRm9ybUZpZWxkRXZlbnRUeXBlRW51bS5Db21wb25lbnRMaWZlY3ljbGUsIEZvcm1seUZpZWxkQXV0b2NvbXBsZXRlQ29tcG9uZW50LCB0aGlzLCB7XG4gICAgICAgICAgICBldmVudFN1YnR5cGU6IEZvcm1GaWVsZEV2ZW50Q29tcG9uZW50U3VidHlwZS5PTl9JTklUXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMuYUZvcm1Db250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLmFGb3JtQ29udHJvbC52YWx1ZSksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSh2ID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRvci5uZXh0RXZlbnQoRm9ybUZpZWxkRXZlbnRUeXBlRW51bS5WYWx1ZUNoYW5nZSwgRm9ybWx5RmllbGRBdXRvY29tcGxldGVDb21wb25lbnQsIHRoaXMsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogdlxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMucHJvcHMub25WYWx1ZUNoYW5nZT8uKHRoaXMuZmllbGQsIHYpO1xuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3Vic2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLmRlc2NyaXB0b3IubmV4dEV2ZW50KEZvcm1GaWVsZEV2ZW50VHlwZUVudW0uQ29tcG9uZW50TGlmZWN5Y2xlLCBGb3JtbHlGaWVsZEF1dG9jb21wbGV0ZUNvbXBvbmVudCwgdGhpcywge1xuICAgICAgICAgICAgZXZlbnRTdWJ0eXBlOiBGb3JtRmllbGRFdmVudENvbXBvbmVudFN1YnR5cGUuT05fVklFV19JTklUXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gd2FybmluZzogZm9ybWx5IGNhbGxzIG9uIGRlc3Ryb3kgYmVmb3JlIG9uIGluaXRcblxuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCh2YWx1ZSA9PiB2YWx1ZS51bnN1YnNjcmliZSgpKTtcblxuICAgICAgICAvLyBlbWl0IGxpZmVjeWNsZSBldmVudFxuICAgICAgICB0aGlzLmRlc2NyaXB0b3I/Lm5leHRFdmVudChGb3JtRmllbGRFdmVudFR5cGVFbnVtLkNvbXBvbmVudExpZmVjeWNsZSwgRm9ybWx5RmllbGRBdXRvY29tcGxldGVDb21wb25lbnQsIHRoaXMsIHtcbiAgICAgICAgICAgIGV2ZW50U3VidHlwZTogRm9ybUZpZWxkRXZlbnRDb21wb25lbnRTdWJ0eXBlLk9OX0RFU1RST1lcbiAgICAgICAgfSk7XG4gICAgfVxufVxuIiwiPG1uZy1hdXRvY29tcGxldGVcbiAgICBbaWRdPVwiJGFueShrZXkpXCJcbiAgICBbZm9ybUNvbnRyb2xdPVwiYUZvcm1Db250cm9sXCJcbiAgICBbZm9ybWx5QXR0cmlidXRlc109XCJmaWVsZFwiXG4gICAgW2RhdGFQcm92aWRlcl09XCJkZXNjcmlwdG9yLmRhdGFQcm92aWRlclwiXG4gICAgW29wdGlvbnNUcmFja1Byb3BlcnR5XT1cImRlc2NyaXB0b3Iub3B0aW9uc1RyYWNrUHJvcGVydHlcIlxuICAgIFtvcHRpb25zTGFiZWxQcm9wZXJ0eV09XCJkZXNjcmlwdG9yLm9wdGlvbnNMYWJlbFByb3BlcnR5XCJcbiAgICBbb3B0aW9uc1ZhbHVlUHJvcGVydHldPVwiZGVzY3JpcHRvci5vcHRpb25zVmFsdWVQcm9wZXJ0eVwiXG4gICAgW2NsYXNzTmFtZV09XCJkZXNjcmlwdG9yLmlucHV0Q2xhc3NOYW1lXCJcbiAgICBbc2hvd0NsZWFyXT1cIiFwcm9wcy5yZXF1aXJlZFwiXG4gICAgW3NlbGVjdEZpcnN0XT1cImRlc2NyaXB0b3IuYXV0b2NvbXBsZXRlU2VsZWN0Rmlyc3QgPz8gZmFsc2VcIlxuICAgIFthdXRvQ2xlYXJdPVwiZGVzY3JpcHRvci5hdXRvY29tcGxldGVBdXRvQ2xlYXIgPz8gZmFsc2VcIlxuICAgIFtvcGVuT25Gb2N1c109XCJkZXNjcmlwdG9yLmF1dG9jb21wbGV0ZUF1dG9DbGVhciA/PyB0cnVlXCJcbiAgICBbaW5saW5lU2VhcmNoXT1cImRlc2NyaXB0b3IuYXV0b2NvbXBsZXRlSW5saW5lU2VhcmNoID8/IGZhbHNlXCI+XG48L21uZy1hdXRvY29tcGxldGU+XG4iXX0=
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLWF1dG9jb21wbGV0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvc3JjL2VkaXRvci9jb21wb25lbnRzL2Zvcm1seS9maWVsZHMvZm9ybWx5LWZpZWxkLWF1dG9jb21wbGV0ZS9mb3JtbHktZmllbGQtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvZWRpdG9yL2NvbXBvbmVudHMvZm9ybWx5L2ZpZWxkcy9mb3JtbHktZmllbGQtYXV0b2NvbXBsZXRlL2Zvcm1seS1maWVsZC1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFxQixNQUFNLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDdkgsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFjLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEUsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RCxPQUFPLEVBQWUsb0JBQW9CLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDeEQsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXpDLE9BQU8sRUFBQyxxQkFBcUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ2xFLE9BQU8sRUFBa0QsOEJBQThCLEVBQUUsc0JBQXNCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQzs7OztBQVM3SixNQUFNLE9BQU8sZ0NBQXdDLFNBQVEsU0FBbUM7SUFQaEc7O1FBUXFCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFLekMsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO0tBaUM5QztJQS9CVSxRQUFRO1FBQ1gsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBMEIsQ0FBQztRQUNwRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBMEMsQ0FBQztRQUN4RSxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7UUFFakMsdUJBQXVCO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLHNCQUFzQixDQUFDLGtCQUFrQixFQUFFLElBQUksRUFBRTtZQUN2RSxZQUFZLEVBQUUsOEJBQThCLENBQUMsT0FBTztTQUN2RCxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDL0ksSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsc0JBQXNCLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFDaEUsS0FBSyxFQUFFLENBQUM7YUFDWCxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRU0sZUFBZTtRQUNsQixJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxzQkFBc0IsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLEVBQUU7WUFDdkUsWUFBWSxFQUFFLDhCQUE4QixDQUFDLFlBQVk7U0FDNUQsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLFdBQVc7UUFDZCx1QkFBdUI7UUFDdkIsSUFBSSxDQUFDLFVBQVUsRUFBRSxTQUFTLENBQUMsc0JBQXNCLENBQUMsa0JBQWtCLEVBQUUsSUFBSSxFQUFFO1lBQ3hFLFlBQVksRUFBRSw4QkFBOEIsQ0FBQyxVQUFVO1NBQzFELENBQUMsQ0FBQztJQUNQLENBQUM7OEdBdENRLGdDQUFnQztrR0FBaEMsZ0NBQWdDLGdIQ2xCN0Msb3RCQWVBLDRDREFjLHFCQUFxQiwyWEFBRSxtQkFBbUIseVRBQUUsWUFBWTs7MkZBR3pELGdDQUFnQztrQkFQNUMsU0FBUztpQ0FDTSxJQUFJLFlBQ04sK0JBQStCLFdBRWhDLENBQUMscUJBQXFCLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxDQUFDLG1CQUNsRCx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCwgaW5qZWN0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7dGFrZVVudGlsRGVzdHJveWVkfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQge0Zvcm1Db250cm9sLCBSZWFjdGl2ZUZvcm1zTW9kdWxlfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7RmllbGRUeXBlLCBGb3JtbHlNb2R1bGV9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHtTdWJzY3JpcHRpb24sIGRpc3RpbmN0VW50aWxDaGFuZ2VkfSBmcm9tICdyeGpzJztcbmltcG9ydCB7c3RhcnRXaXRofSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7QXV0b2NvbXBsZXRlQ29tcG9uZW50fSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2Zvcm0nO1xuaW1wb3J0IHtDb21tb25zRm9ybWx5RmllbGRDb25maWcsIEZpZWxkTG9va3VwRGVzY3JpcHRvciwgRm9ybUZpZWxkRXZlbnRDb21wb25lbnRTdWJ0eXBlLCBGb3JtRmllbGRFdmVudFR5cGVFbnVtfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLWZvcm1seS1maWVsZC1hdXRvY29tcGxldGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb3JtbHktZmllbGQtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgICBpbXBvcnRzOiBbQXV0b2NvbXBsZXRlQ29tcG9uZW50LCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3JtbHlNb2R1bGVdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1seUZpZWxkQXV0b2NvbXBsZXRlQ29tcG9uZW50PFQsIEVUPiBleHRlbmRzIEZpZWxkVHlwZTxDb21tb25zRm9ybWx5RmllbGRDb25maWc+IGltcGxlbWVudHMgT25Jbml0LCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIHB1YmxpYyBhRm9ybUNvbnRyb2whOiBGb3JtQ29udHJvbDtcbiAgICBwdWJsaWMgZGVzY3JpcHRvciE6IEZpZWxkTG9va3VwRGVzY3JpcHRvcjxULCBFVD47XG5cbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuYUZvcm1Db250cm9sID0gdGhpcy5mb3JtQ29udHJvbCBhcyBGb3JtQ29udHJvbDtcbiAgICAgICAgdGhpcy5kZXNjcmlwdG9yID0gdGhpcy5wcm9wcy5kZXNjcmlwdG9yIGFzIEZpZWxkTG9va3VwRGVzY3JpcHRvcjxULCBFVD47XG4gICAgICAgIHRoaXMucHJvcHMuZmllbGRDb21wb25lbnQgPSB0aGlzO1xuXG4gICAgICAgIC8vIGVtaXQgbGlmZWN5Y2xlIGV2ZW50XG4gICAgICAgIHRoaXMuZGVzY3JpcHRvci5uZXh0RXZlbnQoRm9ybUZpZWxkRXZlbnRUeXBlRW51bS5Db21wb25lbnRMaWZlY3ljbGUsIHRoaXMsIHtcbiAgICAgICAgICAgIGV2ZW50U3VidHlwZTogRm9ybUZpZWxkRXZlbnRDb21wb25lbnRTdWJ0eXBlLk9OX0lOSVRcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5hRm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoc3RhcnRXaXRoKHRoaXMuYUZvcm1Db250cm9sLnZhbHVlKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSh2ID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRvci5uZXh0RXZlbnQoRm9ybUZpZWxkRXZlbnRUeXBlRW51bS5WYWx1ZUNoYW5nZSwgdGhpcywge1xuICAgICAgICAgICAgICAgIHZhbHVlOiB2XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5wcm9wcy5vblZhbHVlQ2hhbmdlPy4odGhpcy5maWVsZCwgdik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMuZGVzY3JpcHRvci5uZXh0RXZlbnQoRm9ybUZpZWxkRXZlbnRUeXBlRW51bS5Db21wb25lbnRMaWZlY3ljbGUsIHRoaXMsIHtcbiAgICAgICAgICAgIGV2ZW50U3VidHlwZTogRm9ybUZpZWxkRXZlbnRDb21wb25lbnRTdWJ0eXBlLk9OX1ZJRVdfSU5JVFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIGVtaXQgbGlmZWN5Y2xlIGV2ZW50XG4gICAgICAgIHRoaXMuZGVzY3JpcHRvcj8ubmV4dEV2ZW50KEZvcm1GaWVsZEV2ZW50VHlwZUVudW0uQ29tcG9uZW50TGlmZWN5Y2xlLCB0aGlzLCB7XG4gICAgICAgICAgICBldmVudFN1YnR5cGU6IEZvcm1GaWVsZEV2ZW50Q29tcG9uZW50U3VidHlwZS5PTl9ERVNUUk9ZXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxtbmctYXV0b2NvbXBsZXRlXG4gICAgW2lkXT1cIiRhbnkoa2V5KVwiXG4gICAgW2Zvcm1Db250cm9sXT1cImFGb3JtQ29udHJvbFwiXG4gICAgW2Zvcm1seUF0dHJpYnV0ZXNdPVwiZmllbGRcIlxuICAgIFtkYXRhUHJvdmlkZXJdPVwiZGVzY3JpcHRvci5kYXRhUHJvdmlkZXJcIlxuICAgIFtvcHRpb25zVHJhY2tQcm9wZXJ0eV09XCJkZXNjcmlwdG9yLm9wdGlvbnNUcmFja1Byb3BlcnR5XCJcbiAgICBbb3B0aW9uc0xhYmVsUHJvcGVydHldPVwiZGVzY3JpcHRvci5vcHRpb25zTGFiZWxQcm9wZXJ0eVwiXG4gICAgW29wdGlvbnNWYWx1ZVByb3BlcnR5XT1cImRlc2NyaXB0b3Iub3B0aW9uc1ZhbHVlUHJvcGVydHlcIlxuICAgIFtjbGFzc05hbWVdPVwiZGVzY3JpcHRvci5pbnB1dENsYXNzTmFtZVwiXG4gICAgW3Nob3dDbGVhcl09XCIhcHJvcHMucmVxdWlyZWRcIlxuICAgIFtzZWxlY3RGaXJzdF09XCJkZXNjcmlwdG9yLmF1dG9jb21wbGV0ZVNlbGVjdEZpcnN0ID8/IGZhbHNlXCJcbiAgICBbYXV0b0NsZWFyXT1cImRlc2NyaXB0b3IuYXV0b2NvbXBsZXRlQXV0b0NsZWFyID8/IGZhbHNlXCJcbiAgICBbb3Blbk9uRm9jdXNdPVwiZGVzY3JpcHRvci5hdXRvY29tcGxldGVBdXRvQ2xlYXIgPz8gdHJ1ZVwiXG4gICAgW2lubGluZVNlYXJjaF09XCJkZXNjcmlwdG9yLmF1dG9jb21wbGV0ZUlubGluZVNlYXJjaCA/PyBmYWxzZVwiPlxuPC9tbmctYXV0b2NvbXBsZXRlPlxuIl19
@@ -24,7 +24,7 @@ export class FormlyFieldCustomComponent extends FieldType {
24
24
  };
25
25
  }
26
26
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: FormlyFieldCustomComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: FormlyFieldCustomComponent, isStandalone: true, selector: "mng-formly-field-custom", usesInheritance: true, ngImport: i0, template: ` <ng-container [mngComponent]="descriptor.customComponentType!" [inputs]="inputs"></ng-container> `, isInline: true, dependencies: [{ kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "nodeInjector"], outputs: ["instanceCreated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.4", type: FormlyFieldCustomComponent, isStandalone: true, selector: "mng-formly-field-custom", usesInheritance: true, ngImport: i0, template: ` <ng-container [mngComponent]="descriptor.customComponentType!" [inputs]="inputs"></ng-container> `, isInline: true, dependencies: [{ kind: "directive", type: ComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "injectionToken", "inputs", "attachToHost", "parentInjector"], outputs: ["instanceCreated"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
28
  }
29
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImport: i0, type: FormlyFieldCustomComponent, decorators: [{
30
30
  type: Component,
@@ -26,7 +26,7 @@ export class FormlyFieldDatepickerComponent extends FieldType {
26
26
  this.descriptor = this.props.descriptor;
27
27
  this.props.fieldComponent = this;
28
28
  // emit lifecycle event
29
- this.descriptor.nextEvent(FormFieldEventTypeEnum.ComponentLifecycle, FormlyFieldDatepickerComponent, this, {
29
+ this.descriptor.nextEvent(FormFieldEventTypeEnum.ComponentLifecycle, this, {
30
30
  eventSubtype: FormFieldEventComponentSubtype.ON_INIT
31
31
  });
32
32
  // init status changes
@@ -60,7 +60,7 @@ export class FormlyFieldDatepickerComponent extends FieldType {
60
60
  .subscribe(v => {
61
61
  v = this.convertDateValue(v);
62
62
  this.formControl.setValue(v);
63
- this.descriptor.nextEvent(FormFieldEventTypeEnum.ValueChange, FormlyFieldDatepickerComponent, this, {
63
+ this.descriptor.nextEvent(FormFieldEventTypeEnum.ValueChange, this, {
64
64
  value: v
65
65
  });
66
66
  this.props.onValueChange?.(this.field, v);
@@ -89,7 +89,7 @@ export class FormlyFieldDatepickerComponent extends FieldType {
89
89
  ngOnDestroy() {
90
90
  // warning: formly calls on destroy before on init
91
91
  // emit lifecycle event
92
- this.descriptor?.nextEvent(FormFieldEventTypeEnum.ComponentLifecycle, FormlyFieldDatepickerComponent, this, {
92
+ this.descriptor?.nextEvent(FormFieldEventTypeEnum.ComponentLifecycle, this, {
93
93
  eventSubtype: FormFieldEventComponentSubtype.ON_DESTROY
94
94
  });
95
95
  }
@@ -100,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.4", ngImpor
100
100
  type: Component,
101
101
  args: [{ standalone: true, selector: 'mng-formly-field-datepicker', imports: [ReactiveFormsModule, FormlyModule, CalendarModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-calendar\n appendTo=\"body\"\n [class]=\"styleClass()\"\n [formControl]=\"dpFormControl\"\n [formlyAttributes]=\"field\"\n [dateFormat]=\"descriptor.datePickerFormat ?? 'dd.mm.yy'\"\n [minDate]=\"$any(descriptor.datePickerMin)\"\n [maxDate]=\"$any(descriptor.datePickerMax)\"\n [showTime]=\"descriptor.datePickerShowTime ?? false\"\n [showSeconds]=\"descriptor.datePickerShowSeconds ?? false\"\n [showIcon]=\"true\"\n [inputStyleClass]=\"descriptor.inputClassName\"\n [firstDayOfWeek]=\"1\"\n (onBlur)=\"onBlur()\">\n</p-calendar>\n" }]
102
102
  }] });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLWRhdGVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L3NyYy9lZGl0b3IvY29tcG9uZW50cy9mb3JtbHkvZmllbGRzL2Zvcm1seS1maWVsZC1kYXRlcGlja2VyL2Zvcm1seS1maWVsZC1kYXRlcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvZWRpdG9yL2NvbXBvbmVudHMvZm9ybWx5L2ZpZWxkcy9mb3JtbHktZmllbGQtZGF0ZXBpY2tlci9mb3JtbHktZmllbGQtZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBcUIsTUFBTSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNoSCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEUsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM1QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFekMsT0FBTyxFQUFDLHdCQUF3QixFQUFFLGVBQWUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3RGLE9BQU8sRUFBaUQsOEJBQThCLEVBQUUsc0JBQXNCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7QUFTNUosTUFBTSxPQUFPLDhCQUFtQyxTQUFRLFNBQW1DO0lBUDNGOztR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QUFtQix5VEFBRSxZQUFZLHFKQUFFLGNBQWM7OzJGQUdsRCw4QkFBOEI7a0JBUDFDLFNBQVM7aUNBQ00sSUFBSSxZQUNOLDZCQUE2QixXQUU5QixDQUFDLG1CQUFtQixFQUFFLFlBQVksRUFBRSxjQUFjLENBQUMsbUJBQzNDLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIERlc3Ryb3lSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBpbmplY3QsIHNpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQge0ZpZWxkVHlwZSwgRm9ybWx5TW9kdWxlfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7Q2FsZW5kYXJNb2R1bGV9IGZyb20gJ3ByaW1lbmcvY2FsZW5kYXInO1xuaW1wb3J0IHtmaWx0ZXJ9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtzdGFydFdpdGh9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtDT01NT05TX01PRFVMRV9DT05GSUdfSVQsIGRhdGVUb0lzb1N0cmluZ30gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7Q29tbW9uc0Zvcm1seUZpZWxkQ29uZmlnLCBGaWVsZElucHV0RGVzY3JpcHRvciwgRm9ybUZpZWxkRXZlbnRDb21wb25lbnRTdWJ0eXBlLCBGb3JtRmllbGRFdmVudFR5cGVFbnVtfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLWZvcm1seS1maWVsZC1kYXRlcGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybWx5LWZpZWxkLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGltcG9ydHM6IFtSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3JtbHlNb2R1bGUsIENhbGVuZGFyTW9kdWxlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtbHlGaWVsZERhdGVwaWNrZXJDb21wb25lbnQ8RVQ+IGV4dGVuZHMgRmllbGRUeXBlPENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZz4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHVibGljIGRwRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgICBwdWJsaWMgZGVzY3JpcHRvciE6IEZpZWxkSW5wdXREZXNjcmlwdG9yPEVUPjtcbiAgICBwdWJsaWMgc3R5bGVDbGFzcyA9IHNpZ25hbCgnJyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBtb2R1bGVDb25maWcgPSBpbmplY3QoQ09NTU9OU19NT0RVTEVfQ09ORklHX0lULCB7b3B0aW9uYWw6IHRydWV9KTtcbiAgICBwcml2YXRlIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICBwcml2YXRlIGRhdGVUaW1lSW5VdGMgPSB0aGlzLm1vZHVsZUNvbmZpZz8uc2VyaWFsaXphdGlvbj8uZGF0ZVRpbWVJblV0YyA/PyBmYWxzZTtcbiAgICBwcml2YXRlIGRhdGVUaW1lV2l0aFRpbWV6b25lID0gdGhpcy5tb2R1bGVDb25maWc/LnNlcmlhbGl6YXRpb24/LmRhdGVUaW1lV2l0aFRpbWV6b25lID8/IHRydWU7XG4gICAgcHJpdmF0ZSBkYXRlVGltZVdpdGhNaWxsaXMgPSB0aGlzLm1vZHVsZUNvbmZpZz8uc2VyaWFsaXphdGlvbj8uZGF0ZVRpbWVXaXRoTWlsbGlzID8/IHRydWU7XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZGVzY3JpcHRvciA9IHRoaXMucHJvcHMuZGVzY3JpcHRvciBhcyBGaWVsZElucHV0RGVzY3JpcHRvcjxFVD47XG4gICAgICAgIHRoaXMucHJvcHMuZmllbGRDb21wb25lbnQgPSB0aGlzO1xuXG4gICAgICAgIC8vIGVtaXQgbGlmZWN5Y2xlIGV2ZW50XG4gICAgICAgIHRoaXMuZGVzY3JpcHRvci5uZXh0RXZlbnQoRm9ybUZpZWxkRXZlbnRUeXBlRW51bS5Db21wb25lbnRMaWZlY3ljbGUsIEZvcm1seUZpZWxkRGF0ZXBpY2tlckNvbXBvbmVudCwgdGhpcywge1xuICAgICAgICAgICAgZXZlbnRTdWJ0eXBlOiBGb3JtRmllbGRFdmVudENvbXBvbmVudFN1YnR5cGUuT05fSU5JVFxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBpbml0IHN0YXR1cyBjaGFuZ2VzXG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc3RhdHVzQ2hhbmdlcy5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpLCBzdGFydFdpdGgodGhpcy5mb3JtQ29udHJvbC5zdGF0dXMpKS5zdWJzY3JpYmUoc3RhdHVzID0+IHtcbiAgICAgICAgICAgIGlmIChzdGF0dXMgPT09ICdJTlZBTElEJykge1xuICAgICAgICAgICAgICAgIHRoaXMuc3R5bGVDbGFzcy5zZXQoJ25nLWludmFsaWQnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdHlsZUNsYXNzLnNldCgnbmctdmFsaWQnKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHN0YXR1cyA9PT0gJ0RJU0FCTEVEJyAmJiB0aGlzLmRwRm9ybUNvbnRyb2wuZW5hYmxlZCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZHBGb3JtQ29udHJvbC5kaXNhYmxlKHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHN0YXR1cyAhPT0gJ0RJU0FCTEVEJyAmJiB0aGlzLmRwRm9ybUNvbnRyb2wuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRwRm9ybUNvbnRyb2wuZW5hYmxlKHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIGluaXQgdmFsdWVzIGZyb20gZm9ybSB0byBkYXRlcGlja2VyXG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5mb3JtQ29udHJvbD8udmFsdWUgPT09ICdzdHJpbmcnIHx8IHR5cGVvZiB0aGlzLmZvcm1Db250cm9sPy52YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgIHRoaXMuZHBGb3JtQ29udHJvbC5zZXRWYWx1ZShuZXcgRGF0ZSh0aGlzLmZvcm1Db250cm9sLnZhbHVlKSk7XG4gICAgICAgICAgICB0aGlzLmRwRm9ybUNvbnRyb2wubWFya0FzUHJpc3RpbmUoKTsgLy8gbWFyayBhcyBwcmlzdGluZSBvbmx5IG9uIGNvbXBvbmVudCBpbml0aWFsaXphdGlvblxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIoZm9ybVZhbHVlID0+ICF0aGlzLmFyZURhdGVWYWx1ZXNFcXVhbChmb3JtVmFsdWUsIHRoaXMuZHBGb3JtQ29udHJvbC52YWx1ZSkpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKHYgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZHBGb3JtQ29udHJvbC5zZXRWYWx1ZShuZXcgRGF0ZSh2KSwge2VtaXRFdmVudDogZmFsc2V9KTsgLy8gZG8gbm90IGVtaXQgZXZlbnQsIGJlY2F1c2UgaXQgY2FuIHRyaWdnZXIgaW5maW5pdGUgbG9vcFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gbGlzdGVuIGZvciBjaGFuZ2VzIGZyb20gZGF0ZXBpY2tlciB0byBmb3JtXG4gICAgICAgIHRoaXMuZHBGb3JtQ29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpLFxuICAgICAgICAgICAgICAgIGZpbHRlcih2YWx1ZSA9PiAhdGhpcy5hcmVEYXRlVmFsdWVzRXF1YWwodmFsdWUsIHRoaXMuZm9ybUNvbnRyb2wudmFsdWUpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh2ID0+IHtcbiAgICAgICAgICAgICAgICB2ID0gdGhpcy5jb252ZXJ0RGF0ZVZhbHVlKHYpO1xuICAgICAgICAgICAgICAgICh0aGlzLmZvcm1Db250cm9sIGFzIEZvcm1Db250cm9sKS5zZXRWYWx1ZSh2KTtcblxuICAgICAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRvci5uZXh0RXZlbnQoRm9ybUZpZWxkRXZlbnRUeXBlRW51bS5WYWx1ZUNoYW5nZSwgRm9ybWx5RmllbGREYXRlcGlja2VyQ29tcG9uZW50LCB0aGlzLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB2XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICB0aGlzLnByb3BzLm9uVmFsdWVDaGFuZ2U/Lih0aGlzLmZpZWxkLCB2KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uQmx1cigpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5tYXJrQXNUb3VjaGVkKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb252ZXJ0RGF0ZVZhbHVlKHZhbHVlOiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgICAgICBjb25zdCBjb252ZXJ0RGF0ZVR5cGUgPSB0aGlzLmRlc2NyaXB0b3IuZGF0ZVBpY2tlclZhbHVlTm9UaW1lIHx8ICF0aGlzLmRlc2NyaXB0b3IuZGF0ZVBpY2tlclNob3dUaW1lID8gJ2RhdGUnIDogJ2RhdGUtdGltZSc7XG4gICAgICAgIGNvbnN0IGNvbnZlcnREYXRlVGltZU9wdHMgPSB7XG4gICAgICAgICAgICB1dGM6IHRoaXMuZGVzY3JpcHRvci5kYXRlUGlja2VyVmFsdWVVdGMgPz8gdGhpcy5kYXRlVGltZUluVXRjLFxuICAgICAgICAgICAgbm9NaWxsaXM6ICF0aGlzLmRhdGVUaW1lV2l0aE1pbGxpcyxcbiAgICAgICAgICAgIG5vVGltZXpvbmU6IHRoaXMuZGVzY3JpcHRvci5kYXRlUGlja2VyVmFsdWVOb1RpbWV6b25lID8/ICF0aGlzLmRhdGVUaW1lV2l0aFRpbWV6b25lXG4gICAgICAgIH07XG4gICAgICAgIGlmICghdGhpcy5kZXNjcmlwdG9yLmRhdGVQaWNrZXJWYWx1ZUFzRGF0ZU9iaikge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGVUb0lzb1N0cmluZyh2YWx1ZSwgY29udmVydERhdGVUeXBlLCBjb252ZXJ0RGF0ZVRpbWVPcHRzKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhcmVEYXRlVmFsdWVzRXF1YWwodmFsMTogRGF0ZSB8IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQsIHZhbDI6IERhdGUgfCBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGRhdGUxID0gdGhpcy5jb252ZXJ0RGF0ZVZhbHVlKHZhbDEpO1xuICAgICAgICBjb25zdCBkYXRlMiA9IHRoaXMuY29udmVydERhdGVWYWx1ZSh2YWwyKTtcbiAgICAgICAgcmV0dXJuIChkYXRlMSBpbnN0YW5jZW9mIERhdGUgJiYgZGF0ZTIgaW5zdGFuY2VvZiBEYXRlICYmIGRhdGUxLnRvSVNPU3RyaW5nKCkgPT09IGRhdGUyLnRvSVNPU3RyaW5nKCkpIHx8IGRhdGUxID09PSBkYXRlMjtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgLy8gd2FybmluZzogZm9ybWx5IGNhbGxzIG9uIGRlc3Ryb3kgYmVmb3JlIG9uIGluaXRcblxuICAgICAgICAvLyBlbWl0IGxpZmVjeWNsZSBldmVudFxuICAgICAgICB0aGlzLmRlc2NyaXB0b3I/Lm5leHRFdmVudChGb3JtRmllbGRFdmVudFR5cGVFbnVtLkNvbXBvbmVudExpZmVjeWNsZSwgRm9ybWx5RmllbGREYXRlcGlja2VyQ29tcG9uZW50LCB0aGlzLCB7XG4gICAgICAgICAgICBldmVudFN1YnR5cGU6IEZvcm1GaWVsZEV2ZW50Q29tcG9uZW50U3VidHlwZS5PTl9ERVNUUk9ZXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxwLWNhbGVuZGFyXG4gICAgYXBwZW5kVG89XCJib2R5XCJcbiAgICBbY2xhc3NdPVwic3R5bGVDbGFzcygpXCJcbiAgICBbZm9ybUNvbnRyb2xdPVwiZHBGb3JtQ29udHJvbFwiXG4gICAgW2Zvcm1seUF0dHJpYnV0ZXNdPVwiZmllbGRcIlxuICAgIFtkYXRlRm9ybWF0XT1cImRlc2NyaXB0b3IuZGF0ZVBpY2tlckZvcm1hdCA/PyAnZGQubW0ueXknXCJcbiAgICBbbWluRGF0ZV09XCIkYW55KGRlc2NyaXB0b3IuZGF0ZVBpY2tlck1pbilcIlxuICAgIFttYXhEYXRlXT1cIiRhbnkoZGVzY3JpcHRvci5kYXRlUGlja2VyTWF4KVwiXG4gICAgW3Nob3dUaW1lXT1cImRlc2NyaXB0b3IuZGF0ZVBpY2tlclNob3dUaW1lID8/IGZhbHNlXCJcbiAgICBbc2hvd1NlY29uZHNdPVwiZGVzY3JpcHRvci5kYXRlUGlja2VyU2hvd1NlY29uZHMgPz8gZmFsc2VcIlxuICAgIFtzaG93SWNvbl09XCJ0cnVlXCJcbiAgICBbaW5wdXRTdHlsZUNsYXNzXT1cImRlc2NyaXB0b3IuaW5wdXRDbGFzc05hbWVcIlxuICAgIFtmaXJzdERheU9mV2Vla109XCIxXCJcbiAgICAob25CbHVyKT1cIm9uQmx1cigpXCI+XG48L3AtY2FsZW5kYXI+XG4iXX0=
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLWRhdGVwaWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vdGFibGV2aWV3L3NyYy9lZGl0b3IvY29tcG9uZW50cy9mb3JtbHkvZmllbGRzL2Zvcm1seS1maWVsZC1kYXRlcGlja2VyL2Zvcm1seS1maWVsZC1kYXRlcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9zcmMvZWRpdG9yL2NvbXBvbmVudHMvZm9ybWx5L2ZpZWxkcy9mb3JtbHktZmllbGQtZGF0ZXBpY2tlci9mb3JtbHktZmllbGQtZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBcUIsTUFBTSxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNoSCxPQUFPLEVBQUMsa0JBQWtCLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUM5RCxPQUFPLEVBQUMsV0FBVyxFQUFFLG1CQUFtQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFaEUsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUN6RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFDLE1BQU0sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUM1QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFekMsT0FBTyxFQUFDLHdCQUF3QixFQUFFLGVBQWUsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ3RGLE9BQU8sRUFBaUQsOEJBQThCLEVBQUUsc0JBQXNCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7QUFTNUosTUFBTSxPQUFPLDhCQUFtQyxTQUFRLFNBQW1DO0lBUDNGOztR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QkFBOEI7a0JBUDFDLFNBQVM7aUNBQ00sSUFBSSxZQUNOLDZCQUE2QixXQUU5QixDQUFDLG1CQUFtQixFQUFFLFlBQVksRUFBRSxjQUFjLENBQUMsbUJBQzNDLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIERlc3Ryb3lSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBpbmplY3QsIHNpZ25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge3Rha2VVbnRpbERlc3Ryb3llZH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQge0ZpZWxkVHlwZSwgRm9ybWx5TW9kdWxlfSBmcm9tICdAbmd4LWZvcm1seS9jb3JlJztcbmltcG9ydCB7Q2FsZW5kYXJNb2R1bGV9IGZyb20gJ3ByaW1lbmcvY2FsZW5kYXInO1xuaW1wb3J0IHtmaWx0ZXJ9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtzdGFydFdpdGh9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtDT01NT05TX01PRFVMRV9DT05GSUdfSVQsIGRhdGVUb0lzb1N0cmluZ30gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7Q29tbW9uc0Zvcm1seUZpZWxkQ29uZmlnLCBGaWVsZElucHV0RGVzY3JpcHRvciwgRm9ybUZpZWxkRXZlbnRDb21wb25lbnRTdWJ0eXBlLCBGb3JtRmllbGRFdmVudFR5cGVFbnVtfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLWZvcm1seS1maWVsZC1kYXRlcGlja2VyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybWx5LWZpZWxkLWRhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGltcG9ydHM6IFtSZWFjdGl2ZUZvcm1zTW9kdWxlLCBGb3JtbHlNb2R1bGUsIENhbGVuZGFyTW9kdWxlXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtbHlGaWVsZERhdGVwaWNrZXJDb21wb25lbnQ8RVQ+IGV4dGVuZHMgRmllbGRUeXBlPENvbW1vbnNGb3JtbHlGaWVsZENvbmZpZz4gaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgcHVibGljIGRwRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgICBwdWJsaWMgZGVzY3JpcHRvciE6IEZpZWxkSW5wdXREZXNjcmlwdG9yPEVUPjtcbiAgICBwdWJsaWMgc3R5bGVDbGFzcyA9IHNpZ25hbCgnJyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBtb2R1bGVDb25maWcgPSBpbmplY3QoQ09NTU9OU19NT0RVTEVfQ09ORklHX0lULCB7b3B0aW9uYWw6IHRydWV9KTtcbiAgICBwcml2YXRlIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICBwcml2YXRlIGRhdGVUaW1lSW5VdGMgPSB0aGlzLm1vZHVsZUNvbmZpZz8uc2VyaWFsaXphdGlvbj8uZGF0ZVRpbWVJblV0YyA/PyBmYWxzZTtcbiAgICBwcml2YXRlIGRhdGVUaW1lV2l0aFRpbWV6b25lID0gdGhpcy5tb2R1bGVDb25maWc/LnNlcmlhbGl6YXRpb24/LmRhdGVUaW1lV2l0aFRpbWV6b25lID8/IHRydWU7XG4gICAgcHJpdmF0ZSBkYXRlVGltZVdpdGhNaWxsaXMgPSB0aGlzLm1vZHVsZUNvbmZpZz8uc2VyaWFsaXphdGlvbj8uZGF0ZVRpbWVXaXRoTWlsbGlzID8/IHRydWU7XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZGVzY3JpcHRvciA9IHRoaXMucHJvcHMuZGVzY3JpcHRvciBhcyBGaWVsZElucHV0RGVzY3JpcHRvcjxFVD47XG4gICAgICAgIHRoaXMucHJvcHMuZmllbGRDb21wb25lbnQgPSB0aGlzO1xuXG4gICAgICAgIC8vIGVtaXQgbGlmZWN5Y2xlIGV2ZW50XG4gICAgICAgIHRoaXMuZGVzY3JpcHRvci5uZXh0RXZlbnQoRm9ybUZpZWxkRXZlbnRUeXBlRW51bS5Db21wb25lbnRMaWZlY3ljbGUsIHRoaXMsIHtcbiAgICAgICAgICAgIGV2ZW50U3VidHlwZTogRm9ybUZpZWxkRXZlbnRDb21wb25lbnRTdWJ0eXBlLk9OX0lOSVRcbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gaW5pdCBzdGF0dXMgY2hhbmdlc1xuICAgICAgICB0aGlzLmZvcm1Db250cm9sLnN0YXR1c0NoYW5nZXMucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSwgc3RhcnRXaXRoKHRoaXMuZm9ybUNvbnRyb2wuc3RhdHVzKSkuc3Vic2NyaWJlKHN0YXR1cyA9PiB7XG4gICAgICAgICAgICBpZiAoc3RhdHVzID09PSAnSU5WQUxJRCcpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0eWxlQ2xhc3Muc2V0KCduZy1pbnZhbGlkJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc3R5bGVDbGFzcy5zZXQoJ25nLXZhbGlkJyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChzdGF0dXMgPT09ICdESVNBQkxFRCcgJiYgdGhpcy5kcEZvcm1Db250cm9sLmVuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRwRm9ybUNvbnRyb2wuZGlzYWJsZSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChzdGF0dXMgIT09ICdESVNBQkxFRCcgJiYgdGhpcy5kcEZvcm1Db250cm9sLmRpc2FibGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kcEZvcm1Db250cm9sLmVuYWJsZSh7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICAvLyBpbml0IHZhbHVlcyBmcm9tIGZvcm0gdG8gZGF0ZXBpY2tlclxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZm9ybUNvbnRyb2w/LnZhbHVlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdGhpcy5mb3JtQ29udHJvbD8udmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICB0aGlzLmRwRm9ybUNvbnRyb2wuc2V0VmFsdWUobmV3IERhdGUodGhpcy5mb3JtQ29udHJvbC52YWx1ZSkpO1xuICAgICAgICAgICAgdGhpcy5kcEZvcm1Db250cm9sLm1hcmtBc1ByaXN0aW5lKCk7IC8vIG1hcmsgYXMgcHJpc3RpbmUgb25seSBvbiBjb21wb25lbnQgaW5pdGlhbGl6YXRpb25cbiAgICAgICAgfVxuICAgICAgICB0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZiksXG4gICAgICAgICAgICAgICAgZmlsdGVyKGZvcm1WYWx1ZSA9PiAhdGhpcy5hcmVEYXRlVmFsdWVzRXF1YWwoZm9ybVZhbHVlLCB0aGlzLmRwRm9ybUNvbnRyb2wudmFsdWUpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh2ID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmRwRm9ybUNvbnRyb2wuc2V0VmFsdWUobmV3IERhdGUodiksIHtlbWl0RXZlbnQ6IGZhbHNlfSk7IC8vIGRvIG5vdCBlbWl0IGV2ZW50LCBiZWNhdXNlIGl0IGNhbiB0cmlnZ2VyIGluZmluaXRlIGxvb3BcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgIC8vIGxpc3RlbiBmb3IgY2hhbmdlcyBmcm9tIGRhdGVwaWNrZXIgdG8gZm9ybVxuICAgICAgICB0aGlzLmRwRm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSxcbiAgICAgICAgICAgICAgICBmaWx0ZXIodmFsdWUgPT4gIXRoaXMuYXJlRGF0ZVZhbHVlc0VxdWFsKHZhbHVlLCB0aGlzLmZvcm1Db250cm9sLnZhbHVlKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUodiA9PiB7XG4gICAgICAgICAgICAgICAgdiA9IHRoaXMuY29udmVydERhdGVWYWx1ZSh2KTtcbiAgICAgICAgICAgICAgICAodGhpcy5mb3JtQ29udHJvbCBhcyBGb3JtQ29udHJvbCkuc2V0VmFsdWUodik7XG5cbiAgICAgICAgICAgICAgICB0aGlzLmRlc2NyaXB0b3IubmV4dEV2ZW50KEZvcm1GaWVsZEV2ZW50VHlwZUVudW0uVmFsdWVDaGFuZ2UsIHRoaXMsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IHZcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHRoaXMucHJvcHMub25WYWx1ZUNoYW5nZT8uKHRoaXMuZmllbGQsIHYpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25CbHVyKCkge1xuICAgICAgICB0aGlzLmZvcm1Db250cm9sLm1hcmtBc1RvdWNoZWQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbnZlcnREYXRlVmFsdWUodmFsdWU6IERhdGUgfCBzdHJpbmcgfCBudW1iZXIgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IGNvbnZlcnREYXRlVHlwZSA9IHRoaXMuZGVzY3JpcHRvci5kYXRlUGlja2VyVmFsdWVOb1RpbWUgfHwgIXRoaXMuZGVzY3JpcHRvci5kYXRlUGlja2VyU2hvd1RpbWUgPyAnZGF0ZScgOiAnZGF0ZS10aW1lJztcbiAgICAgICAgY29uc3QgY29udmVydERhdGVUaW1lT3B0cyA9IHtcbiAgICAgICAgICAgIHV0YzogdGhpcy5kZXNjcmlwdG9yLmRhdGVQaWNrZXJWYWx1ZVV0YyA/PyB0aGlzLmRhdGVUaW1lSW5VdGMsXG4gICAgICAgICAgICBub01pbGxpczogIXRoaXMuZGF0ZVRpbWVXaXRoTWlsbGlzLFxuICAgICAgICAgICAgbm9UaW1lem9uZTogdGhpcy5kZXNjcmlwdG9yLmRhdGVQaWNrZXJWYWx1ZU5vVGltZXpvbmUgPz8gIXRoaXMuZGF0ZVRpbWVXaXRoVGltZXpvbmVcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKCF0aGlzLmRlc2NyaXB0b3IuZGF0ZVBpY2tlclZhbHVlQXNEYXRlT2JqKSB7XG4gICAgICAgICAgICByZXR1cm4gZGF0ZVRvSXNvU3RyaW5nKHZhbHVlLCBjb252ZXJ0RGF0ZVR5cGUsIGNvbnZlcnREYXRlVGltZU9wdHMpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFyZURhdGVWYWx1ZXNFcXVhbCh2YWwxOiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyIHwgbnVsbCB8IHVuZGVmaW5lZCwgdmFsMjogRGF0ZSB8IHN0cmluZyB8IG51bWJlciB8IG51bGwgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgZGF0ZTEgPSB0aGlzLmNvbnZlcnREYXRlVmFsdWUodmFsMSk7XG4gICAgICAgIGNvbnN0IGRhdGUyID0gdGhpcy5jb252ZXJ0RGF0ZVZhbHVlKHZhbDIpO1xuICAgICAgICByZXR1cm4gKGRhdGUxIGluc3RhbmNlb2YgRGF0ZSAmJiBkYXRlMiBpbnN0YW5jZW9mIERhdGUgJiYgZGF0ZTEudG9JU09TdHJpbmcoKSA9PT0gZGF0ZTIudG9JU09TdHJpbmcoKSkgfHwgZGF0ZTEgPT09IGRhdGUyO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICAvLyB3YXJuaW5nOiBmb3JtbHkgY2FsbHMgb24gZGVzdHJveSBiZWZvcmUgb24gaW5pdFxuXG4gICAgICAgIC8vIGVtaXQgbGlmZWN5Y2xlIGV2ZW50XG4gICAgICAgIHRoaXMuZGVzY3JpcHRvcj8ubmV4dEV2ZW50KEZvcm1GaWVsZEV2ZW50VHlwZUVudW0uQ29tcG9uZW50TGlmZWN5Y2xlLCB0aGlzLCB7XG4gICAgICAgICAgICBldmVudFN1YnR5cGU6IEZvcm1GaWVsZEV2ZW50Q29tcG9uZW50U3VidHlwZS5PTl9ERVNUUk9ZXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxwLWNhbGVuZGFyXG4gICAgYXBwZW5kVG89XCJib2R5XCJcbiAgICBbY2xhc3NdPVwic3R5bGVDbGFzcygpXCJcbiAgICBbZm9ybUNvbnRyb2xdPVwiZHBGb3JtQ29udHJvbFwiXG4gICAgW2Zvcm1seUF0dHJpYnV0ZXNdPVwiZmllbGRcIlxuICAgIFtkYXRlRm9ybWF0XT1cImRlc2NyaXB0b3IuZGF0ZVBpY2tlckZvcm1hdCA/PyAnZGQubW0ueXknXCJcbiAgICBbbWluRGF0ZV09XCIkYW55KGRlc2NyaXB0b3IuZGF0ZVBpY2tlck1pbilcIlxuICAgIFttYXhEYXRlXT1cIiRhbnkoZGVzY3JpcHRvci5kYXRlUGlja2VyTWF4KVwiXG4gICAgW3Nob3dUaW1lXT1cImRlc2NyaXB0b3IuZGF0ZVBpY2tlclNob3dUaW1lID8/IGZhbHNlXCJcbiAgICBbc2hvd1NlY29uZHNdPVwiZGVzY3JpcHRvci5kYXRlUGlja2VyU2hvd1NlY29uZHMgPz8gZmFsc2VcIlxuICAgIFtzaG93SWNvbl09XCJ0cnVlXCJcbiAgICBbaW5wdXRTdHlsZUNsYXNzXT1cImRlc2NyaXB0b3IuaW5wdXRDbGFzc05hbWVcIlxuICAgIFtmaXJzdERheU9mV2Vla109XCIxXCJcbiAgICAob25CbHVyKT1cIm9uQmx1cigpXCI+XG48L3AtY2FsZW5kYXI+XG4iXX0=