@3kles/kles-material-dynamicforms 17.2.3 → 17.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (59) hide show
  1. package/esm2022/lib/directive/dynamic-component.directive.mjs +3 -3
  2. package/esm2022/lib/directive/dynamic-field.directive.mjs +3 -3
  3. package/esm2022/lib/dynamic-form.component.mjs +3 -3
  4. package/esm2022/lib/fields/array.component.mjs +3 -3
  5. package/esm2022/lib/fields/badge.component.mjs +3 -3
  6. package/esm2022/lib/fields/button-fab.component.mjs +3 -3
  7. package/esm2022/lib/fields/button-form.component.mjs +3 -3
  8. package/esm2022/lib/fields/button-icon.component.mjs +3 -3
  9. package/esm2022/lib/fields/button-mini-fab.component.mjs +3 -3
  10. package/esm2022/lib/fields/button-toogle-group.component.mjs +3 -3
  11. package/esm2022/lib/fields/buttonchecker-form.component.mjs +3 -3
  12. package/esm2022/lib/fields/buttonfile-form.component.mjs +3 -3
  13. package/esm2022/lib/fields/checkbox.component.mjs +3 -3
  14. package/esm2022/lib/fields/chip.component.mjs +3 -3
  15. package/esm2022/lib/fields/clear.component.mjs +3 -3
  16. package/esm2022/lib/fields/color.component.mjs +3 -3
  17. package/esm2022/lib/fields/date-time.component.mjs +3 -3
  18. package/esm2022/lib/fields/date.component.mjs +3 -3
  19. package/esm2022/lib/fields/field.abstract.mjs +3 -3
  20. package/esm2022/lib/fields/group.component.mjs +3 -3
  21. package/esm2022/lib/fields/icon.component.mjs +3 -3
  22. package/esm2022/lib/fields/input.clearable.component.mjs +3 -3
  23. package/esm2022/lib/fields/input.component.mjs +3 -3
  24. package/esm2022/lib/fields/label.component.mjs +3 -3
  25. package/esm2022/lib/fields/line-break.component.mjs +3 -3
  26. package/esm2022/lib/fields/link.component.mjs +3 -3
  27. package/esm2022/lib/fields/list-field.component.mjs +3 -3
  28. package/esm2022/lib/fields/radio.component.mjs +3 -3
  29. package/esm2022/lib/fields/range.component.mjs +3 -3
  30. package/esm2022/lib/fields/select.component.mjs +3 -3
  31. package/esm2022/lib/fields/select.lazy-search.component.mjs +3 -3
  32. package/esm2022/lib/fields/select.search.component.mjs +3 -3
  33. package/esm2022/lib/fields/selection-list.component.mjs +109 -33
  34. package/esm2022/lib/fields/selection-list.search.component.mjs +188 -0
  35. package/esm2022/lib/fields/slide-toggle.component.mjs +3 -3
  36. package/esm2022/lib/fields/text.component.mjs +3 -3
  37. package/esm2022/lib/fields/textarea.component.mjs +3 -3
  38. package/esm2022/lib/forms/button-control-base.mjs +3 -3
  39. package/esm2022/lib/forms/button-control.component.mjs +3 -3
  40. package/esm2022/lib/forms/buttonchecker-control.component.mjs +3 -3
  41. package/esm2022/lib/forms/buttonfile-control.component.mjs +3 -3
  42. package/esm2022/lib/forms/fab-control.component.mjs +3 -3
  43. package/esm2022/lib/forms/icon-button-control.component.mjs +3 -3
  44. package/esm2022/lib/forms/mini-fab-control.component.mjs +3 -3
  45. package/esm2022/lib/kles-material-dynamicforms.module.mjs +12 -8
  46. package/esm2022/lib/matcher/form-error.matcher.mjs +3 -3
  47. package/esm2022/lib/modules/material.module.mjs +4 -4
  48. package/esm2022/lib/pipe/array.pipe.mjs +3 -3
  49. package/esm2022/lib/pipe/transform.pipe.mjs +3 -3
  50. package/esm2022/lib/selection/selection-model.mjs +232 -0
  51. package/esm2022/public-api.mjs +2 -1
  52. package/fesm2022/3kles-kles-material-dynamicforms.mjs +654 -178
  53. package/fesm2022/3kles-kles-material-dynamicforms.mjs.map +1 -1
  54. package/lib/fields/selection-list.component.d.ts +4 -0
  55. package/lib/fields/selection-list.search.component.d.ts +18 -0
  56. package/lib/kles-material-dynamicforms.module.d.ts +13 -12
  57. package/lib/selection/selection-model.d.ts +102 -0
  58. package/package.json +1 -1
  59. package/public-api.d.ts +1 -0
@@ -39,8 +39,8 @@ import { CdkScrollable } from '@angular/cdk/scrolling';
39
39
  import { PortalModule } from '@angular/cdk/portal';
40
40
  import * as i0 from "@angular/core";
41
41
  export class MaterialModule {
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: MaterialModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
43
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: MaterialModule, imports: [CommonModule,
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: MaterialModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
43
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.7", ngImport: i0, type: MaterialModule, imports: [CommonModule,
44
44
  MatSliderModule,
45
45
  MatButtonModule,
46
46
  MatToolbarModule,
@@ -113,7 +113,7 @@ export class MaterialModule {
113
113
  CdkScrollable,
114
114
  MatButtonToggleModule,
115
115
  PortalModule] }); }
116
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: MaterialModule, providers: [
116
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: MaterialModule, providers: [
117
117
  MatDatepickerModule,
118
118
  MatDialogModule
119
119
  ], imports: [CommonModule,
@@ -189,7 +189,7 @@ export class MaterialModule {
189
189
  MatButtonToggleModule,
190
190
  PortalModule] }); }
191
191
  }
192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: MaterialModule, decorators: [{
192
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: MaterialModule, decorators: [{
193
193
  type: NgModule,
194
194
  args: [{
195
195
  imports: [
@@ -12,10 +12,10 @@ export class ArrayFormatPipe {
12
12
  }
13
13
  return '';
14
14
  }
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ArrayFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
16
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: ArrayFormatPipe, name: "arrayFormat" }); }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArrayFormatPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
16
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.7", ngImport: i0, type: ArrayFormatPipe, name: "arrayFormat" }); }
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: ArrayFormatPipe, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ArrayFormatPipe, decorators: [{
19
19
  type: Pipe,
20
20
  args: [{ name: 'arrayFormat' }]
21
21
  }] });
@@ -17,10 +17,10 @@ export class KlesTransformPipe {
17
17
  }
18
18
  return value;
19
19
  }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: KlesTransformPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
21
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: KlesTransformPipe, name: "klesTransform" }); }
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: KlesTransformPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
21
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.7", ngImport: i0, type: KlesTransformPipe, name: "klesTransform" }); }
22
22
  }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: KlesTransformPipe, decorators: [{
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: KlesTransformPipe, decorators: [{
24
24
  type: Pipe,
25
25
  args: [{ name: 'klesTransform' }]
26
26
  }] });
@@ -0,0 +1,232 @@
1
+ import { getMultipleValuesInSingleSelectionError } from "@angular/cdk/collections";
2
+ import { Subject } from "rxjs";
3
+ /**
4
+ * Copy and past from https://github.com/angular/components/blob/17.0.x/src/cdk/collections/selection-model.ts
5
+ * (They put everything in private, thanks to angular team)
6
+ */
7
+ export class KlesSelectionModel {
8
+ /** Selected values. */
9
+ get selected() {
10
+ if (!this._selected) {
11
+ this._selected = Array.from(this._selection.values());
12
+ }
13
+ return this._selected;
14
+ }
15
+ constructor(_multiple = false, initiallySelectedValues, _emitChanges = true, compareWith) {
16
+ this._multiple = _multiple;
17
+ this._emitChanges = _emitChanges;
18
+ this.compareWith = compareWith;
19
+ /** Currently-selected values. */
20
+ this._selection = new Set();
21
+ /** Keeps track of the deselected options that haven't been emitted by the change event. */
22
+ this._deselectedToEmit = [];
23
+ /** Keeps track of the selected options that haven't been emitted by the change event. */
24
+ this._selectedToEmit = [];
25
+ /** Event emitted when the value has changed. */
26
+ this.changed = new Subject();
27
+ if (initiallySelectedValues && initiallySelectedValues.length) {
28
+ if (_multiple) {
29
+ initiallySelectedValues.forEach(value => this._markSelected(value));
30
+ }
31
+ else {
32
+ this._markSelected(initiallySelectedValues[0]);
33
+ }
34
+ // Clear the array in order to avoid firing the change event for preselected values.
35
+ this._selectedToEmit.length = 0;
36
+ }
37
+ }
38
+ /**
39
+ * Selects a value or an array of values.
40
+ * @param values The values to select
41
+ * @return Whether the selection changed as a result of this call
42
+ * @breaking-change 16.0.0 make return type boolean
43
+ */
44
+ select(values, option) {
45
+ this._verifyValueAssignment(values);
46
+ console.log(values);
47
+ values.forEach(value => this._markSelected(value));
48
+ const changed = this._hasQueuedChanges();
49
+ if (!option || option?.emitEvent) {
50
+ this._emitChangeEvent();
51
+ }
52
+ else {
53
+ this._selected = null;
54
+ }
55
+ return changed;
56
+ }
57
+ /**
58
+ * Deselects a value or an array of values.
59
+ * @param values The values to deselect
60
+ * @return Whether the selection changed as a result of this call
61
+ * @breaking-change 16.0.0 make return type boolean
62
+ */
63
+ deselect(values, option) {
64
+ this._verifyValueAssignment(values);
65
+ values.forEach(value => this._unmarkSelected(value));
66
+ const changed = this._hasQueuedChanges();
67
+ if (!option || option?.emitEvent) {
68
+ this._emitChangeEvent();
69
+ }
70
+ else {
71
+ this._selected = null;
72
+ }
73
+ return changed;
74
+ }
75
+ /**
76
+ * Sets the selected values
77
+ * @param values The new selected values
78
+ * @return Whether the selection changed as a result of this call
79
+ * @breaking-change 16.0.0 make return type boolean
80
+ */
81
+ setSelection(values, option) {
82
+ this._verifyValueAssignment(values);
83
+ const oldValues = this.selected;
84
+ const newSelectedSet = new Set(values.map((value) => this._getConcreteValue(value)));
85
+ values.forEach(value => this._markSelected(value));
86
+ oldValues
87
+ .filter(value => !newSelectedSet.has(value))
88
+ .forEach(value => this._unmarkSelected(value));
89
+ const changed = this._hasQueuedChanges();
90
+ if (!option || option?.emitEvent) {
91
+ this._emitChangeEvent();
92
+ }
93
+ else {
94
+ this._selected = null;
95
+ }
96
+ return changed;
97
+ }
98
+ /**
99
+ * Toggles a value between selected and deselected.
100
+ * @param value The value to toggle
101
+ * @return Whether the selection changed as a result of this call
102
+ * @breaking-change 16.0.0 make return type boolean
103
+ */
104
+ toggle(value) {
105
+ if (Array.isArray(value)) {
106
+ return this.isSelected(value) ? this.deselect(value) : this.select(value);
107
+ }
108
+ else {
109
+ return this.isSelected(value) ? this.deselect([value]) : this.select([value]);
110
+ }
111
+ }
112
+ /**
113
+ * Clears all of the selected values.
114
+ * @param flushEvent Whether to flush the changes in an event.
115
+ * If false, the changes to the selection will be flushed along with the next event.
116
+ * @return Whether the selection changed as a result of this call
117
+ * @breaking-change 16.0.0 make return type boolean
118
+ */
119
+ clear(flushEvent = true) {
120
+ this._unmarkAll();
121
+ const changed = this._hasQueuedChanges();
122
+ if (flushEvent) {
123
+ this._emitChangeEvent();
124
+ }
125
+ return changed;
126
+ }
127
+ /**
128
+ * Determines whether a value is selected.
129
+ */
130
+ isSelected(value) {
131
+ return this._selection.has(this._getConcreteValue(value));
132
+ }
133
+ /**
134
+ * Determines whether the model does not have a value.
135
+ */
136
+ isEmpty() {
137
+ return this._selection.size === 0;
138
+ }
139
+ /**
140
+ * Determines whether the model has a value.
141
+ */
142
+ hasValue() {
143
+ return !this.isEmpty();
144
+ }
145
+ /**
146
+ * Sorts the selected values based on a predicate function.
147
+ */
148
+ sort(predicate) {
149
+ if (this._multiple && this.selected) {
150
+ this._selected.sort(predicate);
151
+ }
152
+ }
153
+ /**
154
+ * Gets whether multiple values can be selected.
155
+ */
156
+ isMultipleSelection() {
157
+ return this._multiple;
158
+ }
159
+ /** Emits a change event and clears the records of selected and deselected values. */
160
+ _emitChangeEvent() {
161
+ // Clear the selected values so they can be re-cached.
162
+ this._selected = null;
163
+ if (this._selectedToEmit.length || this._deselectedToEmit.length) {
164
+ this.changed.next({
165
+ source: this,
166
+ added: this._selectedToEmit,
167
+ removed: this._deselectedToEmit,
168
+ });
169
+ this._deselectedToEmit = [];
170
+ this._selectedToEmit = [];
171
+ }
172
+ }
173
+ /** Selects a value. */
174
+ _markSelected(value) {
175
+ value = this._getConcreteValue(value);
176
+ if (!this.isSelected(value)) {
177
+ if (!this._multiple) {
178
+ this._unmarkAll();
179
+ }
180
+ if (!this.isSelected(value)) {
181
+ this._selection.add(value);
182
+ }
183
+ if (this._emitChanges) {
184
+ this._selectedToEmit.push(value);
185
+ }
186
+ }
187
+ }
188
+ /** Deselects a value. */
189
+ _unmarkSelected(value) {
190
+ value = this._getConcreteValue(value);
191
+ if (this.isSelected(value)) {
192
+ this._selection.delete(value);
193
+ if (this._emitChanges) {
194
+ this._deselectedToEmit.push(value);
195
+ }
196
+ }
197
+ }
198
+ /** Clears out the selected values. */
199
+ _unmarkAll() {
200
+ if (!this.isEmpty()) {
201
+ this._selection.forEach(value => this._unmarkSelected(value));
202
+ }
203
+ }
204
+ /**
205
+ * Verifies the value assignment and throws an error if the specified value array is
206
+ * including multiple values while the selection model is not supporting multiple values.
207
+ */
208
+ _verifyValueAssignment(values) {
209
+ if (values.length > 1 && !this._multiple) {
210
+ throw getMultipleValuesInSingleSelectionError();
211
+ }
212
+ }
213
+ /** Whether there are queued up change to be emitted. */
214
+ _hasQueuedChanges() {
215
+ return !!(this._deselectedToEmit.length || this._selectedToEmit.length);
216
+ }
217
+ /** Returns a value that is comparable to inputValue by applying compareWith function, returns the same inputValue otherwise. */
218
+ _getConcreteValue(inputValue) {
219
+ if (!this.compareWith) {
220
+ return inputValue;
221
+ }
222
+ else {
223
+ for (let selectedValue of this._selection) {
224
+ if (this.compareWith(inputValue, selectedValue)) {
225
+ return selectedValue;
226
+ }
227
+ }
228
+ return inputValue;
229
+ }
230
+ }
231
+ }
232
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLW1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMva2xlcy1tYXRlcmlhbC1keW5hbWljZm9ybXMvc3JjL2xpYi9zZWxlY3Rpb24vc2VsZWN0aW9uLW1vZGVsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsdUNBQXVDLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSS9COzs7R0FHRztBQUNILE1BQU0sT0FBTyxrQkFBa0I7SUFhM0IsdUJBQXVCO0lBQ3ZCLElBQUksUUFBUTtRQUNSLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDekQ7UUFFRCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUtELFlBQ1ksWUFBWSxLQUFLLEVBQ3pCLHVCQUE2QixFQUNyQixlQUFlLElBQUksRUFDcEIsV0FBdUM7UUFIdEMsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUVqQixpQkFBWSxHQUFaLFlBQVksQ0FBTztRQUNwQixnQkFBVyxHQUFYLFdBQVcsQ0FBNEI7UUE1QmxELGlDQUFpQztRQUN6QixlQUFVLEdBQUcsSUFBSSxHQUFHLEVBQUssQ0FBQztRQUVsQywyRkFBMkY7UUFDbkYsc0JBQWlCLEdBQVEsRUFBRSxDQUFDO1FBRXBDLHlGQUF5RjtRQUNqRixvQkFBZSxHQUFRLEVBQUUsQ0FBQztRQWNsQyxnREFBZ0Q7UUFDdkMsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFPLENBQUM7UUFRbEMsSUFBSSx1QkFBdUIsSUFBSSx1QkFBdUIsQ0FBQyxNQUFNLEVBQUU7WUFDM0QsSUFBSSxTQUFTLEVBQUU7Z0JBQ1gsdUJBQXVC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QUksYUFBYSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7Z0JBQ3ZDLElBQUksSUFBSSxDQUFDLFdBQVksQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLEVBQUU7b0JBQzlDLE9BQU8sYUFBYSxDQUFDO2lCQUN4QjthQUNKO1lBQ0QsT0FBTyxVQUFVLENBQUM7U0FDckI7SUFDTCxDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTZWxlY3Rpb25DaGFuZ2UsIGdldE11bHRpcGxlVmFsdWVzSW5TaW5nbGVTZWxlY3Rpb25FcnJvciB9IGZyb20gXCJAYW5ndWxhci9jZGsvY29sbGVjdGlvbnNcIjtcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xuXG5cblxuLyoqXG4gKiBDb3B5IGFuZCBwYXN0IGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvY29tcG9uZW50cy9ibG9iLzE3LjAueC9zcmMvY2RrL2NvbGxlY3Rpb25zL3NlbGVjdGlvbi1tb2RlbC50c1xuICogKFRoZXkgcHV0IGV2ZXJ5dGhpbmcgaW4gcHJpdmF0ZSwgdGhhbmtzIHRvIGFuZ3VsYXIgdGVhbSlcbiAqL1xuZXhwb3J0IGNsYXNzIEtsZXNTZWxlY3Rpb25Nb2RlbDxUPiB7XG4gICAgLyoqIEN1cnJlbnRseS1zZWxlY3RlZCB2YWx1ZXMuICovXG4gICAgcHJpdmF0ZSBfc2VsZWN0aW9uID0gbmV3IFNldDxUPigpO1xuXG4gICAgLyoqIEtlZXBzIHRyYWNrIG9mIHRoZSBkZXNlbGVjdGVkIG9wdGlvbnMgdGhhdCBoYXZlbid0IGJlZW4gZW1pdHRlZCBieSB0aGUgY2hhbmdlIGV2ZW50LiAqL1xuICAgIHByaXZhdGUgX2Rlc2VsZWN0ZWRUb0VtaXQ6IFRbXSA9IFtdO1xuXG4gICAgLyoqIEtlZXBzIHRyYWNrIG9mIHRoZSBzZWxlY3RlZCBvcHRpb25zIHRoYXQgaGF2ZW4ndCBiZWVuIGVtaXR0ZWQgYnkgdGhlIGNoYW5nZSBldmVudC4gKi9cbiAgICBwcml2YXRlIF9zZWxlY3RlZFRvRW1pdDogVFtdID0gW107XG5cbiAgICAvKiogQ2FjaGUgZm9yIHRoZSBhcnJheSB2YWx1ZSBvZiB0aGUgc2VsZWN0ZWQgaXRlbXMuICovXG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWQ6IFRbXSB8IG51bGw7XG5cbiAgICAvKiogU2VsZWN0ZWQgdmFsdWVzLiAqL1xuICAgIGdldCBzZWxlY3RlZCgpOiBUW10ge1xuICAgICAgICBpZiAoIXRoaXMuX3NlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IEFycmF5LmZyb20odGhpcy5fc2VsZWN0aW9uLnZhbHVlcygpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZDtcbiAgICB9XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSB2YWx1ZSBoYXMgY2hhbmdlZC4gKi9cbiAgICByZWFkb25seSBjaGFuZ2VkID0gbmV3IFN1YmplY3Q8YW55PigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX211bHRpcGxlID0gZmFsc2UsXG4gICAgICAgIGluaXRpYWxseVNlbGVjdGVkVmFsdWVzPzogVFtdLFxuICAgICAgICBwcml2YXRlIF9lbWl0Q2hhbmdlcyA9IHRydWUsXG4gICAgICAgIHB1YmxpYyBjb21wYXJlV2l0aD86IChvMTogVCwgbzI6IFQpID0+IGJvb2xlYW4sXG4gICAgKSB7XG4gICAgICAgIGlmIChpbml0aWFsbHlTZWxlY3RlZFZhbHVlcyAmJiBpbml0aWFsbHlTZWxlY3RlZFZhbHVlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgIGlmIChfbXVsdGlwbGUpIHtcbiAgICAgICAgICAgICAgICBpbml0aWFsbHlTZWxlY3RlZFZhbHVlcy5mb3JFYWNoKHZhbHVlID0+IHRoaXMuX21hcmtTZWxlY3RlZCh2YWx1ZSkpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9tYXJrU2VsZWN0ZWQoaW5pdGlhbGx5U2VsZWN0ZWRWYWx1ZXNbMF0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBDbGVhciB0aGUgYXJyYXkgaW4gb3JkZXIgdG8gYXZvaWQgZmlyaW5nIHRoZSBjaGFuZ2UgZXZlbnQgZm9yIHByZXNlbGVjdGVkIHZhbHVlcy5cbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkVG9FbWl0Lmxlbmd0aCA9IDA7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZWxlY3RzIGEgdmFsdWUgb3IgYW4gYXJyYXkgb2YgdmFsdWVzLlxuICAgICAqIEBwYXJhbSB2YWx1ZXMgVGhlIHZhbHVlcyB0byBzZWxlY3RcbiAgICAgKiBAcmV0dXJuIFdoZXRoZXIgdGhlIHNlbGVjdGlvbiBjaGFuZ2VkIGFzIGEgcmVzdWx0IG9mIHRoaXMgY2FsbFxuICAgICAqIEBicmVha2luZy1jaGFuZ2UgMTYuMC4wIG1ha2UgcmV0dXJuIHR5cGUgYm9vbGVhblxuICAgICAqL1xuICAgIHNlbGVjdCh2YWx1ZXM6IFRbXSwgb3B0aW9uPzogeyBlbWl0RXZlbnQ6IGJvb2xlYW4gfSk6IGJvb2xlYW4gfCB2b2lkIHtcbiAgICAgICAgdGhpcy5fdmVyaWZ5VmFsdWVBc3NpZ25tZW50KHZhbHVlcyk7XG4gICAgICAgIGNvbnNvbGUubG9nKHZhbHVlcylcbiAgICAgICAgdmFsdWVzLmZvckVhY2godmFsdWUgPT4gdGhpcy5fbWFya1NlbGVjdGVkKHZhbHVlKSk7XG4gICAgICAgIGNvbnN0IGNoYW5nZWQgPSB0aGlzLl9oYXNRdWV1ZWRDaGFuZ2VzKCk7XG4gICAgICAgIGlmICghb3B0aW9uIHx8IG9wdGlvbj8uZW1pdEV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlRXZlbnQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2hhbmdlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXNlbGVjdHMgYSB2YWx1ZSBvciBhbiBhcnJheSBvZiB2YWx1ZXMuXG4gICAgICogQHBhcmFtIHZhbHVlcyBUaGUgdmFsdWVzIHRvIGRlc2VsZWN0XG4gICAgICogQHJldHVybiBXaGV0aGVyIHRoZSBzZWxlY3Rpb24gY2hhbmdlZCBhcyBhIHJlc3VsdCBvZiB0aGlzIGNhbGxcbiAgICAgKiBAYnJlYWtpbmctY2hhbmdlIDE2LjAuMCBtYWtlIHJldHVybiB0eXBlIGJvb2xlYW5cbiAgICAgKi9cbiAgICBkZXNlbGVjdCh2YWx1ZXM6IFRbXSwgb3B0aW9uPzogeyBlbWl0RXZlbnQ6IGJvb2xlYW4gfSk6IGJvb2xlYW4gfCB2b2lkIHtcbiAgICAgICAgdGhpcy5fdmVyaWZ5VmFsdWVBc3NpZ25tZW50KHZhbHVlcyk7XG4gICAgICAgIHZhbHVlcy5mb3JFYWNoKHZhbHVlID0+IHRoaXMuX3VubWFya1NlbGVjdGVkKHZhbHVlKSk7XG4gICAgICAgIGNvbnN0IGNoYW5nZWQgPSB0aGlzLl9oYXNRdWV1ZWRDaGFuZ2VzKCk7XG4gICAgICAgIGlmICghb3B0aW9uIHx8IG9wdGlvbj8uZW1pdEV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlRXZlbnQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2hhbmdlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBzZWxlY3RlZCB2YWx1ZXNcbiAgICAgKiBAcGFyYW0gdmFsdWVzIFRoZSBuZXcgc2VsZWN0ZWQgdmFsdWVzXG4gICAgICogQHJldHVybiBXaGV0aGVyIHRoZSBzZWxlY3Rpb24gY2hhbmdlZCBhcyBhIHJlc3VsdCBvZiB0aGlzIGNhbGxcbiAgICAgKiBAYnJlYWtpbmctY2hhbmdlIDE2LjAuMCBtYWtlIHJldHVybiB0eXBlIGJvb2xlYW5cbiAgICAgKi9cbiAgICBzZXRTZWxlY3Rpb24odmFsdWVzOiBUW10sIG9wdGlvbj86IHsgZW1pdEV2ZW50OiBib29sZWFuIH0pOiBib29sZWFuIHwgdm9pZCB7XG4gICAgICAgIHRoaXMuX3ZlcmlmeVZhbHVlQXNzaWdubWVudCh2YWx1ZXMpO1xuICAgICAgICBjb25zdCBvbGRWYWx1ZXMgPSB0aGlzLnNlbGVjdGVkO1xuICAgICAgICBjb25zdCBuZXdTZWxlY3RlZFNldCA9IG5ldyBTZXQodmFsdWVzLm1hcCgodmFsdWUpID0+IHRoaXMuX2dldENvbmNyZXRlVmFsdWUodmFsdWUpKSk7XG4gICAgICAgIHZhbHVlcy5mb3JFYWNoKHZhbHVlID0+IHRoaXMuX21hcmtTZWxlY3RlZCh2YWx1ZSkpO1xuXG4gICAgICAgIG9sZFZhbHVlc1xuICAgICAgICAgICAgLmZpbHRlcih2YWx1ZSA9PiAhbmV3U2VsZWN0ZWRTZXQuaGFzKHZhbHVlKSlcbiAgICAgICAgICAgIC5mb3JFYWNoKHZhbHVlID0+IHRoaXMuX3VubWFya1NlbGVjdGVkKHZhbHVlKSk7XG4gICAgICAgIGNvbnN0IGNoYW5nZWQgPSB0aGlzLl9oYXNRdWV1ZWRDaGFuZ2VzKCk7XG4gICAgICAgIGlmICghb3B0aW9uIHx8IG9wdGlvbj8uZW1pdEV2ZW50KSB7XG4gICAgICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlRXZlbnQoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NlbGVjdGVkID0gbnVsbDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2hhbmdlZDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUb2dnbGVzIGEgdmFsdWUgYmV0d2VlbiBzZWxlY3RlZCBhbmQgZGVzZWxlY3RlZC5cbiAgICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlIHRvIHRvZ2dsZVxuICAgICAqIEByZXR1cm4gV2hldGhlciB0aGUgc2VsZWN0aW9uIGNoYW5nZWQgYXMgYSByZXN1bHQgb2YgdGhpcyBjYWxsXG4gICAgICogQGJyZWFraW5nLWNoYW5nZSAxNi4wLjAgbWFrZSByZXR1cm4gdHlwZSBib29sZWFuXG4gICAgICovXG4gICAgdG9nZ2xlKHZhbHVlOiBUKTogYm9vbGVhbiB8IHZvaWQge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmlzU2VsZWN0ZWQodmFsdWUpID8gdGhpcy5kZXNlbGVjdCh2YWx1ZSkgOiB0aGlzLnNlbGVjdCh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5pc1NlbGVjdGVkKHZhbHVlKSA/IHRoaXMuZGVzZWxlY3QoW3ZhbHVlXSkgOiB0aGlzLnNlbGVjdChbdmFsdWVdKTtcbiAgICAgICAgfVxuXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ2xlYXJzIGFsbCBvZiB0aGUgc2VsZWN0ZWQgdmFsdWVzLlxuICAgICAqIEBwYXJhbSBmbHVzaEV2ZW50IFdoZXRoZXIgdG8gZmx1c2ggdGhlIGNoYW5nZXMgaW4gYW4gZXZlbnQuXG4gICAgICogICBJZiBmYWxzZSwgdGhlIGNoYW5nZXMgdG8gdGhlIHNlbGVjdGlvbiB3aWxsIGJlIGZsdXNoZWQgYWxvbmcgd2l0aCB0aGUgbmV4dCBldmVudC5cbiAgICAgKiBAcmV0dXJuIFdoZXRoZXIgdGhlIHNlbGVjdGlvbiBjaGFuZ2VkIGFzIGEgcmVzdWx0IG9mIHRoaXMgY2FsbFxuICAgICAqIEBicmVha2luZy1jaGFuZ2UgMTYuMC4wIG1ha2UgcmV0dXJuIHR5cGUgYm9vbGVhblxuICAgICAqL1xuICAgIGNsZWFyKGZsdXNoRXZlbnQgPSB0cnVlKTogYm9vbGVhbiB8IHZvaWQge1xuICAgICAgICB0aGlzLl91bm1hcmtBbGwoKTtcbiAgICAgICAgY29uc3QgY2hhbmdlZCA9IHRoaXMuX2hhc1F1ZXVlZENoYW5nZXMoKTtcbiAgICAgICAgaWYgKGZsdXNoRXZlbnQpIHtcbiAgICAgICAgICAgIHRoaXMuX2VtaXRDaGFuZ2VFdmVudCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjaGFuZ2VkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldGVybWluZXMgd2hldGhlciBhIHZhbHVlIGlzIHNlbGVjdGVkLlxuICAgICAqL1xuICAgIGlzU2VsZWN0ZWQodmFsdWU6IFQpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NlbGVjdGlvbi5oYXModGhpcy5fZ2V0Q29uY3JldGVWYWx1ZSh2YWx1ZSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldGVybWluZXMgd2hldGhlciB0aGUgbW9kZWwgZG9lcyBub3QgaGF2ZSBhIHZhbHVlLlxuICAgICAqL1xuICAgIGlzRW1wdHkoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3Rpb24uc2l6ZSA9PT0gMDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdGhlIG1vZGVsIGhhcyBhIHZhbHVlLlxuICAgICAqL1xuICAgIGhhc1ZhbHVlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gIXRoaXMuaXNFbXB0eSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNvcnRzIHRoZSBzZWxlY3RlZCB2YWx1ZXMgYmFzZWQgb24gYSBwcmVkaWNhdGUgZnVuY3Rpb24uXG4gICAgICovXG4gICAgc29ydChwcmVkaWNhdGU/OiAoYTogVCwgYjogVCkgPT4gbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9tdWx0aXBsZSAmJiB0aGlzLnNlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZCEuc29ydChwcmVkaWNhdGUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB3aGV0aGVyIG11bHRpcGxlIHZhbHVlcyBjYW4gYmUgc2VsZWN0ZWQuXG4gICAgICovXG4gICAgaXNNdWx0aXBsZVNlbGVjdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX211bHRpcGxlO1xuICAgIH1cblxuICAgIC8qKiBFbWl0cyBhIGNoYW5nZSBldmVudCBhbmQgY2xlYXJzIHRoZSByZWNvcmRzIG9mIHNlbGVjdGVkIGFuZCBkZXNlbGVjdGVkIHZhbHVlcy4gKi9cbiAgICBwcml2YXRlIF9lbWl0Q2hhbmdlRXZlbnQoKSB7XG4gICAgICAgIC8vIENsZWFyIHRoZSBzZWxlY3RlZCB2YWx1ZXMgc28gdGhleSBjYW4gYmUgcmUtY2FjaGVkLlxuICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IG51bGw7XG5cbiAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkVG9FbWl0Lmxlbmd0aCB8fCB0aGlzLl9kZXNlbGVjdGVkVG9FbWl0Lmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VkLm5leHQoe1xuICAgICAgICAgICAgICAgIHNvdXJjZTogdGhpcyxcbiAgICAgICAgICAgICAgICBhZGRlZDogdGhpcy5fc2VsZWN0ZWRUb0VtaXQsXG4gICAgICAgICAgICAgICAgcmVtb3ZlZDogdGhpcy5fZGVzZWxlY3RlZFRvRW1pdCxcbiAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICB0aGlzLl9kZXNlbGVjdGVkVG9FbWl0ID0gW107XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZFRvRW1pdCA9IFtdO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFNlbGVjdHMgYSB2YWx1ZS4gKi9cbiAgICBwcml2YXRlIF9tYXJrU2VsZWN0ZWQodmFsdWU6IFQpIHtcbiAgICAgICAgdmFsdWUgPSB0aGlzLl9nZXRDb25jcmV0ZVZhbHVlKHZhbHVlKTtcbiAgICAgICAgaWYgKCF0aGlzLmlzU2VsZWN0ZWQodmFsdWUpKSB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX211bHRpcGxlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdW5tYXJrQWxsKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghdGhpcy5pc1NlbGVjdGVkKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3NlbGVjdGlvbi5hZGQodmFsdWUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodGhpcy5fZW1pdENoYW5nZXMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZWxlY3RlZFRvRW1pdC5wdXNoKHZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBEZXNlbGVjdHMgYSB2YWx1ZS4gKi9cbiAgICBwcml2YXRlIF91bm1hcmtTZWxlY3RlZCh2YWx1ZTogVCkge1xuICAgICAgICB2YWx1ZSA9IHRoaXMuX2dldENvbmNyZXRlVmFsdWUodmFsdWUpO1xuICAgICAgICBpZiAodGhpcy5pc1NlbGVjdGVkKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0aW9uLmRlbGV0ZSh2YWx1ZSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLl9lbWl0Q2hhbmdlcykge1xuICAgICAgICAgICAgICAgIHRoaXMuX2Rlc2VsZWN0ZWRUb0VtaXQucHVzaCh2YWx1ZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQ2xlYXJzIG91dCB0aGUgc2VsZWN0ZWQgdmFsdWVzLiAqL1xuICAgIHByaXZhdGUgX3VubWFya0FsbCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmlzRW1wdHkoKSkge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0aW9uLmZvckVhY2godmFsdWUgPT4gdGhpcy5fdW5tYXJrU2VsZWN0ZWQodmFsdWUpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFZlcmlmaWVzIHRoZSB2YWx1ZSBhc3NpZ25tZW50IGFuZCB0aHJvd3MgYW4gZXJyb3IgaWYgdGhlIHNwZWNpZmllZCB2YWx1ZSBhcnJheSBpc1xuICAgICAqIGluY2x1ZGluZyBtdWx0aXBsZSB2YWx1ZXMgd2hpbGUgdGhlIHNlbGVjdGlvbiBtb2RlbCBpcyBub3Qgc3VwcG9ydGluZyBtdWx0aXBsZSB2YWx1ZXMuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfdmVyaWZ5VmFsdWVBc3NpZ25tZW50KHZhbHVlczogVFtdKSB7XG4gICAgICAgIGlmICh2YWx1ZXMubGVuZ3RoID4gMSAmJiAhdGhpcy5fbXVsdGlwbGUpIHtcbiAgICAgICAgICAgIHRocm93IGdldE11bHRpcGxlVmFsdWVzSW5TaW5nbGVTZWxlY3Rpb25FcnJvcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFdoZXRoZXIgdGhlcmUgYXJlIHF1ZXVlZCB1cCBjaGFuZ2UgdG8gYmUgZW1pdHRlZC4gKi9cbiAgICBwcml2YXRlIF9oYXNRdWV1ZWRDaGFuZ2VzKCkge1xuICAgICAgICByZXR1cm4gISEodGhpcy5fZGVzZWxlY3RlZFRvRW1pdC5sZW5ndGggfHwgdGhpcy5fc2VsZWN0ZWRUb0VtaXQubGVuZ3RoKTtcbiAgICB9XG5cbiAgICAvKiogUmV0dXJucyBhIHZhbHVlIHRoYXQgaXMgY29tcGFyYWJsZSB0byBpbnB1dFZhbHVlIGJ5IGFwcGx5aW5nIGNvbXBhcmVXaXRoIGZ1bmN0aW9uLCByZXR1cm5zIHRoZSBzYW1lIGlucHV0VmFsdWUgb3RoZXJ3aXNlLiAqL1xuICAgIHByaXZhdGUgX2dldENvbmNyZXRlVmFsdWUoaW5wdXRWYWx1ZTogVCk6IFQge1xuICAgICAgICBpZiAoIXRoaXMuY29tcGFyZVdpdGgpIHtcbiAgICAgICAgICAgIHJldHVybiBpbnB1dFZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZm9yIChsZXQgc2VsZWN0ZWRWYWx1ZSBvZiB0aGlzLl9zZWxlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jb21wYXJlV2l0aCEoaW5wdXRWYWx1ZSwgc2VsZWN0ZWRWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGVkVmFsdWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIGlucHV0VmFsdWU7XG4gICAgICAgIH1cbiAgICB9XG59Il19
@@ -47,6 +47,7 @@ export * from './lib/fields/date-time.component';
47
47
  export * from './lib/fields/button-fab.component';
48
48
  export * from './lib/fields/button-mini-fab.component';
49
49
  export * from './lib/fields/button-icon.component';
50
+ export * from './lib/fields/selection-list.search.component';
50
51
  /**ENUMS */
51
52
  export * from './lib/enums/type.enum';
52
53
  export * from './lib/enums/button-attribute.enum';
@@ -76,4 +77,4 @@ export * from './lib/controls/control.interface';
76
77
  export * from './lib/controls/default.control';
77
78
  export * from './lib/controls/group.control';
78
79
  export * from './lib/controls/range.control';
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2tsZXMtbWF0ZXJpYWwtZHluYW1pY2Zvcm1zL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyx5Q0FBeUMsQ0FBQztBQUV4RCxlQUFlO0FBQ2YsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDZDQUE2QyxDQUFDO0FBRTVELFNBQVM7QUFDVCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDJDQUEyQyxDQUFDO0FBRTFELFlBQVk7QUFDWixjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxvQ0FBb0MsQ0FBQztBQUVuRCxXQUFXO0FBQ1gsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLG1DQUFtQyxDQUFDO0FBRWxELGdCQUFnQjtBQUNoQixjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYywwQ0FBMEMsQ0FBQztBQUV6RCxhQUFhO0FBQ2IsY0FBYyxrQ0FBa0MsQ0FBQztBQUVqRCxnQkFBZ0I7QUFDaEIsY0FBYyx5Q0FBeUMsQ0FBQztBQUV4RCxVQUFVO0FBQ1YsY0FBYyw4QkFBOEIsQ0FBQztBQUU3QyxXQUFXO0FBQ1gsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLDJCQUEyQixDQUFDO0FBRTFDLGdCQUFnQjtBQUNoQixjQUFjLHNDQUFzQyxDQUFDO0FBRXJELGVBQWU7QUFDZixjQUFjLCtCQUErQixDQUFDO0FBRTlDLGNBQWM7QUFDZCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsOEJBQThCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGtsZXMtbWF0ZXJpYWwtZHluYW1pY2Zvcm1zXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIva2xlcy1tYXRlcmlhbC1keW5hbWljZm9ybXMubW9kdWxlJztcblxuLyoqRElSRUNUSVZFICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmUvZHluYW1pYy1maWVsZC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlL2R5bmFtaWMtY29tcG9uZW50LmRpcmVjdGl2ZSc7XG5cbi8qRk9STVMqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybXMvYnV0dG9uLWNvbnRyb2wtYmFzZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3Jtcy9idXR0b24tY29udHJvbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybXMvYnV0dG9uY2hlY2tlci1jb250cm9sLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3Jtcy9idXR0b25maWxlLWNvbnRyb2wuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm1zL2ZhYi1jb250cm9sLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3Jtcy9taW5pLWZhYi1jb250cm9sLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3Jtcy9pY29uLWJ1dHRvbi1jb250cm9sLmNvbXBvbmVudCc7XG5cbi8qKkZJRUxEUyAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2JhZGdlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvYnV0dG9uLWZvcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9idXR0b25jaGVja2VyLWZvcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9idXR0b25maWxlLWZvcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9jaGVja2JveC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2NvbG9yLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvZGF0ZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2ZpZWxkLmFic3RyYWN0JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2lucHV0LmNsZWFyYWJsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2xhYmVsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvbGlzdC1maWVsZC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL3JhZGlvLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvc2VsZWN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvdGV4dGFyZWEuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy90ZXh0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvY2hpcC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2dyb3VwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvaWNvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL3NlbGVjdC5zZWFyY2guY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9saW5lLWJyZWFrLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvbGluay5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL3NsaWRlLXRvZ2dsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL3NlbGVjdGlvbi1saXN0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvYnV0dG9uLXRvb2dsZS1ncm91cC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2FycmF5LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvcmFuZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9jbGVhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL3NlbGVjdC5sYXp5LXNlYXJjaC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2RhdGUtdGltZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2J1dHRvbi1mYWIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9idXR0b24tbWluaS1mYWIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9idXR0b24taWNvbi5jb21wb25lbnQnO1xuXG4vKipFTlVNUyAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZW51bXMvdHlwZS5lbnVtJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VudW1zL2J1dHRvbi1hdHRyaWJ1dGUuZW51bSc7XG5cbi8qKklOVEVSRkFDRVMgKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvY29tcG9uZW50LmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL2ZpZWxkLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL2ZpZWxkLmNvbmZpZy5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcy92YWxpZGF0b3IuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvZGlyZWN0aXZlLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL2NsZWFyLWNvbnRyb2wuaW50ZXJmYWNlJztcblxuLyoqTUFUQ0hFUiAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbWF0Y2hlci9mb3JtLWVycm9yLm1hdGNoZXInO1xuXG4vKipWQUxJREFUT1JTICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi92YWxpZGF0b3JzL2F1dG9jb21wbGV0ZS52YWxpZGF0b3InO1xuXG4vKipGT1JNICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9keW5hbWljLWZvcm0uY29tcG9uZW50JztcblxuLyoqUElQRVMgKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGUvYXJyYXkucGlwZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlL3RyYW5zZm9ybS5waXBlJztcblxuLyoqREVDT1JBVE9SUyAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZGVjb3JhdG9ycy9jb21wb25lbnQuZGVjb3JhdG9yJztcblxuLyoqRkFDVE9SSUVTICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9mYWN0b3JpZXMvZmllbGQuZmFjdG9yeSc7XG5cbi8qKkNPTlRST0xTICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cm9scy9hcnJheS5jb250cm9sJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRyb2xzL2NvbnRyb2wuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRyb2xzL2RlZmF1bHQuY29udHJvbCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb250cm9scy9ncm91cC5jb250cm9sJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRyb2xzL3JhbmdlLmNvbnRyb2wnO1xuIl19
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2tsZXMtbWF0ZXJpYWwtZHluYW1pY2Zvcm1zL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyx5Q0FBeUMsQ0FBQztBQUV4RCxlQUFlO0FBQ2YsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDZDQUE2QyxDQUFDO0FBRTVELFNBQVM7QUFDVCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDBDQUEwQyxDQUFDO0FBQ3pELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLDJDQUEyQyxDQUFDO0FBRTFELFlBQVk7QUFDWixjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHdDQUF3QyxDQUFDO0FBQ3ZELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDhDQUE4QyxDQUFDO0FBRTdELFdBQVc7QUFDWCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsbUNBQW1DLENBQUM7QUFFbEQsZ0JBQWdCO0FBQ2hCLGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDBDQUEwQyxDQUFDO0FBRXpELGFBQWE7QUFDYixjQUFjLGtDQUFrQyxDQUFDO0FBRWpELGdCQUFnQjtBQUNoQixjQUFjLHlDQUF5QyxDQUFDO0FBRXhELFVBQVU7QUFDVixjQUFjLDhCQUE4QixDQUFDO0FBRTdDLFdBQVc7QUFDWCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMkJBQTJCLENBQUM7QUFFMUMsZ0JBQWdCO0FBQ2hCLGNBQWMsc0NBQXNDLENBQUM7QUFFckQsZUFBZTtBQUNmLGNBQWMsK0JBQStCLENBQUM7QUFFOUMsY0FBYztBQUNkLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2Yga2xlcy1tYXRlcmlhbC1keW5hbWljZm9ybXNcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2xpYi9rbGVzLW1hdGVyaWFsLWR5bmFtaWNmb3Jtcy5tb2R1bGUnO1xuXG4vKipESVJFQ1RJVkUgKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZS9keW5hbWljLWZpZWxkLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmUvZHluYW1pYy1jb21wb25lbnQuZGlyZWN0aXZlJztcblxuLypGT1JNUyovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3Jtcy9idXR0b24tY29udHJvbC1iYXNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm1zL2J1dHRvbi1jb250cm9sLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9mb3Jtcy9idXR0b25jaGVja2VyLWNvbnRyb2wuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm1zL2J1dHRvbmZpbGUtY29udHJvbC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZm9ybXMvZmFiLWNvbnRyb2wuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm1zL21pbmktZmFiLWNvbnRyb2wuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Zvcm1zL2ljb24tYnV0dG9uLWNvbnRyb2wuY29tcG9uZW50JztcblxuLyoqRklFTERTICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvYmFkZ2UuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9idXR0b24tZm9ybS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2J1dHRvbmNoZWNrZXItZm9ybS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2J1dHRvbmZpbGUtZm9ybS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2NoZWNrYm94LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvY29sb3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9kYXRlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvZmllbGQuYWJzdHJhY3QnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2lucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvaW5wdXQuY2xlYXJhYmxlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvbGFiZWwuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9saXN0LWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvcmFkaW8uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9zZWxlY3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy90ZXh0YXJlYS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL3RleHQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9jaGlwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvZ3JvdXAuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9pY29uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvc2VsZWN0LnNlYXJjaC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2xpbmUtYnJlYWsuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9saW5rLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvc2xpZGUtdG9nZ2xlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvc2VsZWN0aW9uLWxpc3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9idXR0b24tdG9vZ2xlLWdyb3VwLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvYXJyYXkuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZpZWxkcy9yYW5nZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2NsZWFyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvc2VsZWN0Lmxhenktc2VhcmNoLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvZGF0ZS10aW1lLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvYnV0dG9uLWZhYi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2J1dHRvbi1taW5pLWZhYi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZmllbGRzL2J1dHRvbi1pY29uLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9maWVsZHMvc2VsZWN0aW9uLWxpc3Quc2VhcmNoLmNvbXBvbmVudCc7XG5cbi8qKkVOVU1TICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbnVtcy90eXBlLmVudW0nO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvZW51bXMvYnV0dG9uLWF0dHJpYnV0ZS5lbnVtJztcblxuLyoqSU5URVJGQUNFUyAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcy9jb21wb25lbnQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvZmllbGQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvZmllbGQuY29uZmlnLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnRlcmZhY2VzL3ZhbGlkYXRvci5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvaW50ZXJmYWNlcy9kaXJlY3RpdmUuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2ludGVyZmFjZXMvY2xlYXItY29udHJvbC5pbnRlcmZhY2UnO1xuXG4vKipNQVRDSEVSICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tYXRjaGVyL2Zvcm0tZXJyb3IubWF0Y2hlcic7XG5cbi8qKlZBTElEQVRPUlMgKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL3ZhbGlkYXRvcnMvYXV0b2NvbXBsZXRlLnZhbGlkYXRvcic7XG5cbi8qKkZPUk0gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2R5bmFtaWMtZm9ybS5jb21wb25lbnQnO1xuXG4vKipQSVBFUyAqL1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZS9hcnJheS5waXBlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BpcGUvdHJhbnNmb3JtLnBpcGUnO1xuXG4vKipERUNPUkFUT1JTICovXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kZWNvcmF0b3JzL2NvbXBvbmVudC5kZWNvcmF0b3InO1xuXG4vKipGQUNUT1JJRVMgKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2ZhY3Rvcmllcy9maWVsZC5mYWN0b3J5JztcblxuLyoqQ09OVFJPTFMgKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRyb2xzL2FycmF5LmNvbnRyb2wnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udHJvbHMvY29udHJvbC5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udHJvbHMvZGVmYXVsdC5jb250cm9sJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbnRyb2xzL2dyb3VwLmNvbnRyb2wnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29udHJvbHMvcmFuZ2UuY29udHJvbCc7XG4iXX0=