@acorex/platform 18.0.4 → 18.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (70) hide show
  1. package/common/lib/data/dexie-storage.service.d.ts +0 -1
  2. package/common/lib/layout/grid-layout/grid-layout.types.d.ts +1 -2
  3. package/common/lib/schema/widgets/lookup/lookup-widget-filter.component.d.ts +1 -1
  4. package/common/lib/schema/widgets/lookup/lookup-widget-view.component.d.ts +2 -1
  5. package/common/lib/utils/data-generator.d.ts +13 -1
  6. package/common/lib/utils/index.d.ts +1 -0
  7. package/common/lib/utils/pdf.service.d.ts +25 -0
  8. package/esm2022/common/lib/data/dexie-storage.service.mjs +2 -4
  9. package/esm2022/common/lib/layout/grid-layout/grid-layout.directive.mjs +5 -5
  10. package/esm2022/common/lib/layout/grid-layout/grid-layout.types.mjs +1 -1
  11. package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-edit.component.mjs +20 -3
  12. package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-filter.component.mjs +20 -3
  13. package/esm2022/common/lib/schema/widgets/lookup/lookup-widget-view.component.mjs +5 -5
  14. package/esm2022/common/lib/utils/data-generator.mjs +67 -2
  15. package/esm2022/common/lib/utils/index.mjs +2 -1
  16. package/esm2022/common/lib/utils/pdf.service.mjs +85 -0
  17. package/esm2022/layout/entity/lib/entity-master-create.viewmodel.mjs +23 -19
  18. package/esm2022/layout/entity/lib/entity-master-list.viewmodel.mjs +27 -8
  19. package/esm2022/layout/entity/lib/entity-master-single.viewmodel.mjs +33 -28
  20. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.mjs +22 -7
  21. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.component.mjs +1 -2
  22. package/esm2022/layout/entity/lib/widgets/lookup-widget/lookup-widget-selector.viewmodel.mjs +15 -3
  23. package/esm2022/layout/entity/lib/workflows/create-entity.workflow.mjs +3 -4
  24. package/esm2022/layout/entity/lib/workflows/delete-entity.workflow.mjs +1 -4
  25. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.mjs +4 -1
  26. package/esm2022/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.mjs +6 -3
  27. package/esm2022/widgets/lib/editors/date-time-box-widget/date-time-box-widget-view.component.mjs +1 -2
  28. package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-edit.component.mjs +3 -3
  29. package/esm2022/widgets/lib/editors/rich-text-widget/rich-text-widget-view.component.mjs +14 -8
  30. package/esm2022/widgets/lib/editors/selection-list-widget/selection-list-widget-view.component.mjs +3 -2
  31. package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-edit.component.mjs +3 -2
  32. package/esm2022/widgets/lib/editors/signature-pad-widget/signature-pad-widget-view.component.mjs +3 -2
  33. package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-edit.component.mjs +3 -2
  34. package/esm2022/widgets/lib/editors/text-box-widget/text-box-widget-view.component.mjs +3 -2
  35. package/esm2022/workflow/lib/actions/start-workflow.action.mjs +7 -3
  36. package/esm2022/workflow/lib/workflow.service.mjs +3 -3
  37. package/esm2022/workflow/lib/workflow.types.mjs +11 -10
  38. package/fesm2022/{acorex-platform-common-lookup-widget-edit.component-D9UhViUG.mjs → acorex-platform-common-lookup-widget-edit.component-Do_yV2hi.mjs} +19 -2
  39. package/fesm2022/acorex-platform-common-lookup-widget-edit.component-Do_yV2hi.mjs.map +1 -0
  40. package/fesm2022/{acorex-platform-common-lookup-widget-filter.component-RWweQQaO.mjs → acorex-platform-common-lookup-widget-filter.component-AKqbYe-l.mjs} +19 -2
  41. package/fesm2022/acorex-platform-common-lookup-widget-filter.component-AKqbYe-l.mjs.map +1 -0
  42. package/fesm2022/{acorex-platform-common-lookup-widget-view.component-mXo8VADX.mjs → acorex-platform-common-lookup-widget-view.component-BHqYDEuU.mjs} +5 -5
  43. package/fesm2022/acorex-platform-common-lookup-widget-view.component-BHqYDEuU.mjs.map +1 -0
  44. package/fesm2022/acorex-platform-common.mjs +159 -13
  45. package/fesm2022/acorex-platform-common.mjs.map +1 -1
  46. package/fesm2022/acorex-platform-layout-entity.mjs +116 -66
  47. package/fesm2022/acorex-platform-layout-entity.mjs.map +1 -1
  48. package/fesm2022/acorex-platform-themes-default.mjs +8 -2
  49. package/fesm2022/acorex-platform-themes-default.mjs.map +1 -1
  50. package/fesm2022/acorex-platform-widgets.mjs +24 -15
  51. package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
  52. package/fesm2022/acorex-platform-workflow.mjs +18 -13
  53. package/fesm2022/acorex-platform-workflow.mjs.map +1 -1
  54. package/layout/entity/lib/entity-master-list.viewmodel.d.ts +7 -5
  55. package/layout/entity/lib/entity-master-single.viewmodel.d.ts +7 -5
  56. package/layout/entity/lib/widgets/lookup-widget/lookup-widget-edit.component.d.ts +2 -0
  57. package/package.json +1 -1
  58. package/themes/default/lib/layouts/entity-layouts/entity-master-list-view/entity-master-list-view.component.d.ts +1 -0
  59. package/themes/default/lib/layouts/entity-layouts/entity-master-single-view/entity-master-single-view.component.d.ts +1 -0
  60. package/widgets/lib/editors/rich-text-widget/rich-text-widget-edit.component.d.ts +1 -1
  61. package/widgets/lib/editors/rich-text-widget/rich-text-widget-view.component.d.ts +3 -2
  62. package/widgets/lib/editors/signature-pad-widget/signature-pad-widget-edit.component.d.ts +1 -1
  63. package/widgets/lib/editors/signature-pad-widget/signature-pad-widget-view.component.d.ts +1 -1
  64. package/widgets/lib/editors/text-box-widget/text-box-widget-edit.component.d.ts +1 -1
  65. package/widgets/lib/editors/text-box-widget/text-box-widget-view.component.d.ts +1 -1
  66. package/workflow/lib/workflow.service.d.ts +1 -1
  67. package/workflow/lib/workflow.types.d.ts +4 -3
  68. package/fesm2022/acorex-platform-common-lookup-widget-edit.component-D9UhViUG.mjs.map +0 -1
  69. package/fesm2022/acorex-platform-common-lookup-widget-filter.component-RWweQQaO.mjs.map +0 -1
  70. package/fesm2022/acorex-platform-common-lookup-widget-view.component-mXo8VADX.mjs.map +0 -1
@@ -9,7 +9,7 @@ import { AXPEntityDeletedEvent } from "./workflows/delete-entity.workflow";
9
9
  import { AXPEntityModifyEvent } from "./workflows/modify-section.workflow";
10
10
  import { AXPEntityDetailListViewModel } from "./entity-detail-list.viewmodel";
11
11
  import { AXPEntityCommandScope, AXPLayoutService } from "@acorex/platform/common";
12
- import { Subject } from "rxjs";
12
+ import { Subject, takeUntil } from "rxjs";
13
13
  import * as i0 from "@angular/core";
14
14
  export class AXPEntityMasterSingleViewGroupViewModel {
15
15
  constructor(entity, section) {
@@ -30,21 +30,18 @@ export class AXPEntityMasterSingleViewGroupViewModel {
30
30
  return source;
31
31
  });
32
32
  this.props = computed(() => {
33
- const props = this.entity.properties.filter(c => c.groupId == this.group.id &&
34
- c.schema.hidden != true).map(c => c.name);
35
- const viewProps = this.entity.interfaces?.master?.single?.properties?.filter(c => props.includes(c.name)) ?? [];
36
- return viewProps.map(e => {
37
- return new AXPEntityMasterSingleElementViewModel(this.entity, this, e);
38
- });
33
+ const { properties, interfaces } = this.entity;
34
+ const groupProperties = properties
35
+ .filter(({ groupId, schema }) => groupId === this.group.id && !schema.hidden)
36
+ .map(({ name }) => name);
37
+ const viewProperties = interfaces?.master?.single?.properties?.filter(({ name }) => groupProperties.includes(name)) ?? [];
38
+ return viewProperties.map(prop => new AXPEntityMasterSingleElementViewModel(this.entity, this, prop));
39
39
  });
40
40
  this.editableProps = computed(() => {
41
- const editableProps = this.entity.interfaces?.master?.update?.properties?.map(c => c.name) ?? [];
42
- const props = this.entity.properties.filter(c => c.groupId == this.group.id &&
43
- c.schema.hidden != true &&
44
- editableProps.includes(c.name));
45
- return props.map(e => {
46
- return new AXPEntityMasterSingleElementViewModel(this.entity, this, e);
47
- });
41
+ const { properties, interfaces } = this.entity;
42
+ const editablePropertyNames = interfaces?.master?.update?.properties?.map(({ name }) => name) ?? [];
43
+ const filteredProperties = properties.filter(({ groupId, schema, name }) => groupId === this.group.id && !schema.hidden && editablePropertyNames.includes(name));
44
+ return filteredProperties.map(prop => new AXPEntityMasterSingleElementViewModel(this.entity, this, prop));
48
45
  });
49
46
  this.editable = computed(() => {
50
47
  return this.editableProps().length > 0;
@@ -92,6 +89,7 @@ export class AXPEntityMasterSingleViewModel {
92
89
  this.session = this.injector.get(AXPSessionService);
93
90
  this.formatService = this.injector.get(AXFormatService);
94
91
  this.workflow = this.injector.get(AXPWorkflowService);
92
+ this.destroyed = new Subject();
95
93
  this.events$ = new Subject();
96
94
  this.context = signal(cloneDeep(this.entityData));
97
95
  this.actions = computed(() => {
@@ -104,15 +102,11 @@ export class AXPEntityMasterSingleViewModel {
104
102
  return this.actions().filter(c => c.priority == 'secondary');
105
103
  });
106
104
  this.sections = computed(() => {
107
- const viewProps = this.entityDef.interfaces?.master?.single?.properties?.map(c => c.name);
108
- const props = this.entityDef.properties.filter(c => c.groupId &&
109
- c.schema.hidden != true &&
110
- viewProps?.includes(c.name));
111
- const groups = this.entityDef.interfaces?.master?.single?.sections?.filter(g => props.some(p => p.groupId == g.id)) ?? [];
112
- const result = groups?.map((section) => {
113
- return new AXPEntityMasterSingleViewGroupViewModel(this.entityDef, section);
114
- });
115
- return (result ?? []);
105
+ const { interfaces, properties } = this.entityDef;
106
+ const viewProps = interfaces?.master?.single?.properties?.map(({ name }) => name) ?? [];
107
+ const filteredProperties = properties.filter(({ groupId, schema, name }) => groupId && !schema.hidden && viewProps.includes(name));
108
+ const groups = interfaces?.master?.single?.sections?.filter(({ id }) => filteredProperties.some(({ groupId }) => groupId === id)) ?? [];
109
+ return groups.map(section => new AXPEntityMasterSingleViewGroupViewModel(this.entityDef, section));
116
110
  });
117
111
  //****************** Title ******************//
118
112
  this.title = computed(() => {
@@ -146,7 +140,10 @@ export class AXPEntityMasterSingleViewModel {
146
140
  this.relatedEntities = computed(() => {
147
141
  return this.entityDef.relatedEntities?.map(re => new AXPEntityDetailListViewModel(this.injector, re, { entity: this.entityDef, data: this.entityData })) ?? [];
148
142
  });
149
- this.workflow.events$.pipe(ofType(AXPEntityDeletedEvent)).subscribe((event) => {
143
+ this.workflow.events$
144
+ .pipe(ofType(AXPEntityDeletedEvent))
145
+ .pipe(takeUntil(this.destroyed))
146
+ .subscribe((event) => {
150
147
  if (event.payload.entity == this.entityDef.source &&
151
148
  event.payload.ids.includes(this.context().id)) {
152
149
  this.workflow.execute('show-list-view', {
@@ -154,7 +151,10 @@ export class AXPEntityMasterSingleViewModel {
154
151
  });
155
152
  }
156
153
  });
157
- this.workflow.events$.pipe(ofType(AXPEntityModifyEvent)).subscribe(async (event) => {
154
+ this.workflow.events$
155
+ .pipe(ofType(AXPEntityModifyEvent))
156
+ .pipe(takeUntil(this.destroyed))
157
+ .subscribe(async (event) => {
158
158
  if (event.payload.entity == this.entityDef.source &&
159
159
  event.payload.values.id === this.context().id) {
160
160
  this.context.set(event.payload.values);
@@ -162,7 +162,6 @@ export class AXPEntityMasterSingleViewModel {
162
162
  });
163
163
  }
164
164
  async executeCommand(commandName, data = null) {
165
- // debugger
166
165
  //TODO: syntact for workflow
167
166
  switch (commandName) {
168
167
  case 'delete-entity':
@@ -186,11 +185,17 @@ export class AXPEntityMasterSingleViewModel {
186
185
  const action = this.actions().find(c => c.name == commandName);
187
186
  this.workflow.execute(commandName, {
188
187
  entity: this.entityDef.source,
189
- data: action?.scope == AXPEntityCommandScope.Individual ? data : null
188
+ data: action?.scope == AXPEntityCommandScope.Individual ? this.context() : null
190
189
  });
191
190
  }
192
191
  }
193
192
  }
193
+ //
194
+ //
195
+ destroy() {
196
+ this.destroyed.next();
197
+ this.destroyed.complete();
198
+ }
194
199
  }
195
200
  export class AXPEntityDetailViewModelFactory {
196
201
  constructor() {
@@ -224,4 +229,4 @@ export const AXPEntityDetailViewModelResolver = (route, state, service = inject(
224
229
  //
225
230
  return service.create(moduleName, entityName, id);
226
231
  };
227
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1zaW5nbGUudmlld21vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LW1hc3Rlci1zaW5nbGUudmlld21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlFLE9BQU8sRUFBNEIscUJBQXFCLEVBQXdGLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbE0sT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFHL0IsTUFBTSxPQUFPLHVDQUF1QztJQUVoRCxZQUFvQixNQUFpQixFQUFVLE9BQTZCO1FBQXhELFdBQU0sR0FBTixNQUFNLENBQVc7UUFBVSxZQUFPLEdB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LElBQUksOEJBQThCLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDM0UsQ0FBQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDeEMsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzNDLENBQUM7OEdBaEJRLCtCQUErQjtrSEFBL0IsK0JBQStCLGNBRGxCLE1BQU07OzJGQUNuQiwrQkFBK0I7a0JBRDNDLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOztBQXFCbEMsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQXVELENBQ2hHLEtBQTZCLEVBQzdCLEtBQTBCLEVBQzFCLFVBQTJDLE1BQU0sQ0FBQywrQkFBK0IsQ0FBQyxFQUMzQyxFQUFFO0lBQ3pDLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQVcsQ0FBQztJQUNsRSxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQVcsQ0FBQztJQUMxRCxNQUFNLEVBQUUsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQVcsQ0FBQztJQUM5QyxFQUFFO0lBQ0YsT0FBTyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxVQUFVLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDdEQsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhGb3JtYXRTZXJ2aWNlIH0gZnJvbSBcIkBhY29yZXgvY29yZS9mb3JtYXRcIjtcclxuaW1wb3J0IHsgY2xvbmVEZWVwLCBtZXJnZSwgc2V0IH0gZnJvbSBcImxvZGFzaC1lc1wiO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3RvciwgY29tcHV0ZWQsIGluamVjdCwgc2lnbmFsIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgUmVzb2x2ZUZuLCBSb3V0ZXJTdGF0ZVNuYXBzaG90IH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xyXG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UsIG9mVHlwZSB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93XCI7XHJcbmltcG9ydCB7IEFYUFNlc3Npb25TZXJ2aWNlIH0gZnJvbSBcIkBhY29yZXgvcGxhdGZvcm0vYXV0aFwiO1xyXG5pbXBvcnQgeyBBWFBFbnRpdHlEZWZpbml0aW9uUmVnaXN0cnlTZXJ2aWNlIH0gZnJvbSBcIi4vZW50aXR5LXJlZ2lzdGVyeS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsIH0gZnJvbSBcIi4vZW50aXR5LnZpZXdtb2RlbFwiO1xyXG5pbXBvcnQgeyBBWFBXaWRnZXROb2RlIH0gZnJvbSBcIkBhY29yZXgvcGxhdGZvcm0vbGF5b3V0L2J1aWxkZXJcIjtcclxuaW1wb3J0IHsgQVhQRW50aXR5RGVsZXRlZEV2ZW50IH0gZnJvbSBcIi4vd29ya2Zsb3dzL2RlbGV0ZS1lbnRpdHkud29ya2Zsb3dcIjtcclxuaW1wb3J0IHsgQVhQRW50aXR5TW9kaWZ5RXZlbnQgfSBmcm9tIFwiLi93b3JrZmxvd3MvbW9kaWZ5LXNlY3Rpb24ud29ya2Zsb3dcIjtcclxuaW1wb3J0IHsgQVhQRW50aXR5RGV0YWlsTGlzdFZpZXdNb2RlbCB9IGZyb20gXCIuL2VudGl0eS1kZXRhaWwtbGlzdC52aWV3bW9kZWxcIjtcclxuaW1wb3J0IHsgQVhQQmVhcmRDcnVtYiwgQVhQRW50aXR5LCBBWFBFbnRpdHlDb21tYW5kU2NvcGUsIEFYUEVudGl0eVByb3BlcnR5LCBBWFBFbnRpdHlQcm9wZXJ0eVZpZXcsIEFYUEVudGl0eVNlY3Rpb25WaWV3LCBBWFBHcmlkTGF5b3V0T3B0aW9ucywgQVhQTGF5b3V0U2VydmljZSB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL2NvbW1vblwiO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld0dyb3VwVmlld01vZGVsIHtcclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGVudGl0eTogQVhQRW50aXR5LCBwcml2YXRlIHNlY3Rpb246IEFYUEVudGl0eVNlY3Rpb25WaWV3KSB7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIGdyb3VwID0gdGhpcy5lbnRpdHkuZ3JvdXBzPy5maW5kKGMgPT4gYy5pZCA9PSB0aGlzLnNlY3Rpb24uaWQpITtcclxuICAgIG5hbWUgPSBzaWduYWwodGhpcy5ncm91cC5pZCk7XHJcbiAgICBpc0xvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xyXG5cclxuICAgIHRpdGxlID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JvdXAudGl0bGUgPz8gdGhpcy5ncm91cC5pZDtcclxuICAgIH0pO1xyXG5cclxuICAgIGRlc2NyaXB0aW9uID0gY29tcHV0ZWQ8c3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZD4oKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdyb3VwLmRlc2NyaXB0aW9uO1xyXG4gICAgfSk7XHJcblxyXG4gICAgbGF5b3V0ID0gY29tcHV0ZWQ8QVhQR3JpZExheW91dE9wdGlvbnM+KCgpID0+IHtcclxuICAgICAgICBjb25zdCBzb3VyY2UgPSBjbG9uZURlZXAodGhpcy5zZWN0aW9uLmxheW91dCA/PyB7fSkgYXMgb2JqZWN0O1xyXG4gICAgICAgIHNldChzb3VyY2UsIFwicG9zaXRpb25zLmRlZmF1bHQuY29sU3BhblwiLCAxMik7XHJcbiAgICAgICAgcmV0dXJuIHNvdXJjZSBhcyBBWFBHcmlkTGF5b3V0T3B0aW9ucztcclxuICAgIH0pO1xyXG5cclxuICAgIHByb3BzID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHByb3BzID0gdGhpcy5lbnRpdHkucHJvcGVydGllcy5maWx0ZXIoXHJcbiAgICAgICAgICAgIGMgPT4gYy5ncm91cElkID09IHRoaXMuZ3JvdXAuaWQgJiZcclxuICAgICAgICAgICAgICAgIGMuc2NoZW1hLmhpZGRlbiAhPSB0cnVlXHJcbiAgICAgICAgKS5tYXAoYyA9PiBjLm5hbWUpO1xyXG4gICAgICAgIGNvbnN0IHZpZXdQcm9wcyA9IHRoaXMuZW50aXR5LmludGVyZmFjZXM/Lm1hc3Rlcj8uc2luZ2xlPy5wcm9wZXJ0aWVzPy5maWx0ZXIoYyA9PiBwcm9wcy5pbmNsdWRlcyhjLm5hbWUpKSA/PyBbXVxyXG5cclxuICAgICAgICByZXR1cm4gdmlld1Byb3BzLm1hcChlID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVFbGVtZW50Vmlld01vZGVsKHRoaXMuZW50aXR5LCB0aGlzLCBlKTtcclxuICAgICAgICB9KVxyXG4gICAgfSk7XHJcblxyXG4gICAgZWRpdGFibGVQcm9wcyA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgICAgICBjb25zdCBlZGl0YWJsZVByb3BzID0gdGhpcy5lbnRpdHkuaW50ZXJmYWNlcz8ubWFzdGVyPy51cGRhdGU/LnByb3BlcnRpZXM/Lm1hcChjID0+IGMubmFtZSkgPz8gW107XHJcbiAgICAgICAgY29uc3QgcHJvcHMgPSB0aGlzLmVudGl0eS5wcm9wZXJ0aWVzLmZpbHRlcihjID0+XHJcbiAgICAgICAgICAgIGMuZ3JvdXBJZCA9PSB0aGlzLmdyb3VwLmlkICYmXHJcbiAgICAgICAgICAgIGMuc2NoZW1hLmhpZGRlbiAhPSB0cnVlICYmXHJcbiAgICAgICAgICAgIGVkaXRhYmxlUHJvcHMuaW5jbHVkZXMoYy5uYW1lKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgcmV0dXJuIHByb3BzLm1hcChlID0+IHtcclxuICAgICAgICAgICAgcmV0dXJuIG5ldyBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVFbGVtZW50Vmlld01vZGVsKHRoaXMuZW50aXR5LCB0aGlzLCBlKTtcclxuICAgICAgICB9KVxyXG4gICAgfSk7XHJcblxyXG4gICAgZWRpdGFibGUgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZWRpdGFibGVQcm9wcygpLmxlbmd0aCA+IDBcclxuICAgIH0pO1xyXG59XHJcblxyXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyU2luZ2xlRWxlbWVudFZpZXdNb2RlbCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbnRpdHk6IEFYUEVudGl0eSwgcHJpdmF0ZSBzZWN0aW9uOiBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3R3JvdXBWaWV3TW9kZWwsIHByaXZhdGUgcHJvcGVydHlWaWV3OiBBWFBFbnRpdHlQcm9wZXJ0eVZpZXcpIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBwcm9wZXJ0eSA9IHRoaXMuZW50aXR5LnByb3BlcnRpZXMuZmluZChjID0+IGMubmFtZSA9PSB0aGlzLnByb3BlcnR5Vmlldy5uYW1lKSFcclxuICAgIG5hbWUgPSBzaWduYWwodGhpcy5wcm9wZXJ0eS5uYW1lKTtcclxuICAgIHRpdGxlID0gc2lnbmFsKHRoaXMucHJvcGVydHkudGl0bGUpO1xyXG4gICAgZGVzY3JpcHRpb24gPSBzaWduYWwodGhpcy5wcm9wZXJ0eS5kZXNjcmlwdGlvbik7XHJcblxyXG5cclxuICAgIGxheW91dCA9IGNvbXB1dGVkPEFYUEdyaWRMYXlvdXRPcHRpb25zPigoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgdmlld1Byb3AgPSB0aGlzLmVudGl0eS5pbnRlcmZhY2VzPy5tYXN0ZXI/LnNpbmdsZT8ucHJvcGVydGllcz8uZmluZChjID0+IGMubmFtZSA9PSB0aGlzLnByb3BlcnR5Lm5hbWUpO1xyXG4gICAgICAgIGNvbnN0IHNvdXJjZSA9IGNsb25lRGVlcCh2aWV3UHJvcD8ubGF5b3V0ID8/IHt9KSBhcyBvYmplY3Q7XHJcbiAgICAgICAgc2V0KHNvdXJjZSwgXCJwb3NpdGlvbnMuZGVmYXVsdC5jb2xTcGFuXCIsIDEyKTtcclxuICAgICAgICByZXR1cm4gc291cmNlIGFzIEFYUEdyaWRMYXlvdXRPcHRpb25zO1xyXG4gICAgfSk7XHJcblxyXG4gICAgbm9kZSA9IGNvbXB1dGVkPEFYUFdpZGdldE5vZGU+KCgpID0+IHtcclxuICAgICAgICBjb25zdCBzY2hlbWEgPSB0aGlzLnByb3BlcnR5LnNjaGVtYSE7XHJcbiAgICAgICAgY29uc3Qgd2lkZ2V0ID0gc2NoZW1hLmludGVyZmFjZSE7XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgdHlwZTogd2lkZ2V0LnR5cGUsXHJcbiAgICAgICAgICAgIG1vZGU6ICd2aWV3JyxcclxuICAgICAgICAgICAgcGF0aDogdGhpcy5uYW1lKCksXHJcbiAgICAgICAgICAgIGNoaWxkcmVuOiB3aWRnZXQuY2hpbGRyZW4sXHJcbiAgICAgICAgICAgIGZvcm11bGE6IHdpZGdldC5mb3JtdWxhLFxyXG4gICAgICAgICAgICBvcHRpb25zOiBtZXJnZShcclxuICAgICAgICAgICAgICAgIHNjaGVtYS5pbnRlcmZhY2U/Lm9wdGlvbnMsXHJcbiAgICAgICAgICAgICAgICAvL3RoaXMucHJvcGVydHkub3B0aW9ucz8uY3JlYXRlPy53aWRnZXQsXHJcbiAgICAgICAgICAgICAgICB7IHZhbGlkYXRpb25SdWxlczogdGhpcy5wcm9wZXJ0eS52YWxpZGF0aW9ucyB9LFxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgfSBhcyBBWFBXaWRnZXROb2RlO1xyXG4gICAgfSlcclxufVxyXG5cclxuXHJcblxyXG5leHBvcnQgY2xhc3MgQVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld01vZGVsIHtcclxuXHJcbiAgICBwcml2YXRlIGVudGl0eURlZiA9IGNsb25lRGVlcCh0aGlzLmNvbmZpZykhO1xyXG4gICAgcHJpdmF0ZSBfdmlld0RlZiA9IGNsb25lRGVlcCh0aGlzLmVudGl0eURlZi5pbnRlcmZhY2VzPy5tYXN0ZXI/LnNpbmdsZSkhXHJcbiAgICBwcml2YXRlIHNlc3Npb24gPSB0aGlzLmluamVjdG9yLmdldChBWFBTZXNzaW9uU2VydmljZSk7XHJcbiAgICBwcml2YXRlIGZvcm1hdFNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldChBWEZvcm1hdFNlcnZpY2UpXHJcbiAgICBwcml2YXRlIHdvcmtmbG93ID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQV29ya2Zsb3dTZXJ2aWNlKVxyXG5cclxuICAgIHB1YmxpYyBldmVudHMkOiBTdWJqZWN0PHsgYWN0aW9uOiBzdHJpbmcgfT4gPSBuZXcgU3ViamVjdCgpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gICAgICAgIHByaXZhdGUgY29uZmlnOiBBWFBFbnRpdHksXHJcbiAgICAgICAgcHJpdmF0ZSBlbnRpdHlEYXRhOiBhbnksXHJcbiAgICApIHtcclxuICAgICAgICB0aGlzLndvcmtmbG93LmV2ZW50cyQucGlwZShvZlR5cGUoQVhQRW50aXR5RGVsZXRlZEV2ZW50KSkuc3Vic2NyaWJlKChldmVudCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICBldmVudC5wYXlsb2FkLmVudGl0eSA9PSB0aGlzLmVudGl0eURlZi5zb3VyY2UgJiZcclxuICAgICAgICAgICAgICAgIGV2ZW50LnBheWxvYWQuaWRzLmluY2x1ZGVzKHRoaXMuY29udGV4dCgpLmlkKVxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnc2hvdy1saXN0LXZpZXcnLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZW50aXR5OiB0aGlzLmVudGl0eURlZi5zb3VyY2VcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy53b3JrZmxvdy5ldmVudHMkLnBpcGUob2ZUeXBlKEFYUEVudGl0eU1vZGlmeUV2ZW50KSkuc3Vic2NyaWJlKGFzeW5jIChldmVudCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICBldmVudC5wYXlsb2FkLmVudGl0eSA9PSB0aGlzLmVudGl0eURlZi5zb3VyY2UgJiZcclxuICAgICAgICAgICAgICAgIGV2ZW50LnBheWxvYWQudmFsdWVzLmlkID09PSB0aGlzLmNvbnRleHQoKS5pZFxyXG4gICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC5zZXQoZXZlbnQucGF5bG9hZC52YWx1ZXMpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHB1YmxpYyBjb250ZXh0ID0gc2lnbmFsPGFueT4oY2xvbmVEZWVwKHRoaXMuZW50aXR5RGF0YSkpO1xyXG5cclxuICAgIHByaXZhdGUgYWN0aW9ucyA9IGNvbXB1dGVkPEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW10+KCgpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lbnRpdHlEZWYuaW50ZXJmYWNlcz8ubWFzdGVyPy5zaW5nbGU/LmFjdGlvbnM/Lm1hcCgodHIpID0+IG5ldyBBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbCh0aGlzLmVudGl0eURlZiwgdHIpKSA/PyBbXTtcclxuICAgIH0pO1xyXG5cclxuICAgIHB1YmxpYyBwcmltYXJ5QWN0aW9ucyA9IGNvbXB1dGVkPEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW10+KCgpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hY3Rpb25zKCkuZmlsdGVyKGMgPT4gYy5wcmlvcml0eSA9PSAncHJpbWFyeScpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcHVibGljIHNlY29uZGFyeUFjdGlvbnMgPSBjb21wdXRlZDxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aW9ucygpLmZpbHRlcihjID0+IGMucHJpb3JpdHkgPT0gJ3NlY29uZGFyeScpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcHVibGljIHNlY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld0dyb3VwVmlld01vZGVsW10+KCgpID0+IHtcclxuICAgICAgICBjb25zdCB2aWV3UHJvcHMgPSB0aGlzLmVudGl0eURlZi5pbnRlcmZhY2VzPy5tYXN0ZXI/LnNpbmdsZT8ucHJvcGVydGllcz8ubWFwKGMgPT4gYy5uYW1lKTtcclxuICAgICAgICBjb25zdCBwcm9wcyA9IHRoaXMuZW50aXR5RGVmLnByb3BlcnRpZXMuZmlsdGVyKGMgPT5cclxuICAgICAgICAgICAgYy5ncm91cElkICYmXHJcbiAgICAgICAgICAgIGMuc2NoZW1hLmhpZGRlbiAhPSB0cnVlICYmXHJcbiAgICAgICAgICAgIHZpZXdQcm9wcz8uaW5jbHVkZXMoYy5uYW1lKVxyXG4gICAgICAgICk7XHJcbiAgICAgICAgY29uc3QgZ3JvdXBzID0gdGhpcy5lbnRpdHlEZWYuaW50ZXJmYWNlcz8ubWFzdGVyPy5zaW5nbGU/LnNlY3Rpb25zPy5maWx0ZXIoZyA9PlxyXG4gICAgICAgICAgICBwcm9wcy5zb21lKHAgPT4gcC5ncm91cElkID09IGcuaWQpXHJcbiAgICAgICAgKSA/PyBbXTtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSBncm91cHM/Lm1hcCgoc2VjdGlvbikgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdHcm91cFZpZXdNb2RlbCh0aGlzLmVudGl0eURlZiwgc2VjdGlvbilcclxuICAgICAgICB9KVxyXG4gICAgICAgIHJldHVybiAocmVzdWx0ID8/IFtdKSBhcyBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3R3JvdXBWaWV3TW9kZWxbXTtcclxuICAgIH0pO1xyXG5cclxuICAgIC8vKioqKioqKioqKioqKioqKioqIFRpdGxlICoqKioqKioqKioqKioqKioqKi8vXHJcbiAgICBwdWJsaWMgdGl0bGUgPSBjb21wdXRlZDxzdHJpbmc+KCgpID0+IHtcclxuICAgICAgICBjb25zdCBzdWdnZXN0ZWRQcm9wcyA9IHRoaXMuZW50aXR5RGVmLnByb3BlcnRpZXMuZmluZCgoYykgPT4gWyd0aXRsZScsICduYW1lJywgJ2NvZGUnXS5pbmNsdWRlcyhjLm5hbWUpKTtcclxuICAgICAgICBsZXQgc3VnZ2VzdGVkRm9ybWF0ID0gJ0l0ZW0gI3t7aWR9fSc7XHJcbiAgICAgICAgaWYgKHN1Z2dlc3RlZFByb3BzKSBzdWdnZXN0ZWRGb3JtYXQgPSBge3ske3N1Z2dlc3RlZFByb3BzLm5hbWV9fX1gO1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm1hdFNlcnZpY2UuZm9ybWF0KHRoaXMuX3ZpZXdEZWYudGl0bGUgPz8gc3VnZ2VzdGVkRm9ybWF0LFxyXG4gICAgICAgICAgICAnc3RyaW5nJyxcclxuICAgICAgICAgICAgdGhpcy5jb250ZXh0KClcclxuICAgICAgICApO1xyXG4gICAgfSk7XHJcbiAgICAvLyoqKioqKioqKioqKioqKioqKiBEZXNjcmlwdGlvbiAqKioqKioqKioqKioqKioqKiovL1xyXG4gICAgcHVibGljIGRlc2NyaXB0aW9uID0gY29tcHV0ZWQ8c3RyaW5nIHwgbnVsbD4oKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl92aWV3RGVmLmRlc2NyaXB0aW9uID8gdGhpcy5mb3JtYXRTZXJ2aWNlLmZvcm1hdCh0aGlzLl92aWV3RGVmLmRlc2NyaXB0aW9uLFxyXG4gICAgICAgICAgICAnc3RyaW5nJyxcclxuICAgICAgICAgICAgdGhpcy5jb250ZXh0KClcclxuICAgICAgICApIDogbnVsbDtcclxuICAgIH0pO1xyXG5cclxuICAgIC8vKioqKioqKioqKioqKioqKioqIEJlYXJkY3J1bWJzICoqKioqKioqKioqKioqKioqKi8vXHJcbiAgICBwdWJsaWMgYmVhcmRjcnVtYnMgPSBjb21wdXRlZDxBWFBCZWFyZENydW1iW10+KCgpID0+IHtcclxuICAgICAgICByZXR1cm4gW1xyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aXRsZTogXCJIb21lXCIsXHJcbiAgICAgICAgICAgICAgICBpY29uOiBcImZhLXNvbGlkIGZhLWhvbWUgYXgtdGV4dC14cyBheC1tZS0yXCIsXHJcbiAgICAgICAgICAgICAgICB1cmw6IFtgLyR7dGhpcy5zZXNzaW9uLmFwcGxpY2F0aW9uPy5uYW1lfWBdXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRpdGxlOiB0aGlzLmVudGl0eURlZi5mb3JtYXRzLnBsdXJhbCA/PyB0aGlzLmVudGl0eURlZi5mb3JtYXRzLmluZGl2aWR1YWwsXHJcbiAgICAgICAgICAgICAgICB1cmw6IFtgLyR7dGhpcy5zZXNzaW9uLmFwcGxpY2F0aW9uPy5uYW1lfWAsICdtJywgYCR7dGhpcy5lbnRpdHlEZWYubW9kdWxlfWAsICdlJywgYCR7dGhpcy5lbnRpdHlEZWYubmFtZX1gLCAnbGlzdCddXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgIHRpdGxlOiB0aGlzLnRpdGxlKCksXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICBdXHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgcHVibGljIHJlbGF0ZWRFbnRpdGllcyA9IGNvbXB1dGVkPEFYUEVudGl0eURldGFpbExpc3RWaWV3TW9kZWxbXT4oKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVudGl0eURlZi5yZWxhdGVkRW50aXRpZXM/Lm1hcChyZSA9PlxyXG4gICAgICAgICAgICBuZXcgQVhQRW50aXR5RGV0YWlsTGlzdFZpZXdNb2RlbCh0aGlzLmluamVjdG9yLCByZSwgeyBlbnRpdHk6IHRoaXMuZW50aXR5RGVmLCBkYXRhOiB0aGlzLmVudGl0eURhdGEgfSlcclxuICAgICAgICApID8/IFtdXHJcbiAgICB9KTtcclxuXHJcblxyXG4gICAgcHVibGljIGFzeW5jIGV4ZWN1dGVDb21tYW5kKGNvbW1hbmROYW1lOiBzdHJpbmcsIGRhdGE6IGFueSA9IG51bGwpIHtcclxuICAgICAgICAvLyBkZWJ1Z2dlclxyXG4gICAgICAgIC8vVE9ETzogc3ludGFjdCBmb3Igd29ya2Zsb3dcclxuICAgICAgICBzd2l0Y2ggKGNvbW1hbmROYW1lKSB7XHJcbiAgICAgICAgICAgIGNhc2UgJ2RlbGV0ZS1lbnRpdHknOlxyXG4gICAgICAgICAgICAgICAgdGhpcy53b3JrZmxvdy5leGVjdXRlKCdkZWxldGUtZW50aXR5Jywge1xyXG4gICAgICAgICAgICAgICAgICAgIGVudGl0eTogdGhpcy5lbnRpdHlEZWYuc291cmNlLFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IFt0aGlzLmNvbnRleHQoKV0sXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICBjYXNlICdtb2RpZnktZW50aXR5LXNlY3Rpb24nOiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLndvcmtmbG93LmV4ZWN1dGUoJ21vZGlmeS1lbnRpdHktc2VjdGlvbicsIHtcclxuICAgICAgICAgICAgICAgICAgICBlbnRpdHk6IHRoaXMuZW50aXR5RGVmLnNvdXJjZSxcclxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiB0aGlzLmNvbnRleHQoKS5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgcHJvcGVydGllczogKGRhdGEgYXMgQVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld0dyb3VwVmlld01vZGVsKS5lZGl0YWJsZVByb3BzKCkubWFwKG0gPT4gbS5uYW1lKCkpLFxyXG4gICAgICAgICAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgYWN0aW9uID0gdGhpcy5hY3Rpb25zKCkuZmluZChjID0+IGMubmFtZSA9PSBjb21tYW5kTmFtZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53b3JrZmxvdy5leGVjdXRlKGNvbW1hbmROYW1lLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudGl0eTogdGhpcy5lbnRpdHlEZWYuc291cmNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBkYXRhOiBhY3Rpb24/LnNjb3BlID09IEFYUEVudGl0eUNvbW1hbmRTY29wZS5JbmRpdmlkdWFsID8gZGF0YSA6IG51bGxcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eURldGFpbFZpZXdNb2RlbEZhY3Rvcnkge1xyXG4gICAgcHJpdmF0ZSBlbnRpdHlTZXJ2aWNlID0gaW5qZWN0KEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSBsYXlvdXQgPSBpbmplY3QoQVhQTGF5b3V0U2VydmljZSk7XHJcbiAgICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgY3JlYXRlKG1vZHVsZU5hbWU6IHN0cmluZywgZW50aXR5TmFtZTogc3RyaW5nLCBpZDogc3RyaW5nKTogUHJvbWlzZTxBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3TW9kZWw+IHtcclxuICAgICAgICBjb25zdCBjb25maWcgPSBhd2FpdCB0aGlzLmVudGl0eVNlcnZpY2UucmVzb2x2ZShtb2R1bGVOYW1lLCBlbnRpdHlOYW1lKTtcclxuICAgICAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyh0cnVlKTtcclxuICAgICAgICBpZiAoY29uZmlnLnF1ZXJpZXMuYnlLZXkpIHtcclxuICAgICAgICAgICAgY29uc3QgZnVuYyA9IGNvbmZpZy5xdWVyaWVzLmJ5S2V5LmV4ZWN1dGUgYXMgRnVuY3Rpb247XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBmdW5jKGlkKTtcclxuICAgICAgICAgICAgdGhpcy5sYXlvdXQuc2V0TmF2aWdhdGlvbkxvYWRpbmcoZmFsc2UpO1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdNb2RlbCh0aGlzLmluamVjdG9yLCBjb25maWcsIGRhdGEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyhmYWxzZSk7XHJcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCdjYW5ub3QgZmV0Y2ggJyk7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY29uc3QgQVhQRW50aXR5RGV0YWlsVmlld01vZGVsUmVzb2x2ZXI6IFJlc29sdmVGbjxQcm9taXNlPEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdNb2RlbD4+ID0gKFxyXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCxcclxuICAgIHNlcnZpY2U6IEFYUEVudGl0eURldGFpbFZpZXdNb2RlbEZhY3RvcnkgPSBpbmplY3QoQVhQRW50aXR5RGV0YWlsVmlld01vZGVsRmFjdG9yeSlcclxuKTogUHJvbWlzZTxBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3TW9kZWw+ID0+IHtcclxuICAgIGNvbnN0IG1vZHVsZU5hbWUgPSByb3V0ZS5wYXJlbnQ/LnBhcmFtTWFwLmdldCgnbW9kdWxlJykgYXMgc3RyaW5nO1xyXG4gICAgY29uc3QgZW50aXR5TmFtZSA9IHJvdXRlLnBhcmFtTWFwLmdldCgnZW50aXR5JykgYXMgc3RyaW5nO1xyXG4gICAgY29uc3QgaWQgPSByb3V0ZS5wYXJhbU1hcC5nZXQoJ2lkJykgYXMgc3RyaW5nO1xyXG4gICAgLy9cclxuICAgIHJldHVybiBzZXJ2aWNlLmNyZWF0ZShtb2R1bGVOYW1lLCBlbnRpdHlOYW1lLCBpZCk7XHJcbn07XHJcblxyXG5cclxuIl19
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LW1hc3Rlci1zaW5nbGUudmlld21vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9wbGF0Zm9ybS9sYXlvdXQvZW50aXR5L3NyYy9saWIvZW50aXR5LW1hc3Rlci1zaW5nbGUudmlld21vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbEQsT0FBTyxFQUFjLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0YsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzFELE9BQU8sRUFBRSxrQ0FBa0MsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXRFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlFLE9BQU8sRUFBNEIscUJBQXFCLEVBQXdGLGdCQUFnQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbE0sT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBSTFDLE1BQU0sT0FBTyx1Q0FBdUM7SUFFaEQsWUFBb0IsTUFBaUIsRUFBVSxPQUE2QjtRQUF4RCxXQUFNLEdBQU4sTUFBTSxDQUFXO1FB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LEVBQUUsQ0FBQyxDQUFDO0FBQ3RELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRm9ybWF0U2VydmljZSB9IGZyb20gXCJAYWNvcmV4L2NvcmUvZm9ybWF0XCI7XHJcbmltcG9ydCB7IGNsb25lRGVlcCwgbWVyZ2UsIHNldCB9IGZyb20gXCJsb2Rhc2gtZXNcIjtcclxuaW1wb3J0IHsgRGVzdHJveVJlZiwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIGNvbXB1dGVkLCBpbmplY3QsIHNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIFJlc29sdmVGbiwgUm91dGVyU3RhdGVTbmFwc2hvdCB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlLCBvZlR5cGUgfSBmcm9tIFwiQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvd1wiO1xyXG5pbXBvcnQgeyBBWFBTZXNzaW9uU2VydmljZSB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL2F1dGhcIjtcclxuaW1wb3J0IHsgQVhQRW50aXR5RGVmaW5pdGlvblJlZ2lzdHJ5U2VydmljZSB9IGZyb20gXCIuL2VudGl0eS1yZWdpc3Rlcnkuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbCB9IGZyb20gXCIuL2VudGl0eS52aWV3bW9kZWxcIjtcclxuaW1wb3J0IHsgQVhQV2lkZ2V0Tm9kZSB9IGZyb20gXCJAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyXCI7XHJcbmltcG9ydCB7IEFYUEVudGl0eURlbGV0ZWRFdmVudCB9IGZyb20gXCIuL3dvcmtmbG93cy9kZWxldGUtZW50aXR5LndvcmtmbG93XCI7XHJcbmltcG9ydCB7IEFYUEVudGl0eU1vZGlmeUV2ZW50IH0gZnJvbSBcIi4vd29ya2Zsb3dzL21vZGlmeS1zZWN0aW9uLndvcmtmbG93XCI7XHJcbmltcG9ydCB7IEFYUEVudGl0eURldGFpbExpc3RWaWV3TW9kZWwgfSBmcm9tIFwiLi9lbnRpdHktZGV0YWlsLWxpc3Qudmlld21vZGVsXCI7XHJcbmltcG9ydCB7IEFYUEJlYXJkQ3J1bWIsIEFYUEVudGl0eSwgQVhQRW50aXR5Q29tbWFuZFNjb3BlLCBBWFBFbnRpdHlQcm9wZXJ0eSwgQVhQRW50aXR5UHJvcGVydHlWaWV3LCBBWFBFbnRpdHlTZWN0aW9uVmlldywgQVhQR3JpZExheW91dE9wdGlvbnMsIEFYUExheW91dFNlcnZpY2UgfSBmcm9tIFwiQGFjb3JleC9wbGF0Zm9ybS9jb21tb25cIjtcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wXCI7XHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdHcm91cFZpZXdNb2RlbCB7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbnRpdHk6IEFYUEVudGl0eSwgcHJpdmF0ZSBzZWN0aW9uOiBBWFBFbnRpdHlTZWN0aW9uVmlldykge1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBncm91cCA9IHRoaXMuZW50aXR5Lmdyb3Vwcz8uZmluZChjID0+IGMuaWQgPT0gdGhpcy5zZWN0aW9uLmlkKSE7XHJcbiAgICBuYW1lID0gc2lnbmFsKHRoaXMuZ3JvdXAuaWQpO1xyXG4gICAgaXNMb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcclxuXHJcbiAgICB0aXRsZSA9IGNvbXB1dGVkPHN0cmluZz4oKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmdyb3VwLnRpdGxlID8/IHRoaXMuZ3JvdXAuaWQ7XHJcbiAgICB9KTtcclxuXHJcbiAgICBkZXNjcmlwdGlvbiA9IGNvbXB1dGVkPHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQ+KCgpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5ncm91cC5kZXNjcmlwdGlvbjtcclxuICAgIH0pO1xyXG5cclxuICAgIGxheW91dCA9IGNvbXB1dGVkPEFYUEdyaWRMYXlvdXRPcHRpb25zPigoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc291cmNlID0gY2xvbmVEZWVwKHRoaXMuc2VjdGlvbi5sYXlvdXQgPz8ge30pIGFzIG9iamVjdDtcclxuICAgICAgICBzZXQoc291cmNlLCBcInBvc2l0aW9ucy5kZWZhdWx0LmNvbFNwYW5cIiwgMTIpO1xyXG4gICAgICAgIHJldHVybiBzb3VyY2UgYXMgQVhQR3JpZExheW91dE9wdGlvbnM7XHJcbiAgICB9KTtcclxuXHJcbiAgICBwcm9wcyA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgICAgICBjb25zdCB7IHByb3BlcnRpZXMsIGludGVyZmFjZXMgfSA9IHRoaXMuZW50aXR5O1xyXG4gICAgICAgIGNvbnN0IGdyb3VwUHJvcGVydGllcyA9IHByb3BlcnRpZXNcclxuICAgICAgICAgICAgLmZpbHRlcigoeyBncm91cElkLCBzY2hlbWEgfSkgPT4gZ3JvdXBJZCA9PT0gdGhpcy5ncm91cC5pZCAmJiAhc2NoZW1hLmhpZGRlbilcclxuICAgICAgICAgICAgLm1hcCgoeyBuYW1lIH0pID0+IG5hbWUpO1xyXG5cclxuICAgICAgICBjb25zdCB2aWV3UHJvcGVydGllcyA9IGludGVyZmFjZXM/Lm1hc3Rlcj8uc2luZ2xlPy5wcm9wZXJ0aWVzPy5maWx0ZXIoKHsgbmFtZSB9KSA9PlxyXG4gICAgICAgICAgICBncm91cFByb3BlcnRpZXMuaW5jbHVkZXMobmFtZSlcclxuICAgICAgICApID8/IFtdO1xyXG5cclxuICAgICAgICByZXR1cm4gdmlld1Byb3BlcnRpZXMubWFwKHByb3AgPT5cclxuICAgICAgICAgICAgbmV3IEFYUEVudGl0eU1hc3RlclNpbmdsZUVsZW1lbnRWaWV3TW9kZWwodGhpcy5lbnRpdHksIHRoaXMsIHByb3ApXHJcbiAgICAgICAgKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGVkaXRhYmxlUHJvcHMgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgeyBwcm9wZXJ0aWVzLCBpbnRlcmZhY2VzIH0gPSB0aGlzLmVudGl0eTtcclxuICAgICAgICBjb25zdCBlZGl0YWJsZVByb3BlcnR5TmFtZXMgPSBpbnRlcmZhY2VzPy5tYXN0ZXI/LnVwZGF0ZT8ucHJvcGVydGllcz8ubWFwKCh7IG5hbWUgfSkgPT4gbmFtZSkgPz8gW107XHJcblxyXG4gICAgICAgIGNvbnN0IGZpbHRlcmVkUHJvcGVydGllcyA9IHByb3BlcnRpZXMuZmlsdGVyKCh7IGdyb3VwSWQsIHNjaGVtYSwgbmFtZSB9KSA9PlxyXG4gICAgICAgICAgICBncm91cElkID09PSB0aGlzLmdyb3VwLmlkICYmICFzY2hlbWEuaGlkZGVuICYmIGVkaXRhYmxlUHJvcGVydHlOYW1lcy5pbmNsdWRlcyhuYW1lKVxyXG4gICAgICAgICk7XHJcblxyXG4gICAgICAgIHJldHVybiBmaWx0ZXJlZFByb3BlcnRpZXMubWFwKHByb3AgPT5cclxuICAgICAgICAgICAgbmV3IEFYUEVudGl0eU1hc3RlclNpbmdsZUVsZW1lbnRWaWV3TW9kZWwodGhpcy5lbnRpdHksIHRoaXMsIHByb3ApXHJcbiAgICAgICAgKTtcclxuICAgIH0pO1xyXG5cclxuICAgIGVkaXRhYmxlID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmVkaXRhYmxlUHJvcHMoKS5sZW5ndGggPiAwXHJcbiAgICB9KTtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1hc3RlclNpbmdsZUVsZW1lbnRWaWV3TW9kZWwge1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZW50aXR5OiBBWFBFbnRpdHksIHByaXZhdGUgc2VjdGlvbjogQVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld0dyb3VwVmlld01vZGVsLCBwcml2YXRlIHByb3BlcnR5VmlldzogQVhQRW50aXR5UHJvcGVydHlWaWV3KSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgcHJvcGVydHkgPSB0aGlzLmVudGl0eS5wcm9wZXJ0aWVzLmZpbmQoYyA9PiBjLm5hbWUgPT0gdGhpcy5wcm9wZXJ0eVZpZXcubmFtZSkhXHJcbiAgICBuYW1lID0gc2lnbmFsKHRoaXMucHJvcGVydHkubmFtZSk7XHJcbiAgICB0aXRsZSA9IHNpZ25hbCh0aGlzLnByb3BlcnR5LnRpdGxlKTtcclxuICAgIGRlc2NyaXB0aW9uID0gc2lnbmFsKHRoaXMucHJvcGVydHkuZGVzY3JpcHRpb24pO1xyXG5cclxuXHJcbiAgICBsYXlvdXQgPSBjb21wdXRlZDxBWFBHcmlkTGF5b3V0T3B0aW9ucz4oKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHZpZXdQcm9wID0gdGhpcy5lbnRpdHkuaW50ZXJmYWNlcz8ubWFzdGVyPy5zaW5nbGU/LnByb3BlcnRpZXM/LmZpbmQoYyA9PiBjLm5hbWUgPT0gdGhpcy5wcm9wZXJ0eS5uYW1lKTtcclxuICAgICAgICBjb25zdCBzb3VyY2UgPSBjbG9uZURlZXAodmlld1Byb3A/LmxheW91dCA/PyB7fSkgYXMgb2JqZWN0O1xyXG4gICAgICAgIHNldChzb3VyY2UsIFwicG9zaXRpb25zLmRlZmF1bHQuY29sU3BhblwiLCAxMik7XHJcbiAgICAgICAgcmV0dXJuIHNvdXJjZSBhcyBBWFBHcmlkTGF5b3V0T3B0aW9ucztcclxuICAgIH0pO1xyXG5cclxuICAgIG5vZGUgPSBjb21wdXRlZDxBWFBXaWRnZXROb2RlPigoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc2NoZW1hID0gdGhpcy5wcm9wZXJ0eS5zY2hlbWEhO1xyXG4gICAgICAgIGNvbnN0IHdpZGdldCA9IHNjaGVtYS5pbnRlcmZhY2UhO1xyXG4gICAgICAgIHJldHVybiB7XHJcbiAgICAgICAgICAgIHR5cGU6IHdpZGdldC50eXBlLFxyXG4gICAgICAgICAgICBtb2RlOiAndmlldycsXHJcbiAgICAgICAgICAgIHBhdGg6IHRoaXMubmFtZSgpLFxyXG4gICAgICAgICAgICBjaGlsZHJlbjogd2lkZ2V0LmNoaWxkcmVuLFxyXG4gICAgICAgICAgICBmb3JtdWxhOiB3aWRnZXQuZm9ybXVsYSxcclxuICAgICAgICAgICAgb3B0aW9uczogbWVyZ2UoXHJcbiAgICAgICAgICAgICAgICBzY2hlbWEuaW50ZXJmYWNlPy5vcHRpb25zLFxyXG4gICAgICAgICAgICAgICAgLy90aGlzLnByb3BlcnR5Lm9wdGlvbnM/LmNyZWF0ZT8ud2lkZ2V0LFxyXG4gICAgICAgICAgICAgICAgeyB2YWxpZGF0aW9uUnVsZXM6IHRoaXMucHJvcGVydHkudmFsaWRhdGlvbnMgfSxcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgIH0gYXMgQVhQV2lkZ2V0Tm9kZTtcclxuICAgIH0pXHJcbn1cclxuXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdNb2RlbCB7XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbnRpdHlEZWYgPSBjbG9uZURlZXAodGhpcy5jb25maWcpITtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3ZpZXdEZWYgPSBjbG9uZURlZXAodGhpcy5lbnRpdHlEZWYuaW50ZXJmYWNlcz8ubWFzdGVyPy5zaW5nbGUpIVxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZXNzaW9uID0gdGhpcy5pbmplY3Rvci5nZXQoQVhQU2Vzc2lvblNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtYXRTZXJ2aWNlID0gdGhpcy5pbmplY3Rvci5nZXQoQVhGb3JtYXRTZXJ2aWNlKVxyXG4gICAgcHJpdmF0ZSByZWFkb25seSB3b3JrZmxvdyA9IHRoaXMuaW5qZWN0b3IuZ2V0KEFYUFdvcmtmbG93U2VydmljZSlcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveWVkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICBwdWJsaWMgZXZlbnRzJDogU3ViamVjdDx7IGFjdGlvbjogc3RyaW5nIH0+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcclxuICAgICAgICBwcml2YXRlIGNvbmZpZzogQVhQRW50aXR5LFxyXG4gICAgICAgIHByaXZhdGUgZW50aXR5RGF0YTogYW55LFxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy53b3JrZmxvdy5ldmVudHMkXHJcbiAgICAgICAgICAgIC5waXBlKG9mVHlwZShBWFBFbnRpdHlEZWxldGVkRXZlbnQpKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKFxyXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnBheWxvYWQuZW50aXR5ID09IHRoaXMuZW50aXR5RGVmLnNvdXJjZSAmJlxyXG4gICAgICAgICAgICAgICAgICAgIGV2ZW50LnBheWxvYWQuaWRzLmluY2x1ZGVzKHRoaXMuY29udGV4dCgpLmlkKVxyXG4gICAgICAgICAgICAgICAgKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy53b3JrZmxvdy5leGVjdXRlKCdzaG93LWxpc3QtdmlldycsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5OiB0aGlzLmVudGl0eURlZi5zb3VyY2VcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy53b3JrZmxvdy5ldmVudHMkXHJcbiAgICAgICAgICAgIC5waXBlKG9mVHlwZShBWFBFbnRpdHlNb2RpZnlFdmVudCkpXHJcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoYXN5bmMgKGV2ZW50KSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoXHJcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucGF5bG9hZC5lbnRpdHkgPT0gdGhpcy5lbnRpdHlEZWYuc291cmNlICYmXHJcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQucGF5bG9hZC52YWx1ZXMuaWQgPT09IHRoaXMuY29udGV4dCgpLmlkXHJcbiAgICAgICAgICAgICAgICApIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQuc2V0KGV2ZW50LnBheWxvYWQudmFsdWVzKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG5cclxuICAgIHB1YmxpYyBjb250ZXh0ID0gc2lnbmFsPGFueT4oY2xvbmVEZWVwKHRoaXMuZW50aXR5RGF0YSkpO1xyXG5cclxuICAgIHByaXZhdGUgYWN0aW9ucyA9IGNvbXB1dGVkPEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW10+KCgpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lbnRpdHlEZWYuaW50ZXJmYWNlcz8ubWFzdGVyPy5zaW5nbGU/LmFjdGlvbnM/Lm1hcCgodHIpID0+IG5ldyBBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbCh0aGlzLmVudGl0eURlZiwgdHIpKSA/PyBbXTtcclxuICAgIH0pO1xyXG5cclxuICAgIHB1YmxpYyBwcmltYXJ5QWN0aW9ucyA9IGNvbXB1dGVkPEFYUEVudGl0eUNvbW1hbmRUcmlnZ2VyVmlld01vZGVsW10+KCgpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hY3Rpb25zKCkuZmlsdGVyKGMgPT4gYy5wcmlvcml0eSA9PSAncHJpbWFyeScpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcHVibGljIHNlY29uZGFyeUFjdGlvbnMgPSBjb21wdXRlZDxBWFBFbnRpdHlDb21tYW5kVHJpZ2dlclZpZXdNb2RlbFtdPigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuYWN0aW9ucygpLmZpbHRlcihjID0+IGMucHJpb3JpdHkgPT0gJ3NlY29uZGFyeScpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcHVibGljIHNlY3Rpb25zID0gY29tcHV0ZWQ8QVhQRW50aXR5TWFzdGVyU2luZ2xlVmlld0dyb3VwVmlld01vZGVsW10+KCgpID0+IHtcclxuICAgICAgICBjb25zdCB7IGludGVyZmFjZXMsIHByb3BlcnRpZXMgfSA9IHRoaXMuZW50aXR5RGVmO1xyXG4gICAgICAgIGNvbnN0IHZpZXdQcm9wcyA9IGludGVyZmFjZXM/Lm1hc3Rlcj8uc2luZ2xlPy5wcm9wZXJ0aWVzPy5tYXAoKHsgbmFtZSB9KSA9PiBuYW1lKSA/PyBbXTtcclxuXHJcbiAgICAgICAgY29uc3QgZmlsdGVyZWRQcm9wZXJ0aWVzID0gcHJvcGVydGllcy5maWx0ZXIoKHsgZ3JvdXBJZCwgc2NoZW1hLCBuYW1lIH0pID0+XHJcbiAgICAgICAgICAgIGdyb3VwSWQgJiYgIXNjaGVtYS5oaWRkZW4gJiYgdmlld1Byb3BzLmluY2x1ZGVzKG5hbWUpXHJcbiAgICAgICAgKTtcclxuXHJcbiAgICAgICAgY29uc3QgZ3JvdXBzID0gaW50ZXJmYWNlcz8ubWFzdGVyPy5zaW5nbGU/LnNlY3Rpb25zPy5maWx0ZXIoKHsgaWQgfSkgPT5cclxuICAgICAgICAgICAgZmlsdGVyZWRQcm9wZXJ0aWVzLnNvbWUoKHsgZ3JvdXBJZCB9KSA9PiBncm91cElkID09PSBpZClcclxuICAgICAgICApID8/IFtdO1xyXG5cclxuICAgICAgICByZXR1cm4gZ3JvdXBzLm1hcChzZWN0aW9uID0+XHJcbiAgICAgICAgICAgIG5ldyBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3R3JvdXBWaWV3TW9kZWwodGhpcy5lbnRpdHlEZWYsIHNlY3Rpb24pXHJcbiAgICAgICAgKTtcclxuICAgIH0pO1xyXG5cclxuXHJcbiAgICAvLyoqKioqKioqKioqKioqKioqKiBUaXRsZSAqKioqKioqKioqKioqKioqKiovL1xyXG4gICAgcHVibGljIHRpdGxlID0gY29tcHV0ZWQ8c3RyaW5nPigoKSA9PiB7XHJcbiAgICAgICAgY29uc3Qgc3VnZ2VzdGVkUHJvcHMgPSB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbmQoKGMpID0+IFsndGl0bGUnLCAnbmFtZScsICdjb2RlJ10uaW5jbHVkZXMoYy5uYW1lKSk7XHJcbiAgICAgICAgbGV0IHN1Z2dlc3RlZEZvcm1hdCA9ICdJdGVtICN7e2lkfX0nO1xyXG4gICAgICAgIGlmIChzdWdnZXN0ZWRQcm9wcykgc3VnZ2VzdGVkRm9ybWF0ID0gYHt7JHtzdWdnZXN0ZWRQcm9wcy5uYW1lfX19YDtcclxuICAgICAgICByZXR1cm4gdGhpcy5mb3JtYXRTZXJ2aWNlLmZvcm1hdCh0aGlzLl92aWV3RGVmLnRpdGxlID8/IHN1Z2dlc3RlZEZvcm1hdCxcclxuICAgICAgICAgICAgJ3N0cmluZycsXHJcbiAgICAgICAgICAgIHRoaXMuY29udGV4dCgpXHJcbiAgICAgICAgKTtcclxuICAgIH0pO1xyXG4gICAgLy8qKioqKioqKioqKioqKioqKiogRGVzY3JpcHRpb24gKioqKioqKioqKioqKioqKioqLy9cclxuICAgIHB1YmxpYyBkZXNjcmlwdGlvbiA9IGNvbXB1dGVkPHN0cmluZyB8IG51bGw+KCgpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdmlld0RlZi5kZXNjcmlwdGlvbiA/IHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQodGhpcy5fdmlld0RlZi5kZXNjcmlwdGlvbixcclxuICAgICAgICAgICAgJ3N0cmluZycsXHJcbiAgICAgICAgICAgIHRoaXMuY29udGV4dCgpXHJcbiAgICAgICAgKSA6IG51bGw7XHJcbiAgICB9KTtcclxuXHJcbiAgICAvLyoqKioqKioqKioqKioqKioqKiBCZWFyZGNydW1icyAqKioqKioqKioqKioqKioqKiovL1xyXG4gICAgcHVibGljIGJlYXJkY3J1bWJzID0gY29tcHV0ZWQ8QVhQQmVhcmRDcnVtYltdPigoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIFtcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgICAgdGl0bGU6IFwiSG9tZVwiLFxyXG4gICAgICAgICAgICAgICAgaWNvbjogXCJmYS1zb2xpZCBmYS1ob21lIGF4LXRleHQteHMgYXgtbWUtMlwiLFxyXG4gICAgICAgICAgICAgICAgdXJsOiBbYC8ke3RoaXMuc2Vzc2lvbi5hcHBsaWNhdGlvbj8ubmFtZX1gXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aXRsZTogdGhpcy5lbnRpdHlEZWYuZm9ybWF0cy5wbHVyYWwgPz8gdGhpcy5lbnRpdHlEZWYuZm9ybWF0cy5pbmRpdmlkdWFsLFxyXG4gICAgICAgICAgICAgICAgdXJsOiBbYC8ke3RoaXMuc2Vzc2lvbi5hcHBsaWNhdGlvbj8ubmFtZX1gLCAnbScsIGAke3RoaXMuZW50aXR5RGVmLm1vZHVsZX1gLCAnZScsIGAke3RoaXMuZW50aXR5RGVmLm5hbWV9YCwgJ2xpc3QnXVxyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICB7XHJcbiAgICAgICAgICAgICAgICB0aXRsZTogdGhpcy50aXRsZSgpLFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgXVxyXG4gICAgfSk7XHJcblxyXG5cclxuICAgIHB1YmxpYyByZWxhdGVkRW50aXRpZXMgPSBjb21wdXRlZDxBWFBFbnRpdHlEZXRhaWxMaXN0Vmlld01vZGVsW10+KCgpID0+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5lbnRpdHlEZWYucmVsYXRlZEVudGl0aWVzPy5tYXAocmUgPT5cclxuICAgICAgICAgICAgbmV3IEFYUEVudGl0eURldGFpbExpc3RWaWV3TW9kZWwodGhpcy5pbmplY3RvciwgcmUsIHsgZW50aXR5OiB0aGlzLmVudGl0eURlZiwgZGF0YTogdGhpcy5lbnRpdHlEYXRhIH0pXHJcbiAgICAgICAgKSA/PyBbXVxyXG4gICAgfSk7XHJcblxyXG5cclxuICAgIHB1YmxpYyBhc3luYyBleGVjdXRlQ29tbWFuZChjb21tYW5kTmFtZTogc3RyaW5nLCBkYXRhOiBhbnkgPSBudWxsKSB7XHJcbiAgICAgICAgLy9UT0RPOiBzeW50YWN0IGZvciB3b3JrZmxvd1xyXG4gICAgICAgIHN3aXRjaCAoY29tbWFuZE5hbWUpIHtcclxuICAgICAgICAgICAgY2FzZSAnZGVsZXRlLWVudGl0eSc6XHJcbiAgICAgICAgICAgICAgICB0aGlzLndvcmtmbG93LmV4ZWN1dGUoJ2RlbGV0ZS1lbnRpdHknLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgZW50aXR5OiB0aGlzLmVudGl0eURlZi5zb3VyY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YTogW3RoaXMuY29udGV4dCgpXSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIGNhc2UgJ21vZGlmeS1lbnRpdHktc2VjdGlvbic6IHtcclxuICAgICAgICAgICAgICAgIHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnbW9kaWZ5LWVudGl0eS1zZWN0aW9uJywge1xyXG4gICAgICAgICAgICAgICAgICAgIGVudGl0eTogdGhpcy5lbnRpdHlEZWYuc291cmNlLFxyXG4gICAgICAgICAgICAgICAgICAgIGRhdGE6IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IHRoaXMuY29udGV4dCgpLmlkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0aWVzOiAoZGF0YSBhcyBBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3R3JvdXBWaWV3TW9kZWwpLmVkaXRhYmxlUHJvcHMoKS5tYXAobSA9PiBtLm5hbWUoKSksXHJcbiAgICAgICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBhY3Rpb24gPSB0aGlzLmFjdGlvbnMoKS5maW5kKGMgPT4gYy5uYW1lID09IGNvbW1hbmROYW1lKTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLndvcmtmbG93LmV4ZWN1dGUoY29tbWFuZE5hbWUsIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgZW50aXR5OiB0aGlzLmVudGl0eURlZi5zb3VyY2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGE6IGFjdGlvbj8uc2NvcGUgPT0gQVhQRW50aXR5Q29tbWFuZFNjb3BlLkluZGl2aWR1YWwgPyB0aGlzLmNvbnRleHQoKSA6IG51bGxcclxuICAgICAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgIH1cclxuICAgIC8vXHJcbiAgICAvL1xyXG4gICAgZGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmRlc3Ryb3llZC5uZXh0KCk7XHJcbiAgICAgICAgdGhpcy5kZXN0cm95ZWQuY29tcGxldGUoKTtcclxuICAgIH1cclxufVxyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIEFYUEVudGl0eURldGFpbFZpZXdNb2RlbEZhY3Rvcnkge1xyXG4gICAgcHJpdmF0ZSBlbnRpdHlTZXJ2aWNlID0gaW5qZWN0KEFYUEVudGl0eURlZmluaXRpb25SZWdpc3RyeVNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSBsYXlvdXQgPSBpbmplY3QoQVhQTGF5b3V0U2VydmljZSk7XHJcbiAgICBwcml2YXRlIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcclxuXHJcbiAgICBwdWJsaWMgYXN5bmMgY3JlYXRlKG1vZHVsZU5hbWU6IHN0cmluZywgZW50aXR5TmFtZTogc3RyaW5nLCBpZDogc3RyaW5nKTogUHJvbWlzZTxBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3TW9kZWw+IHtcclxuICAgICAgICBjb25zdCBjb25maWcgPSBhd2FpdCB0aGlzLmVudGl0eVNlcnZpY2UucmVzb2x2ZShtb2R1bGVOYW1lLCBlbnRpdHlOYW1lKTtcclxuICAgICAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyh0cnVlKTtcclxuICAgICAgICBpZiAoY29uZmlnLnF1ZXJpZXMuYnlLZXkpIHtcclxuICAgICAgICAgICAgY29uc3QgZnVuYyA9IGNvbmZpZy5xdWVyaWVzLmJ5S2V5LmV4ZWN1dGUgYXMgRnVuY3Rpb247XHJcbiAgICAgICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCBmdW5jKGlkKTtcclxuICAgICAgICAgICAgdGhpcy5sYXlvdXQuc2V0TmF2aWdhdGlvbkxvYWRpbmcoZmFsc2UpO1xyXG4gICAgICAgICAgICByZXR1cm4gbmV3IEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdNb2RlbCh0aGlzLmluamVjdG9yLCBjb25maWcsIGRhdGEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmxheW91dC5zZXROYXZpZ2F0aW9uTG9hZGluZyhmYWxzZSk7XHJcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KCdjYW5ub3QgZmV0Y2ggJyk7XHJcbiAgICB9XHJcbn1cclxuXHJcblxyXG5leHBvcnQgY29uc3QgQVhQRW50aXR5RGV0YWlsVmlld01vZGVsUmVzb2x2ZXI6IFJlc29sdmVGbjxQcm9taXNlPEFYUEVudGl0eU1hc3RlclNpbmdsZVZpZXdNb2RlbD4+ID0gKFxyXG4gICAgcm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgICBzdGF0ZTogUm91dGVyU3RhdGVTbmFwc2hvdCxcclxuICAgIHNlcnZpY2U6IEFYUEVudGl0eURldGFpbFZpZXdNb2RlbEZhY3RvcnkgPSBpbmplY3QoQVhQRW50aXR5RGV0YWlsVmlld01vZGVsRmFjdG9yeSlcclxuKTogUHJvbWlzZTxBWFBFbnRpdHlNYXN0ZXJTaW5nbGVWaWV3TW9kZWw+ID0+IHtcclxuICAgIGNvbnN0IG1vZHVsZU5hbWUgPSByb3V0ZS5wYXJlbnQ/LnBhcmFtTWFwLmdldCgnbW9kdWxlJykgYXMgc3RyaW5nO1xyXG4gICAgY29uc3QgZW50aXR5TmFtZSA9IHJvdXRlLnBhcmFtTWFwLmdldCgnZW50aXR5JykgYXMgc3RyaW5nO1xyXG4gICAgY29uc3QgaWQgPSByb3V0ZS5wYXJhbU1hcC5nZXQoJ2lkJykgYXMgc3RyaW5nO1xyXG4gICAgLy9cclxuICAgIHJldHVybiBzZXJ2aWNlLmNyZWF0ZShtb2R1bGVOYW1lLCBlbnRpdHlOYW1lLCBpZCk7XHJcbn07XHJcblxyXG5cclxuIl19
@@ -1,7 +1,7 @@
1
1
  import { AXSelectBoxModule } from '@acorex/components/select-box';
2
2
  import { AXPLayoutBuilderService, AXPWidgetBase } from '@acorex/platform/layout/builder';
3
3
  import { CommonModule } from '@angular/common';
4
- import { ChangeDetectionStrategy, Component, computed, inject, Injector, signal, ViewChild } from '@angular/core';
4
+ import { ChangeDetectionStrategy, Component, computed, DestroyRef, inject, Injector, signal, ViewChild } from '@angular/core';
5
5
  import { FormsModule } from '@angular/forms';
6
6
  import { AXP_ENTITY_DEFINITION_LOADER } from '../../entity.config';
7
7
  import { AXTextBoxComponent, AXTextBoxModule } from '@acorex/components/text-box';
@@ -15,6 +15,7 @@ import { AXLoadingModule } from '@acorex/components/loading';
15
15
  import { get } from 'lodash-es';
16
16
  import { AXValidationModule } from '@acorex/core/validation';
17
17
  import { AXFormModule } from '@acorex/components/form';
18
+ import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
18
19
  import * as i0 from "@angular/core";
19
20
  import * as i1 from "@angular/forms";
20
21
  import * as i2 from "@acorex/components/text-box";
@@ -32,6 +33,7 @@ export class AXPLookupWidgetEditComponent extends AXPWidgetBase {
32
33
  this.formatService = inject(AXFormatService);
33
34
  this.popupService = inject(AXPopupService);
34
35
  this.builderService = inject(AXPLayoutBuilderService);
36
+ this.destroyRef = inject(DestroyRef);
35
37
  this.displayText = signal("");
36
38
  this.selectedItem = signal(null);
37
39
  this.searchTerm = signal(null);
@@ -57,10 +59,14 @@ export class AXPLookupWidgetEditComponent extends AXPWidgetBase {
57
59
  else if (value != null) {
58
60
  await this.findByValue();
59
61
  }
60
- this.builderService.onChanged.subscribe(async (c) => {
62
+ //
63
+ this.builderService
64
+ .onChanged
65
+ .pipe(takeUntilDestroyed(this.destroyRef))
66
+ .subscribe(async (c) => {
61
67
  if (c.path == this.path) {
62
- console.log(c, this.getValue());
63
- await this.findByValue();
68
+ if (this.getValue())
69
+ await this.findByValue();
64
70
  }
65
71
  });
66
72
  }
@@ -139,12 +145,17 @@ export class AXPLookupWidgetEditComponent extends AXPWidgetBase {
139
145
  this.builderService.setValue(i, item);
140
146
  }
141
147
  else {
142
- this.builderService.setValue(i.target, get(item, i.source));
148
+ const key = get(item, i.source);
149
+ this.builderService.setValue(i.target, key);
143
150
  }
144
151
  });
145
152
  }
146
153
  }
147
154
  }
155
+ handleClearClick() {
156
+ this.clear();
157
+ this.setValue(null);
158
+ }
148
159
  clear() {
149
160
  this.searchTerm.set('');
150
161
  this.displayText.set('');
@@ -156,6 +167,8 @@ export class AXPLookupWidgetEditComponent extends AXPWidgetBase {
156
167
  @for (validation of validationRules; track $index) {
157
168
  <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
158
169
  }
170
+ <ax-clear-button (click)="handleClearClick()"></ax-clear-button>
171
+
159
172
  <ax-suffix>
160
173
  <ax-button color="ghost" look="twotone" [disabled]="isLoading()" (onClick)="handleOnClick($event)">
161
174
  @if(isLoading())
@@ -169,7 +182,7 @@ export class AXPLookupWidgetEditComponent extends AXPWidgetBase {
169
182
  </ax-button>
170
183
  </ax-suffix>
171
184
  </ax-text-box>
172
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i2.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i5.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i6.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
185
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: AXSelectBoxModule }, { kind: "ngmodule", type: AXTextBoxModule }, { kind: "component", type: i2.AXTextBoxComponent, selector: "ax-text-box", inputs: ["disabled", "tabIndex", "readonly", "value", "state", "name", "id", "placeholder", "maxLength", "allowNull", "type", "autoComplete", "look", "mask-options", "class"], outputs: ["onBlur", "onFocus", "valueChange", "stateChange", "onValueChanged", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: AXButtonModule }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorClearButtonComponent, selector: "ax-clear-button", inputs: ["icon"] }, { kind: "component", type: i4.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "ngmodule", type: AXLoadingModule }, { kind: "component", type: i5.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "ngmodule", type: AXValidationModule }, { kind: "ngmodule", type: AXFormModule }, { kind: "directive", type: i6.AXValidationRuleDirective, selector: "ax-validation-rule", inputs: ["rule", "options", "message"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
173
186
  }
174
187
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImport: i0, type: AXPLookupWidgetEditComponent, decorators: [{
175
188
  type: Component,
@@ -179,6 +192,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
179
192
  @for (validation of validationRules; track $index) {
180
193
  <ax-validation-rule [rule]="validation.rule" [message]="validation.options?.message" [options]="validation.options"></ax-validation-rule>
181
194
  }
195
+ <ax-clear-button (click)="handleClearClick()"></ax-clear-button>
196
+
182
197
  <ax-suffix>
183
198
  <ax-button color="ghost" look="twotone" [disabled]="isLoading()" (onClick)="handleOnClick($event)">
184
199
  @if(isLoading())
@@ -212,4 +227,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
212
227
  type: ViewChild,
213
228
  args: [AXTextBoxComponent]
214
229
  }] } });
215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dpZGdldHMvbG9va3VwLXdpZGdldC9sb29rdXAtd2lkZ2V0LWVkaXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQWMsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pJLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZUFBZSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDbEYsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUQsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdEYsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFdEYsT0FBTyxFQUFFLGVBQWUsRUFB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dUVBeERuQjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JULDJEQUlDLFlBQVksOEJBQ1osV0FBVyw4VkFDWCxpQkFBaUIsOEJBQ2pCLGVBQWUscWJBQ2YsY0FBYyw2VUFDZCxpQkFBaUIsdVZBQ2pCLGVBQWUsOEtBQ2Ysa0JBQWtCLDhCQUNsQixZQUFZOzsyRkFJSCw0QkFBNEI7a0JBbkN4QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JUO29CQUNELFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixZQUFZO3FCQUNiO29CQUNELE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDO2lCQUMzQzs4QkF3QkMsT0FBTztzQkFETixTQUFTO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ2xpY2tFdmVudCwgQVhEYXRhU291cmNlLCBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24sIEFYRXZlbnQsIEFYRm9jdXNFdmVudCwgQVhIdG1sRXZlbnQsIEFYVmFsdWVDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcclxuaW1wb3J0IHsgQVhTZWxlY3RCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VsZWN0LWJveCc7XHJcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJTZXJ2aWNlLCBBWFBXaWRnZXRCYXNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBFbGVtZW50UmVmLCBpbmplY3QsIEluamVjdG9yLCBzaWduYWwsIHZpZXdDaGlsZCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBWFBfRU5USVRZX0RFRklOSVRJT05fTE9BREVSIH0gZnJvbSAnLi4vLi4vZW50aXR5LmNvbmZpZyc7XHJcbmltcG9ydCB7IEFYVGV4dEJveENvbXBvbmVudCwgQVhUZXh0Qm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RleHQtYm94JztcclxuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XHJcbmltcG9ydCB7IEFYRm9ybWF0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xyXG5pbXBvcnQgeyBBWFBvcHVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XHJcbmltcG9ydCB7IEFYUExvb2t1cFdpZGdldFNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9sb29rdXAtd2lkZ2V0LXNlbGVjdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFYUExvb2t1cFdpZGdldFNlbGVjdG9yVmlld01vZGVsIH0gZnJvbSAnLi9sb29rdXAtd2lkZ2V0LXNlbGVjdG9yLnZpZXdtb2RlbCc7XHJcbmltcG9ydCB7IEFYUEVudGl0eSwgQVhQUXVlcnlGaWx0ZXIsIEFYUFZhbGlkYXRpb25SdWxlcyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcclxuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xyXG5pbXBvcnQgeyBnZXQsIGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xyXG5pbXBvcnQgeyBBWFZhbGlkYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IEFYRm9ybU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9mb3JtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8YXgtdGV4dC1ib3ggW25nTW9kZWxdPVwiZGlzcGxheVRleHQoKVwiIChvblZhbHVlQ2hhbmdlZCk9XCJoYW5kbGVWYWx1ZUNoYW5nZSgkZXZlbnQpXCIgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKVwiIChvbktleVVwKT1cImhhbmRsZUtleURvd24oJGV2ZW50KVwiIChvbkJsdXIpPVwiaGFuZGxlT25CbHVyKCRldmVudClcIj5cclxuICAgICAgQGZvciAodmFsaWRhdGlvbiBvZiB2YWxpZGF0aW9uUnVsZXM7IHRyYWNrICRpbmRleCkge1xyXG4gICAgICAgICAgPGF4LXZhbGlkYXRpb24tcnVsZSBbcnVsZV09XCJ2YWxpZGF0aW9uLnJ1bGVcIiBbbWVzc2FnZV09XCJ2YWxpZGF0aW9uLm9wdGlvbnM/Lm1lc3NhZ2VcIiBbb3B0aW9uc109XCJ2YWxpZGF0aW9uLm9wdGlvbnNcIj48L2F4LXZhbGlkYXRpb24tcnVsZT5cclxuICAgICAgfVxyXG4gICAgICA8YXgtc3VmZml4PlxyXG4gICAgICAgICAgPGF4LWJ1dHRvbiBjb2xvcj1cImdob3N0XCIgbG9vaz1cInR3b3RvbmVcIiAgW2Rpc2FibGVkXT1cImlzTG9hZGluZygpXCIgKG9uQ2xpY2spPVwiaGFuZGxlT25DbGljaygkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgIEBpZihpc0xvYWRpbmcoKSlcclxuICAgICAgICAgICAge1xyXG4gICAgICAgICAgICAgIDxheC1sb2FkaW5nPjwvYXgtbG9hZGluZz4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBlbHNlIHtcclxuICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiZmFyIGZhLXNlYXJjaFwiPlxyXG4gICAgICAgICAgICAgIDwvYXgtaWNvbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgPC9heC1idXR0b24+XHJcbiAgICAgIDwvYXgtc3VmZml4PlxyXG4gICAgPC9heC10ZXh0LWJveD5cclxuICBgLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBBWFNlbGVjdEJveE1vZHVsZSxcclxuICAgIEFYVGV4dEJveE1vZHVsZSxcclxuICAgIEFYQnV0dG9uTW9kdWxlLFxyXG4gICAgQVhEZWNvcmF0b3JNb2R1bGUsXHJcbiAgICBBWExvYWRpbmdNb2R1bGUsXHJcbiAgICBBWFZhbGlkYXRpb25Nb2R1bGUsXHJcbiAgICBBWEZvcm1Nb2R1bGVcclxuICBdLFxyXG4gIGlucHV0czogW1wiZW50aXR5XCIsIFwiY29uZGl0aW9uc1wiLCBcImV4cG9zZVwiXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhQTG9va3VwV2lkZ2V0RWRpdENvbXBvbmVudCBleHRlbmRzIEFYUFdpZGdldEJhc2U8YW55PiB7XHJcblxyXG4gIHByb3RlY3RlZCB0ZXh0RmllbGQgPSBcInRpdGxlXCI7XHJcbiAgcHJvdGVjdGVkIGV4cG9zZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIHByb3RlY3RlZCBlbnRpdHk6IHN0cmluZztcclxuICBwcm90ZWN0ZWQgZmlsdGVyOiBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24gfCBudWxsO1xyXG5cclxuICBwcm90ZWN0ZWQgdmFsaWRhdGlvblJ1bGVzOiBBWFBWYWxpZGF0aW9uUnVsZXMgPSBbXTtcclxuXHJcbiAgcHJvdGVjdGVkIGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcclxuICBwcm90ZWN0ZWQgbG9hZGVyID0gaW5qZWN0KEFYUF9FTlRJVFlfREVGSU5JVElPTl9MT0FERVIpO1xyXG4gIHByb3RlY3RlZCBmb3JtYXRTZXJ2aWNlID0gaW5qZWN0KEFYRm9ybWF0U2VydmljZSk7XHJcbiAgcHJvdGVjdGVkIHBvcHVwU2VydmljZSA9IGluamVjdChBWFBvcHVwU2VydmljZSk7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBidWlsZGVyU2VydmljZSA9IGluamVjdChBWFBMYXlvdXRCdWlsZGVyU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBlbnRpdHlEZWY6IEFYUEVudGl0eSB8IG51bGw7XHJcblxyXG4gIHByb3RlY3RlZCBjb25kaXRpb25zPzogQVhQUXVlcnlGaWx0ZXJbXTtcclxuXHJcbiAgcHJvdGVjdGVkIGRpc3BsYXlUZXh0ID0gc2lnbmFsKFwiXCIpO1xyXG4gIHByb3RlY3RlZCBzZWxlY3RlZEl0ZW0gPSBzaWduYWw8YW55IHwgbnVsbD4obnVsbCk7XHJcbiAgcHJvdGVjdGVkIHNlYXJjaFRlcm0gPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoQVhUZXh0Qm94Q29tcG9uZW50KVxyXG4gIHRleHRib3g6IEFYVGV4dEJveENvbXBvbmVudDtcclxuXHJcbiAgcHJvdGVjdGVkIGlzTG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XHJcblxyXG4gIHByb3RlY3RlZCBpc09wZW4gPSBzaWduYWwoZmFsc2UpO1xyXG5cclxuICBwcm90ZWN0ZWQgdm0gPSBzaWduYWw8QVhQTG9va3VwV2lkZ2V0U2VsZWN0b3JWaWV3TW9kZWwgfCBudWxsPihudWxsKTtcclxuXHJcbiAgcHJvdGVjdGVkIHBsYWNlaG9sZGVyID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgcmV0dXJuICdTZWFyY2ggb24gJyArIHRoaXMudm0oKT8uaW5saW5lRmlsdGVyc1BsYWNlaG9sZGVycygpLmpvaW4oJywgJylcclxuICB9KVxyXG5cclxuXHJcbiAgb3ZlcnJpZGUgYXN5bmMgbmdPbkluaXQoKSB7XHJcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xyXG4gICAgLy9cclxuICAgIGNvbnN0IFttb2R1bGUsIGVudGl0eV0gPSB0aGlzLmVudGl0eS5zcGxpdCgnLicpO1xyXG4gICAgdGhpcy5lbnRpdHlEZWYgPSBhd2FpdCB0aGlzLmxvYWRlci5nZXQobW9kdWxlLCBlbnRpdHkpO1xyXG4gICAgLy9cclxuICAgIHRoaXMudm0uc2V0KG5ldyBBWFBMb29rdXBXaWRnZXRTZWxlY3RvclZpZXdNb2RlbCh0aGlzLmluamVjdG9yLCB0aGlzLmVudGl0eURlZiEsIHRoaXMuZmlsdGVyKSk7XHJcbiAgICAvL1xyXG4gICAgdGhpcy50ZXh0RmllbGQgPSB0aGlzLmVudGl0eURlZj8uZm9ybWF0cy5sb29rdXAgPz8gdGhpcy5lbnRpdHlEZWY/LnByb3BlcnRpZXMuZmluZChjID0+IGMubmFtZSAhPSAnaWQnKT8ubmFtZSA/PyBcInRpdGxlXCI7XHJcbiAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKVxyXG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PSAnb2JqZWN0JylcclxuICAgICAgdGhpcy5kaXNwbGF5VGV4dC5zZXQodGhpcy5mb3JtYXRTZXJ2aWNlLmZvcm1hdCh0aGlzLnRleHRGaWVsZCwgXCJzdHJpbmdcIiwgdmFsdWUpKVxyXG4gICAgZWxzZSBpZiAodmFsdWUgIT0gbnVsbCkge1xyXG4gICAgICBhd2FpdCB0aGlzLmZpbmRCeVZhbHVlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmJ1aWxkZXJTZXJ2aWNlLm9uQ2hhbmdlZC5zdWJzY3JpYmUoYXN5bmMgYyA9PiB7XHJcbiAgICAgIGlmIChjLnBhdGggPT0gdGhpcy5wYXRoKSB7XHJcbiAgICAgICAgY29uc29sZS5sb2coYywgdGhpcy5nZXRWYWx1ZSgpKTtcclxuICAgICAgICBhd2FpdCB0aGlzLmZpbmRCeVZhbHVlKCk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGZpbmRCeVZhbHVlKCkge1xyXG4gICAgY29uc3QgYnlLZXkgPSB0aGlzLmVudGl0eURlZj8ucXVlcmllcy5ieUtleT8uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcclxuICAgIGNvbnN0IGl0ZW0gPSBhd2FpdCBieUtleSh0aGlzLmdldFZhbHVlKCkpO1xyXG4gICAgdGhpcy5zZXRJdGVtcyhpdGVtKTtcclxuICB9XHJcblxyXG5cclxuICBoYW5kbGVPbkNsaWNrKGU6IEFYQ2xpY2tFdmVudCkge1xyXG4gICAgdGhpcy5zaG93U2VsZWN0b3IoKTtcclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIHNob3dTZWxlY3RvcigpIHtcclxuICAgIHRoaXMuaXNPcGVuLnNldCh0cnVlKVxyXG4gICAgdGhpcy5wb3B1cFNlcnZpY2Uub3BlbihBWFBMb29rdXBXaWRnZXRTZWxlY3RvckNvbXBvbmVudCwge1xyXG4gICAgICB0aXRsZTogYCR7dGhpcy5lbnRpdHlEZWY/LmZvcm1hdHMucGx1cmFsfSBMb29rdXBgLFxyXG4gICAgICBzaXplOiAodGhpcy52bSgpPy5jb2x1bW5zKCkubGVuZ3RoID8/IDApID4gMyA/ICdsZycgOiAnbWQnLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgdm06IG5ldyBBWFBMb29rdXBXaWRnZXRTZWxlY3RvclZpZXdNb2RlbCh0aGlzLmluamVjdG9yLCB0aGlzLmVudGl0eURlZiEsIHRoaXMuZmlsdGVyKSxcclxuICAgICAgICBzZWFyY2hUZXJtOiB0aGlzLnNlYXJjaFRlcm0oKSA9PSB0aGlzLmRpc3BsYXlUZXh0KCkgPyBudWxsIDogdGhpcy5zZWFyY2hUZXJtKClcclxuICAgICAgfVxyXG4gICAgfSkudGhlbigoZTogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuaXNPcGVuLnNldChmYWxzZSlcclxuICAgICAgdGhpcy50ZXh0Ym94LmZvY3VzKCk7XHJcbiAgICAgIGlmIChlLmRhdGE/Lml0ZW1zKSB7XHJcbiAgICAgICAgdGhpcy5zZXRJdGVtcyhlLmRhdGE/Lml0ZW1zWzBdKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBoYW5kbGVWYWx1ZUNoYW5nZShlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50KSB7XHJcbiAgICB0aGlzLnNlYXJjaFRlcm0uc2V0KGUudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGhhbmRsZU9uQmx1cihlOiBBWEZvY3VzRXZlbnQpIHtcclxuICAgIGNvbnN0IGNvbSA9IChlLmNvbXBvbmVudCBhcyBBWFRleHRCb3hDb21wb25lbnQpO1xyXG4gICAgY29uc3QgaW5wdXQgPSAoY29tWydpbnB1dCddIGFzIEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW0oKSkge1xyXG4gICAgICAgIGlucHV0LnZhbHVlID0gdGhpcy5kaXNwbGF5VGV4dCgpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmICghdGhpcy5pc09wZW4oKSkge1xyXG4gICAgICAgICAgaW5wdXQudmFsdWUgPSAnJztcclxuICAgICAgICAgIHRoaXMuc2VhcmNoVGVybS5zZXQobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUtleURvd24oZTogQVhIdG1sRXZlbnQpIHtcclxuICAgIGNvbnN0IGtleUV2ZW50ID0gZS5uYXRpdmVFdmVudCBhcyBLZXlib2FyZEV2ZW50O1xyXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnNlYXJjaFRlcm0oKT8udHJpbSgpO1xyXG4gICAgaWYgKChrZXlFdmVudC5jb2RlID09IFwiRW50ZXJcIiB8fCBrZXlFdmVudC5jb2RlID09IFwiTnVtcGFkRW50ZXJcIikgJiYgdmFsdWUpIHtcclxuICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xyXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnZtKCk/LmZpbmQodmFsdWUpO1xyXG4gICAgICBpZiAocmVzdWx0Py50b3RhbCA9PSAxKSB7XHJcbiAgICAgICAgdGhpcy5zZXRJdGVtcyhyZXN1bHQuaXRlbXNbMF0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2hvd1NlbGVjdG9yKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0SXRlbXMoaXRlbTogYW55KSB7XHJcbiAgICB0aGlzLnNlYXJjaFRlcm0uc2V0KG51bGwpO1xyXG4gICAgdGhpcy5kaXNwbGF5VGV4dC5zZXQoJycpO1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW0uc2V0KGl0ZW0pO1xyXG4gICAgY29uc3QgdGV4dCA9IHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQodGhpcy50ZXh0RmllbGQsIFwic3RyaW5nXCIsIGl0ZW0pO1xyXG4gICAgdGhpcy5kaXNwbGF5VGV4dC5zZXQodGV4dCk7XHJcbiAgICB0aGlzLnNldFZhbHVlKGl0ZW0uaWQpO1xyXG4gICAgaWYgKHRoaXMuZXhwb3NlKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5leHBvc2UgPT0gJ3N0cmluZycpIHtcclxuICAgICAgICB0aGlzLmJ1aWxkZXJTZXJ2aWNlLnNldFZhbHVlKHRoaXMuZXhwb3NlLCBpdGVtKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZXhwb3NlKSkge1xyXG4gICAgICAgICh0aGlzLmV4cG9zZSBhcyBhbnlbXSkuZm9yRWFjaChpID0+IHtcclxuICAgICAgICAgIGlmICh0eXBlb2YgaSA9PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYnVpbGRlclNlcnZpY2Uuc2V0VmFsdWUoaSwgaXRlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5idWlsZGVyU2VydmljZS5zZXRWYWx1ZShpLnRhcmdldCwgZ2V0KGl0ZW0sIGkuc291cmNlKSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIGNsZWFyKCkge1xyXG4gICAgdGhpcy5zZWFyY2hUZXJtLnNldCgnJyk7XHJcbiAgICB0aGlzLmRpc3BsYXlUZXh0LnNldCgnJyk7XHJcbiAgICB0aGlzLnNlbGVjdGVkSXRlbS5zZXQobnVsbCk7XHJcbiAgfVxyXG59Il19
230
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC1lZGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvcGxhdGZvcm0vbGF5b3V0L2VudGl0eS9zcmMvbGliL3dpZGdldHMvbG9va3VwLXdpZGdldC9sb29rdXAtd2lkZ2V0LWVkaXQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN6RixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFjLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFhLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNySixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBRXRGLE9BQU8sRUFB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QUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUVNLEtBQUs7UUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDOzhHQXBLVSw0QkFBNEI7a0dBQTVCLDRCQUE0QiwyTEF1QjVCLGtCQUFrQix1RUEzRG5COzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CVCwyREFJQyxZQUFZLDhCQUNaLFdBQVcsOFZBQ1gsaUJBQWlCLDhCQUNqQixlQUFlLHFiQUNmLGNBQWMsNlVBQ2QsaUJBQWlCLHVjQUNqQixlQUFlLDhLQUNmLGtCQUFrQiw4QkFDbEIsWUFBWTs7MkZBSUgsNEJBQTRCO2tCQXJDeEMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JUO29CQUNELFVBQVUsRUFBRSxJQUFJO29CQUNoQixlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTtvQkFDL0MsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2YsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixZQUFZO3FCQUNiO29CQUNELE1BQU0sRUFBRSxDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDO2lCQUMzQzs4QkF5QkMsT0FBTztzQkFETixTQUFTO3VCQUFDLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ2xpY2tFdmVudCwgQVhEYXRhU291cmNlLCBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24sIEFYRXZlbnQsIEFYRm9jdXNFdmVudCwgQVhIdG1sRXZlbnQsIEFYVmFsdWVDaGFuZ2VkRXZlbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcclxuaW1wb3J0IHsgQVhTZWxlY3RCb3hNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VsZWN0LWJveCc7XHJcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJTZXJ2aWNlLCBBWFBXaWRnZXRCYXNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBEZXN0cm95UmVmLCBFbGVtZW50UmVmLCBpbmplY3QsIEluamVjdG9yLCBzaWduYWwsIHZpZXdDaGlsZCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBBWFBfRU5USVRZX0RFRklOSVRJT05fTE9BREVSIH0gZnJvbSAnLi4vLi4vZW50aXR5LmNvbmZpZyc7XHJcbmltcG9ydCB7IEFYVGV4dEJveENvbXBvbmVudCwgQVhUZXh0Qm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3RleHQtYm94JztcclxuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XHJcbmltcG9ydCB7IEFYRm9ybWF0U2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29yZS9mb3JtYXQnO1xyXG5pbXBvcnQgeyBBWFBvcHVwU2VydmljZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3B1cCc7XHJcbmltcG9ydCB7IEFYUExvb2t1cFdpZGdldFNlbGVjdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9sb29rdXAtd2lkZ2V0LXNlbGVjdG9yLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFYUExvb2t1cFdpZGdldFNlbGVjdG9yVmlld01vZGVsIH0gZnJvbSAnLi9sb29rdXAtd2lkZ2V0LXNlbGVjdG9yLnZpZXdtb2RlbCc7XHJcbmltcG9ydCB7IEFYUEVudGl0eSwgQVhQUXVlcnlGaWx0ZXIsIEFYUFZhbGlkYXRpb25SdWxlcyB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcclxuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xyXG5pbXBvcnQgeyBnZXQsIGlzRXF1YWwgfSBmcm9tICdsb2Rhc2gtZXMnO1xyXG5pbXBvcnQgeyBBWFZhbGlkYXRpb25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdmFsaWRhdGlvbic7XHJcbmltcG9ydCB7IEFYRm9ybU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9mb3JtJztcclxuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxheC10ZXh0LWJveCBbbmdNb2RlbF09XCJkaXNwbGF5VGV4dCgpXCIgKG9uVmFsdWVDaGFuZ2VkKT1cImhhbmRsZVZhbHVlQ2hhbmdlKCRldmVudClcIiAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCIgKG9uS2V5VXApPVwiaGFuZGxlS2V5RG93bigkZXZlbnQpXCIgKG9uQmx1cik9XCJoYW5kbGVPbkJsdXIoJGV2ZW50KVwiPlxyXG4gICAgICBAZm9yICh2YWxpZGF0aW9uIG9mIHZhbGlkYXRpb25SdWxlczsgdHJhY2sgJGluZGV4KSB7XHJcbiAgICAgICAgICA8YXgtdmFsaWRhdGlvbi1ydWxlIFtydWxlXT1cInZhbGlkYXRpb24ucnVsZVwiIFttZXNzYWdlXT1cInZhbGlkYXRpb24ub3B0aW9ucz8ubWVzc2FnZVwiIFtvcHRpb25zXT1cInZhbGlkYXRpb24ub3B0aW9uc1wiPjwvYXgtdmFsaWRhdGlvbi1ydWxlPlxyXG4gICAgICB9XHJcbiAgICAgIDxheC1jbGVhci1idXR0b24gKGNsaWNrKT1cImhhbmRsZUNsZWFyQ2xpY2soKVwiPjwvYXgtY2xlYXItYnV0dG9uPlxyXG5cclxuICAgICAgPGF4LXN1ZmZpeD5cclxuICAgICAgICAgIDxheC1idXR0b24gY29sb3I9XCJnaG9zdFwiIGxvb2s9XCJ0d290b25lXCIgIFtkaXNhYmxlZF09XCJpc0xvYWRpbmcoKVwiIChvbkNsaWNrKT1cImhhbmRsZU9uQ2xpY2soJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICBAaWYoaXNMb2FkaW5nKCkpXHJcbiAgICAgICAgICAgIHtcclxuICAgICAgICAgICAgICA8YXgtbG9hZGluZz48L2F4LWxvYWRpbmc+ICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAZWxzZSB7XHJcbiAgICAgICAgICAgICAgPGF4LWljb24gaWNvbj1cImZhciBmYS1zZWFyY2hcIj5cclxuICAgICAgICAgICAgICA8L2F4LWljb24+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIDwvYXgtYnV0dG9uPlxyXG4gICAgICA8L2F4LXN1ZmZpeD5cclxuICAgIDwvYXgtdGV4dC1ib3g+XHJcbiAgYCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGltcG9ydHM6IFtcclxuICAgIENvbW1vbk1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgQVhTZWxlY3RCb3hNb2R1bGUsXHJcbiAgICBBWFRleHRCb3hNb2R1bGUsXHJcbiAgICBBWEJ1dHRvbk1vZHVsZSxcclxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxyXG4gICAgQVhMb2FkaW5nTW9kdWxlLFxyXG4gICAgQVhWYWxpZGF0aW9uTW9kdWxlLFxyXG4gICAgQVhGb3JtTW9kdWxlXHJcbiAgXSxcclxuICBpbnB1dHM6IFtcImVudGl0eVwiLCBcImNvbmRpdGlvbnNcIiwgXCJleHBvc2VcIl1cclxufSlcclxuZXhwb3J0IGNsYXNzIEFYUExvb2t1cFdpZGdldEVkaXRDb21wb25lbnQgZXh0ZW5kcyBBWFBXaWRnZXRCYXNlPGFueT4ge1xyXG5cclxuICBwcm90ZWN0ZWQgdGV4dEZpZWxkID0gXCJ0aXRsZVwiO1xyXG4gIHByb3RlY3RlZCBleHBvc2U6IHN0cmluZyB8IHVuZGVmaW5lZDtcclxuICBwcm90ZWN0ZWQgZW50aXR5OiBzdHJpbmc7XHJcbiAgcHJvdGVjdGVkIGZpbHRlcjogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uIHwgbnVsbDtcclxuXHJcbiAgcHJvdGVjdGVkIHZhbGlkYXRpb25SdWxlczogQVhQVmFsaWRhdGlvblJ1bGVzID0gW107XHJcblxyXG4gIHByb3RlY3RlZCBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XHJcbiAgcHJvdGVjdGVkIGxvYWRlciA9IGluamVjdChBWFBfRU5USVRZX0RFRklOSVRJT05fTE9BREVSKTtcclxuICBwcm90ZWN0ZWQgZm9ybWF0U2VydmljZSA9IGluamVjdChBWEZvcm1hdFNlcnZpY2UpO1xyXG4gIHByb3RlY3RlZCBwb3B1cFNlcnZpY2UgPSBpbmplY3QoQVhQb3B1cFNlcnZpY2UpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgYnVpbGRlclNlcnZpY2UgPSBpbmplY3QoQVhQTGF5b3V0QnVpbGRlclNlcnZpY2UpO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcclxuICBwcml2YXRlIGVudGl0eURlZjogQVhQRW50aXR5IHwgbnVsbDtcclxuXHJcbiAgcHJvdGVjdGVkIGNvbmRpdGlvbnM/OiBBWFBRdWVyeUZpbHRlcltdO1xyXG5cclxuICBwcm90ZWN0ZWQgZGlzcGxheVRleHQgPSBzaWduYWwoXCJcIik7XHJcbiAgcHJvdGVjdGVkIHNlbGVjdGVkSXRlbSA9IHNpZ25hbDxhbnkgfCBudWxsPihudWxsKTtcclxuICBwcm90ZWN0ZWQgc2VhcmNoVGVybSA9IHNpZ25hbDxzdHJpbmcgfCBudWxsPihudWxsKTtcclxuXHJcbiAgQFZpZXdDaGlsZChBWFRleHRCb3hDb21wb25lbnQpXHJcbiAgdGV4dGJveDogQVhUZXh0Qm94Q29tcG9uZW50O1xyXG5cclxuICBwcm90ZWN0ZWQgaXNMb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcclxuXHJcbiAgcHJvdGVjdGVkIGlzT3BlbiA9IHNpZ25hbChmYWxzZSk7XHJcblxyXG4gIHByb3RlY3RlZCB2bSA9IHNpZ25hbDxBWFBMb29rdXBXaWRnZXRTZWxlY3RvclZpZXdNb2RlbCB8IG51bGw+KG51bGwpO1xyXG5cclxuICBwcm90ZWN0ZWQgcGxhY2Vob2xkZXIgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICByZXR1cm4gJ1NlYXJjaCBvbiAnICsgdGhpcy52bSgpPy5pbmxpbmVGaWx0ZXJzUGxhY2Vob2xkZXJzKCkuam9pbignLCAnKVxyXG4gIH0pXHJcblxyXG5cclxuICBvdmVycmlkZSBhc3luYyBuZ09uSW5pdCgpIHtcclxuICAgIHN1cGVyLm5nT25Jbml0KCk7XHJcbiAgICAvL1xyXG4gICAgY29uc3QgW21vZHVsZSwgZW50aXR5XSA9IHRoaXMuZW50aXR5LnNwbGl0KCcuJyk7XHJcbiAgICB0aGlzLmVudGl0eURlZiA9IGF3YWl0IHRoaXMubG9hZGVyLmdldChtb2R1bGUsIGVudGl0eSk7XHJcbiAgICAvL1xyXG4gICAgdGhpcy52bS5zZXQobmV3IEFYUExvb2t1cFdpZGdldFNlbGVjdG9yVmlld01vZGVsKHRoaXMuaW5qZWN0b3IsIHRoaXMuZW50aXR5RGVmISwgdGhpcy5maWx0ZXIpKTtcclxuICAgIC8vXHJcbiAgICB0aGlzLnRleHRGaWVsZCA9IHRoaXMuZW50aXR5RGVmPy5mb3JtYXRzLmxvb2t1cCA/PyB0aGlzLmVudGl0eURlZj8ucHJvcGVydGllcy5maW5kKGMgPT4gYy5uYW1lICE9ICdpZCcpPy5uYW1lID8/IFwidGl0bGVcIjtcclxuICAgIGNvbnN0IHZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpXHJcbiAgICBpZiAodHlwZW9mIHZhbHVlID09ICdvYmplY3QnKVxyXG4gICAgICB0aGlzLmRpc3BsYXlUZXh0LnNldCh0aGlzLmZvcm1hdFNlcnZpY2UuZm9ybWF0KHRoaXMudGV4dEZpZWxkLCBcInN0cmluZ1wiLCB2YWx1ZSkpXHJcbiAgICBlbHNlIGlmICh2YWx1ZSAhPSBudWxsKSB7XHJcbiAgICAgIGF3YWl0IHRoaXMuZmluZEJ5VmFsdWUoKTtcclxuICAgIH1cclxuICAgIC8vXHJcbiAgICB0aGlzLmJ1aWxkZXJTZXJ2aWNlXHJcbiAgICAgIC5vbkNoYW5nZWRcclxuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXHJcbiAgICAgIC5zdWJzY3JpYmUoYXN5bmMgYyA9PiB7XHJcbiAgICAgICAgaWYgKGMucGF0aCA9PSB0aGlzLnBhdGgpIHtcclxuICAgICAgICAgIGlmICh0aGlzLmdldFZhbHVlKCkpXHJcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuZmluZEJ5VmFsdWUoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGZpbmRCeVZhbHVlKCkge1xyXG4gICAgY29uc3QgYnlLZXkgPSB0aGlzLmVudGl0eURlZj8ucXVlcmllcy5ieUtleT8uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcclxuICAgIGNvbnN0IGl0ZW0gPSBhd2FpdCBieUtleSh0aGlzLmdldFZhbHVlKCkpO1xyXG4gICAgdGhpcy5zZXRJdGVtcyhpdGVtKTtcclxuICB9XHJcblxyXG5cclxuICBoYW5kbGVPbkNsaWNrKGU6IEFYQ2xpY2tFdmVudCkge1xyXG4gICAgdGhpcy5zaG93U2VsZWN0b3IoKTtcclxuICB9XHJcblxyXG5cclxuICBwcml2YXRlIHNob3dTZWxlY3RvcigpIHtcclxuICAgIHRoaXMuaXNPcGVuLnNldCh0cnVlKVxyXG4gICAgdGhpcy5wb3B1cFNlcnZpY2Uub3BlbihBWFBMb29rdXBXaWRnZXRTZWxlY3RvckNvbXBvbmVudCwge1xyXG4gICAgICB0aXRsZTogYCR7dGhpcy5lbnRpdHlEZWY/LmZvcm1hdHMucGx1cmFsfSBMb29rdXBgLFxyXG4gICAgICBzaXplOiAodGhpcy52bSgpPy5jb2x1bW5zKCkubGVuZ3RoID8/IDApID4gMyA/ICdsZycgOiAnbWQnLFxyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgdm06IG5ldyBBWFBMb29rdXBXaWRnZXRTZWxlY3RvclZpZXdNb2RlbCh0aGlzLmluamVjdG9yLCB0aGlzLmVudGl0eURlZiEsIHRoaXMuZmlsdGVyKSxcclxuICAgICAgICBzZWFyY2hUZXJtOiB0aGlzLnNlYXJjaFRlcm0oKSA9PSB0aGlzLmRpc3BsYXlUZXh0KCkgPyBudWxsIDogdGhpcy5zZWFyY2hUZXJtKClcclxuICAgICAgfVxyXG4gICAgfSkudGhlbigoZTogYW55KSA9PiB7XHJcbiAgICAgIHRoaXMuaXNPcGVuLnNldChmYWxzZSlcclxuICAgICAgdGhpcy50ZXh0Ym94LmZvY3VzKCk7XHJcbiAgICAgIGlmIChlLmRhdGE/Lml0ZW1zKSB7XHJcbiAgICAgICAgdGhpcy5zZXRJdGVtcyhlLmRhdGE/Lml0ZW1zWzBdKTtcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBoYW5kbGVWYWx1ZUNoYW5nZShlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50KSB7XHJcbiAgICB0aGlzLnNlYXJjaFRlcm0uc2V0KGUudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGhhbmRsZU9uQmx1cihlOiBBWEZvY3VzRXZlbnQpIHtcclxuICAgIGNvbnN0IGNvbSA9IChlLmNvbXBvbmVudCBhcyBBWFRleHRCb3hDb21wb25lbnQpO1xyXG4gICAgY29uc3QgaW5wdXQgPSAoY29tWydpbnB1dCddIGFzIEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQgYXMgSFRNTElucHV0RWxlbWVudDtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodGhpcy5zZWxlY3RlZEl0ZW0oKSkge1xyXG4gICAgICAgIGlucHV0LnZhbHVlID0gdGhpcy5kaXNwbGF5VGV4dCgpO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIGlmICghdGhpcy5pc09wZW4oKSkge1xyXG4gICAgICAgICAgaW5wdXQudmFsdWUgPSAnJztcclxuICAgICAgICAgIHRoaXMuc2VhcmNoVGVybS5zZXQobnVsbCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9LCAxMDApO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUtleURvd24oZTogQVhIdG1sRXZlbnQpIHtcclxuICAgIGNvbnN0IGtleUV2ZW50ID0gZS5uYXRpdmVFdmVudCBhcyBLZXlib2FyZEV2ZW50O1xyXG4gICAgY29uc3QgdmFsdWUgPSB0aGlzLnNlYXJjaFRlcm0oKT8udHJpbSgpO1xyXG4gICAgaWYgKChrZXlFdmVudC5jb2RlID09IFwiRW50ZXJcIiB8fCBrZXlFdmVudC5jb2RlID09IFwiTnVtcGFkRW50ZXJcIikgJiYgdmFsdWUpIHtcclxuICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KHRydWUpO1xyXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnZtKCk/LmZpbmQodmFsdWUpO1xyXG4gICAgICBpZiAocmVzdWx0Py50b3RhbCA9PSAxKSB7XHJcbiAgICAgICAgdGhpcy5zZXRJdGVtcyhyZXN1bHQuaXRlbXNbMF0pO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2hvd1NlbGVjdG9yKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0SXRlbXMoaXRlbTogYW55KSB7XHJcbiAgICB0aGlzLnNlYXJjaFRlcm0uc2V0KG51bGwpO1xyXG4gICAgdGhpcy5kaXNwbGF5VGV4dC5zZXQoJycpO1xyXG4gICAgdGhpcy5zZWxlY3RlZEl0ZW0uc2V0KGl0ZW0pO1xyXG4gICAgY29uc3QgdGV4dCA9IHRoaXMuZm9ybWF0U2VydmljZS5mb3JtYXQodGhpcy50ZXh0RmllbGQsIFwic3RyaW5nXCIsIGl0ZW0pO1xyXG4gICAgdGhpcy5kaXNwbGF5VGV4dC5zZXQodGV4dCk7XHJcbiAgICB0aGlzLnNldFZhbHVlKGl0ZW0uaWQpO1xyXG4gICAgaWYgKHRoaXMuZXhwb3NlKSB7XHJcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5leHBvc2UgPT0gJ3N0cmluZycpIHtcclxuICAgICAgICB0aGlzLmJ1aWxkZXJTZXJ2aWNlLnNldFZhbHVlKHRoaXMuZXhwb3NlLCBpdGVtKTtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZXhwb3NlKSkge1xyXG4gICAgICAgICh0aGlzLmV4cG9zZSBhcyBhbnlbXSkuZm9yRWFjaChpID0+IHtcclxuICAgICAgICAgIGlmICh0eXBlb2YgaSA9PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYnVpbGRlclNlcnZpY2Uuc2V0VmFsdWUoaSwgaXRlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIHtcclxuICAgICAgICAgICAgY29uc3Qga2V5ID0gZ2V0KGl0ZW0sIGkuc291cmNlKTtcclxuICAgICAgICAgICAgdGhpcy5idWlsZGVyU2VydmljZS5zZXRWYWx1ZShpLnRhcmdldCwga2V5KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xlYXJDbGljaygpIHtcclxuICAgIHRoaXMuY2xlYXIoKTtcclxuICAgIHRoaXMuc2V0VmFsdWUobnVsbCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgY2xlYXIoKSB7XHJcbiAgICB0aGlzLnNlYXJjaFRlcm0uc2V0KCcnKTtcclxuICAgIHRoaXMuZGlzcGxheVRleHQuc2V0KCcnKTtcclxuICAgIHRoaXMuc2VsZWN0ZWRJdGVtLnNldChudWxsKTtcclxuICB9XHJcbn0iXX0=
@@ -21,7 +21,6 @@ export class AXPLookupWidgetSelectorComponent extends AXBasePageComponent {
21
21
  // super.ngOnInit();
22
22
  // }
23
23
  ngAfterViewInit() {
24
- debugger;
25
24
  if (this.searchTerm) {
26
25
  this.vm.applyInlineFilter(this.searchTerm);
27
26
  }
@@ -148,4 +147,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
148
147
  inputs: []
149
148
  }]
150
149
  }] });
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL2xvb2t1cC13aWRnZXQvbG9va3VwLXdpZGdldC1zZWxlY3Rvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBdUIsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQThDLE1BQU0sK0JBQStCLENBQUM7QUFDOUcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7QUFzRDNELE1BQU0sT0FBTyxnQ0FBaUMsU0FBUSxtQkFBbUI7SUFRdkUsd0NBQXdDO0lBQ3hDLHNCQUFzQjtJQUV0QixJQUFJO0lBRU0sZUFBZTtRQUN2QixRQUFRLENBQUE7UUFDUixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3QyxDQUFDO2FBQ0ksQ0FBQztZQUNKLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUVTLGdCQUFnQixDQUFDLENBQXdCO1FBQ2pELElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ2pDLENBQUM7SUFFUyxjQUFjLENBQUMsQ0FBc0I7UUFDN0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFUyxLQUFLLENBQUMsd0JBQXdCLENBQUMsSUFBZTtRQUN0RCxrQ0FBa0M7SUFDcEMsQ0FBQztJQUVELHVCQUF1QixDQUFDLENBQXNCO1FBQzVDLElBQUksQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsQ0FBQztJQUNILENBQUM7SUFFUyxLQUFLLENBQUMsb0JBQW9CO1FBQ2xDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtJQUN4QixDQUFDO0lBRVMsZ0JBQWdCO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFUyxpQkFBaUI7UUFDekIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDMUMsQ0FBQztJQUNILENBQUM7OEdBdERVLGdDQUFnQztrR0FBaEMsZ0NBQWdDLCtGQW5EakM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUNULDJEQUlDLFlBQVksOEJBQ1osY0FBYywySkFDZCxjQUFjLDZVQUNkLFlBQVksOEJBQ1osaUJBQWlCLHVjQUNqQixzQkFBc0IsOEJBQ3RCLGlCQUFpQixpYkFDakIsaUJBQWlCLDJYQUNqQixzQkFBc0I7OzJGQUliLGdDQUFnQztrQkFwRDVDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1DVDtvQkFDRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsc0JBQXNCO3dCQUN0QixpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsc0JBQXNCO3FCQUN2QjtvQkFDRCxNQUFNLEVBQUUsRUFBRTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tbW9uTW9kdWxlLCBBWFZhbHVlQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XHJcbmltcG9ydCB7IEFYRGF0YVRhYmxlTW9kdWxlLCBBWERhdGFUYWJsZVJvd0NsaWNrLCBBWERhdGFUYWJsZVJvd0RiQ2xpY2sgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGF0YS10YWJsZSc7XHJcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IEFYU2VhcmNoQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlYXJjaC1ib3gnO1xyXG5pbXBvcnQgeyBBWEJhc2VQYWdlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BhZ2UnO1xyXG5pbXBvcnQgeyBBWERyb3Bkb3duQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duLWJ1dHRvbic7XHJcbmltcG9ydCB7IEFYUExvb2t1cFdpZGdldFNlbGVjdG9yVmlld01vZGVsIH0gZnJvbSAnLi9sb29rdXAtd2lkZ2V0LXNlbGVjdG9yLnZpZXdtb2RlbCc7XHJcbmltcG9ydCB7IEFYRm9ybU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9mb3JtJztcclxuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcclxuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwiYXgtcC00IGF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTQgIGF4LW92ZXJmbG93LWhpZGRlblwiPlxyXG4gICAgICBAaWYodm0uaGFzSW5saW5lRmlsdGVycygpKVxyXG4gICAgICB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJheC13LWZ1bGxcIiA+XHJcbiAgICAgICAgPGF4LXNlYXJjaC1ib3ggW3BsYWNlaG9sZGVyXT1cIidTZWFyY2ggb24gJyt2bS5pbmxpbmVGaWx0ZXJzUGxhY2Vob2xkZXJzKCkuam9pbignLCAnKVwiIFt2YWx1ZV09XCJzZWFyY2hUZXJtXCJcclxuICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJoYW5kbGVDaGFuZ2VTZWFyY2hWYWx1ZSgkZXZlbnQpXCIgW2F4QXV0b0ZvY3VzXT1cInRydWVcIj48YXgtY2xlYXItYnV0dG9uPjwvYXgtY2xlYXItYnV0dG9uPjwvYXgtc2VhcmNoLWJveD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgICAgPGF4LWRhdGEtdGFibGUgI2dyaWQgW3Nob3dGb290ZXJdPVwiZmFsc2VcIiBjbGFzcz1cImF4LWgtWzUwdmhdXCIgW3BhZ2luZ109XCJ0cnVlXCIgW2ZldGNoRGF0YU1vZGVdPVwiJ21hbnVhbCdcIlxyXG4gICAgICAgIFtsb2FkaW5nXT1cInsgZW5hYmxlZDogdHJ1ZSwgYW5pbWF0aW9uOiB0cnVlIH1cIiBbZGF0YVNvdXJjZV09XCJ2bS5kYXRhU291cmNlXCIgXHJcbiAgICAgICAgKHNlbGVjdGVkUm93c0NoYW5nZSk9XCJoYW5kbGVTZWxlY3RlZFJvd3NDaGFuZ2UoJGV2ZW50KVwiIChvblJvd0NsaWNrKT1cImhhbmRsZVJvd0NsaWNrKCRldmVudClcIiAob25Sb3dEYkNsaWNrKT1cImhhbmRsZVJvd0RiQ2xpY2soJGV2ZW50KVwiPlxyXG4gICAgICAgIDwhLS0gPGF4LXNlbGVjdC1jb2x1bW4gZml4ZWQ9XCJzdGFydFwiIFt3aWR0aF09XCInNTBweCdcIj48L2F4LXNlbGVjdC1jb2x1bW4+IC0tPlxyXG4gICAgICAgIEBmb3IoY29sIG9mIHZtLmNvbHVtbnMoKTt0cmFjayBjb2wubmFtZSkge1xyXG4gICAgICAgIEBpZihjb2wudmlzaWJsZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgPGF4cC13aWRnZXQtY29sdW1uLXJlbmRlcmVyIFtjYXB0aW9uXT1cImNvbC50aXRsZVwiIFtub2RlXT1cImNvbC5ub2RlKClcIj48L2F4cC13aWRnZXQtY29sdW1uLXJlbmRlcmVyPlxyXG4gICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIDwvYXgtZGF0YS10YWJsZT5cclxuICAgIDwvZGl2PlxyXG4gICAgIDxheC1mb290ZXI+XHJcbiAgICAgPGF4LXN1ZmZpeD5cclxuICAgICAgPGF4LWJ1dHRvbiBsb29rPVwic29saWRcIiBjb2xvcj1cImdob3N0XCIgdGV4dD1cIkNsb3NlXCIgKG9uQ2xpY2spPVwiaGFuZGxlQ2xvc2VDbGljaygpXCI+IDwvYXgtYnV0dG9uPlxyXG4gICAgICA8YXgtYnV0dG9uIGxvb2s9XCJzb2xpZFwiIGNvbG9yPVwicHJpbWFyeVwiIHRleHQ9XCJTZWxlY3RcIiAob25DbGljayk9XCJoYW5kbGVTZWxlY3RDbGljaygpXCIgW2Rpc2FibGVkXT1cImZvY3VzZWRSb3c9PW51bGxcIj4gPC9heC1idXR0b24+XHJcbiAgICAgIEBpZighdm0uY2FuQ3JlYXRlKCkpXHJcbiAgICAgIHtcclxuICAgICAgICA8YXgtYnV0dG9uIGxvb2s9XCJzb2xpZFwiIGNvbG9yPVwicHJpbWFyeVwiIHRleHQ9XCJDcmVhdGUgTmV3XCIgKG9uQ2xpY2spPVwiaGFuZGxlQ3JlYXRlTmV3Q2xpY2soKVwiPiBcclxuICAgICAgICAgIDxheC1wcmVmaXg+XHJcbiAgICAgICAgICAgICAgPGF4LWljb24gaWNvbj1cImZhLXNvbGlkIGZhLWFkZFwiPjwvYXgtaWNvbj5cclxuICAgICAgICAgIDwvYXgtcHJlZml4PlxyXG4gICAgICAgIDwvYXgtYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICA8L2F4LXN1ZmZpeD5cclxuICAgICA8L2F4LWZvb3Rlcj5cclxuICBgLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgQVhDb21tb25Nb2R1bGUsXHJcbiAgICBBWEJ1dHRvbk1vZHVsZSxcclxuICAgIEFYRm9ybU1vZHVsZSxcclxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxyXG4gICAgQVhEcm9wZG93bkJ1dHRvbk1vZHVsZSxcclxuICAgIEFYRGF0YVRhYmxlTW9kdWxlLFxyXG4gICAgQVhTZWFyY2hCb3hNb2R1bGUsXHJcbiAgICBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlXHJcbiAgXSxcclxuICBpbnB1dHM6IFtdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFBMb29rdXBXaWRnZXRTZWxlY3RvckNvbXBvbmVudCBleHRlbmRzIEFYQmFzZVBhZ2VDb21wb25lbnQge1xyXG5cclxuXHJcbiAgcHJvdGVjdGVkIHZtOiBBWFBMb29rdXBXaWRnZXRTZWxlY3RvclZpZXdNb2RlbDtcclxuICBwcm90ZWN0ZWQgc2VhcmNoVGVybTogc3RyaW5nO1xyXG4gIHByb3RlY3RlZCBmb2N1c2VkUm93OiBhbnk7XHJcblxyXG5cclxuICAvLyBwcm90ZWN0ZWQgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgLy8gICBzdXBlci5uZ09uSW5pdCgpO1xyXG5cclxuICAvLyB9XHJcblxyXG4gIHByb3RlY3RlZCBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBkZWJ1Z2dlclxyXG4gICAgaWYgKHRoaXMuc2VhcmNoVGVybSkge1xyXG4gICAgICB0aGlzLnZtLmFwcGx5SW5saW5lRmlsdGVyKHRoaXMuc2VhcmNoVGVybSk7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy52bS5hcHBseUZpbHRlckFuZFNvcnQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBoYW5kbGVSb3dEYkNsaWNrKGU6IEFYRGF0YVRhYmxlUm93RGJDbGljaykge1xyXG4gICAgdGhpcy5jbG9zZSh7IGl0ZW1zOiBbZS5kYXRhXSB9KVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGhhbmRsZVJvd0NsaWNrKGU6IEFYRGF0YVRhYmxlUm93Q2xpY2spIHtcclxuICAgIHRoaXMuZm9jdXNlZFJvdyA9IGUuZGF0YTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVTZWxlY3RlZFJvd3NDaGFuZ2Uocm93czogdW5rbm93bltdKSB7XHJcbiAgICAvL3RoaXMudm0uc2VsZWN0ZWRJdGVtcy5zZXQocm93cyk7XHJcbiAgfVxyXG5cclxuICBoYW5kbGVDaGFuZ2VTZWFyY2hWYWx1ZShlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50KSB7XHJcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xyXG4gICAgICB0aGlzLnZtLmFwcGx5SW5saW5lRmlsdGVyKGUudmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZUNyZWF0ZU5ld0NsaWNrKCkge1xyXG4gICAgdGhpcy5jbG9zZSgpO1xyXG4gICAgYXdhaXQgdGhpcy52bS5jcmVhdGUoKVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGhhbmRsZUNsb3NlQ2xpY2soKSB7XHJcbiAgICB0aGlzLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgaGFuZGxlU2VsZWN0Q2xpY2soKSB7XHJcbiAgICBpZiAodGhpcy5mb2N1c2VkUm93KSB7XHJcbiAgICAgIHRoaXMuY2xvc2UoeyBpdGVtczogW3RoaXMuZm9jdXNlZFJvd10gfSlcclxuICAgIH1cclxuICB9XHJcbn0iXX0=
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL2xvb2t1cC13aWRnZXQvbG9va3VwLXdpZGdldC1zZWxlY3Rvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBdUIsTUFBTSwyQkFBMkIsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQThDLE1BQU0sK0JBQStCLENBQUM7QUFDOUcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7QUFzRDNELE1BQU0sT0FBTyxnQ0FBaUMsU0FBUSxtQkFBbUI7SUFRdkUsd0NBQXdDO0lBQ3hDLHNCQUFzQjtJQUV0QixJQUFJO0lBRU0sZUFBZTtRQUN2QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNwQixJQUFJLENBQUMsRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3QyxDQUFDO2FBQ0ksQ0FBQztZQUNKLElBQUksQ0FBQyxFQUFFLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUVTLGdCQUFnQixDQUFDLENBQXdCO1FBQ2pELElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0lBQ2pDLENBQUM7SUFFUyxjQUFjLENBQUMsQ0FBc0I7UUFDN0MsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDO0lBQzNCLENBQUM7SUFFUyxLQUFLLENBQUMsd0JBQXdCLENBQUMsSUFBZTtRQUN0RCxrQ0FBa0M7SUFDcEMsQ0FBQztJQUVELHVCQUF1QixDQUFDLENBQXNCO1FBQzVDLElBQUksQ0FBQyxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsQ0FBQztJQUNILENBQUM7SUFFUyxLQUFLLENBQUMsb0JBQW9CO1FBQ2xDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLE1BQU0sSUFBSSxDQUFDLEVBQUUsQ0FBQyxNQUFNLEVBQUUsQ0FBQTtJQUN4QixDQUFDO0lBRVMsZ0JBQWdCO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNmLENBQUM7SUFFUyxpQkFBaUI7UUFDekIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDLENBQUE7UUFDMUMsQ0FBQztJQUNILENBQUM7OEdBckRVLGdDQUFnQztrR0FBaEMsZ0NBQWdDLCtGQW5EakM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUNULDJEQUlDLFlBQVksOEJBQ1osY0FBYywySkFDZCxjQUFjLDZVQUNkLFlBQVksOEJBQ1osaUJBQWlCLHVjQUNqQixzQkFBc0IsOEJBQ3RCLGlCQUFpQixpYkFDakIsaUJBQWlCLDJYQUNqQixzQkFBc0I7OzJGQUliLGdDQUFnQztrQkFwRDVDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1DVDtvQkFDRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLGlCQUFpQjt3QkFDakIsc0JBQXNCO3dCQUN0QixpQkFBaUI7d0JBQ2pCLGlCQUFpQjt3QkFDakIsc0JBQXNCO3FCQUN2QjtvQkFDRCxNQUFNLEVBQUUsRUFBRTtpQkFDWCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29tbW9uTW9kdWxlLCBBWFZhbHVlQ2hhbmdlZEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XHJcbmltcG9ydCB7IEFYRGF0YVRhYmxlTW9kdWxlLCBBWERhdGFUYWJsZVJvd0NsaWNrLCBBWERhdGFUYWJsZVJvd0RiQ2xpY2sgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGF0YS10YWJsZSc7XHJcbmltcG9ydCB7IEFYUExheW91dEJ1aWxkZXJNb2R1bGUgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL2xheW91dC9idWlsZGVyJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQVhEZWNvcmF0b3JNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZGVjb3JhdG9ycyc7XHJcbmltcG9ydCB7IEFYU2VhcmNoQm94TW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlYXJjaC1ib3gnO1xyXG5pbXBvcnQgeyBBWEJhc2VQYWdlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BhZ2UnO1xyXG5pbXBvcnQgeyBBWERyb3Bkb3duQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duLWJ1dHRvbic7XHJcbmltcG9ydCB7IEFYUExvb2t1cFdpZGdldFNlbGVjdG9yVmlld01vZGVsIH0gZnJvbSAnLi9sb29rdXAtd2lkZ2V0LXNlbGVjdG9yLnZpZXdtb2RlbCc7XHJcbmltcG9ydCB7IEFYRm9ybU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9mb3JtJztcclxuaW1wb3J0IHsgQVhCdXR0b25Nb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYnV0dG9uJztcclxuaW1wb3J0IHsgQVhQV29ya2Zsb3dTZXJ2aWNlIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS93b3JrZmxvdyc7XHJcbkBDb21wb25lbnQoe1xyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwiYXgtcC00IGF4LWZsZXggYXgtZmxleC1jb2wgYXgtZ2FwLTQgIGF4LW92ZXJmbG93LWhpZGRlblwiPlxyXG4gICAgICBAaWYodm0uaGFzSW5saW5lRmlsdGVycygpKVxyXG4gICAgICB7XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJheC13LWZ1bGxcIiA+XHJcbiAgICAgICAgPGF4LXNlYXJjaC1ib3ggW3BsYWNlaG9sZGVyXT1cIidTZWFyY2ggb24gJyt2bS5pbmxpbmVGaWx0ZXJzUGxhY2Vob2xkZXJzKCkuam9pbignLCAnKVwiIFt2YWx1ZV09XCJzZWFyY2hUZXJtXCJcclxuICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJoYW5kbGVDaGFuZ2VTZWFyY2hWYWx1ZSgkZXZlbnQpXCIgW2F4QXV0b0ZvY3VzXT1cInRydWVcIj48YXgtY2xlYXItYnV0dG9uPjwvYXgtY2xlYXItYnV0dG9uPjwvYXgtc2VhcmNoLWJveD5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIH1cclxuICAgICAgPGF4LWRhdGEtdGFibGUgI2dyaWQgW3Nob3dGb290ZXJdPVwiZmFsc2VcIiBjbGFzcz1cImF4LWgtWzUwdmhdXCIgW3BhZ2luZ109XCJ0cnVlXCIgW2ZldGNoRGF0YU1vZGVdPVwiJ21hbnVhbCdcIlxyXG4gICAgICAgIFtsb2FkaW5nXT1cInsgZW5hYmxlZDogdHJ1ZSwgYW5pbWF0aW9uOiB0cnVlIH1cIiBbZGF0YVNvdXJjZV09XCJ2bS5kYXRhU291cmNlXCIgXHJcbiAgICAgICAgKHNlbGVjdGVkUm93c0NoYW5nZSk9XCJoYW5kbGVTZWxlY3RlZFJvd3NDaGFuZ2UoJGV2ZW50KVwiIChvblJvd0NsaWNrKT1cImhhbmRsZVJvd0NsaWNrKCRldmVudClcIiAob25Sb3dEYkNsaWNrKT1cImhhbmRsZVJvd0RiQ2xpY2soJGV2ZW50KVwiPlxyXG4gICAgICAgIDwhLS0gPGF4LXNlbGVjdC1jb2x1bW4gZml4ZWQ9XCJzdGFydFwiIFt3aWR0aF09XCInNTBweCdcIj48L2F4LXNlbGVjdC1jb2x1bW4+IC0tPlxyXG4gICAgICAgIEBmb3IoY29sIG9mIHZtLmNvbHVtbnMoKTt0cmFjayBjb2wubmFtZSkge1xyXG4gICAgICAgIEBpZihjb2wudmlzaWJsZSlcclxuICAgICAgICB7XHJcbiAgICAgICAgPGF4cC13aWRnZXQtY29sdW1uLXJlbmRlcmVyIFtjYXB0aW9uXT1cImNvbC50aXRsZVwiIFtub2RlXT1cImNvbC5ub2RlKClcIj48L2F4cC13aWRnZXQtY29sdW1uLXJlbmRlcmVyPlxyXG4gICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIDwvYXgtZGF0YS10YWJsZT5cclxuICAgIDwvZGl2PlxyXG4gICAgIDxheC1mb290ZXI+XHJcbiAgICAgPGF4LXN1ZmZpeD5cclxuICAgICAgPGF4LWJ1dHRvbiBsb29rPVwic29saWRcIiBjb2xvcj1cImdob3N0XCIgdGV4dD1cIkNsb3NlXCIgKG9uQ2xpY2spPVwiaGFuZGxlQ2xvc2VDbGljaygpXCI+IDwvYXgtYnV0dG9uPlxyXG4gICAgICA8YXgtYnV0dG9uIGxvb2s9XCJzb2xpZFwiIGNvbG9yPVwicHJpbWFyeVwiIHRleHQ9XCJTZWxlY3RcIiAob25DbGljayk9XCJoYW5kbGVTZWxlY3RDbGljaygpXCIgW2Rpc2FibGVkXT1cImZvY3VzZWRSb3c9PW51bGxcIj4gPC9heC1idXR0b24+XHJcbiAgICAgIEBpZighdm0uY2FuQ3JlYXRlKCkpXHJcbiAgICAgIHtcclxuICAgICAgICA8YXgtYnV0dG9uIGxvb2s9XCJzb2xpZFwiIGNvbG9yPVwicHJpbWFyeVwiIHRleHQ9XCJDcmVhdGUgTmV3XCIgKG9uQ2xpY2spPVwiaGFuZGxlQ3JlYXRlTmV3Q2xpY2soKVwiPiBcclxuICAgICAgICAgIDxheC1wcmVmaXg+XHJcbiAgICAgICAgICAgICAgPGF4LWljb24gaWNvbj1cImZhLXNvbGlkIGZhLWFkZFwiPjwvYXgtaWNvbj5cclxuICAgICAgICAgIDwvYXgtcHJlZml4PlxyXG4gICAgICAgIDwvYXgtYnV0dG9uPlxyXG4gICAgICB9XHJcbiAgICA8L2F4LXN1ZmZpeD5cclxuICAgICA8L2F4LWZvb3Rlcj5cclxuICBgLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgQVhDb21tb25Nb2R1bGUsXHJcbiAgICBBWEJ1dHRvbk1vZHVsZSxcclxuICAgIEFYRm9ybU1vZHVsZSxcclxuICAgIEFYRGVjb3JhdG9yTW9kdWxlLFxyXG4gICAgQVhEcm9wZG93bkJ1dHRvbk1vZHVsZSxcclxuICAgIEFYRGF0YVRhYmxlTW9kdWxlLFxyXG4gICAgQVhTZWFyY2hCb3hNb2R1bGUsXHJcbiAgICBBWFBMYXlvdXRCdWlsZGVyTW9kdWxlXHJcbiAgXSxcclxuICBpbnB1dHM6IFtdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWFBMb29rdXBXaWRnZXRTZWxlY3RvckNvbXBvbmVudCBleHRlbmRzIEFYQmFzZVBhZ2VDb21wb25lbnQge1xyXG5cclxuXHJcbiAgcHJvdGVjdGVkIHZtOiBBWFBMb29rdXBXaWRnZXRTZWxlY3RvclZpZXdNb2RlbDtcclxuICBwcm90ZWN0ZWQgc2VhcmNoVGVybTogc3RyaW5nO1xyXG4gIHByb3RlY3RlZCBmb2N1c2VkUm93OiBhbnk7XHJcblxyXG5cclxuICAvLyBwcm90ZWN0ZWQgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgLy8gICBzdXBlci5uZ09uSW5pdCgpO1xyXG5cclxuICAvLyB9XHJcblxyXG4gIHByb3RlY3RlZCBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICBpZiAodGhpcy5zZWFyY2hUZXJtKSB7XHJcbiAgICAgIHRoaXMudm0uYXBwbHlJbmxpbmVGaWx0ZXIodGhpcy5zZWFyY2hUZXJtKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLnZtLmFwcGx5RmlsdGVyQW5kU29ydCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGhhbmRsZVJvd0RiQ2xpY2soZTogQVhEYXRhVGFibGVSb3dEYkNsaWNrKSB7XHJcbiAgICB0aGlzLmNsb3NlKHsgaXRlbXM6IFtlLmRhdGFdIH0pXHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgaGFuZGxlUm93Q2xpY2soZTogQVhEYXRhVGFibGVSb3dDbGljaykge1xyXG4gICAgdGhpcy5mb2N1c2VkUm93ID0gZS5kYXRhO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZVNlbGVjdGVkUm93c0NoYW5nZShyb3dzOiB1bmtub3duW10pIHtcclxuICAgIC8vdGhpcy52bS5zZWxlY3RlZEl0ZW1zLnNldChyb3dzKTtcclxuICB9XHJcblxyXG4gIGhhbmRsZUNoYW5nZVNlYXJjaFZhbHVlKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQpIHtcclxuICAgIGlmIChlLmlzVXNlckludGVyYWN0aW9uKSB7XHJcbiAgICAgIHRoaXMudm0uYXBwbHlJbmxpbmVGaWx0ZXIoZS52YWx1ZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgYXN5bmMgaGFuZGxlQ3JlYXRlTmV3Q2xpY2soKSB7XHJcbiAgICB0aGlzLmNsb3NlKCk7XHJcbiAgICBhd2FpdCB0aGlzLnZtLmNyZWF0ZSgpXHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xvc2VDbGljaygpIHtcclxuICAgIHRoaXMuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBoYW5kbGVTZWxlY3RDbGljaygpIHtcclxuICAgIGlmICh0aGlzLmZvY3VzZWRSb3cpIHtcclxuICAgICAgdGhpcy5jbG9zZSh7IGl0ZW1zOiBbdGhpcy5mb2N1c2VkUm93XSB9KVxyXG4gICAgfVxyXG4gIH1cclxufSJdfQ==
@@ -78,13 +78,25 @@ export class AXPLookupWidgetSelectorViewModel {
78
78
  //
79
79
  //this.dataSource.sort(...this.sortedFields().map(s => ({ dir: s.dir, field: s.name } as AXDataSourceSortOption)));
80
80
  //
81
+ // Check if inlineFilters or parentFilters have any filters
82
+ const hasInlineFilters = (this.inlineFilters?.filters?.length ?? 0) > 0;
83
+ const hasParentFilters = (this.parentFilters?.filters?.length ?? 0) > 0;
84
+ // Construct the filters array based on the presence of filters
85
+ const filters = [];
86
+ if (hasInlineFilters) {
87
+ filters.push(this.inlineFilters);
88
+ }
89
+ if (hasParentFilters && this.parentFilters) {
90
+ filters.push(this.parentFilters);
91
+ }
92
+ // Apply the filters to the dataSource
81
93
  this.dataSource.filter({
82
94
  field: null,
83
95
  logic: 'and',
84
96
  operator: null,
85
- filters: this.parentFilters ? [this.inlineFilters, this.parentFilters] : [this.inlineFilters]
97
+ filters: filters
86
98
  });
87
- //
99
+ // Refresh the dataSource
88
100
  this.dataSource.refresh();
89
101
  }
90
102
  async find(value) {
@@ -93,4 +105,4 @@ export class AXPLookupWidgetSelectorViewModel {
93
105
  return await func({ filter: this.inlineFilters, take: 10 }) ?? [];
94
106
  }
95
107
  }
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC1zZWxlY3Rvci52aWV3bW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL2xvb2t1cC13aWRnZXQvbG9va3VwLXdpZGdldC1zZWxlY3Rvci52aWV3bW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBd0QsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsUUFBUSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRy9ELE1BQU0sT0FBTyxnQ0FBZ0M7SUFHM0MsWUFBb0IsUUFBa0IsRUFBVSxTQUFvQixFQUFVLGdCQUFpRCxJQUFJO1FBQS9HLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQXdDO1FBRjNILGFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBTXpELGVBQVUsR0FBRyxJQUFJLFlBQVksQ0FBQztZQUM1QixLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDYixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBbUIsQ0FBQztnQkFDOUQsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUNoQixDQUFDO1lBQ0QsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ1YsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQW1CLENBQUM7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QztRQUM5RCxPQUFPLE1BQU0sSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRGF0YVNvdXJjZSwgQVhEYXRhU291cmNlQ2FsbGJhY2tSZXN1bHQsIEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbiB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xyXG5pbXBvcnQgeyBBWFBFbnRpdHlMaXN0Vmlld0NvbHVtblZpZXdNb2RlbCB9IGZyb20gJy4uLy4uL2VudGl0eS52aWV3bW9kZWwnO1xyXG5pbXBvcnQgeyBjb21wdXRlZCwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhQRW50aXR5IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xyXG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgQVhQTG9va3VwV2lkZ2V0U2VsZWN0b3JWaWV3TW9kZWwge1xyXG4gIHByaXZhdGUgd29ya2Zsb3cgPSB0aGlzLmluamVjdG9yLmdldChBWFBXb3JrZmxvd1NlcnZpY2UpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3RvciwgcHJpdmF0ZSBlbnRpdHlEZWY6IEFYUEVudGl0eSwgcHJpdmF0ZSBwYXJlbnRGaWx0ZXJzOiBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24gfCBudWxsID0gbnVsbCkge1xyXG5cclxuICB9XHJcblxyXG4gIGRhdGFTb3VyY2UgPSBuZXcgQVhEYXRhU291cmNlKHtcclxuICAgIGJ5S2V5OiAoa2V5KSA9PiB7XHJcbiAgICAgIGNvbnN0IGZ1bmMgPSB0aGlzLmVudGl0eURlZi5xdWVyaWVzLmJ5S2V5LmV4ZWN1dGUgYXMgRnVuY3Rpb247XHJcbiAgICAgIHJldHVybiBmdW5jKCk7XHJcbiAgICB9LFxyXG4gICAgbG9hZDogKGUpID0+IHtcclxuICAgICAgY29uc3QgZnVuYyA9IHRoaXMuZW50aXR5RGVmLnF1ZXJpZXMubGlzdD8uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcclxuICAgICAgcmV0dXJuIGZ1bmMoZSk7XHJcbiAgICB9LFxyXG4gICAgcGFnZVNpemU6IDEwLFxyXG4gICAga2V5OiAnaWQnXHJcbiAgfSk7XHJcblxyXG5cclxuICBwdWJsaWMgY2FuQ3JlYXRlID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZW50aXR5RGVmLmNvbW1hbmRzPy5jcmVhdGU/LmV4ZWN1dGUgIT0gbnVsbDtcclxuICB9KTtcclxuXHJcbiAgcHVibGljIGFzeW5jIGNyZWF0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGF3YWl0IHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnY3JlYXRlLWVudGl0eScsIHtcclxuICAgICAgZW50aXR5OiB0aGlzLmVudGl0eURlZi5zb3VyY2UsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbmxpbmVGaWx0ZXJzUGxhY2Vob2xkZXJzID0gY29tcHV0ZWQ8c3RyaW5nW10+KCgpID0+IHtcclxuICAgIHJldHVybiB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcihwID0+IHAub3B0aW9ucz8uZmlsdGVyPy5pbmxpbmU/LmVuYWJsZWQpLm1hcChjID0+IGMudGl0bGUpO1xyXG4gIH0pO1xyXG5cclxuICBwdWJsaWMgaGFzSW5saW5lRmlsdGVycyA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcclxuICAgIHJldHVybiB0aGlzLmlubGluZUZpbHRlcnNQbGFjZWhvbGRlcnMoKS5sZW5ndGggPiAwO1xyXG4gIH0pO1xyXG5cclxuXHJcbiAgcHVibGljIGNvbHVtbnMgPSAoKSA9PiB7XHJcbiAgICBjb25zdCBsaXN0Q29sdW1ucyA9IHRoaXMuZW50aXR5RGVmLmNvbHVtbnMgPz8gW107XHJcbiAgICBjb25zdCBjb2x1bW5zID0gbGlzdENvbHVtbnM/Lm1hcChjID0+IGMubmFtZSkgPz8gW107XHJcbiAgICBjb25zdCBwcm9wcyA9IHRoaXMuZW50aXR5RGVmLnByb3BlcnRpZXMuZmlsdGVyKHAgPT4gcC5zY2hlbWEuaGlkZGVuICE9IHRydWUpXHJcbiAgICBjb25zdCBkaXNwbGF5Q29sdW1ucyA9IHByb3BzLmZpbHRlcihwID0+IGNvbHVtbnMuc29tZShjID0+IGMgPT0gcC5uYW1lKSk7XHJcbiAgICByZXR1cm4gZGlzcGxheUNvbHVtbnMubWFwKHAgPT4ge1xyXG4gICAgICByZXR1cm4gbmV3IEFYUEVudGl0eUxpc3RWaWV3Q29sdW1uVmlld01vZGVsKHAsIGxpc3RDb2x1bW5zPy5maW5kKGMgPT4gYy5uYW1lID09IHAubmFtZSkhKTtcclxuICAgIH0pXHJcbiAgfTtcclxuXHJcblxyXG4gIHByaXZhdGUgaW5saW5lRmlsdGVyczogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uID0ge1xyXG4gICAgZmllbGQ6IG51bGwgYXMgYW55LFxyXG4gICAgbG9naWM6ICdvcicsXHJcbiAgICBvcGVyYXRvcjogbnVsbCBhcyBhbnksXHJcbiAgICBmaWx0ZXJzOiBbXVxyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgYWR2YW5jZUZpbHRlcnM6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbiA9IHtcclxuICAgIGZpZWxkOiBudWxsIGFzIGFueSxcclxuICAgIGxvZ2ljOiAnYW5kJyxcclxuICAgIG9wZXJhdG9yOiBudWxsIGFzIGFueSxcclxuICAgIGZpbHRlcnM6IFtdXHJcbiAgfTtcclxuXHJcbiAgYXBwbHlJbmxpbmVGaWx0ZXIodmFsdWU6IHN0cmluZywgcmVmcmVzaDogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIGNvbnN0IHByb3BzID0gdGhpcy5lbnRpdHlEZWYucHJvcGVydGllcy5maWx0ZXIoYyA9PiBjLm9wdGlvbnM/LmZpbHRlcj8uaW5saW5lPy5lbmFibGVkKTtcclxuICAgIHRoaXMuaW5saW5lRmlsdGVycy5maWx0ZXJzID0gW107XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgcHJvcHMuZm9yRWFjaChwID0+IHtcclxuICAgICAgICB0aGlzLmlubGluZUZpbHRlcnMuZmlsdGVycz8ucHVzaCh7XHJcbiAgICAgICAgICBmaWVsZDogcC5uYW1lLFxyXG4gICAgICAgICAgb3BlcmF0b3I6IHtcclxuICAgICAgICAgICAgdHlwZTogJ2NvbnRhaW5zJ1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgfSlcclxuICAgICAgfSlcclxuICAgIH1cclxuICAgIGlmIChyZWZyZXNoKVxyXG4gICAgICB0aGlzLmFwcGx5RmlsdGVyQW5kU29ydCgpO1xyXG4gIH1cclxuXHJcbiAgYXBwbHlGaWx0ZXJBbmRTb3J0KCkge1xyXG4gICAgdGhpcy5kYXRhU291cmNlLmNsZWFyRmlsdGVyKCk7XHJcbiAgICAvL1xyXG4gICAgLy90aGlzLmRhdGFTb3VyY2Uuc29ydCguLi50aGlzLnNvcnRlZEZpZWxkcygpLm1hcChzID0+ICh7IGRpcjogcy5kaXIsIGZpZWxkOiBzLm5hbWUgfSBhcyBBWERhdGFTb3VyY2VTb3J0T3B0aW9uKSkpO1xyXG4gICAgLy9cclxuICAgIHRoaXMuZGF0YVNvdXJjZS5maWx0ZXIoe1xyXG4gICAgICBmaWVsZDogbnVsbCBhcyBhbnksXHJcbiAgICAgIGxvZ2ljOiAnYW5kJyxcclxuICAgICAgb3BlcmF0b3I6IG51bGwgYXMgYW55LFxyXG4gICAgICBmaWx0ZXJzOiB0aGlzLnBhcmVudEZpbHRlcnMgPyBbdGhpcy5pbmxpbmVGaWx0ZXJzLCB0aGlzLnBhcmVudEZpbHRlcnNdIDogW3RoaXMuaW5saW5lRmlsdGVyc11cclxuICAgIH0pO1xyXG4gICAgLy9cclxuICAgIHRoaXMuZGF0YVNvdXJjZS5yZWZyZXNoKCk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGFzeW5jIGZpbmQodmFsdWU6IHN0cmluZyk6IFByb21pc2U8QVhEYXRhU291cmNlQ2FsbGJhY2tSZXN1bHQ8YW55Pj4ge1xyXG4gICAgdGhpcy5hcHBseUlubGluZUZpbHRlcih2YWx1ZS50cmltKCksIGZhbHNlKTtcclxuICAgIGNvbnN0IGZ1bmMgPSB0aGlzLmVudGl0eURlZi5xdWVyaWVzLmxpc3Q/LmV4ZWN1dGUgYXMgRnVuY3Rpb247XHJcbiAgICByZXR1cm4gYXdhaXQgZnVuYyh7IGZpbHRlcjogdGhpcy5pbmxpbmVGaWx0ZXJzLCB0YWtlOiAxMCB9KSA/PyBbXTtcclxuICB9XHJcbn0iXX0=
108
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLXdpZGdldC1zZWxlY3Rvci52aWV3bW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL3BsYXRmb3JtL2xheW91dC9lbnRpdHkvc3JjL2xpYi93aWRnZXRzL2xvb2t1cC13aWRnZXQvbG9va3VwLXdpZGdldC1zZWxlY3Rvci52aWV3bW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBd0QsTUFBTSwyQkFBMkIsQ0FBQztBQUMvRyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsUUFBUSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRW5ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRy9ELE1BQU0sT0FBTyxnQ0FBZ0M7SUFHM0MsWUFBb0IsUUFBa0IsRUFBVSxTQUFvQixFQUFVLGdCQUFpRCxJQUFJO1FBQS9HLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQVUsa0JBQWEsR0FBYixhQUFhLENBQXdDO1FBRjNILGFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBTXpELGVBQVUsR0FBRyxJQUFJLFlBQVksQ0FBQztZQUM1QixLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtnQkFDYixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBbUIsQ0FBQztnQkFDOUQsT0FBTyxJQUFJLEVBQUUsQ0FBQztZQUNoQixDQUFDO1lBQ0QsSUFBSSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQ1YsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLE9BQW1CLENBQUM7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VSxDQUFDLE1BQU0sQ0FBQztZQUNyQixLQUFLLEVBQUUsSUFBVztZQUNsQixLQUFLLEVBQUUsS0FBSztZQUNaLFFBQVEsRUFBRSxJQUFXO1lBQ3JCLE9BQU8sRUFBRSxPQUFPO1NBQ2pCLENBQUMsQ0FBQztRQUVILHlCQUF5QjtRQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzVCLENBQUM7SUFJRCxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQWE7UUFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUM1QyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsT0FBbUIsQ0FBQztRQUM5RCxPQUFPLE1BQU0sSUFBSSxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BFLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRGF0YVNvdXJjZSwgQVhEYXRhU291cmNlQ2FsbGJhY2tSZXN1bHQsIEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbiB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xyXG5pbXBvcnQgeyBBWFBFbnRpdHlMaXN0Vmlld0NvbHVtblZpZXdNb2RlbCB9IGZyb20gJy4uLy4uL2VudGl0eS52aWV3bW9kZWwnO1xyXG5pbXBvcnQgeyBjb21wdXRlZCwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhQRW50aXR5IH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9jb21tb24nO1xyXG5pbXBvcnQgeyBBWFBXb3JrZmxvd1NlcnZpY2UgfSBmcm9tICdAYWNvcmV4L3BsYXRmb3JtL3dvcmtmbG93JztcclxuXHJcblxyXG5leHBvcnQgY2xhc3MgQVhQTG9va3VwV2lkZ2V0U2VsZWN0b3JWaWV3TW9kZWwge1xyXG4gIHByaXZhdGUgd29ya2Zsb3cgPSB0aGlzLmluamVjdG9yLmdldChBWFBXb3JrZmxvd1NlcnZpY2UpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3RvciwgcHJpdmF0ZSBlbnRpdHlEZWY6IEFYUEVudGl0eSwgcHJpdmF0ZSBwYXJlbnRGaWx0ZXJzOiBBWERhdGFTb3VyY2VGaWx0ZXJPcHRpb24gfCBudWxsID0gbnVsbCkge1xyXG5cclxuICB9XHJcblxyXG4gIGRhdGFTb3VyY2UgPSBuZXcgQVhEYXRhU291cmNlKHtcclxuICAgIGJ5S2V5OiAoa2V5KSA9PiB7XHJcbiAgICAgIGNvbnN0IGZ1bmMgPSB0aGlzLmVudGl0eURlZi5xdWVyaWVzLmJ5S2V5LmV4ZWN1dGUgYXMgRnVuY3Rpb247XHJcbiAgICAgIHJldHVybiBmdW5jKCk7XHJcbiAgICB9LFxyXG4gICAgbG9hZDogKGUpID0+IHtcclxuICAgICAgY29uc3QgZnVuYyA9IHRoaXMuZW50aXR5RGVmLnF1ZXJpZXMubGlzdD8uZXhlY3V0ZSBhcyBGdW5jdGlvbjtcclxuICAgICAgcmV0dXJuIGZ1bmMoZSk7XHJcbiAgICB9LFxyXG4gICAgcGFnZVNpemU6IDEwLFxyXG4gICAga2V5OiAnaWQnXHJcbiAgfSk7XHJcblxyXG5cclxuICBwdWJsaWMgY2FuQ3JlYXRlID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZW50aXR5RGVmLmNvbW1hbmRzPy5jcmVhdGU/LmV4ZWN1dGUgIT0gbnVsbDtcclxuICB9KTtcclxuXHJcbiAgcHVibGljIGFzeW5jIGNyZWF0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcclxuICAgIGF3YWl0IHRoaXMud29ya2Zsb3cuZXhlY3V0ZSgnY3JlYXRlLWVudGl0eScsIHtcclxuICAgICAgZW50aXR5OiB0aGlzLmVudGl0eURlZi5zb3VyY2UsXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBpbmxpbmVGaWx0ZXJzUGxhY2Vob2xkZXJzID0gY29tcHV0ZWQ8c3RyaW5nW10+KCgpID0+IHtcclxuICAgIHJldHVybiB0aGlzLmVudGl0eURlZi5wcm9wZXJ0aWVzLmZpbHRlcihwID0+IHAub3B0aW9ucz8uZmlsdGVyPy5pbmxpbmU/LmVuYWJsZWQpLm1hcChjID0+IGMudGl0bGUpO1xyXG4gIH0pO1xyXG5cclxuICBwdWJsaWMgaGFzSW5saW5lRmlsdGVycyA9IGNvbXB1dGVkPGJvb2xlYW4+KCgpID0+IHtcclxuICAgIHJldHVybiB0aGlzLmlubGluZUZpbHRlcnNQbGFjZWhvbGRlcnMoKS5sZW5ndGggPiAwO1xyXG4gIH0pO1xyXG5cclxuXHJcbiAgcHVibGljIGNvbHVtbnMgPSAoKSA9PiB7XHJcbiAgICBjb25zdCBsaXN0Q29sdW1ucyA9IHRoaXMuZW50aXR5RGVmLmNvbHVtbnMgPz8gW107XHJcbiAgICBjb25zdCBjb2x1bW5zID0gbGlzdENvbHVtbnM/Lm1hcChjID0+IGMubmFtZSkgPz8gW107XHJcbiAgICBjb25zdCBwcm9wcyA9IHRoaXMuZW50aXR5RGVmLnByb3BlcnRpZXMuZmlsdGVyKHAgPT4gcC5zY2hlbWEuaGlkZGVuICE9IHRydWUpXHJcbiAgICBjb25zdCBkaXNwbGF5Q29sdW1ucyA9IHByb3BzLmZpbHRlcihwID0+IGNvbHVtbnMuc29tZShjID0+IGMgPT0gcC5uYW1lKSk7XHJcbiAgICByZXR1cm4gZGlzcGxheUNvbHVtbnMubWFwKHAgPT4ge1xyXG4gICAgICByZXR1cm4gbmV3IEFYUEVudGl0eUxpc3RWaWV3Q29sdW1uVmlld01vZGVsKHAsIGxpc3RDb2x1bW5zPy5maW5kKGMgPT4gYy5uYW1lID09IHAubmFtZSkhKTtcclxuICAgIH0pXHJcbiAgfTtcclxuXHJcblxyXG4gIHByaXZhdGUgaW5saW5lRmlsdGVyczogQVhEYXRhU291cmNlRmlsdGVyT3B0aW9uID0ge1xyXG4gICAgZmllbGQ6IG51bGwgYXMgYW55LFxyXG4gICAgbG9naWM6ICdvcicsXHJcbiAgICBvcGVyYXRvcjogbnVsbCBhcyBhbnksXHJcbiAgICBmaWx0ZXJzOiBbXVxyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgYWR2YW5jZUZpbHRlcnM6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbiA9IHtcclxuICAgIGZpZWxkOiBudWxsIGFzIGFueSxcclxuICAgIGxvZ2ljOiAnYW5kJyxcclxuICAgIG9wZXJhdG9yOiBudWxsIGFzIGFueSxcclxuICAgIGZpbHRlcnM6IFtdXHJcbiAgfTtcclxuXHJcbiAgYXBwbHlJbmxpbmVGaWx0ZXIodmFsdWU6IHN0cmluZywgcmVmcmVzaDogYm9vbGVhbiA9IHRydWUpIHtcclxuICAgIGNvbnN0IHByb3BzID0gdGhpcy5lbnRpdHlEZWYucHJvcGVydGllcy5maWx0ZXIoYyA9PiBjLm9wdGlvbnM/LmZpbHRlcj8uaW5saW5lPy5lbmFibGVkKTtcclxuICAgIHRoaXMuaW5saW5lRmlsdGVycy5maWx0ZXJzID0gW107XHJcbiAgICBpZiAodmFsdWUpIHtcclxuICAgICAgcHJvcHMuZm9yRWFjaChwID0+IHtcclxuICAgICAgICB0aGlzLmlubGluZUZpbHRlcnMuZmlsdGVycz8ucHVzaCh7XHJcbiAgICAgICAgICBmaWVsZDogcC5uYW1lLFxyXG4gICAgICAgICAgb3BlcmF0b3I6IHtcclxuICAgICAgICAgICAgdHlwZTogJ2NvbnRhaW5zJ1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICAgIHZhbHVlXHJcbiAgICAgICAgfSlcclxuICAgICAgfSlcclxuICAgIH1cclxuICAgIGlmIChyZWZyZXNoKVxyXG4gICAgICB0aGlzLmFwcGx5RmlsdGVyQW5kU29ydCgpO1xyXG4gIH1cclxuXHJcbiAgYXBwbHlGaWx0ZXJBbmRTb3J0KCkge1xyXG4gICAgdGhpcy5kYXRhU291cmNlLmNsZWFyRmlsdGVyKCk7XHJcbiAgICAvL1xyXG4gICAgLy90aGlzLmRhdGFTb3VyY2Uuc29ydCguLi50aGlzLnNvcnRlZEZpZWxkcygpLm1hcChzID0+ICh7IGRpcjogcy5kaXIsIGZpZWxkOiBzLm5hbWUgfSBhcyBBWERhdGFTb3VyY2VTb3J0T3B0aW9uKSkpO1xyXG4gICAgLy9cclxuXHJcbiAgICAvLyBDaGVjayBpZiBpbmxpbmVGaWx0ZXJzIG9yIHBhcmVudEZpbHRlcnMgaGF2ZSBhbnkgZmlsdGVyc1xyXG4gICAgY29uc3QgaGFzSW5saW5lRmlsdGVycyA9ICh0aGlzLmlubGluZUZpbHRlcnM/LmZpbHRlcnM/Lmxlbmd0aCA/PyAwKSA+IDA7XHJcbiAgICBjb25zdCBoYXNQYXJlbnRGaWx0ZXJzID0gKHRoaXMucGFyZW50RmlsdGVycz8uZmlsdGVycz8ubGVuZ3RoID8/IDApID4gMDtcclxuXHJcbiAgICAvLyBDb25zdHJ1Y3QgdGhlIGZpbHRlcnMgYXJyYXkgYmFzZWQgb24gdGhlIHByZXNlbmNlIG9mIGZpbHRlcnNcclxuICAgIGNvbnN0IGZpbHRlcnM6IEFYRGF0YVNvdXJjZUZpbHRlck9wdGlvbltdID0gW107XHJcbiAgICBpZiAoaGFzSW5saW5lRmlsdGVycykge1xyXG4gICAgICBmaWx0ZXJzLnB1c2godGhpcy5pbmxpbmVGaWx0ZXJzKTtcclxuICAgIH1cclxuICAgIGlmIChoYXNQYXJlbnRGaWx0ZXJzICYmIHRoaXMucGFyZW50RmlsdGVycykge1xyXG4gICAgICBmaWx0ZXJzLnB1c2godGhpcy5wYXJlbnRGaWx0ZXJzKTtcclxuICAgIH1cclxuXHJcbiAgICAvLyBBcHBseSB0aGUgZmlsdGVycyB0byB0aGUgZGF0YVNvdXJjZVxyXG4gICAgdGhpcy5kYXRhU291cmNlLmZpbHRlcih7XHJcbiAgICAgIGZpZWxkOiBudWxsIGFzIGFueSxcclxuICAgICAgbG9naWM6ICdhbmQnLFxyXG4gICAgICBvcGVyYXRvcjogbnVsbCBhcyBhbnksXHJcbiAgICAgIGZpbHRlcnM6IGZpbHRlcnNcclxuICAgIH0pO1xyXG5cclxuICAgIC8vIFJlZnJlc2ggdGhlIGRhdGFTb3VyY2VcclxuICAgIHRoaXMuZGF0YVNvdXJjZS5yZWZyZXNoKCk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGFzeW5jIGZpbmQodmFsdWU6IHN0cmluZyk6IFByb21pc2U8QVhEYXRhU291cmNlQ2FsbGJhY2tSZXN1bHQ8YW55Pj4ge1xyXG4gICAgdGhpcy5hcHBseUlubGluZUZpbHRlcih2YWx1ZS50cmltKCksIGZhbHNlKTtcclxuICAgIGNvbnN0IGZ1bmMgPSB0aGlzLmVudGl0eURlZi5xdWVyaWVzLmxpc3Q/LmV4ZWN1dGUgYXMgRnVuY3Rpb247XHJcbiAgICByZXR1cm4gYXdhaXQgZnVuYyh7IGZpbHRlcjogdGhpcy5pbmxpbmVGaWx0ZXJzLCB0YWtlOiAxMCB9KSA/PyBbXTtcclxuICB9XHJcbn0iXX0=