@odx/angular 6.3.1 → 6.4.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.
- package/CHANGELOG.md +9 -0
- package/cdk/autocomplete-control/lib/autocomplete-control.d.ts +53 -1
- package/components/autocomplete/lib/autocomplete.component.d.ts +0 -2
- package/esm2022/cdk/autocomplete-control/lib/autocomplete-control.mjs +73 -2
- package/esm2022/components/autocomplete/lib/autocomplete.component.mjs +3 -7
- package/esm2022/components/select/lib/select.component.mjs +6 -5
- package/fesm2022/odx-angular-cdk-autocomplete-control.mjs +72 -1
- package/fesm2022/odx-angular-cdk-autocomplete-control.mjs.map +1 -1
- package/fesm2022/odx-angular-components-autocomplete.mjs +2 -6
- package/fesm2022/odx-angular-components-autocomplete.mjs.map +1 -1
- package/fesm2022/odx-angular-components-select.mjs +5 -4
- package/fesm2022/odx-angular-components-select.mjs.map +1 -1
- package/package.json +5 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,14 @@
|
|
|
1
1
|
# @odx/angular
|
|
2
2
|
|
|
3
|
+
## 6.4.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- b4890e7: Add `beforeDropdownOpen`, `afterDropdownOpen`, `beforeDropdownClose` and `afterDropdownClose` outputs to `odx-select` and `odx-autocomplete` components
|
|
8
|
+
|
|
9
|
+
Updated `date-fns` dependency to `^3.6.0`
|
|
10
|
+
Updated `deepmerge-ts` dependency to `^7.0.0`
|
|
11
|
+
|
|
3
12
|
## 6.3.1
|
|
4
13
|
|
|
5
14
|
### Patch Changes
|
|
@@ -64,6 +64,54 @@ export declare abstract class AutocompleteControl<T> extends CustomFormControl<T
|
|
|
64
64
|
* ```
|
|
65
65
|
*/
|
|
66
66
|
optionSelected: EventEmitter<T>;
|
|
67
|
+
/**
|
|
68
|
+
* Event emitted before the dropdown opens.
|
|
69
|
+
*
|
|
70
|
+
* @emits {void}
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```html
|
|
74
|
+
* <odx-select (beforeDropdownOpen)="onBeforeDropdownOpen()">
|
|
75
|
+
* </odx-select>
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
beforeDropdownOpen: EventEmitter<void>;
|
|
79
|
+
/**
|
|
80
|
+
* Event emitted after the dropdown opened.
|
|
81
|
+
*
|
|
82
|
+
* @emits {void}
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```html
|
|
86
|
+
* <odx-select (afterDropdownOpen)="onAfterDropdownOpen()">
|
|
87
|
+
* </odx-select>
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
afterDropdownOpen: EventEmitter<void>;
|
|
91
|
+
/**
|
|
92
|
+
* Event emitted before the dropdown closes.
|
|
93
|
+
*
|
|
94
|
+
* @emits {void}
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* ```html
|
|
98
|
+
* <odx-select (beforeDropdownClose)="onBeforeDropdownClose()">
|
|
99
|
+
* </odx-select>
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
beforeDropdownClose: EventEmitter<void>;
|
|
103
|
+
/**
|
|
104
|
+
* Event emitted after the dropdown closed.
|
|
105
|
+
*
|
|
106
|
+
* @emits {void}
|
|
107
|
+
*
|
|
108
|
+
* @example
|
|
109
|
+
* ```html
|
|
110
|
+
* <odx-select (afterDropdownClose)="onAfterDropdownClose()">
|
|
111
|
+
* </odx-select>
|
|
112
|
+
* ```
|
|
113
|
+
*/
|
|
114
|
+
afterDropdownClose: EventEmitter<void>;
|
|
67
115
|
constructor();
|
|
68
116
|
ngAfterViewInit(): void;
|
|
69
117
|
/**
|
|
@@ -86,8 +134,12 @@ export declare abstract class AutocompleteControl<T> extends CustomFormControl<T
|
|
|
86
134
|
protected enableSmoothScroll(): void;
|
|
87
135
|
protected openDropdown(): void;
|
|
88
136
|
protected closeDropdown(): void;
|
|
137
|
+
protected onDropdownOpen(): void;
|
|
138
|
+
protected onDropdownOpened(): void;
|
|
139
|
+
protected onDropdownClose(): void;
|
|
140
|
+
protected onDropdownClosed(): void;
|
|
89
141
|
protected handleFocusOut(event: FocusEvent): void;
|
|
90
142
|
static ɵfac: i0.ɵɵFactoryDeclaration<AutocompleteControl<any>, never>;
|
|
91
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<AutocompleteControl<any>, never, never, { "isLoading": { "alias": "isLoading"; "required": false; }; "stringify": { "alias": "stringify"; "required": false; }; }, { "optionSelected": "optionSelected"; }, never, never, true, never>;
|
|
143
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<AutocompleteControl<any>, never, never, { "isLoading": { "alias": "isLoading"; "required": false; }; "stringify": { "alias": "stringify"; "required": false; }; }, { "optionSelected": "optionSelected"; "beforeDropdownOpen": "beforeDropdownOpen"; "afterDropdownOpen": "afterDropdownOpen"; "beforeDropdownClose": "beforeDropdownClose"; "afterDropdownClose": "afterDropdownClose"; }, never, never, true, never>;
|
|
92
144
|
static ngAcceptInputType_isLoading: unknown;
|
|
93
145
|
}
|
|
@@ -30,7 +30,6 @@ export declare class AutocompleteComponent<T = unknown> extends AutocompleteCont
|
|
|
30
30
|
* @type {AutocompleteInputControlDirective | undefined}
|
|
31
31
|
*/
|
|
32
32
|
searchField?: AutocompleteInputControlDirective;
|
|
33
|
-
readonly dropdownOpenTriggers: never[];
|
|
34
33
|
ngAfterViewInit(): void;
|
|
35
34
|
/**
|
|
36
35
|
* Selects an option, updates the value, updates the search field display,
|
|
@@ -53,7 +52,6 @@ export declare class AutocompleteComponent<T = unknown> extends AutocompleteCont
|
|
|
53
52
|
protected handleClickEvent(): void;
|
|
54
53
|
protected handleKeyboardEvent(event: KeyboardEvent): void;
|
|
55
54
|
protected activateSelectedOption(): void;
|
|
56
|
-
protected onDropdownBeforeOpen(): void;
|
|
57
55
|
private updateSearchField;
|
|
58
56
|
private blurSelectSearchField;
|
|
59
57
|
static ɵfac: i0.ɵɵFactoryDeclaration<AutocompleteComponent<any>, never>;
|
|
@@ -52,6 +52,54 @@ export class AutocompleteControl extends CustomFormControl {
|
|
|
52
52
|
* ```
|
|
53
53
|
*/
|
|
54
54
|
this.optionSelected = new EventEmitter();
|
|
55
|
+
/**
|
|
56
|
+
* Event emitted before the dropdown opens.
|
|
57
|
+
*
|
|
58
|
+
* @emits {void}
|
|
59
|
+
*
|
|
60
|
+
* @example
|
|
61
|
+
* ```html
|
|
62
|
+
* <odx-select (beforeDropdownOpen)="onBeforeDropdownOpen()">
|
|
63
|
+
* </odx-select>
|
|
64
|
+
* ```
|
|
65
|
+
*/
|
|
66
|
+
this.beforeDropdownOpen = new EventEmitter();
|
|
67
|
+
/**
|
|
68
|
+
* Event emitted after the dropdown opened.
|
|
69
|
+
*
|
|
70
|
+
* @emits {void}
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```html
|
|
74
|
+
* <odx-select (afterDropdownOpen)="onAfterDropdownOpen()">
|
|
75
|
+
* </odx-select>
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
this.afterDropdownOpen = new EventEmitter();
|
|
79
|
+
/**
|
|
80
|
+
* Event emitted before the dropdown closes.
|
|
81
|
+
*
|
|
82
|
+
* @emits {void}
|
|
83
|
+
*
|
|
84
|
+
* @example
|
|
85
|
+
* ```html
|
|
86
|
+
* <odx-select (beforeDropdownClose)="onBeforeDropdownClose()">
|
|
87
|
+
* </odx-select>
|
|
88
|
+
* ```
|
|
89
|
+
*/
|
|
90
|
+
this.beforeDropdownClose = new EventEmitter();
|
|
91
|
+
/**
|
|
92
|
+
* Event emitted after the dropdown closed.
|
|
93
|
+
*
|
|
94
|
+
* @emits {void}
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* ```html
|
|
98
|
+
* <odx-select (afterDropdownClose)="onAfterDropdownClose()">
|
|
99
|
+
* </odx-select>
|
|
100
|
+
* ```
|
|
101
|
+
*/
|
|
102
|
+
this.afterDropdownClose = new EventEmitter();
|
|
55
103
|
detectControllerChanges(this).subscribe();
|
|
56
104
|
}
|
|
57
105
|
ngAfterViewInit() {
|
|
@@ -93,6 +141,21 @@ export class AutocompleteControl extends CustomFormControl {
|
|
|
93
141
|
closeDropdown() {
|
|
94
142
|
this.dropdown?.close();
|
|
95
143
|
}
|
|
144
|
+
onDropdownOpen() {
|
|
145
|
+
this.beforeDropdownOpen.emit();
|
|
146
|
+
this.activateSelectedOption();
|
|
147
|
+
}
|
|
148
|
+
onDropdownOpened() {
|
|
149
|
+
this.afterDropdownOpen.emit();
|
|
150
|
+
this.enableSmoothScroll();
|
|
151
|
+
}
|
|
152
|
+
onDropdownClose() {
|
|
153
|
+
this.beforeDropdownClose.emit();
|
|
154
|
+
this.disableSmoothScroll();
|
|
155
|
+
}
|
|
156
|
+
onDropdownClosed() {
|
|
157
|
+
this.afterDropdownClose.emit();
|
|
158
|
+
}
|
|
96
159
|
handleFocusOut(event) {
|
|
97
160
|
if (this.isOpen) {
|
|
98
161
|
event.stopImmediatePropagation();
|
|
@@ -100,7 +163,7 @@ export class AutocompleteControl extends CustomFormControl {
|
|
|
100
163
|
this.onTouched();
|
|
101
164
|
}
|
|
102
165
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AutocompleteControl, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
103
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "16.2.12", type: AutocompleteControl, isStandalone: true, inputs: { isLoading: ["isLoading", "isLoading", booleanAttribute], stringify: "stringify" }, outputs: { optionSelected: "optionSelected" }, host: { listeners: { "focusout": "handleFocusOut($event)" }, properties: { "class.is-open": "isOpen", "attr.aria-disabled": "isDisabled || null" } }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: DropdownDirective, descendants: true }], usesInheritance: true, ngImport: i0 }); }
|
|
166
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "16.2.12", type: AutocompleteControl, isStandalone: true, inputs: { isLoading: ["isLoading", "isLoading", booleanAttribute], stringify: "stringify" }, outputs: { optionSelected: "optionSelected", beforeDropdownOpen: "beforeDropdownOpen", afterDropdownOpen: "afterDropdownOpen", beforeDropdownClose: "beforeDropdownClose", afterDropdownClose: "afterDropdownClose" }, host: { listeners: { "focusout": "handleFocusOut($event)" }, properties: { "class.is-open": "isOpen", "attr.aria-disabled": "isDisabled || null" } }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: DropdownDirective, descendants: true }], usesInheritance: true, ngImport: i0 }); }
|
|
104
167
|
}
|
|
105
168
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AutocompleteControl, decorators: [{
|
|
106
169
|
type: Directive,
|
|
@@ -121,8 +184,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
121
184
|
type: Input
|
|
122
185
|
}], optionSelected: [{
|
|
123
186
|
type: Output
|
|
187
|
+
}], beforeDropdownOpen: [{
|
|
188
|
+
type: Output
|
|
189
|
+
}], afterDropdownOpen: [{
|
|
190
|
+
type: Output
|
|
191
|
+
}], beforeDropdownClose: [{
|
|
192
|
+
type: Output
|
|
193
|
+
}], afterDropdownClose: [{
|
|
194
|
+
type: Output
|
|
124
195
|
}], handleFocusOut: [{
|
|
125
196
|
type: HostListener,
|
|
126
197
|
args: ['focusout', ['$event']]
|
|
127
198
|
}] } });
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWNvbnRyb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2F1dG9jb21wbGV0ZS1jb250cm9sL3NyYy9saWIvYXV0b2NvbXBsZXRlLWNvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0QsT0FBTyxFQUVMLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBZSxNQUFNLGNBQWMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQXlCLE1BQU0sc0NBQXNDLENBQUM7QUFFaEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRS9FOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBUUgsTUFBTSxPQUFnQixtQkFBdUIsU0FBUSxpQkFBMkI7SUFpQjlFLElBQVcsd0JBQXdCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsYUFBYSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDO0lBQ3RGLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNmLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFR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IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGV0ZWN0Q29udHJvbGxlckNoYW5nZXMsIFN0cmluZ2lmeUZuIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IEN1c3RvbUZvcm1Db250cm9sLCBJbnB1dENvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2N1c3RvbS1mb3JtLWNvbnRyb2wnO1xuaW1wb3J0IHsgT3B0aW9uQ29udHJvbCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvb3B0aW9uLWNvbnRyb2wnO1xuaW1wb3J0IHsgRHJvcGRvd25EaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBGb3JtRmllbGRDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9mb3JtLWZpZWxkJztcbmltcG9ydCB7IGluamVjdEVsZW1lbnQsIGlzRnVuY3Rpb24sIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcblxuLyoqXG4gKiBgQXV0b2NvbXBsZXRlQ29udHJvbGAgaXMgYSBiYXNlIGRpcmVjdGl2ZSB0byBlbmhhbmNlIGFuIGlucHV0IGZpZWxkIHdpdGggYXV0b2NvbXBsZXRlIGZ1bmN0aW9uYWxpdHksXG4gKiBwcm92aWRpbmcga2V5Ym9hcmQgbmF2aWdhdGlvbiBhbmQgc2VsZWN0aW9uIGZvciBvcHRpb25zIGRpc3BsYXllZCBpbiBhIGRyb3Bkb3duLiBJdCdzIGRlc2lnbmVkIHRvIGJlIGV4dGVuZGVkXG4gKiBmb3Igc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zLlxuICogRXh0ZW5kcyBgQ3VzdG9tRm9ybUNvbnRyb2xgIHRvIHByb3ZpZGUgZm9ybSBjb250cm9sIGJlaGF2aW9yIGFuZCBzdGF0ZSBtYW5hZ2VtZW50LlxuICpcbiAqIEBzZWUge0N1c3RvbUZvcm1Db250cm9sfVxuICpcbiAqIFRoaXMgZGlyZWN0aXZlIG1hbmFnZXMgdGhlIG9wZW4vY2xvc2Ugc3RhdGUgb2YgdGhlIGRyb3Bkb3duLCB0aGUgbG9hZGluZyBzdGF0ZSBpbmRpY2F0aW9uLCBhbmQgdGhlIGludGVyYWN0aW9uIGJldHdlZW5cbiAqIHRoZSBhdXRvY29tcGxldGUgaW5wdXQgYW5kIHRoZSBkcm9wZG93biBvcHRpb25zLiBJdCB1dGlsaXplcyBgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXJgIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIGFtb25nIG9wdGlvbnMuXG4gKlxuICogRXh0ZW5kIHRoaXMgZGlyZWN0aXZlIHRvIGNyZWF0ZSBhIGZ1bGx5IGZ1bmN0aW9uYWwgYXV0b2NvbXBsZXRlIGNvbnRyb2wgdGFpbG9yZWQgdG8geW91ciBkYXRhIHR5cGUgYW5kIFVJIHJlcXVpcmVtZW50cy5cbiAqXG4gKiBAdGVtcGxhdGUgVCAtIFRoZSB0eXBlIG9mIHRoZSBpdGVtcyBkaXNwbGF5ZWQgaW4gdGhlIGF1dG9jb21wbGV0ZSBkcm9wZG93bi5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmlzLW9wZW5dJzogJ2lzT3BlbicsXG4gICAgJ1thdHRyLmFyaWEtZGlzYWJsZWRdJzogJ2lzRGlzYWJsZWQgfHwgbnVsbCcsXG4gIH0sXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEF1dG9jb21wbGV0ZUNvbnRyb2w8VD4gZXh0ZW5kcyBDdXN0b21Gb3JtQ29udHJvbDxUIHwgbnVsbD4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHJlYWRvbmx5IG9wdGlvbnM/OiBRdWVyeUxpc3Q8T3B0aW9uQ29udHJvbDxUPj47XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvcm1GaWVsZCA9IGluamVjdChGb3JtRmllbGRDb21wb25lbnQsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSB0YWtlVW50aWxEZXN0cm95ZWQgPSB1bnRpbERlc3Ryb3llZCgpO1xuXG4gIHByb3RlY3RlZCBrZXlNYW5hZ2VyPzogQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI8T3B0aW9uQ29udHJvbDxUPj47XG4gIHByb3RlY3RlZCBzbW9vdGhTY3JvbGxFbmFibGVkID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZChEcm9wZG93bkRpcmVjdGl2ZSlcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRyb3Bkb3duPzogRHJvcGRvd25EaXJlY3RpdmU7XG5cbiAgcHVibGljIGFic3RyYWN0IHNlYXJjaEZpZWxkPzogSW5wdXRDb250cm9sRGlyZWN0aXZlO1xuXG4gIHB1YmxpYyByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0RWxlbWVudCgpO1xuXG4gIHB1YmxpYyBnZXQgZHJvcGRvd25SZWZlcmVuY2VFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtRmllbGQ/LmNvbnRyb2xFbGVtZW50Py5uYXRpdmVFbGVtZW50ID8/IHRoaXMuZWxlbWVudD8ubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzT3B0aW9ucygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLm9wdGlvbnM/Lmxlbmd0aDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZHJvcGRvd24/LmlzT3BlbjtcbiAgfVxuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgaXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdGhhdCBjb252ZXJ0cyBhbiBpdGVtIG9mIHR5cGUgVCB0byBhIHN0cmluZyByZXByZXNlbnRhdGlvbi5cbiAgICogVXNlZCBieSB0aGUgQXV0b2NvbXBsZXRlQ29udHJvbCBjb21wb25lbnQgdG8gZGlzcGxheSB0aGUgc2VsZWN0ZWQgaXRlbS5cbiAgICpcbiAgICogQHR5cGUge1N0cmluZ2lmeUZuPFQ+fVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiAvLyBEZWZpbmUgYSBzdHJpbmdpZnkgZnVuY3Rpb24gZm9yIGEgY3VzdG9tIHR5cGUgUGVyc29uXG4gICAqIGNvbnN0IHN0cmluZ2lmeVBlcnNvbjogU3RyaW5naWZ5Rm48UGVyc29uPiA9IChwZXJzb24pID0+IGAke3BlcnNvbi5maXJzdE5hbWV9ICR7cGVyc29uLmxhc3ROYW1lfWA7XG4gICAqXG4gICAqIC8vIEFzc2lnbiB0aGUgc3RyaW5naWZ5IGZ1bmN0aW9uIHRvIHRoZSBBdXRvY29tcGxldGVDb250cm9sXG4gICAqIGF1dG9jb21wbGV0ZUNvbnRyb2wuc3RyaW5naWZ5ID0gc3RyaW5naWZ5UGVyc29uO1xuICAgKiBgYGBcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdHJpbmdpZnk/OiBTdHJpbmdpZnlGbjxUPjtcblxuICAvKipcbiAgICogRW1pdHMgdGhlIHNlbGVjdGVkIG9wdGlvbiB3aGVuIGFuIG9wdGlvbiBpcyBzZWxlY3RlZCBmcm9tIHRoZSBkcm9wZG93bi5cbiAgICpcbiAgICogQGVtaXRzIHtUfSAtIFRoZSBzZWxlY3RlZCBvcHRpb24uXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIGF1dG9jb21wbGV0ZUNvbnRyb2wub3B0aW9uU2VsZWN0ZWQuc3Vic2NyaWJlKChzZWxlY3RlZE9wdGlvbikgPT4ge1xuICAgKiAgIGNvbnNvbGUubG9nKCdTZWxlY3RlZCBvcHRpb246Jywgc2VsZWN0ZWRPcHRpb24pO1xuICAgKiB9KTtcbiAgICogYGBgXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIG9wdGlvblNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKG51bGwpO1xuICAgIGRldGVjdENvbnRyb2xsZXJDaGFuZ2VzKHRoaXMpLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMub3B0aW9ucykgcmV0dXJuO1xuXG4gICAgdGhpcy5pbml0S2V5TWFuYWdlcih0aGlzLm9wdGlvbnMpO1xuICAgIHRoaXMuaGFuZGxlUXVlcnlMaXN0T3B0aW9uKHRoaXMub3B0aW9ucyk7XG4gICAgdGhpcy5oYW5kbGVTZWFyY2hGaWVsZENoYW5nZXMoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTY3JvbGxzIHRoZSBzcGVjaWZpZWQgb3B0aW9uIGVsZW1lbnQgaW50byB2aWV3LlxuICAgKiBAcGFyYW0ge09wdGlvbkNvbnRyb2w8VD59IG9wdGlvbiAtIFRoZSBvcHRpb24gY29udHJvbCBjb250YWluaW5nIHRoZSBlbGVtZW50IHRvIHNjcm9sbCBpbnRvIHZpZXcuXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiBjb25zdCBvcHRpb25Db250cm9sOiBPcHRpb25Db250cm9sPHN0cmluZz4gPSB7IGVsZW1lbnQ6IG15T3B0aW9uRWxlbWVudCB9O1xuICAgKiBzY3JvbGxPcHRpb25JbnRvVmlldyhvcHRpb25Db250cm9sKTtcbiAgICogYGBgXG4gICAqL1xuICBwdWJsaWMgc2Nyb2xsT3B0aW9uSW50b1ZpZXcoeyBlbGVtZW50IH06IE9wdGlvbkNvbnRyb2w8VD4pOiB2b2lkIHtcbiAgICBjb25zdCBiZWhhdmlvciA9IHRoaXMuc21vb3RoU2Nyb2xsRW5hYmxlZCA/ICdzbW9vdGgnIDogdW5kZWZpbmVkO1xuICAgIGlmIChpc0Z1bmN0aW9uKGVsZW1lbnQubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldykpIHtcbiAgICAgIGVsZW1lbnQubmF0aXZlRWxlbWVudC5zY3JvbGxJbnRvVmlldyh7IGJsb2NrOiAnY2VudGVyJywgYmVoYXZpb3IgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGhhbmRsZVF1ZXJ5TGlzdE9wdGlvbihvcHRpb25zOiBRdWVyeUxpc3Q8T3B0aW9uQ29udHJvbDxUPj4pOiB2b2lkO1xuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBoYW5kbGVTZWFyY2hGaWVsZENoYW5nZXMoKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgYWN0aXZhdGVTZWxlY3RlZE9wdGlvbigpOiB2b2lkO1xuXG4gIHByb3RlY3RlZCBpbml0S2V5TWFuYWdlcihvcHRpb25zOiBRdWVyeUxpc3Q8T3B0aW9uQ29udHJvbDxUPj4pOiB2b2lkIHtcbiAgICB0aGlzLmtleU1hbmFnZXIgPSBuZXcgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIob3B0aW9ucykud2l0aEhvbWVBbmRFbmQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkaXNhYmxlU21vb3RoU2Nyb2xsKCk6IHZvaWQge1xuICAgIHRoaXMuc21vb3RoU2Nyb2xsRW5hYmxlZCA9IGZhbHNlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGVuYWJsZVNtb290aFNjcm9sbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNtb290aFNjcm9sbEVuYWJsZWQgPSB0cnVlO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9wZW5Ecm9wZG93bigpOiB2b2lkIHtcbiAgICB0aGlzLmRyb3Bkb3duPy5vcGVuKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xvc2VEcm9wZG93bigpOiB2b2lkIHtcbiAgICB0aGlzLmRyb3Bkb3duPy5jbG9zZSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnLCBbJyRldmVudCddKVxuICBwcm90ZWN0ZWQgaGFuZGxlRm9jdXNPdXQoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG59XG4iXX0=
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLWNvbnRyb2wuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY2RrL2F1dG9jb21wbGV0ZS1jb250cm9sL3NyYy9saWIvYXV0b2NvbXBsZXRlLWNvbnRyb2wudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0QsT0FBTyxFQUVMLGdCQUFnQixFQUNoQixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBZSxNQUFNLGNBQWMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQXlCLE1BQU0sc0NBQXNDLENBQUM7QUFFaEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDckUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7O0FBRS9FOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBUUgsTUFBTSxPQUFnQixtQkFBdUIsU0FBUSxpQkFBMkI7SUFpQjlFLElBQVcsd0JBQXdCO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxjQUFjLEVBQUUsYUFBYSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDO0lBQ3RGLENBQUM7SUFFRCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQVcsTUFBTTtRQUNmLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFR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QyxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQyxDQUFDO0lBR1MsY0FBYyxDQUFDLEtBQWlCO1FBQ3hDLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLEtBQUssQ0FBQyx3QkFBd0IsRUFBRSxDQUFDO1NBQ2xDO1FBQ0QsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7K0dBM01tQixtQkFBbUI7bUdBQW5CLG1CQUFtQixzRUE2Qm5CLGdCQUFnQiw0Y0FuQnpCLGlCQUFpQjs7NEZBVlIsbUJBQW1CO2tCQVB4QyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0osaUJBQWlCLEVBQUUsUUFBUTt3QkFDM0Isc0JBQXNCLEVBQUUsb0JBQW9CO3FCQUM3QztpQkFDRjswRUFZb0IsUUFBUTtzQkFEMUIsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBb0JyQixTQUFTO3NCQURmLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBbUIvQixTQUFTO3NCQURmLEtBQUs7Z0JBZ0JDLGNBQWM7c0JBRHBCLE1BQU07Z0JBZUEsa0JBQWtCO3NCQUR4QixNQUFNO2dCQWVBLGlCQUFpQjtzQkFEdkIsTUFBTTtnQkFlQSxtQkFBbUI7c0JBRHpCLE1BQU07Z0JBZUEsa0JBQWtCO3NCQUR4QixNQUFNO2dCQWdGRyxjQUFjO3NCQUR2QixZQUFZO3VCQUFDLFVBQVUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGV0ZWN0Q29udHJvbGxlckNoYW5nZXMsIFN0cmluZ2lmeUZuIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IEN1c3RvbUZvcm1Db250cm9sLCBJbnB1dENvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2N1c3RvbS1mb3JtLWNvbnRyb2wnO1xuaW1wb3J0IHsgT3B0aW9uQ29udHJvbCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvb3B0aW9uLWNvbnRyb2wnO1xuaW1wb3J0IHsgRHJvcGRvd25EaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBGb3JtRmllbGRDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9mb3JtLWZpZWxkJztcbmltcG9ydCB7IGluamVjdEVsZW1lbnQsIGlzRnVuY3Rpb24sIHVudGlsRGVzdHJveWVkIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcblxuLyoqXG4gKiBgQXV0b2NvbXBsZXRlQ29udHJvbGAgaXMgYSBiYXNlIGRpcmVjdGl2ZSB0byBlbmhhbmNlIGFuIGlucHV0IGZpZWxkIHdpdGggYXV0b2NvbXBsZXRlIGZ1bmN0aW9uYWxpdHksXG4gKiBwcm92aWRpbmcga2V5Ym9hcmQgbmF2aWdhdGlvbiBhbmQgc2VsZWN0aW9uIGZvciBvcHRpb25zIGRpc3BsYXllZCBpbiBhIGRyb3Bkb3duLiBJdCdzIGRlc2lnbmVkIHRvIGJlIGV4dGVuZGVkXG4gKiBmb3Igc3BlY2lmaWMgaW1wbGVtZW50YXRpb25zLlxuICogRXh0ZW5kcyBgQ3VzdG9tRm9ybUNvbnRyb2xgIHRvIHByb3ZpZGUgZm9ybSBjb250cm9sIGJlaGF2aW9yIGFuZCBzdGF0ZSBtYW5hZ2VtZW50LlxuICpcbiAqIEBzZWUge0N1c3RvbUZvcm1Db250cm9sfVxuICpcbiAqIFRoaXMgZGlyZWN0aXZlIG1hbmFnZXMgdGhlIG9wZW4vY2xvc2Ugc3RhdGUgb2YgdGhlIGRyb3Bkb3duLCB0aGUgbG9hZGluZyBzdGF0ZSBpbmRpY2F0aW9uLCBhbmQgdGhlIGludGVyYWN0aW9uIGJldHdlZW5cbiAqIHRoZSBhdXRvY29tcGxldGUgaW5wdXQgYW5kIHRoZSBkcm9wZG93biBvcHRpb25zLiBJdCB1dGlsaXplcyBgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXJgIGZvciBrZXlib2FyZCBuYXZpZ2F0aW9uIGFtb25nIG9wdGlvbnMuXG4gKlxuICogRXh0ZW5kIHRoaXMgZGlyZWN0aXZlIHRvIGNyZWF0ZSBhIGZ1bGx5IGZ1bmN0aW9uYWwgYXV0b2NvbXBsZXRlIGNvbnRyb2wgdGFpbG9yZWQgdG8geW91ciBkYXRhIHR5cGUgYW5kIFVJIHJlcXVpcmVtZW50cy5cbiAqXG4gKiBAdGVtcGxhdGUgVCAtIFRoZSB0eXBlIG9mIHRoZSBpdGVtcyBkaXNwbGF5ZWQgaW4gdGhlIGF1dG9jb21wbGV0ZSBkcm9wZG93bi5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGhvc3Q6IHtcbiAgICAnW2NsYXNzLmlzLW9wZW5dJzogJ2lzT3BlbicsXG4gICAgJ1thdHRyLmFyaWEtZGlzYWJsZWRdJzogJ2lzRGlzYWJsZWQgfHwgbnVsbCcsXG4gIH0sXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEF1dG9jb21wbGV0ZUNvbnRyb2w8VD4gZXh0ZW5kcyBDdXN0b21Gb3JtQ29udHJvbDxUIHwgbnVsbD4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHJvdGVjdGVkIGFic3RyYWN0IHJlYWRvbmx5IG9wdGlvbnM/OiBRdWVyeUxpc3Q8T3B0aW9uQ29udHJvbDxUPj47XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvcm1GaWVsZCA9IGluamVjdChGb3JtRmllbGRDb21wb25lbnQsIHsgb3B0aW9uYWw6IHRydWUgfSk7XG4gIHByb3RlY3RlZCByZWFkb25seSB0YWtlVW50aWxEZXN0cm95ZWQgPSB1bnRpbERlc3Ryb3llZCgpO1xuXG4gIHByb3RlY3RlZCBrZXlNYW5hZ2VyPzogQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI8T3B0aW9uQ29udHJvbDxUPj47XG4gIHByb3RlY3RlZCBzbW9vdGhTY3JvbGxFbmFibGVkID0gZmFsc2U7XG5cbiAgQFZpZXdDaGlsZChEcm9wZG93bkRpcmVjdGl2ZSlcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRyb3Bkb3duPzogRHJvcGRvd25EaXJlY3RpdmU7XG5cbiAgcHVibGljIGFic3RyYWN0IHNlYXJjaEZpZWxkPzogSW5wdXRDb250cm9sRGlyZWN0aXZlO1xuXG4gIHB1YmxpYyByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0RWxlbWVudCgpO1xuXG4gIHB1YmxpYyBnZXQgZHJvcGRvd25SZWZlcmVuY2VFbGVtZW50KCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy5mb3JtRmllbGQ/LmNvbnRyb2xFbGVtZW50Py5uYXRpdmVFbGVtZW50ID8/IHRoaXMuZWxlbWVudD8ubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaGFzT3B0aW9ucygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLm9wdGlvbnM/Lmxlbmd0aDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNPcGVuKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuZHJvcGRvd24/LmlzT3BlbjtcbiAgfVxuXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgaXNMb2FkaW5nID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEEgZnVuY3Rpb24gdGhhdCBjb252ZXJ0cyBhbiBpdGVtIG9mIHR5cGUgVCB0byBhIHN0cmluZyByZXByZXNlbnRhdGlvbi5cbiAgICogVXNlZCBieSB0aGUgQXV0b2NvbXBsZXRlQ29udHJvbCBjb21wb25lbnQgdG8gZGlzcGxheSB0aGUgc2VsZWN0ZWQgaXRlbS5cbiAgICpcbiAgICogQHR5cGUge1N0cmluZ2lmeUZuPFQ+fVxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiAvLyBEZWZpbmUgYSBzdHJpbmdpZnkgZnVuY3Rpb24gZm9yIGEgY3VzdG9tIHR5cGUgUGVyc29uXG4gICAqIGNvbnN0IHN0cmluZ2lmeVBlcnNvbjogU3RyaW5naWZ5Rm48UGVyc29uPiA9IChwZXJzb24pID0+IGAke3BlcnNvbi5maXJzdE5hbWV9ICR7cGVyc29uLmxhc3ROYW1lfWA7XG4gICAqXG4gICAqIC8vIEFzc2lnbiB0aGUgc3RyaW5naWZ5IGZ1bmN0aW9uIHRvIHRoZSBBdXRvY29tcGxldGVDb250cm9sXG4gICAqIGF1dG9jb21wbGV0ZUNvbnRyb2wuc3RyaW5naWZ5ID0gc3RyaW5naWZ5UGVyc29uO1xuICAgKiBgYGBcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdHJpbmdpZnk/OiBTdHJpbmdpZnlGbjxUPjtcblxuICAvKipcbiAgICogRW1pdHMgdGhlIHNlbGVjdGVkIG9wdGlvbiB3aGVuIGFuIG9wdGlvbiBpcyBzZWxlY3RlZCBmcm9tIHRoZSBkcm9wZG93bi5cbiAgICpcbiAgICogQGVtaXRzIHtUfSAtIFRoZSBzZWxlY3RlZCBvcHRpb24uXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIGF1dG9jb21wbGV0ZUNvbnRyb2wub3B0aW9uU2VsZWN0ZWQuc3Vic2NyaWJlKChzZWxlY3RlZE9wdGlvbikgPT4ge1xuICAgKiAgIGNvbnNvbGUubG9nKCdTZWxlY3RlZCBvcHRpb246Jywgc2VsZWN0ZWRPcHRpb24pO1xuICAgKiB9KTtcbiAgICogYGBgXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIG9wdGlvblNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIGJlZm9yZSB0aGUgZHJvcGRvd24gb3BlbnMuXG4gICAqXG4gICAqIEBlbWl0cyB7dm9pZH1cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgaHRtbFxuICAgKiA8b2R4LXNlbGVjdCAoYmVmb3JlRHJvcGRvd25PcGVuKT1cIm9uQmVmb3JlRHJvcGRvd25PcGVuKClcIj5cbiAgICogPC9vZHgtc2VsZWN0PlxuICAgKiBgYGBcbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgYmVmb3JlRHJvcGRvd25PcGVuID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIGFmdGVyIHRoZSBkcm9wZG93biBvcGVuZWQuXG4gICAqXG4gICAqIEBlbWl0cyB7dm9pZH1cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgaHRtbFxuICAgKiA8b2R4LXNlbGVjdCAoYWZ0ZXJEcm9wZG93bk9wZW4pPVwib25BZnRlckRyb3Bkb3duT3BlbigpXCI+XG4gICAqIDwvb2R4LXNlbGVjdD5cbiAgICogYGBgXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGFmdGVyRHJvcGRvd25PcGVuID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIC8qKlxuICAgKiBFdmVudCBlbWl0dGVkIGJlZm9yZSB0aGUgZHJvcGRvd24gY2xvc2VzLlxuICAgKlxuICAgKiBAZW1pdHMge3ZvaWR9XG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYGh0bWxcbiAgICogPG9keC1zZWxlY3QgKGJlZm9yZURyb3Bkb3duQ2xvc2UpPVwib25CZWZvcmVEcm9wZG93bkNsb3NlKClcIj5cbiAgICogPC9vZHgtc2VsZWN0PlxuICAgKiBgYGBcbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgYmVmb3JlRHJvcGRvd25DbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAvKipcbiAgICogRXZlbnQgZW1pdHRlZCBhZnRlciB0aGUgZHJvcGRvd24gY2xvc2VkLlxuICAgKlxuICAgKiBAZW1pdHMge3ZvaWR9XG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYGh0bWxcbiAgICogPG9keC1zZWxlY3QgKGFmdGVyRHJvcGRvd25DbG9zZSk9XCJvbkFmdGVyRHJvcGRvd25DbG9zZSgpXCI+XG4gICAqIDwvb2R4LXNlbGVjdD5cbiAgICogYGBgXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGFmdGVyRHJvcGRvd25DbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcihudWxsKTtcbiAgICBkZXRlY3RDb250cm9sbGVyQ2hhbmdlcyh0aGlzKS5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMpIHJldHVybjtcblxuICAgIHRoaXMuaW5pdEtleU1hbmFnZXIodGhpcy5vcHRpb25zKTtcbiAgICB0aGlzLmhhbmRsZVF1ZXJ5TGlzdE9wdGlvbih0aGlzLm9wdGlvbnMpO1xuICAgIHRoaXMuaGFuZGxlU2VhcmNoRmllbGRDaGFuZ2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogU2Nyb2xscyB0aGUgc3BlY2lmaWVkIG9wdGlvbiBlbGVtZW50IGludG8gdmlldy5cbiAgICogQHBhcmFtIHtPcHRpb25Db250cm9sPFQ+fSBvcHRpb24gLSBUaGUgb3B0aW9uIGNvbnRyb2wgY29udGFpbmluZyB0aGUgZWxlbWVudCB0byBzY3JvbGwgaW50byB2aWV3LlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICpcbiAgICogQGV4YW1wbGVcbiAgICogYGBgdHNcbiAgICogY29uc3Qgb3B0aW9uQ29udHJvbDogT3B0aW9uQ29udHJvbDxzdHJpbmc+ID0geyBlbGVtZW50OiBteU9wdGlvbkVsZW1lbnQgfTtcbiAgICogc2Nyb2xsT3B0aW9uSW50b1ZpZXcob3B0aW9uQ29udHJvbCk7XG4gICAqIGBgYFxuICAgKi9cbiAgcHVibGljIHNjcm9sbE9wdGlvbkludG9WaWV3KHsgZWxlbWVudCB9OiBPcHRpb25Db250cm9sPFQ+KTogdm9pZCB7XG4gICAgY29uc3QgYmVoYXZpb3IgPSB0aGlzLnNtb290aFNjcm9sbEVuYWJsZWQgPyAnc21vb3RoJyA6IHVuZGVmaW5lZDtcbiAgICBpZiAoaXNGdW5jdGlvbihlbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcpKSB7XG4gICAgICBlbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBibG9jazogJ2NlbnRlcicsIGJlaGF2aW9yIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBoYW5kbGVRdWVyeUxpc3RPcHRpb24ob3B0aW9uczogUXVlcnlMaXN0PE9wdGlvbkNvbnRyb2w8VD4+KTogdm9pZDtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgaGFuZGxlU2VhcmNoRmllbGRDaGFuZ2VzKCk6IHZvaWQ7XG5cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGFjdGl2YXRlU2VsZWN0ZWRPcHRpb24oKTogdm9pZDtcblxuICBwcm90ZWN0ZWQgaW5pdEtleU1hbmFnZXIob3B0aW9uczogUXVlcnlMaXN0PE9wdGlvbkNvbnRyb2w8VD4+KTogdm9pZCB7XG4gICAgdGhpcy5rZXlNYW5hZ2VyID0gbmV3IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyKG9wdGlvbnMpLndpdGhIb21lQW5kRW5kKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZGlzYWJsZVNtb290aFNjcm9sbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNtb290aFNjcm9sbEVuYWJsZWQgPSBmYWxzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBlbmFibGVTbW9vdGhTY3JvbGwoKTogdm9pZCB7XG4gICAgdGhpcy5zbW9vdGhTY3JvbGxFbmFibGVkID0gdHJ1ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvcGVuRHJvcGRvd24oKTogdm9pZCB7XG4gICAgdGhpcy5kcm9wZG93bj8ub3BlbigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNsb3NlRHJvcGRvd24oKTogdm9pZCB7XG4gICAgdGhpcy5kcm9wZG93bj8uY2xvc2UoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkRyb3Bkb3duT3BlbigpOiB2b2lkIHtcbiAgICB0aGlzLmJlZm9yZURyb3Bkb3duT3Blbi5lbWl0KCk7XG4gICAgdGhpcy5hY3RpdmF0ZVNlbGVjdGVkT3B0aW9uKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Ecm9wZG93bk9wZW5lZCgpOiB2b2lkIHtcbiAgICB0aGlzLmFmdGVyRHJvcGRvd25PcGVuLmVtaXQoKTtcbiAgICB0aGlzLmVuYWJsZVNtb290aFNjcm9sbCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uRHJvcGRvd25DbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLmJlZm9yZURyb3Bkb3duQ2xvc2UuZW1pdCgpO1xuICAgIHRoaXMuZGlzYWJsZVNtb290aFNjcm9sbCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uRHJvcGRvd25DbG9zZWQoKTogdm9pZCB7XG4gICAgdGhpcy5hZnRlckRyb3Bkb3duQ2xvc2UuZW1pdCgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignZm9jdXNvdXQnLCBbJyRldmVudCddKVxuICBwcm90ZWN0ZWQgaGFuZGxlRm9jdXNPdXQoZXZlbnQ6IEZvY3VzRXZlbnQpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICB9XG59XG4iXX0=
|
|
@@ -29,7 +29,6 @@ export let AutocompleteComponent = class AutocompleteComponent extends Autocompl
|
|
|
29
29
|
this.defaultActiveOptionIndex = 0;
|
|
30
30
|
this.patchValueFlag = false;
|
|
31
31
|
this.clickOutsideDirective = inject(ClickOutsideDirective, { host: true });
|
|
32
|
-
this.dropdownOpenTriggers = [];
|
|
33
32
|
}
|
|
34
33
|
static { AutocompleteComponent_1 = this; }
|
|
35
34
|
ngAfterViewInit() {
|
|
@@ -133,9 +132,6 @@ export let AutocompleteComponent = class AutocompleteComponent extends Autocompl
|
|
|
133
132
|
activateSelectedOption() {
|
|
134
133
|
this.keyManager?.setActiveItem(this.defaultActiveOptionIndex);
|
|
135
134
|
}
|
|
136
|
-
onDropdownBeforeOpen() {
|
|
137
|
-
this.activateSelectedOption();
|
|
138
|
-
}
|
|
139
135
|
updateSearchField(value) {
|
|
140
136
|
if (!this.searchField)
|
|
141
137
|
return;
|
|
@@ -155,7 +151,7 @@ export let AutocompleteComponent = class AutocompleteComponent extends Autocompl
|
|
|
155
151
|
provide: ODX_SEARCH_FILTER_HOST,
|
|
156
152
|
useExisting: AUTOCOMPLETE_CONTROL,
|
|
157
153
|
},
|
|
158
|
-
], queries: [{ propertyName: "searchField", first: true, predicate: AutocompleteInputControlDirective, descendants: true }, { propertyName: "options", predicate: AutocompleteOptionComponent, descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i1.ClickOutsideDirective }], ngImport: i0, template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-autocomplete__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4, outerPadding: 10, position: 'bottom-start' }\"\n [odxDropdownReferenceElement]=\"dropdownReferenceElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n [odxDropdownOpenTrigger]=\"
|
|
154
|
+
], queries: [{ propertyName: "searchField", first: true, predicate: AutocompleteInputControlDirective, descendants: true }, { propertyName: "options", predicate: AutocompleteOptionComponent, descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i1.ClickOutsideDirective }], ngImport: i0, template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-autocomplete__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4, outerPadding: 10, position: 'bottom-start' }\"\n [odxDropdownReferenceElement]=\"dropdownReferenceElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n [odxDropdownOpenTrigger]=\"[]\"\n [odxDropdownClickOutsideActive]=\"false\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownAfterOpen)=\"onDropdownOpened()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n>\n <ng-content select=\"input[odxAutocompleteControl]\"></ng-content>\n</div>\n<ng-template #dropdownContent>\n <div class=\"odx-dropdown__option-list\" role=\"listbox\">\n <ng-template [ngIf]=\"hasOptions\">\n <ng-content></ng-content>\n </ng-template>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: DropdownDirective, selector: "[odxDropdown]", inputs: ["odxDropdown", "odxDropdownDisabled", "odxDropdownShowLoader", "odxDropdownClickOutsideActive", "odxDropdownOptions", "odxDropdownReferenceElement", "odxDropdownTriggerElement", "odxDropdownHost", "odxDropdownOpenTrigger", "odxDropdownCloseTrigger"], outputs: ["odxDropdownBeforeOpen", "odxDropdownAfterOpen", "odxDropdownBeforeClose", "odxDropdownAfterClose"], exportAs: ["odxDropdown"] }, { kind: "ngmodule", type: LoadingSpinnerModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
159
155
|
};
|
|
160
156
|
AutocompleteComponent = AutocompleteComponent_1 = __decorate([
|
|
161
157
|
CSSComponent('autocomplete')
|
|
@@ -171,7 +167,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
171
167
|
provide: ODX_SEARCH_FILTER_HOST,
|
|
172
168
|
useExisting: AUTOCOMPLETE_CONTROL,
|
|
173
169
|
},
|
|
174
|
-
], hostDirectives: [ClickOutsideDirective], template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-autocomplete__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4, outerPadding: 10, position: 'bottom-start' }\"\n [odxDropdownReferenceElement]=\"dropdownReferenceElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n [odxDropdownOpenTrigger]=\"
|
|
170
|
+
], hostDirectives: [ClickOutsideDirective], template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-autocomplete__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4, outerPadding: 10, position: 'bottom-start' }\"\n [odxDropdownReferenceElement]=\"dropdownReferenceElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n [odxDropdownOpenTrigger]=\"[]\"\n [odxDropdownClickOutsideActive]=\"false\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownAfterOpen)=\"onDropdownOpened()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n>\n <ng-content select=\"input[odxAutocompleteControl]\"></ng-content>\n</div>\n<ng-template #dropdownContent>\n <div class=\"odx-dropdown__option-list\" role=\"listbox\">\n <ng-template [ngIf]=\"hasOptions\">\n <ng-content></ng-content>\n </ng-template>\n </div>\n</ng-template>\n" }]
|
|
175
171
|
}], propDecorators: { options: [{
|
|
176
172
|
type: ContentChildren,
|
|
177
173
|
args: [AutocompleteOptionComponent, { descendants: true, emitDistinctChangesOnly: true }]
|
|
@@ -185,4 +181,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
185
181
|
type: HostListener,
|
|
186
182
|
args: ['keydown', ['$event']]
|
|
187
183
|
}] } });
|
|
188
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9zcmMvbGliL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9hdXRvY29tcGxldGUvc3JjL2xpYi9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7OztBQUVqRTs7Ozs7Ozs7R0FRRztBQXFC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QXFCYSxpQ0FBaUMsNkRBUjlCLDJCQUEyQixrSUM5RDlDLHU2QkF1QkEsNENEYVksaUJBQWlCLHVjQUErQixvQkFBb0I7O0FBZ0JuRSxxQkFBcUI7SUFwQmpDLFlBQVksQ0FBQyxjQUFjLENBQUM7R0FvQmhCLHFCQUFxQixDQWdLakM7NEZBaEtZLHFCQUFxQjtrQkFuQmpDLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLGtCQUFrQixXQUNuQixDQUFDLGlCQUFpQixFQUFFLDJCQUEyQixFQUFFLG9CQUFvQixDQUFDLG1CQUU5RCx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLGFBQzFCO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxvQkFBb0I7NEJBQzdCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHNCQUFzQixDQUFDO3lCQUNyRDt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsc0JBQXNCOzRCQUMvQixXQUFXLEVBQUUsb0JBQW9CO3lCQUNsQztxQkFDRixrQkFDZSxDQUFDLHFCQUFxQixDQUFDOzhCQWFoQyxPQUFPO3NCQURiLGVBQWU7dUJBQUMsMkJBQTJCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRTtnQkFTM0YsV0FBVztzQkFEakIsWUFBWTt1QkFBQyxpQ0FBaUM7Z0JBaUZyQyxnQkFBZ0I7c0JBRHpCLFlBQVk7dUJBQUMsT0FBTztnQkFnQlgsbUJBQW1CO3NCQUQ1QixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDbGlja091dHNpZGVEaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgQXV0b2NvbXBsZXRlQ29udHJvbCwgT0RYX1NFQVJDSF9GSUxURVJfSE9TVCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvYXV0b2NvbXBsZXRlLWNvbnRyb2wnO1xuaW1wb3J0IHsgRHJvcGRvd25EaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBMb2FkaW5nU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2xvYWRpbmctc3Bpbm5lcic7XG5pbXBvcnQgeyBDU1NDb21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuaW1wb3J0IHsgZGVmZXJGbiB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHRhcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVVUT0NPTVBMRVRFX0NPTlRST0wgfSBmcm9tICcuL2F1dG9jb21wbGV0ZS50b2tlbnMnO1xuaW1wb3J0IHsgQXV0b2NvbXBsZXRlT3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUlucHV0Q29udHJvbERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcyc7XG5cbi8qKlxuICogUmVwcmVzZW50cyBhbiBhdXRvY29tcGxldGUgY29tcG9uZW50IHRoYXQgcHJvdmlkZXMgdXNlciBpbnRlcmZhY2UgZm9yIGEgZHJvcGRvd24gbGlzdCB0byBzZWxlY3QgZnJvbSBhcyB1c2VycyB0eXBlLlxuICogSXQgZXh0ZW5kcyBgQXV0b2NvbXBsZXRlQ29udHJvbGAsIGludGVncmF0aW5nIGN1c3RvbSBsb2dpYyBmb3IgaGFuZGxpbmcga2V5Ym9hcmQgYW5kIG1vdXNlIGV2ZW50cyxcbiAqIG1hbmFnaW5nIHRoZSBkcm9wZG93biBzdGF0ZSwgYW5kIHVwZGF0aW5nIHRoZSBhc3NvY2lhdGVkIHNlYXJjaCBmaWVsZC5cbiAqXG4gKiBAc2VlIHtBdXRvY29tcGxldGVDb250cm9sfVxuICpcbiAqIEB0ZW1wbGF0ZSBUIC0gVGhlIHR5cGUgb2YgdGhlIHZhbHVlIGhhbmRsZWQgYnkgdGhlIGF1dG9jb21wbGV0ZS5cbiAqL1xuQENTU0NvbXBvbmVudCgnYXV0b2NvbXBsZXRlJylcbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ29keC1hdXRvY29tcGxldGUnLFxuICBpbXBvcnRzOiBbRHJvcGRvd25EaXJlY3RpdmUsIEF1dG9jb21wbGV0ZU9wdGlvbkNvbXBvbmVudCwgTG9hZGluZ1NwaW5uZXJNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFVVE9DT01QTEVURV9DT05UUk9MLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQXV0b2NvbXBsZXRlQ29tcG9uZW50KSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE9EWF9TRUFSQ0hfRklMVEVSX0hPU1QsXG4gICAgICB1c2VFeGlzdGluZzogQVVUT0NPTVBMRVRFX0NPTlRST0wsXG4gICAgfSxcbiAgXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtDbGlja091dHNpZGVEaXJlY3RpdmVdLFxufSlcbmV4cG9ydCBjbGFzcyBBdXRvY29tcGxldGVDb21wb25lbnQ8VCA9IHVua25vd24+IGV4dGVuZHMgQXV0b2NvbXBsZXRlQ29udHJvbDxUIHwgbnVsbD4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0QWN0aXZlT3B0aW9uSW5kZXggPSAwO1xuICBwcml2YXRlIHBhdGNoVmFsdWVGbGFnID0gZmFsc2U7XG4gIHByb3RlY3RlZCByZWFkb25seSBjbGlja091dHNpZGVEaXJlY3RpdmUgPSBpbmplY3QoQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLCB7IGhvc3Q6IHRydWUgfSk7XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIGF1dG9jb21wbGV0ZSBvcHRpb25zLlxuICAgKlxuICAgKiBAdHlwZSB7UXVlcnlMaXN0PEF1dG9jb21wbGV0ZU9wdGlvbkNvbXBvbmVudDxUPj4gfCB1bmRlZmluZWR9XG4gICAqL1xuICBAQ29udGVudENoaWxkcmVuKEF1dG9jb21wbGV0ZU9wdGlvbkNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSwgZW1pdERpc3RpbmN0Q2hhbmdlc09ubHk6IHRydWUgfSlcbiAgcHVibGljIG9wdGlvbnM/OiBRdWVyeUxpc3Q8QXV0b2NvbXBsZXRlT3B0aW9uQ29tcG9uZW50PFQ+PjtcblxuICAvKipcbiAgICogVGhlIHNlYXJjaCBmaWVsZCBpbnB1dCBjb250cm9sLlxuICAgKlxuICAgKiBAdHlwZSB7QXV0b2NvbXBsZXRlSW5wdXRDb250cm9sRGlyZWN0aXZlIHwgdW5kZWZpbmVkfVxuICAgKi9cbiAgQENvbnRlbnRDaGlsZChBdXRvY29tcGxldGVJbnB1dENvbnRyb2xEaXJlY3RpdmUpXG4gIHB1YmxpYyBzZWFyY2hGaWVsZD86IEF1dG9jb21wbGV0ZUlucHV0Q29udHJvbERpcmVjdGl2ZTtcblxuICBwdWJsaWMgcmVhZG9ubHkgZHJvcGRvd25PcGVuVHJpZ2dlcnMgPSBbXTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vcHRpb25zKSByZXR1cm47XG4gICAgaWYgKHRoaXMudmFsdWUpIHRoaXMudXBkYXRlU2VhcmNoRmllbGQodGhpcy52YWx1ZSk7XG5cbiAgICB0aGlzLmluaXRLZXlNYW5hZ2VyKHRoaXMub3B0aW9ucyk7XG4gICAgdGhpcy5oYW5kbGVRdWVyeUxpc3RPcHRpb24odGhpcy5vcHRpb25zKTtcbiAgICB0aGlzLmhhbmRsZVNlYXJjaEZpZWxkQ2hhbmdlcygpO1xuICAgIHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlKCk7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0cyBhbiBvcHRpb24sIHVwZGF0ZXMgdGhlIHZhbHVlLCB1cGRhdGVzIHRoZSBzZWFyY2ggZmllbGQgZGlzcGxheSxcbiAgICogZW1pdHMgdGhlIHNlbGVjdGVkIHZhbHVlLCBhbmQgY2xvc2VzIHRoZSBkcm9wZG93bi5cbiAgICpcbiAgICogQHBhcmFtIHtBdXRvY29tcGxldGVPcHRpb25Db21wb25lbnQ8VD4gfCBudWxsfSBvcHRpb24gLSBUaGUgb3B0aW9uIGNvbXBvbmVudCB0byBzZWxlY3QuIElmIHRoZSBvcHRpb24gaXMgdW5kZWZpbmVkIG9yIGl0cyB2YWx1ZSBpcyB1bmRlZmluZWQsXG4gICAqIG5vIGFjdGlvbiBpcyB0YWtlbi5cbiAgICovXG4gIHB1YmxpYyBzZWxlY3RPcHRpb24ob3B0aW9uPzogQXV0b2NvbXBsZXRlT3B0aW9uQ29tcG9uZW50PFQ+IHwgbnVsbCk6IHZvaWQge1xuICAgIGlmICghb3B0aW9uPy52YWx1ZSkgcmV0dXJuO1xuXG4gICAgdGhpcy51cGRhdGVWYWx1ZShvcHRpb24udmFsdWUpO1xuICAgIHRoaXMudXBkYXRlU2VhcmNoRmllbGQob3B0aW9uLnZhbHVlKTtcblxuICAgIHRoaXMub3B0aW9uU2VsZWN0ZWQuZW1pdChvcHRpb24udmFsdWUpO1xuXG4gICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXRzIHRoZSBzZWFyY2ggZmllbGQgdG8gaXRzIGluaXRpYWwgc3RhdGUgYW5kIHVwZGF0ZXMgdGhlIHZhbHVlIG9mIHRoZSBhdXRvY29tcGxldGVcbiAgICogdG8gYW4gZW1wdHkgc3RyaW5nIG9yIGluaXRpYWwgdmFsdWUuXG4gICAqL1xuICBwdWJsaWMgcmVzZXRTZWFyY2hGaWVsZCgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVZhbHVlKCcnIGFzIFQpO1xuICAgIHRoaXMuc2VhcmNoRmllbGQ/LnJlc2V0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlUXVlcnlMaXN0T3B0aW9uKG9wdGlvbnM6IFF1ZXJ5TGlzdDxBdXRvY29tcGxldGVPcHRpb25Db21wb25lbnQ8VD4+KTogdm9pZCB7XG4gICAgb3B0aW9ucy5jaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKCgpID0+IGRlZmVyRm4oKCkgPT4gdGhpcy51cGRhdGVEcm9wZG93blN0YXRlKCkpKSxcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuaXNPcGVuKSxcbiAgICAgICAgdGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBkZWZlckZuKCgpID0+IHRoaXMuYWN0aXZhdGVTZWxlY3RlZE9wdGlvbigpKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZVNlYXJjaEZpZWxkQ2hhbmdlcygpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaEZpZWxkPy52YWx1ZUNoYW5nZSQucGlwZSh0aGlzLnRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy50cmlnZ2VyQ29udHJvbGxlckNoYW5nZSgpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVDbGlja091dHNpZGUoKTogdm9pZCB7XG4gICAgdGhpcy5jbGlja091dHNpZGVEaXJlY3RpdmUub2R4Q2xpY2tPdXRzaWRlLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xpY2tPdXRzaWRlKCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGNsaWNrT3V0c2lkZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICB0aGlzLmJsdXJTZWxlY3RTZWFyY2hGaWVsZCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHVwZGF0ZURyb3Bkb3duU3RhdGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucGF0Y2hWYWx1ZUZsYWcpIHtcbiAgICAgIHRoaXMucGF0Y2hWYWx1ZUZsYWcgPSBmYWxzZTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc09wZW4gJiYgIXRoaXMuaGFzT3B0aW9ucykge1xuICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgfSBlbHNlIGlmICghdGhpcy5pc09wZW4gJiYgdGhpcy5oYXNPcHRpb25zKSB7XG4gICAgICB0aGlzLm9wZW5Ecm9wZG93bigpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgcHJvdGVjdGVkIGhhbmRsZUNsaWNrRXZlbnQoKSB7XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nICYmIHRoaXMuaXNPcGVuKSB7XG4gICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgIHRoaXMuYmx1clNlbGVjdFNlYXJjaEZpZWxkKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNSZWFkb25seSB8fCB0aGlzLmlzRGlzYWJsZWQpIHJldHVybjtcblxuICAgIGlmICghdGhpcy5pc09wZW4gJiYgdGhpcy5oYXNPcHRpb25zKSB7XG4gICAgICB0aGlzLm9wZW5Ecm9wZG93bigpO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBwcm90ZWN0ZWQgaGFuZGxlS2V5Ym9hcmRFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLmlzUmVhZG9ubHkgfHwgdGhpcy5pc0Rpc2FibGVkKSByZXR1cm47XG5cbiAgICBpZiAodGhpcy5pc09wZW4gJiYgdGhpcy5oYXNPcHRpb25zKSB7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1RhYicpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0T3B0aW9uKHRoaXMua2V5TWFuYWdlcj8uYWN0aXZlSXRlbSBhcyBBdXRvY29tcGxldGVPcHRpb25Db21wb25lbnQ8VD4gfCB1bmRlZmluZWQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyAmJiAhIXRoaXMudmFsdWUpIHtcbiAgICAgIHRoaXMub3B0aW9uU2VsZWN0ZWQuZW1pdCh0aGlzLnZhbHVlIGFzIFQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5pc09wZW4gJiYgZXZlbnQua2V5ID09PSAnVGFiJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5pc09wZW4gJiYgdGhpcy5oYXNPcHRpb25zKSB7XG4gICAgICB0aGlzLm9wZW5Ecm9wZG93bigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMua2V5TWFuYWdlcj8ub25LZXlkb3duKGV2ZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhY3RpdmF0ZVNlbGVjdGVkT3B0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMua2V5TWFuYWdlcj8uc2V0QWN0aXZlSXRlbSh0aGlzLmRlZmF1bHRBY3RpdmVPcHRpb25JbmRleCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Ecm9wZG93bkJlZm9yZU9wZW4oKTogdm9pZCB7XG4gICAgdGhpcy5hY3RpdmF0ZVNlbGVjdGVkT3B0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVNlYXJjaEZpZWxkKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNlYXJjaEZpZWxkKSByZXR1cm47XG4gICAgdGhpcy5wYXRjaFZhbHVlRmxhZyA9IHRydWU7XG4gICAgdGhpcy5zZWFyY2hGaWVsZC5uYXRpdmVFbGVtZW50VmFsdWUgPSB0aGlzLnN0cmluZ2lmeT8uKHZhbHVlKSA/PyAodmFsdWUgYXMgc3RyaW5nKTtcbiAgfVxuXG4gIHByaXZhdGUgYmx1clNlbGVjdFNlYXJjaEZpZWxkKCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoRmllbGQ/LmJsdXIoKTtcbiAgfVxufVxuIiwiPGRpdlxuICBhcmlhLWhhc3BvcHVwPVwibGlzdGJveFwiXG4gIGNsYXNzPVwib2R4LWF1dG9jb21wbGV0ZV9fdHJpZ2dlclwiXG4gIFtvZHhEcm9wZG93bl09XCJkcm9wZG93bkNvbnRlbnRcIlxuICBbb2R4RHJvcGRvd25EaXNhYmxlZF09XCJpc0Rpc2FibGVkIHx8IGlzUmVhZG9ubHlcIlxuICBbb2R4RHJvcGRvd25PcHRpb25zXT1cInsgbWF0Y2hSZWZlcmVuY2VXaWR0aDogdHJ1ZSwgb2Zmc2V0OiA0LCBvdXRlclBhZGRpbmc6IDEwLCBwb3NpdGlvbjogJ2JvdHRvbS1zdGFydCcgfVwiXG4gIFtvZHhEcm9wZG93blJlZmVyZW5jZUVsZW1lbnRdPVwiZHJvcGRvd25SZWZlcmVuY2VFbGVtZW50XCJcbiAgW29keERyb3Bkb3duU2hvd0xvYWRlcl09XCJpc0xvYWRpbmdcIlxuICBbb2R4RHJvcGRvd25PcGVuVHJpZ2dlcl09XCJkcm9wZG93bk9wZW5UcmlnZ2Vyc1wiXG4gIFtvZHhEcm9wZG93bkNsaWNrT3V0c2lkZUFjdGl2ZV09XCJmYWxzZVwiXG4gIChvZHhEcm9wZG93bkJlZm9yZU9wZW4pPVwib25Ecm9wZG93bkJlZm9yZU9wZW4oKVwiXG4gIChvZHhEcm9wZG93bkFmdGVyT3Blbik9XCJlbmFibGVTbW9vdGhTY3JvbGwoKVwiXG4gIChvZHhEcm9wZG93bkJlZm9yZUNsb3NlKT1cImRpc2FibGVTbW9vdGhTY3JvbGwoKVwiXG4+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImlucHV0W29keEF1dG9jb21wbGV0ZUNvbnRyb2xdXCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG48bmctdGVtcGxhdGUgI2Ryb3Bkb3duQ29udGVudD5cbiAgPGRpdiBjbGFzcz1cIm9keC1kcm9wZG93bl9fb3B0aW9uLWxpc3RcIiByb2xlPVwibGlzdGJveFwiPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdJZl09XCJoYXNPcHRpb25zXCI+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL2F1dG9jb21wbGV0ZS9zcmMvbGliL2F1dG9jb21wbGV0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9hdXRvY29tcGxldGUvc3JjL2xpYi9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3JELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDN0MsT0FBTyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQzNELE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLGNBQWMsQ0FBQzs7OztBQUVqRTs7Ozs7Ozs7R0FRRztBQXFC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QXBCakMsWUFBWSxDQUFDLGNBQWMsQ0FBQztHQW9CaEIscUJBQXFCLENBMEpqQzs0RkExSlkscUJBQXFCO2tCQW5CakMsU0FBUztpQ0FDSSxJQUFJLFlBQ04sa0JBQWtCLFdBQ25CLENBQUMsaUJBQWlCLEVBQUUsMkJBQTJCLEVBQUUsb0JBQW9CLENBQUMsbUJBRTlELHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUI7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLG9CQUFvQjs0QkFDN0IsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsc0JBQXNCLENBQUM7eUJBQ3JEO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxzQkFBc0I7NEJBQy9CLFdBQVcsRUFBRSxvQkFBb0I7eUJBQ2xDO3FCQUNGLGtCQUNlLENBQUMscUJBQXFCLENBQUM7OEJBYWhDLE9BQU87c0JBRGIsZUFBZTt1QkFBQywyQkFBMkIsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxFQUFFO2dCQVMzRixXQUFXO3NCQURqQixZQUFZO3VCQUFDLGlDQUFpQztnQkErRXJDLGdCQUFnQjtzQkFEekIsWUFBWTt1QkFBQyxPQUFPO2dCQWdCWCxtQkFBbUI7c0JBRDVCLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIGZvcndhcmRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENsaWNrT3V0c2lkZURpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhcic7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVDb250cm9sLCBPRFhfU0VBUkNIX0ZJTFRFUl9IT1NUIH0gZnJvbSAnQG9keC9hbmd1bGFyL2Nkay9hdXRvY29tcGxldGUtY29udHJvbCc7XG5pbXBvcnQgeyBEcm9wZG93bkRpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IExvYWRpbmdTcGlubmVyTW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvbG9hZGluZy1zcGlubmVyJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCB9IGZyb20gJ0BvZHgvYW5ndWxhci9pbnRlcm5hbCc7XG5pbXBvcnQgeyBkZWZlckZuIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IGZpbHRlciwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBVVRPQ09NUExFVEVfQ09OVFJPTCB9IGZyb20gJy4vYXV0b2NvbXBsZXRlLnRva2Vucyc7XG5pbXBvcnQgeyBBdXRvY29tcGxldGVPcHRpb25Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQXV0b2NvbXBsZXRlSW5wdXRDb250cm9sRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGFuIGF1dG9jb21wbGV0ZSBjb21wb25lbnQgdGhhdCBwcm92aWRlcyB1c2VyIGludGVyZmFjZSBmb3IgYSBkcm9wZG93biBsaXN0IHRvIHNlbGVjdCBmcm9tIGFzIHVzZXJzIHR5cGUuXG4gKiBJdCBleHRlbmRzIGBBdXRvY29tcGxldGVDb250cm9sYCwgaW50ZWdyYXRpbmcgY3VzdG9tIGxvZ2ljIGZvciBoYW5kbGluZyBrZXlib2FyZCBhbmQgbW91c2UgZXZlbnRzLFxuICogbWFuYWdpbmcgdGhlIGRyb3Bkb3duIHN0YXRlLCBhbmQgdXBkYXRpbmcgdGhlIGFzc29jaWF0ZWQgc2VhcmNoIGZpZWxkLlxuICpcbiAqIEBzZWUge0F1dG9jb21wbGV0ZUNvbnRyb2x9XG4gKlxuICogQHRlbXBsYXRlIFQgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgaGFuZGxlZCBieSB0aGUgYXV0b2NvbXBsZXRlLlxuICovXG5AQ1NTQ29tcG9uZW50KCdhdXRvY29tcGxldGUnKVxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnb2R4LWF1dG9jb21wbGV0ZScsXG4gIGltcG9ydHM6IFtEcm9wZG93bkRpcmVjdGl2ZSwgQXV0b2NvbXBsZXRlT3B0aW9uQ29tcG9uZW50LCBMb2FkaW5nU3Bpbm5lck1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQVVUT0NPTVBMRVRFX0NPTlRST0wsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBdXRvY29tcGxldGVDb21wb25lbnQpLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogT0RYX1NFQVJDSF9GSUxURVJfSE9TVCxcbiAgICAgIHVzZUV4aXN0aW5nOiBBVVRPQ09NUExFVEVfQ09OVFJPTCxcbiAgICB9LFxuICBdLFxuICBob3N0RGlyZWN0aXZlczogW0NsaWNrT3V0c2lkZURpcmVjdGl2ZV0sXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9jb21wbGV0ZUNvbXBvbmVudDxUID0gdW5rbm93bj4gZXh0ZW5kcyBBdXRvY29tcGxldGVDb250cm9sPFQgfCBudWxsPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRBY3RpdmVPcHRpb25JbmRleCA9IDA7XG4gIHByaXZhdGUgcGF0Y2hWYWx1ZUZsYWcgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNsaWNrT3V0c2lkZURpcmVjdGl2ZSA9IGluamVjdChDbGlja091dHNpZGVEaXJlY3RpdmUsIHsgaG9zdDogdHJ1ZSB9KTtcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgYXV0b2NvbXBsZXRlIG9wdGlvbnMuXG4gICAqXG4gICAqIEB0eXBlIHtRdWVyeUxpc3Q8QXV0b2NvbXBsZXRlT3B0aW9uQ29tcG9uZW50PFQ+PiB8IHVuZGVmaW5lZH1cbiAgICovXG4gIEBDb250ZW50Q2hpbGRyZW4oQXV0b2NvbXBsZXRlT3B0aW9uQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlLCBlbWl0RGlzdGluY3RDaGFuZ2VzT25seTogdHJ1ZSB9KVxuICBwdWJsaWMgb3B0aW9ucz86IFF1ZXJ5TGlzdDxBdXRvY29tcGxldGVPcHRpb25Db21wb25lbnQ8VD4+O1xuXG4gIC8qKlxuICAgKiBUaGUgc2VhcmNoIGZpZWxkIGlucHV0IGNvbnRyb2wuXG4gICAqXG4gICAqIEB0eXBlIHtBdXRvY29tcGxldGVJbnB1dENvbnRyb2xEaXJlY3RpdmUgfCB1bmRlZmluZWR9XG4gICAqL1xuICBAQ29udGVudENoaWxkKEF1dG9jb21wbGV0ZUlucHV0Q29udHJvbERpcmVjdGl2ZSlcbiAgcHVibGljIHNlYXJjaEZpZWxkPzogQXV0b2NvbXBsZXRlSW5wdXRDb250cm9sRGlyZWN0aXZlO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMpIHJldHVybjtcbiAgICBpZiAodGhpcy52YWx1ZSkgdGhpcy51cGRhdGVTZWFyY2hGaWVsZCh0aGlzLnZhbHVlKTtcblxuICAgIHRoaXMuaW5pdEtleU1hbmFnZXIodGhpcy5vcHRpb25zKTtcbiAgICB0aGlzLmhhbmRsZVF1ZXJ5TGlzdE9wdGlvbih0aGlzLm9wdGlvbnMpO1xuICAgIHRoaXMuaGFuZGxlU2VhcmNoRmllbGRDaGFuZ2VzKCk7XG4gICAgdGhpcy5oYW5kbGVDbGlja091dHNpZGUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3RzIGFuIG9wdGlvbiwgdXBkYXRlcyB0aGUgdmFsdWUsIHVwZGF0ZXMgdGhlIHNlYXJjaCBmaWVsZCBkaXNwbGF5LFxuICAgKiBlbWl0cyB0aGUgc2VsZWN0ZWQgdmFsdWUsIGFuZCBjbG9zZXMgdGhlIGRyb3Bkb3duLlxuICAgKlxuICAgKiBAcGFyYW0ge0F1dG9jb21wbGV0ZU9wdGlvbkNvbXBvbmVudDxUPiB8IG51bGx9IG9wdGlvbiAtIFRoZSBvcHRpb24gY29tcG9uZW50IHRvIHNlbGVjdC4gSWYgdGhlIG9wdGlvbiBpcyB1bmRlZmluZWQgb3IgaXRzIHZhbHVlIGlzIHVuZGVmaW5lZCxcbiAgICogbm8gYWN0aW9uIGlzIHRha2VuLlxuICAgKi9cbiAgcHVibGljIHNlbGVjdE9wdGlvbihvcHRpb24/OiBBdXRvY29tcGxldGVPcHRpb25Db21wb25lbnQ8VD4gfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKCFvcHRpb24/LnZhbHVlKSByZXR1cm47XG5cbiAgICB0aGlzLnVwZGF0ZVZhbHVlKG9wdGlvbi52YWx1ZSk7XG4gICAgdGhpcy51cGRhdGVTZWFyY2hGaWVsZChvcHRpb24udmFsdWUpO1xuXG4gICAgdGhpcy5vcHRpb25TZWxlY3RlZC5lbWl0KG9wdGlvbi52YWx1ZSk7XG5cbiAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXNldHMgdGhlIHNlYXJjaCBmaWVsZCB0byBpdHMgaW5pdGlhbCBzdGF0ZSBhbmQgdXBkYXRlcyB0aGUgdmFsdWUgb2YgdGhlIGF1dG9jb21wbGV0ZVxuICAgKiB0byBhbiBlbXB0eSBzdHJpbmcgb3IgaW5pdGlhbCB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyByZXNldFNlYXJjaEZpZWxkKCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlVmFsdWUoJycgYXMgVCk7XG4gICAgdGhpcy5zZWFyY2hGaWVsZD8ucmVzZXQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVRdWVyeUxpc3RPcHRpb24ob3B0aW9uczogUXVlcnlMaXN0PEF1dG9jb21wbGV0ZU9wdGlvbkNvbXBvbmVudDxUPj4pOiB2b2lkIHtcbiAgICBvcHRpb25zLmNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoKCkgPT4gZGVmZXJGbigoKSA9PiB0aGlzLnVwZGF0ZURyb3Bkb3duU3RhdGUoKSkpLFxuICAgICAgICBmaWx0ZXIoKCkgPT4gdGhpcy5pc09wZW4pLFxuICAgICAgICB0aGlzLnRha2VVbnRpbERlc3Ryb3llZCgpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGRlZmVyRm4oKCkgPT4gdGhpcy5hY3RpdmF0ZVNlbGVjdGVkT3B0aW9uKCkpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlU2VhcmNoRmllbGRDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoRmllbGQ/LnZhbHVlQ2hhbmdlJC5waXBlKHRoaXMudGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnRyaWdnZXJDb250cm9sbGVyQ2hhbmdlKCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZUNsaWNrT3V0c2lkZSgpOiB2b2lkIHtcbiAgICB0aGlzLmNsaWNrT3V0c2lkZURpcmVjdGl2ZS5vZHhDbGlja091dHNpZGUucGlwZSh0aGlzLnRha2VVbnRpbERlc3Ryb3llZCgpKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbGlja091dHNpZGUoKSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY2xpY2tPdXRzaWRlKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgIHRoaXMuYmx1clNlbGVjdFNlYXJjaEZpZWxkKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdXBkYXRlRHJvcGRvd25TdGF0ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5wYXRjaFZhbHVlRmxhZykge1xuICAgICAgdGhpcy5wYXRjaFZhbHVlRmxhZyA9IGZhbHNlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzT3BlbiAmJiAhdGhpcy5oYXNPcHRpb25zKSB7XG4gICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLmlzT3BlbiAmJiB0aGlzLmhhc09wdGlvbnMpIHtcbiAgICAgIHRoaXMub3BlbkRyb3Bkb3duKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICBwcm90ZWN0ZWQgaGFuZGxlQ2xpY2tFdmVudCgpIHtcbiAgICBpZiAodGhpcy5pc0xvYWRpbmcgJiYgdGhpcy5pc09wZW4pIHtcbiAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgdGhpcy5ibHVyU2VsZWN0U2VhcmNoRmllbGQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc1JlYWRvbmx5IHx8IHRoaXMuaXNEaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgaWYgKCF0aGlzLmlzT3BlbiAmJiB0aGlzLmhhc09wdGlvbnMpIHtcbiAgICAgIHRoaXMub3BlbkRyb3Bkb3duKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIHByb3RlY3RlZCBoYW5kbGVLZXlib2FyZEV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuaXNSZWFkb25seSB8fCB0aGlzLmlzRGlzYWJsZWQpIHJldHVybjtcblxuICAgIGlmICh0aGlzLmlzT3BlbiAmJiB0aGlzLmhhc09wdGlvbnMpIHtcbiAgICAgIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicgfHwgZXZlbnQua2V5ID09PSAnVGFiJykge1xuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBldmVudC5zdG9wSW1tZWRpYXRlUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5zZWxlY3RPcHRpb24odGhpcy5rZXlNYW5hZ2VyPy5hY3RpdmVJdGVtIGFzIEF1dG9jb21wbGV0ZU9wdGlvbkNvbXBvbmVudDxUPiB8IHVuZGVmaW5lZCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInICYmICEhdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5vcHRpb25TZWxlY3RlZC5lbWl0KHRoaXMudmFsdWUgYXMgVCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmlzT3BlbiAmJiBldmVudC5rZXkgPT09ICdUYWInKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmlzT3BlbiAmJiB0aGlzLmhhc09wdGlvbnMpIHtcbiAgICAgIHRoaXMub3BlbkRyb3Bkb3duKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5rZXlNYW5hZ2VyPy5vbktleWRvd24oZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFjdGl2YXRlU2VsZWN0ZWRPcHRpb24oKTogdm9pZCB7XG4gICAgdGhpcy5rZXlNYW5hZ2VyPy5zZXRBY3RpdmVJdGVtKHRoaXMuZGVmYXVsdEFjdGl2ZU9wdGlvbkluZGV4KTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU2VhcmNoRmllbGQodmFsdWU6IFQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc2VhcmNoRmllbGQpIHJldHVybjtcbiAgICB0aGlzLnBhdGNoVmFsdWVGbGFnID0gdHJ1ZTtcbiAgICB0aGlzLnNlYXJjaEZpZWxkLm5hdGl2ZUVsZW1lbnRWYWx1ZSA9IHRoaXMuc3RyaW5naWZ5Py4odmFsdWUpID8/ICh2YWx1ZSBhcyBzdHJpbmcpO1xuICB9XG5cbiAgcHJpdmF0ZSBibHVyU2VsZWN0U2VhcmNoRmllbGQoKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hGaWVsZD8uYmx1cigpO1xuICB9XG59XG4iLCI8ZGl2XG4gIGFyaWEtaGFzcG9wdXA9XCJsaXN0Ym94XCJcbiAgY2xhc3M9XCJvZHgtYXV0b2NvbXBsZXRlX190cmlnZ2VyXCJcbiAgW29keERyb3Bkb3duXT1cImRyb3Bkb3duQ29udGVudFwiXG4gIFtvZHhEcm9wZG93bkRpc2FibGVkXT1cImlzRGlzYWJsZWQgfHwgaXNSZWFkb25seVwiXG4gIFtvZHhEcm9wZG93bk9wdGlvbnNdPVwieyBtYXRjaFJlZmVyZW5jZVdpZHRoOiB0cnVlLCBvZmZzZXQ6IDQsIG91dGVyUGFkZGluZzogMTAsIHBvc2l0aW9uOiAnYm90dG9tLXN0YXJ0JyB9XCJcbiAgW29keERyb3Bkb3duUmVmZXJlbmNlRWxlbWVudF09XCJkcm9wZG93blJlZmVyZW5jZUVsZW1lbnRcIlxuICBbb2R4RHJvcGRvd25TaG93TG9hZGVyXT1cImlzTG9hZGluZ1wiXG4gIFtvZHhEcm9wZG93bk9wZW5UcmlnZ2VyXT1cIltdXCJcbiAgW29keERyb3Bkb3duQ2xpY2tPdXRzaWRlQWN0aXZlXT1cImZhbHNlXCJcbiAgKG9keERyb3Bkb3duQmVmb3JlT3Blbik9XCJvbkRyb3Bkb3duT3BlbigpXCJcbiAgKG9keERyb3Bkb3duQWZ0ZXJPcGVuKT1cIm9uRHJvcGRvd25PcGVuZWQoKVwiXG4gIChvZHhEcm9wZG93bkJlZm9yZUNsb3NlKT1cIm9uRHJvcGRvd25DbG9zZSgpXCJcbiAgKG9keERyb3Bkb3duQWZ0ZXJDbG9zZSk9XCJvbkRyb3Bkb3duQ2xvc2VkKClcIlxuPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJpbnB1dFtvZHhBdXRvY29tcGxldGVDb250cm9sXVwiPjwvbmctY29udGVudD5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlICNkcm9wZG93bkNvbnRlbnQ+XG4gIDxkaXYgY2xhc3M9XCJvZHgtZHJvcGRvd25fX29wdGlvbi1saXN0XCIgcm9sZT1cImxpc3Rib3hcIj5cbiAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiaGFzT3B0aW9uc1wiPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -160,13 +160,13 @@ export let SelectComponent = class SelectComponent extends AutocompleteControl {
|
|
|
160
160
|
this.keyManager?.setActiveItem(activeIndex);
|
|
161
161
|
}
|
|
162
162
|
onDropdownOpen() {
|
|
163
|
-
|
|
163
|
+
super.onDropdownOpen();
|
|
164
164
|
if (!this.searchFieldEnabled) {
|
|
165
165
|
deferFn(() => this.focusSelectSearchField());
|
|
166
166
|
}
|
|
167
167
|
}
|
|
168
168
|
onDropdownClose() {
|
|
169
|
-
|
|
169
|
+
super.onDropdownClose();
|
|
170
170
|
this.element.nativeElement.blur();
|
|
171
171
|
if (this.searchFieldEnabled) {
|
|
172
172
|
this.searchFieldEnabled = false;
|
|
@@ -174,6 +174,7 @@ export let SelectComponent = class SelectComponent extends AutocompleteControl {
|
|
|
174
174
|
}
|
|
175
175
|
}
|
|
176
176
|
onDropdownClosed() {
|
|
177
|
+
super.onDropdownClosed();
|
|
177
178
|
this.searchField?.reset();
|
|
178
179
|
}
|
|
179
180
|
updateSelectedOption() {
|
|
@@ -217,7 +218,7 @@ export let SelectComponent = class SelectComponent extends AutocompleteControl {
|
|
|
217
218
|
provide: ODX_SEARCH_FILTER_HOST,
|
|
218
219
|
useExisting: SELECT_CONTROL,
|
|
219
220
|
},
|
|
220
|
-
], queries: [{ propertyName: "searchField", first: true, predicate: SelectInputControlDirective, descendants: true }, { propertyName: "options", predicate: SelectOptionComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-select__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4, outerPadding: 10, position: 'bottom-start' }\"\n [odxDropdownReferenceElement]=\"dropdownReferenceElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (
|
|
221
|
+
], queries: [{ propertyName: "searchField", first: true, predicate: SelectInputControlDirective, descendants: true }, { propertyName: "options", predicate: SelectOptionComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-select__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4, outerPadding: 10, position: 'bottom-start' }\"\n [odxDropdownReferenceElement]=\"dropdownReferenceElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownAfterOpen)=\"onDropdownOpened()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n>\n <ng-template [ngIf]=\"!searchFieldEnabled\" [ngIfElse]=\"searchFieldTemplate\">\n <div class=\"odx-select__value\" *ngIf=\"selectedOptionContent; else placeholderTemplate\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\"></ng-template>\n </div>\n </ng-template>\n <ng-template #placeholderTemplate>\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n </ng-template>\n <ng-template #searchFieldTemplate>\n <ng-content select=\"[odxSelectSearchField]\"></ng-content>\n </ng-template>\n <odx-icon class=\"odx-select__indicator\" name=\"chevron-down\" iconSet=\"core\"></odx-icon>\n</div>\n<ng-template #dropdownContent>\n <div class=\"odx-dropdown__option-list\" role=\"listbox\">\n <ng-template [ngIf]=\"hasOptions\" [ngIfElse]=\"noOptionsTemplate\">\n <ng-content></ng-content>\n </ng-template>\n <ng-template #noOptionsTemplate>\n <odx-select-option disabled notFoundMessage>\n <ng-template [odxDynamicView]=\"searchField?.notFoundContent\"></ng-template>\n </odx-select-option>\n </ng-template>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "directive", type: DropdownDirective, selector: "[odxDropdown]", inputs: ["odxDropdown", "odxDropdownDisabled", "odxDropdownShowLoader", "odxDropdownClickOutsideActive", "odxDropdownOptions", "odxDropdownReferenceElement", "odxDropdownTriggerElement", "odxDropdownHost", "odxDropdownOpenTrigger", "odxDropdownCloseTrigger"], outputs: ["odxDropdownBeforeOpen", "odxDropdownAfterOpen", "odxDropdownBeforeClose", "odxDropdownAfterClose"], exportAs: ["odxDropdown"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }, { kind: "component", type: SelectOptionComponent, selector: "odx-select-option, odx-option", inputs: ["notFoundMessage", "disabled"] }, { kind: "ngmodule", type: LoadingSpinnerModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
221
222
|
};
|
|
222
223
|
__decorate([
|
|
223
224
|
CSSModifier(),
|
|
@@ -240,7 +241,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
240
241
|
], host: {
|
|
241
242
|
'[tabindex]': 'searchFieldEnabled || isDisabled ? -1 : 0',
|
|
242
243
|
'[attr.aria-multiselectable]': 'multiple',
|
|
243
|
-
}, template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-select__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4, outerPadding: 10, position: 'bottom-start' }\"\n [odxDropdownReferenceElement]=\"dropdownReferenceElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (
|
|
244
|
+
}, template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-select__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4, outerPadding: 10, position: 'bottom-start' }\"\n [odxDropdownReferenceElement]=\"dropdownReferenceElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownAfterOpen)=\"onDropdownOpened()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n>\n <ng-template [ngIf]=\"!searchFieldEnabled\" [ngIfElse]=\"searchFieldTemplate\">\n <div class=\"odx-select__value\" *ngIf=\"selectedOptionContent; else placeholderTemplate\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\"></ng-template>\n </div>\n </ng-template>\n <ng-template #placeholderTemplate>\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n </ng-template>\n <ng-template #searchFieldTemplate>\n <ng-content select=\"[odxSelectSearchField]\"></ng-content>\n </ng-template>\n <odx-icon class=\"odx-select__indicator\" name=\"chevron-down\" iconSet=\"core\"></odx-icon>\n</div>\n<ng-template #dropdownContent>\n <div class=\"odx-dropdown__option-list\" role=\"listbox\">\n <ng-template [ngIf]=\"hasOptions\" [ngIfElse]=\"noOptionsTemplate\">\n <ng-content></ng-content>\n </ng-template>\n <ng-template #noOptionsTemplate>\n <odx-select-option disabled notFoundMessage>\n <ng-template [odxDynamicView]=\"searchField?.notFoundContent\"></ng-template>\n </odx-select-option>\n </ng-template>\n </div>\n</ng-template>\n" }]
|
|
244
245
|
}], propDecorators: { options: [{
|
|
245
246
|
type: ContentChildren,
|
|
246
247
|
args: [SelectOptionComponent, { descendants: true, emitDistinctChangesOnly: true }]
|
|
@@ -263,4 +264,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
263
264
|
type: HostListener,
|
|
264
265
|
args: ['keydown', ['$event']]
|
|
265
266
|
}] } });
|
|
266
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3NlbGVjdC9zcmMvbGliL3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9zZWxlY3Qvc3JjL2xpYi9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRCxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUVULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFtQixvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxx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aW1wb3J0IHsgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBib29sZWFuQXR0cmlidXRlLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgZm9yd2FyZFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBpbmplY3QsXG4gIElucHV0LFxuICBRdWVyeUxpc3QsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb3JlTW9kdWxlLCBJZGVudGl0eU1hdGNoZXIsIE9EWF9JREVOVElUWV9NQVRDSEVSIH0gZnJvbSAnQG9keC9hbmd1bGFyJztcbmltcG9ydCB7IEF1dG9jb21wbGV0ZUNvbnRyb2wsIE9EWF9TRUFSQ0hfRklMVEVSX0hPU1QgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2F1dG9jb21wbGV0ZS1jb250cm9sJztcbmltcG9ydCB7IER5bmFtaWNWaWV3RGlyZWN0aXZlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2Nkay9keW5hbWljLXZpZXcnO1xuaW1wb3J0IHsgRHJvcGRvd25EaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9kcm9wZG93bic7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvaWNvbic7XG5pbXBvcnQgeyBMb2FkaW5nU3Bpbm5lck1vZHVsZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2xvYWRpbmctc3Bpbm5lcic7XG5pbXBvcnQgeyBDU1NDb21wb25lbnQsIENTU01vZGlmaWVyIH0gZnJvbSAnQG9keC9hbmd1bGFyL2ludGVybmFsJztcbmltcG9ydCB7IGZyb21RdWVyeUxpc3QgfSBmcm9tICdAb2R4L2FuZ3VsYXIvcnhqcyc7XG5pbXBvcnQgeyBkZWZlckZuIH0gZnJvbSAnQG9keC9hbmd1bGFyL3V0aWxzJztcbmltcG9ydCB7IFNlbGVjdE9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBTZWxlY3RJbnB1dENvbnRyb2xEaXJlY3RpdmUgfSBmcm9tICcuL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgU0VMRUNUX0NPTlRST0wgfSBmcm9tICcuL3NlbGVjdC50b2tlbnMnO1xuXG4vKipcbiAqIFNlbGVjdENvbXBvbmVudCBwcm92aWRlcyBhbiBhZHZhbmNlZCBkcm9wZG93biBsaXN0IHRoYXQgc3VwcG9ydHMgYXV0b2NvbXBsZXRlLCBtdWx0aXBsZSBzZWxlY3Rpb24sXG4gKiBhbmQgYWNjZXNzaWJpbGl0eSBmZWF0dXJlcy4gSXQgZXh0ZW5kcyBBdXRvY29tcGxldGVDb250cm9sIGZvciBzZWFtbGVzcyBpbnRlZ3JhdGlvbiB3aXRoIEFuZ3VsYXIgZm9ybXMuXG4gKlxuICogQHRlbXBsYXRlIFQgLSBUaGUgdHlwZSBvZiB0aGUgdmFsdWUgc2VsZWN0ZWQgaW4gdGhlIHNlbGVjdC5cbiAqXG4gKiBAc2VlIHtBdXRvY29tcGxldGVDb250cm9sfVxuICovXG5AQ1NTQ29tcG9uZW50KCdzZWxlY3QnKVxuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnb2R4LXNlbGVjdCcsXG4gIGltcG9ydHM6IFtDb3JlTW9kdWxlLCBEcm9wZG93bkRpcmVjdGl2ZSwgSWNvbkNvbXBvbmVudCwgRHluYW1pY1ZpZXdEaXJlY3RpdmUsIFNlbGVjdE9wdGlvbkNvbXBvbmVudCwgTG9hZGluZ1NwaW5uZXJNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IFNFTEVDVF9DT05UUk9MLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2VsZWN0Q29tcG9uZW50KSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE9EWF9TRUFSQ0hfRklMVEVSX0hPU1QsXG4gICAgICB1c2VFeGlzdGluZzogU0VMRUNUX0NPTlRST0wsXG4gICAgfSxcbiAgXSxcbiAgaG9zdDoge1xuICAgICdbdGFiaW5kZXhdJzogJ3NlYXJjaEZpZWxkRW5hYmxlZCB8fCBpc0Rpc2FibGVkID8gLTEgOiAwJyxcbiAgICAnW2F0dHIuYXJpYS1tdWx0aXNlbGVjdGFibGVdJzogJ211bHRpcGxlJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0Q29tcG9uZW50PFQgPSB1bmtub3duPiBleHRlbmRzIEF1dG9jb21wbGV0ZUNvbnRyb2w8VCB8IG51bGw+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIHByb3RlY3RlZCBzZWFyY2hGaWVsZEVuYWJsZWQgPSBmYWxzZTtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkT3B0aW9uOiBTZWxlY3RPcHRpb25Db21wb25lbnQ8VD4gfCBudWxsID0gbnVsbDtcbiAgcHJvdGVjdGVkIHNlbGVjdGVkT3B0aW9uVGV4dDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihTZWxlY3RPcHRpb25Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUsIGVtaXREaXN0aW5jdENoYW5nZXNPbmx5OiB0cnVlIH0pXG4gIHByb3RlY3RlZCBvcHRpb25zPzogUXVlcnlMaXN0PFNlbGVjdE9wdGlvbkNvbXBvbmVudDxUPj47XG5cbiAgLyoqXG4gICAqIERpcmVjdGl2ZSBtYW5hZ2luZyB0aGUgc2VhcmNoIGlucHV0IGZpZWxkIHdpdGhpbiB0aGUgc2VsZWN0LlxuICAgKlxuICAgKiBAdHlwZSB7U2VsZWN0SW5wdXRDb250cm9sRGlyZWN0aXZlIHwgdW5kZWZpbmVkfVxuICAgKi9cbiAgQENvbnRlbnRDaGlsZChTZWxlY3RJbnB1dENvbnRyb2xEaXJlY3RpdmUpXG4gIHB1YmxpYyBzZWFyY2hGaWVsZD86IFNlbGVjdElucHV0Q29udHJvbERpcmVjdGl2ZTtcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY29udGVudCBvZiB0aGUgc2VsZWN0ZWQgb3B0aW9uIGZvciBkaXNwbGF5LiBUaGlzIGNhbiBiZSBhIHRlbXBsYXRlIG9yIHBsYWluIHRleHQuXG4gICAqXG4gICAqIEB0eXBlIHtUZW1wbGF0ZVJlZjx7ICRpbXBsaWNpdDogVCB8IG51bGwgfT4gfCBzdHJpbmcgfCBudWxsfVxuICAgKi9cbiAgcHVibGljIGdldCBzZWxlY3RlZE9wdGlvbkNvbnRlbnQoKTogVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IFQgfCBudWxsIH0+IHwgc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWRPcHRpb24gPyB0aGlzLnNlbGVjdGVkT3B0aW9uVGVtcGxhdGUgPz8gdGhpcy5zZWxlY3RlZE9wdGlvblRleHQgOiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqIFBsYWNlaG9sZGVyIHRleHQgZm9yIHRoZSBzZWxlY3QgaW5wdXQgd2hlbiBubyBvcHRpb24gaXMgc2VsZWN0ZWQuXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmd9XG4gICAqIEBkZWZhdWx0ICcnXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgcGxhY2Vob2xkZXIgPSAnJztcblxuICAvKipcbiAgICogU2V0cyB3aGV0aGVyIG11bHRpcGxlIG9wdGlvbnMgY2FuIGJlIHNlbGVjdGVkLlxuICAgKlxuICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBDU1NNb2RpZmllcigpXG4gIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuICBwdWJsaWMgbXVsdGlwbGUgPSBmYWxzZTtcblxuICAvKipcbiAgICogQ3VzdG9tIHRlbXBsYXRlIGZvciBkaXNwbGF5aW5nIHRoZSBzZWxlY3RlZCBvcHRpb24uXG4gICAqXG4gICAqIEB0eXBlIHtUZW1wbGF0ZVJlZjx7ICRpbXBsaWNpdDogVCB9PiB8IG51bGx9XG4gICAqIEBkZWZhdWx0IG51bGxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZE9wdGlvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8eyAkaW1wbGljaXQ6IFQgfT4gfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogRnVuY3Rpb24gdG8gZGV0ZXJtaW5lIGlmIHR3byBvcHRpb25zIGFyZSBpZGVudGljYWwsIHVzZWZ1bCBmb3IgZGV0ZWN0aW5nIGNoYW5nZXMgaW4gc2VsZWN0aW9uLlxuICAgKlxuICAgKiBAdHlwZSB7SWRlbnRpdHlNYXRjaGVyPFQgfCBudWxsPn1cbiAgICogQGRlZmF1bHQgT0RYX0RFRkFVTFRfSURFTlRJVFlfTUFUQ0hFUlxuICAgKlxuICAgKiBAZXhhbXBsZVxuICAgKiBgYGB0c1xuICAgKiAoaXRlbTEsIGl0ZW0yKSA9PiBpdGVtMS5pZCA9PT0gaXRlbTIuaWRcbiAgICogYGBgXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgaWRlbnRpdHlNYXRjaGVyOiBJZGVudGl0eU1hdGNoZXI8VCB8IG51bGw+ID0gaW5qZWN0KE9EWF9JREVOVElUWV9NQVRDSEVSKTtcblxuICBwdWJsaWMgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5vcHRpb25zKSByZXR1cm47XG5cbiAgICB0aGlzLmluaXRLZXlNYW5hZ2VyKHRoaXMub3B0aW9ucyk7XG4gICAgdGhpcy5oYW5kbGVRdWVyeUxpc3RPcHRpb24odGhpcy5vcHRpb25zKTtcbiAgICB0aGlzLmhhbmRsZVNlYXJjaEZpZWxkQ2hhbmdlcygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSB2YWx1ZSBvZiB0aGUgc2VsZWN0IGNoYW5nZXMuXG4gICAqXG4gICAqIEBwYXJhbSB7RnVuY3Rpb259IGZuIFRoZSBmdW5jdGlvbiB0byBiZSBjYWxsZWQgd2hlbiB0aGUgdmFsdWUgY2hhbmdlcy5cbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBwdWJsaWMgb3ZlcnJpZGUgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBUIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHN1cGVyLnJlZ2lzdGVyT25DaGFuZ2UoKHZhbHVlKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkT3B0aW9uKCk7XG4gICAgICBmbih2YWx1ZSk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0cyBhIGdpdmVuIG9wdGlvbiBhbmQgdXBkYXRlcyB0aGUgY29tcG9uZW50J3MgdmFsdWUgYWNjb3JkaW5nbHkuXG4gICAqXG4gICAqIEBwYXJhbSB7U2VsZWN0T3B0aW9uQ29tcG9uZW50PFQgfCBUW10+IHwgbnVsbH0gb3B0aW9uIFRoZSBvcHRpb24gdG8gc2VsZWN0LlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIHB1YmxpYyBzZWxlY3RPcHRpb24ob3B0aW9uPzogU2VsZWN0T3B0aW9uQ29tcG9uZW50PFQgfCBUW10+IHwgbnVsbCk6IHZvaWQge1xuICAgIGlmIChvcHRpb24gJiYgIW9wdGlvbi5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5vcHRpb25TZWxlY3RlZC5lbWl0KCk7XG4gICAgICBvcHRpb24uc3dpdGNoQ2hlY2tib3goKTtcbiAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5tdWx0aXBsZSA/IHRoaXMubXVsdGlwbGVTZWxlY3RWYWx1ZVJlc29sdmVyKG9wdGlvbiBhcyBTZWxlY3RPcHRpb25Db21wb25lbnQ8VD4pIDogb3B0aW9uLnZhbHVlO1xuICAgICAgdGhpcy51cGRhdGVWYWx1ZSgodmFsdWUgYXMgVCkgPz8gbnVsbCk7XG4gICAgfVxuXG4gICAgIXRoaXMubXVsdGlwbGUgJiYgIW9wdGlvbj8uZGlzYWJsZWQgJiYgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gIH1cblxuICAvKipcbiAgICogQ2hlY2tzIHdoZXRoZXIgYSBnaXZlbiBvcHRpb24gaXMgc2VsZWN0ZWQuXG4gICAqXG4gICAqIEBwYXJhbSB7U2VsZWN0T3B0aW9uQ29tcG9uZW50PFQgfCBUW10+fSBvcHRpb24gVGhlIG9wdGlvbiB0byBjaGVjay5cbiAgICogQHJldHVybnMge2Jvb2xlYW59IFdoZXRoZXIgdGhlIG9wdGlvbiBpcyBzZWxlY3RlZC5cbiAgICovXG4gIHB1YmxpYyBpc09wdGlvblNlbGVjdGVkKG9wdGlvbjogU2VsZWN0T3B0aW9uQ29tcG9uZW50PFQgfCBUW10+KTogYm9vbGVhbiB7XG4gICAgaWYgKG9wdGlvbikge1xuICAgICAgaWYgKHRoaXMubXVsdGlwbGUgJiYgQXJyYXkuaXNBcnJheSh0aGlzLnZhbHVlKSkge1xuICAgICAgICByZXR1cm4gKHRoaXMudmFsdWUgYXMgVFtdKS5zb21lKCh2YWwpID0+IHRoaXMuaWRlbnRpdHlNYXRjaGVyKG9wdGlvbi52YWx1ZSBhcyBULCB2YWwpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmlkZW50aXR5TWF0Y2hlcihvcHRpb24udmFsdWUgYXMgVCwgdGhpcy52YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBpbml0S2V5TWFuYWdlcihvcHRpb25zOiBRdWVyeUxpc3Q8U2VsZWN0T3B0aW9uQ29tcG9uZW50PFQ+Pik6IHZvaWQge1xuICAgIHRoaXMua2V5TWFuYWdlciA9IG5ldyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcihvcHRpb25zKS53aXRoSG9tZUFuZEVuZCgpLnNraXBQcmVkaWNhdGUoKGl0ZW0pID0+IGl0ZW0uZGlzYWJsZWQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZVF1ZXJ5TGlzdE9wdGlvbihvcHRpb25zOiBRdWVyeUxpc3Q8U2VsZWN0T3B0aW9uQ29tcG9uZW50PFQ+Pik6IHZvaWQge1xuICAgIGZyb21RdWVyeUxpc3Qob3B0aW9ucylcbiAgICAgIC5waXBlKHRoaXMudGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZE9wdGlvbigpO1xuICAgICAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgICAgICBkZWZlckZuKCgpID0+IHRoaXMuYWN0aXZhdGVTZWxlY3RlZE9wdGlvbigpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlU2VhcmNoRmllbGRDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoRmllbGQ/LnZhbHVlQ2hhbmdlJC5waXBlKHRoaXMudGFrZVVudGlsRGVzdHJveWVkKCkpLnN1YnNjcmliZSgoKSA9PiB0aGlzLnRyaWdnZXJDb250cm9sbGVyQ2hhbmdlKCkpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgcHJvdGVjdGVkIGhhbmRsZUNvbnRyb2xsZXJFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICh0aGlzLmlzTG9hZGluZyB8fCB0aGlzLnJlYWRvbmx5Q29udHJvbGxlcj8ucmVhZG9ubHkgfHwgIXRoaXMuaXNPcGVuKSByZXR1cm47XG4gICAgaWYgKHRoaXMuaGFzT3B0aW9ucykge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJyB8fCBldmVudC5rZXkgPT09ICdUYWInKSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGV2ZW50LnN0b3BJbW1lZGlhdGVQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLnNlbGVjdE9wdGlvbih0aGlzLmtleU1hbmFnZXI/LmFjdGl2ZUl0ZW0gYXMgU2VsZWN0T3B0aW9uQ29tcG9uZW50PFQ+IHwgdW5kZWZpbmVkKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmtleU1hbmFnZXI/Lm9uS2V5ZG93bihldmVudCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWN0aXZhdGVTZWxlY3RlZE9wdGlvbigpOiB2b2lkIHtcbiAgICBsZXQgYWN0aXZlSW5kZXggPSB0aGlzLm9wdGlvbnM/LnRvQXJyYXkoKS5maW5kSW5kZXgoKG9wdGlvbikgPT4gb3B0aW9uLmlzU2VsZWN0ZWQgJiYgIW9wdGlvbi5kaXNhYmxlZCk7XG4gICAgaWYgKCFhY3RpdmVJbmRleCB8fCBhY3RpdmVJbmRleCA9PT0gLTEpIHtcbiAgICAgIGFjdGl2ZUluZGV4ID0gdGhpcy5vcHRpb25zPy50b0FycmF5KCkuZmluZEluZGV4KChvcHRpb24pID0+ICFvcHRpb24uZGlzYWJsZWQpID8/IC0xO1xuICAgIH1cbiAgICB0aGlzLmtleU1hbmFnZXI/LnNldEFjdGl2ZUl0ZW0oYWN0aXZlSW5kZXgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG9uRHJvcGRvd25PcGVuKCk6IHZvaWQge1xuICAgIHRoaXMuYWN0aXZhdGVTZWxlY3RlZE9wdGlvbigpO1xuICAgIGlmICghdGhpcy5zZWFyY2hGaWVsZEVuYWJsZWQpIHtcbiAgICAgIGRlZmVyRm4oKCkgPT4gdGhpcy5mb2N1c1NlbGVjdFNlYXJjaEZpZWxkKCkpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvbkRyb3Bkb3duQ2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5kaXNhYmxlU21vb3RoU2Nyb2xsKCk7XG4gICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICAgIGlmICh0aGlzLnNlYXJjaEZpZWxkRW5hYmxlZCkge1xuICAgICAgdGhpcy5zZWFyY2hGaWVsZEVuYWJsZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50Py5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvbkRyb3Bkb3duQ2xvc2VkKCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoRmllbGQ/LnJlc2V0KCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZVNlbGVjdGVkT3B0aW9uKCk6IHZvaWQge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM/LnRvQXJyYXkoKTtcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uID0gb3B0aW9ucz8uZmluZCgob3B0aW9uKSA9PiBvcHRpb24uaXNTZWxlY3RlZCkgPz8gbnVsbDtcblxuICAgIGlmICh0aGlzLm11bHRpcGxlKSB7XG4gICAgICB0aGlzLm9wdGlvbnM/LmZvckVhY2goKG9wdGlvbikgPT4gKG9wdGlvbi5pc1NlbGVjdGVkID0gdGhpcy5pc09wdGlvblNlbGVjdGVkKG9wdGlvbikpKTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25UZXh0ID1cbiAgICAgICAgb3B0aW9uc1xuICAgICAgICAgID8uZmlsdGVyKCh7IGlzU2VsZWN0ZWQgfSkgPT4gaXNTZWxlY3RlZClcbiAgICAgICAgICAubWFwKChvcHRpb24pID0+IHRoaXMuc3RyaW5naWZ5Py4ob3B0aW9uLnZhbHVlKSA/PyBvcHRpb24uZ2V0TGFiZWwoKSlcbiAgICAgICAgICAuam9pbignLCAnKSA/PyBudWxsO1xuXG4gICAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZE9wdGlvblRleHQgPSB0aGlzLnNlbGVjdGVkT3B0aW9uID8gdGhpcy5zdHJpbmdpZnk/Lih0aGlzLnNlbGVjdGVkT3B0aW9uPy52YWx1ZSkgPz8gdGhpcy5zZWxlY3RlZE9wdGlvbi5nZXRMYWJlbCgpIDogbnVsbDtcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNTZWxlY3RTZWFyY2hGaWVsZCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaEZpZWxkRW5hYmxlZCA9ICEhdGhpcy5zZWFyY2hGaWVsZDtcbiAgICBkZWZlckZuKCgpID0+IHRoaXMuc2VhcmNoRmllbGQ/LmZvY3VzKCkpO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBtdWx0aXBsZVNlbGVjdFZhbHVlUmVzb2x2ZXIob3B0aW9uOiBTZWxlY3RPcHRpb25Db21wb25lbnQ8VD4pOiBUIHtcbiAgICBsZXQgdmFsdWUgPSBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpID8gKHRoaXMudmFsdWUgYXMgVFtdKSA6IFtdO1xuICAgIGlmIChvcHRpb24uaXNTZWxlY3RlZCkge1xuICAgICAgKHZhbHVlIGFzIFRbXSkucHVzaChvcHRpb24udmFsdWUgYXMgVCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gdmFsdWUuZmlsdGVyKCh2YWwpID0+ICF0aGlzLmlkZW50aXR5TWF0Y2hlcihvcHRpb24udmFsdWUgYXMgVCwgdmFsKSk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZSBhcyBUO1xuICB9XG59XG4iLCI8ZGl2XG4gIGFyaWEtaGFzcG9wdXA9XCJsaXN0Ym94XCJcbiAgY2xhc3M9XCJvZHgtc2VsZWN0X190cmlnZ2VyXCJcbiAgW29keERyb3Bkb3duXT1cImRyb3Bkb3duQ29udGVudFwiXG4gIFtvZHhEcm9wZG93bkRpc2FibGVkXT1cImlzRGlzYWJsZWQgfHwgaXNSZWFkb25seVwiXG4gIFtvZHhEcm9wZG93bk9wdGlvbnNdPVwieyBtYXRjaFJlZmVyZW5jZVdpZHRoOiB0cnVlLCBvZmZzZXQ6IDQsIG91dGVyUGFkZGluZzogMTAsIHBvc2l0aW9uOiAnYm90dG9tLXN0YXJ0JyB9XCJcbiAgW29keERyb3Bkb3duUmVmZXJlbmNlRWxlbWVudF09XCJkcm9wZG93blJlZmVyZW5jZUVsZW1lbnRcIlxuICBbb2R4RHJvcGRvd25TaG93TG9hZGVyXT1cImlzTG9hZGluZ1wiXG4gIChvZHhEcm9wZG93bkJlZm9yZU9wZW4pPVwib25Ecm9wZG93bk9wZW4oKVwiXG4gIChvZHhEcm9wZG93bkJlZm9yZUNsb3NlKT1cIm9uRHJvcGRvd25DbG9zZSgpXCJcbiAgKG9keERyb3Bkb3duQWZ0ZXJDbG9zZSk9XCJvbkRyb3Bkb3duQ2xvc2VkKClcIlxuICAob2R4RHJvcGRvd25BZnRlck9wZW4pPVwiZW5hYmxlU21vb3RoU2Nyb2xsKClcIlxuPlxuICA8bmctdGVtcGxhdGUgW25nSWZdPVwiIXNlYXJjaEZpZWxkRW5hYmxlZFwiIFtuZ0lmRWxzZV09XCJzZWFyY2hGaWVsZFRlbXBsYXRlXCI+XG4gICAgPGRpdiBjbGFzcz1cIm9keC1zZWxlY3RfX3ZhbHVlXCIgKm5nSWY9XCJzZWxlY3RlZE9wdGlvbkNvbnRlbnQ7IGVsc2UgcGxhY2Vob2xkZXJUZW1wbGF0ZVwiPlxuICAgICAgPG5nLXRlbXBsYXRlIFtvZHhEeW5hbWljVmlld109XCJzZWxlY3RlZE9wdGlvbkNvbnRlbnRcIiBbb2R4RHluYW1pY1ZpZXdDb250ZXh0XT1cInsgJGltcGxpY2l0OiB2YWx1ZSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNwbGFjZWhvbGRlclRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJvZHgtc2VsZWN0X19wbGFjZWhvbGRlclwiPlxuICAgICAge3sgcGxhY2Vob2xkZXIgfX1cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNzZWFyY2hGaWVsZFRlbXBsYXRlPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltvZHhTZWxlY3RTZWFyY2hGaWVsZF1cIj48L25nLWNvbnRlbnQ+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxvZHgtaWNvbiBjbGFzcz1cIm9keC1zZWxlY3RfX2luZGljYXRvclwiIG5hbWU9XCJjaGV2cm9uLWRvd25cIiBpY29uU2V0PVwiY29yZVwiPjwvb2R4LWljb24+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjZHJvcGRvd25Db250ZW50PlxuICA8ZGl2IGNsYXNzPVwib2R4LWRyb3Bkb3duX19vcHRpb24tbGlzdFwiIHJvbGU9XCJsaXN0Ym94XCI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImhhc09wdGlvbnNcIiBbbmdJZkVsc2VdPVwibm9PcHRpb25zVGVtcGxhdGVcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjbm9PcHRpb25zVGVtcGxhdGU+XG4gICAgICA8b2R4LXNlbGVjdC1vcHRpb24gZGlzYWJsZWQgbm90Rm91bmRNZXNzYWdlPlxuICAgICAgICA8bmctdGVtcGxhdGUgW29keER5bmFtaWNWaWV3XT1cInNlYXJjaEZpZWxkPy5ub3RGb3VuZENvbnRlbnRcIj48L25nLXRlbXBsYXRlPlxuICAgICAgPC9vZHgtc2VsZWN0LW9wdGlvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
267
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9jb21wb25lbnRzL3NlbGVjdC9zcmMvbGliL3NlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvY29tcG9uZW50cy9zZWxlY3Qvc3JjL2xpYi9zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRCxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsU0FBUyxFQUVULGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsVUFBVSxFQUFtQixvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNqRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUNwRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUNyRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxx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QyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIGJvb2xlYW5BdHRyaWJ1dGUsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvcmVNb2R1bGUsIElkZW50aXR5TWF0Y2hlciwgT0RYX0lERU5USVRZX01BVENIRVIgfSBmcm9tICdAb2R4L2FuZ3VsYXInO1xuaW1wb3J0IHsgQXV0b2NvbXBsZXRlQ29udHJvbCwgT0RYX1NFQVJDSF9GSUxURVJfSE9TVCB9IGZyb20gJ0BvZHgvYW5ndWxhci9jZGsvYXV0b2NvbXBsZXRlLWNvbnRyb2wnO1xuaW1wb3J0IHsgRHluYW1pY1ZpZXdEaXJlY3RpdmUgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY2RrL2R5bmFtaWMtdmlldyc7XG5pbXBvcnQgeyBEcm9wZG93bkRpcmVjdGl2ZSB9IGZyb20gJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9pY29uJztcbmltcG9ydCB7IExvYWRpbmdTcGlubmVyTW9kdWxlIH0gZnJvbSAnQG9keC9hbmd1bGFyL2NvbXBvbmVudHMvbG9hZGluZy1zcGlubmVyJztcbmltcG9ydCB7IENTU0NvbXBvbmVudCwgQ1NTTW9kaWZpZXIgfSBmcm9tICdAb2R4L2FuZ3VsYXIvaW50ZXJuYWwnO1xuaW1wb3J0IHsgZnJvbVF1ZXJ5TGlzdCB9IGZyb20gJ0BvZHgvYW5ndWxhci9yeGpzJztcbmltcG9ydCB7IGRlZmVyRm4gfSBmcm9tICdAb2R4L2FuZ3VsYXIvdXRpbHMnO1xuaW1wb3J0IHsgU2VsZWN0T3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7IFNlbGVjdElucHV0Q29udHJvbERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBTRUxFQ1RfQ09OVFJPTCB9IGZyb20gJy4vc2VsZWN0LnRva2Vucyc7XG5cbi8qKlxuICogU2VsZWN0Q29tcG9uZW50IHByb3ZpZGVzIGFuIGFkdmFuY2VkIGRyb3Bkb3duIGxpc3QgdGhhdCBzdXBwb3J0cyBhdXRvY29tcGxldGUsIG11bHRpcGxlIHNlbGVjdGlvbixcbiAqIGFuZCBhY2Nlc3NpYmlsaXR5IGZlYXR1cmVzLiBJdCBleHRlbmRzIEF1dG9jb21wbGV0ZUNvbnRyb2wgZm9yIHNlYW1sZXNzIGludGVncmF0aW9uIHdpdGggQW5ndWxhciBmb3Jtcy5cbiAqXG4gKiBAdGVtcGxhdGUgVCAtIFRoZSB0eXBlIG9mIHRoZSB2YWx1ZSBzZWxlY3RlZCBpbiB0aGUgc2VsZWN0LlxuICpcbiAqIEBzZWUge0F1dG9jb21wbGV0ZUNvbnRyb2x9XG4gKi9cbkBDU1NDb21wb25lbnQoJ3NlbGVjdCcpXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdvZHgtc2VsZWN0JyxcbiAgaW1wb3J0czogW0NvcmVNb2R1bGUsIERyb3Bkb3duRGlyZWN0aXZlLCBJY29uQ29tcG9uZW50LCBEeW5hbWljVmlld0RpcmVjdGl2ZSwgU2VsZWN0T3B0aW9uQ29tcG9uZW50LCBMb2FkaW5nU3Bpbm5lck1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogU0VMRUNUX0NPTlRST0wsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTZWxlY3RDb21wb25lbnQpLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogT0RYX1NFQVJDSF9GSUxURVJfSE9TVCxcbiAgICAgIHVzZUV4aXN0aW5nOiBTRUxFQ1RfQ09OVFJPTCxcbiAgICB9LFxuICBdLFxuICBob3N0OiB7XG4gICAgJ1t0YWJpbmRleF0nOiAnc2VhcmNoRmllbGRFbmFibGVkIHx8IGlzRGlzYWJsZWQgPyAtMSA6IDAnLFxuICAgICdbYXR0ci5hcmlhLW11bHRpc2VsZWN0YWJsZV0nOiAnbXVsdGlwbGUnLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb21wb25lbnQ8VCA9IHVua25vd24+IGV4dGVuZHMgQXV0b2NvbXBsZXRlQ29udHJvbDxUIHwgbnVsbD4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHJvdGVjdGVkIHNlYXJjaEZpZWxkRW5hYmxlZCA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRPcHRpb246IFNlbGVjdE9wdGlvbkNvbXBvbmVudDxUPiB8IG51bGwgPSBudWxsO1xuICBwcm90ZWN0ZWQgc2VsZWN0ZWRPcHRpb25UZXh0OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBAQ29udGVudENoaWxkcmVuKFNlbGVjdE9wdGlvbkNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSwgZW1pdERpc3RpbmN0Q2hhbmdlc09ubHk6IHRydWUgfSlcbiAgcHJvdGVjdGVkIG9wdGlvbnM/OiBRdWVyeUxpc3Q8U2VsZWN0T3B0aW9uQ29tcG9uZW50PFQ+PjtcblxuICAvKipcbiAgICogRGlyZWN0aXZlIG1hbmFnaW5nIHRoZSBzZWFyY2ggaW5wdXQgZmllbGQgd2l0aGluIHRoZSBzZWxlY3QuXG4gICAqXG4gICAqIEB0eXBlIHtTZWxlY3RJbnB1dENvbnRyb2xEaXJlY3RpdmUgfCB1bmRlZmluZWR9XG4gICAqL1xuICBAQ29udGVudENoaWxkKFNlbGVjdElucHV0Q29udHJvbERpcmVjdGl2ZSlcbiAgcHVibGljIHNlYXJjaEZpZWxkPzogU2VsZWN0SW5wdXRDb250cm9sRGlyZWN0aXZlO1xuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRoZSBjb250ZW50IG9mIHRoZSBzZWxlY3RlZCBvcHRpb24gZm9yIGRpc3BsYXkuIFRoaXMgY2FuIGJlIGEgdGVtcGxhdGUgb3IgcGxhaW4gdGV4dC5cbiAgICpcbiAgICogQHR5cGUge1RlbXBsYXRlUmVmPHsgJGltcGxpY2l0OiBUIHwgbnVsbCB9PiB8IHN0cmluZyB8IG51bGx9XG4gICAqL1xuICBwdWJsaWMgZ2V0IHNlbGVjdGVkT3B0aW9uQ29udGVudCgpOiBUZW1wbGF0ZVJlZjx7ICRpbXBsaWNpdDogVCB8IG51bGwgfT4gfCBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZE9wdGlvbiA/IHRoaXMuc2VsZWN0ZWRPcHRpb25UZW1wbGF0ZSA/PyB0aGlzLnNlbGVjdGVkT3B0aW9uVGV4dCA6IG51bGw7XG4gIH1cblxuICAvKipcbiAgICogUGxhY2Vob2xkZXIgdGV4dCBmb3IgdGhlIHNlbGVjdCBpbnB1dCB3aGVuIG5vIG9wdGlvbiBpcyBzZWxlY3RlZC5cbiAgICpcbiAgICogQHR5cGUge3N0cmluZ31cbiAgICogQGRlZmF1bHQgJydcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwbGFjZWhvbGRlciA9ICcnO1xuXG4gIC8qKlxuICAgKiBTZXRzIHdoZXRoZXIgbXVsdGlwbGUgb3B0aW9ucyBjYW4gYmUgc2VsZWN0ZWQuXG4gICAqXG4gICAqIEB0eXBlIHtib29sZWFufVxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQENTU01vZGlmaWVyKClcbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIHB1YmxpYyBtdWx0aXBsZSA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gdGVtcGxhdGUgZm9yIGRpc3BsYXlpbmcgdGhlIHNlbGVjdGVkIG9wdGlvbi5cbiAgICpcbiAgICogQHR5cGUge1RlbXBsYXRlUmVmPHsgJGltcGxpY2l0OiBUIH0+IHwgbnVsbH1cbiAgICogQGRlZmF1bHQgbnVsbFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNlbGVjdGVkT3B0aW9uVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx7ICRpbXBsaWNpdDogVCB9PiB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0byBkZXRlcm1pbmUgaWYgdHdvIG9wdGlvbnMgYXJlIGlkZW50aWNhbCwgdXNlZnVsIGZvciBkZXRlY3RpbmcgY2hhbmdlcyBpbiBzZWxlY3Rpb24uXG4gICAqXG4gICAqIEB0eXBlIHtJZGVudGl0eU1hdGNoZXI8VCB8IG51bGw+fVxuICAgKiBAZGVmYXVsdCBPRFhfREVGQVVMVF9JREVOVElUWV9NQVRDSEVSXG4gICAqXG4gICAqIEBleGFtcGxlXG4gICAqIGBgYHRzXG4gICAqIChpdGVtMSwgaXRlbTIpID0+IGl0ZW0xLmlkID09PSBpdGVtMi5pZFxuICAgKiBgYGBcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpZGVudGl0eU1hdGNoZXI6IElkZW50aXR5TWF0Y2hlcjxUIHwgbnVsbD4gPSBpbmplY3QoT0RYX0lERU5USVRZX01BVENIRVIpO1xuXG4gIHB1YmxpYyBvdmVycmlkZSBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLm9wdGlvbnMpIHJldHVybjtcblxuICAgIHRoaXMuaW5pdEtleU1hbmFnZXIodGhpcy5vcHRpb25zKTtcbiAgICB0aGlzLmhhbmRsZVF1ZXJ5TGlzdE9wdGlvbih0aGlzLm9wdGlvbnMpO1xuICAgIHRoaXMuaGFuZGxlU2VhcmNoRmllbGRDaGFuZ2VzKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVnaXN0ZXJzIGEgZnVuY3Rpb24gdG8gYmUgY2FsbGVkIHdoZW4gdGhlIHZhbHVlIG9mIHRoZSBzZWxlY3QgY2hhbmdlcy5cbiAgICpcbiAgICogQHBhcmFtIHtGdW5jdGlvbn0gZm4gVGhlIGZ1bmN0aW9uIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSB2YWx1ZSBjaGFuZ2VzLlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IFQgfCBudWxsKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgc3VwZXIucmVnaXN0ZXJPbkNoYW5nZSgodmFsdWUpID0+IHtcbiAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRPcHRpb24oKTtcbiAgICAgIGZuKHZhbHVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3RzIGEgZ2l2ZW4gb3B0aW9uIGFuZCB1cGRhdGVzIHRoZSBjb21wb25lbnQncyB2YWx1ZSBhY2NvcmRpbmdseS5cbiAgICpcbiAgICogQHBhcmFtIHtTZWxlY3RPcHRpb25Db21wb25lbnQ8VCB8IFRbXT4gfCBudWxsfSBvcHRpb24gVGhlIG9wdGlvbiB0byBzZWxlY3QuXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgcHVibGljIHNlbGVjdE9wdGlvbihvcHRpb24/OiBTZWxlY3RPcHRpb25Db21wb25lbnQ8VCB8IFRbXT4gfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKG9wdGlvbiAmJiAhb3B0aW9uLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLm9wdGlvblNlbGVjdGVkLmVtaXQoKTtcbiAgICAgIG9wdGlvbi5zd2l0Y2hDaGVja2JveCgpO1xuICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLm11bHRpcGxlID8gdGhpcy5tdWx0aXBsZVNlbGVjdFZhbHVlUmVzb2x2ZXIob3B0aW9uIGFzIFNlbGVjdE9wdGlvbkNvbXBvbmVudDxUPikgOiBvcHRpb24udmFsdWU7XG4gICAgICB0aGlzLnVwZGF0ZVZhbHVlKCh2YWx1ZSBhcyBUKSA/PyBudWxsKTtcbiAgICB9XG5cbiAgICAhdGhpcy5tdWx0aXBsZSAmJiAhb3B0aW9uPy5kaXNhYmxlZCAmJiB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVja3Mgd2hldGhlciBhIGdpdmVuIG9wdGlvbiBpcyBzZWxlY3RlZC5cbiAgICpcbiAgICogQHBhcmFtIHtTZWxlY3RPcHRpb25Db21wb25lbnQ8VCB8IFRbXT59IG9wdGlvbiBUaGUgb3B0aW9uIHRvIGNoZWNrLlxuICAgKiBAcmV0dXJucyB7Ym9vbGVhbn0gV2hldGhlciB0aGUgb3B0aW9uIGlzIHNlbGVjdGVkLlxuICAgKi9cbiAgcHVibGljIGlzT3B0aW9uU2VsZWN0ZWQob3B0aW9uOiBTZWxlY3RPcHRpb25Db21wb25lbnQ8VCB8IFRbXT4pOiBib29sZWFuIHtcbiAgICBpZiAob3B0aW9uKSB7XG4gICAgICBpZiAodGhpcy5tdWx0aXBsZSAmJiBBcnJheS5pc0FycmF5KHRoaXMudmFsdWUpKSB7XG4gICAgICAgIHJldHVybiAodGhpcy52YWx1ZSBhcyBUW10pLnNvbWUoKHZhbCkgPT4gdGhpcy5pZGVudGl0eU1hdGNoZXIob3B0aW9uLnZhbHVlIGFzIFQsIHZhbCkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMuaWRlbnRpdHlNYXRjaGVyKG9wdGlvbi52YWx1ZSBhcyBULCB0aGlzLnZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGluaXRLZXlNYW5hZ2VyKG9wdGlvbnM6IFF1ZXJ5TGlzdDxTZWxlY3RPcHRpb25Db21wb25lbnQ8VD4+KTogdm9pZCB7XG4gICAgdGhpcy5rZXlNYW5hZ2VyID0gbmV3IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyKG9wdGlvbnMpLndpdGhIb21lQW5kRW5kKCkuc2tpcFByZWRpY2F0ZSgoaXRlbSkgPT4gaXRlbS5kaXNhYmxlZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlUXVlcnlMaXN0T3B0aW9uKG9wdGlvbnM6IFF1ZXJ5TGlzdDxTZWxlY3RPcHRpb25Db21wb25lbnQ8VD4+KTogdm9pZCB7XG4gICAgZnJvbVF1ZXJ5TGlzdChvcHRpb25zKVxuICAgICAgLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkT3B0aW9uKCk7XG4gICAgICAgIGlmICh0aGlzLmlzT3Blbikge1xuICAgICAgICAgIGRlZmVyRm4oKCkgPT4gdGhpcy5hY3RpdmF0ZVNlbGVjdGVkT3B0aW9uKCkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVTZWFyY2hGaWVsZENoYW5nZXMoKTogdm9pZCB7XG4gICAgdGhpcy5zZWFyY2hGaWVsZD8udmFsdWVDaGFuZ2UkLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95ZWQoKSkuc3Vic2NyaWJlKCgpID0+IHRoaXMudHJpZ2dlckNvbnRyb2xsZXJDaGFuZ2UoKSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBwcm90ZWN0ZWQgaGFuZGxlQ29udHJvbGxlckV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nIHx8IHRoaXMucmVhZG9ubHlDb250cm9sbGVyPy5yZWFkb25seSB8fCAhdGhpcy5pc09wZW4pIHJldHVybjtcbiAgICBpZiAodGhpcy5oYXNPcHRpb25zKSB7XG4gICAgICBpZiAoZXZlbnQua2V5ID09PSAnRW50ZXInIHx8IGV2ZW50LmtleSA9PT0gJ1RhYicpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgZXZlbnQuc3RvcEltbWVkaWF0ZVByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0T3B0aW9uKHRoaXMua2V5TWFuYWdlcj8uYWN0aXZlSXRlbSBhcyBTZWxlY3RPcHRpb25Db21wb25lbnQ8VD4gfCB1bmRlZmluZWQpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfVxuICAgIHRoaXMua2V5TWFuYWdlcj8ub25LZXlkb3duKGV2ZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhY3RpdmF0ZVNlbGVjdGVkT3B0aW9uKCk6IHZvaWQge1xuICAgIGxldCBhY3RpdmVJbmRleCA9IHRoaXMub3B0aW9ucz8udG9BcnJheSgpLmZpbmRJbmRleCgob3B0aW9uKSA9PiBvcHRpb24uaXNTZWxlY3RlZCAmJiAhb3B0aW9uLmRpc2FibGVkKTtcbiAgICBpZiAoIWFjdGl2ZUluZGV4IHx8IGFjdGl2ZUluZGV4ID09PSAtMSkge1xuICAgICAgYWN0aXZlSW5kZXggPSB0aGlzLm9wdGlvbnM/LnRvQXJyYXkoKS5maW5kSW5kZXgoKG9wdGlvbikgPT4gIW9wdGlvbi5kaXNhYmxlZCkgPz8gLTE7XG4gICAgfVxuICAgIHRoaXMua2V5TWFuYWdlcj8uc2V0QWN0aXZlSXRlbShhY3RpdmVJbmRleCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgb25Ecm9wZG93bk9wZW4oKTogdm9pZCB7XG4gICAgc3VwZXIub25Ecm9wZG93bk9wZW4oKTtcbiAgICBpZiAoIXRoaXMuc2VhcmNoRmllbGRFbmFibGVkKSB7XG4gICAgICBkZWZlckZuKCgpID0+IHRoaXMuZm9jdXNTZWxlY3RTZWFyY2hGaWVsZCgpKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgb25Ecm9wZG93bkNsb3NlKCk6IHZvaWQge1xuICAgIHN1cGVyLm9uRHJvcGRvd25DbG9zZSgpO1xuICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmJsdXIoKTtcbiAgICBpZiAodGhpcy5zZWFyY2hGaWVsZEVuYWJsZWQpIHtcbiAgICAgIHRoaXMuc2VhcmNoRmllbGRFbmFibGVkID0gZmFsc2U7XG4gICAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudD8uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgb25Ecm9wZG93bkNsb3NlZCgpOiB2b2lkIHtcbiAgICBzdXBlci5vbkRyb3Bkb3duQ2xvc2VkKCk7XG4gICAgdGhpcy5zZWFyY2hGaWVsZD8ucmVzZXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlU2VsZWN0ZWRPcHRpb24oKTogdm9pZCB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucz8udG9BcnJheSgpO1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb24gPSBvcHRpb25zPy5maW5kKChvcHRpb24pID0+IG9wdGlvbi5pc1NlbGVjdGVkKSA/PyBudWxsO1xuXG4gICAgaWYgKHRoaXMubXVsdGlwbGUpIHtcbiAgICAgIHRoaXMub3B0aW9ucz8uZm9yRWFjaCgob3B0aW9uKSA9PiAob3B0aW9uLmlzU2VsZWN0ZWQgPSB0aGlzLmlzT3B0aW9uU2VsZWN0ZWQob3B0aW9uKSkpO1xuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvblRleHQgPVxuICAgICAgICBvcHRpb25zXG4gICAgICAgICAgPy5maWx0ZXIoKHsgaXNTZWxlY3RlZCB9KSA9PiBpc1NlbGVjdGVkKVxuICAgICAgICAgIC5tYXAoKG9wdGlvbikgPT4gdGhpcy5zdHJpbmdpZnk/LihvcHRpb24udmFsdWUpID8/IG9wdGlvbi5nZXRMYWJlbCgpKVxuICAgICAgICAgIC5qb2luKCcsICcpID8/IG51bGw7XG5cbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uVGV4dCA9IHRoaXMuc2VsZWN0ZWRPcHRpb24gPyB0aGlzLnN0cmluZ2lmeT8uKHRoaXMuc2VsZWN0ZWRPcHRpb24/LnZhbHVlKSA/PyB0aGlzLnNlbGVjdGVkT3B0aW9uLmdldExhYmVsKCkgOiBudWxsO1xuICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c1NlbGVjdFNlYXJjaEZpZWxkKCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoRmllbGRFbmFibGVkID0gISF0aGlzLnNlYXJjaEZpZWxkO1xuICAgIGRlZmVyRm4oKCkgPT4gdGhpcy5zZWFyY2hGaWVsZD8uZm9jdXMoKSk7XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rvci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBwcml2YXRlIG11bHRpcGxlU2VsZWN0VmFsdWVSZXNvbHZlcihvcHRpb246IFNlbGVjdE9wdGlvbkNvbXBvbmVudDxUPik6IFQge1xuICAgIGxldCB2YWx1ZSA9IEFycmF5LmlzQXJyYXkodGhpcy52YWx1ZSkgPyAodGhpcy52YWx1ZSBhcyBUW10pIDogW107XG4gICAgaWYgKG9wdGlvbi5pc1NlbGVjdGVkKSB7XG4gICAgICAodmFsdWUgYXMgVFtdKS5wdXNoKG9wdGlvbi52YWx1ZSBhcyBUKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdmFsdWUgPSB2YWx1ZS5maWx0ZXIoKHZhbCkgPT4gIXRoaXMuaWRlbnRpdHlNYXRjaGVyKG9wdGlvbi52YWx1ZSBhcyBULCB2YWwpKTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlIGFzIFQ7XG4gIH1cbn1cbiIsIjxkaXZcbiAgYXJpYS1oYXNwb3B1cD1cImxpc3Rib3hcIlxuICBjbGFzcz1cIm9keC1zZWxlY3RfX3RyaWdnZXJcIlxuICBbb2R4RHJvcGRvd25dPVwiZHJvcGRvd25Db250ZW50XCJcbiAgW29keERyb3Bkb3duRGlzYWJsZWRdPVwiaXNEaXNhYmxlZCB8fCBpc1JlYWRvbmx5XCJcbiAgW29keERyb3Bkb3duT3B0aW9uc109XCJ7IG1hdGNoUmVmZXJlbmNlV2lkdGg6IHRydWUsIG9mZnNldDogNCwgb3V0ZXJQYWRkaW5nOiAxMCwgcG9zaXRpb246ICdib3R0b20tc3RhcnQnIH1cIlxuICBbb2R4RHJvcGRvd25SZWZlcmVuY2VFbGVtZW50XT1cImRyb3Bkb3duUmVmZXJlbmNlRWxlbWVudFwiXG4gIFtvZHhEcm9wZG93blNob3dMb2FkZXJdPVwiaXNMb2FkaW5nXCJcbiAgKG9keERyb3Bkb3duQmVmb3JlT3Blbik9XCJvbkRyb3Bkb3duT3BlbigpXCJcbiAgKG9keERyb3Bkb3duQWZ0ZXJPcGVuKT1cIm9uRHJvcGRvd25PcGVuZWQoKVwiXG4gIChvZHhEcm9wZG93bkJlZm9yZUNsb3NlKT1cIm9uRHJvcGRvd25DbG9zZSgpXCJcbiAgKG9keERyb3Bkb3duQWZ0ZXJDbG9zZSk9XCJvbkRyb3Bkb3duQ2xvc2VkKClcIlxuPlxuICA8bmctdGVtcGxhdGUgW25nSWZdPVwiIXNlYXJjaEZpZWxkRW5hYmxlZFwiIFtuZ0lmRWxzZV09XCJzZWFyY2hGaWVsZFRlbXBsYXRlXCI+XG4gICAgPGRpdiBjbGFzcz1cIm9keC1zZWxlY3RfX3ZhbHVlXCIgKm5nSWY9XCJzZWxlY3RlZE9wdGlvbkNvbnRlbnQ7IGVsc2UgcGxhY2Vob2xkZXJUZW1wbGF0ZVwiPlxuICAgICAgPG5nLXRlbXBsYXRlIFtvZHhEeW5hbWljVmlld109XCJzZWxlY3RlZE9wdGlvbkNvbnRlbnRcIiBbb2R4RHluYW1pY1ZpZXdDb250ZXh0XT1cInsgJGltcGxpY2l0OiB2YWx1ZSB9XCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNwbGFjZWhvbGRlclRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJvZHgtc2VsZWN0X19wbGFjZWhvbGRlclwiPlxuICAgICAge3sgcGxhY2Vob2xkZXIgfX1cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbiAgPG5nLXRlbXBsYXRlICNzZWFyY2hGaWVsZFRlbXBsYXRlPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltvZHhTZWxlY3RTZWFyY2hGaWVsZF1cIj48L25nLWNvbnRlbnQ+XG4gIDwvbmctdGVtcGxhdGU+XG4gIDxvZHgtaWNvbiBjbGFzcz1cIm9keC1zZWxlY3RfX2luZGljYXRvclwiIG5hbWU9XCJjaGV2cm9uLWRvd25cIiBpY29uU2V0PVwiY29yZVwiPjwvb2R4LWljb24+XG48L2Rpdj5cbjxuZy10ZW1wbGF0ZSAjZHJvcGRvd25Db250ZW50PlxuICA8ZGl2IGNsYXNzPVwib2R4LWRyb3Bkb3duX19vcHRpb24tbGlzdFwiIHJvbGU9XCJsaXN0Ym94XCI+XG4gICAgPG5nLXRlbXBsYXRlIFtuZ0lmXT1cImhhc09wdGlvbnNcIiBbbmdJZkVsc2VdPVwibm9PcHRpb25zVGVtcGxhdGVcIj5cbiAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSAjbm9PcHRpb25zVGVtcGxhdGU+XG4gICAgICA8b2R4LXNlbGVjdC1vcHRpb24gZGlzYWJsZWQgbm90Rm91bmRNZXNzYWdlPlxuICAgICAgICA8bmctdGVtcGxhdGUgW29keER5bmFtaWNWaWV3XT1cInNlYXJjaEZpZWxkPy5ub3RGb3VuZENvbnRlbnRcIj48L25nLXRlbXBsYXRlPlxuICAgICAgPC9vZHgtc2VsZWN0LW9wdGlvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -54,6 +54,54 @@ class AutocompleteControl extends CustomFormControl {
|
|
|
54
54
|
* ```
|
|
55
55
|
*/
|
|
56
56
|
this.optionSelected = new EventEmitter();
|
|
57
|
+
/**
|
|
58
|
+
* Event emitted before the dropdown opens.
|
|
59
|
+
*
|
|
60
|
+
* @emits {void}
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```html
|
|
64
|
+
* <odx-select (beforeDropdownOpen)="onBeforeDropdownOpen()">
|
|
65
|
+
* </odx-select>
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
this.beforeDropdownOpen = new EventEmitter();
|
|
69
|
+
/**
|
|
70
|
+
* Event emitted after the dropdown opened.
|
|
71
|
+
*
|
|
72
|
+
* @emits {void}
|
|
73
|
+
*
|
|
74
|
+
* @example
|
|
75
|
+
* ```html
|
|
76
|
+
* <odx-select (afterDropdownOpen)="onAfterDropdownOpen()">
|
|
77
|
+
* </odx-select>
|
|
78
|
+
* ```
|
|
79
|
+
*/
|
|
80
|
+
this.afterDropdownOpen = new EventEmitter();
|
|
81
|
+
/**
|
|
82
|
+
* Event emitted before the dropdown closes.
|
|
83
|
+
*
|
|
84
|
+
* @emits {void}
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```html
|
|
88
|
+
* <odx-select (beforeDropdownClose)="onBeforeDropdownClose()">
|
|
89
|
+
* </odx-select>
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
this.beforeDropdownClose = new EventEmitter();
|
|
93
|
+
/**
|
|
94
|
+
* Event emitted after the dropdown closed.
|
|
95
|
+
*
|
|
96
|
+
* @emits {void}
|
|
97
|
+
*
|
|
98
|
+
* @example
|
|
99
|
+
* ```html
|
|
100
|
+
* <odx-select (afterDropdownClose)="onAfterDropdownClose()">
|
|
101
|
+
* </odx-select>
|
|
102
|
+
* ```
|
|
103
|
+
*/
|
|
104
|
+
this.afterDropdownClose = new EventEmitter();
|
|
57
105
|
detectControllerChanges(this).subscribe();
|
|
58
106
|
}
|
|
59
107
|
ngAfterViewInit() {
|
|
@@ -95,6 +143,21 @@ class AutocompleteControl extends CustomFormControl {
|
|
|
95
143
|
closeDropdown() {
|
|
96
144
|
this.dropdown?.close();
|
|
97
145
|
}
|
|
146
|
+
onDropdownOpen() {
|
|
147
|
+
this.beforeDropdownOpen.emit();
|
|
148
|
+
this.activateSelectedOption();
|
|
149
|
+
}
|
|
150
|
+
onDropdownOpened() {
|
|
151
|
+
this.afterDropdownOpen.emit();
|
|
152
|
+
this.enableSmoothScroll();
|
|
153
|
+
}
|
|
154
|
+
onDropdownClose() {
|
|
155
|
+
this.beforeDropdownClose.emit();
|
|
156
|
+
this.disableSmoothScroll();
|
|
157
|
+
}
|
|
158
|
+
onDropdownClosed() {
|
|
159
|
+
this.afterDropdownClose.emit();
|
|
160
|
+
}
|
|
98
161
|
handleFocusOut(event) {
|
|
99
162
|
if (this.isOpen) {
|
|
100
163
|
event.stopImmediatePropagation();
|
|
@@ -102,7 +165,7 @@ class AutocompleteControl extends CustomFormControl {
|
|
|
102
165
|
this.onTouched();
|
|
103
166
|
}
|
|
104
167
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AutocompleteControl, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
105
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "16.2.12", type: AutocompleteControl, isStandalone: true, inputs: { isLoading: ["isLoading", "isLoading", booleanAttribute], stringify: "stringify" }, outputs: { optionSelected: "optionSelected" }, host: { listeners: { "focusout": "handleFocusOut($event)" }, properties: { "class.is-open": "isOpen", "attr.aria-disabled": "isDisabled || null" } }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: DropdownDirective, descendants: true }], usesInheritance: true, ngImport: i0 }); }
|
|
168
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "16.2.12", type: AutocompleteControl, isStandalone: true, inputs: { isLoading: ["isLoading", "isLoading", booleanAttribute], stringify: "stringify" }, outputs: { optionSelected: "optionSelected", beforeDropdownOpen: "beforeDropdownOpen", afterDropdownOpen: "afterDropdownOpen", beforeDropdownClose: "beforeDropdownClose", afterDropdownClose: "afterDropdownClose" }, host: { listeners: { "focusout": "handleFocusOut($event)" }, properties: { "class.is-open": "isOpen", "attr.aria-disabled": "isDisabled || null" } }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: DropdownDirective, descendants: true }], usesInheritance: true, ngImport: i0 }); }
|
|
106
169
|
}
|
|
107
170
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AutocompleteControl, decorators: [{
|
|
108
171
|
type: Directive,
|
|
@@ -123,6 +186,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
123
186
|
type: Input
|
|
124
187
|
}], optionSelected: [{
|
|
125
188
|
type: Output
|
|
189
|
+
}], beforeDropdownOpen: [{
|
|
190
|
+
type: Output
|
|
191
|
+
}], afterDropdownOpen: [{
|
|
192
|
+
type: Output
|
|
193
|
+
}], beforeDropdownClose: [{
|
|
194
|
+
type: Output
|
|
195
|
+
}], afterDropdownClose: [{
|
|
196
|
+
type: Output
|
|
126
197
|
}], handleFocusOut: [{
|
|
127
198
|
type: HostListener,
|
|
128
199
|
args: ['focusout', ['$event']]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"odx-angular-cdk-autocomplete-control.mjs","sources":["../../../../libs/angular/cdk/autocomplete-control/src/lib/autocomplete-control.ts","../../../../libs/angular/cdk/autocomplete-control/src/lib/pipes/base-search-filter-pipe.ts","../../../../libs/angular/cdk/autocomplete-control/src/odx-angular-cdk-autocomplete-control.ts"],"sourcesContent":["import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n HostListener,\n inject,\n Input,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport { detectControllerChanges, StringifyFn } from '@odx/angular';\nimport { CustomFormControl, InputControlDirective } from '@odx/angular/cdk/custom-form-control';\nimport { OptionControl } from '@odx/angular/cdk/option-control';\nimport { DropdownDirective } from '@odx/angular/components/dropdown';\nimport { FormFieldComponent } from '@odx/angular/components/form-field';\nimport { injectElement, isFunction, untilDestroyed } from '@odx/angular/utils';\n\n/**\n * `AutocompleteControl` is a base directive to enhance an input field with autocomplete functionality,\n * providing keyboard navigation and selection for options displayed in a dropdown. It's designed to be extended\n * for specific implementations.\n * Extends `CustomFormControl` to provide form control behavior and state management.\n *\n * @see {CustomFormControl}\n *\n * This directive manages the open/close state of the dropdown, the loading state indication, and the interaction between\n * the autocomplete input and the dropdown options. It utilizes `ActiveDescendantKeyManager` for keyboard navigation among options.\n *\n * Extend this directive to create a fully functional autocomplete control tailored to your data type and UI requirements.\n *\n * @template T - The type of the items displayed in the autocomplete dropdown.\n */\n@Directive({\n standalone: true,\n host: {\n '[class.is-open]': 'isOpen',\n '[attr.aria-disabled]': 'isDisabled || null',\n },\n})\nexport abstract class AutocompleteControl<T> extends CustomFormControl<T | null> implements AfterViewInit {\n protected abstract readonly options?: QueryList<OptionControl<T>>;\n\n protected readonly changeDetector = inject(ChangeDetectorRef);\n protected readonly formField = inject(FormFieldComponent, { optional: true });\n protected readonly takeUntilDestroyed = untilDestroyed();\n\n protected keyManager?: ActiveDescendantKeyManager<OptionControl<T>>;\n protected smoothScrollEnabled = false;\n\n @ViewChild(DropdownDirective)\n protected readonly dropdown?: DropdownDirective;\n\n public abstract searchField?: InputControlDirective;\n\n public readonly element = injectElement();\n\n public get dropdownReferenceElement(): HTMLElement {\n return this.formField?.controlElement?.nativeElement ?? this.element?.nativeElement;\n }\n\n public get hasOptions(): boolean {\n return !!this.options?.length;\n }\n\n public get isOpen(): boolean {\n return !!this.dropdown?.isOpen;\n }\n\n @Input({ transform: booleanAttribute })\n public isLoading = false;\n\n /**\n * A function that converts an item of type T to a string representation.\n * Used by the AutocompleteControl component to display the selected item.\n *\n * @type {StringifyFn<T>}\n *\n * @example\n * ```ts\n * // Define a stringify function for a custom type Person\n * const stringifyPerson: StringifyFn<Person> = (person) => `${person.firstName} ${person.lastName}`;\n *\n * // Assign the stringify function to the AutocompleteControl\n * autocompleteControl.stringify = stringifyPerson;\n * ```\n */\n @Input()\n public stringify?: StringifyFn<T>;\n\n /**\n * Emits the selected option when an option is selected from the dropdown.\n *\n * @emits {T} - The selected option.\n *\n * @example\n * ```ts\n * autocompleteControl.optionSelected.subscribe((selectedOption) => {\n * console.log('Selected option:', selectedOption);\n * });\n * ```\n */\n @Output()\n public optionSelected = new EventEmitter<T>();\n\n constructor() {\n super(null);\n detectControllerChanges(this).subscribe();\n }\n\n public ngAfterViewInit(): void {\n if (!this.options) return;\n\n this.initKeyManager(this.options);\n this.handleQueryListOption(this.options);\n this.handleSearchFieldChanges();\n }\n\n /**\n * Scrolls the specified option element into view.\n * @param {OptionControl<T>} option - The option control containing the element to scroll into view.\n * @returns {void}\n *\n * @example\n * ```ts\n * const optionControl: OptionControl<string> = { element: myOptionElement };\n * scrollOptionIntoView(optionControl);\n * ```\n */\n public scrollOptionIntoView({ element }: OptionControl<T>): void {\n const behavior = this.smoothScrollEnabled ? 'smooth' : undefined;\n if (isFunction(element.nativeElement.scrollIntoView)) {\n element.nativeElement.scrollIntoView({ block: 'center', behavior });\n }\n }\n\n protected abstract handleQueryListOption(options: QueryList<OptionControl<T>>): void;\n\n protected abstract handleSearchFieldChanges(): void;\n\n protected abstract activateSelectedOption(): void;\n\n protected initKeyManager(options: QueryList<OptionControl<T>>): void {\n this.keyManager = new ActiveDescendantKeyManager(options).withHomeAndEnd();\n }\n\n protected disableSmoothScroll(): void {\n this.smoothScrollEnabled = false;\n }\n\n protected enableSmoothScroll(): void {\n this.smoothScrollEnabled = true;\n }\n\n protected openDropdown(): void {\n this.dropdown?.open();\n }\n\n protected closeDropdown(): void {\n this.dropdown?.close();\n }\n\n @HostListener('focusout', ['$event'])\n protected handleFocusOut(event: FocusEvent): void {\n if (this.isOpen) {\n event.stopImmediatePropagation();\n }\n this.onTouched();\n }\n}\n","import { inject, InjectionToken, PipeTransform } from '@angular/core';\nimport { ODX_STRINGIFY, ODX_STRING_SEARCH_HANDLER, StringifyFn, StringSearchHandler } from '@odx/angular';\nimport { InputControlDirective } from '@odx/angular/cdk/custom-form-control';\nimport { isFunction, Pure } from '@odx/angular/utils';\n\ninterface HostController {\n searchField?: InputControlDirective;\n stringify?: StringifyFn<unknown>;\n}\n\ninterface SearchFilterPipeOptions<T> {\n searchHandler?: StringSearchHandler;\n stringify?: StringifyFn<T>;\n}\n\nexport const ODX_SEARCH_FILTER_HOST = new InjectionToken<HostController>('@odx/angular/cdk/autocomplete-control::SearchFilterHost');\n\nexport abstract class BaseSearchFilterPipe implements PipeTransform {\n private readonly stringSearchHandler = inject(ODX_STRING_SEARCH_HANDLER);\n private readonly defaultStringify = inject(ODX_STRINGIFY);\n protected readonly hostController = inject(ODX_SEARCH_FILTER_HOST, { optional: true });\n\n protected get searchField(): InputControlDirective | undefined {\n return this.hostController?.searchField;\n }\n\n protected get stringify(): StringifyFn<unknown> {\n return this.hostController?.stringify ?? this.defaultStringify;\n }\n\n public transform<T>(items: T[] | null, optionsOrHandler?: SearchFilterPipeOptions<T> | StringSearchHandler): T[] | null {\n const searchHandler = this.isStringSearchHandler(optionsOrHandler) ? optionsOrHandler : optionsOrHandler?.searchHandler;\n const stringify = this.isStringSearchHandler(optionsOrHandler) ? null : optionsOrHandler?.stringify;\n if (this.searchField) {\n return this.filter(items, this.searchField.nativeElementValue, stringify ?? (this.stringify as never), searchHandler ?? this.stringSearchHandler);\n }\n return items;\n }\n\n protected queryHandler(query: string): string {\n return query?.trim() || '';\n }\n\n @Pure\n private filter<T>(items: T[] | null, query: string, stringify: StringifyFn<T>, searchHandler: StringSearchHandler): T[] | null {\n if (!items) return null;\n\n query = this.queryHandler(query);\n\n if (query === '') return items;\n\n return items.filter((item) => searchHandler(stringify(item), query));\n }\n\n private isStringSearchHandler<T>(optionsOrHandler?: SearchFilterPipeOptions<T> | StringSearchHandler): optionsOrHandler is StringSearchHandler {\n return isFunction(optionsOrHandler);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"odx-angular-cdk-autocomplete-control.mjs","sources":["../../../../libs/angular/cdk/autocomplete-control/src/lib/autocomplete-control.ts","../../../../libs/angular/cdk/autocomplete-control/src/lib/pipes/base-search-filter-pipe.ts","../../../../libs/angular/cdk/autocomplete-control/src/odx-angular-cdk-autocomplete-control.ts"],"sourcesContent":["import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectorRef,\n Directive,\n EventEmitter,\n HostListener,\n inject,\n Input,\n Output,\n QueryList,\n ViewChild,\n} from '@angular/core';\nimport { detectControllerChanges, StringifyFn } from '@odx/angular';\nimport { CustomFormControl, InputControlDirective } from '@odx/angular/cdk/custom-form-control';\nimport { OptionControl } from '@odx/angular/cdk/option-control';\nimport { DropdownDirective } from '@odx/angular/components/dropdown';\nimport { FormFieldComponent } from '@odx/angular/components/form-field';\nimport { injectElement, isFunction, untilDestroyed } from '@odx/angular/utils';\n\n/**\n * `AutocompleteControl` is a base directive to enhance an input field with autocomplete functionality,\n * providing keyboard navigation and selection for options displayed in a dropdown. It's designed to be extended\n * for specific implementations.\n * Extends `CustomFormControl` to provide form control behavior and state management.\n *\n * @see {CustomFormControl}\n *\n * This directive manages the open/close state of the dropdown, the loading state indication, and the interaction between\n * the autocomplete input and the dropdown options. It utilizes `ActiveDescendantKeyManager` for keyboard navigation among options.\n *\n * Extend this directive to create a fully functional autocomplete control tailored to your data type and UI requirements.\n *\n * @template T - The type of the items displayed in the autocomplete dropdown.\n */\n@Directive({\n standalone: true,\n host: {\n '[class.is-open]': 'isOpen',\n '[attr.aria-disabled]': 'isDisabled || null',\n },\n})\nexport abstract class AutocompleteControl<T> extends CustomFormControl<T | null> implements AfterViewInit {\n protected abstract readonly options?: QueryList<OptionControl<T>>;\n\n protected readonly changeDetector = inject(ChangeDetectorRef);\n protected readonly formField = inject(FormFieldComponent, { optional: true });\n protected readonly takeUntilDestroyed = untilDestroyed();\n\n protected keyManager?: ActiveDescendantKeyManager<OptionControl<T>>;\n protected smoothScrollEnabled = false;\n\n @ViewChild(DropdownDirective)\n protected readonly dropdown?: DropdownDirective;\n\n public abstract searchField?: InputControlDirective;\n\n public readonly element = injectElement();\n\n public get dropdownReferenceElement(): HTMLElement {\n return this.formField?.controlElement?.nativeElement ?? this.element?.nativeElement;\n }\n\n public get hasOptions(): boolean {\n return !!this.options?.length;\n }\n\n public get isOpen(): boolean {\n return !!this.dropdown?.isOpen;\n }\n\n @Input({ transform: booleanAttribute })\n public isLoading = false;\n\n /**\n * A function that converts an item of type T to a string representation.\n * Used by the AutocompleteControl component to display the selected item.\n *\n * @type {StringifyFn<T>}\n *\n * @example\n * ```ts\n * // Define a stringify function for a custom type Person\n * const stringifyPerson: StringifyFn<Person> = (person) => `${person.firstName} ${person.lastName}`;\n *\n * // Assign the stringify function to the AutocompleteControl\n * autocompleteControl.stringify = stringifyPerson;\n * ```\n */\n @Input()\n public stringify?: StringifyFn<T>;\n\n /**\n * Emits the selected option when an option is selected from the dropdown.\n *\n * @emits {T} - The selected option.\n *\n * @example\n * ```ts\n * autocompleteControl.optionSelected.subscribe((selectedOption) => {\n * console.log('Selected option:', selectedOption);\n * });\n * ```\n */\n @Output()\n public optionSelected = new EventEmitter<T>();\n\n /**\n * Event emitted before the dropdown opens.\n *\n * @emits {void}\n *\n * @example\n * ```html\n * <odx-select (beforeDropdownOpen)=\"onBeforeDropdownOpen()\">\n * </odx-select>\n * ```\n */\n @Output()\n public beforeDropdownOpen = new EventEmitter<void>();\n\n /**\n * Event emitted after the dropdown opened.\n *\n * @emits {void}\n *\n * @example\n * ```html\n * <odx-select (afterDropdownOpen)=\"onAfterDropdownOpen()\">\n * </odx-select>\n * ```\n */\n @Output()\n public afterDropdownOpen = new EventEmitter<void>();\n\n /**\n * Event emitted before the dropdown closes.\n *\n * @emits {void}\n *\n * @example\n * ```html\n * <odx-select (beforeDropdownClose)=\"onBeforeDropdownClose()\">\n * </odx-select>\n * ```\n */\n @Output()\n public beforeDropdownClose = new EventEmitter<void>();\n\n /**\n * Event emitted after the dropdown closed.\n *\n * @emits {void}\n *\n * @example\n * ```html\n * <odx-select (afterDropdownClose)=\"onAfterDropdownClose()\">\n * </odx-select>\n * ```\n */\n @Output()\n public afterDropdownClose = new EventEmitter<void>();\n\n constructor() {\n super(null);\n detectControllerChanges(this).subscribe();\n }\n\n public ngAfterViewInit(): void {\n if (!this.options) return;\n\n this.initKeyManager(this.options);\n this.handleQueryListOption(this.options);\n this.handleSearchFieldChanges();\n }\n\n /**\n * Scrolls the specified option element into view.\n * @param {OptionControl<T>} option - The option control containing the element to scroll into view.\n * @returns {void}\n *\n * @example\n * ```ts\n * const optionControl: OptionControl<string> = { element: myOptionElement };\n * scrollOptionIntoView(optionControl);\n * ```\n */\n public scrollOptionIntoView({ element }: OptionControl<T>): void {\n const behavior = this.smoothScrollEnabled ? 'smooth' : undefined;\n if (isFunction(element.nativeElement.scrollIntoView)) {\n element.nativeElement.scrollIntoView({ block: 'center', behavior });\n }\n }\n\n protected abstract handleQueryListOption(options: QueryList<OptionControl<T>>): void;\n\n protected abstract handleSearchFieldChanges(): void;\n\n protected abstract activateSelectedOption(): void;\n\n protected initKeyManager(options: QueryList<OptionControl<T>>): void {\n this.keyManager = new ActiveDescendantKeyManager(options).withHomeAndEnd();\n }\n\n protected disableSmoothScroll(): void {\n this.smoothScrollEnabled = false;\n }\n\n protected enableSmoothScroll(): void {\n this.smoothScrollEnabled = true;\n }\n\n protected openDropdown(): void {\n this.dropdown?.open();\n }\n\n protected closeDropdown(): void {\n this.dropdown?.close();\n }\n\n protected onDropdownOpen(): void {\n this.beforeDropdownOpen.emit();\n this.activateSelectedOption();\n }\n\n protected onDropdownOpened(): void {\n this.afterDropdownOpen.emit();\n this.enableSmoothScroll();\n }\n\n protected onDropdownClose(): void {\n this.beforeDropdownClose.emit();\n this.disableSmoothScroll();\n }\n\n protected onDropdownClosed(): void {\n this.afterDropdownClose.emit();\n }\n\n @HostListener('focusout', ['$event'])\n protected handleFocusOut(event: FocusEvent): void {\n if (this.isOpen) {\n event.stopImmediatePropagation();\n }\n this.onTouched();\n }\n}\n","import { inject, InjectionToken, PipeTransform } from '@angular/core';\nimport { ODX_STRINGIFY, ODX_STRING_SEARCH_HANDLER, StringifyFn, StringSearchHandler } from '@odx/angular';\nimport { InputControlDirective } from '@odx/angular/cdk/custom-form-control';\nimport { isFunction, Pure } from '@odx/angular/utils';\n\ninterface HostController {\n searchField?: InputControlDirective;\n stringify?: StringifyFn<unknown>;\n}\n\ninterface SearchFilterPipeOptions<T> {\n searchHandler?: StringSearchHandler;\n stringify?: StringifyFn<T>;\n}\n\nexport const ODX_SEARCH_FILTER_HOST = new InjectionToken<HostController>('@odx/angular/cdk/autocomplete-control::SearchFilterHost');\n\nexport abstract class BaseSearchFilterPipe implements PipeTransform {\n private readonly stringSearchHandler = inject(ODX_STRING_SEARCH_HANDLER);\n private readonly defaultStringify = inject(ODX_STRINGIFY);\n protected readonly hostController = inject(ODX_SEARCH_FILTER_HOST, { optional: true });\n\n protected get searchField(): InputControlDirective | undefined {\n return this.hostController?.searchField;\n }\n\n protected get stringify(): StringifyFn<unknown> {\n return this.hostController?.stringify ?? this.defaultStringify;\n }\n\n public transform<T>(items: T[] | null, optionsOrHandler?: SearchFilterPipeOptions<T> | StringSearchHandler): T[] | null {\n const searchHandler = this.isStringSearchHandler(optionsOrHandler) ? optionsOrHandler : optionsOrHandler?.searchHandler;\n const stringify = this.isStringSearchHandler(optionsOrHandler) ? null : optionsOrHandler?.stringify;\n if (this.searchField) {\n return this.filter(items, this.searchField.nativeElementValue, stringify ?? (this.stringify as never), searchHandler ?? this.stringSearchHandler);\n }\n return items;\n }\n\n protected queryHandler(query: string): string {\n return query?.trim() || '';\n }\n\n @Pure\n private filter<T>(items: T[] | null, query: string, stringify: StringifyFn<T>, searchHandler: StringSearchHandler): T[] | null {\n if (!items) return null;\n\n query = this.queryHandler(query);\n\n if (query === '') return items;\n\n return items.filter((item) => searchHandler(stringify(item), query));\n }\n\n private isStringSearchHandler<T>(optionsOrHandler?: SearchFilterPipeOptions<T> | StringSearchHandler): optionsOrHandler is StringSearchHandler {\n return isFunction(optionsOrHandler);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -92,7 +92,6 @@ let AutocompleteComponent = class AutocompleteComponent extends AutocompleteCont
|
|
|
92
92
|
this.defaultActiveOptionIndex = 0;
|
|
93
93
|
this.patchValueFlag = false;
|
|
94
94
|
this.clickOutsideDirective = inject(ClickOutsideDirective, { host: true });
|
|
95
|
-
this.dropdownOpenTriggers = [];
|
|
96
95
|
}
|
|
97
96
|
static { AutocompleteComponent_1 = this; }
|
|
98
97
|
ngAfterViewInit() {
|
|
@@ -196,9 +195,6 @@ let AutocompleteComponent = class AutocompleteComponent extends AutocompleteCont
|
|
|
196
195
|
activateSelectedOption() {
|
|
197
196
|
this.keyManager?.setActiveItem(this.defaultActiveOptionIndex);
|
|
198
197
|
}
|
|
199
|
-
onDropdownBeforeOpen() {
|
|
200
|
-
this.activateSelectedOption();
|
|
201
|
-
}
|
|
202
198
|
updateSearchField(value) {
|
|
203
199
|
if (!this.searchField)
|
|
204
200
|
return;
|
|
@@ -218,7 +214,7 @@ let AutocompleteComponent = class AutocompleteComponent extends AutocompleteCont
|
|
|
218
214
|
provide: ODX_SEARCH_FILTER_HOST,
|
|
219
215
|
useExisting: AUTOCOMPLETE_CONTROL,
|
|
220
216
|
},
|
|
221
|
-
], queries: [{ propertyName: "searchField", first: true, predicate: AutocompleteInputControlDirective, descendants: true }, { propertyName: "options", predicate: AutocompleteOptionComponent, descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i1.ClickOutsideDirective }], ngImport: i0, template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-autocomplete__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4, outerPadding: 10, position: 'bottom-start' }\"\n [odxDropdownReferenceElement]=\"dropdownReferenceElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n [odxDropdownOpenTrigger]=\"
|
|
217
|
+
], queries: [{ propertyName: "searchField", first: true, predicate: AutocompleteInputControlDirective, descendants: true }, { propertyName: "options", predicate: AutocompleteOptionComponent, descendants: true }], usesInheritance: true, hostDirectives: [{ directive: i1.ClickOutsideDirective }], ngImport: i0, template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-autocomplete__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4, outerPadding: 10, position: 'bottom-start' }\"\n [odxDropdownReferenceElement]=\"dropdownReferenceElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n [odxDropdownOpenTrigger]=\"[]\"\n [odxDropdownClickOutsideActive]=\"false\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownAfterOpen)=\"onDropdownOpened()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n>\n <ng-content select=\"input[odxAutocompleteControl]\"></ng-content>\n</div>\n<ng-template #dropdownContent>\n <div class=\"odx-dropdown__option-list\" role=\"listbox\">\n <ng-template [ngIf]=\"hasOptions\">\n <ng-content></ng-content>\n </ng-template>\n </div>\n</ng-template>\n", dependencies: [{ kind: "directive", type: DropdownDirective, selector: "[odxDropdown]", inputs: ["odxDropdown", "odxDropdownDisabled", "odxDropdownShowLoader", "odxDropdownClickOutsideActive", "odxDropdownOptions", "odxDropdownReferenceElement", "odxDropdownTriggerElement", "odxDropdownHost", "odxDropdownOpenTrigger", "odxDropdownCloseTrigger"], outputs: ["odxDropdownBeforeOpen", "odxDropdownAfterOpen", "odxDropdownBeforeClose", "odxDropdownAfterClose"], exportAs: ["odxDropdown"] }, { kind: "ngmodule", type: LoadingSpinnerModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
222
218
|
};
|
|
223
219
|
AutocompleteComponent = AutocompleteComponent_1 = __decorate([
|
|
224
220
|
CSSComponent('autocomplete')
|
|
@@ -234,7 +230,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
234
230
|
provide: ODX_SEARCH_FILTER_HOST,
|
|
235
231
|
useExisting: AUTOCOMPLETE_CONTROL,
|
|
236
232
|
},
|
|
237
|
-
], hostDirectives: [ClickOutsideDirective], template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-autocomplete__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4, outerPadding: 10, position: 'bottom-start' }\"\n [odxDropdownReferenceElement]=\"dropdownReferenceElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n [odxDropdownOpenTrigger]=\"
|
|
233
|
+
], hostDirectives: [ClickOutsideDirective], template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-autocomplete__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4, outerPadding: 10, position: 'bottom-start' }\"\n [odxDropdownReferenceElement]=\"dropdownReferenceElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n [odxDropdownOpenTrigger]=\"[]\"\n [odxDropdownClickOutsideActive]=\"false\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownAfterOpen)=\"onDropdownOpened()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n>\n <ng-content select=\"input[odxAutocompleteControl]\"></ng-content>\n</div>\n<ng-template #dropdownContent>\n <div class=\"odx-dropdown__option-list\" role=\"listbox\">\n <ng-template [ngIf]=\"hasOptions\">\n <ng-content></ng-content>\n </ng-template>\n </div>\n</ng-template>\n" }]
|
|
238
234
|
}], propDecorators: { options: [{
|
|
239
235
|
type: ContentChildren,
|
|
240
236
|
args: [AutocompleteOptionComponent, { descendants: true, emitDistinctChangesOnly: true }]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"odx-angular-components-autocomplete.mjs","sources":["../../../../libs/angular/components/autocomplete/src/lib/autocomplete.tokens.ts","../../../../libs/angular/components/autocomplete/src/lib/components/option/autocomplete-option.component.ts","../../../../libs/angular/components/autocomplete/src/lib/components/option/autocomplete-option.component.html","../../../../libs/angular/components/autocomplete/src/lib/directives/autocomplete-input-control.directive.ts","../../../../libs/angular/components/autocomplete/src/lib/autocomplete.component.ts","../../../../libs/angular/components/autocomplete/src/lib/autocomplete.component.html","../../../../libs/angular/components/autocomplete/src/lib/pipes/autocomplete-search-filter.pipe.ts","../../../../libs/angular/components/autocomplete/src/lib/autocomplete.module.ts","../../../../libs/angular/components/autocomplete/src/odx-angular-components-autocomplete.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { AutocompleteComponent } from './autocomplete.component';\n\nexport const AUTOCOMPLETE_CONTROL = new InjectionToken<AutocompleteComponent>('@odx/angular/components/autocomplete::AutocompleteComponent');\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { OptionControl } from '@odx/angular/cdk/option-control';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { AUTOCOMPLETE_CONTROL } from '../../autocomplete.tokens';\n\n/**\n * Represents an option component for the autocomplete control.\n *\n * @template T - The type of the option value.\n */\n@CSSComponent('autocomplete-option')\n@Component({\n standalone: true,\n selector: 'odx-autocomplete-option',\n imports: [CoreModule],\n templateUrl: './autocomplete-option.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AutocompleteOptionComponent<T> extends OptionControl<T> {\n protected readonly autocompleteControl = inject(AUTOCOMPLETE_CONTROL);\n\n /**\n * Sets the active styles for the option component.\n */\n public override setActiveStyles(): void {\n this.isActive = true;\n\n if (this.autocompleteControl.isOpen) {\n this.autocompleteControl.scrollOptionIntoView(this);\n }\n }\n\n protected selectOption(): void {\n this.autocompleteControl.selectOption(this);\n }\n}\n","<ng-content></ng-content>\n","import { Directive } from '@angular/core';\nimport { ReadonlyController, WithTabIndex } from '@odx/angular';\nimport { InputControlDirective } from '@odx/angular/cdk/custom-form-control';\nimport { CSSComponent } from '@odx/angular/internal';\n\n/**\n * Directive for controlling the input in an autocomplete component.\n * Extends the base InputControlDirective class.\n */\n@CSSComponent('autocomplete__control')\n@Directive({\n standalone: true,\n selector: 'input[odxAutocompleteControl]',\n host: {\n '[attr.readonly]': 'readonlyController?.readonly || null',\n },\n providers: [ReadonlyController.connect()],\n hostDirectives: [WithTabIndex],\n})\nexport class AutocompleteInputControlDirective extends InputControlDirective {\n protected readonly readonlyController = ReadonlyController.inject();\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n forwardRef,\n HostListener,\n inject,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ClickOutsideDirective } from '@odx/angular';\nimport { AutocompleteControl, ODX_SEARCH_FILTER_HOST } from '@odx/angular/cdk/autocomplete-control';\nimport { DropdownDirective } from '@odx/angular/components/dropdown';\nimport { LoadingSpinnerModule } from '@odx/angular/components/loading-spinner';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { deferFn } from '@odx/angular/utils';\nimport { filter, tap } from 'rxjs';\nimport { AUTOCOMPLETE_CONTROL } from './autocomplete.tokens';\nimport { AutocompleteOptionComponent } from './components';\nimport { AutocompleteInputControlDirective } from './directives';\n\n/**\n * Represents an autocomplete component that provides user interface for a dropdown list to select from as users type.\n * It extends `AutocompleteControl`, integrating custom logic for handling keyboard and mouse events,\n * managing the dropdown state, and updating the associated search field.\n *\n * @see {AutocompleteControl}\n *\n * @template T - The type of the value handled by the autocomplete.\n */\n@CSSComponent('autocomplete')\n@Component({\n standalone: true,\n selector: 'odx-autocomplete',\n imports: [DropdownDirective, AutocompleteOptionComponent, LoadingSpinnerModule],\n templateUrl: './autocomplete.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: AUTOCOMPLETE_CONTROL,\n useExisting: forwardRef(() => AutocompleteComponent),\n },\n {\n provide: ODX_SEARCH_FILTER_HOST,\n useExisting: AUTOCOMPLETE_CONTROL,\n },\n ],\n hostDirectives: [ClickOutsideDirective],\n})\nexport class AutocompleteComponent<T = unknown> extends AutocompleteControl<T | null> implements AfterViewInit {\n private readonly defaultActiveOptionIndex = 0;\n private patchValueFlag = false;\n protected readonly clickOutsideDirective = inject(ClickOutsideDirective, { host: true });\n\n /**\n * The list of autocomplete options.\n *\n * @type {QueryList<AutocompleteOptionComponent<T>> | undefined}\n */\n @ContentChildren(AutocompleteOptionComponent, { descendants: true, emitDistinctChangesOnly: true })\n public options?: QueryList<AutocompleteOptionComponent<T>>;\n\n /**\n * The search field input control.\n *\n * @type {AutocompleteInputControlDirective | undefined}\n */\n @ContentChild(AutocompleteInputControlDirective)\n public searchField?: AutocompleteInputControlDirective;\n\n public readonly dropdownOpenTriggers = [];\n\n public override ngAfterViewInit(): void {\n if (!this.options) return;\n if (this.value) this.updateSearchField(this.value);\n\n this.initKeyManager(this.options);\n this.handleQueryListOption(this.options);\n this.handleSearchFieldChanges();\n this.handleClickOutside();\n }\n\n /**\n * Selects an option, updates the value, updates the search field display,\n * emits the selected value, and closes the dropdown.\n *\n * @param {AutocompleteOptionComponent<T> | null} option - The option component to select. If the option is undefined or its value is undefined,\n * no action is taken.\n */\n public selectOption(option?: AutocompleteOptionComponent<T> | null): void {\n if (!option?.value) return;\n\n this.updateValue(option.value);\n this.updateSearchField(option.value);\n\n this.optionSelected.emit(option.value);\n\n this.closeDropdown();\n }\n\n /**\n * Resets the search field to its initial state and updates the value of the autocomplete\n * to an empty string or initial value.\n */\n public resetSearchField(): void {\n this.updateValue('' as T);\n this.searchField?.reset();\n }\n\n protected handleQueryListOption(options: QueryList<AutocompleteOptionComponent<T>>): void {\n options.changes\n .pipe(\n tap(() => deferFn(() => this.updateDropdownState())),\n filter(() => this.isOpen),\n this.takeUntilDestroyed(),\n )\n .subscribe(() => {\n deferFn(() => this.activateSelectedOption());\n });\n }\n\n protected handleSearchFieldChanges(): void {\n this.searchField?.valueChange$.pipe(this.takeUntilDestroyed()).subscribe(() => this.triggerControllerChange());\n }\n\n protected handleClickOutside(): void {\n this.clickOutsideDirective.odxClickOutside.pipe(this.takeUntilDestroyed()).subscribe(() => this.clickOutside());\n }\n\n protected clickOutside(): void {\n this.closeDropdown();\n this.blurSelectSearchField();\n }\n\n protected updateDropdownState(): void {\n if (this.patchValueFlag) {\n this.patchValueFlag = false;\n return;\n }\n\n if (this.isOpen && !this.hasOptions) {\n this.closeDropdown();\n } else if (!this.isOpen && this.hasOptions) {\n this.openDropdown();\n }\n }\n\n @HostListener('click')\n protected handleClickEvent() {\n if (this.isLoading && this.isOpen) {\n this.closeDropdown();\n this.blurSelectSearchField();\n return;\n }\n\n if (this.isReadonly || this.isDisabled) return;\n\n if (!this.isOpen && this.hasOptions) {\n this.openDropdown();\n }\n }\n\n @HostListener('keydown', ['$event'])\n protected handleKeyboardEvent(event: KeyboardEvent) {\n if (this.isReadonly || this.isDisabled) return;\n\n if (this.isOpen && this.hasOptions) {\n if (event.key === 'Enter' || event.key === 'Tab') {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.selectOption(this.keyManager?.activeItem as AutocompleteOptionComponent<T> | undefined);\n return;\n }\n }\n\n if (event.key === 'Enter' && !!this.value) {\n this.optionSelected.emit(this.value as T);\n return;\n }\n\n if (!this.isOpen && event.key === 'Tab') {\n return;\n }\n\n if (!this.isOpen && this.hasOptions) {\n this.openDropdown();\n return;\n }\n\n this.keyManager?.onKeydown(event);\n }\n\n protected activateSelectedOption(): void {\n this.keyManager?.setActiveItem(this.defaultActiveOptionIndex);\n }\n\n protected onDropdownBeforeOpen(): void {\n this.activateSelectedOption();\n }\n\n private updateSearchField(value: T): void {\n if (!this.searchField) return;\n this.patchValueFlag = true;\n this.searchField.nativeElementValue = this.stringify?.(value) ?? (value as string);\n }\n\n private blurSelectSearchField(): void {\n this.searchField?.blur();\n }\n}\n","<div\n aria-haspopup=\"listbox\"\n class=\"odx-autocomplete__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4, outerPadding: 10, position: 'bottom-start' }\"\n [odxDropdownReferenceElement]=\"dropdownReferenceElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n [odxDropdownOpenTrigger]=\"dropdownOpenTriggers\"\n [odxDropdownClickOutsideActive]=\"false\"\n (odxDropdownBeforeOpen)=\"onDropdownBeforeOpen()\"\n (odxDropdownAfterOpen)=\"enableSmoothScroll()\"\n (odxDropdownBeforeClose)=\"disableSmoothScroll()\"\n>\n <ng-content select=\"input[odxAutocompleteControl]\"></ng-content>\n</div>\n<ng-template #dropdownContent>\n <div class=\"odx-dropdown__option-list\" role=\"listbox\">\n <ng-template [ngIf]=\"hasOptions\">\n <ng-content></ng-content>\n </ng-template>\n </div>\n</ng-template>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { BaseSearchFilterPipe } from '@odx/angular/cdk/autocomplete-control';\n\n@Pipe({\n pure: false,\n name: 'odxAutocompleteSearchFilter',\n standalone: true,\n})\nexport class AutocompleteSearchFilterPipe extends BaseSearchFilterPipe implements PipeTransform {}\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { AutocompleteComponent } from './autocomplete.component';\nimport { AutocompleteOptionComponent } from './components';\nimport { AutocompleteInputControlDirective } from './directives';\nimport { AutocompleteSearchFilterPipe } from './pipes';\n\nconst modules = [AutocompleteComponent, AutocompleteInputControlDirective, AutocompleteSearchFilterPipe, AutocompleteOptionComponent];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class AutocompleteModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"odx-angular-components-autocomplete.mjs","sources":["../../../../libs/angular/components/autocomplete/src/lib/autocomplete.tokens.ts","../../../../libs/angular/components/autocomplete/src/lib/components/option/autocomplete-option.component.ts","../../../../libs/angular/components/autocomplete/src/lib/components/option/autocomplete-option.component.html","../../../../libs/angular/components/autocomplete/src/lib/directives/autocomplete-input-control.directive.ts","../../../../libs/angular/components/autocomplete/src/lib/autocomplete.component.ts","../../../../libs/angular/components/autocomplete/src/lib/autocomplete.component.html","../../../../libs/angular/components/autocomplete/src/lib/pipes/autocomplete-search-filter.pipe.ts","../../../../libs/angular/components/autocomplete/src/lib/autocomplete.module.ts","../../../../libs/angular/components/autocomplete/src/odx-angular-components-autocomplete.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { AutocompleteComponent } from './autocomplete.component';\n\nexport const AUTOCOMPLETE_CONTROL = new InjectionToken<AutocompleteComponent>('@odx/angular/components/autocomplete::AutocompleteComponent');\n","import { ChangeDetectionStrategy, Component, inject, ViewEncapsulation } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { OptionControl } from '@odx/angular/cdk/option-control';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { AUTOCOMPLETE_CONTROL } from '../../autocomplete.tokens';\n\n/**\n * Represents an option component for the autocomplete control.\n *\n * @template T - The type of the option value.\n */\n@CSSComponent('autocomplete-option')\n@Component({\n standalone: true,\n selector: 'odx-autocomplete-option',\n imports: [CoreModule],\n templateUrl: './autocomplete-option.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class AutocompleteOptionComponent<T> extends OptionControl<T> {\n protected readonly autocompleteControl = inject(AUTOCOMPLETE_CONTROL);\n\n /**\n * Sets the active styles for the option component.\n */\n public override setActiveStyles(): void {\n this.isActive = true;\n\n if (this.autocompleteControl.isOpen) {\n this.autocompleteControl.scrollOptionIntoView(this);\n }\n }\n\n protected selectOption(): void {\n this.autocompleteControl.selectOption(this);\n }\n}\n","<ng-content></ng-content>\n","import { Directive } from '@angular/core';\nimport { ReadonlyController, WithTabIndex } from '@odx/angular';\nimport { InputControlDirective } from '@odx/angular/cdk/custom-form-control';\nimport { CSSComponent } from '@odx/angular/internal';\n\n/**\n * Directive for controlling the input in an autocomplete component.\n * Extends the base InputControlDirective class.\n */\n@CSSComponent('autocomplete__control')\n@Directive({\n standalone: true,\n selector: 'input[odxAutocompleteControl]',\n host: {\n '[attr.readonly]': 'readonlyController?.readonly || null',\n },\n providers: [ReadonlyController.connect()],\n hostDirectives: [WithTabIndex],\n})\nexport class AutocompleteInputControlDirective extends InputControlDirective {\n protected readonly readonlyController = ReadonlyController.inject();\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n forwardRef,\n HostListener,\n inject,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\nimport { ClickOutsideDirective } from '@odx/angular';\nimport { AutocompleteControl, ODX_SEARCH_FILTER_HOST } from '@odx/angular/cdk/autocomplete-control';\nimport { DropdownDirective } from '@odx/angular/components/dropdown';\nimport { LoadingSpinnerModule } from '@odx/angular/components/loading-spinner';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { deferFn } from '@odx/angular/utils';\nimport { filter, tap } from 'rxjs';\nimport { AUTOCOMPLETE_CONTROL } from './autocomplete.tokens';\nimport { AutocompleteOptionComponent } from './components';\nimport { AutocompleteInputControlDirective } from './directives';\n\n/**\n * Represents an autocomplete component that provides user interface for a dropdown list to select from as users type.\n * It extends `AutocompleteControl`, integrating custom logic for handling keyboard and mouse events,\n * managing the dropdown state, and updating the associated search field.\n *\n * @see {AutocompleteControl}\n *\n * @template T - The type of the value handled by the autocomplete.\n */\n@CSSComponent('autocomplete')\n@Component({\n standalone: true,\n selector: 'odx-autocomplete',\n imports: [DropdownDirective, AutocompleteOptionComponent, LoadingSpinnerModule],\n templateUrl: './autocomplete.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: AUTOCOMPLETE_CONTROL,\n useExisting: forwardRef(() => AutocompleteComponent),\n },\n {\n provide: ODX_SEARCH_FILTER_HOST,\n useExisting: AUTOCOMPLETE_CONTROL,\n },\n ],\n hostDirectives: [ClickOutsideDirective],\n})\nexport class AutocompleteComponent<T = unknown> extends AutocompleteControl<T | null> implements AfterViewInit {\n private readonly defaultActiveOptionIndex = 0;\n private patchValueFlag = false;\n protected readonly clickOutsideDirective = inject(ClickOutsideDirective, { host: true });\n\n /**\n * The list of autocomplete options.\n *\n * @type {QueryList<AutocompleteOptionComponent<T>> | undefined}\n */\n @ContentChildren(AutocompleteOptionComponent, { descendants: true, emitDistinctChangesOnly: true })\n public options?: QueryList<AutocompleteOptionComponent<T>>;\n\n /**\n * The search field input control.\n *\n * @type {AutocompleteInputControlDirective | undefined}\n */\n @ContentChild(AutocompleteInputControlDirective)\n public searchField?: AutocompleteInputControlDirective;\n\n public override ngAfterViewInit(): void {\n if (!this.options) return;\n if (this.value) this.updateSearchField(this.value);\n\n this.initKeyManager(this.options);\n this.handleQueryListOption(this.options);\n this.handleSearchFieldChanges();\n this.handleClickOutside();\n }\n\n /**\n * Selects an option, updates the value, updates the search field display,\n * emits the selected value, and closes the dropdown.\n *\n * @param {AutocompleteOptionComponent<T> | null} option - The option component to select. If the option is undefined or its value is undefined,\n * no action is taken.\n */\n public selectOption(option?: AutocompleteOptionComponent<T> | null): void {\n if (!option?.value) return;\n\n this.updateValue(option.value);\n this.updateSearchField(option.value);\n\n this.optionSelected.emit(option.value);\n\n this.closeDropdown();\n }\n\n /**\n * Resets the search field to its initial state and updates the value of the autocomplete\n * to an empty string or initial value.\n */\n public resetSearchField(): void {\n this.updateValue('' as T);\n this.searchField?.reset();\n }\n\n protected handleQueryListOption(options: QueryList<AutocompleteOptionComponent<T>>): void {\n options.changes\n .pipe(\n tap(() => deferFn(() => this.updateDropdownState())),\n filter(() => this.isOpen),\n this.takeUntilDestroyed(),\n )\n .subscribe(() => {\n deferFn(() => this.activateSelectedOption());\n });\n }\n\n protected handleSearchFieldChanges(): void {\n this.searchField?.valueChange$.pipe(this.takeUntilDestroyed()).subscribe(() => this.triggerControllerChange());\n }\n\n protected handleClickOutside(): void {\n this.clickOutsideDirective.odxClickOutside.pipe(this.takeUntilDestroyed()).subscribe(() => this.clickOutside());\n }\n\n protected clickOutside(): void {\n this.closeDropdown();\n this.blurSelectSearchField();\n }\n\n protected updateDropdownState(): void {\n if (this.patchValueFlag) {\n this.patchValueFlag = false;\n return;\n }\n\n if (this.isOpen && !this.hasOptions) {\n this.closeDropdown();\n } else if (!this.isOpen && this.hasOptions) {\n this.openDropdown();\n }\n }\n\n @HostListener('click')\n protected handleClickEvent() {\n if (this.isLoading && this.isOpen) {\n this.closeDropdown();\n this.blurSelectSearchField();\n return;\n }\n\n if (this.isReadonly || this.isDisabled) return;\n\n if (!this.isOpen && this.hasOptions) {\n this.openDropdown();\n }\n }\n\n @HostListener('keydown', ['$event'])\n protected handleKeyboardEvent(event: KeyboardEvent) {\n if (this.isReadonly || this.isDisabled) return;\n\n if (this.isOpen && this.hasOptions) {\n if (event.key === 'Enter' || event.key === 'Tab') {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.selectOption(this.keyManager?.activeItem as AutocompleteOptionComponent<T> | undefined);\n return;\n }\n }\n\n if (event.key === 'Enter' && !!this.value) {\n this.optionSelected.emit(this.value as T);\n return;\n }\n\n if (!this.isOpen && event.key === 'Tab') {\n return;\n }\n\n if (!this.isOpen && this.hasOptions) {\n this.openDropdown();\n return;\n }\n\n this.keyManager?.onKeydown(event);\n }\n\n protected activateSelectedOption(): void {\n this.keyManager?.setActiveItem(this.defaultActiveOptionIndex);\n }\n\n private updateSearchField(value: T): void {\n if (!this.searchField) return;\n this.patchValueFlag = true;\n this.searchField.nativeElementValue = this.stringify?.(value) ?? (value as string);\n }\n\n private blurSelectSearchField(): void {\n this.searchField?.blur();\n }\n}\n","<div\n aria-haspopup=\"listbox\"\n class=\"odx-autocomplete__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4, outerPadding: 10, position: 'bottom-start' }\"\n [odxDropdownReferenceElement]=\"dropdownReferenceElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n [odxDropdownOpenTrigger]=\"[]\"\n [odxDropdownClickOutsideActive]=\"false\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownAfterOpen)=\"onDropdownOpened()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n>\n <ng-content select=\"input[odxAutocompleteControl]\"></ng-content>\n</div>\n<ng-template #dropdownContent>\n <div class=\"odx-dropdown__option-list\" role=\"listbox\">\n <ng-template [ngIf]=\"hasOptions\">\n <ng-content></ng-content>\n </ng-template>\n </div>\n</ng-template>\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { BaseSearchFilterPipe } from '@odx/angular/cdk/autocomplete-control';\n\n@Pipe({\n pure: false,\n name: 'odxAutocompleteSearchFilter',\n standalone: true,\n})\nexport class AutocompleteSearchFilterPipe extends BaseSearchFilterPipe implements PipeTransform {}\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { AutocompleteComponent } from './autocomplete.component';\nimport { AutocompleteOptionComponent } from './components';\nimport { AutocompleteInputControlDirective } from './directives';\nimport { AutocompleteSearchFilterPipe } from './pipes';\n\nconst modules = [AutocompleteComponent, AutocompleteInputControlDirective, AutocompleteSearchFilterPipe, AutocompleteOptionComponent];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class AutocompleteModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -327,13 +327,13 @@ let SelectComponent = class SelectComponent extends AutocompleteControl {
|
|
|
327
327
|
this.keyManager?.setActiveItem(activeIndex);
|
|
328
328
|
}
|
|
329
329
|
onDropdownOpen() {
|
|
330
|
-
|
|
330
|
+
super.onDropdownOpen();
|
|
331
331
|
if (!this.searchFieldEnabled) {
|
|
332
332
|
deferFn(() => this.focusSelectSearchField());
|
|
333
333
|
}
|
|
334
334
|
}
|
|
335
335
|
onDropdownClose() {
|
|
336
|
-
|
|
336
|
+
super.onDropdownClose();
|
|
337
337
|
this.element.nativeElement.blur();
|
|
338
338
|
if (this.searchFieldEnabled) {
|
|
339
339
|
this.searchFieldEnabled = false;
|
|
@@ -341,6 +341,7 @@ let SelectComponent = class SelectComponent extends AutocompleteControl {
|
|
|
341
341
|
}
|
|
342
342
|
}
|
|
343
343
|
onDropdownClosed() {
|
|
344
|
+
super.onDropdownClosed();
|
|
344
345
|
this.searchField?.reset();
|
|
345
346
|
}
|
|
346
347
|
updateSelectedOption() {
|
|
@@ -384,7 +385,7 @@ let SelectComponent = class SelectComponent extends AutocompleteControl {
|
|
|
384
385
|
provide: ODX_SEARCH_FILTER_HOST,
|
|
385
386
|
useExisting: SELECT_CONTROL,
|
|
386
387
|
},
|
|
387
|
-
], queries: [{ propertyName: "searchField", first: true, predicate: SelectInputControlDirective, descendants: true }, { propertyName: "options", predicate: SelectOptionComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-select__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4, outerPadding: 10, position: 'bottom-start' }\"\n [odxDropdownReferenceElement]=\"dropdownReferenceElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (
|
|
388
|
+
], queries: [{ propertyName: "searchField", first: true, predicate: SelectInputControlDirective, descendants: true }, { propertyName: "options", predicate: SelectOptionComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-select__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4, outerPadding: 10, position: 'bottom-start' }\"\n [odxDropdownReferenceElement]=\"dropdownReferenceElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownAfterOpen)=\"onDropdownOpened()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n>\n <ng-template [ngIf]=\"!searchFieldEnabled\" [ngIfElse]=\"searchFieldTemplate\">\n <div class=\"odx-select__value\" *ngIf=\"selectedOptionContent; else placeholderTemplate\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\"></ng-template>\n </div>\n </ng-template>\n <ng-template #placeholderTemplate>\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n </ng-template>\n <ng-template #searchFieldTemplate>\n <ng-content select=\"[odxSelectSearchField]\"></ng-content>\n </ng-template>\n <odx-icon class=\"odx-select__indicator\" name=\"chevron-down\" iconSet=\"core\"></odx-icon>\n</div>\n<ng-template #dropdownContent>\n <div class=\"odx-dropdown__option-list\" role=\"listbox\">\n <ng-template [ngIf]=\"hasOptions\" [ngIfElse]=\"noOptionsTemplate\">\n <ng-content></ng-content>\n </ng-template>\n <ng-template #noOptionsTemplate>\n <odx-select-option disabled notFoundMessage>\n <ng-template [odxDynamicView]=\"searchField?.notFoundContent\"></ng-template>\n </odx-select-option>\n </ng-template>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: CoreModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DisabledController, selector: "[disabled]", inputs: ["disabled"] }, { kind: "directive", type: DropdownDirective, selector: "[odxDropdown]", inputs: ["odxDropdown", "odxDropdownDisabled", "odxDropdownShowLoader", "odxDropdownClickOutsideActive", "odxDropdownOptions", "odxDropdownReferenceElement", "odxDropdownTriggerElement", "odxDropdownHost", "odxDropdownOpenTrigger", "odxDropdownCloseTrigger"], outputs: ["odxDropdownBeforeOpen", "odxDropdownAfterOpen", "odxDropdownBeforeClose", "odxDropdownAfterClose"], exportAs: ["odxDropdown"] }, { kind: "component", type: IconComponent, selector: "odx-icon", inputs: ["inline", "size", "name", "iconSet", "identifier"] }, { kind: "directive", type: DynamicViewDirective, selector: "ng-template[odxDynamicView]", inputs: ["odxDynamicView", "odxDynamicViewInjector", "odxDynamicViewContext"] }, { kind: "component", type: SelectOptionComponent, selector: "odx-select-option, odx-option", inputs: ["notFoundMessage", "disabled"] }, { kind: "ngmodule", type: LoadingSpinnerModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
388
389
|
};
|
|
389
390
|
__decorate([
|
|
390
391
|
CSSModifier(),
|
|
@@ -407,7 +408,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
407
408
|
], host: {
|
|
408
409
|
'[tabindex]': 'searchFieldEnabled || isDisabled ? -1 : 0',
|
|
409
410
|
'[attr.aria-multiselectable]': 'multiple',
|
|
410
|
-
}, template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-select__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4, outerPadding: 10, position: 'bottom-start' }\"\n [odxDropdownReferenceElement]=\"dropdownReferenceElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (
|
|
411
|
+
}, template: "<div\n aria-haspopup=\"listbox\"\n class=\"odx-select__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4, outerPadding: 10, position: 'bottom-start' }\"\n [odxDropdownReferenceElement]=\"dropdownReferenceElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownAfterOpen)=\"onDropdownOpened()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n>\n <ng-template [ngIf]=\"!searchFieldEnabled\" [ngIfElse]=\"searchFieldTemplate\">\n <div class=\"odx-select__value\" *ngIf=\"selectedOptionContent; else placeholderTemplate\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\"></ng-template>\n </div>\n </ng-template>\n <ng-template #placeholderTemplate>\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n </ng-template>\n <ng-template #searchFieldTemplate>\n <ng-content select=\"[odxSelectSearchField]\"></ng-content>\n </ng-template>\n <odx-icon class=\"odx-select__indicator\" name=\"chevron-down\" iconSet=\"core\"></odx-icon>\n</div>\n<ng-template #dropdownContent>\n <div class=\"odx-dropdown__option-list\" role=\"listbox\">\n <ng-template [ngIf]=\"hasOptions\" [ngIfElse]=\"noOptionsTemplate\">\n <ng-content></ng-content>\n </ng-template>\n <ng-template #noOptionsTemplate>\n <odx-select-option disabled notFoundMessage>\n <ng-template [odxDynamicView]=\"searchField?.notFoundContent\"></ng-template>\n </odx-select-option>\n </ng-template>\n </div>\n</ng-template>\n" }]
|
|
411
412
|
}], propDecorators: { options: [{
|
|
412
413
|
type: ContentChildren,
|
|
413
414
|
args: [SelectOptionComponent, { descendants: true, emitDistinctChangesOnly: true }]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"odx-angular-components-select.mjs","sources":["../../../../libs/angular/components/select/src/lib/select.tokens.ts","../../../../libs/angular/components/select/src/lib/components/select-option/select-option.component.ts","../../../../libs/angular/components/select/src/lib/components/select-option/select-option.component.html","../../../../libs/angular/components/select/src/lib/directives/select-input-control.directive.ts","../../../../libs/angular/components/select/src/lib/pipes/select-search-filter.pipe.ts","../../../../libs/angular/components/select/src/lib/select.component.ts","../../../../libs/angular/components/select/src/lib/select.component.html","../../../../libs/angular/components/select/src/lib/select.module.ts","../../../../libs/angular/components/select/src/odx-angular-components-select.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { SelectComponent } from './select.component';\n\nexport const SELECT_CONTROL = new InjectionToken<SelectComponent>('@odx/angular/components/select::SelectComponent');\n","import { booleanAttribute, ChangeDetectionStrategy, Component, inject, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { CoreModule, detectControllerChanges } from '@odx/angular';\nimport { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { OptionControl } from '@odx/angular/cdk/option-control';\nimport { CheckboxComponent } from '@odx/angular/components/checkbox';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { SELECT_CONTROL } from '../../select.tokens';\n\n/**\n * SelectOptionComponent is a customizable option element for use within a SelectComponent.\n * It supports complex data structures, integration with checkbox components for multi-select,\n * and can be disabled as needed.\n * It extends OptionControl to provide additional behavior specific to select components.\n *\n * @template T - The type of the value selected in the option.\n * @see {OptionControl}\n */\n@CSSComponent('select-option')\n@Component({\n standalone: true,\n selector: 'odx-select-option, odx-option',\n imports: [CoreModule, DynamicViewDirective, CheckboxComponent],\n templateUrl: './select-option.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.aria-disabled]': 'disabled || null',\n '[class.is-disabled]': 'disabled',\n },\n})\nexport class SelectOptionComponent<T = unknown> extends OptionControl<T> implements OnInit {\n private _isDisabled = false;\n\n protected readonly selectControl = inject(SELECT_CONTROL);\n\n /**\n * Indicates whether the option is currently selected.\n *\n * @type {boolean}\n */\n public isSelected = false;\n\n /**\n * Indicates whether a not found message should be displayed, used typically for search results.\n *\n * @type {boolean}\n * @default false\n */\n @Input({ transform: booleanAttribute })\n public notFoundMessage = false;\n\n /**\n * Setter for the disabled state of the select option.\n *\n * @param value - The new value for the disabled state.\n */\n @Input({ transform: booleanAttribute })\n public set disabled(value: boolean) {\n this._isDisabled = value;\n }\n\n /**\n * Getter for the disabled state of the select option.\n *\n * @returns {boolean} The current disabled state of the option.\n */\n public get disabled(): boolean {\n return this._isDisabled;\n }\n\n constructor() {\n super();\n\n detectControllerChanges(this.selectControl)\n .pipe(this.takeUntilDestroyed())\n .subscribe(() => {\n this.isSelected = this.selectControl.isOptionSelected(this);\n });\n }\n\n public ngOnInit(): void {\n this.isSelected = this.selectControl.isOptionSelected(this);\n }\n\n /**\n * Sets active styles for the option when it becomes the target of keyboard navigation or mouse hover.\n */\n public override setActiveStyles(): void {\n if (this.disabled) return;\n\n this.isActive = true;\n\n if (this.selectControl.isOpen) {\n this.selectControl.scrollOptionIntoView(this);\n } else {\n this.selectControl.selectOption(this);\n }\n }\n\n /**\n * Toggles the selection state of the option when it is part of a multi-select control.\n */\n public switchCheckbox(): void {\n if (this.selectControl.multiple) {\n this.isSelected = !this.isSelected;\n this.cdr.markForCheck();\n }\n }\n\n protected selectOption(): void {\n this.selectControl.selectOption(this);\n }\n}\n","<odx-checkbox [checked]=\"isSelected\" [disabled]=\"disabled\" *ngIf=\"selectControl.multiple && !notFoundMessage; else single\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</odx-checkbox>\n\n<ng-template #single>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</ng-template>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { InputControlDirective } from '@odx/angular/cdk/custom-form-control';\nimport { DynamicContent } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent } from '@odx/angular/internal';\n\n/**\n * SelectInputControlDirective extends InputControlDirective to provide additional behavior\n * specific to select components with search functionality. This directive manages interactions\n * within the search input field, such as resetting the field content upon specific key events.\n *\n * @see {InputControlDirective}\n */\n@CSSComponent('select__control')\n@Directive({\n standalone: true,\n selector: 'input[odxSelectSearchField]',\n})\nexport class SelectInputControlDirective extends InputControlDirective {\n /**\n * Dynamic content to be displayed when no matching search results are found.\n * This can be specified as HTML content or a string.\n *\n * @type {DynamicContent | null}\n * @default null\n */\n @Input('odxSelectSearchField')\n public notFoundContent: DynamicContent | null = null;\n\n @HostListener('keydown.delete')\n protected handleDelete(): void {\n this.reset();\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { BaseSearchFilterPipe } from '@odx/angular/cdk/autocomplete-control';\n/**\n * SelectSearchFilterPipe extends BaseSearchFilterPipe to provide search filtering functionality\n * specifically for select components. It filters options based on the input query, supporting\n * complex filtering logic as defined in the BaseSearchFilterPipe.\n *\n * This pipe is not pure, meaning it updates and reevaluates when inputs change or when\n * impure actions occur in the application.\n *\n * @see {BaseSearchFilterPipe}\n */\n@Pipe({\n pure: false,\n name: 'odxSelectSearchFilter',\n standalone: true,\n})\nexport class SelectSearchFilterPipe extends BaseSearchFilterPipe implements PipeTransform {}\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n forwardRef,\n HostListener,\n inject,\n Input,\n QueryList,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { CoreModule, IdentityMatcher, ODX_IDENTITY_MATCHER } from '@odx/angular';\nimport { AutocompleteControl, ODX_SEARCH_FILTER_HOST } from '@odx/angular/cdk/autocomplete-control';\nimport { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { DropdownDirective } from '@odx/angular/components/dropdown';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { LoadingSpinnerModule } from '@odx/angular/components/loading-spinner';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { fromQueryList } from '@odx/angular/rxjs';\nimport { deferFn } from '@odx/angular/utils';\nimport { SelectOptionComponent } from './components';\nimport { SelectInputControlDirective } from './directives';\nimport { SELECT_CONTROL } from './select.tokens';\n\n/**\n * SelectComponent provides an advanced dropdown list that supports autocomplete, multiple selection,\n * and accessibility features. It extends AutocompleteControl for seamless integration with Angular forms.\n *\n * @template T - The type of the value selected in the select.\n *\n * @see {AutocompleteControl}\n */\n@CSSComponent('select')\n@Component({\n standalone: true,\n selector: 'odx-select',\n imports: [CoreModule, DropdownDirective, IconComponent, DynamicViewDirective, SelectOptionComponent, LoadingSpinnerModule],\n templateUrl: './select.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: SELECT_CONTROL,\n useExisting: forwardRef(() => SelectComponent),\n },\n {\n provide: ODX_SEARCH_FILTER_HOST,\n useExisting: SELECT_CONTROL,\n },\n ],\n host: {\n '[tabindex]': 'searchFieldEnabled || isDisabled ? -1 : 0',\n '[attr.aria-multiselectable]': 'multiple',\n },\n})\nexport class SelectComponent<T = unknown> extends AutocompleteControl<T | null> implements AfterViewInit {\n protected searchFieldEnabled = false;\n protected selectedOption: SelectOptionComponent<T> | null = null;\n protected selectedOptionText: string | null = null;\n\n @ContentChildren(SelectOptionComponent, { descendants: true, emitDistinctChangesOnly: true })\n protected options?: QueryList<SelectOptionComponent<T>>;\n\n /**\n * Directive managing the search input field within the select.\n *\n * @type {SelectInputControlDirective | undefined}\n */\n @ContentChild(SelectInputControlDirective)\n public searchField?: SelectInputControlDirective;\n\n /**\n * Returns the content of the selected option for display. This can be a template or plain text.\n *\n * @type {TemplateRef<{ $implicit: T | null }> | string | null}\n */\n public get selectedOptionContent(): TemplateRef<{ $implicit: T | null }> | string | null {\n return this.selectedOption ? this.selectedOptionTemplate ?? this.selectedOptionText : null;\n }\n\n /**\n * Placeholder text for the select input when no option is selected.\n *\n * @type {string}\n * @default ''\n */\n @Input()\n public placeholder = '';\n\n /**\n * Sets whether multiple options can be selected.\n *\n * @type {boolean}\n * @default false\n */\n @CSSModifier()\n @Input({ transform: booleanAttribute })\n public multiple = false;\n\n /**\n * Custom template for displaying the selected option.\n *\n * @type {TemplateRef<{ $implicit: T }> | null}\n * @default null\n */\n @Input()\n public selectedOptionTemplate?: TemplateRef<{ $implicit: T }> | null = null;\n\n /**\n * Function to determine if two options are identical, useful for detecting changes in selection.\n *\n * @type {IdentityMatcher<T | null>}\n * @default ODX_DEFAULT_IDENTITY_MATCHER\n *\n * @example\n * ```ts\n * (item1, item2) => item1.id === item2.id\n * ```\n */\n @Input()\n public identityMatcher: IdentityMatcher<T | null> = inject(ODX_IDENTITY_MATCHER);\n\n public override ngAfterViewInit(): void {\n if (!this.options) return;\n\n this.initKeyManager(this.options);\n this.handleQueryListOption(this.options);\n this.handleSearchFieldChanges();\n }\n\n /**\n * Registers a function to be called when the value of the select changes.\n *\n * @param {Function} fn The function to be called when the value changes.\n * @returns {void}\n */\n public override registerOnChange(fn: (value: T | null) => void): void {\n super.registerOnChange((value) => {\n this.updateSelectedOption();\n fn(value);\n });\n }\n\n /**\n * Selects a given option and updates the component's value accordingly.\n *\n * @param {SelectOptionComponent<T | T[]> | null} option The option to select.\n * @returns {void}\n */\n public selectOption(option?: SelectOptionComponent<T | T[]> | null): void {\n if (option && !option.disabled) {\n this.optionSelected.emit();\n option.switchCheckbox();\n const value = this.multiple ? this.multipleSelectValueResolver(option as SelectOptionComponent<T>) : option.value;\n this.updateValue((value as T) ?? null);\n }\n\n !this.multiple && !option?.disabled && this.closeDropdown();\n }\n\n /**\n * Checks whether a given option is selected.\n *\n * @param {SelectOptionComponent<T | T[]>} option The option to check.\n * @returns {boolean} Whether the option is selected.\n */\n public isOptionSelected(option: SelectOptionComponent<T | T[]>): boolean {\n if (option) {\n if (this.multiple && Array.isArray(this.value)) {\n return (this.value as T[]).some((val) => this.identityMatcher(option.value as T, val));\n }\n return this.identityMatcher(option.value as T, this.value);\n }\n return false;\n }\n\n protected override initKeyManager(options: QueryList<SelectOptionComponent<T>>): void {\n this.keyManager = new ActiveDescendantKeyManager(options).withHomeAndEnd().skipPredicate((item) => item.disabled);\n }\n\n protected handleQueryListOption(options: QueryList<SelectOptionComponent<T>>): void {\n fromQueryList(options)\n .pipe(this.takeUntilDestroyed())\n .subscribe(() => {\n this.updateSelectedOption();\n if (this.isOpen) {\n deferFn(() => this.activateSelectedOption());\n }\n });\n }\n\n protected handleSearchFieldChanges(): void {\n this.searchField?.valueChange$.pipe(this.takeUntilDestroyed()).subscribe(() => this.triggerControllerChange());\n }\n\n @HostListener('click', ['$event'])\n @HostListener('keydown', ['$event'])\n protected handleControllerEvent(event: KeyboardEvent) {\n if (this.isLoading || this.readonlyController?.readonly || !this.isOpen) return;\n if (this.hasOptions) {\n if (event.key === 'Enter' || event.key === 'Tab') {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.selectOption(this.keyManager?.activeItem as SelectOptionComponent<T> | undefined);\n return;\n }\n }\n this.keyManager?.onKeydown(event);\n }\n\n protected activateSelectedOption(): void {\n let activeIndex = this.options?.toArray().findIndex((option) => option.isSelected && !option.disabled);\n if (!activeIndex || activeIndex === -1) {\n activeIndex = this.options?.toArray().findIndex((option) => !option.disabled) ?? -1;\n }\n this.keyManager?.setActiveItem(activeIndex);\n }\n\n protected onDropdownOpen(): void {\n this.activateSelectedOption();\n if (!this.searchFieldEnabled) {\n deferFn(() => this.focusSelectSearchField());\n }\n }\n\n protected onDropdownClose(): void {\n this.disableSmoothScroll();\n this.element.nativeElement.blur();\n if (this.searchFieldEnabled) {\n this.searchFieldEnabled = false;\n this.element.nativeElement?.focus();\n }\n }\n\n protected onDropdownClosed(): void {\n this.searchField?.reset();\n }\n\n private updateSelectedOption(): void {\n const options = this.options?.toArray();\n this.selectedOption = options?.find((option) => option.isSelected) ?? null;\n\n if (this.multiple) {\n this.options?.forEach((option) => (option.isSelected = this.isOptionSelected(option)));\n this.selectedOptionText =\n options\n ?.filter(({ isSelected }) => isSelected)\n .map((option) => this.stringify?.(option.value) ?? option.getLabel())\n .join(', ') ?? null;\n\n this.changeDetector.detectChanges();\n return;\n }\n this.selectedOptionText = this.selectedOption ? this.stringify?.(this.selectedOption?.value) ?? this.selectedOption.getLabel() : null;\n this.changeDetector.detectChanges();\n }\n\n private focusSelectSearchField(): void {\n this.searchFieldEnabled = !!this.searchField;\n deferFn(() => this.searchField?.focus());\n this.changeDetector.detectChanges();\n }\n\n private multipleSelectValueResolver(option: SelectOptionComponent<T>): T {\n let value = Array.isArray(this.value) ? (this.value as T[]) : [];\n if (option.isSelected) {\n (value as T[]).push(option.value as T);\n } else {\n value = value.filter((val) => !this.identityMatcher(option.value as T, val));\n }\n return value as T;\n }\n}\n","<div\n aria-haspopup=\"listbox\"\n class=\"odx-select__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4, outerPadding: 10, position: 'bottom-start' }\"\n [odxDropdownReferenceElement]=\"dropdownReferenceElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n (odxDropdownAfterOpen)=\"enableSmoothScroll()\"\n>\n <ng-template [ngIf]=\"!searchFieldEnabled\" [ngIfElse]=\"searchFieldTemplate\">\n <div class=\"odx-select__value\" *ngIf=\"selectedOptionContent; else placeholderTemplate\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\"></ng-template>\n </div>\n </ng-template>\n <ng-template #placeholderTemplate>\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n </ng-template>\n <ng-template #searchFieldTemplate>\n <ng-content select=\"[odxSelectSearchField]\"></ng-content>\n </ng-template>\n <odx-icon class=\"odx-select__indicator\" name=\"chevron-down\" iconSet=\"core\"></odx-icon>\n</div>\n<ng-template #dropdownContent>\n <div class=\"odx-dropdown__option-list\" role=\"listbox\">\n <ng-template [ngIf]=\"hasOptions\" [ngIfElse]=\"noOptionsTemplate\">\n <ng-content></ng-content>\n </ng-template>\n <ng-template #noOptionsTemplate>\n <odx-select-option disabled notFoundMessage>\n <ng-template [odxDynamicView]=\"searchField?.notFoundContent\"></ng-template>\n </odx-select-option>\n </ng-template>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { SelectOptionComponent } from './components';\nimport { SelectInputControlDirective } from './directives';\nimport { SelectSearchFilterPipe } from './pipes';\nimport { SelectComponent } from './select.component';\n\nconst modules = [SelectComponent, SelectInputControlDirective, SelectSearchFilterPipe, SelectOptionComponent];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class SelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"odx-angular-components-select.mjs","sources":["../../../../libs/angular/components/select/src/lib/select.tokens.ts","../../../../libs/angular/components/select/src/lib/components/select-option/select-option.component.ts","../../../../libs/angular/components/select/src/lib/components/select-option/select-option.component.html","../../../../libs/angular/components/select/src/lib/directives/select-input-control.directive.ts","../../../../libs/angular/components/select/src/lib/pipes/select-search-filter.pipe.ts","../../../../libs/angular/components/select/src/lib/select.component.ts","../../../../libs/angular/components/select/src/lib/select.component.html","../../../../libs/angular/components/select/src/lib/select.module.ts","../../../../libs/angular/components/select/src/odx-angular-components-select.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { SelectComponent } from './select.component';\n\nexport const SELECT_CONTROL = new InjectionToken<SelectComponent>('@odx/angular/components/select::SelectComponent');\n","import { booleanAttribute, ChangeDetectionStrategy, Component, inject, Input, OnInit, ViewEncapsulation } from '@angular/core';\nimport { CoreModule, detectControllerChanges } from '@odx/angular';\nimport { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { OptionControl } from '@odx/angular/cdk/option-control';\nimport { CheckboxComponent } from '@odx/angular/components/checkbox';\nimport { CSSComponent } from '@odx/angular/internal';\nimport { SELECT_CONTROL } from '../../select.tokens';\n\n/**\n * SelectOptionComponent is a customizable option element for use within a SelectComponent.\n * It supports complex data structures, integration with checkbox components for multi-select,\n * and can be disabled as needed.\n * It extends OptionControl to provide additional behavior specific to select components.\n *\n * @template T - The type of the value selected in the option.\n * @see {OptionControl}\n */\n@CSSComponent('select-option')\n@Component({\n standalone: true,\n selector: 'odx-select-option, odx-option',\n imports: [CoreModule, DynamicViewDirective, CheckboxComponent],\n templateUrl: './select-option.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[attr.aria-disabled]': 'disabled || null',\n '[class.is-disabled]': 'disabled',\n },\n})\nexport class SelectOptionComponent<T = unknown> extends OptionControl<T> implements OnInit {\n private _isDisabled = false;\n\n protected readonly selectControl = inject(SELECT_CONTROL);\n\n /**\n * Indicates whether the option is currently selected.\n *\n * @type {boolean}\n */\n public isSelected = false;\n\n /**\n * Indicates whether a not found message should be displayed, used typically for search results.\n *\n * @type {boolean}\n * @default false\n */\n @Input({ transform: booleanAttribute })\n public notFoundMessage = false;\n\n /**\n * Setter for the disabled state of the select option.\n *\n * @param value - The new value for the disabled state.\n */\n @Input({ transform: booleanAttribute })\n public set disabled(value: boolean) {\n this._isDisabled = value;\n }\n\n /**\n * Getter for the disabled state of the select option.\n *\n * @returns {boolean} The current disabled state of the option.\n */\n public get disabled(): boolean {\n return this._isDisabled;\n }\n\n constructor() {\n super();\n\n detectControllerChanges(this.selectControl)\n .pipe(this.takeUntilDestroyed())\n .subscribe(() => {\n this.isSelected = this.selectControl.isOptionSelected(this);\n });\n }\n\n public ngOnInit(): void {\n this.isSelected = this.selectControl.isOptionSelected(this);\n }\n\n /**\n * Sets active styles for the option when it becomes the target of keyboard navigation or mouse hover.\n */\n public override setActiveStyles(): void {\n if (this.disabled) return;\n\n this.isActive = true;\n\n if (this.selectControl.isOpen) {\n this.selectControl.scrollOptionIntoView(this);\n } else {\n this.selectControl.selectOption(this);\n }\n }\n\n /**\n * Toggles the selection state of the option when it is part of a multi-select control.\n */\n public switchCheckbox(): void {\n if (this.selectControl.multiple) {\n this.isSelected = !this.isSelected;\n this.cdr.markForCheck();\n }\n }\n\n protected selectOption(): void {\n this.selectControl.selectOption(this);\n }\n}\n","<odx-checkbox [checked]=\"isSelected\" [disabled]=\"disabled\" *ngIf=\"selectControl.multiple && !notFoundMessage; else single\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</odx-checkbox>\n\n<ng-template #single>\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n</ng-template>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n","import { Directive, HostListener, Input } from '@angular/core';\nimport { InputControlDirective } from '@odx/angular/cdk/custom-form-control';\nimport { DynamicContent } from '@odx/angular/cdk/dynamic-view';\nimport { CSSComponent } from '@odx/angular/internal';\n\n/**\n * SelectInputControlDirective extends InputControlDirective to provide additional behavior\n * specific to select components with search functionality. This directive manages interactions\n * within the search input field, such as resetting the field content upon specific key events.\n *\n * @see {InputControlDirective}\n */\n@CSSComponent('select__control')\n@Directive({\n standalone: true,\n selector: 'input[odxSelectSearchField]',\n})\nexport class SelectInputControlDirective extends InputControlDirective {\n /**\n * Dynamic content to be displayed when no matching search results are found.\n * This can be specified as HTML content or a string.\n *\n * @type {DynamicContent | null}\n * @default null\n */\n @Input('odxSelectSearchField')\n public notFoundContent: DynamicContent | null = null;\n\n @HostListener('keydown.delete')\n protected handleDelete(): void {\n this.reset();\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { BaseSearchFilterPipe } from '@odx/angular/cdk/autocomplete-control';\n/**\n * SelectSearchFilterPipe extends BaseSearchFilterPipe to provide search filtering functionality\n * specifically for select components. It filters options based on the input query, supporting\n * complex filtering logic as defined in the BaseSearchFilterPipe.\n *\n * This pipe is not pure, meaning it updates and reevaluates when inputs change or when\n * impure actions occur in the application.\n *\n * @see {BaseSearchFilterPipe}\n */\n@Pipe({\n pure: false,\n name: 'odxSelectSearchFilter',\n standalone: true,\n})\nexport class SelectSearchFilterPipe extends BaseSearchFilterPipe implements PipeTransform {}\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ContentChildren,\n forwardRef,\n HostListener,\n inject,\n Input,\n QueryList,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { CoreModule, IdentityMatcher, ODX_IDENTITY_MATCHER } from '@odx/angular';\nimport { AutocompleteControl, ODX_SEARCH_FILTER_HOST } from '@odx/angular/cdk/autocomplete-control';\nimport { DynamicViewDirective } from '@odx/angular/cdk/dynamic-view';\nimport { DropdownDirective } from '@odx/angular/components/dropdown';\nimport { IconComponent } from '@odx/angular/components/icon';\nimport { LoadingSpinnerModule } from '@odx/angular/components/loading-spinner';\nimport { CSSComponent, CSSModifier } from '@odx/angular/internal';\nimport { fromQueryList } from '@odx/angular/rxjs';\nimport { deferFn } from '@odx/angular/utils';\nimport { SelectOptionComponent } from './components';\nimport { SelectInputControlDirective } from './directives';\nimport { SELECT_CONTROL } from './select.tokens';\n\n/**\n * SelectComponent provides an advanced dropdown list that supports autocomplete, multiple selection,\n * and accessibility features. It extends AutocompleteControl for seamless integration with Angular forms.\n *\n * @template T - The type of the value selected in the select.\n *\n * @see {AutocompleteControl}\n */\n@CSSComponent('select')\n@Component({\n standalone: true,\n selector: 'odx-select',\n imports: [CoreModule, DropdownDirective, IconComponent, DynamicViewDirective, SelectOptionComponent, LoadingSpinnerModule],\n templateUrl: './select.component.html',\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: SELECT_CONTROL,\n useExisting: forwardRef(() => SelectComponent),\n },\n {\n provide: ODX_SEARCH_FILTER_HOST,\n useExisting: SELECT_CONTROL,\n },\n ],\n host: {\n '[tabindex]': 'searchFieldEnabled || isDisabled ? -1 : 0',\n '[attr.aria-multiselectable]': 'multiple',\n },\n})\nexport class SelectComponent<T = unknown> extends AutocompleteControl<T | null> implements AfterViewInit {\n protected searchFieldEnabled = false;\n protected selectedOption: SelectOptionComponent<T> | null = null;\n protected selectedOptionText: string | null = null;\n\n @ContentChildren(SelectOptionComponent, { descendants: true, emitDistinctChangesOnly: true })\n protected options?: QueryList<SelectOptionComponent<T>>;\n\n /**\n * Directive managing the search input field within the select.\n *\n * @type {SelectInputControlDirective | undefined}\n */\n @ContentChild(SelectInputControlDirective)\n public searchField?: SelectInputControlDirective;\n\n /**\n * Returns the content of the selected option for display. This can be a template or plain text.\n *\n * @type {TemplateRef<{ $implicit: T | null }> | string | null}\n */\n public get selectedOptionContent(): TemplateRef<{ $implicit: T | null }> | string | null {\n return this.selectedOption ? this.selectedOptionTemplate ?? this.selectedOptionText : null;\n }\n\n /**\n * Placeholder text for the select input when no option is selected.\n *\n * @type {string}\n * @default ''\n */\n @Input()\n public placeholder = '';\n\n /**\n * Sets whether multiple options can be selected.\n *\n * @type {boolean}\n * @default false\n */\n @CSSModifier()\n @Input({ transform: booleanAttribute })\n public multiple = false;\n\n /**\n * Custom template for displaying the selected option.\n *\n * @type {TemplateRef<{ $implicit: T }> | null}\n * @default null\n */\n @Input()\n public selectedOptionTemplate?: TemplateRef<{ $implicit: T }> | null = null;\n\n /**\n * Function to determine if two options are identical, useful for detecting changes in selection.\n *\n * @type {IdentityMatcher<T | null>}\n * @default ODX_DEFAULT_IDENTITY_MATCHER\n *\n * @example\n * ```ts\n * (item1, item2) => item1.id === item2.id\n * ```\n */\n @Input()\n public identityMatcher: IdentityMatcher<T | null> = inject(ODX_IDENTITY_MATCHER);\n\n public override ngAfterViewInit(): void {\n if (!this.options) return;\n\n this.initKeyManager(this.options);\n this.handleQueryListOption(this.options);\n this.handleSearchFieldChanges();\n }\n\n /**\n * Registers a function to be called when the value of the select changes.\n *\n * @param {Function} fn The function to be called when the value changes.\n * @returns {void}\n */\n public override registerOnChange(fn: (value: T | null) => void): void {\n super.registerOnChange((value) => {\n this.updateSelectedOption();\n fn(value);\n });\n }\n\n /**\n * Selects a given option and updates the component's value accordingly.\n *\n * @param {SelectOptionComponent<T | T[]> | null} option The option to select.\n * @returns {void}\n */\n public selectOption(option?: SelectOptionComponent<T | T[]> | null): void {\n if (option && !option.disabled) {\n this.optionSelected.emit();\n option.switchCheckbox();\n const value = this.multiple ? this.multipleSelectValueResolver(option as SelectOptionComponent<T>) : option.value;\n this.updateValue((value as T) ?? null);\n }\n\n !this.multiple && !option?.disabled && this.closeDropdown();\n }\n\n /**\n * Checks whether a given option is selected.\n *\n * @param {SelectOptionComponent<T | T[]>} option The option to check.\n * @returns {boolean} Whether the option is selected.\n */\n public isOptionSelected(option: SelectOptionComponent<T | T[]>): boolean {\n if (option) {\n if (this.multiple && Array.isArray(this.value)) {\n return (this.value as T[]).some((val) => this.identityMatcher(option.value as T, val));\n }\n return this.identityMatcher(option.value as T, this.value);\n }\n return false;\n }\n\n protected override initKeyManager(options: QueryList<SelectOptionComponent<T>>): void {\n this.keyManager = new ActiveDescendantKeyManager(options).withHomeAndEnd().skipPredicate((item) => item.disabled);\n }\n\n protected handleQueryListOption(options: QueryList<SelectOptionComponent<T>>): void {\n fromQueryList(options)\n .pipe(this.takeUntilDestroyed())\n .subscribe(() => {\n this.updateSelectedOption();\n if (this.isOpen) {\n deferFn(() => this.activateSelectedOption());\n }\n });\n }\n\n protected handleSearchFieldChanges(): void {\n this.searchField?.valueChange$.pipe(this.takeUntilDestroyed()).subscribe(() => this.triggerControllerChange());\n }\n\n @HostListener('click', ['$event'])\n @HostListener('keydown', ['$event'])\n protected handleControllerEvent(event: KeyboardEvent) {\n if (this.isLoading || this.readonlyController?.readonly || !this.isOpen) return;\n if (this.hasOptions) {\n if (event.key === 'Enter' || event.key === 'Tab') {\n event.preventDefault();\n event.stopImmediatePropagation();\n this.selectOption(this.keyManager?.activeItem as SelectOptionComponent<T> | undefined);\n return;\n }\n }\n this.keyManager?.onKeydown(event);\n }\n\n protected activateSelectedOption(): void {\n let activeIndex = this.options?.toArray().findIndex((option) => option.isSelected && !option.disabled);\n if (!activeIndex || activeIndex === -1) {\n activeIndex = this.options?.toArray().findIndex((option) => !option.disabled) ?? -1;\n }\n this.keyManager?.setActiveItem(activeIndex);\n }\n\n protected override onDropdownOpen(): void {\n super.onDropdownOpen();\n if (!this.searchFieldEnabled) {\n deferFn(() => this.focusSelectSearchField());\n }\n }\n\n protected override onDropdownClose(): void {\n super.onDropdownClose();\n this.element.nativeElement.blur();\n if (this.searchFieldEnabled) {\n this.searchFieldEnabled = false;\n this.element.nativeElement?.focus();\n }\n }\n\n protected override onDropdownClosed(): void {\n super.onDropdownClosed();\n this.searchField?.reset();\n }\n\n private updateSelectedOption(): void {\n const options = this.options?.toArray();\n this.selectedOption = options?.find((option) => option.isSelected) ?? null;\n\n if (this.multiple) {\n this.options?.forEach((option) => (option.isSelected = this.isOptionSelected(option)));\n this.selectedOptionText =\n options\n ?.filter(({ isSelected }) => isSelected)\n .map((option) => this.stringify?.(option.value) ?? option.getLabel())\n .join(', ') ?? null;\n\n this.changeDetector.detectChanges();\n return;\n }\n this.selectedOptionText = this.selectedOption ? this.stringify?.(this.selectedOption?.value) ?? this.selectedOption.getLabel() : null;\n this.changeDetector.detectChanges();\n }\n\n private focusSelectSearchField(): void {\n this.searchFieldEnabled = !!this.searchField;\n deferFn(() => this.searchField?.focus());\n this.changeDetector.detectChanges();\n }\n\n private multipleSelectValueResolver(option: SelectOptionComponent<T>): T {\n let value = Array.isArray(this.value) ? (this.value as T[]) : [];\n if (option.isSelected) {\n (value as T[]).push(option.value as T);\n } else {\n value = value.filter((val) => !this.identityMatcher(option.value as T, val));\n }\n return value as T;\n }\n}\n","<div\n aria-haspopup=\"listbox\"\n class=\"odx-select__trigger\"\n [odxDropdown]=\"dropdownContent\"\n [odxDropdownDisabled]=\"isDisabled || isReadonly\"\n [odxDropdownOptions]=\"{ matchReferenceWidth: true, offset: 4, outerPadding: 10, position: 'bottom-start' }\"\n [odxDropdownReferenceElement]=\"dropdownReferenceElement\"\n [odxDropdownShowLoader]=\"isLoading\"\n (odxDropdownBeforeOpen)=\"onDropdownOpen()\"\n (odxDropdownAfterOpen)=\"onDropdownOpened()\"\n (odxDropdownBeforeClose)=\"onDropdownClose()\"\n (odxDropdownAfterClose)=\"onDropdownClosed()\"\n>\n <ng-template [ngIf]=\"!searchFieldEnabled\" [ngIfElse]=\"searchFieldTemplate\">\n <div class=\"odx-select__value\" *ngIf=\"selectedOptionContent; else placeholderTemplate\">\n <ng-template [odxDynamicView]=\"selectedOptionContent\" [odxDynamicViewContext]=\"{ $implicit: value }\"></ng-template>\n </div>\n </ng-template>\n <ng-template #placeholderTemplate>\n <div class=\"odx-select__placeholder\">\n {{ placeholder }}\n </div>\n </ng-template>\n <ng-template #searchFieldTemplate>\n <ng-content select=\"[odxSelectSearchField]\"></ng-content>\n </ng-template>\n <odx-icon class=\"odx-select__indicator\" name=\"chevron-down\" iconSet=\"core\"></odx-icon>\n</div>\n<ng-template #dropdownContent>\n <div class=\"odx-dropdown__option-list\" role=\"listbox\">\n <ng-template [ngIf]=\"hasOptions\" [ngIfElse]=\"noOptionsTemplate\">\n <ng-content></ng-content>\n </ng-template>\n <ng-template #noOptionsTemplate>\n <odx-select-option disabled notFoundMessage>\n <ng-template [odxDynamicView]=\"searchField?.notFoundContent\"></ng-template>\n </odx-select-option>\n </ng-template>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CoreModule } from '@odx/angular';\nimport { SelectOptionComponent } from './components';\nimport { SelectInputControlDirective } from './directives';\nimport { SelectSearchFilterPipe } from './pipes';\nimport { SelectComponent } from './select.component';\n\nconst modules = [SelectComponent, SelectInputControlDirective, SelectSearchFilterPipe, SelectOptionComponent];\n\n@NgModule({\n imports: modules,\n exports: [CoreModule, ...modules],\n})\nexport class SelectModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;MAGa,cAAc,GAAG,IAAI,cAAc,CAAkB,iDAAiD;;ACKnH;;;;;;;;AAQG;AAcI,IAAM,qBAAqB,GAA3B,MAAM,qBAAmC,SAAQ,aAAgB,CAAA;AAqBtE;;;;AAIG;IACH,IACW,QAAQ,CAAC,KAAc,EAAA;AAChC,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;KAC1B;AAED;;;;AAIG;AACH,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,WAAW,CAAC;KACzB;AAED,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAC;QAxCF,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC;AAET,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC;AAE1D;;;;AAIG;QACI,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC;AAE1B;;;;;AAKG;QAEI,IAAe,CAAA,eAAA,GAAG,KAAK,CAAC;AAwB7B,QAAA,uBAAuB,CAAC,IAAI,CAAC,aAAa,CAAC;AACxC,aAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;aAC/B,SAAS,CAAC,MAAK;YACd,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;AAC9D,SAAC,CAAC,CAAC;KACN;IAEM,QAAQ,GAAA;QACb,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;KAC7D;AAED;;AAEG;IACa,eAAe,GAAA;QAC7B,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;AAE1B,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AAErB,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;AAC7B,YAAA,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;AAC/C,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;AACvC,SAAA;KACF;AAED;;AAEG;IACI,cAAc,GAAA;AACnB,QAAA,IAAI,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE;AAC/B,YAAA,IAAI,CAAC,UAAU,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC;AACnC,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC;AACzB,SAAA;KACF;IAES,YAAY,GAAA;AACpB,QAAA,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;KACvC;+GAjFU,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAArB,qBAAqB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,CAAA,iBAAA,EAAA,iBAAA,EAkBZ,gBAAgB,CAQhB,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAAA,gBAAgB,yJCxDtC,oYAWA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDUY,UAAU,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAwB,iBAAiB,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;AASlD,qBAAqB,GAAA,UAAA,CAAA;IAbjC,YAAY,CAAC,eAAe,CAAC;;AAajB,CAAA,EAAA,qBAAqB,CAkFjC,CAAA;4FAlFY,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAZjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,IAAI,YACN,+BAA+B,EAAA,OAAA,EAChC,CAAC,UAAU,EAAE,oBAAoB,EAAE,iBAAiB,CAAC,EAAA,aAAA,EAE/C,iBAAiB,CAAC,IAAI,mBACpB,uBAAuB,CAAC,MAAM,EACzC,IAAA,EAAA;AACJ,wBAAA,sBAAsB,EAAE,kBAAkB;AAC1C,wBAAA,qBAAqB,EAAE,UAAU;AAClC,qBAAA,EAAA,QAAA,EAAA,oYAAA,EAAA,CAAA;0EAqBM,eAAe,EAAA,CAAA;sBADrB,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAS3B,QAAQ,EAAA,CAAA;sBADlB,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;;;AEnDxC;;;;;;AAMG;AAMI,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,qBAAqB,CAAA;AAA/D,IAAA,WAAA,GAAA;;AACL;;;;;;AAMG;QAEI,IAAe,CAAA,eAAA,GAA0B,IAAI,CAAC;AAMtD,KAAA;IAHW,YAAY,GAAA;QACpB,IAAI,CAAC,KAAK,EAAE,CAAC;KACd;+GAdU,2BAA2B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,EAAA,eAAA,EAAA,CAAA,sBAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;AAA3B,2BAA2B,GAAA,UAAA,CAAA;IALvC,YAAY,CAAC,iBAAiB,CAAC;AAKnB,CAAA,EAAA,2BAA2B,CAevC,CAAA;4FAfY,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBAJvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,6BAA6B;AACxC,iBAAA,CAAA;8BAUQ,eAAe,EAAA,CAAA;sBADrB,KAAK;uBAAC,sBAAsB,CAAA;gBAInB,YAAY,EAAA,CAAA;sBADrB,YAAY;uBAAC,gBAAgB,CAAA;;;AC1BhC;;;;;;;;;AASG;AAMG,MAAO,sBAAuB,SAAQ,oBAAoB,CAAA;+GAAnD,sBAAsB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;6GAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,uBAAA,EAAA,IAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA;;4FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,KAAK;AACX,oBAAA,IAAI,EAAE,uBAAuB;AAC7B,oBAAA,UAAU,EAAE,IAAI;AACjB,iBAAA,CAAA;;;;ACaD;;;;;;;AAOG;AAwBI,IAAM,eAAe,GAArB,MAAM,eAA6B,SAAQ,mBAA6B,CAAA;AAAxE,IAAA,WAAA,GAAA;;QACK,IAAkB,CAAA,kBAAA,GAAG,KAAK,CAAC;QAC3B,IAAc,CAAA,cAAA,GAAoC,IAAI,CAAC;QACvD,IAAkB,CAAA,kBAAA,GAAkB,IAAI,CAAC;AAsBnD;;;;;AAKG;QAEI,IAAW,CAAA,WAAA,GAAG,EAAE,CAAC;AAExB;;;;;AAKG;QAGI,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAExB;;;;;AAKG;QAEI,IAAsB,CAAA,sBAAA,GAA0C,IAAI,CAAC;AAE5E;;;;;;;;;;AAUG;AAEI,QAAA,IAAA,CAAA,eAAe,GAA8B,MAAM,CAAC,oBAAoB,CAAC,CAAC;AAyJlF,KAAA;;AA1MC;;;;AAIG;AACH,IAAA,IAAW,qBAAqB,GAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,sBAAsB,IAAI,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC;KAC5F;IA4Ce,eAAe,GAAA;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO;AAE1B,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAClC,QAAA,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,IAAI,CAAC,wBAAwB,EAAE,CAAC;KACjC;AAED;;;;;AAKG;AACa,IAAA,gBAAgB,CAAC,EAA6B,EAAA;AAC5D,QAAA,KAAK,CAAC,gBAAgB,CAAC,CAAC,KAAK,KAAI;YAC/B,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,EAAE,CAAC,KAAK,CAAC,CAAC;AACZ,SAAC,CAAC,CAAC;KACJ;AAED;;;;;AAKG;AACI,IAAA,YAAY,CAAC,MAA8C,EAAA;AAChE,QAAA,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AAC9B,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;YAC3B,MAAM,CAAC,cAAc,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,2BAA2B,CAAC,MAAkC,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;AAClH,YAAA,IAAI,CAAC,WAAW,CAAE,KAAW,IAAI,IAAI,CAAC,CAAC;AACxC,SAAA;AAED,QAAA,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,MAAM,EAAE,QAAQ,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;KAC7D;AAED;;;;;AAKG;AACI,IAAA,gBAAgB,CAAC,MAAsC,EAAA;AAC5D,QAAA,IAAI,MAAM,EAAE;AACV,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAC9C,OAAQ,IAAI,CAAC,KAAa,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAU,EAAE,GAAG,CAAC,CAAC,CAAC;AACxF,aAAA;AACD,YAAA,OAAO,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAU,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;AAC5D,SAAA;AACD,QAAA,OAAO,KAAK,CAAC;KACd;AAEkB,IAAA,cAAc,CAAC,OAA4C,EAAA;QAC5E,IAAI,CAAC,UAAU,GAAG,IAAI,0BAA0B,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC;KACnH;AAES,IAAA,qBAAqB,CAAC,OAA4C,EAAA;QAC1E,aAAa,CAAC,OAAO,CAAC;AACnB,aAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;aAC/B,SAAS,CAAC,MAAK;YACd,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC5B,IAAI,IAAI,CAAC,MAAM,EAAE;gBACf,OAAO,CAAC,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;AAC9C,aAAA;AACH,SAAC,CAAC,CAAC;KACN;IAES,wBAAwB,GAAA;QAChC,IAAI,CAAC,WAAW,EAAE,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;KAChH;AAIS,IAAA,qBAAqB,CAAC,KAAoB,EAAA;AAClD,QAAA,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,kBAAkB,EAAE,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM;YAAE,OAAO;QAChF,IAAI,IAAI,CAAC,UAAU,EAAE;YACnB,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,KAAK,EAAE;gBAChD,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,KAAK,CAAC,wBAAwB,EAAE,CAAC;gBACjC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,EAAE,UAAkD,CAAC,CAAC;gBACvF,OAAO;AACR,aAAA;AACF,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;KACnC;IAES,sBAAsB,GAAA;QAC9B,IAAI,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACvG,QAAA,IAAI,CAAC,WAAW,IAAI,WAAW,KAAK,CAAC,CAAC,EAAE;YACtC,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;AACrF,SAAA;AACD,QAAA,IAAI,CAAC,UAAU,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;KAC7C;IAEkB,cAAc,GAAA;QAC/B,KAAK,CAAC,cAAc,EAAE,CAAC;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YAC5B,OAAO,CAAC,MAAM,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;AAC9C,SAAA;KACF;IAEkB,eAAe,GAAA;QAChC,KAAK,CAAC,eAAe,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC;QAClC,IAAI,IAAI,CAAC,kBAAkB,EAAE;AAC3B,YAAA,IAAI,CAAC,kBAAkB,GAAG,KAAK,CAAC;AAChC,YAAA,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,KAAK,EAAE,CAAC;AACrC,SAAA;KACF;IAEkB,gBAAgB,GAAA;QACjC,KAAK,CAAC,gBAAgB,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC;KAC3B;IAEO,oBAAoB,GAAA;QAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC;AACxC,QAAA,IAAI,CAAC,cAAc,GAAG,OAAO,EAAE,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC;QAE3E,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,IAAI,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,MAAM,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACvF,YAAA,IAAI,CAAC,kBAAkB;gBACrB,OAAO;sBACH,MAAM,CAAC,CAAC,EAAE,UAAU,EAAE,KAAK,UAAU,CAAC;qBACvC,GAAG,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;AACpE,qBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AAExB,YAAA,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;YACpC,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,cAAc,EAAE,KAAK,CAAC,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC;AACtI,QAAA,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;KACrC;IAEO,sBAAsB,GAAA;QAC5B,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;QAC7C,OAAO,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,CAAC,CAAC;AACzC,QAAA,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC;KACrC;AAEO,IAAA,2BAA2B,CAAC,MAAgC,EAAA;QAClE,IAAI,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAI,IAAI,CAAC,KAAa,GAAG,EAAE,CAAC;QACjE,IAAI,MAAM,CAAC,UAAU,EAAE;AACpB,YAAA,KAAa,CAAC,IAAI,CAAC,MAAM,CAAC,KAAU,CAAC,CAAC;AACxC,SAAA;AAAM,aAAA;YACL,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,KAAU,EAAE,GAAG,CAAC,CAAC,CAAC;AAC9E,SAAA;AACD,QAAA,OAAO,KAAU,CAAC;KACnB;+GAzNU,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;mGAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,QAAA,EAAA,CAAA,UAAA,EAAA,UAAA,EAyCN,gBAAgB,CAxDzB,EAAA,sBAAA,EAAA,wBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,+BAAA,EAAA,SAAA,EAAA,+BAAA,EAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,2CAAA,EAAA,2BAAA,EAAA,UAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,cAAc;AACvB,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,iBAAe,CAAC;AAC/C,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,sBAAsB;AAC/B,gBAAA,WAAW,EAAE,cAAc;AAC5B,aAAA;AACF,SAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAmBa,2BAA2B,EARxB,WAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAAA,qBAAqB,ECjExC,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,qtDAwCA,2CDCY,UAAU,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,iBAAiB,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,qBAAA,EAAA,uBAAA,EAAA,+BAAA,EAAA,oBAAA,EAAA,6BAAA,EAAA,2BAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,yBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,uBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,aAAa,EAAE,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,oBAAoB,EAAE,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,wBAAA,EAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,qBAAqB,kHAAE,oBAAoB,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;AA6DlH,UAAA,CAAA;AAFN,IAAA,WAAW,EAAE;;AAEU,CAAA,EAAA,eAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA,CAAA;AA1Cb,eAAe,GAAA,iBAAA,GAAA,UAAA,CAAA;IAvB3B,YAAY,CAAC,QAAQ,CAAC;AAuBV,CAAA,EAAA,eAAe,CA0N3B,CAAA;4FA1NY,eAAe,EAAA,UAAA,EAAA,CAAA;kBAtB3B,SAAS;iCACI,IAAI,EAAA,QAAA,EACN,YAAY,EAAA,OAAA,EACb,CAAC,UAAU,EAAE,iBAAiB,EAAE,aAAa,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,oBAAoB,CAAC,EAAA,aAAA,EAE3G,iBAAiB,CAAC,IAAI,EACpB,eAAA,EAAA,uBAAuB,CAAC,MAAM,EACpC,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,cAAc;AACvB,4BAAA,WAAW,EAAE,UAAU,CAAC,qBAAqB,CAAC;AAC/C,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,sBAAsB;AAC/B,4BAAA,WAAW,EAAE,cAAc;AAC5B,yBAAA;qBACF,EACK,IAAA,EAAA;AACJ,wBAAA,YAAY,EAAE,2CAA2C;AACzD,wBAAA,6BAA6B,EAAE,UAAU;AAC1C,qBAAA,EAAA,QAAA,EAAA,qtDAAA,EAAA,CAAA;8BAQS,OAAO,EAAA,CAAA;sBADhB,eAAe;uBAAC,qBAAqB,EAAE,EAAE,WAAW,EAAE,IAAI,EAAE,uBAAuB,EAAE,IAAI,EAAE,CAAA;gBASrF,WAAW,EAAA,CAAA;sBADjB,YAAY;uBAAC,2BAA2B,CAAA;gBAmBlC,WAAW,EAAA,CAAA;sBADjB,KAAK;gBAWC,QAAQ,EAAA,CAAA;sBADd,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAA;gBAU/B,sBAAsB,EAAA,CAAA;sBAD5B,KAAK;gBAeC,eAAe,EAAA,CAAA;sBADrB,KAAK;gBA8EI,qBAAqB,EAAA,CAAA;sBAF9B,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;sBAChC,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AElMrC,MAAM,OAAO,GAAG,CAAC,eAAe,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,qBAAqB,CAAC,CAAC;MAMjG,YAAY,CAAA;+GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,YANR,eAAe,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,qBAAqB,CAIhG,EAAA,OAAA,EAAA,CAAA,UAAU,EAJL,eAAe,EAAE,2BAA2B,EAAE,sBAAsB,EAAE,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA;AAM/F,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,EANR,OAAA,EAAA,CAAA,eAAe,EAAuD,qBAAqB,EAIhG,UAAU,CAAA,EAAA,CAAA,CAAA,EAAA;;4FAET,YAAY,EAAA,UAAA,EAAA,CAAA;kBAJxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE,OAAO;AAChB,oBAAA,OAAO,EAAE,CAAC,UAAU,EAAE,GAAG,OAAO,CAAC;AAClC,iBAAA,CAAA;;;ACZD;;AAEG;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@odx/angular",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.4.0",
|
|
4
4
|
"author": "Drägerwerk AG & Co.KGaA",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE",
|
|
6
6
|
"peerDependencies": {
|
|
@@ -18,11 +18,11 @@
|
|
|
18
18
|
"rxjs": ">=7.5.0"
|
|
19
19
|
},
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@floating-ui/dom": "^1.
|
|
21
|
+
"@floating-ui/dom": "^1.6.0",
|
|
22
22
|
"@ngrx/component": "^16.3.0",
|
|
23
|
-
"date-fns": "^3.
|
|
24
|
-
"deepmerge-ts": "^
|
|
25
|
-
"fast-equals": "5.0.
|
|
23
|
+
"date-fns": "^3.6.0",
|
|
24
|
+
"deepmerge-ts": "^7.0.0",
|
|
25
|
+
"fast-equals": "^5.0.0",
|
|
26
26
|
"ngx-mask": "^16.2.6",
|
|
27
27
|
"tslib": "^2.5.0"
|
|
28
28
|
},
|