@huntsman-cancer-institute/input 16.0.1 → 17.0.1

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 (54) hide show
  1. package/date/date-base.d.ts +65 -65
  2. package/date/date-date-range.component.d.ts +32 -32
  3. package/date/date-date.component.d.ts +53 -53
  4. package/date/date-validator.d.ts +17 -17
  5. package/date/date.module.d.ts +16 -16
  6. package/dropdown/dropdown-index.d.ts +6 -6
  7. package/dropdown/dropdown-select-result.component.d.ts +23 -23
  8. package/dropdown/dropdown-select.component.d.ts +76 -76
  9. package/dropdown/dropdown.component.d.ts +40 -40
  10. package/dropdown/dropdown.module.d.ts +13 -13
  11. package/dropdown/dropdown.service.d.ts +51 -51
  12. package/dropdown/messages.d.ts +11 -11
  13. package/dropdown/select-item.d.ts +16 -16
  14. package/dropdown/template-dropdown.directive.d.ts +12 -12
  15. package/esm2022/date/date-base.mjs +114 -114
  16. package/esm2022/date/date-date-range.component.mjs +92 -92
  17. package/esm2022/date/date-date.component.mjs +189 -189
  18. package/esm2022/date/date-validator.mjs +40 -40
  19. package/esm2022/date/date.module.mjs +60 -60
  20. package/esm2022/dropdown/dropdown-index.mjs +5 -5
  21. package/esm2022/dropdown/dropdown-select-result.component.mjs +85 -85
  22. package/esm2022/dropdown/dropdown-select.component.mjs +360 -360
  23. package/esm2022/dropdown/dropdown.component.mjs +170 -170
  24. package/esm2022/dropdown/dropdown.module.mjs +50 -50
  25. package/esm2022/dropdown/dropdown.service.mjs +133 -133
  26. package/esm2022/dropdown/messages.mjs +9 -9
  27. package/esm2022/dropdown/select-item.mjs +11 -11
  28. package/esm2022/dropdown/template-dropdown.directive.mjs +26 -26
  29. package/esm2022/huntsman-cancer-institute-input.mjs +4 -4
  30. package/esm2022/index.mjs +19 -19
  31. package/esm2022/inline/inline.component.mjs +179 -179
  32. package/esm2022/inline/inline.module.mjs +28 -28
  33. package/esm2022/search/search.component.mjs +157 -157
  34. package/esm2022/search/search.module.mjs +32 -32
  35. package/esm2022/select/custom-combobox.component.mjs +531 -531
  36. package/esm2022/select/custom-multi-combobox.component.mjs +232 -232
  37. package/esm2022/select/md-multi-select.component.mjs +127 -127
  38. package/esm2022/select/md-select.component.mjs +107 -107
  39. package/esm2022/select/native-select.component.mjs +188 -188
  40. package/esm2022/select/select.module.mjs +83 -83
  41. package/fesm2022/huntsman-cancer-institute-input.mjs +2797 -2797
  42. package/fesm2022/huntsman-cancer-institute-input.mjs.map +1 -1
  43. package/index.d.ts +20 -20
  44. package/inline/inline.component.d.ts +66 -66
  45. package/inline/inline.module.d.ts +9 -9
  46. package/package.json +7 -7
  47. package/search/search.component.d.ts +42 -42
  48. package/search/search.module.d.ts +10 -10
  49. package/select/custom-combobox.component.d.ts +98 -98
  50. package/select/custom-multi-combobox.component.d.ts +50 -50
  51. package/select/md-multi-select.component.d.ts +32 -32
  52. package/select/md-select.component.d.ts +30 -30
  53. package/select/native-select.component.d.ts +37 -37
  54. package/select/select.module.d.ts +21 -21
@@ -1,194 +1,194 @@
1
- import { Component, ElementRef, EventEmitter, Injector, Input, Output, ViewChild, } from "@angular/core";
2
- import { UntypedFormControl, NG_VALUE_ACCESSOR, NgControl } from "@angular/forms";
3
- import { debounceTime } from "rxjs/operators";
4
- import { MatLegacySelect as MatSelect } from "@angular/material/legacy-select";
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/common";
7
- import * as i2 from "@angular/forms";
8
- import * as i3 from "@angular/material/legacy-form-field";
9
- import * as i4 from "@angular/material/legacy-select";
10
- import * as i5 from "@angular/material/legacy-core";
11
- import * as i6 from "@angular/material/legacy-input";
12
- import * as i7 from "@angular/material/legacy-tooltip";
13
- export class CustomMultiComboBoxComponent {
14
- constructor(injector) {
15
- this.injector = injector;
16
- this.placeholder = "";
17
- this.temporaryPlaceholder = false;
18
- this.tooltip = "";
19
- this.options = [];
20
- this.includeLoadingOption = true;
21
- this.loadedOptions = [];
22
- this.isSelectOpen = false;
23
- this.forceEmitObject = false;
24
- this.appearance = "";
25
- this.outerControl = new UntypedFormControl([]);
26
- this.innerControl = new UntypedFormControl("");
27
- this.ignoreInnerControlChanges = false;
28
- this.noNgControl = false;
29
- this.selectedListItems = [];
30
- this.selectionChanged = new EventEmitter();
31
- this.onChangeFn = () => { };
32
- this.onTouchedFn = () => { };
33
- }
34
- ngAfterViewInit() {
35
- let ngControl = this.injector.get(NgControl, null);
36
- if (ngControl && ngControl.control) {
37
- this.outerControl = ngControl.control;
38
- setTimeout(() => {
39
- this.loadOnlyCurrentValue();
40
- });
41
- }
42
- else {
43
- this.noNgControl = true;
44
- }
45
- this.innerControlSubscription = this.innerControl.valueChanges.pipe(debounceTime(300)).subscribe(() => {
46
- if (!this.ignoreInnerControlChanges) {
47
- this.filterOptions();
48
- }
49
- else {
50
- this.ignoreInnerControlChanges = false;
51
- }
52
- });
53
- }
54
- ngOnChanges(changes) {
55
- if (changes.options) {
56
- let optionsChange = changes.options;
57
- if (!optionsChange.currentValue) {
58
- this.options = [];
59
- }
60
- }
61
- this.loadOnlyCurrentValue();
62
- }
63
- writeValue(obj) {
64
- this.loadOnlyCurrentValue();
65
- }
66
- registerOnChange(fn) {
67
- this.onChangeFn = fn;
68
- }
69
- registerOnTouched(fn) {
70
- this.onTouchedFn = fn;
71
- }
72
- setDisabledState(isDisabled) {
73
- if (isDisabled) {
74
- this.innerControl.disable();
75
- this.selectElement.disabled = true;
76
- }
77
- else {
78
- this.innerControl.enable();
79
- this.selectElement.disabled = false;
80
- }
81
- }
82
- onInputFocus() {
83
- this.selectElement.open();
84
- }
85
- loadOnlyCurrentValue() {
86
- this.loadedOptions = [];
87
- if (this.outerControl.value && this.outerControl.value.length) {
88
- for (let opt of this.options) {
89
- if (this.isOptInOuterValue(opt)) {
90
- this.loadedOptions.push(opt);
91
- }
92
- }
93
- }
94
- this.selectedListItems = this.loadedOptions;
95
- let currentValueLabel = "";
96
- for (let opt of this.loadedOptions) {
97
- if (currentValueLabel) {
98
- currentValueLabel += ", ";
99
- }
100
- currentValueLabel += this.displayField ? opt[this.displayField] : opt;
101
- }
102
- this.ignoreInnerControlChanges = true;
103
- this.innerControl.setValue(currentValueLabel);
104
- }
105
- filterOptions(showAll = false) {
106
- if (showAll || !this.innerControl.value) {
107
- this.loadedOptions = this.options;
108
- }
109
- else {
110
- let searchValue = this.innerControl.value.toLowerCase();
111
- this.loadedOptions = this.options.filter((opt) => {
112
- let optDisplay = (this.displayField ? opt[this.displayField] : opt).toLowerCase();
113
- return optDisplay.includes(searchValue) || this.isOptInOuterValue(opt);
114
- });
115
- }
116
- }
117
- isOptInOuterValue(opt) {
118
- let optValue = this.valueField ? opt[this.valueField] : opt;
119
- if (this.forceEmitObject) {
120
- for (let outerValOpt of this.outerControl.value) {
121
- let outerOptValue = this.valueField ? outerValOpt[this.valueField] : outerValOpt;
122
- if (optValue === outerOptValue) {
123
- return true;
124
- }
125
- }
126
- }
127
- else {
128
- return this.outerControl.value.includes(optValue);
129
- }
130
- }
131
- onOpenedChange(opened) {
132
- this.isSelectOpen = opened;
133
- if (opened) {
134
- this.onTouchedFn();
135
- this.inputElement.nativeElement.focus();
136
- this.ignoreInnerControlChanges = true;
137
- this.innerControl.setValue("");
138
- setTimeout(() => {
139
- this.filterOptions(true);
140
- this.includeLoadingOption = false;
141
- });
142
- }
143
- else {
144
- setTimeout(() => {
145
- this.loadOnlyCurrentValue();
146
- this.includeLoadingOption = true;
147
- });
148
- }
149
- }
150
- selectOptions(options) {
151
- let newVal = [];
152
- for (let opt of options) {
153
- if (opt) {
154
- newVal.push((this.valueField && !this.forceEmitObject) ? opt[this.valueField] : opt);
155
- }
156
- }
157
- if (this.noNgControl) {
158
- this.outerControl.setValue(newVal);
159
- }
160
- this.onChangeFn(newVal);
161
- this.selectionChanged.emit(newVal);
162
- if (this.isSelectOpen) {
163
- this.inputElement.nativeElement.focus();
164
- }
165
- }
166
- compareByID(itemOne, itemTwo) {
167
- if (!itemOne) {
168
- return false;
169
- }
170
- else if (!itemTwo) {
171
- return false;
172
- }
173
- else {
174
- if (this.valueField) {
175
- return itemOne[this.valueField] && itemTwo[this.valueField] && itemOne[this.valueField] === itemTwo[this.valueField];
176
- }
177
- else {
178
- return itemOne === itemTwo;
179
- }
180
- }
181
- }
182
- ngOnDestroy() {
183
- if (this.innerControlSubscription) {
184
- this.innerControlSubscription.unsubscribe();
185
- }
186
- }
187
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomMultiComboBoxComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
188
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CustomMultiComboBoxComponent, selector: "hci-multi-combobox", inputs: { label: "label", placeholder: "placeholder", temporaryPlaceholder: "temporaryPlaceholder", tooltip: "tooltip", options: "options", valueField: "valueField", forceEmitObject: "forceEmitObject", displayField: "displayField", appearance: "appearance", initialFocus: "initialFocus", floatLabel: "floatLabel" }, outputs: { selectionChanged: "selectionChanged" }, providers: [{
189
- provide: NG_VALUE_ACCESSOR,
190
- useExisting: CustomMultiComboBoxComponent,
191
- multi: true,
1
+ import { Component, ElementRef, EventEmitter, Injector, Input, Output, ViewChild, } from "@angular/core";
2
+ import { UntypedFormControl, NG_VALUE_ACCESSOR, NgControl } from "@angular/forms";
3
+ import { debounceTime } from "rxjs/operators";
4
+ import { MatLegacySelect as MatSelect } from "@angular/material/legacy-select";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common";
7
+ import * as i2 from "@angular/forms";
8
+ import * as i3 from "@angular/material/legacy-form-field";
9
+ import * as i4 from "@angular/material/legacy-select";
10
+ import * as i5 from "@angular/material/legacy-core";
11
+ import * as i6 from "@angular/material/legacy-input";
12
+ import * as i7 from "@angular/material/legacy-tooltip";
13
+ export class CustomMultiComboBoxComponent {
14
+ constructor(injector) {
15
+ this.injector = injector;
16
+ this.placeholder = "";
17
+ this.temporaryPlaceholder = false;
18
+ this.tooltip = "";
19
+ this.options = [];
20
+ this.includeLoadingOption = true;
21
+ this.loadedOptions = [];
22
+ this.isSelectOpen = false;
23
+ this.forceEmitObject = false;
24
+ this.appearance = "";
25
+ this.outerControl = new UntypedFormControl([]);
26
+ this.innerControl = new UntypedFormControl("");
27
+ this.ignoreInnerControlChanges = false;
28
+ this.noNgControl = false;
29
+ this.selectedListItems = [];
30
+ this.selectionChanged = new EventEmitter();
31
+ this.onChangeFn = () => { };
32
+ this.onTouchedFn = () => { };
33
+ }
34
+ ngAfterViewInit() {
35
+ let ngControl = this.injector.get(NgControl, null);
36
+ if (ngControl && ngControl.control) {
37
+ this.outerControl = ngControl.control;
38
+ setTimeout(() => {
39
+ this.loadOnlyCurrentValue();
40
+ });
41
+ }
42
+ else {
43
+ this.noNgControl = true;
44
+ }
45
+ this.innerControlSubscription = this.innerControl.valueChanges.pipe(debounceTime(300)).subscribe(() => {
46
+ if (!this.ignoreInnerControlChanges) {
47
+ this.filterOptions();
48
+ }
49
+ else {
50
+ this.ignoreInnerControlChanges = false;
51
+ }
52
+ });
53
+ }
54
+ ngOnChanges(changes) {
55
+ if (changes.options) {
56
+ let optionsChange = changes.options;
57
+ if (!optionsChange.currentValue) {
58
+ this.options = [];
59
+ }
60
+ }
61
+ this.loadOnlyCurrentValue();
62
+ }
63
+ writeValue(obj) {
64
+ this.loadOnlyCurrentValue();
65
+ }
66
+ registerOnChange(fn) {
67
+ this.onChangeFn = fn;
68
+ }
69
+ registerOnTouched(fn) {
70
+ this.onTouchedFn = fn;
71
+ }
72
+ setDisabledState(isDisabled) {
73
+ if (isDisabled) {
74
+ this.innerControl.disable();
75
+ this.selectElement.disabled = true;
76
+ }
77
+ else {
78
+ this.innerControl.enable();
79
+ this.selectElement.disabled = false;
80
+ }
81
+ }
82
+ onInputFocus() {
83
+ this.selectElement.open();
84
+ }
85
+ loadOnlyCurrentValue() {
86
+ this.loadedOptions = [];
87
+ if (this.outerControl.value && this.outerControl.value.length) {
88
+ for (let opt of this.options) {
89
+ if (this.isOptInOuterValue(opt)) {
90
+ this.loadedOptions.push(opt);
91
+ }
92
+ }
93
+ }
94
+ this.selectedListItems = this.loadedOptions;
95
+ let currentValueLabel = "";
96
+ for (let opt of this.loadedOptions) {
97
+ if (currentValueLabel) {
98
+ currentValueLabel += ", ";
99
+ }
100
+ currentValueLabel += this.displayField ? opt[this.displayField] : opt;
101
+ }
102
+ this.ignoreInnerControlChanges = true;
103
+ this.innerControl.setValue(currentValueLabel);
104
+ }
105
+ filterOptions(showAll = false) {
106
+ if (showAll || !this.innerControl.value) {
107
+ this.loadedOptions = this.options;
108
+ }
109
+ else {
110
+ let searchValue = this.innerControl.value.toLowerCase();
111
+ this.loadedOptions = this.options.filter((opt) => {
112
+ let optDisplay = (this.displayField ? opt[this.displayField] : opt).toLowerCase();
113
+ return optDisplay.includes(searchValue) || this.isOptInOuterValue(opt);
114
+ });
115
+ }
116
+ }
117
+ isOptInOuterValue(opt) {
118
+ let optValue = this.valueField ? opt[this.valueField] : opt;
119
+ if (this.forceEmitObject) {
120
+ for (let outerValOpt of this.outerControl.value) {
121
+ let outerOptValue = this.valueField ? outerValOpt[this.valueField] : outerValOpt;
122
+ if (optValue === outerOptValue) {
123
+ return true;
124
+ }
125
+ }
126
+ }
127
+ else {
128
+ return this.outerControl.value.includes(optValue);
129
+ }
130
+ }
131
+ onOpenedChange(opened) {
132
+ this.isSelectOpen = opened;
133
+ if (opened) {
134
+ this.onTouchedFn();
135
+ this.inputElement.nativeElement.focus();
136
+ this.ignoreInnerControlChanges = true;
137
+ this.innerControl.setValue("");
138
+ setTimeout(() => {
139
+ this.filterOptions(true);
140
+ this.includeLoadingOption = false;
141
+ });
142
+ }
143
+ else {
144
+ setTimeout(() => {
145
+ this.loadOnlyCurrentValue();
146
+ this.includeLoadingOption = true;
147
+ });
148
+ }
149
+ }
150
+ selectOptions(options) {
151
+ let newVal = [];
152
+ for (let opt of options) {
153
+ if (opt) {
154
+ newVal.push((this.valueField && !this.forceEmitObject) ? opt[this.valueField] : opt);
155
+ }
156
+ }
157
+ if (this.noNgControl) {
158
+ this.outerControl.setValue(newVal);
159
+ }
160
+ this.onChangeFn(newVal);
161
+ this.selectionChanged.emit(newVal);
162
+ if (this.isSelectOpen) {
163
+ this.inputElement.nativeElement.focus();
164
+ }
165
+ }
166
+ compareByID(itemOne, itemTwo) {
167
+ if (!itemOne) {
168
+ return false;
169
+ }
170
+ else if (!itemTwo) {
171
+ return false;
172
+ }
173
+ else {
174
+ if (this.valueField) {
175
+ return itemOne[this.valueField] && itemTwo[this.valueField] && itemOne[this.valueField] === itemTwo[this.valueField];
176
+ }
177
+ else {
178
+ return itemOne === itemTwo;
179
+ }
180
+ }
181
+ }
182
+ ngOnDestroy() {
183
+ if (this.innerControlSubscription) {
184
+ this.innerControlSubscription.unsubscribe();
185
+ }
186
+ }
187
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CustomMultiComboBoxComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
188
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.2", type: CustomMultiComboBoxComponent, selector: "hci-multi-combobox", inputs: { label: "label", placeholder: "placeholder", temporaryPlaceholder: "temporaryPlaceholder", tooltip: "tooltip", options: "options", valueField: "valueField", forceEmitObject: "forceEmitObject", displayField: "displayField", appearance: "appearance", initialFocus: "initialFocus", floatLabel: "floatLabel" }, outputs: { selectionChanged: "selectionChanged" }, providers: [{
189
+ provide: NG_VALUE_ACCESSOR,
190
+ useExisting: CustomMultiComboBoxComponent,
191
+ multi: true,
192
192
  }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true }, { propertyName: "selectElement", first: true, predicate: ["select"], descendants: true }], usesOnChanges: true, ngImport: i0, template: `
193
193
  <div class="combobox-multi-container d-flex font-sm">
194
194
  <mat-form-field [appearance]="appearance" [matTooltip]="this.tooltip" [floatLabel]="floatLabel">
@@ -218,10 +218,10 @@ export class CustomMultiComboBoxComponent {
218
218
  </div>
219
219
  </mat-form-field>
220
220
  </div>
221
- `, isInline: true, styles: [""], 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.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLegacyLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatLegacySuffix, selector: "[matSuffix]" }, { kind: "component", type: i4.MatLegacySelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i5.MatLegacyOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i6.MatLegacyInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", exportAs: ["matInput"] }, { kind: "directive", type: i7.MatLegacyTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] }); }
222
- }
223
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CustomMultiComboBoxComponent, decorators: [{
224
- type: Component,
221
+ `, isInline: true, styles: [""], 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.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3.MatLegacyLabel, selector: "mat-label" }, { kind: "directive", type: i3.MatLegacySuffix, selector: "[matSuffix]" }, { kind: "component", type: i4.MatLegacySelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i5.MatLegacyOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i6.MatLegacyInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", exportAs: ["matInput"] }, { kind: "directive", type: i7.MatLegacyTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] }); }
222
+ }
223
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: CustomMultiComboBoxComponent, decorators: [{
224
+ type: Component,
225
225
  args: [{ selector: "hci-multi-combobox", template: `
226
226
  <div class="combobox-multi-container d-flex font-sm">
227
227
  <mat-form-field [appearance]="appearance" [matTooltip]="this.tooltip" [floatLabel]="floatLabel">
@@ -251,40 +251,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
251
251
  </div>
252
252
  </mat-form-field>
253
253
  </div>
254
- `, providers: [{
255
- provide: NG_VALUE_ACCESSOR,
256
- useExisting: CustomMultiComboBoxComponent,
257
- multi: true,
258
- }] }]
259
- }], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { inputElement: [{
260
- type: ViewChild,
261
- args: ["input", { static: false }]
262
- }], selectElement: [{
263
- type: ViewChild,
264
- args: ["select", { static: false }]
265
- }], label: [{
266
- type: Input
267
- }], placeholder: [{
268
- type: Input
269
- }], temporaryPlaceholder: [{
270
- type: Input
271
- }], tooltip: [{
272
- type: Input
273
- }], options: [{
274
- type: Input
275
- }], valueField: [{
276
- type: Input
277
- }], forceEmitObject: [{
278
- type: Input
279
- }], displayField: [{
280
- type: Input
281
- }], appearance: [{
282
- type: Input
283
- }], initialFocus: [{
284
- type: Input
285
- }], floatLabel: [{
286
- type: Input
287
- }], selectionChanged: [{
288
- type: Output
289
- }] } });
290
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLW11bHRpLWNvbWJvYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2lucHV0L3NyYy9zZWxlY3QvY3VzdG9tLW11bHRpLWNvbWJvYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUFFLFVBQVUsRUFDckIsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBR0wsTUFBTSxFQUNTLFNBQVMsR0FDekIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QyxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2SCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLGVBQWUsSUFBSSxTQUFTLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7O0FBMkM3RSxNQUFNLE9BQU8sNEJBQTRCO0lBaUN2QyxZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBNUJ0QixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6Qix5QkFBb0IsR0FBWSxLQUFLLENBQUM7UUFDdEMsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUVyQixZQUFPLEdBQVUsRUFBRSxDQUFDO1FBQzdCLHlCQUFvQixHQUFZLElBQUksQ0FBQztRQUNyQyxrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUN6QixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUdyQixvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUVsQyxlQUFVLEdBQVcsRUFBRSxDQUFDO1FBSWpDLGlCQUFZLEdBQW9CLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0QsaUJBQVksR0FBdUIsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3RCw4QkFBeUIsR0FBWSxLQUFLLENBQUM7UUFF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QkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBU0ksZ0JBQWdCO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENvbXBvbmVudCwgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5qZWN0b3IsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE9uRGVzdHJveSxcclxuICBPdXRwdXQsIFNpbXBsZUNoYW5nZSxcclxuICBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBVbnR5cGVkRm9ybUNvbnRyb2wsIE5HX1ZBTFVFX0FDQ0VTU09SLCBOZ0NvbnRyb2x9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtkZWJvdW5jZVRpbWV9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQge01hdExlZ2FjeVNlbGVjdCBhcyBNYXRTZWxlY3R9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktc2VsZWN0XCI7XHJcbmltcG9ydCB7TGVnYWN5RmxvYXRMYWJlbFR5cGUgYXMgRmxvYXRMYWJlbFR5cGV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktZm9ybS1maWVsZFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwiaGNpLW11bHRpLWNvbWJvYm94XCIsXHJcbiAgdGVtcGxhdGU6IGBcclxuICAgIDxkaXYgY2xhc3M9XCJjb21ib2JveC1tdWx0aS1jb250YWluZXIgZC1mbGV4IGZvbnQtc21cIj5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkIFthcHBlYXJhbmNlXT1cImFwcGVhcmFuY2VcIiBbbWF0VG9vbHRpcF09XCJ0aGlzLnRvb2x0aXBcIiBbZmxvYXRMYWJlbF09XCJmbG9hdExhYmVsXCI+XHJcbiAgICAgICAgPG1hdC1sYWJlbCAqbmdJZj1cImxhYmVsICE9PSB1bmRlZmluZWRcIj57eyBsYWJlbCB9fTwvbWF0LWxhYmVsPlxyXG4gICAgICAgIDxtYXQtbGFiZWwgKm5nSWY9XCJsYWJlbCA9PT0gdW5kZWZpbmVkXCI+XHJcbiAgICAgICAgICB7eyB0ZW1wb3JhcnlQbGFjZWhvbGRlciA/IChvdXRlckNvbnRyb2wudmFsdWUgJiYgb3V0ZXJDb250cm9sLnZhbHVlLmxlbmd0aCA/ICcnIDogcGxhY2Vob2xkZXIpIDogcGxhY2Vob2xkZXIgfX1cclxuICAgICAgICA8L21hdC1sYWJlbD5cclxuICAgICAgICA8aW5wdXQgI2lucHV0IG1hdElucHV0IG5hbWU9XCJjdXN0b21NdWx0aUNvbWJvQm94RmlsdGVyXCIgY2xhc3M9XCJlbGxpcHNpc1wiXHJcbiAgICAgICAgICAgICAgIChmb2N1cyk9XCJ0aGlzLm9uSW5wdXRGb2N1cygpXCJcclxuICAgICAgICAgICAgICAgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInRlbXBvcmFyeVBsYWNlaG9sZGVyID8gKG91dGVyQ29udHJvbC52YWx1ZSAmJiBvdXRlckNvbnRyb2wudmFsdWUubGVuZ3RoID8gJycgOiBwbGFjZWhvbGRlcikgOiBwbGFjZWhvbGRlclwiXHJcbiAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJ0aGlzLmlubmVyQ29udHJvbFwiXHJcbiAgICAgICAgICAgICAgIFthdHRyLmNka0ZvY3VzSW5pdGlhbF09XCJpbml0aWFsRm9jdXMgPT09IHVuZGVmaW5lZCA/IG51bGwgOiBpbml0aWFsRm9jdXNcIj5cclxuICAgICAgICA8ZGl2IG1hdFN1ZmZpeCBjbGFzcz1cImhjaS1jb21ib2JveC1hcnJvdy13cmFwcGVyXCI+XHJcbiAgICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgICAjc2VsZWN0IFttdWx0aXBsZV09XCJ0cnVlXCJcclxuICAgICAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJ0aGlzLnNlbGVjdE9wdGlvbnMoJGV2ZW50LnZhbHVlKVwiXHJcbiAgICAgICAgICAgIChvcGVuZWRDaGFuZ2UpPVwidGhpcy5vbk9wZW5lZENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZExpc3RJdGVtc1wiXHJcbiAgICAgICAgICAgIFtjb21wYXJlV2l0aF09XCJjb21wYXJlQnlJRFwiPlxyXG4gICAgICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgb3B0IG9mIHRoaXMubG9hZGVkT3B0aW9uc1wiIFt2YWx1ZV09XCJvcHRcIj5cclxuICAgICAgICAgICAgICB7e3RoaXMuZGlzcGxheUZpZWxkID8gb3B0W3RoaXMuZGlzcGxheUZpZWxkXSA6IG9wdH19XHJcbiAgICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCJ0aGlzLmluY2x1ZGVMb2FkaW5nT3B0aW9uXCI+TG9hZGluZy4uLjwvbWF0LW9wdGlvbj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nSWY9XCIhdGhpcy5pbmNsdWRlTG9hZGluZ09wdGlvbiAmJiAhdGhpcy5vcHRpb25zLmxlbmd0aFwiPk5vbmU8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIHByb3ZpZGVyczogW3tcclxuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgdXNlRXhpc3Rpbmc6IEN1c3RvbU11bHRpQ29tYm9Cb3hDb21wb25lbnQsXHJcbiAgICBtdWx0aTogdHJ1ZSxcclxuICB9XSxcclxuICBzdHlsZXM6IFtgYF0sXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tTXVsdGlDb21ib0JveENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgQFZpZXdDaGlsZChcImlucHV0XCIsIHsgc3RhdGljOiBmYWxzZX0pIGlucHV0RWxlbWVudDogRWxlbWVudFJlZjtcclxuICBAVmlld0NoaWxkKFwic2VsZWN0XCIsIHsgc3RhdGljOiBmYWxzZX0pIHNlbGVjdEVsZW1lbnQ6IE1hdFNlbGVjdDtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIGxhYmVsOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyOiBzdHJpbmcgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0ZW1wb3JhcnlQbGFjZWhvbGRlcjogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyB0b29sdGlwOiBzdHJpbmcgPSBcIlwiO1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgb3B0aW9uczogYW55W10gPSBbXTtcclxuICBwdWJsaWMgaW5jbHVkZUxvYWRpbmdPcHRpb246IGJvb2xlYW4gPSB0cnVlO1xyXG4gIHB1YmxpYyBsb2FkZWRPcHRpb25zOiBhbnlbXSA9IFtdO1xyXG4gIHByaXZhdGUgaXNTZWxlY3RPcGVuOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIEBJbnB1dCgpIHByaXZhdGUgdmFsdWVGaWVsZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHByaXZhdGUgZm9yY2VFbWl0T2JqZWN0OiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgcHVibGljIGRpc3BsYXlGaWVsZDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBhcHBlYXJhbmNlOiBzdHJpbmcgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbml0aWFsRm9jdXM6IHN0cmluZztcclxuICBASW5wdXQoKSBwdWJsaWMgZmxvYXRMYWJlbDogRmxvYXRMYWJlbFR5cGU7XHJcblxyXG4gIHB1YmxpYyBvdXRlckNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woW10pO1xyXG4gIHB1YmxpYyBpbm5lckNvbnRyb2w6IFVudHlwZWRGb3JtQ29udHJvbCA9IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woXCJcIik7XHJcbiAgcHJpdmF0ZSBpZ25vcmVJbm5lckNvbnRyb2xDaGFuZ2VzOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBpbm5lckNvbnRyb2xTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIG5vTmdDb250cm9sOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHNlbGVjdGVkTGlzdEl0ZW1zOiBhbnlbXSA9IFtdO1xyXG5cclxuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlZDogRXZlbnRFbWl0dGVyPGFueVtdPiA9IG5ldyBFdmVudEVtaXR0ZXI8YW55W10+KCk7XHJcblxyXG4gIHByaXZhdGUgb25DaGFuZ2VGbjogKHZhbDogYW55KSA9PiB2b2lkID0gKCkgPT4ge307XHJcbiAgcHJpdmF0ZSBvblRvdWNoZWRGbjogKCkgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgbGV0IG5nQ29udHJvbDogTmdDb250cm9sID0gdGhpcy5pbmplY3Rvci5nZXQoTmdDb250cm9sLCBudWxsKTtcclxuICAgIGlmIChuZ0NvbnRyb2wgJiYgbmdDb250cm9sLmNvbnRyb2wpIHtcclxuICAgICAgdGhpcy5vdXRlckNvbnRyb2wgPSBuZ0NvbnRyb2wuY29udHJvbDtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkT25seUN1cnJlbnRWYWx1ZSgpO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubm9OZ0NvbnRyb2wgPSB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuaW5uZXJDb250cm9sU3Vic2NyaXB0aW9uID0gdGhpcy5pbm5lckNvbnRyb2wudmFsdWVDaGFuZ2VzLnBpcGUoZGVib3VuY2VUaW1lKDMwMCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIGlmICghdGhpcy5pZ25vcmVJbm5lckNvbnRyb2xDaGFuZ2VzKSB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJPcHRpb25zKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5pZ25vcmVJbm5lckNvbnRyb2xDaGFuZ2VzID0gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXMub3B0aW9ucykge1xyXG4gICAgICBsZXQgb3B0aW9uc0NoYW5nZTogU2ltcGxlQ2hhbmdlID0gY2hhbmdlcy5vcHRpb25zO1xyXG4gICAgICBpZiAoIW9wdGlvbnNDaGFuZ2UuY3VycmVudFZhbHVlKSB7XHJcbiAgICAgICAgdGhpcy5vcHRpb25zID0gW107XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmxvYWRPbmx5Q3VycmVudFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLmxvYWRPbmx5Q3VycmVudFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25DaGFuZ2VGbiA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWRGbiA9IGZuO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLmlubmVyQ29udHJvbC5kaXNhYmxlKCk7XHJcbiAgICAgIHRoaXMuc2VsZWN0RWxlbWVudC5kaXNhYmxlZCA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlubmVyQ29udHJvbC5lbmFibGUoKTtcclxuICAgICAgdGhpcy5zZWxlY3RFbGVtZW50LmRpc2FibGVkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25JbnB1dEZvY3VzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWxlY3RFbGVtZW50Lm9wZW4oKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgbG9hZE9ubHlDdXJyZW50VmFsdWUoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxvYWRlZE9wdGlvbnMgPSBbXTtcclxuICAgIGlmICh0aGlzLm91dGVyQ29udHJvbC52YWx1ZSAmJiB0aGlzLm91dGVyQ29udHJvbC52YWx1ZS5sZW5ndGgpIHtcclxuICAgICAgZm9yIChsZXQgb3B0IG9mIHRoaXMub3B0aW9ucykge1xyXG4gICAgICAgIGlmICh0aGlzLmlzT3B0SW5PdXRlclZhbHVlKG9wdCkpIHtcclxuICAgICAgICAgIHRoaXMubG9hZGVkT3B0aW9ucy5wdXNoKG9wdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLnNlbGVjdGVkTGlzdEl0ZW1zID0gdGhpcy5sb2FkZWRPcHRpb25zO1xyXG5cclxuXHJcbiAgICBsZXQgY3VycmVudFZhbHVlTGFiZWw6IHN0cmluZyA9IFwiXCI7XHJcbiAgICBmb3IgKGxldCBvcHQgb2YgdGhpcy5sb2FkZWRPcHRpb25zKSB7XHJcbiAgICAgIGlmIChjdXJyZW50VmFsdWVMYWJlbCkge1xyXG4gICAgICAgIGN1cnJlbnRWYWx1ZUxhYmVsICs9IFwiLCBcIjtcclxuICAgICAgfVxyXG4gICAgICBjdXJyZW50VmFsdWVMYWJlbCArPSB0aGlzLmRpc3BsYXlGaWVsZCA/IG9wdFt0aGlzLmRpc3BsYXlGaWVsZF0gOiBvcHQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlnbm9yZUlubmVyQ29udHJvbENoYW5nZXMgPSB0cnVlO1xyXG4gICAgdGhpcy5pbm5lckNvbnRyb2wuc2V0VmFsdWUoY3VycmVudFZhbHVlTGFiZWwpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaWx0ZXJPcHRpb25zKHNob3dBbGw6IGJvb2xlYW4gPSBmYWxzZSk6IHZvaWQge1xyXG4gICAgaWYgKHNob3dBbGwgfHwgIXRoaXMuaW5uZXJDb250cm9sLnZhbHVlKSB7XHJcbiAgICAgIHRoaXMubG9hZGVkT3B0aW9ucyA9IHRoaXMub3B0aW9ucztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGxldCBzZWFyY2hWYWx1ZTogc3RyaW5nID0gdGhpcy5pbm5lckNvbnRyb2wudmFsdWUudG9Mb3dlckNhc2UoKTtcclxuICAgICAgdGhpcy5sb2FkZWRPcHRpb25zID0gdGhpcy5vcHRpb25zLmZpbHRlcigob3B0OiBhbnkpID0+IHtcclxuICAgICAgICBsZXQgb3B0RGlzcGxheTogc3RyaW5nID0gKHRoaXMuZGlzcGxheUZpZWxkID8gb3B0W3RoaXMuZGlzcGxheUZpZWxkXSA6IG9wdCkudG9Mb3dlckNhc2UoKTtcclxuICAgICAgICByZXR1cm4gb3B0RGlzcGxheS5pbmNsdWRlcyhzZWFyY2hWYWx1ZSkgfHwgdGhpcy5pc09wdEluT3V0ZXJWYWx1ZShvcHQpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNPcHRJbk91dGVyVmFsdWUob3B0OiBhbnkpOiBib29sZWFuIHtcclxuICAgIGxldCBvcHRWYWx1ZTogYW55ID0gdGhpcy52YWx1ZUZpZWxkID8gb3B0W3RoaXMudmFsdWVGaWVsZF0gOiBvcHQ7XHJcbiAgICBpZiAodGhpcy5mb3JjZUVtaXRPYmplY3QpIHtcclxuICAgICAgZm9yIChsZXQgb3V0ZXJWYWxPcHQgb2YgdGhpcy5vdXRlckNvbnRyb2wudmFsdWUpIHtcclxuICAgICAgICBsZXQgb3V0ZXJPcHRWYWx1ZTogYW55ID0gdGhpcy52YWx1ZUZpZWxkID8gb3V0ZXJWYWxPcHRbdGhpcy52YWx1ZUZpZWxkXSA6IG91dGVyVmFsT3B0O1xyXG4gICAgICAgIGlmIChvcHRWYWx1ZSA9PT0gb3V0ZXJPcHRWYWx1ZSkge1xyXG4gICAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gdGhpcy5vdXRlckNvbnRyb2wudmFsdWUuaW5jbHVkZXMob3B0VmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uT3BlbmVkQ2hhbmdlKG9wZW5lZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5pc1NlbGVjdE9wZW4gPSBvcGVuZWQ7XHJcbiAgICBpZiAob3BlbmVkKSB7XHJcbiAgICAgIHRoaXMub25Ub3VjaGVkRm4oKTtcclxuXHJcbiAgICAgIHRoaXMuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcclxuICAgICAgdGhpcy5pZ25vcmVJbm5lckNvbnRyb2xDaGFuZ2VzID0gdHJ1ZTtcclxuICAgICAgdGhpcy5pbm5lckNvbnRyb2wuc2V0VmFsdWUoXCJcIik7XHJcblxyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmZpbHRlck9wdGlvbnModHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5pbmNsdWRlTG9hZGluZ09wdGlvbiA9IGZhbHNlO1xyXG4gICAgICB9KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZE9ubHlDdXJyZW50VmFsdWUoKTtcclxuICAgICAgICB0aGlzLmluY2x1ZGVMb2FkaW5nT3B0aW9uID0gdHJ1ZTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2VsZWN0T3B0aW9ucyhvcHRpb25zOiBhbnlbXSk6IHZvaWQge1xyXG4gICAgbGV0IG5ld1ZhbDogYW55W10gPSBbXTtcclxuICAgIGZvciAobGV0IG9wdCBvZiBvcHRpb25zKSB7XHJcbiAgICAgIGlmIChvcHQpIHtcclxuICAgICAgICBuZXdWYWwucHVzaCgodGhpcy52YWx1ZUZpZWxkICYmICF0aGlzLmZvcmNlRW1pdE9iamVjdCkgPyBvcHRbdGhpcy52YWx1ZUZpZWxkXSA6IG9wdCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIGlmICh0aGlzLm5vTmdDb250cm9sKSB7XHJcbiAgICAgIHRoaXMub3V0ZXJDb250cm9sLnNldFZhbHVlKG5ld1ZhbCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5vbkNoYW5nZUZuKG5ld1ZhbCk7XHJcbiAgICB0aGlzLnNlbGVjdGlvbkNoYW5nZWQuZW1pdChuZXdWYWwpO1xyXG5cclxuICAgIGlmICh0aGlzLmlzU2VsZWN0T3Blbikge1xyXG4gICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb21wYXJlQnlJRChpdGVtT25lLCBpdGVtVHdvKSB7XHJcbiAgICBpZighaXRlbU9uZSkge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9IGVsc2UgaWYgKCFpdGVtVHdvKSB7XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmKHRoaXMudmFsdWVGaWVsZCkge1xyXG4gICAgICAgIHJldHVybiBpdGVtT25lW3RoaXMudmFsdWVGaWVsZF0gJiYgaXRlbVR3b1t0aGlzLnZhbHVlRmllbGRdICYmIGl0ZW1PbmVbdGhpcy52YWx1ZUZpZWxkXSA9PT0gaXRlbVR3b1t0aGlzLnZhbHVlRmllbGRdO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHJldHVybiAgaXRlbU9uZSA9PT0gaXRlbVR3bztcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICBpZih0aGlzLmlubmVyQ29udHJvbFN1YnNjcmlwdGlvbikge1xyXG4gICAgICB0aGlzLmlubmVyQ29udHJvbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbn1cclxuIl19
254
+ `, providers: [{
255
+ provide: NG_VALUE_ACCESSOR,
256
+ useExisting: CustomMultiComboBoxComponent,
257
+ multi: true,
258
+ }] }]
259
+ }], ctorParameters: () => [{ type: i0.Injector }], propDecorators: { inputElement: [{
260
+ type: ViewChild,
261
+ args: ["input", { static: false }]
262
+ }], selectElement: [{
263
+ type: ViewChild,
264
+ args: ["select", { static: false }]
265
+ }], label: [{
266
+ type: Input
267
+ }], placeholder: [{
268
+ type: Input
269
+ }], temporaryPlaceholder: [{
270
+ type: Input
271
+ }], tooltip: [{
272
+ type: Input
273
+ }], options: [{
274
+ type: Input
275
+ }], valueField: [{
276
+ type: Input
277
+ }], forceEmitObject: [{
278
+ type: Input
279
+ }], displayField: [{
280
+ type: Input
281
+ }], appearance: [{
282
+ type: Input
283
+ }], initialFocus: [{
284
+ type: Input
285
+ }], floatLabel: [{
286
+ type: Input
287
+ }], selectionChanged: [{
288
+ type: Output
289
+ }] } });
290
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLW11bHRpLWNvbWJvYm94LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL2lucHV0L3NyYy9zZWxlY3QvY3VzdG9tLW11bHRpLWNvbWJvYm94LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsU0FBUyxFQUFFLFVBQVUsRUFDckIsWUFBWSxFQUNaLFFBQVEsRUFDUixLQUFLLEVBR0wsTUFBTSxFQUNTLFNBQVMsR0FDekIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QyxrQkFBa0IsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV2SCxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLGVBQWUsSUFBSSxTQUFTLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7Ozs7O0FBMkM3RSxNQUFNLE9BQU8sNEJBQTRCO0lBaUN2QyxZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBNUJ0QixnQkFBVyxHQUFXLEVBQUUsQ0FBQztRQUN6Qix5QkFBb0IsR0FBWSxLQUFLLENBQUM7UUFDdEMsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUVyQixZQUFPLEdBQVUsRUFBRSxDQUFDO1FBQzdCLHlCQUFvQixHQUFZLElBQUksQ0FBQztRQUNyQyxrQkFBYSxHQUFVLEVBQUUsQ0FBQztRQUN6QixpQkFBWSxHQUFZLEtBQUssQ0FBQztRQUdyQixvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUVsQyxlQUFVLEdBQVcsRUFBRSxDQUFDO1FBSWpDLGlCQUFZLEdBQW9CLElBQUksa0JBQWtCLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0QsaUJBQVksR0FBdUIsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3RCw4QkFBeUIsR0FBWSxLQUFLLENBQUM7UUFF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T0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBQztnQkFDRyxhQUFhO3NCQUFuRCxTQUFTO3VCQUFDLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUM7Z0JBRXJCLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxvQkFBb0I7c0JBQW5DLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFFVSxPQUFPO3NCQUF0QixLQUFLO2dCQUtXLFVBQVU7c0JBQTFCLEtBQUs7Z0JBQ1csZUFBZTtzQkFBL0IsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFDVSxVQUFVO3NCQUF6QixLQUFLO2dCQVNJLGdCQUFnQjtzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDb21wb25lbnQsIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEluamVjdG9yLFxyXG4gIElucHV0LFxyXG4gIE9uQ2hhbmdlcyxcclxuICBPbkRlc3Ryb3ksXHJcbiAgT3V0cHV0LCBTaW1wbGVDaGFuZ2UsXHJcbiAgU2ltcGxlQ2hhbmdlcywgVmlld0NoaWxkLFxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgVW50eXBlZEZvcm1Db250cm9sLCBOR19WQUxVRV9BQ0NFU1NPUiwgTmdDb250cm9sfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHtTdWJzY3JpcHRpb259IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7ZGVib3VuY2VUaW1lfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHtNYXRMZWdhY3lTZWxlY3QgYXMgTWF0U2VsZWN0fSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LXNlbGVjdFwiO1xyXG5pbXBvcnQge0xlZ2FjeUZsb2F0TGFiZWxUeXBlIGFzIEZsb2F0TGFiZWxUeXBlfSBmcm9tIFwiQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWZvcm0tZmllbGRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBcImhjaS1tdWx0aS1jb21ib2JveFwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8ZGl2IGNsYXNzPVwiY29tYm9ib3gtbXVsdGktY29udGFpbmVyIGQtZmxleCBmb250LXNtXCI+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBbYXBwZWFyYW5jZV09XCJhcHBlYXJhbmNlXCIgW21hdFRvb2x0aXBdPVwidGhpcy50b29sdGlwXCIgW2Zsb2F0TGFiZWxdPVwiZmxvYXRMYWJlbFwiPlxyXG4gICAgICAgIDxtYXQtbGFiZWwgKm5nSWY9XCJsYWJlbCAhPT0gdW5kZWZpbmVkXCI+e3sgbGFiZWwgfX08L21hdC1sYWJlbD5cclxuICAgICAgICA8bWF0LWxhYmVsICpuZ0lmPVwibGFiZWwgPT09IHVuZGVmaW5lZFwiPlxyXG4gICAgICAgICAge3sgdGVtcG9yYXJ5UGxhY2Vob2xkZXIgPyAob3V0ZXJDb250cm9sLnZhbHVlICYmIG91dGVyQ29udHJvbC52YWx1ZS5sZW5ndGggPyAnJyA6IHBsYWNlaG9sZGVyKSA6IHBsYWNlaG9sZGVyIH19XHJcbiAgICAgICAgPC9tYXQtbGFiZWw+XHJcbiAgICAgICAgPGlucHV0ICNpbnB1dCBtYXRJbnB1dCBuYW1lPVwiY3VzdG9tTXVsdGlDb21ib0JveEZpbHRlclwiIGNsYXNzPVwiZWxsaXBzaXNcIlxyXG4gICAgICAgICAgICAgICAoZm9jdXMpPVwidGhpcy5vbklucHV0Rm9jdXMoKVwiXHJcbiAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJ0ZW1wb3JhcnlQbGFjZWhvbGRlciA/IChvdXRlckNvbnRyb2wudmFsdWUgJiYgb3V0ZXJDb250cm9sLnZhbHVlLmxlbmd0aCA/ICcnIDogcGxhY2Vob2xkZXIpIDogcGxhY2Vob2xkZXJcIlxyXG4gICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwidGhpcy5pbm5lckNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICBbYXR0ci5jZGtGb2N1c0luaXRpYWxdPVwiaW5pdGlhbEZvY3VzID09PSB1bmRlZmluZWQgPyBudWxsIDogaW5pdGlhbEZvY3VzXCI+XHJcbiAgICAgICAgPGRpdiBtYXRTdWZmaXggY2xhc3M9XCJoY2ktY29tYm9ib3gtYXJyb3ctd3JhcHBlclwiPlxyXG4gICAgICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAgICAgI3NlbGVjdCBbbXVsdGlwbGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwidGhpcy5zZWxlY3RPcHRpb25zKCRldmVudC52YWx1ZSlcIlxyXG4gICAgICAgICAgICAob3BlbmVkQ2hhbmdlKT1cInRoaXMub25PcGVuZWRDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRMaXN0SXRlbXNcIlxyXG4gICAgICAgICAgICBbY29tcGFyZVdpdGhdPVwiY29tcGFyZUJ5SURcIj5cclxuICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdCBvZiB0aGlzLmxvYWRlZE9wdGlvbnNcIiBbdmFsdWVdPVwib3B0XCI+XHJcbiAgICAgICAgICAgICAge3t0aGlzLmRpc3BsYXlGaWVsZCA/IG9wdFt0aGlzLmRpc3BsYXlGaWVsZF0gOiBvcHR9fVxyXG4gICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0lmPVwidGhpcy5pbmNsdWRlTG9hZGluZ09wdGlvblwiPkxvYWRpbmcuLi48L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0lmPVwiIXRoaXMuaW5jbHVkZUxvYWRpbmdPcHRpb24gJiYgIXRoaXMub3B0aW9ucy5sZW5ndGhcIj5Ob25lPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgICAgPC9tYXQtc2VsZWN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxyXG4gICAgPC9kaXY+XHJcbiAgYCxcclxuICBwcm92aWRlcnM6IFt7XHJcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgIHVzZUV4aXN0aW5nOiBDdXN0b21NdWx0aUNvbWJvQm94Q29tcG9uZW50LFxyXG4gICAgbXVsdGk6IHRydWUsXHJcbiAgfV0sXHJcbiAgc3R5bGVzOiBbYGBdLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIEN1c3RvbU11bHRpQ29tYm9Cb3hDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gIEBWaWV3Q2hpbGQoXCJpbnB1dFwiLCB7IHN0YXRpYzogZmFsc2V9KSBpbnB1dEVsZW1lbnQ6IEVsZW1lbnRSZWY7XHJcbiAgQFZpZXdDaGlsZChcInNlbGVjdFwiLCB7IHN0YXRpYzogZmFsc2V9KSBzZWxlY3RFbGVtZW50OiBNYXRTZWxlY3Q7XHJcblxyXG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbDogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlcjogc3RyaW5nID0gXCJcIjtcclxuICBASW5wdXQoKSBwdWJsaWMgdGVtcG9yYXJ5UGxhY2Vob2xkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgdG9vbHRpcDogc3RyaW5nID0gXCJcIjtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIG9wdGlvbnM6IGFueVtdID0gW107XHJcbiAgcHVibGljIGluY2x1ZGVMb2FkaW5nT3B0aW9uOiBib29sZWFuID0gdHJ1ZTtcclxuICBwdWJsaWMgbG9hZGVkT3B0aW9uczogYW55W10gPSBbXTtcclxuICBwcml2YXRlIGlzU2VsZWN0T3BlbjogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICBASW5wdXQoKSBwcml2YXRlIHZhbHVlRmllbGQ6IHN0cmluZztcclxuICBASW5wdXQoKSBwcml2YXRlIGZvcmNlRW1pdE9iamVjdDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNwbGF5RmllbGQ6IHN0cmluZztcclxuICBASW5wdXQoKSBwdWJsaWMgYXBwZWFyYW5jZTogc3RyaW5nID0gXCJcIjtcclxuICBASW5wdXQoKSBwdWJsaWMgaW5pdGlhbEZvY3VzOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgcHVibGljIGZsb2F0TGFiZWw6IEZsb2F0TGFiZWxUeXBlO1xyXG5cclxuICBwdWJsaWMgb3V0ZXJDb250cm9sOiBBYnN0cmFjdENvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKFtdKTtcclxuICBwdWJsaWMgaW5uZXJDb250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKFwiXCIpO1xyXG4gIHByaXZhdGUgaWdub3JlSW5uZXJDb250cm9sQ2hhbmdlczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgaW5uZXJDb250cm9sU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XHJcbiAgcHJpdmF0ZSBub05nQ29udHJvbDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBzZWxlY3RlZExpc3RJdGVtczogYW55W10gPSBbXTtcclxuXHJcbiAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnlbXT4gPSBuZXcgRXZlbnRFbWl0dGVyPGFueVtdPigpO1xyXG5cclxuICBwcml2YXRlIG9uQ2hhbmdlRm46ICh2YWw6IGFueSkgPT4gdm9pZCA9ICgpID0+IHt9O1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkRm46ICgpID0+IHZvaWQgPSAoKSA9PiB7fTtcclxuXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIGxldCBuZ0NvbnRyb2w6IE5nQ29udHJvbCA9IHRoaXMuaW5qZWN0b3IuZ2V0KE5nQ29udHJvbCwgbnVsbCk7XHJcbiAgICBpZiAobmdDb250cm9sICYmIG5nQ29udHJvbC5jb250cm9sKSB7XHJcbiAgICAgIHRoaXMub3V0ZXJDb250cm9sID0gbmdDb250cm9sLmNvbnRyb2w7XHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9hZE9ubHlDdXJyZW50VmFsdWUoKTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm5vTmdDb250cm9sID0gdHJ1ZTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlubmVyQ29udHJvbFN1YnNjcmlwdGlvbiA9IHRoaXMuaW5uZXJDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKGRlYm91bmNlVGltZSgzMDApKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICBpZiAoIXRoaXMuaWdub3JlSW5uZXJDb250cm9sQ2hhbmdlcykge1xyXG4gICAgICAgIHRoaXMuZmlsdGVyT3B0aW9ucygpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaWdub3JlSW5uZXJDb250cm9sQ2hhbmdlcyA9IGZhbHNlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzLm9wdGlvbnMpIHtcclxuICAgICAgbGV0IG9wdGlvbnNDaGFuZ2U6IFNpbXBsZUNoYW5nZSA9IGNoYW5nZXMub3B0aW9ucztcclxuICAgICAgaWYgKCFvcHRpb25zQ2hhbmdlLmN1cnJlbnRWYWx1ZSkge1xyXG4gICAgICAgIHRoaXMub3B0aW9ucyA9IFtdO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5sb2FkT25seUN1cnJlbnRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgd3JpdGVWYWx1ZShvYmo6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkT25seUN1cnJlbnRWYWx1ZSgpO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlRm4gPSBmbjtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkRm4gPSBmbjtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgaWYgKGlzRGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5pbm5lckNvbnRyb2wuZGlzYWJsZSgpO1xyXG4gICAgICB0aGlzLnNlbGVjdEVsZW1lbnQuZGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5pbm5lckNvbnRyb2wuZW5hYmxlKCk7XHJcbiAgICAgIHRoaXMuc2VsZWN0RWxlbWVudC5kaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIG9uSW5wdXRGb2N1cygpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0RWxlbWVudC5vcGVuKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRPbmx5Q3VycmVudFZhbHVlKCk6IHZvaWQge1xyXG4gICAgdGhpcy5sb2FkZWRPcHRpb25zID0gW107XHJcbiAgICBpZiAodGhpcy5vdXRlckNvbnRyb2wudmFsdWUgJiYgdGhpcy5vdXRlckNvbnRyb2wudmFsdWUubGVuZ3RoKSB7XHJcbiAgICAgIGZvciAobGV0IG9wdCBvZiB0aGlzLm9wdGlvbnMpIHtcclxuICAgICAgICBpZiAodGhpcy5pc09wdEluT3V0ZXJWYWx1ZShvcHQpKSB7XHJcbiAgICAgICAgICB0aGlzLmxvYWRlZE9wdGlvbnMucHVzaChvcHQpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5zZWxlY3RlZExpc3RJdGVtcyA9IHRoaXMubG9hZGVkT3B0aW9ucztcclxuXHJcblxyXG4gICAgbGV0IGN1cnJlbnRWYWx1ZUxhYmVsOiBzdHJpbmcgPSBcIlwiO1xyXG4gICAgZm9yIChsZXQgb3B0IG9mIHRoaXMubG9hZGVkT3B0aW9ucykge1xyXG4gICAgICBpZiAoY3VycmVudFZhbHVlTGFiZWwpIHtcclxuICAgICAgICBjdXJyZW50VmFsdWVMYWJlbCArPSBcIiwgXCI7XHJcbiAgICAgIH1cclxuICAgICAgY3VycmVudFZhbHVlTGFiZWwgKz0gdGhpcy5kaXNwbGF5RmllbGQgPyBvcHRbdGhpcy5kaXNwbGF5RmllbGRdIDogb3B0O1xyXG4gICAgfVxyXG4gICAgdGhpcy5pZ25vcmVJbm5lckNvbnRyb2xDaGFuZ2VzID0gdHJ1ZTtcclxuICAgIHRoaXMuaW5uZXJDb250cm9sLnNldFZhbHVlKGN1cnJlbnRWYWx1ZUxhYmVsKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmlsdGVyT3B0aW9ucyhzaG93QWxsOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcclxuICAgIGlmIChzaG93QWxsIHx8ICF0aGlzLmlubmVyQ29udHJvbC52YWx1ZSkge1xyXG4gICAgICB0aGlzLmxvYWRlZE9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBsZXQgc2VhcmNoVmFsdWU6IHN0cmluZyA9IHRoaXMuaW5uZXJDb250cm9sLnZhbHVlLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgIHRoaXMubG9hZGVkT3B0aW9ucyA9IHRoaXMub3B0aW9ucy5maWx0ZXIoKG9wdDogYW55KSA9PiB7XHJcbiAgICAgICAgbGV0IG9wdERpc3BsYXk6IHN0cmluZyA9ICh0aGlzLmRpc3BsYXlGaWVsZCA/IG9wdFt0aGlzLmRpc3BsYXlGaWVsZF0gOiBvcHQpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgcmV0dXJuIG9wdERpc3BsYXkuaW5jbHVkZXMoc2VhcmNoVmFsdWUpIHx8IHRoaXMuaXNPcHRJbk91dGVyVmFsdWUob3B0KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzT3B0SW5PdXRlclZhbHVlKG9wdDogYW55KTogYm9vbGVhbiB7XHJcbiAgICBsZXQgb3B0VmFsdWU6IGFueSA9IHRoaXMudmFsdWVGaWVsZCA/IG9wdFt0aGlzLnZhbHVlRmllbGRdIDogb3B0O1xyXG4gICAgaWYgKHRoaXMuZm9yY2VFbWl0T2JqZWN0KSB7XHJcbiAgICAgIGZvciAobGV0IG91dGVyVmFsT3B0IG9mIHRoaXMub3V0ZXJDb250cm9sLnZhbHVlKSB7XHJcbiAgICAgICAgbGV0IG91dGVyT3B0VmFsdWU6IGFueSA9IHRoaXMudmFsdWVGaWVsZCA/IG91dGVyVmFsT3B0W3RoaXMudmFsdWVGaWVsZF0gOiBvdXRlclZhbE9wdDtcclxuICAgICAgICBpZiAob3B0VmFsdWUgPT09IG91dGVyT3B0VmFsdWUpIHtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMub3V0ZXJDb250cm9sLnZhbHVlLmluY2x1ZGVzKG9wdFZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHB1YmxpYyBvbk9wZW5lZENoYW5nZShvcGVuZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIHRoaXMuaXNTZWxlY3RPcGVuID0gb3BlbmVkO1xyXG4gICAgaWYgKG9wZW5lZCkge1xyXG4gICAgICB0aGlzLm9uVG91Y2hlZEZuKCk7XHJcblxyXG4gICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XHJcbiAgICAgIHRoaXMuaWdub3JlSW5uZXJDb250cm9sQ2hhbmdlcyA9IHRydWU7XHJcbiAgICAgIHRoaXMuaW5uZXJDb250cm9sLnNldFZhbHVlKFwiXCIpO1xyXG5cclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJPcHRpb25zKHRydWUpO1xyXG4gICAgICAgIHRoaXMuaW5jbHVkZUxvYWRpbmdPcHRpb24gPSBmYWxzZTtcclxuICAgICAgfSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICB0aGlzLmxvYWRPbmx5Q3VycmVudFZhbHVlKCk7XHJcbiAgICAgICAgdGhpcy5pbmNsdWRlTG9hZGluZ09wdGlvbiA9IHRydWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHNlbGVjdE9wdGlvbnMob3B0aW9uczogYW55W10pOiB2b2lkIHtcclxuICAgIGxldCBuZXdWYWw6IGFueVtdID0gW107XHJcbiAgICBmb3IgKGxldCBvcHQgb2Ygb3B0aW9ucykge1xyXG4gICAgICBpZiAob3B0KSB7XHJcbiAgICAgICAgbmV3VmFsLnB1c2goKHRoaXMudmFsdWVGaWVsZCAmJiAhdGhpcy5mb3JjZUVtaXRPYmplY3QpID8gb3B0W3RoaXMudmFsdWVGaWVsZF0gOiBvcHQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5ub05nQ29udHJvbCkge1xyXG4gICAgICB0aGlzLm91dGVyQ29udHJvbC5zZXRWYWx1ZShuZXdWYWwpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMub25DaGFuZ2VGbihuZXdWYWwpO1xyXG4gICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2VkLmVtaXQobmV3VmFsKTtcclxuXHJcbiAgICBpZiAodGhpcy5pc1NlbGVjdE9wZW4pIHtcclxuICAgICAgdGhpcy5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29tcGFyZUJ5SUQoaXRlbU9uZSwgaXRlbVR3bykge1xyXG4gICAgaWYoIWl0ZW1PbmUpIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfSBlbHNlIGlmICghaXRlbVR3bykge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZih0aGlzLnZhbHVlRmllbGQpIHtcclxuICAgICAgICByZXR1cm4gaXRlbU9uZVt0aGlzLnZhbHVlRmllbGRdICYmIGl0ZW1Ud29bdGhpcy52YWx1ZUZpZWxkXSAmJiBpdGVtT25lW3RoaXMudmFsdWVGaWVsZF0gPT09IGl0ZW1Ud29bdGhpcy52YWx1ZUZpZWxkXTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICByZXR1cm4gIGl0ZW1PbmUgPT09IGl0ZW1Ud287XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgaWYodGhpcy5pbm5lckNvbnRyb2xTdWJzY3JpcHRpb24pIHtcclxuICAgICAgdGhpcy5pbm5lckNvbnRyb2xTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG59XHJcbiJdfQ==