@ng-formworks/core 18.6.6 → 18.6.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. package/esm2022/lib/json-schema-form.component.mjs +1 -1
  2. package/esm2022/lib/json-schema-form.service.mjs +16 -11
  3. package/esm2022/lib/shared/form-group.functions.mjs +52 -3
  4. package/esm2022/lib/shared/layout.functions.mjs +25 -7
  5. package/esm2022/lib/widget-library/add-reference.component.mjs +13 -6
  6. package/esm2022/lib/widget-library/button.component.mjs +9 -4
  7. package/esm2022/lib/widget-library/checkbox.component.mjs +2 -1
  8. package/esm2022/lib/widget-library/index.mjs +2 -1
  9. package/esm2022/lib/widget-library/input.component.mjs +9 -4
  10. package/esm2022/lib/widget-library/number.component.mjs +9 -6
  11. package/esm2022/lib/widget-library/root.component.mjs +173 -124
  12. package/esm2022/lib/widget-library/section.component.mjs +2 -2
  13. package/esm2022/lib/widget-library/select-framework.component.mjs +9 -5
  14. package/esm2022/lib/widget-library/select-widget.component.mjs +5 -4
  15. package/esm2022/lib/widget-library/stop-propagation.directive.mjs +42 -0
  16. package/esm2022/lib/widget-library/submit.component.mjs +9 -4
  17. package/esm2022/lib/widget-library/tab.component.mjs +1 -1
  18. package/esm2022/lib/widget-library/tabs.component.mjs +14 -2
  19. package/esm2022/lib/widget-library/widget-library.module.mjs +9 -32
  20. package/fesm2022/ng-formworks-core.mjs +502 -326
  21. package/fesm2022/ng-formworks-core.mjs.map +1 -1
  22. package/lib/json-schema-form.service.d.ts +0 -3
  23. package/lib/shared/validator.functions.d.ts +1 -1
  24. package/lib/widget-library/index.d.ts +1 -0
  25. package/lib/widget-library/root.component.d.ts +26 -7
  26. package/lib/widget-library/select-framework.component.d.ts +2 -1
  27. package/lib/widget-library/select-widget.component.d.ts +2 -2
  28. package/lib/widget-library/stop-propagation.directive.d.ts +13 -0
  29. package/lib/widget-library/tabs.component.d.ts +6 -2
  30. package/lib/widget-library/widget-library.module.d.ts +5 -4
  31. package/package.json +3 -4
@@ -1,117 +1,97 @@
1
- import { Component, inject, input } from '@angular/core';
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, inject, input } from '@angular/core';
2
+ import { memoize } from 'lodash';
2
3
  import { JsonSchemaFormService } from '../json-schema-form.service';
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "@angular/common";
5
- import * as i2 from "nxt-sortablejs";
6
+ import * as i2 from "@angular/cdk/drag-drop";
6
7
  import * as i3 from "./select-framework.component";
7
- import * as i4 from "./orderable.directive";
8
8
  export class RootComponent {
9
9
  constructor() {
10
10
  this.jsf = inject(JsonSchemaFormService);
11
+ this.cdr = inject(ChangeDetectorRef);
11
12
  this.dataIndex = input(undefined);
12
13
  this.layoutIndex = input(undefined);
13
14
  this.layout = input(undefined);
14
15
  this.isOrderable = input(undefined);
15
16
  this.isFlexItem = input(false);
16
- this.sortableConfig = {
17
- filter: ".sortable-filter", //needed to disable dragging on input range elements, class needs to be added to the element or its parent
18
- preventOnFilter: false, //needed for input range elements slider do still work
19
- delay: 1000,
20
- delayOnTouchOnly: true,
21
- onEnd: (/**Event*/ evt) => {
22
- evt.newIndex; // most likely why this event is used is to get the dragging element's current index
23
- // same properties as onEnd
24
- //console.log(`sortablejs event:${evt}`);
25
- let srcInd = evt.oldIndex;
26
- let trgInd = evt.newIndex;
27
- let layoutItem = this.layout()[trgInd];
28
- let dataInd = layoutItem?.arrayItem ? (this.dataIndex() || []).concat(trgInd) : (this.dataIndex() || []);
29
- let layoutInd = (this.layoutIndex() || []).concat(trgInd);
30
- let itemCtx = {
31
- dataIndex: () => { return dataInd; },
32
- layoutIndex: () => { return layoutInd; },
33
- layoutNode: () => { return layoutItem; },
34
- };
35
- //must set moveLayout to false as nxtSortable already moves it
36
- this.jsf.moveArrayItem(itemCtx, evt.oldIndex, evt.newIndex, false);
37
- },
38
- onMove: function (/**Event*/ evt, /**Event*/ originalEvent) {
39
- if (evt.related.classList.contains("sortable-fixed")) {
40
- //console.log(evt.related);
41
- return false;
42
- }
43
- }
17
+ this.memoizationEnabled = input(true);
18
+ /**
19
+ * Predicate function that disallows '$ref' item sorts
20
+ * NB declared as a var instead of a function
21
+ * like sortPredicate(index: number, item: CdkDrag<number>){..}
22
+ * since 'this' is bound to the draglist and doesn't reference the
23
+ * FlexLayoutRootComponent instance
24
+ */
25
+ //TODO also need to think of other types such as button which can be
26
+ //created by an arbitrary layout
27
+ //might not be needed added condition to [cdkDragDisabled]
28
+ this.sortPredicate = (index, item) => {
29
+ let layoutItem = this.layout()[index];
30
+ let result = this.isDraggable(layoutItem);
31
+ //layoutItem.type != '$ref';
32
+ return result;
44
33
  };
45
- }
46
- sortableInit(sortable) {
47
- this.sortableObj = sortable;
48
- //Sortable.utils.on(this.sortableObj.el,"nulling",(s)=>{console.log("event nulling sortablejs")})
49
- ///NB issue caused by sortablejs when it its destroyed
50
- //this mainly affects checkboxes coupled with conditions
51
- //-the value is rechecked
52
- //-see https://github.com/SortableJS/Sortable/issues/1052#issuecomment-369613072
53
- /* attempt to monkey patch sortable js
54
- const originalMethod = sortable._nulling;
55
- let zone=this.zone;
56
- sortable._nulling=function() {
57
- console.log(`pluginEvent 2 ${pluginEvent}`)
58
- zone.runOutsideAngular(() => {
59
- console.log(`pluginEvent3 ${pluginEvent}`)
60
- pluginEvent('nulling', this);
61
-
62
- rootEl =
63
- dragEl =
64
- parentEl =
65
- ghostEl =
66
- nextEl =
67
- cloneEl =
68
- lastDownEl =
69
- cloneHidden =
70
-
71
- tapEvt =
72
- touchEvt =
34
+ //private selectframeworkInputCache = new Map<string, { dataIndex: any[], layoutIndex: any[], layoutNode: any }>();
35
+ //TODO review caching-if form field values change, the changes are not propagated
36
+ /*
37
+ getSelectFrameworkInputs(layoutItem: any, i: number) {
38
+ // Create a unique key based on the layoutItem and index
39
+ const cacheKey = `${layoutItem._id}-${i}`;
40
+
41
+ // If the result is already in the cache, return it
42
+ if(this.enableCaching){
43
+ if (this.selectframeworkInputCache.has(cacheKey)) {
44
+ return this.selectframeworkInputCache.get(cacheKey);
45
+ }
46
+ }
73
47
 
74
- moved =
75
- newIndex =
76
- newDraggableIndex =
77
- oldIndex =
78
- oldDraggableIndex =
79
48
 
80
- lastTarget =
81
- lastDirection =
49
+ // If not cached, calculate the values (assuming dataIndex() and layoutIndex() are functions)
50
+ const dataIndex = layoutItem?.arrayItem ? (this.dataIndex() || []).concat(i) : (this.dataIndex() || []);
51
+ const layoutIndex = (this.layoutIndex() || []).concat(i);
82
52
 
83
- putSortable =
84
- activeGroup =
85
- Sortable.dragged =
86
- Sortable.ghost =
87
- Sortable.clone =
88
- Sortable.active = null;
53
+ // Save the result in the cache
54
+ const result = { dataIndex, layoutIndex, layoutNode: layoutItem };
55
+ if(this.enableCaching){
56
+ this.selectframeworkInputCache.set(cacheKey, result);
57
+ }
89
58
 
90
-
91
- let el = this.el;
92
- savedInputChecked.forEach(function (checkEl) {
93
- if (el.contains(checkEl)) {
94
- checkEl.checked = true;
95
- }
96
- });
97
-
98
- savedInputChecked.length =
99
- lastDx =
100
- lastDy = 0;
101
-
102
- })
103
-
104
- }.bind(sortable)
105
- */
59
+ return result;
60
+ }
61
+ */
62
+ this._getSelectFrameworkInputsRaw = (layoutItem, i) => {
63
+ const dataIndexValue = this.dataIndex() || [];
64
+ const layoutIndexValue = this.layoutIndex() || [];
65
+ return {
66
+ layoutNode: layoutItem,
67
+ layoutIndex: [...layoutIndexValue, i],
68
+ dataIndex: layoutItem?.arrayItem ? [...dataIndexValue, i] : dataIndexValue,
69
+ };
70
+ };
71
+ // Define a separate function to hold the memoized version
72
+ this._getSelectFrameworkInputsMemoized = memoize(this._getSelectFrameworkInputsRaw, (layoutItem, i) => {
73
+ const layoutItemKey = layoutItem?.id ?? JSON.stringify(layoutItem);
74
+ return `${layoutItemKey}-${i}`;
75
+ });
76
+ }
77
+ drop(event) {
78
+ // most likely why this event is used is to get the dragging element's current index
79
+ let srcInd = event.previousIndex;
80
+ let trgInd = event.currentIndex;
81
+ let layoutItem = this.layout()[trgInd];
82
+ let dataInd = layoutItem?.arrayItem ? (this.dataIndex() || []).concat(trgInd) : (this.dataIndex() || []);
83
+ let layoutInd = (this.layoutIndex() || []).concat(trgInd);
84
+ let itemCtx = {
85
+ dataIndex: () => { return dataInd; },
86
+ layoutIndex: () => { return layoutInd; },
87
+ layoutNode: () => { return layoutItem; },
88
+ };
89
+ this.jsf.moveArrayItem(itemCtx, srcInd, trgInd, true);
106
90
  }
107
91
  isDraggable(node) {
108
92
  let result = node.arrayItem && node.type !== '$ref' &&
109
- node.arrayItemType === 'list' && this.isOrderable() !== false;
110
- if (this.sortableObj) {
111
- //this.sortableObj.option("disabled",true);
112
- //this.sortableObj.option("sort",false);
113
- //this.sortableObj.option("disabled",!result);
114
- }
93
+ node.arrayItemType === 'list' && this.isOrderable() !== false
94
+ && node.type !== 'submit';
115
95
  return result;
116
96
  }
117
97
  //TODO also need to think of other types such as button which can be
@@ -127,92 +107,161 @@ export class RootComponent {
127
107
  return ((node.options || {}).flex || '').split(/\s+/)[index] ||
128
108
  (node.options || {})[attribute] || ['1', '1', 'auto'][index];
129
109
  }
110
+ // This is the public function that the template calls
111
+ getSelectFrameworkInputs(layoutItem, i) {
112
+ if (this.memoizationEnabled) {
113
+ return this._getSelectFrameworkInputsMemoized(layoutItem, i);
114
+ }
115
+ else {
116
+ return this._getSelectFrameworkInputsRaw(layoutItem, i);
117
+ }
118
+ }
119
+ trackByFn(index, item) {
120
+ return item._id ?? index;
121
+ }
122
+ /*
123
+ ngOnChanges(changes: SimpleChanges): void {
124
+ // If any of the input properties change, clear the cache
125
+ if (changes.dataIndex || changes.layoutIndex || changes.layout) {
126
+ this.selectframeworkInputCache?.clear(); // Clear the entire cache
127
+ }
128
+ }
129
+ */
130
+ ngOnChanges(changes) {
131
+ if (changes['layout'] || changes['dataIndex'] || changes['layoutIndex']) {
132
+ // Clear the entire cache of the memoized function
133
+ this._getSelectFrameworkInputsMemoized.cache.clear();
134
+ this.cdr.markForCheck();
135
+ }
136
+ }
130
137
  showWidget(layoutNode) {
131
138
  return this.jsf.evaluateCondition(layoutNode, this.dataIndex());
132
139
  }
133
140
  ngOnInit() {
134
- // Subscribe to the draggable state
135
- this.sortableOptionsSubscription = this.jsf.sortableOptions$.subscribe((optsValue) => {
136
- if (this.sortableObj) {
137
- Object.keys(optsValue).forEach(opt => {
138
- let optVal = optsValue[opt];
139
- this.sortableObj.option(opt, optVal);
140
- });
141
- //this.sortableObj.option("disabled",true);
142
- //this.sortableObj.option("sort",false);
143
- }
144
- });
141
+ if (this.memoizationEnabled) {
142
+ this.jsf.dataChanges.subscribe((val) => {
143
+ //this.selectframeworkInputCache?.clear();
144
+ this._getSelectFrameworkInputsMemoized.cache.clear();
145
+ //TODO-fix for now changed to detectChanges-
146
+ //used to updated the dynamic titles in tab compnents
147
+ this.cdr.markForCheck();
148
+ // this.cdr.detectChanges();-breaks oneOf/ matdatepicker
149
+ });
150
+ }
145
151
  }
146
152
  ngOnDestroy() {
147
- if (this.sortableOptionsSubscription) {
148
- this.sortableOptionsSubscription.unsubscribe();
149
- }
153
+ //this.selectframeworkInputCache?.clear()
154
+ //this.selectframeworkInputCache=null;
155
+ this._getSelectFrameworkInputsMemoized.cache.clear();
156
+ this.dataChangesSubs?.unsubscribe();
150
157
  }
151
158
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RootComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
152
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: RootComponent, selector: "root-widget", inputs: { dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, isOrderable: { classPropertyName: "isOrderable", publicName: "isOrderable", isSignal: true, isRequired: false, transformFunction: null }, isFlexItem: { classPropertyName: "isFlexItem", publicName: "isFlexItem", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
153
- <div [class.flex-inherit]="true" #sortableContainter [nxtSortablejs]="layout()" [config]="sortableConfig" (init)="sortableInit($event)">
154
- <div *ngFor="let layoutItem of layout(); let i = index"
159
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: RootComponent, selector: "root-widget", inputs: { dataIndex: { classPropertyName: "dataIndex", publicName: "dataIndex", isSignal: true, isRequired: false, transformFunction: null }, layoutIndex: { classPropertyName: "layoutIndex", publicName: "layoutIndex", isSignal: true, isRequired: false, transformFunction: null }, layout: { classPropertyName: "layout", publicName: "layout", isSignal: true, isRequired: false, transformFunction: null }, isOrderable: { classPropertyName: "isOrderable", publicName: "isOrderable", isSignal: true, isRequired: false, transformFunction: null }, isFlexItem: { classPropertyName: "isFlexItem", publicName: "isFlexItem", isSignal: true, isRequired: false, transformFunction: null }, memoizationEnabled: { classPropertyName: "memoizationEnabled", publicName: "memoizationEnabled", isSignal: true, isRequired: false, transformFunction: null } }, usesOnChanges: true, ngImport: i0, template: `
160
+ <div cdkDropList (cdkDropListDropped)="drop($event)"
161
+ [class.flex-inherit]="true"
162
+ [cdkDropListSortPredicate]="sortPredicate"
163
+ >
164
+ <!-- -for now left out
165
+ cdkDragHandle directive, by itself, does not disable the
166
+ default drag behavior of its parent cdkDrag element.
167
+ You must explicitly disable dragging on the main element
168
+ and re-enable it only when using the handle.
169
+ -->
170
+ <div *ngFor="let layoutItem of layout(); let i = index;trackBy: trackByFn"
171
+ cdkDrag [cdkDragStartDelay]="{touch:1000,mouse:0}"
172
+ [cdkDragDisabled]="!isDraggable(layoutItem)"
155
173
  [class.form-flex-item]="isFlexItem()"
156
174
  [style.align-self]="(layoutItem.options || {})['align-self']"
157
175
  [style.flex-basis]="getFlexAttribute(layoutItem, 'flex-basis')"
158
176
  [style.flex-grow]="getFlexAttribute(layoutItem, 'flex-grow')"
159
177
  [style.flex-shrink]="getFlexAttribute(layoutItem, 'flex-shrink')"
160
178
  [style.order]="(layoutItem.options || {}).order"
161
- [class.sortable-filter]="!isDraggable(layoutItem)"
162
- [class.sortable-fixed]="isFixed(layoutItem)"
163
179
  >
180
+
181
+ <!-- workaround to disbale dragging of input fields -->
182
+ <!--
183
+ <div *ngIf="layoutItem?.dataType !='object'" cdkDragHandle>
184
+ <p>Drag Handle {{layoutItem?.dataType}}</p>
185
+ </div>
186
+ -->
164
187
  <!--NB orderable directive is not used but has been left in for now and set to false
165
188
  otherwise the compiler won't recognize dataIndex and other dependent attributes
166
189
  -->
190
+ <!--
167
191
  <div
168
192
  [dataIndex]="layoutItem?.arrayItem ? (dataIndex() || []).concat(i) : (dataIndex() || [])"
169
193
  [layoutIndex]="(layoutIndex() || []).concat(i)"
170
194
  [layoutNode]="layoutItem"
171
195
  [orderable]="false"
172
- [class.sortable-filter]="!isDraggable(layoutItem)"
173
- [class.sortable-fixed]="isFixed(layoutItem)"
174
196
  >
175
197
  <select-framework-widget *ngIf="showWidget(layoutItem)"
176
198
  [dataIndex]="layoutItem?.arrayItem ? (dataIndex() || []).concat(i) : (dataIndex() || [])"
177
199
  [layoutIndex]="(layoutIndex() || []).concat(i)"
178
200
  [layoutNode]="layoutItem"></select-framework-widget>
179
201
  </div>
202
+ -->
203
+ <select-framework-widget *ngIf="showWidget(layoutItem)"
204
+ [dataIndex]="getSelectFrameworkInputs(layoutItem,i).dataIndex"
205
+ [layoutIndex]="getSelectFrameworkInputs(layoutItem,i).layoutIndex"
206
+ [layoutNode]="getSelectFrameworkInputs(layoutItem,i).layoutNode">
207
+ </select-framework-widget>
180
208
  </div>
181
209
  </div>
182
- `, isInline: true, styles: ["[draggable=true]{transition:all .15s cubic-bezier(.4,0,.2,1)}[draggable=true]:hover{cursor:move;box-shadow:2px 2px 4px #0003;position:relative;z-index:10;margin:-1px 1px 1px -1px}[draggable=true].drag-target-top{box-shadow:0 -2px #000;position:relative;z-index:20}[draggable=true].drag-target-bottom{box-shadow:0 2px #000;position:relative;z-index:20}.flex-inherit{display:inherit;flex-flow:inherit;flex-wrap:inherit;flex-direction:inherit;width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.SortablejsDirective, selector: "[nxtSortablejs]", inputs: ["nxtSortablejs", "sortablejsContainer", "config", "cloneFunction"], outputs: ["init"] }, { kind: "component", type: i3.SelectFrameworkComponent, selector: "select-framework-widget", inputs: ["layoutNode", "layoutIndex", "dataIndex"] }, { kind: "directive", type: i4.OrderableDirective, selector: "[orderable]", inputs: ["orderable", "layoutNode", "layoutIndex", "dataIndex"] }] }); }
210
+ `, isInline: true, styles: ["[draggable=true]{transition:all .15s cubic-bezier(.4,0,.2,1)}[draggable=true]:hover{cursor:move;box-shadow:2px 2px 4px #0003;position:relative;z-index:10;margin:-1px 1px 1px -1px}[draggable=true].drag-target-top{box-shadow:0 -2px #000;position:relative;z-index:20}[draggable=true].drag-target-bottom{box-shadow:0 2px #000;position:relative;z-index:20}.flex-inherit{display:inherit;flex-flow:inherit;flex-wrap:inherit;flex-direction:inherit;width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "component", type: i3.SelectFrameworkComponent, selector: "select-framework-widget", inputs: ["layoutNode", "layoutIndex", "dataIndex"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
183
211
  }
184
212
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RootComponent, decorators: [{
185
213
  type: Component,
186
214
  args: [{ selector: 'root-widget', template: `
187
- <div [class.flex-inherit]="true" #sortableContainter [nxtSortablejs]="layout()" [config]="sortableConfig" (init)="sortableInit($event)">
188
- <div *ngFor="let layoutItem of layout(); let i = index"
215
+ <div cdkDropList (cdkDropListDropped)="drop($event)"
216
+ [class.flex-inherit]="true"
217
+ [cdkDropListSortPredicate]="sortPredicate"
218
+ >
219
+ <!-- -for now left out
220
+ cdkDragHandle directive, by itself, does not disable the
221
+ default drag behavior of its parent cdkDrag element.
222
+ You must explicitly disable dragging on the main element
223
+ and re-enable it only when using the handle.
224
+ -->
225
+ <div *ngFor="let layoutItem of layout(); let i = index;trackBy: trackByFn"
226
+ cdkDrag [cdkDragStartDelay]="{touch:1000,mouse:0}"
227
+ [cdkDragDisabled]="!isDraggable(layoutItem)"
189
228
  [class.form-flex-item]="isFlexItem()"
190
229
  [style.align-self]="(layoutItem.options || {})['align-self']"
191
230
  [style.flex-basis]="getFlexAttribute(layoutItem, 'flex-basis')"
192
231
  [style.flex-grow]="getFlexAttribute(layoutItem, 'flex-grow')"
193
232
  [style.flex-shrink]="getFlexAttribute(layoutItem, 'flex-shrink')"
194
233
  [style.order]="(layoutItem.options || {}).order"
195
- [class.sortable-filter]="!isDraggable(layoutItem)"
196
- [class.sortable-fixed]="isFixed(layoutItem)"
197
234
  >
235
+
236
+ <!-- workaround to disbale dragging of input fields -->
237
+ <!--
238
+ <div *ngIf="layoutItem?.dataType !='object'" cdkDragHandle>
239
+ <p>Drag Handle {{layoutItem?.dataType}}</p>
240
+ </div>
241
+ -->
198
242
  <!--NB orderable directive is not used but has been left in for now and set to false
199
243
  otherwise the compiler won't recognize dataIndex and other dependent attributes
200
244
  -->
245
+ <!--
201
246
  <div
202
247
  [dataIndex]="layoutItem?.arrayItem ? (dataIndex() || []).concat(i) : (dataIndex() || [])"
203
248
  [layoutIndex]="(layoutIndex() || []).concat(i)"
204
249
  [layoutNode]="layoutItem"
205
250
  [orderable]="false"
206
- [class.sortable-filter]="!isDraggable(layoutItem)"
207
- [class.sortable-fixed]="isFixed(layoutItem)"
208
251
  >
209
252
  <select-framework-widget *ngIf="showWidget(layoutItem)"
210
253
  [dataIndex]="layoutItem?.arrayItem ? (dataIndex() || []).concat(i) : (dataIndex() || [])"
211
254
  [layoutIndex]="(layoutIndex() || []).concat(i)"
212
255
  [layoutNode]="layoutItem"></select-framework-widget>
213
256
  </div>
257
+ -->
258
+ <select-framework-widget *ngIf="showWidget(layoutItem)"
259
+ [dataIndex]="getSelectFrameworkInputs(layoutItem,i).dataIndex"
260
+ [layoutIndex]="getSelectFrameworkInputs(layoutItem,i).layoutIndex"
261
+ [layoutNode]="getSelectFrameworkInputs(layoutItem,i).layoutNode">
262
+ </select-framework-widget>
214
263
  </div>
215
264
  </div>
216
- `, standalone: false, styles: ["[draggable=true]{transition:all .15s cubic-bezier(.4,0,.2,1)}[draggable=true]:hover{cursor:move;box-shadow:2px 2px 4px #0003;position:relative;z-index:10;margin:-1px 1px 1px -1px}[draggable=true].drag-target-top{box-shadow:0 -2px #000;position:relative;z-index:20}[draggable=true].drag-target-bottom{box-shadow:0 2px #000;position:relative;z-index:20}.flex-inherit{display:inherit;flex-flow:inherit;flex-wrap:inherit;flex-direction:inherit;width:100%}\n"] }]
265
+ `, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, styles: ["[draggable=true]{transition:all .15s cubic-bezier(.4,0,.2,1)}[draggable=true]:hover{cursor:move;box-shadow:2px 2px 4px #0003;position:relative;z-index:10;margin:-1px 1px 1px -1px}[draggable=true].drag-target-top{box-shadow:0 -2px #000;position:relative;z-index:20}[draggable=true].drag-target-bottom{box-shadow:0 2px #000;position:relative;z-index:20}.flex-inherit{display:inherit;flex-flow:inherit;flex-wrap:inherit;flex-direction:inherit;width:100%}\n"] }]
217
266
  }] });
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1mb3Jtd29ya3MtY29yZS9zcmMvbGliL3dpZGdldC1saWJyYXJ5L3Jvb3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFFNUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7Ozs7OztBQWtFcEUsTUFBTSxPQUFPLGFBQWE7SUFqRTFCO1FBb0VVLFFBQUcsR0FBRyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUduQyxjQUFTLEdBQUcsS0FBSyxDQUFXLFNBQVMsQ0FBQyxDQUFDO1FBQ3ZDLGdCQUFXLEdBQUcsS0FBSyxDQUFXLFNBQVMsQ0FBQyxDQUFDO1FBQ3pDLFdBQU0sR0FBRyxLQUFLLENBQVEsU0FBUyxDQUFDLENBQUM7UUFDakMsZ0JBQVcsR0FBRyxLQUFLLENBQVUsU0FBUyxDQUFDLENBQUM7UUFDeEMsZUFBVSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQU1uQyxtQkFBYyxHQUFLO1lBQ2pCLE1BQU0sRUFBQyxrQkFBa0IsRUFBQywwR0FBMEc7WUFDcEksZUFBZSxFQUFFLEtBQUssRUFBQyxzREFBc0Q7WUFDN0UsS0FBSyxFQUFFLElBQUk7WUFDWCxnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLEtBQUssRUFBRSxDQUFDLFVBQVUsQ0FBQSxHQUFHLEVBQUMsRUFBRTtnQkFDdEIsR0FBRyxDQUFDLFFBQVEsQ0FBQSxDQUFDLG9GQUFvRjtnQkFDakcsMkJBQTJCO2dCQUMzQix5Q0FBeUM7Z0JBQ3pDLElBQUksTUFBTSxHQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7Z0JBQ3hCLElBQUksTUFBTSxHQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUM7Z0JBQ3hCLElBQUksVUFBVSxHQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDckMsSUFBSSxPQUFPLEdBQUMsVUFBVSxFQUFFLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztnQkFDdkcsSUFBSSxTQUFTLEdBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFBO2dCQUN2RCxJQUFJLE9BQU8sR0FBSztvQkFDZCxTQUFTLEVBQUMsR0FBRSxFQUFFLEdBQUMsT0FBTyxPQUFPLENBQUEsQ0FBQSxDQUFDO29CQUM5QixXQUFXLEVBQUMsR0FBRSxFQUFFLEdBQUMsT0FBTyxTQUFTLENBQUEsQ0FBQSxDQUFDO29CQUNsQyxVQUFVLEVBQUMsR0FBRSxFQUFFLEdBQUMsT0FBTyxVQUFVLENBQUEsQ0FBQSxDQUFDO2lCQUNuQyxDQUFBO2dCQUNELDhEQUE4RDtnQkFDOUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBQyxLQUFLLENBQUMsQ0FBQztZQUVwRSxDQUFDO1lBQ0QsTUFBTSxFQUFFLFVBQVUsVUFBVSxDQUFBLEdBQUcsRUFBRSxVQUFVLENBQUEsYUFBYTtnQkFDdEQsSUFBRyxHQUFHLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsRUFBQyxDQUFDO29CQUNwRCwyQkFBMkI7b0JBQzNCLE9BQU8sS0FBSyxDQUFDO2dCQUNmLENBQUM7WUFDSCxDQUFDO1NBQ0QsQ0FBQTtLQWtIRjtJQWhIQyxZQUFZLENBQUMsUUFBUTtRQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQztRQUM1QixpR0FBaUc7UUFDakcsc0RBQXNEO1FBQ3RELHdEQUF3RDtRQUN4RCx5QkFBeUI7UUFDekIsZ0ZBQWdGO1FBQ2hGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1VBb0RFO0lBQ0osQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFTO1FBQ25CLElBQUksTUFBTSxHQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNO1lBQ2pELElBQUksQ0FBQyxhQUFhLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxLQUFLLENBQUM7UUFDOUQsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDckIsMkNBQTJDO1lBQzNDLHdDQUF3QztZQUN4Qyw4Q0FBOEM7UUFDaEQsQ0FBQztRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxvRUFBb0U7SUFDcEUsZ0NBQWdDO0lBQ2hDLE9BQU8sQ0FBQyxJQUFTO1FBQ2YsSUFBSSxNQUFNLEdBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxNQUFNLENBQUM7UUFDL0IsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVELG1DQUFtQztJQUNuQyxzREFBc0Q7SUFDdEQsZ0JBQWdCLENBQUMsSUFBUyxFQUFFLFNBQWlCO1FBQzNDLE1BQU0sS0FBSyxHQUFHLENBQUMsV0FBVyxFQUFFLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDNUUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQztZQUMxRCxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxVQUFVLENBQUMsVUFBZTtRQUN4QixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsaUJBQWlCLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFDRCxRQUFRO1FBQ04sbUNBQW1DO1FBQ25DLElBQUksQ0FBQywyQkFBMkIsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FDcEUsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNaLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO2dCQUNyQixNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUEsRUFBRTtvQkFDbEMsSUFBSSxNQUFNLEdBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3RDLENBQUMsQ0FBQyxDQUFBO2dCQUNGLDJDQUEyQztnQkFDM0Msd0NBQXdDO1lBQzFDLENBQUM7UUFDSCxDQUFDLENBQ0YsQ0FBQztJQUNKLENBQUM7SUFDRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsMkJBQTJCLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDakQsQ0FBQztJQUNILENBQUM7K0dBOUpVLGFBQWE7bUdBQWIsYUFBYSx5dEJBOURkOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7S0E4QlA7OzRGQWdDUSxhQUFhO2tCQWpFekIsU0FBUzsrQkFFRSxhQUFhLFlBQ2I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztLQThCUCxjQThCUyxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSnNvblNjaGVtYUZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vanNvbi1zY2hlbWEtZm9ybS5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAncm9vdC13aWRnZXQnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IFtjbGFzcy5mbGV4LWluaGVyaXRdPVwidHJ1ZVwiICNzb3J0YWJsZUNvbnRhaW50ZXIgW254dFNvcnRhYmxlanNdPVwibGF5b3V0KClcIiBbY29uZmlnXT1cInNvcnRhYmxlQ29uZmlnXCIgKGluaXQpPVwic29ydGFibGVJbml0KCRldmVudClcIj5cclxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgbGF5b3V0SXRlbSBvZiBsYXlvdXQoKTsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICAgICAgW2NsYXNzLmZvcm0tZmxleC1pdGVtXT1cImlzRmxleEl0ZW0oKVwiXHJcbiAgICAgICAgW3N0eWxlLmFsaWduLXNlbGZdPVwiKGxheW91dEl0ZW0ub3B0aW9ucyB8fCB7fSlbJ2FsaWduLXNlbGYnXVwiXHJcbiAgICAgICAgW3N0eWxlLmZsZXgtYmFzaXNdPVwiZ2V0RmxleEF0dHJpYnV0ZShsYXlvdXRJdGVtLCAnZmxleC1iYXNpcycpXCJcclxuICAgICAgICBbc3R5bGUuZmxleC1ncm93XT1cImdldEZsZXhBdHRyaWJ1dGUobGF5b3V0SXRlbSwgJ2ZsZXgtZ3JvdycpXCJcclxuICAgICAgICBbc3R5bGUuZmxleC1zaHJpbmtdPVwiZ2V0RmxleEF0dHJpYnV0ZShsYXlvdXRJdGVtLCAnZmxleC1zaHJpbmsnKVwiXHJcbiAgICAgICAgW3N0eWxlLm9yZGVyXT1cIihsYXlvdXRJdGVtLm9wdGlvbnMgfHwge30pLm9yZGVyXCJcclxuICAgICAgICBbY2xhc3Muc29ydGFibGUtZmlsdGVyXT1cIiFpc0RyYWdnYWJsZShsYXlvdXRJdGVtKVwiXHJcbiAgICAgICAgW2NsYXNzLnNvcnRhYmxlLWZpeGVkXT1cImlzRml4ZWQobGF5b3V0SXRlbSlcIlxyXG4gICAgICAgID5cclxuICAgICAgICA8IS0tTkIgb3JkZXJhYmxlIGRpcmVjdGl2ZSBpcyBub3QgdXNlZCBidXQgaGFzIGJlZW4gbGVmdCBpbiBmb3Igbm93IGFuZCBzZXQgdG8gZmFsc2VcclxuICAgICAgICAgIG90aGVyd2lzZSB0aGUgY29tcGlsZXIgd29uJ3QgcmVjb2duaXplIGRhdGFJbmRleCBhbmQgb3RoZXIgZGVwZW5kZW50IGF0dHJpYnV0ZXNcclxuICAgICAgICAtLT5cclxuICAgICAgICA8ZGl2IFxyXG4gICAgICAgICAgW2RhdGFJbmRleF09XCJsYXlvdXRJdGVtPy5hcnJheUl0ZW0gPyAoZGF0YUluZGV4KCkgfHwgW10pLmNvbmNhdChpKSA6IChkYXRhSW5kZXgoKSB8fCBbXSlcIlxyXG4gICAgICAgICAgW2xheW91dEluZGV4XT1cIihsYXlvdXRJbmRleCgpIHx8IFtdKS5jb25jYXQoaSlcIlxyXG4gICAgICAgICAgW2xheW91dE5vZGVdPVwibGF5b3V0SXRlbVwiXHJcbiAgICAgICAgICBbb3JkZXJhYmxlXT1cImZhbHNlXCJcclxuICAgICAgICAgIFtjbGFzcy5zb3J0YWJsZS1maWx0ZXJdPVwiIWlzRHJhZ2dhYmxlKGxheW91dEl0ZW0pXCJcclxuICAgICAgICAgIFtjbGFzcy5zb3J0YWJsZS1maXhlZF09XCJpc0ZpeGVkKGxheW91dEl0ZW0pXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgIDxzZWxlY3QtZnJhbWV3b3JrLXdpZGdldCAqbmdJZj1cInNob3dXaWRnZXQobGF5b3V0SXRlbSlcIlxyXG4gICAgICAgICAgICBbZGF0YUluZGV4XT1cImxheW91dEl0ZW0/LmFycmF5SXRlbSA/IChkYXRhSW5kZXgoKSB8fCBbXSkuY29uY2F0KGkpIDogKGRhdGFJbmRleCgpIHx8IFtdKVwiXHJcbiAgICAgICAgICAgIFtsYXlvdXRJbmRleF09XCIobGF5b3V0SW5kZXgoKSB8fCBbXSkuY29uY2F0KGkpXCJcclxuICAgICAgICAgICAgW2xheW91dE5vZGVdPVwibGF5b3V0SXRlbVwiPjwvc2VsZWN0LWZyYW1ld29yay13aWRnZXQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICBgLFxyXG4gIHN0eWxlczogW2BcclxuICAgIFtkcmFnZ2FibGU9dHJ1ZV0ge1xyXG4gICAgICB0cmFuc2l0aW9uOiBhbGwgMTUwbXMgY3ViaWMtYmV6aWVyKC40LCAwLCAuMiwgMSk7XHJcbiAgICB9XHJcbiAgICBbZHJhZ2dhYmxlPXRydWVdOmhvdmVyIHtcclxuICAgICAgY3Vyc29yOiBtb3ZlO1xyXG4gICAgICBib3gtc2hhZG93OiAycHggMnB4IDRweCByZ2JhKDAsIDAsIDAsIDAuMik7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMTA7XHJcbiAgICAgIG1hcmdpbi10b3A6IC0xcHg7XHJcbiAgICAgIG1hcmdpbi1sZWZ0OiAtMXB4O1xyXG4gICAgICBtYXJnaW4tcmlnaHQ6IDFweDtcclxuICAgICAgbWFyZ2luLWJvdHRvbTogMXB4O1xyXG4gICAgfVxyXG4gICAgW2RyYWdnYWJsZT10cnVlXS5kcmFnLXRhcmdldC10b3Age1xyXG4gICAgICBib3gtc2hhZG93OiAwIC0ycHggMCAjMDAwO1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDIwO1xyXG4gICAgfVxyXG4gICAgW2RyYWdnYWJsZT10cnVlXS5kcmFnLXRhcmdldC1ib3R0b20ge1xyXG4gICAgICBib3gtc2hhZG93OiAwIDJweCAwICMwMDA7XHJcbiAgICAgIHBvc2l0aW9uOiByZWxhdGl2ZTsgei1pbmRleDogMjA7XHJcbiAgICB9XHJcbiAgICAuZmxleC1pbmhlcml0e1xyXG4gICAgICBkaXNwbGF5OmluaGVyaXQ7XHJcbiAgICAgIGZsZXgtZmxvdzppbmhlcml0O1xyXG4gICAgICBmbGV4LXdyYXA6aW5oZXJpdDtcclxuICAgICAgZmxleC1kaXJlY3Rpb246aW5oZXJpdDtcclxuICAgICAgd2lkdGg6MTAwJVxyXG4gICAgfVxyXG4gIGBdLFxyXG4gIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSb290Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuXHJcbiAgcHJpdmF0ZSBqc2YgPSBpbmplY3QoSnNvblNjaGVtYUZvcm1TZXJ2aWNlKTtcclxuXHJcbiAgb3B0aW9uczogYW55O1xyXG4gIHJlYWRvbmx5IGRhdGFJbmRleCA9IGlucHV0PG51bWJlcltdPih1bmRlZmluZWQpO1xyXG4gIHJlYWRvbmx5IGxheW91dEluZGV4ID0gaW5wdXQ8bnVtYmVyW10+KHVuZGVmaW5lZCk7XHJcbiAgcmVhZG9ubHkgbGF5b3V0ID0gaW5wdXQ8YW55W10+KHVuZGVmaW5lZCk7XHJcbiAgcmVhZG9ubHkgaXNPcmRlcmFibGUgPSBpbnB1dDxib29sZWFuPih1bmRlZmluZWQpO1xyXG4gIHJlYWRvbmx5IGlzRmxleEl0ZW0gPSBpbnB1dChmYWxzZSk7XHJcblxyXG4gIC8vIEBWaWV3Q2hpbGQoJ3NvcnRhYmxlQ29udGFpbnRlcicsIHt9KVxyXG4gIC8vIHNvcnRhYmxlQ29udGFpbnRlckVsdDogRWxlbWVudFJlZjtcclxuXHJcbiAgc29ydGFibGVPYmo6IGFueTtcclxuICBzb3J0YWJsZUNvbmZpZzphbnk9e1xyXG4gICAgZmlsdGVyOlwiLnNvcnRhYmxlLWZpbHRlclwiLC8vbmVlZGVkIHRvIGRpc2FibGUgZHJhZ2dpbmcgb24gaW5wdXQgcmFuZ2UgZWxlbWVudHMsIGNsYXNzIG5lZWRzIHRvIGJlIGFkZGVkIHRvIHRoZSBlbGVtZW50IG9yIGl0cyBwYXJlbnRcclxuICAgIHByZXZlbnRPbkZpbHRlcjogZmFsc2UsLy9uZWVkZWQgZm9yIGlucHV0IHJhbmdlIGVsZW1lbnRzIHNsaWRlciBkbyBzdGlsbCB3b3JrXHJcbiAgICBkZWxheTogMTAwMCxcclxuICAgIGRlbGF5T25Ub3VjaE9ubHk6IHRydWUsXHJcbiAgICBvbkVuZDogKC8qKkV2ZW50Ki9ldnQpPT4ge1xyXG4gICAgICBldnQubmV3SW5kZXggLy8gbW9zdCBsaWtlbHkgd2h5IHRoaXMgZXZlbnQgaXMgdXNlZCBpcyB0byBnZXQgdGhlIGRyYWdnaW5nIGVsZW1lbnQncyBjdXJyZW50IGluZGV4XHJcbiAgICAgIC8vIHNhbWUgcHJvcGVydGllcyBhcyBvbkVuZFxyXG4gICAgICAvL2NvbnNvbGUubG9nKGBzb3J0YWJsZWpzIGV2ZW50OiR7ZXZ0fWApO1xyXG4gICAgICBsZXQgc3JjSW5kPWV2dC5vbGRJbmRleDtcclxuICAgICAgbGV0IHRyZ0luZD1ldnQubmV3SW5kZXg7XHJcbiAgICAgIGxldCBsYXlvdXRJdGVtPXRoaXMubGF5b3V0KClbdHJnSW5kXTtcclxuICAgICAgbGV0IGRhdGFJbmQ9bGF5b3V0SXRlbT8uYXJyYXlJdGVtID8gKHRoaXMuZGF0YUluZGV4KCkgfHwgW10pLmNvbmNhdCh0cmdJbmQpIDogKHRoaXMuZGF0YUluZGV4KCkgfHwgW10pO1xyXG4gICAgICBsZXQgbGF5b3V0SW5kPSh0aGlzLmxheW91dEluZGV4KCkgfHwgW10pLmNvbmNhdCh0cmdJbmQpXHJcbiAgICAgIGxldCBpdGVtQ3R4OmFueT17XHJcbiAgICAgICAgZGF0YUluZGV4OigpPT57cmV0dXJuIGRhdGFJbmR9LFxyXG4gICAgICAgIGxheW91dEluZGV4OigpPT57cmV0dXJuIGxheW91dEluZH0sXHJcbiAgICAgICAgbGF5b3V0Tm9kZTooKT0+e3JldHVybiBsYXlvdXRJdGVtfSxcclxuICAgICAgfVxyXG4gICAgICAvL211c3Qgc2V0IG1vdmVMYXlvdXQgdG8gZmFsc2UgYXMgbnh0U29ydGFibGUgYWxyZWFkeSBtb3ZlcyBpdFxyXG4gICAgICB0aGlzLmpzZi5tb3ZlQXJyYXlJdGVtKGl0ZW1DdHgsIGV2dC5vbGRJbmRleCwgZXZ0Lm5ld0luZGV4LGZhbHNlKTtcclxuICAgICAgXHJcbiAgICB9LFxyXG4gICAgb25Nb3ZlOiBmdW5jdGlvbiAoLyoqRXZlbnQqL2V2dCwgLyoqRXZlbnQqL29yaWdpbmFsRXZlbnQpIHtcclxuICAgICAgaWYoZXZ0LnJlbGF0ZWQuY2xhc3NMaXN0LmNvbnRhaW5zKFwic29ydGFibGUtZml4ZWRcIikpe1xyXG4gICAgICAgLy9jb25zb2xlLmxvZyhldnQucmVsYXRlZCk7XHJcbiAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgfVxyXG4gICB9XHJcbiAgfVxyXG4gIHByaXZhdGUgc29ydGFibGVPcHRpb25zU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgc29ydGFibGVJbml0KHNvcnRhYmxlKSB7XHJcbiAgICB0aGlzLnNvcnRhYmxlT2JqID0gc29ydGFibGU7XHJcbiAgICAvL1NvcnRhYmxlLnV0aWxzLm9uKHRoaXMuc29ydGFibGVPYmouZWwsXCJudWxsaW5nXCIsKHMpPT57Y29uc29sZS5sb2coXCJldmVudCBudWxsaW5nIHNvcnRhYmxlanNcIil9KVxyXG4gICAgLy8vTkIgaXNzdWUgY2F1c2VkIGJ5IHNvcnRhYmxlanMgd2hlbiBpdCBpdHMgZGVzdHJveWVkXHJcbiAgICAvL3RoaXMgbWFpbmx5IGFmZmVjdHMgY2hlY2tib3hlcyBjb3VwbGVkIHdpdGggY29uZGl0aW9uc1xyXG4gICAgLy8tdGhlIHZhbHVlIGlzIHJlY2hlY2tlZFxyXG4gICAgLy8tc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9Tb3J0YWJsZUpTL1NvcnRhYmxlL2lzc3Vlcy8xMDUyI2lzc3VlY29tbWVudC0zNjk2MTMwNzJcclxuICAgIC8qIGF0dGVtcHQgdG8gbW9ua2V5IHBhdGNoIHNvcnRhYmxlIGpzIFxyXG4gICAgY29uc3Qgb3JpZ2luYWxNZXRob2QgPSBzb3J0YWJsZS5fbnVsbGluZztcclxuICAgIGxldCB6b25lPXRoaXMuem9uZTtcclxuICAgIHNvcnRhYmxlLl9udWxsaW5nPWZ1bmN0aW9uKCkge1xyXG4gICAgICBjb25zb2xlLmxvZyhgcGx1Z2luRXZlbnQgMiAke3BsdWdpbkV2ZW50fWApXHJcbiAgICAgICAgICAgIHpvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgICAgICAgICAgIGNvbnNvbGUubG9nKGBwbHVnaW5FdmVudDMgJHtwbHVnaW5FdmVudH1gKVxyXG4gICAgICBwbHVnaW5FdmVudCgnbnVsbGluZycsIHRoaXMpO1xyXG4gIFxyXG4gICAgICByb290RWwgPVxyXG4gICAgICBkcmFnRWwgPVxyXG4gICAgICBwYXJlbnRFbCA9XHJcbiAgICAgIGdob3N0RWwgPVxyXG4gICAgICBuZXh0RWwgPVxyXG4gICAgICBjbG9uZUVsID1cclxuICAgICAgbGFzdERvd25FbCA9XHJcbiAgICAgIGNsb25lSGlkZGVuID1cclxuICBcclxuICAgICAgdGFwRXZ0ID1cclxuICAgICAgdG91Y2hFdnQgPVxyXG4gIFxyXG4gICAgICBtb3ZlZCA9XHJcbiAgICAgIG5ld0luZGV4ID1cclxuICAgICAgbmV3RHJhZ2dhYmxlSW5kZXggPVxyXG4gICAgICBvbGRJbmRleCA9XHJcbiAgICAgIG9sZERyYWdnYWJsZUluZGV4ID1cclxuICBcclxuICAgICAgbGFzdFRhcmdldCA9XHJcbiAgICAgIGxhc3REaXJlY3Rpb24gPVxyXG4gIFxyXG4gICAgICBwdXRTb3J0YWJsZSA9XHJcbiAgICAgIGFjdGl2ZUdyb3VwID1cclxuICAgICAgU29ydGFibGUuZHJhZ2dlZCA9XHJcbiAgICAgIFNvcnRhYmxlLmdob3N0ID1cclxuICAgICAgU29ydGFibGUuY2xvbmUgPVxyXG4gICAgICBTb3J0YWJsZS5hY3RpdmUgPSBudWxsO1xyXG4gIFxyXG4gICAgXHJcbiAgICAgICAgbGV0IGVsID0gdGhpcy5lbDtcclxuICAgICAgICBzYXZlZElucHV0Q2hlY2tlZC5mb3JFYWNoKGZ1bmN0aW9uIChjaGVja0VsKSB7XHJcbiAgICAgICAgICBpZiAoZWwuY29udGFpbnMoY2hlY2tFbCkpIHtcclxuICAgICAgICAgICAgY2hlY2tFbC5jaGVja2VkID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIFxyXG4gICAgICAgIHNhdmVkSW5wdXRDaGVja2VkLmxlbmd0aCA9XHJcbiAgICAgICAgbGFzdER4ID1cclxuICAgICAgICBsYXN0RHkgPSAwO1xyXG5cclxuICAgICAgfSlcclxuXHJcbiAgICB9LmJpbmQoc29ydGFibGUpXHJcbiAgICAqL1xyXG4gIH1cclxuXHJcbiAgaXNEcmFnZ2FibGUobm9kZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzdWx0PW5vZGUuYXJyYXlJdGVtICYmIG5vZGUudHlwZSAhPT0gJyRyZWYnICYmXHJcbiAgICBub2RlLmFycmF5SXRlbVR5cGUgPT09ICdsaXN0JyAmJiB0aGlzLmlzT3JkZXJhYmxlKCkgIT09IGZhbHNlO1xyXG4gICAgaWYgKHRoaXMuc29ydGFibGVPYmopIHtcclxuICAgICAgLy90aGlzLnNvcnRhYmxlT2JqLm9wdGlvbihcImRpc2FibGVkXCIsdHJ1ZSk7XHJcbiAgICAgIC8vdGhpcy5zb3J0YWJsZU9iai5vcHRpb24oXCJzb3J0XCIsZmFsc2UpO1xyXG4gICAgICAvL3RoaXMuc29ydGFibGVPYmoub3B0aW9uKFwiZGlzYWJsZWRcIiwhcmVzdWx0KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLy9UT0RPIGFsc28gbmVlZCB0byB0aGluayBvZiBvdGhlciB0eXBlcyBzdWNoIGFzIGJ1dHRvbiB3aGljaCBjYW4gYmVcclxuICAvL2NyZWF0ZWQgYnkgYW4gYXJiaXRyYXJ5IGxheW91dFxyXG4gIGlzRml4ZWQobm9kZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzdWx0PW5vZGUudHlwZSA9PSAnJHJlZic7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLy8gU2V0IGF0dHJpYnV0ZXMgZm9yIGZsZXhib3ggY2hpbGRcclxuICAvLyAoY29udGFpbmVyIGF0dHJpYnV0ZXMgYXJlIHNldCBpbiBzZWN0aW9uLmNvbXBvbmVudClcclxuICBnZXRGbGV4QXR0cmlidXRlKG5vZGU6IGFueSwgYXR0cmlidXRlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGluZGV4ID0gWydmbGV4LWdyb3cnLCAnZmxleC1zaHJpbmsnLCAnZmxleC1iYXNpcyddLmluZGV4T2YoYXR0cmlidXRlKTtcclxuICAgIHJldHVybiAoKG5vZGUub3B0aW9ucyB8fCB7fSkuZmxleCB8fCAnJykuc3BsaXQoL1xccysvKVtpbmRleF0gfHxcclxuICAgICAgKG5vZGUub3B0aW9ucyB8fCB7fSlbYXR0cmlidXRlXSB8fCBbJzEnLCAnMScsICdhdXRvJ11baW5kZXhdO1xyXG4gIH1cclxuXHJcbiAgc2hvd1dpZGdldChsYXlvdXROb2RlOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmpzZi5ldmFsdWF0ZUNvbmRpdGlvbihsYXlvdXROb2RlLCB0aGlzLmRhdGFJbmRleCgpKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAvLyBTdWJzY3JpYmUgdG8gdGhlIGRyYWdnYWJsZSBzdGF0ZVxyXG4gICAgdGhpcy5zb3J0YWJsZU9wdGlvbnNTdWJzY3JpcHRpb24gPSB0aGlzLmpzZi5zb3J0YWJsZU9wdGlvbnMkLnN1YnNjcmliZShcclxuICAgICAgKG9wdHNWYWx1ZSkgPT4ge1xyXG4gICAgICAgIGlmICh0aGlzLnNvcnRhYmxlT2JqKSB7XHJcbiAgICAgICAgICBPYmplY3Qua2V5cyhvcHRzVmFsdWUpLmZvckVhY2gob3B0PT57XHJcbiAgICAgICAgICAgIGxldCBvcHRWYWw9b3B0c1ZhbHVlW29wdF07XHJcbiAgICAgICAgICAgIHRoaXMuc29ydGFibGVPYmoub3B0aW9uKG9wdCxvcHRWYWwpO1xyXG4gICAgICAgICAgfSlcclxuICAgICAgICAgIC8vdGhpcy5zb3J0YWJsZU9iai5vcHRpb24oXCJkaXNhYmxlZFwiLHRydWUpO1xyXG4gICAgICAgICAgLy90aGlzLnNvcnRhYmxlT2JqLm9wdGlvbihcInNvcnRcIixmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICApO1xyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNvcnRhYmxlT3B0aW9uc1N1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLnNvcnRhYmxlT3B0aW9uc1N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
267
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1mb3Jtd29ya3MtY29yZS9zcmMvbGliL3dpZGdldC1saWJyYXJ5L3Jvb3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBK0MsTUFBTSxlQUFlLENBQUM7QUFDbEosT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUVqQyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7Ozs7QUF3RnBFLE1BQU0sT0FBTyxhQUFhO0lBdkYxQjtRQXlGVSxRQUFHLEdBQUcsTUFBTSxDQUFDLHFCQUFxQixDQUFDLENBQUM7UUFDcEMsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRS9CLGNBQVMsR0FBRyxLQUFLLENBQVcsU0FBUyxDQUFDLENBQUM7UUFDdkMsZ0JBQVcsR0FBRyxLQUFLLENBQVcsU0FBUyxDQUFDLENBQUM7UUFDekMsV0FBTSxHQUFHLEtBQUssQ0FBUSxTQUFTLENBQUMsQ0FBQztRQUNqQyxnQkFBVyxHQUFHLEtBQUssQ0FBVSxTQUFTLENBQUMsQ0FBQztRQUN4QyxlQUFVLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzFCLHVCQUFrQixHQUFFLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQWlDbEQ7Ozs7OztXQU1HO1FBQ0Qsb0VBQW9FO1FBQ3BFLGdDQUFnQztRQUNoQywwREFBMEQ7UUFDMUQsa0JBQWEsR0FBQyxDQUFDLEtBQWEsRUFBRSxJQUFxQixFQUFDLEVBQUU7WUFDcEQsSUFBSSxVQUFVLEdBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3BDLElBQUksTUFBTSxH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IjpbImltcG9ydCB7IENka0RyYWcsIENka0RyYWdEcm9wIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2RyYWctZHJvcCc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBpbmplY3QsIGlucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IG1lbW9pemUgfSBmcm9tICdsb2Rhc2gnO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgSnNvblNjaGVtYUZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vanNvbi1zY2hlbWEtZm9ybS5zZXJ2aWNlJztcclxuQENvbXBvbmVudCh7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOmNvbXBvbmVudC1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAncm9vdC13aWRnZXQnLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNka0Ryb3BMaXN0IChjZGtEcm9wTGlzdERyb3BwZWQpPVwiZHJvcCgkZXZlbnQpXCIgXHJcbiAgICAgIFtjbGFzcy5mbGV4LWluaGVyaXRdPVwidHJ1ZVwiXHJcbiAgICAgIFtjZGtEcm9wTGlzdFNvcnRQcmVkaWNhdGVdPVwic29ydFByZWRpY2F0ZVwiXHJcbiAgICA+XHJcbiAgICAgIDwhLS0gLWZvciBub3cgbGVmdCBvdXRcclxuICAgICAgY2RrRHJhZ0hhbmRsZSBkaXJlY3RpdmUsIGJ5IGl0c2VsZiwgZG9lcyBub3QgZGlzYWJsZSB0aGUgXHJcbiAgICAgIGRlZmF1bHQgZHJhZyBiZWhhdmlvciBvZiBpdHMgcGFyZW50IGNka0RyYWcgZWxlbWVudC4gXHJcbiAgICAgIFlvdSBtdXN0IGV4cGxpY2l0bHkgZGlzYWJsZSBkcmFnZ2luZyBvbiB0aGUgbWFpbiBlbGVtZW50IFxyXG4gICAgICBhbmQgcmUtZW5hYmxlIGl0IG9ubHkgd2hlbiB1c2luZyB0aGUgaGFuZGxlLlxyXG4gICAgICAtLT5cclxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgbGF5b3V0SXRlbSBvZiBsYXlvdXQoKTsgbGV0IGkgPSBpbmRleDt0cmFja0J5OiB0cmFja0J5Rm5cIlxyXG4gICAgICAgICBjZGtEcmFnICBbY2RrRHJhZ1N0YXJ0RGVsYXldPVwie3RvdWNoOjEwMDAsbW91c2U6MH1cIlxyXG4gICAgICAgIFtjZGtEcmFnRGlzYWJsZWRdPVwiIWlzRHJhZ2dhYmxlKGxheW91dEl0ZW0pXCJcclxuICAgICAgICBbY2xhc3MuZm9ybS1mbGV4LWl0ZW1dPVwiaXNGbGV4SXRlbSgpXCJcclxuICAgICAgICBbc3R5bGUuYWxpZ24tc2VsZl09XCIobGF5b3V0SXRlbS5vcHRpb25zIHx8IHt9KVsnYWxpZ24tc2VsZiddXCJcclxuICAgICAgICBbc3R5bGUuZmxleC1iYXNpc109XCJnZXRGbGV4QXR0cmlidXRlKGxheW91dEl0ZW0sICdmbGV4LWJhc2lzJylcIlxyXG4gICAgICAgIFtzdHlsZS5mbGV4LWdyb3ddPVwiZ2V0RmxleEF0dHJpYnV0ZShsYXlvdXRJdGVtLCAnZmxleC1ncm93JylcIlxyXG4gICAgICAgIFtzdHlsZS5mbGV4LXNocmlua109XCJnZXRGbGV4QXR0cmlidXRlKGxheW91dEl0ZW0sICdmbGV4LXNocmluaycpXCJcclxuICAgICAgICBbc3R5bGUub3JkZXJdPVwiKGxheW91dEl0ZW0ub3B0aW9ucyB8fCB7fSkub3JkZXJcIlxyXG4gICAgICAgID5cclxuXHJcbiAgICAgICAgPCEtLSB3b3JrYXJvdW5kIHRvIGRpc2JhbGUgZHJhZ2dpbmcgb2YgaW5wdXQgZmllbGRzIC0tPlxyXG4gICAgICAgIDwhLS1cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwibGF5b3V0SXRlbT8uZGF0YVR5cGUgIT0nb2JqZWN0J1wiICBjZGtEcmFnSGFuZGxlPlxyXG4gICAgICAgICA8cD5EcmFnIEhhbmRsZSB7e2xheW91dEl0ZW0/LmRhdGFUeXBlfX08L3A+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgLS0+XHJcbiAgICAgICAgPCEtLU5CIG9yZGVyYWJsZSBkaXJlY3RpdmUgaXMgbm90IHVzZWQgYnV0IGhhcyBiZWVuIGxlZnQgaW4gZm9yIG5vdyBhbmQgc2V0IHRvIGZhbHNlXHJcbiAgICAgICAgICBvdGhlcndpc2UgdGhlIGNvbXBpbGVyIHdvbid0IHJlY29nbml6ZSBkYXRhSW5kZXggYW5kIG90aGVyIGRlcGVuZGVudCBhdHRyaWJ1dGVzXHJcbiAgICAgICAgLS0+XHJcbiAgICAgICAgPCEtLVxyXG4gICAgICAgIDxkaXYgXHJcbiAgICAgICAgICBbZGF0YUluZGV4XT1cImxheW91dEl0ZW0/LmFycmF5SXRlbSA/IChkYXRhSW5kZXgoKSB8fCBbXSkuY29uY2F0KGkpIDogKGRhdGFJbmRleCgpIHx8IFtdKVwiXHJcbiAgICAgICAgICBbbGF5b3V0SW5kZXhdPVwiKGxheW91dEluZGV4KCkgfHwgW10pLmNvbmNhdChpKVwiXHJcbiAgICAgICAgICBbbGF5b3V0Tm9kZV09XCJsYXlvdXRJdGVtXCJcclxuICAgICAgICAgIFtvcmRlcmFibGVdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgPlxyXG4gICAgICAgICAgPHNlbGVjdC1mcmFtZXdvcmstd2lkZ2V0ICpuZ0lmPVwic2hvd1dpZGdldChsYXlvdXRJdGVtKVwiXHJcbiAgICAgICAgICAgIFtkYXRhSW5kZXhdPVwibGF5b3V0SXRlbT8uYXJyYXlJdGVtID8gKGRhdGFJbmRleCgpIHx8IFtdKS5jb25jYXQoaSkgOiAoZGF0YUluZGV4KCkgfHwgW10pXCJcclxuICAgICAgICAgICAgW2xheW91dEluZGV4XT1cIihsYXlvdXRJbmRleCgpIHx8IFtdKS5jb25jYXQoaSlcIlxyXG4gICAgICAgICAgICBbbGF5b3V0Tm9kZV09XCJsYXlvdXRJdGVtXCI+PC9zZWxlY3QtZnJhbWV3b3JrLXdpZGdldD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICAtLT5cclxuICAgICAgPHNlbGVjdC1mcmFtZXdvcmstd2lkZ2V0ICpuZ0lmPVwic2hvd1dpZGdldChsYXlvdXRJdGVtKVwiXHJcbiAgICAgICAgICAgIFtkYXRhSW5kZXhdPVwiZ2V0U2VsZWN0RnJhbWV3b3JrSW5wdXRzKGxheW91dEl0ZW0saSkuZGF0YUluZGV4XCJcclxuICAgICAgICAgICAgW2xheW91dEluZGV4XT1cImdldFNlbGVjdEZyYW1ld29ya0lucHV0cyhsYXlvdXRJdGVtLGkpLmxheW91dEluZGV4XCJcclxuICAgICAgICAgICAgW2xheW91dE5vZGVdPVwiZ2V0U2VsZWN0RnJhbWV3b3JrSW5wdXRzKGxheW91dEl0ZW0saSkubGF5b3V0Tm9kZVwiPlxyXG5cdFx0ICA8L3NlbGVjdC1mcmFtZXdvcmstd2lkZ2V0PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgYCxcclxuICBzdHlsZXM6IFtgXHJcbiAgICBbZHJhZ2dhYmxlPXRydWVdIHtcclxuICAgICAgdHJhbnNpdGlvbjogYWxsIDE1MG1zIGN1YmljLWJlemllciguNCwgMCwgLjIsIDEpO1xyXG4gICAgfVxyXG4gICAgW2RyYWdnYWJsZT10cnVlXTpob3ZlciB7XHJcbiAgICAgIGN1cnNvcjogbW92ZTtcclxuICAgICAgYm94LXNoYWRvdzogMnB4IDJweCA0cHggcmdiYSgwLCAwLCAwLCAwLjIpO1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDEwO1xyXG4gICAgICBtYXJnaW4tdG9wOiAtMXB4O1xyXG4gICAgICBtYXJnaW4tbGVmdDogLTFweDtcclxuICAgICAgbWFyZ2luLXJpZ2h0OiAxcHg7XHJcbiAgICAgIG1hcmdpbi1ib3R0b206IDFweDtcclxuICAgIH1cclxuICAgIFtkcmFnZ2FibGU9dHJ1ZV0uZHJhZy10YXJnZXQtdG9wIHtcclxuICAgICAgYm94LXNoYWRvdzogMCAtMnB4IDAgIzAwMDtcclxuICAgICAgcG9zaXRpb246IHJlbGF0aXZlOyB6LWluZGV4OiAyMDtcclxuICAgIH1cclxuICAgIFtkcmFnZ2FibGU9dHJ1ZV0uZHJhZy10YXJnZXQtYm90dG9tIHtcclxuICAgICAgYm94LXNoYWRvdzogMCAycHggMCAjMDAwO1xyXG4gICAgICBwb3NpdGlvbjogcmVsYXRpdmU7IHotaW5kZXg6IDIwO1xyXG4gICAgfVxyXG4gICAgLmZsZXgtaW5oZXJpdHtcclxuICAgICAgZGlzcGxheTppbmhlcml0O1xyXG4gICAgICBmbGV4LWZsb3c6aW5oZXJpdDtcclxuICAgICAgZmxleC13cmFwOmluaGVyaXQ7XHJcbiAgICAgIGZsZXgtZGlyZWN0aW9uOmluaGVyaXQ7XHJcbiAgICAgIHdpZHRoOjEwMCVcclxuICAgIH1cclxuICBgXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIHN0YW5kYWxvbmU6IGZhbHNlXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSb290Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksT25DaGFuZ2VzIHtcclxuXHJcbiAgcHJpdmF0ZSBqc2YgPSBpbmplY3QoSnNvblNjaGVtYUZvcm1TZXJ2aWNlKTtcclxuICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgb3B0aW9uczogYW55O1xyXG4gIHJlYWRvbmx5IGRhdGFJbmRleCA9IGlucHV0PG51bWJlcltdPih1bmRlZmluZWQpO1xyXG4gIHJlYWRvbmx5IGxheW91dEluZGV4ID0gaW5wdXQ8bnVtYmVyW10+KHVuZGVmaW5lZCk7XHJcbiAgcmVhZG9ubHkgbGF5b3V0ID0gaW5wdXQ8YW55W10+KHVuZGVmaW5lZCk7XHJcbiAgcmVhZG9ubHkgaXNPcmRlcmFibGUgPSBpbnB1dDxib29sZWFuPih1bmRlZmluZWQpO1xyXG4gIHJlYWRvbmx5IGlzRmxleEl0ZW0gPSBpbnB1dChmYWxzZSk7XHJcbiAgcmVhZG9ubHkgbWVtb2l6YXRpb25FbmFibGVkPSBpbnB1dDxib29sZWFuPih0cnVlKTtcclxuXHJcbiAgZGF0YUNoYW5nZXNTdWJzOlN1YnNjcmlwdGlvbjtcclxuXHJcbiAgZHJvcChldmVudDogQ2RrRHJhZ0Ryb3A8c3RyaW5nW10+KSB7XHJcbiAgICAvLyBtb3N0IGxpa2VseSB3aHkgdGhpcyBldmVudCBpcyB1c2VkIGlzIHRvIGdldCB0aGUgZHJhZ2dpbmcgZWxlbWVudCdzIGN1cnJlbnQgaW5kZXhcclxuICAgIGxldCBzcmNJbmQ9ZXZlbnQucHJldmlvdXNJbmRleDtcclxuICAgIGxldCB0cmdJbmQ9ZXZlbnQuY3VycmVudEluZGV4O1xyXG4gICAgbGV0IGxheW91dEl0ZW09dGhpcy5sYXlvdXQoKVt0cmdJbmRdO1xyXG4gICAgbGV0IGRhdGFJbmQ9bGF5b3V0SXRlbT8uYXJyYXlJdGVtID8gKHRoaXMuZGF0YUluZGV4KCkgfHwgW10pLmNvbmNhdCh0cmdJbmQpIDogKHRoaXMuZGF0YUluZGV4KCkgfHwgW10pO1xyXG4gICAgbGV0IGxheW91dEluZD0odGhpcy5sYXlvdXRJbmRleCgpIHx8IFtdKS5jb25jYXQodHJnSW5kKVxyXG4gICAgbGV0IGl0ZW1DdHg6YW55PXtcclxuICAgICAgZGF0YUluZGV4OigpPT57cmV0dXJuIGRhdGFJbmR9LFxyXG4gICAgICBsYXlvdXRJbmRleDooKT0+e3JldHVybiBsYXlvdXRJbmR9LFxyXG4gICAgICBsYXlvdXROb2RlOigpPT57cmV0dXJuIGxheW91dEl0ZW19LFxyXG4gICAgfVxyXG4gICAgdGhpcy5qc2YubW92ZUFycmF5SXRlbShpdGVtQ3R4LCBzcmNJbmQsIHRyZ0luZCx0cnVlKTtcclxuICB9XHJcblxyXG4gIGlzRHJhZ2dhYmxlKG5vZGU6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgbGV0IHJlc3VsdD1ub2RlLmFycmF5SXRlbSAmJiBub2RlLnR5cGUgIT09ICckcmVmJyAmJlxyXG4gICAgbm9kZS5hcnJheUl0ZW1UeXBlID09PSAnbGlzdCcgJiYgdGhpcy5pc09yZGVyYWJsZSgpICE9PSBmYWxzZVxyXG4gICAgJiYgbm9kZS50eXBlICE9PSdzdWJtaXQnXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLy9UT0RPIGFsc28gbmVlZCB0byB0aGluayBvZiBvdGhlciB0eXBlcyBzdWNoIGFzIGJ1dHRvbiB3aGljaCBjYW4gYmVcclxuICAvL2NyZWF0ZWQgYnkgYW4gYXJiaXRyYXJ5IGxheW91dFxyXG4gIGlzRml4ZWQobm9kZTogYW55KTogYm9vbGVhbiB7XHJcbiAgICBsZXQgcmVzdWx0PW5vZGUudHlwZSA9PSAnJHJlZic7XHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUHJlZGljYXRlIGZ1bmN0aW9uIHRoYXQgZGlzYWxsb3dzICckcmVmJyBpdGVtIHNvcnRzXHJcbiAgICogTkIgZGVjbGFyZWQgYXMgYSB2YXIgaW5zdGVhZCBvZiBhIGZ1bmN0aW9uIFxyXG4gICAqIGxpa2Ugc29ydFByZWRpY2F0ZShpbmRleDogbnVtYmVyLCBpdGVtOiBDZGtEcmFnPG51bWJlcj4pey4ufVxyXG4gICAqIHNpbmNlICd0aGlzJyBpcyBib3VuZCB0byB0aGUgZHJhZ2xpc3QgYW5kIGRvZXNuJ3QgcmVmZXJlbmNlIHRoZVxyXG4gICAqIEZsZXhMYXlvdXRSb290Q29tcG9uZW50IGluc3RhbmNlXHJcbiAgICovXHJcbiAgICAvL1RPRE8gYWxzbyBuZWVkIHRvIHRoaW5rIG9mIG90aGVyIHR5cGVzIHN1Y2ggYXMgYnV0dG9uIHdoaWNoIGNhbiBiZVxyXG4gICAgLy9jcmVhdGVkIGJ5IGFuIGFyYml0cmFyeSBsYXlvdXRcclxuICAgIC8vbWlnaHQgbm90IGJlIG5lZWRlZCBhZGRlZCBjb25kaXRpb24gdG8gW2Nka0RyYWdEaXNhYmxlZF1cclxuICAgIHNvcnRQcmVkaWNhdGU9KGluZGV4OiBudW1iZXIsIGl0ZW06IENka0RyYWc8bnVtYmVyPik9PiB7XHJcbiAgICAgIGxldCBsYXlvdXRJdGVtPXRoaXMubGF5b3V0KClbaW5kZXhdO1xyXG4gICAgICBsZXQgcmVzdWx0PXRoaXMuaXNEcmFnZ2FibGUobGF5b3V0SXRlbSk7XHJcbiAgICAgIC8vbGF5b3V0SXRlbS50eXBlICE9ICckcmVmJztcclxuICAgICAgcmV0dXJuIHJlc3VsdDtcclxuICAgIH1cclxuXHJcbiAgLy8gU2V0IGF0dHJpYnV0ZXMgZm9yIGZsZXhib3ggY2hpbGRcclxuICAvLyAoY29udGFpbmVyIGF0dHJpYnV0ZXMgYXJlIHNldCBpbiBzZWN0aW9uLmNvbXBvbmVudClcclxuICBnZXRGbGV4QXR0cmlidXRlKG5vZGU6IGFueSwgYXR0cmlidXRlOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGluZGV4ID0gWydmbGV4LWdyb3cnLCAnZmxleC1zaHJpbmsnLCAnZmxleC1iYXNpcyddLmluZGV4T2YoYXR0cmlidXRlKTtcclxuICAgIHJldHVybiAoKG5vZGUub3B0aW9ucyB8fCB7fSkuZmxleCB8fCAnJykuc3BsaXQoL1xccysvKVtpbmRleF0gfHxcclxuICAgICAgKG5vZGUub3B0aW9ucyB8fCB7fSlbYXR0cmlidXRlXSB8fCBbJzEnLCAnMScsICdhdXRvJ11baW5kZXhdO1xyXG4gIH1cclxuXHJcbiAgLy9wcml2YXRlIHNlbGVjdGZyYW1ld29ya0lucHV0Q2FjaGUgPSBuZXcgTWFwPHN0cmluZywgeyBkYXRhSW5kZXg6IGFueVtdLCBsYXlvdXRJbmRleDogYW55W10sIGxheW91dE5vZGU6IGFueSB9PigpO1xyXG5cclxuICAvL1RPRE8gcmV2aWV3IGNhY2hpbmctaWYgZm9ybSBmaWVsZCB2YWx1ZXMgY2hhbmdlLCB0aGUgY2hhbmdlcyBhcmUgbm90IHByb3BhZ2F0ZWRcclxuXHJcbiAgLypcclxuICBnZXRTZWxlY3RGcmFtZXdvcmtJbnB1dHMobGF5b3V0SXRlbTogYW55LCBpOiBudW1iZXIpIHtcclxuICAgIC8vIENyZWF0ZSBhIHVuaXF1ZSBrZXkgYmFzZWQgb24gdGhlIGxheW91dEl0ZW0gYW5kIGluZGV4XHJcbiAgICBjb25zdCBjYWNoZUtleSA9IGAke2xheW91dEl0ZW0uX2lkfS0ke2l9YDtcclxuICBcclxuICAgIC8vIElmIHRoZSByZXN1bHQgaXMgYWxyZWFkeSBpbiB0aGUgY2FjaGUsIHJldHVybiBpdFxyXG4gICAgaWYodGhpcy5lbmFibGVDYWNoaW5nKXtcclxuICAgICAgaWYgKHRoaXMuc2VsZWN0ZnJhbWV3b3JrSW5wdXRDYWNoZS5oYXMoY2FjaGVLZXkpKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZnJhbWV3b3JrSW5wdXRDYWNoZS5nZXQoY2FjaGVLZXkpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG5cclxuICAgIC8vIElmIG5vdCBjYWNoZWQsIGNhbGN1bGF0ZSB0aGUgdmFsdWVzIChhc3N1bWluZyBkYXRhSW5kZXgoKSBhbmQgbGF5b3V0SW5kZXgoKSBhcmUgZnVuY3Rpb25zKVxyXG4gICAgY29uc3QgZGF0YUluZGV4ID0gbGF5b3V0SXRlbT8uYXJyYXlJdGVtID8gKHRoaXMuZGF0YUluZGV4KCkgfHwgW10pLmNvbmNhdChpKSA6ICh0aGlzLmRhdGFJbmRleCgpIHx8IFtdKTtcclxuICAgIGNvbnN0IGxheW91dEluZGV4ID0gKHRoaXMubGF5b3V0SW5kZXgoKSB8fCBbXSkuY29uY2F0KGkpO1xyXG5cclxuICAgIC8vIFNhdmUgdGhlIHJlc3VsdCBpbiB0aGUgY2FjaGVcclxuICAgIGNvbnN0IHJlc3VsdCA9IHsgZGF0YUluZGV4LCBsYXlvdXRJbmRleCwgbGF5b3V0Tm9kZTogbGF5b3V0SXRlbSB9O1xyXG4gICAgaWYodGhpcy5lbmFibGVDYWNoaW5nKXtcclxuICAgICAgdGhpcy5zZWxlY3RmcmFtZXdvcmtJbnB1dENhY2hlLnNldChjYWNoZUtleSwgcmVzdWx0KTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gcmVzdWx0O1xyXG4gIH1cclxuICAgICovXHJcblxyXG4gIHByaXZhdGUgX2dldFNlbGVjdEZyYW1ld29ya0lucHV0c1JhdyA9IChsYXlvdXRJdGVtOiBhbnksIGk6IG51bWJlcikgPT4ge1xyXG4gICAgY29uc3QgZGF0YUluZGV4VmFsdWUgPSB0aGlzLmRhdGFJbmRleCgpIHx8IFtdO1xyXG4gICAgY29uc3QgbGF5b3V0SW5kZXhWYWx1ZSA9IHRoaXMubGF5b3V0SW5kZXgoKSB8fCBbXTtcclxuXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBsYXlvdXROb2RlOiBsYXlvdXRJdGVtLFxyXG4gICAgICBsYXlvdXRJbmRleDogWy4uLmxheW91dEluZGV4VmFsdWUsIGldLFxyXG4gICAgICBkYXRhSW5kZXg6IGxheW91dEl0ZW0/LmFycmF5SXRlbSA/IFsuLi5kYXRhSW5kZXhWYWx1ZSwgaV0gOiBkYXRhSW5kZXhWYWx1ZSxcclxuICAgIH07XHJcbiAgfTtcclxuXHJcbiAgLy8gRGVmaW5lIGEgc2VwYXJhdGUgZnVuY3Rpb24gdG8gaG9sZCB0aGUgbWVtb2l6ZWQgdmVyc2lvblxyXG4gIHByaXZhdGUgX2dldFNlbGVjdEZyYW1ld29ya0lucHV0c01lbW9pemVkID0gbWVtb2l6ZShcclxuICAgIHRoaXMuX2dldFNlbGVjdEZyYW1ld29ya0lucHV0c1JhdyxcclxuICAgIChsYXlvdXRJdGVtOiBhbnksIGk6IG51bWJlcikgPT4ge1xyXG4gICAgICBjb25zdCBsYXlvdXRJdGVtS2V5ID0gbGF5b3V0SXRlbT8uaWQgPz8gSlNPTi5zdHJpbmdpZnkobGF5b3V0SXRlbSk7XHJcbiAgICAgIHJldHVybiBgJHtsYXlvdXRJdGVtS2V5fS0ke2l9YDtcclxuICAgIH1cclxuICApO1xyXG5cclxuICAvLyBUaGlzIGlzIHRoZSBwdWJsaWMgZnVuY3Rpb24gdGhhdCB0aGUgdGVtcGxhdGUgY2FsbHNcclxuICBnZXRTZWxlY3RGcmFtZXdvcmtJbnB1dHMobGF5b3V0SXRlbTogYW55LCBpOiBudW1iZXIpIHtcclxuICAgIGlmICh0aGlzLm1lbW9pemF0aW9uRW5hYmxlZCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5fZ2V0U2VsZWN0RnJhbWV3b3JrSW5wdXRzTWVtb2l6ZWQobGF5b3V0SXRlbSwgaSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5fZ2V0U2VsZWN0RnJhbWV3b3JrSW5wdXRzUmF3KGxheW91dEl0ZW0sIGkpO1xyXG4gICAgfVxyXG4gIH1cclxuICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlciwgaXRlbTogYW55KTogYW55IHtcclxuICAgIHJldHVybiBpdGVtLl9pZCA/PyBpbmRleDtcclxuICB9XHJcblxyXG4gIFxyXG5cclxuICAvKlxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIC8vIElmIGFueSBvZiB0aGUgaW5wdXQgcHJvcGVydGllcyBjaGFuZ2UsIGNsZWFyIHRoZSBjYWNoZVxyXG4gICAgaWYgKGNoYW5nZXMuZGF0YUluZGV4IHx8IGNoYW5nZXMubGF5b3V0SW5kZXggfHwgY2hhbmdlcy5sYXlvdXQpIHtcclxuICAgICAgdGhpcy5zZWxlY3RmcmFtZXdvcmtJbnB1dENhY2hlPy5jbGVhcigpOyAvLyBDbGVhciB0aGUgZW50aXJlIGNhY2hlXHJcbiAgICB9XHJcbiAgfVxyXG4gICovXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ2xheW91dCddIHx8IGNoYW5nZXNbJ2RhdGFJbmRleCddIHx8IGNoYW5nZXNbJ2xheW91dEluZGV4J10pIHtcclxuICAgICAgLy8gQ2xlYXIgdGhlIGVudGlyZSBjYWNoZSBvZiB0aGUgbWVtb2l6ZWQgZnVuY3Rpb25cclxuICAgICAgdGhpcy5fZ2V0U2VsZWN0RnJhbWV3b3JrSW5wdXRzTWVtb2l6ZWQuY2FjaGUuY2xlYXIoKTtcclxuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgc2hvd1dpZGdldChsYXlvdXROb2RlOiBhbnkpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmpzZi5ldmFsdWF0ZUNvbmRpdGlvbihsYXlvdXROb2RlLCB0aGlzLmRhdGFJbmRleCgpKTtcclxuICB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgIGlmKHRoaXMubWVtb2l6YXRpb25FbmFibGVkKXtcclxuICAgICAgICB0aGlzLmpzZi5kYXRhQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbCk9PntcclxuICAgICAgICAgIC8vdGhpcy5zZWxlY3RmcmFtZXdvcmtJbnB1dENhY2hlPy5jbGVhcigpO1xyXG4gICAgICAgICAgdGhpcy5fZ2V0U2VsZWN0RnJhbWV3b3JrSW5wdXRzTWVtb2l6ZWQuY2FjaGUuY2xlYXIoKTtcclxuICAgICAgICAvL1RPRE8tZml4IGZvciBub3cgY2hhbmdlZCB0byBkZXRlY3RDaGFuZ2VzLVxyXG4gICAgICAgIC8vdXNlZCB0byB1cGRhdGVkIHRoZSBkeW5hbWljIHRpdGxlcyBpbiB0YWIgY29tcG5lbnRzIFxyXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgLy8gdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpOy1icmVha3Mgb25lT2YvIG1hdGRhdGVwaWNrZXJcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcblxyXG4gIH1cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgLy90aGlzLnNlbGVjdGZyYW1ld29ya0lucHV0Q2FjaGU/LmNsZWFyKClcclxuICAgICAgLy90aGlzLnNlbGVjdGZyYW1ld29ya0lucHV0Q2FjaGU9bnVsbDtcclxuICAgICAgdGhpcy5fZ2V0U2VsZWN0RnJhbWV3b3JrSW5wdXRzTWVtb2l6ZWQuY2FjaGUuY2xlYXIoKTtcclxuICAgICAgdGhpcy5kYXRhQ2hhbmdlc1N1YnM/LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG4gIFxyXG5cclxufVxyXG4iXX0=
@@ -126,7 +126,7 @@ export class SectionComponent {
126
126
  [class]="options?.labelHelpBlockClass || ''"
127
127
  [innerHTML]="options?.description"></p>
128
128
  </div>
129
- </fieldset>`, isInline: true, styles: [".legend{font-weight:700}.expandable>legend:before,.expandable>label:before{content:\"\\25b6\";padding-right:.3em;font-family:auto}.expanded>legend:before,.expanded>label:before{content:\"\\25bc\";padding-right:.2em}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.RootComponent, selector: "root-widget", inputs: ["dataIndex", "layoutIndex", "layout", "isOrderable", "isFlexItem"] }] }); }
129
+ </fieldset>`, isInline: true, styles: [".legend{font-weight:700}.expandable>legend:before,.expandable>label:before{content:\"\\25b6\";padding-right:.3em;font-family:auto}.expanded>legend:before,.expanded>label:before{content:\"\\25bc\";padding-right:.2em}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.RootComponent, selector: "root-widget", inputs: ["dataIndex", "layoutIndex", "layout", "isOrderable", "isFlexItem", "memoizationEnabled"] }] }); }
130
130
  }
131
131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SectionComponent, decorators: [{
132
132
  type: Component,
@@ -193,4 +193,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
193
193
  </div>
194
194
  </fieldset>`, styles: [".legend{font-weight:700}.expandable>legend:before,.expandable>label:before{content:\"\\25b6\";padding-right:.3em;font-family:auto}.expanded>legend:before,.expanded>label:before{content:\"\\25bc\";padding-right:.2em}\n"] }]
195
195
  }] });
196
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1mb3Jtd29ya3MtY29yZS9zcmMvbGliL3dpZGdldC1saWJyYXJ5L3NlY3Rpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7OztBQTBFcEUsTUFBTSxPQUFPLGdCQUFnQjtJQXZFN0I7UUF3RVUsUUFBRyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRzVDLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFFUCxlQUFVLEdBQUcsS0FBSyxDQUFNLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLGdCQUFXLEdBQUcsS0FBSyxDQUFXLFNBQVMsQ0FBQyxDQUFDO1FBQ3pDLGNBQVMsR0FBRyxLQUFLLENBQVcsU0FBUyxDQUFDLENBQUM7S0ErQ2pEO0lBN0NDLElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQyxDQUFDO1lBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ25ELFFBQVEsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQy9CLEtBQUssVUFBVSxDQUFDO1lBQUMsS0FBSyxPQUFPLENBQUM7WUFBQyxLQUFLLEtBQUssQ0FBQztZQUFDLEtBQUssa0JBQWtCLENBQUM7WUFDbkUsS0FBSyxjQUFjLENBQUM7WUFBQyxLQUFLLGdCQUFnQixDQUFDO1lBQUMsS0FBSyxnQkFBZ0I7Z0JBQy9ELElBQUksQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDO2dCQUNsQyxNQUFNO1lBQ04sU0FBUyxrRUFBa0U7Z0JBQ3pFLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO2dCQUM3QixNQUFNO1FBQ1IsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCx1Q0FBdUM7SUFDdkMsK0NBQStDO0lBQy9DLGdCQUFnQixDQUFDLFNBQWlCO1FBQ2hDLE1BQU0sVUFBVSxHQUNkLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLEtBQUssTUFBTTtZQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXO1lBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQztRQUNsQyxJQUFJLFNBQVMsS0FBSyxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUFDLE9BQU8sSUFBSSxDQUFDO1FBQUMsQ0FBQztRQUN6RCxRQUFRLFNBQVMsRUFBRSxDQUFDO1lBQ2xCLEtBQUssU0FBUztnQkFDWixPQUFPLFVBQVUsQ0FBQztZQUNwQixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3pDLEtBQUssZ0JBQWdCLENBQUM7WUFBQyxLQUFLLFdBQVc7Z0JBQ3JDLE1BQU0sS0FBSyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNqRSxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDO29CQUMxRCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNELEtBQUssaUJBQWlCLENBQUM7WUFBQyxLQUFLLGFBQWEsQ0FBQztZQUFDLEtBQUssZUFBZTtnQkFDOUQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDOytHQXREVSxnQkFBZ0I7bUdBQWhCLGdCQUFnQix1ZEFwRWpCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2dCQTZESTs7NEZBT0gsZ0JBQWdCO2tCQXZFNUIsU0FBUzsrQkFFRSxnQkFBZ0IsWUFDaEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Z0JBNkRJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSnNvblNjaGVtYUZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vanNvbi1zY2hlbWEtZm9ybS5zZXJ2aWNlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICdzZWN0aW9uLXdpZGdldCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgKm5nSWY9XCJjb250YWluZXJUeXBlID09PSAnZGl2J1wiXHJcbiAgICAgIFtjbGFzc109XCJvcHRpb25zPy5odG1sQ2xhc3MgfHwgJydcIlxyXG4gICAgICBbY2xhc3MuZXhwYW5kYWJsZV09XCJvcHRpb25zPy5leHBhbmRhYmxlICYmICFleHBhbmRlZFwiXHJcbiAgICAgIFtjbGFzcy5leHBhbmRlZF09XCJvcHRpb25zPy5leHBhbmRhYmxlICYmIGV4cGFuZGVkXCI+XHJcbiAgICAgIDxsYWJlbCAqbmdJZj1cInNlY3Rpb25UaXRsZVwiXHJcbiAgICAgICAgY2xhc3M9XCJsZWdlbmRcIlxyXG4gICAgICAgIFtjbGFzc109XCJvcHRpb25zPy5sYWJlbEh0bWxDbGFzcyB8fCAnJ1wiXHJcbiAgICAgICAgW2lubmVySFRNTF09XCJzZWN0aW9uVGl0bGVcIlxyXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVFeHBhbmRlZCgpXCI+PC9sYWJlbD5cclxuICAgICAgPHJvb3Qtd2lkZ2V0IFxyXG4gICAgICAgIFtkYXRhSW5kZXhdPVwiZGF0YUluZGV4KClcIlxyXG4gICAgICAgIFtsYXlvdXRdPVwibGF5b3V0Tm9kZSgpLml0ZW1zXCJcclxuICAgICAgICBbbGF5b3V0SW5kZXhdPVwibGF5b3V0SW5kZXgoKVwiXHJcbiAgICAgICAgW2lzRmxleEl0ZW1dPVwiZ2V0RmxleEF0dHJpYnV0ZSgnaXMtZmxleCcpXCJcclxuICAgICAgICBbaXNPcmRlcmFibGVdPVwib3B0aW9ucz8ub3JkZXJhYmxlXCJcclxuICAgICAgICBbY2xhc3MuZm9ybS1mbGV4LWNvbHVtbl09XCJnZXRGbGV4QXR0cmlidXRlKCdmbGV4LWRpcmVjdGlvbicpID09PSAnY29sdW1uJ1wiXHJcbiAgICAgICAgW2NsYXNzLmZvcm0tZmxleC1yb3ddPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZmxleC1kaXJlY3Rpb24nKSA9PT0gJ3JvdydcIlxyXG4gICAgICAgIFtzdHlsZS5hbGlnbi1jb250ZW50XT1cImdldEZsZXhBdHRyaWJ1dGUoJ2FsaWduLWNvbnRlbnQnKVwiXHJcbiAgICAgICAgW3N0eWxlLmFsaWduLWl0ZW1zXT1cImdldEZsZXhBdHRyaWJ1dGUoJ2FsaWduLWl0ZW1zJylcIlxyXG4gICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cIiFleHBhbmRlZD8nbm9uZSc6Z2V0RmxleEF0dHJpYnV0ZSgnZGlzcGxheScpXCJcclxuICAgICAgICBbc3R5bGUuZmxleC1kaXJlY3Rpb25dPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZmxleC1kaXJlY3Rpb24nKVwiXHJcbiAgICAgICAgW3N0eWxlLmZsZXgtd3JhcF09XCJnZXRGbGV4QXR0cmlidXRlKCdmbGV4LXdyYXAnKVwiXHJcbiAgICAgICAgW3N0eWxlLmp1c3RpZnktY29udGVudF09XCJnZXRGbGV4QXR0cmlidXRlKCdqdXN0aWZ5LWNvbnRlbnQnKVwiPjwvcm9vdC13aWRnZXQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxmaWVsZHNldCAqbmdJZj1cImNvbnRhaW5lclR5cGUgPT09ICdmaWVsZHNldCdcIlxyXG4gICAgICBbY2xhc3NdPVwib3B0aW9ucz8uaHRtbENsYXNzIHx8ICcnXCJcclxuICAgICAgW2NsYXNzLmV4cGFuZGFibGVdPVwib3B0aW9ucz8uZXhwYW5kYWJsZSAmJiAhZXhwYW5kZWRcIlxyXG4gICAgICBbY2xhc3MuZXhwYW5kZWRdPVwib3B0aW9ucz8uZXhwYW5kYWJsZSAmJiBleHBhbmRlZFwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJvcHRpb25zPy5yZWFkb25seVwiPlxyXG4gICAgICA8bGVnZW5kICpuZ0lmPVwic2VjdGlvblRpdGxlXCJcclxuICAgICAgICBjbGFzcz1cImxlZ2VuZFwiXHJcbiAgICAgICAgW2NsYXNzXT1cIm9wdGlvbnM/LmxhYmVsSHRtbENsYXNzIHx8ICcnXCJcclxuICAgICAgICBbaW5uZXJIVE1MXT1cInNlY3Rpb25UaXRsZVwiXHJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUV4cGFuZGVkKClcIj48L2xlZ2VuZD5cclxuICAgICAgPGRpdiAqbmdJZj1cIm9wdGlvbnM/Lm1lc3NhZ2VMb2NhdGlvbiAhPT0gJ2JvdHRvbSdcIj5cclxuICAgICAgICA8cCAqbmdJZj1cIm9wdGlvbnM/LmRlc2NyaXB0aW9uXCJcclxuICAgICAgICBjbGFzcz1cImhlbHAtYmxvY2tcIlxyXG4gICAgICAgIFtjbGFzc109XCJvcHRpb25zPy5sYWJlbEhlbHBCbG9ja0NsYXNzIHx8ICcnXCJcclxuICAgICAgICBbaW5uZXJIVE1MXT1cIm9wdGlvbnM/LmRlc2NyaXB0aW9uXCI+PC9wPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPHJvb3Qtd2lkZ2V0IFxyXG4gICAgICAgIFtkYXRhSW5kZXhdPVwiZGF0YUluZGV4KClcIlxyXG4gICAgICAgIFtsYXlvdXRdPVwibGF5b3V0Tm9kZSgpLml0ZW1zXCJcclxuICAgICAgICBbbGF5b3V0SW5kZXhdPVwibGF5b3V0SW5kZXgoKVwiXHJcbiAgICAgICAgW2lzRmxleEl0ZW1dPVwiZ2V0RmxleEF0dHJpYnV0ZSgnaXMtZmxleCcpXCJcclxuICAgICAgICBbaXNPcmRlcmFibGVdPVwib3B0aW9ucz8ub3JkZXJhYmxlXCJcclxuICAgICAgICBbY2xhc3MuZm9ybS1mbGV4LWNvbHVtbl09XCJnZXRGbGV4QXR0cmlidXRlKCdmbGV4LWRpcmVjdGlvbicpID09PSAnY29sdW1uJ1wiXHJcbiAgICAgICAgW2NsYXNzLmZvcm0tZmxleC1yb3ddPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZmxleC1kaXJlY3Rpb24nKSA9PT0gJ3JvdydcIlxyXG4gICAgICAgIFtzdHlsZS5hbGlnbi1jb250ZW50XT1cImdldEZsZXhBdHRyaWJ1dGUoJ2FsaWduLWNvbnRlbnQnKVwiXHJcbiAgICAgICAgW3N0eWxlLmFsaWduLWl0ZW1zXT1cImdldEZsZXhBdHRyaWJ1dGUoJ2FsaWduLWl0ZW1zJylcIlxyXG4gICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cIiFleHBhbmRlZD8nbm9uZSc6Z2V0RmxleEF0dHJpYnV0ZSgnZGlzcGxheScpXCJcclxuICAgICAgICBbc3R5bGUuZmxleC1kaXJlY3Rpb25dPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZmxleC1kaXJlY3Rpb24nKVwiXHJcbiAgICAgICAgW3N0eWxlLmZsZXgtd3JhcF09XCJnZXRGbGV4QXR0cmlidXRlKCdmbGV4LXdyYXAnKVwiXHJcbiAgICAgICAgW3N0eWxlLmp1c3RpZnktY29udGVudF09XCJnZXRGbGV4QXR0cmlidXRlKCdqdXN0aWZ5LWNvbnRlbnQnKVwiPjwvcm9vdC13aWRnZXQ+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJvcHRpb25zPy5tZXNzYWdlTG9jYXRpb24gPT09ICdib3R0b20nXCI+XHJcbiAgICAgICAgPHAgKm5nSWY9XCJvcHRpb25zPy5kZXNjcmlwdGlvblwiXHJcbiAgICAgICAgY2xhc3M9XCJoZWxwLWJsb2NrXCJcclxuICAgICAgICBbY2xhc3NdPVwib3B0aW9ucz8ubGFiZWxIZWxwQmxvY2tDbGFzcyB8fCAnJ1wiXHJcbiAgICAgICAgW2lubmVySFRNTF09XCJvcHRpb25zPy5kZXNjcmlwdGlvblwiPjwvcD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2ZpZWxkc2V0PmAsXHJcbiAgc3R5bGVzOiBbYFxyXG4gICAgLmxlZ2VuZCB7IGZvbnQtd2VpZ2h0OiBib2xkOyB9XHJcbiAgICAuZXhwYW5kYWJsZSA+IGxlZ2VuZDpiZWZvcmUsIC5leHBhbmRhYmxlID4gbGFiZWw6YmVmb3JlICB7IGNvbnRlbnQ6ICfilrYnOyBwYWRkaW5nLXJpZ2h0OiAuM2VtOyBmb250LWZhbWlseTphdXRvIH1cclxuICAgIC5leHBhbmRlZCA+IGxlZ2VuZDpiZWZvcmUsIC5leHBhbmRlZCA+IGxhYmVsOmJlZm9yZSAgeyBjb250ZW50OiAn4pa8JzsgcGFkZGluZy1yaWdodDogLjJlbTsgfVxyXG4gIGBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHJpdmF0ZSBqc2YgPSBpbmplY3QoSnNvblNjaGVtYUZvcm1TZXJ2aWNlKTtcclxuXHJcbiAgb3B0aW9uczogYW55O1xyXG4gIGV4cGFuZGVkID0gdHJ1ZTtcclxuICBjb250YWluZXJUeXBlOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgbGF5b3V0Tm9kZSA9IGlucHV0PGFueT4odW5kZWZpbmVkKTtcclxuICByZWFkb25seSBsYXlvdXRJbmRleCA9IGlucHV0PG51bWJlcltdPih1bmRlZmluZWQpO1xyXG4gIHJlYWRvbmx5IGRhdGFJbmRleCA9IGlucHV0PG51bWJlcltdPih1bmRlZmluZWQpO1xyXG5cclxuICBnZXQgc2VjdGlvblRpdGxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5ub3RpdGxlID8gbnVsbCA6IHRoaXMuanNmLnNldEl0ZW1UaXRsZSh0aGlzKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5qc2YuaW5pdGlhbGl6ZUNvbnRyb2wodGhpcyk7XHJcbiAgICB0aGlzLm9wdGlvbnMgPSB0aGlzLmxheW91dE5vZGUoKS5vcHRpb25zIHx8IHt9O1xyXG4gICAgdGhpcy5leHBhbmRlZCA9IHR5cGVvZiB0aGlzLm9wdGlvbnMuZXhwYW5kZWQgPT09ICdib29sZWFuJyA/XHJcbiAgICAgIHRoaXMub3B0aW9ucy5leHBhbmRlZCA6ICF0aGlzLm9wdGlvbnMuZXhwYW5kYWJsZTtcclxuICAgIHN3aXRjaCAodGhpcy5sYXlvdXROb2RlKCkudHlwZSkge1xyXG4gICAgICBjYXNlICdmaWVsZHNldCc6IGNhc2UgJ2FycmF5JzogY2FzZSAndGFiJzogY2FzZSAnYWR2YW5jZWRmaWVsZHNldCc6XHJcbiAgICAgIGNhc2UgJ2F1dGhmaWVsZHNldCc6IGNhc2UgJ29wdGlvbmZpZWxkc2V0JzogY2FzZSAnc2VsZWN0ZmllbGRzZXQnOlxyXG4gICAgICAgIHRoaXMuY29udGFpbmVyVHlwZSA9ICdmaWVsZHNldCc7XHJcbiAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OiAvLyAnZGl2JywgJ2ZsZXgnLCAnc2VjdGlvbicsICdjb25kaXRpb25hbCcsICdhY3Rpb25zJywgJ3RhZ3NpbnB1dCdcclxuICAgICAgICB0aGlzLmNvbnRhaW5lclR5cGUgPSAnZGl2JztcclxuICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0b2dnbGVFeHBhbmRlZCgpIHtcclxuICAgIGlmICh0aGlzLm9wdGlvbnMuZXhwYW5kYWJsZSkgeyB0aGlzLmV4cGFuZGVkID0gIXRoaXMuZXhwYW5kZWQ7IH1cclxuICB9XHJcblxyXG4gIC8vIFNldCBhdHRyaWJ1dGVzIGZvciBmbGV4Ym94IGNvbnRhaW5lclxyXG4gIC8vIChjaGlsZCBhdHRyaWJ1dGVzIGFyZSBzZXQgaW4gcm9vdC5jb21wb25lbnQpXHJcbiAgZ2V0RmxleEF0dHJpYnV0ZShhdHRyaWJ1dGU6IHN0cmluZykge1xyXG4gICAgY29uc3QgZmxleEFjdGl2ZTogYm9vbGVhbiA9XHJcbiAgICAgIHRoaXMubGF5b3V0Tm9kZSgpLnR5cGUgPT09ICdmbGV4JyB8fFxyXG4gICAgICAhIXRoaXMub3B0aW9ucy5kaXNwbGF5RmxleCB8fFxyXG4gICAgICB0aGlzLm9wdGlvbnMuZGlzcGxheSA9PT0gJ2ZsZXgnO1xyXG4gICAgaWYgKGF0dHJpYnV0ZSAhPT0gJ2ZsZXgnICYmICFmbGV4QWN0aXZlKSB7IHJldHVybiBudWxsOyB9XHJcbiAgICBzd2l0Y2ggKGF0dHJpYnV0ZSkge1xyXG4gICAgICBjYXNlICdpcy1mbGV4JzpcclxuICAgICAgICByZXR1cm4gZmxleEFjdGl2ZTtcclxuICAgICAgY2FzZSAnZGlzcGxheSc6XHJcbiAgICAgICAgcmV0dXJuIGZsZXhBY3RpdmUgPyAnZmxleCcgOiAnaW5pdGlhbCc7XHJcbiAgICAgIGNhc2UgJ2ZsZXgtZGlyZWN0aW9uJzogY2FzZSAnZmxleC13cmFwJzpcclxuICAgICAgICBjb25zdCBpbmRleCA9IFsnZmxleC1kaXJlY3Rpb24nLCAnZmxleC13cmFwJ10uaW5kZXhPZihhdHRyaWJ1dGUpO1xyXG4gICAgICAgIHJldHVybiAodGhpcy5vcHRpb25zWydmbGV4LWZsb3cnXSB8fCAnJykuc3BsaXQoL1xccysvKVtpbmRleF0gfHxcclxuICAgICAgICAgIHRoaXMub3B0aW9uc1thdHRyaWJ1dGVdIHx8IFsnY29sdW1uJywgJ25vd3JhcCddW2luZGV4XTtcclxuICAgICAgY2FzZSAnanVzdGlmeS1jb250ZW50JzogY2FzZSAnYWxpZ24taXRlbXMnOiBjYXNlICdhbGlnbi1jb250ZW50JzpcclxuICAgICAgICByZXR1cm4gdGhpcy5vcHRpb25zW2F0dHJpYnV0ZV07XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiJdfQ==
196
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1mb3Jtd29ya3MtY29yZS9zcmMvbGliL3dpZGdldC1saWJyYXJ5L3NlY3Rpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7OztBQTBFcEUsTUFBTSxPQUFPLGdCQUFnQjtJQXZFN0I7UUF3RVUsUUFBRyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRzVDLGFBQVEsR0FBRyxJQUFJLENBQUM7UUFFUCxlQUFVLEdBQUcsS0FBSyxDQUFNLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLGdCQUFXLEdBQUcsS0FBSyxDQUFXLFNBQVMsQ0FBQyxDQUFDO1FBQ3pDLGNBQVMsR0FBRyxLQUFLLENBQVcsU0FBUyxDQUFDLENBQUM7S0FpRGpEO0lBL0NDLElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkUsQ0FBQztJQUlELFFBQVE7UUFDTixJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLE9BQU8sSUFBSSxFQUFFLENBQUM7UUFDL0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxLQUFLLFNBQVMsQ0FBQyxDQUFDO1lBQzFELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDO1FBQ25ELFFBQVEsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQy9CLEtBQUssVUFBVSxDQUFDO1lBQUMsS0FBSyxPQUFPLENBQUM7WUFBQyxLQUFLLEtBQUssQ0FBQztZQUFDLEtBQUssa0JBQWtCLENBQUM7WUFDbkUsS0FBSyxjQUFjLENBQUM7WUFBQyxLQUFLLGdCQUFnQixDQUFDO1lBQUMsS0FBSyxnQkFBZ0I7Z0JBQy9ELElBQUksQ0FBQyxhQUFhLEdBQUcsVUFBVSxDQUFDO2dCQUNsQyxNQUFNO1lBQ04sU0FBUyxrRUFBa0U7Z0JBQ3pFLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO2dCQUM3QixNQUFNO1FBQ1IsQ0FBQztJQUNILENBQUM7SUFFRCxjQUFjO1FBQ1osSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCx1Q0FBdUM7SUFDdkMsK0NBQStDO0lBQy9DLGdCQUFnQixDQUFDLFNBQWlCO1FBQ2hDLE1BQU0sVUFBVSxHQUNkLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLEtBQUssTUFBTTtZQUNqQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXO1lBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxLQUFLLE1BQU0sQ0FBQztRQUNsQyxJQUFJLFNBQVMsS0FBSyxNQUFNLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUFDLE9BQU8sSUFBSSxDQUFDO1FBQUMsQ0FBQztRQUN6RCxRQUFRLFNBQVMsRUFBRSxDQUFDO1lBQ2xCLEtBQUssU0FBUztnQkFDWixPQUFPLFVBQVUsQ0FBQztZQUNwQixLQUFLLFNBQVM7Z0JBQ1osT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3pDLEtBQUssZ0JBQWdCLENBQUM7WUFBQyxLQUFLLFdBQVc7Z0JBQ3JDLE1BQU0sS0FBSyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsV0FBVyxDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNqRSxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxDQUFDO29CQUMxRCxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzNELEtBQUssaUJBQWlCLENBQUM7WUFBQyxLQUFLLGFBQWEsQ0FBQztZQUFDLEtBQUssZUFBZTtnQkFDOUQsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLENBQUM7SUFDSCxDQUFDOytHQXhEVSxnQkFBZ0I7bUdBQWhCLGdCQUFnQix1ZEFwRWpCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O2dCQTZESTs7NEZBT0gsZ0JBQWdCO2tCQXZFNUIsU0FBUzsrQkFFRSxnQkFBZ0IsWUFDaEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Z0JBNkRJIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSnNvblNjaGVtYUZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vanNvbi1zY2hlbWEtZm9ybS5zZXJ2aWNlJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6Y29tcG9uZW50LXNlbGVjdG9yXHJcbiAgc2VsZWN0b3I6ICdzZWN0aW9uLXdpZGdldCcsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgKm5nSWY9XCJjb250YWluZXJUeXBlID09PSAnZGl2J1wiXHJcbiAgICAgIFtjbGFzc109XCJvcHRpb25zPy5odG1sQ2xhc3MgfHwgJydcIlxyXG4gICAgICBbY2xhc3MuZXhwYW5kYWJsZV09XCJvcHRpb25zPy5leHBhbmRhYmxlICYmICFleHBhbmRlZFwiXHJcbiAgICAgIFtjbGFzcy5leHBhbmRlZF09XCJvcHRpb25zPy5leHBhbmRhYmxlICYmIGV4cGFuZGVkXCI+XHJcbiAgICAgIDxsYWJlbCAqbmdJZj1cInNlY3Rpb25UaXRsZVwiXHJcbiAgICAgICAgY2xhc3M9XCJsZWdlbmRcIlxyXG4gICAgICAgIFtjbGFzc109XCJvcHRpb25zPy5sYWJlbEh0bWxDbGFzcyB8fCAnJ1wiXHJcbiAgICAgICAgW2lubmVySFRNTF09XCJzZWN0aW9uVGl0bGVcIlxyXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVFeHBhbmRlZCgpXCI+PC9sYWJlbD5cclxuICAgICAgPHJvb3Qtd2lkZ2V0IFxyXG4gICAgICAgIFtkYXRhSW5kZXhdPVwiZGF0YUluZGV4KClcIlxyXG4gICAgICAgIFtsYXlvdXRdPVwibGF5b3V0Tm9kZSgpLml0ZW1zXCJcclxuICAgICAgICBbbGF5b3V0SW5kZXhdPVwibGF5b3V0SW5kZXgoKVwiXHJcbiAgICAgICAgW2lzRmxleEl0ZW1dPVwiZ2V0RmxleEF0dHJpYnV0ZSgnaXMtZmxleCcpXCJcclxuICAgICAgICBbaXNPcmRlcmFibGVdPVwib3B0aW9ucz8ub3JkZXJhYmxlXCJcclxuICAgICAgICBbY2xhc3MuZm9ybS1mbGV4LWNvbHVtbl09XCJnZXRGbGV4QXR0cmlidXRlKCdmbGV4LWRpcmVjdGlvbicpID09PSAnY29sdW1uJ1wiXHJcbiAgICAgICAgW2NsYXNzLmZvcm0tZmxleC1yb3ddPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZmxleC1kaXJlY3Rpb24nKSA9PT0gJ3JvdydcIlxyXG4gICAgICAgIFtzdHlsZS5hbGlnbi1jb250ZW50XT1cImdldEZsZXhBdHRyaWJ1dGUoJ2FsaWduLWNvbnRlbnQnKVwiXHJcbiAgICAgICAgW3N0eWxlLmFsaWduLWl0ZW1zXT1cImdldEZsZXhBdHRyaWJ1dGUoJ2FsaWduLWl0ZW1zJylcIlxyXG4gICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cIiFleHBhbmRlZD8nbm9uZSc6Z2V0RmxleEF0dHJpYnV0ZSgnZGlzcGxheScpXCJcclxuICAgICAgICBbc3R5bGUuZmxleC1kaXJlY3Rpb25dPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZmxleC1kaXJlY3Rpb24nKVwiXHJcbiAgICAgICAgW3N0eWxlLmZsZXgtd3JhcF09XCJnZXRGbGV4QXR0cmlidXRlKCdmbGV4LXdyYXAnKVwiXHJcbiAgICAgICAgW3N0eWxlLmp1c3RpZnktY29udGVudF09XCJnZXRGbGV4QXR0cmlidXRlKCdqdXN0aWZ5LWNvbnRlbnQnKVwiPjwvcm9vdC13aWRnZXQ+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxmaWVsZHNldCAqbmdJZj1cImNvbnRhaW5lclR5cGUgPT09ICdmaWVsZHNldCdcIlxyXG4gICAgICBbY2xhc3NdPVwib3B0aW9ucz8uaHRtbENsYXNzIHx8ICcnXCJcclxuICAgICAgW2NsYXNzLmV4cGFuZGFibGVdPVwib3B0aW9ucz8uZXhwYW5kYWJsZSAmJiAhZXhwYW5kZWRcIlxyXG4gICAgICBbY2xhc3MuZXhwYW5kZWRdPVwib3B0aW9ucz8uZXhwYW5kYWJsZSAmJiBleHBhbmRlZFwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJvcHRpb25zPy5yZWFkb25seVwiPlxyXG4gICAgICA8bGVnZW5kICpuZ0lmPVwic2VjdGlvblRpdGxlXCJcclxuICAgICAgICBjbGFzcz1cImxlZ2VuZFwiXHJcbiAgICAgICAgW2NsYXNzXT1cIm9wdGlvbnM/LmxhYmVsSHRtbENsYXNzIHx8ICcnXCJcclxuICAgICAgICBbaW5uZXJIVE1MXT1cInNlY3Rpb25UaXRsZVwiXHJcbiAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUV4cGFuZGVkKClcIj48L2xlZ2VuZD5cclxuICAgICAgPGRpdiAqbmdJZj1cIm9wdGlvbnM/Lm1lc3NhZ2VMb2NhdGlvbiAhPT0gJ2JvdHRvbSdcIj5cclxuICAgICAgICA8cCAqbmdJZj1cIm9wdGlvbnM/LmRlc2NyaXB0aW9uXCJcclxuICAgICAgICBjbGFzcz1cImhlbHAtYmxvY2tcIlxyXG4gICAgICAgIFtjbGFzc109XCJvcHRpb25zPy5sYWJlbEhlbHBCbG9ja0NsYXNzIHx8ICcnXCJcclxuICAgICAgICBbaW5uZXJIVE1MXT1cIm9wdGlvbnM/LmRlc2NyaXB0aW9uXCI+PC9wPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPHJvb3Qtd2lkZ2V0IFxyXG4gICAgICAgIFtkYXRhSW5kZXhdPVwiZGF0YUluZGV4KClcIlxyXG4gICAgICAgIFtsYXlvdXRdPVwibGF5b3V0Tm9kZSgpLml0ZW1zXCJcclxuICAgICAgICBbbGF5b3V0SW5kZXhdPVwibGF5b3V0SW5kZXgoKVwiXHJcbiAgICAgICAgW2lzRmxleEl0ZW1dPVwiZ2V0RmxleEF0dHJpYnV0ZSgnaXMtZmxleCcpXCJcclxuICAgICAgICBbaXNPcmRlcmFibGVdPVwib3B0aW9ucz8ub3JkZXJhYmxlXCJcclxuICAgICAgICBbY2xhc3MuZm9ybS1mbGV4LWNvbHVtbl09XCJnZXRGbGV4QXR0cmlidXRlKCdmbGV4LWRpcmVjdGlvbicpID09PSAnY29sdW1uJ1wiXHJcbiAgICAgICAgW2NsYXNzLmZvcm0tZmxleC1yb3ddPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZmxleC1kaXJlY3Rpb24nKSA9PT0gJ3JvdydcIlxyXG4gICAgICAgIFtzdHlsZS5hbGlnbi1jb250ZW50XT1cImdldEZsZXhBdHRyaWJ1dGUoJ2FsaWduLWNvbnRlbnQnKVwiXHJcbiAgICAgICAgW3N0eWxlLmFsaWduLWl0ZW1zXT1cImdldEZsZXhBdHRyaWJ1dGUoJ2FsaWduLWl0ZW1zJylcIlxyXG4gICAgICAgIFtzdHlsZS5kaXNwbGF5XT1cIiFleHBhbmRlZD8nbm9uZSc6Z2V0RmxleEF0dHJpYnV0ZSgnZGlzcGxheScpXCJcclxuICAgICAgICBbc3R5bGUuZmxleC1kaXJlY3Rpb25dPVwiZ2V0RmxleEF0dHJpYnV0ZSgnZmxleC1kaXJlY3Rpb24nKVwiXHJcbiAgICAgICAgW3N0eWxlLmZsZXgtd3JhcF09XCJnZXRGbGV4QXR0cmlidXRlKCdmbGV4LXdyYXAnKVwiXHJcbiAgICAgICAgW3N0eWxlLmp1c3RpZnktY29udGVudF09XCJnZXRGbGV4QXR0cmlidXRlKCdqdXN0aWZ5LWNvbnRlbnQnKVwiPjwvcm9vdC13aWRnZXQ+XHJcbiAgICAgIDxkaXYgKm5nSWY9XCJvcHRpb25zPy5tZXNzYWdlTG9jYXRpb24gPT09ICdib3R0b20nXCI+XHJcbiAgICAgICAgPHAgKm5nSWY9XCJvcHRpb25zPy5kZXNjcmlwdGlvblwiXHJcbiAgICAgICAgY2xhc3M9XCJoZWxwLWJsb2NrXCJcclxuICAgICAgICBbY2xhc3NdPVwib3B0aW9ucz8ubGFiZWxIZWxwQmxvY2tDbGFzcyB8fCAnJ1wiXHJcbiAgICAgICAgW2lubmVySFRNTF09XCJvcHRpb25zPy5kZXNjcmlwdGlvblwiPjwvcD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2ZpZWxkc2V0PmAsXHJcbiAgc3R5bGVzOiBbYFxyXG4gICAgLmxlZ2VuZCB7IGZvbnQtd2VpZ2h0OiBib2xkOyB9XHJcbiAgICAuZXhwYW5kYWJsZSA+IGxlZ2VuZDpiZWZvcmUsIC5leHBhbmRhYmxlID4gbGFiZWw6YmVmb3JlICB7IGNvbnRlbnQ6ICfilrYnOyBwYWRkaW5nLXJpZ2h0OiAuM2VtOyBmb250LWZhbWlseTphdXRvIH1cclxuICAgIC5leHBhbmRlZCA+IGxlZ2VuZDpiZWZvcmUsIC5leHBhbmRlZCA+IGxhYmVsOmJlZm9yZSAgeyBjb250ZW50OiAn4pa8JzsgcGFkZGluZy1yaWdodDogLjJlbTsgfVxyXG4gIGBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VjdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcHJpdmF0ZSBqc2YgPSBpbmplY3QoSnNvblNjaGVtYUZvcm1TZXJ2aWNlKTtcclxuXHJcbiAgb3B0aW9uczogYW55O1xyXG4gIGV4cGFuZGVkID0gdHJ1ZTtcclxuICBjb250YWluZXJUeXBlOiBzdHJpbmc7XHJcbiAgcmVhZG9ubHkgbGF5b3V0Tm9kZSA9IGlucHV0PGFueT4odW5kZWZpbmVkKTtcclxuICByZWFkb25seSBsYXlvdXRJbmRleCA9IGlucHV0PG51bWJlcltdPih1bmRlZmluZWQpO1xyXG4gIHJlYWRvbmx5IGRhdGFJbmRleCA9IGlucHV0PG51bWJlcltdPih1bmRlZmluZWQpO1xyXG5cclxuICBnZXQgc2VjdGlvblRpdGxlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5ub3RpdGxlID8gbnVsbCA6IHRoaXMuanNmLnNldEl0ZW1UaXRsZSh0aGlzKTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmpzZi5pbml0aWFsaXplQ29udHJvbCh0aGlzKTtcclxuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMubGF5b3V0Tm9kZSgpLm9wdGlvbnMgfHwge307XHJcbiAgICB0aGlzLmV4cGFuZGVkID0gdHlwZW9mIHRoaXMub3B0aW9ucy5leHBhbmRlZCA9PT0gJ2Jvb2xlYW4nID9cclxuICAgICAgdGhpcy5vcHRpb25zLmV4cGFuZGVkIDogIXRoaXMub3B0aW9ucy5leHBhbmRhYmxlO1xyXG4gICAgc3dpdGNoICh0aGlzLmxheW91dE5vZGUoKS50eXBlKSB7XHJcbiAgICAgIGNhc2UgJ2ZpZWxkc2V0JzogY2FzZSAnYXJyYXknOiBjYXNlICd0YWInOiBjYXNlICdhZHZhbmNlZGZpZWxkc2V0JzpcclxuICAgICAgY2FzZSAnYXV0aGZpZWxkc2V0JzogY2FzZSAnb3B0aW9uZmllbGRzZXQnOiBjYXNlICdzZWxlY3RmaWVsZHNldCc6XHJcbiAgICAgICAgdGhpcy5jb250YWluZXJUeXBlID0gJ2ZpZWxkc2V0JztcclxuICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6IC8vICdkaXYnLCAnZmxleCcsICdzZWN0aW9uJywgJ2NvbmRpdGlvbmFsJywgJ2FjdGlvbnMnLCAndGFnc2lucHV0J1xyXG4gICAgICAgIHRoaXMuY29udGFpbmVyVHlwZSA9ICdkaXYnO1xyXG4gICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRvZ2dsZUV4cGFuZGVkKCkge1xyXG4gICAgaWYgKHRoaXMub3B0aW9ucy5leHBhbmRhYmxlKSB7IHRoaXMuZXhwYW5kZWQgPSAhdGhpcy5leHBhbmRlZDsgfVxyXG4gIH1cclxuXHJcbiAgLy8gU2V0IGF0dHJpYnV0ZXMgZm9yIGZsZXhib3ggY29udGFpbmVyXHJcbiAgLy8gKGNoaWxkIGF0dHJpYnV0ZXMgYXJlIHNldCBpbiByb290LmNvbXBvbmVudClcclxuICBnZXRGbGV4QXR0cmlidXRlKGF0dHJpYnV0ZTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBmbGV4QWN0aXZlOiBib29sZWFuID1cclxuICAgICAgdGhpcy5sYXlvdXROb2RlKCkudHlwZSA9PT0gJ2ZsZXgnIHx8XHJcbiAgICAgICEhdGhpcy5vcHRpb25zLmRpc3BsYXlGbGV4IHx8XHJcbiAgICAgIHRoaXMub3B0aW9ucy5kaXNwbGF5ID09PSAnZmxleCc7XHJcbiAgICBpZiAoYXR0cmlidXRlICE9PSAnZmxleCcgJiYgIWZsZXhBY3RpdmUpIHsgcmV0dXJuIG51bGw7IH1cclxuICAgIHN3aXRjaCAoYXR0cmlidXRlKSB7XHJcbiAgICAgIGNhc2UgJ2lzLWZsZXgnOlxyXG4gICAgICAgIHJldHVybiBmbGV4QWN0aXZlO1xyXG4gICAgICBjYXNlICdkaXNwbGF5JzpcclxuICAgICAgICByZXR1cm4gZmxleEFjdGl2ZSA/ICdmbGV4JyA6ICdpbml0aWFsJztcclxuICAgICAgY2FzZSAnZmxleC1kaXJlY3Rpb24nOiBjYXNlICdmbGV4LXdyYXAnOlxyXG4gICAgICAgIGNvbnN0IGluZGV4ID0gWydmbGV4LWRpcmVjdGlvbicsICdmbGV4LXdyYXAnXS5pbmRleE9mKGF0dHJpYnV0ZSk7XHJcbiAgICAgICAgcmV0dXJuICh0aGlzLm9wdGlvbnNbJ2ZsZXgtZmxvdyddIHx8ICcnKS5zcGxpdCgvXFxzKy8pW2luZGV4XSB8fFxyXG4gICAgICAgICAgdGhpcy5vcHRpb25zW2F0dHJpYnV0ZV0gfHwgWydjb2x1bW4nLCAnbm93cmFwJ11baW5kZXhdO1xyXG4gICAgICBjYXNlICdqdXN0aWZ5LWNvbnRlbnQnOiBjYXNlICdhbGlnbi1pdGVtcyc6IGNhc2UgJ2FsaWduLWNvbnRlbnQnOlxyXG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbnNbYXR0cmlidXRlXTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -1,9 +1,10 @@
1
- import { Component, ViewContainerRef, inject, input, viewChild } from '@angular/core';
1
+ import { ChangeDetectorRef, Component, ViewContainerRef, inject, input, viewChild } from '@angular/core';
2
2
  import { JsonSchemaFormService } from '../json-schema-form.service';
3
3
  import * as i0 from "@angular/core";
4
4
  export class SelectFrameworkComponent {
5
5
  constructor() {
6
6
  this.jsf = inject(JsonSchemaFormService);
7
+ this.changeDetectorRef = inject(ChangeDetectorRef);
7
8
  this.newComponent = null;
8
9
  this.layoutNode = input(undefined);
9
10
  this.layoutIndex = input(undefined);
@@ -13,7 +14,7 @@ export class SelectFrameworkComponent {
13
14
  ngOnInit() {
14
15
  this.updateComponent();
15
16
  }
16
- ngOnChanges() {
17
+ ngOnChanges(changes) {
17
18
  this.updateComponent();
18
19
  }
19
20
  updateComponent() {
@@ -24,9 +25,12 @@ export class SelectFrameworkComponent {
24
25
  //this.widgetContainer.createComponent<any>(this.jsf.framework)
25
26
  }
26
27
  if (this.newComponent) {
27
- for (const input of ['layoutNode', 'layoutIndex', 'dataIndex']) {
28
- this.newComponent.instance[input] = this[input];
28
+ for (const inp of ['layoutNode', 'layoutIndex', 'dataIndex']) {
29
+ //this.newComponent.instance[inp] = this[inp];
30
+ this.newComponent.setInput(inp, this[inp]());
29
31
  }
32
+ // Manually trigger change detection after updating inputs
33
+ //this.changeDetectorRef.detectChanges();
30
34
  }
31
35
  }
32
36
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectFrameworkComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
@@ -40,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
40
44
  template: `<div #widgetContainer></div>`,
41
45
  }]
42
46
  }] });
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWZyYW1ld29yay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1mb3Jtd29ya3MtY29yZS9zcmMvbGliL3dpZGdldC1saWJyYXJ5L3NlbGVjdC1mcmFtZXdvcmsuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW1DLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZILE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQU9wRSxNQUFNLE9BQU8sd0JBQXdCO0lBTHJDO1FBTVUsUUFBRyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBRTVDLGlCQUFZLEdBQXNCLElBQUksQ0FBQztRQUM5QixlQUFVLEdBQUcsS0FBSyxDQUFNLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLGdCQUFXLEdBQUcsS0FBSyxDQUFXLFNBQVMsQ0FBQyxDQUFDO1FBQ3pDLGNBQVMsR0FBRyxLQUFLLENBQVcsU0FBUyxDQUFDLENBQUM7UUFDdkMsb0JBQWUsR0FBRyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0tBd0JyRjtJQXRCQyxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxlQUFlO1FBQ2IsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQy9DLElBQUksZUFBZSxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ2hFLElBQUksQ0FBQyxZQUFZLEdBQUcsZUFBZSxDQUFDLGVBQWUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQ3ZFLENBQUM7WUFDRix5Q0FBeUM7WUFDekMsK0RBQStEO1FBQ2pFLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixLQUFLLE1BQU0sS0FBSyxJQUFJLENBQUMsWUFBWSxFQUFFLGFBQWEsRUFBRSxXQUFXLENBQUMsRUFBRSxDQUFDO2dCQUMvRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbEQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDOytHQTlCVSx3QkFBd0I7bUdBQXhCLHdCQUF3QiwrakJBTzZCLGdCQUFnQixrRUFUdEUsOEJBQThCOzs0RkFFN0Isd0JBQXdCO2tCQUxwQyxTQUFTO21CQUFDO29CQUNULDhDQUE4QztvQkFDOUMsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsUUFBUSxFQUFFLDhCQUE4QjtpQkFDekMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENvbXBvbmVudFJlZiwgT25DaGFuZ2VzLCBPbkluaXQsIFZpZXdDb250YWluZXJSZWYsIGluamVjdCwgaW5wdXQsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgSnNvblNjaGVtYUZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vanNvbi1zY2hlbWEtZm9ybS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ3NlbGVjdC1mcmFtZXdvcmstd2lkZ2V0JyxcclxuICB0ZW1wbGF0ZTogYDxkaXYgI3dpZGdldENvbnRhaW5lcj48L2Rpdj5gLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VsZWN0RnJhbWV3b3JrQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xyXG4gIHByaXZhdGUganNmID0gaW5qZWN0KEpzb25TY2hlbWFGb3JtU2VydmljZSk7XHJcblxyXG4gIG5ld0NvbXBvbmVudDogQ29tcG9uZW50UmVmPGFueT4gPSBudWxsO1xyXG4gIHJlYWRvbmx5IGxheW91dE5vZGUgPSBpbnB1dDxhbnk+KHVuZGVmaW5lZCk7XHJcbiAgcmVhZG9ubHkgbGF5b3V0SW5kZXggPSBpbnB1dDxudW1iZXJbXT4odW5kZWZpbmVkKTtcclxuICByZWFkb25seSBkYXRhSW5kZXggPSBpbnB1dDxudW1iZXJbXT4odW5kZWZpbmVkKTtcclxuICByZWFkb25seSB3aWRnZXRDb250YWluZXIgPSB2aWV3Q2hpbGQoJ3dpZGdldENvbnRhaW5lcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiB9KTtcclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoKSB7XHJcbiAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudCgpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQ29tcG9uZW50KCkge1xyXG4gICAgY29uc3Qgd2lkZ2V0Q29udGFpbmVyID0gdGhpcy53aWRnZXRDb250YWluZXIoKTtcclxuICAgIGlmICh3aWRnZXRDb250YWluZXIgJiYgIXRoaXMubmV3Q29tcG9uZW50ICYmIHRoaXMuanNmLmZyYW1ld29yaykge1xyXG4gICAgICB0aGlzLm5ld0NvbXBvbmVudCA9IHdpZGdldENvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoKHRoaXMuanNmLmZyYW1ld29yaylcclxuICAgICAgKTtcclxuICAgICAgLy9UT0RPIGZpeCBhbGwgZGVwcmVjYXRlZCBjYWxscyBhbmQgdGVzdCBcclxuICAgICAgLy90aGlzLndpZGdldENvbnRhaW5lci5jcmVhdGVDb21wb25lbnQ8YW55Pih0aGlzLmpzZi5mcmFtZXdvcmspXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5uZXdDb21wb25lbnQpIHtcclxuICAgICAgZm9yIChjb25zdCBpbnB1dCBvZiBbJ2xheW91dE5vZGUnLCAnbGF5b3V0SW5kZXgnLCAnZGF0YUluZGV4J10pIHtcclxuICAgICAgICB0aGlzLm5ld0NvbXBvbmVudC5pbnN0YW5jZVtpbnB1dF0gPSB0aGlzW2lucHV0XTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWZyYW1ld29yay5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1mb3Jtd29ya3MtY29yZS9zcmMvbGliL3dpZGdldC1saWJyYXJ5L3NlbGVjdC1mcmFtZXdvcmsuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQW1DLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTFJLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQU9wRSxNQUFNLE9BQU8sd0JBQXdCO0lBTHJDO1FBTVUsUUFBRyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3BDLHNCQUFpQixHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3RELGlCQUFZLEdBQXNCLElBQUksQ0FBQztRQUM5QixlQUFVLEdBQUcsS0FBSyxDQUFNLFNBQVMsQ0FBQyxDQUFDO1FBQ25DLGdCQUFXLEdBQUcsS0FBSyxDQUFXLFNBQVMsQ0FBQyxDQUFDO1FBQ3pDLGNBQVMsR0FBRyxLQUFLLENBQVcsU0FBUyxDQUFDLENBQUM7UUFDdkMsb0JBQWUsR0FBRyxTQUFTLENBQUMsaUJBQWlCLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUFDO0tBMkJyRjtJQXpCQyxRQUFRO1FBQ04sSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBTztRQUNqQixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGVBQWU7UUFDYixNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDL0MsSUFBSSxlQUFlLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDaEUsSUFBSSxDQUFDLFlBQVksR0FBRyxlQUFlLENBQUMsZUFBZSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FDdkUsQ0FBQztZQUNGLHlDQUF5QztZQUN6QywrREFBK0Q7UUFDakUsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLEtBQUssTUFBTSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLFdBQVcsQ0FBQyxFQUFFLENBQUM7Z0JBQzdELDhDQUE4QztnQkFDOUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsR0FBRyxFQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDOUMsQ0FBQztZQUNELDBEQUEwRDtZQUMxRCx5Q0FBeUM7UUFDM0MsQ0FBQztJQUNILENBQUM7K0dBakNVLHdCQUF3QjttR0FBeEIsd0JBQXdCLCtqQkFPNkIsZ0JBQWdCLGtFQVR0RSw4QkFBOEI7OzRGQUU3Qix3QkFBd0I7a0JBTHBDLFNBQVM7bUJBQUM7b0JBQ1QsOENBQThDO29CQUM5QyxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxRQUFRLEVBQUUsOEJBQThCO2lCQUN6QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENvbXBvbmVudFJlZiwgT25DaGFuZ2VzLCBPbkluaXQsIFZpZXdDb250YWluZXJSZWYsIGluamVjdCwgaW5wdXQsIHZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgSnNvblNjaGVtYUZvcm1TZXJ2aWNlIH0gZnJvbSAnLi4vanNvbi1zY2hlbWEtZm9ybS5zZXJ2aWNlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpjb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ3NlbGVjdC1mcmFtZXdvcmstd2lkZ2V0JyxcclxuICB0ZW1wbGF0ZTogYDxkaXYgI3dpZGdldENvbnRhaW5lcj48L2Rpdj5gLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2VsZWN0RnJhbWV3b3JrQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xyXG4gIHByaXZhdGUganNmID0gaW5qZWN0KEpzb25TY2hlbWFGb3JtU2VydmljZSk7XHJcbiAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgbmV3Q29tcG9uZW50OiBDb21wb25lbnRSZWY8YW55PiA9IG51bGw7XHJcbiAgcmVhZG9ubHkgbGF5b3V0Tm9kZSA9IGlucHV0PGFueT4odW5kZWZpbmVkKTtcclxuICByZWFkb25seSBsYXlvdXRJbmRleCA9IGlucHV0PG51bWJlcltdPih1bmRlZmluZWQpO1xyXG4gIHJlYWRvbmx5IGRhdGFJbmRleCA9IGlucHV0PG51bWJlcltdPih1bmRlZmluZWQpO1xyXG4gIHJlYWRvbmx5IHdpZGdldENvbnRhaW5lciA9IHZpZXdDaGlsZCgnd2lkZ2V0Q29udGFpbmVyJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmIH0pO1xyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMudXBkYXRlQ29tcG9uZW50KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzKSB7XHJcbiAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudCgpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlQ29tcG9uZW50KCkge1xyXG4gICAgY29uc3Qgd2lkZ2V0Q29udGFpbmVyID0gdGhpcy53aWRnZXRDb250YWluZXIoKTtcclxuICAgIGlmICh3aWRnZXRDb250YWluZXIgJiYgIXRoaXMubmV3Q29tcG9uZW50ICYmIHRoaXMuanNmLmZyYW1ld29yaykge1xyXG4gICAgICB0aGlzLm5ld0NvbXBvbmVudCA9IHdpZGdldENvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoKHRoaXMuanNmLmZyYW1ld29yaylcclxuICAgICAgKTtcclxuICAgICAgLy9UT0RPIGZpeCBhbGwgZGVwcmVjYXRlZCBjYWxscyBhbmQgdGVzdCBcclxuICAgICAgLy90aGlzLndpZGdldENvbnRhaW5lci5jcmVhdGVDb21wb25lbnQ8YW55Pih0aGlzLmpzZi5mcmFtZXdvcmspXHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5uZXdDb21wb25lbnQpIHtcclxuICAgICAgZm9yIChjb25zdCBpbnAgb2YgWydsYXlvdXROb2RlJywgJ2xheW91dEluZGV4JywgJ2RhdGFJbmRleCddKSB7XHJcbiAgICAgICAgLy90aGlzLm5ld0NvbXBvbmVudC5pbnN0YW5jZVtpbnBdID0gdGhpc1tpbnBdO1xyXG4gICAgICAgIHRoaXMubmV3Q29tcG9uZW50LnNldElucHV0KGlucCx0aGlzW2lucF0oKSk7XHJcbiAgICAgIH1cclxuICAgICAgLy8gTWFudWFsbHkgdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uIGFmdGVyIHVwZGF0aW5nIGlucHV0c1xyXG4gICAgICAvL3RoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=