@odx/angular 6.3.1 → 6.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/cdk/autocomplete-control/lib/autocomplete-control.d.ts +53 -1
  3. package/components/autocomplete/lib/autocomplete.component.d.ts +0 -2
  4. package/components/calendar/lib/calendar.config.d.ts +1 -1
  5. package/components/card/lib/card.component.d.ts +11 -4
  6. package/components/card/lib/card.config.d.ts +43 -0
  7. package/components/card/lib/card.module.d.ts +6 -10
  8. package/components/card/lib/components/card-image/card-image.component.d.ts +26 -0
  9. package/components/card/lib/components/index.d.ts +1 -0
  10. package/components/card/lib/directives/card-content.directive.d.ts +1 -1
  11. package/components/card/lib/directives/index.d.ts +0 -1
  12. package/components/card/lib/models/card-variant.d.ts +1 -0
  13. package/esm2022/cdk/autocomplete-control/lib/autocomplete-control.mjs +73 -2
  14. package/esm2022/components/autocomplete/lib/autocomplete.component.mjs +3 -7
  15. package/esm2022/components/calendar/lib/calendar.config.mjs +2 -2
  16. package/esm2022/components/card/lib/card.component.mjs +13 -8
  17. package/esm2022/components/card/lib/card.config.mjs +24 -0
  18. package/esm2022/components/card/lib/card.module.mjs +7 -38
  19. package/esm2022/components/card/lib/components/card-image/card-image.component.mjs +56 -0
  20. package/esm2022/components/card/lib/components/index.mjs +2 -1
  21. package/esm2022/components/card/lib/directives/card-content.directive.mjs +3 -3
  22. package/esm2022/components/card/lib/directives/index.mjs +1 -2
  23. package/esm2022/components/card/lib/models/card-variant.mjs +2 -1
  24. package/esm2022/components/select/lib/select.component.mjs +6 -5
  25. package/fesm2022/odx-angular-cdk-autocomplete-control.mjs +72 -1
  26. package/fesm2022/odx-angular-cdk-autocomplete-control.mjs.map +1 -1
  27. package/fesm2022/odx-angular-components-autocomplete.mjs +2 -6
  28. package/fesm2022/odx-angular-components-autocomplete.mjs.map +1 -1
  29. package/fesm2022/odx-angular-components-calendar.mjs +1 -1
  30. package/fesm2022/odx-angular-components-calendar.mjs.map +1 -1
  31. package/fesm2022/odx-angular-components-card.mjs +99 -68
  32. package/fesm2022/odx-angular-components-card.mjs.map +1 -1
  33. package/fesm2022/odx-angular-components-select.mjs +5 -4
  34. package/fesm2022/odx-angular-components-select.mjs.map +1 -1
  35. package/package.json +5 -5
  36. package/components/card/lib/directives/card-title.directive.d.ts +0 -8
  37. package/esm2022/components/card/lib/directives/card-title.directive.mjs +0 -20
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # @odx/angular
2
2
 
3
+ ## 6.5.0
4
+
5
+ ### Minor Changes
6
+
7
+ - bb425b3: New image-card variant for card component
8
+
9
+ ### Patch Changes
10
+
11
+ - d9b77c1: new options in storybook for rail navigation
12
+
13
+ ## 6.4.0
14
+
15
+ ### Minor Changes
16
+
17
+ - b4890e7: Add `beforeDropdownOpen`, `afterDropdownOpen`, `beforeDropdownClose` and `afterDropdownClose` outputs to `odx-select` and `odx-autocomplete` components
18
+
19
+ Updated `date-fns` dependency to `^3.6.0`
20
+ Updated `deepmerge-ts` dependency to `^7.0.0`
21
+
3
22
  ## 6.3.1
4
23
 
5
24
  ### 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>;
@@ -57,7 +57,7 @@ export interface CalendarConfig {
57
57
  * providers: [provideCalendarConfig({ selectionMode: CalendarSelectionMode.DateRange, locale: new BehaviorSubject<Locale>(deDE)})]
58
58
  * })
59
59
  * export class MyDateRangepickerComponent {}
60
- * ````
60
+ * ```
61
61
  *
62
62
  * @example
63
63
  * ```ts
@@ -14,18 +14,25 @@ import * as i1 from "@odx/angular/cdk/a11y";
14
14
  export declare class CardComponent {
15
15
  private readonly interactiveDirective;
16
16
  private readonly takeUntilDestroyed;
17
+ private readonly config;
18
+ protected cardVariant: {
19
+ readonly DEFAULT: "default";
20
+ readonly LAUNCH_TILE: "launch-tile";
21
+ readonly LAUNCH_TILE_CENTERED: "launch-tile-centered";
22
+ readonly IMAGE_CARD: "image-card";
23
+ };
17
24
  protected readonly menu?: MenuComponent;
18
25
  protected readonly buttons?: ActionGroupComponent;
19
26
  protected readonly menuHost?: MenuDirective;
20
27
  protected readonly footer?: ElementRef<HTMLElement>;
21
- readonly element: ElementRef<HTMLElement>;
28
+ element: ElementRef<HTMLElement>;
22
29
  /**
23
30
  * The variant of the card.
24
31
  *
25
32
  * @type {CardVariant}
26
33
  * @default CardVariant.DEFAULT
27
34
  */
28
- variant?: CardVariant;
35
+ variant: CardVariant;
29
36
  /**
30
37
  * Menu icon name.
31
38
  *
@@ -39,9 +46,9 @@ export declare class CardComponent {
39
46
  * @emits {Event}
40
47
  */
41
48
  interact: EventEmitter<Event>;
49
+ get launchTile(): boolean;
42
50
  constructor();
43
- protected get launchTile(): boolean;
44
51
  private stopEvents;
45
52
  static ɵfac: i0.ɵɵFactoryDeclaration<CardComponent, never>;
46
- static ɵcmp: i0.ɵɵComponentDeclaration<CardComponent, "odx-card", never, { "variant": { "alias": "variant"; "required": false; }; "menuIcon": { "alias": "menuIcon"; "required": false; }; }, { "interact": "interact"; }, ["menu", "buttons", "footer"], ["odx-avatar", "odx-launch-card-subtitle", "[odxCardContent]", "odx-card-footer", "odx-menu", "*", "odx-action-group"], true, [{ directive: typeof i1.InteractiveDirective; inputs: {}; outputs: {}; }]>;
53
+ static ɵcmp: i0.ɵɵComponentDeclaration<CardComponent, "odx-card", never, { "variant": { "alias": "variant"; "required": false; }; "menuIcon": { "alias": "menuIcon"; "required": false; }; }, { "interact": "interact"; }, ["menu", "buttons", "footer"], ["odx-card-image", "[odxCardContent], odx-card-content", "odx-avatar", "odx-launch-card-subtitle", "odx-card-footer", "odx-menu", "*", "odx-action-group"], true, [{ directive: typeof i1.InteractiveDirective; inputs: {}; outputs: {}; }]>;
47
54
  }
@@ -0,0 +1,43 @@
1
+ import { CardVariant } from './models';
2
+ export interface CardConfig {
3
+ variant?: CardVariant;
4
+ maxImageHeight?: string;
5
+ imageRatio?: string;
6
+ }
7
+ /**
8
+ * Tools for customizing configuration for the card component
9
+ *
10
+ * @example
11
+ * ```ts
12
+ * @Component({
13
+ * ...
14
+ * providers: [provideCardConfig({imageRatio: '5/3', maxImageHeight: '200px'})]
15
+ * })
16
+ * export class MyCardComponent {}
17
+ * ```
18
+ * @example
19
+ * ```ts
20
+ * constructor(@Inject(CardConfig) private readonly cardConfig: CardConfig) {}
21
+ * ```
22
+ */
23
+ export declare const CardConfig: import("@angular/core").InjectionToken<Partial<{
24
+ variant: CardVariant;
25
+ maxImageHeight: string;
26
+ imageRatio: string;
27
+ }>>, CardDefaultConfig: {
28
+ variant: CardVariant;
29
+ maxImageHeight: string;
30
+ imageRatio: string;
31
+ }, injectCardConfig: () => {
32
+ variant: CardVariant;
33
+ maxImageHeight: string;
34
+ imageRatio: string;
35
+ }, provideCardConfig: <D extends import("@odx/angular/utils").ConfigDependencies<unknown> = import("@odx/angular/utils").ConfigDependencies<Partial<{
36
+ variant: CardVariant;
37
+ maxImageHeight: string;
38
+ imageRatio: string;
39
+ }>>>(config: import("@odx/angular/utils").ConfigProvider<Partial<{
40
+ variant: CardVariant;
41
+ maxImageHeight: string;
42
+ imageRatio: string;
43
+ }>, D>) => import("@angular/core").FactoryProvider | import("@angular/core").ValueProvider;
@@ -1,16 +1,12 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./card.component";
3
- import * as i2 from "./directives/card-title.directive";
4
- import * as i3 from "./directives/card-content.directive";
5
- import * as i4 from "./components/card-footer/card-footer.component";
6
- import * as i5 from "./components/launch-card-subtitle/launch-card-subtitle.component";
7
- import * as i6 from "@odx/angular/components/avatar";
8
- import * as i7 from "@odx/angular/components/button";
9
- import * as i8 from "@odx/angular/components/icon";
10
- import * as i9 from "@odx/angular";
11
- import * as i10 from "@odx/angular/components/menu";
3
+ import * as i2 from "./components/card-footer/card-footer.component";
4
+ import * as i3 from "./components/card-image/card-image.component";
5
+ import * as i4 from "./components/launch-card-subtitle/launch-card-subtitle.component";
6
+ import * as i5 from "./directives/card-content.directive";
7
+ import * as i6 from "@odx/angular";
12
8
  export declare class CardModule {
13
9
  static ɵfac: i0.ɵɵFactoryDeclaration<CardModule, never>;
14
- static ɵmod: i0.ɵɵNgModuleDeclaration<CardModule, never, [typeof i1.CardComponent, typeof i2.CardTitleDirective, typeof i3.CardContentDirective, typeof i4.CardFooterComponent, typeof i5.LaunchCardSubtitleComponent, typeof i6.AvatarComponent, typeof i7.ButtonComponent, typeof i8.IconComponent], [typeof i9.CoreModule, typeof i10.MenuModule, typeof i1.CardComponent, typeof i2.CardTitleDirective, typeof i3.CardContentDirective, typeof i4.CardFooterComponent, typeof i5.LaunchCardSubtitleComponent, typeof i6.AvatarComponent, typeof i7.ButtonComponent, typeof i8.IconComponent]>;
10
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CardModule, never, [typeof i1.CardComponent, typeof i2.CardFooterComponent, typeof i3.CardImageComponent, typeof i4.LaunchCardSubtitleComponent, typeof i5.CardContentDirective], [typeof i6.CoreModule, typeof i1.CardComponent, typeof i2.CardFooterComponent, typeof i3.CardImageComponent, typeof i4.LaunchCardSubtitleComponent, typeof i5.CardContentDirective]>;
15
11
  static ɵinj: i0.ɵɵInjectorDeclaration<CardModule>;
16
12
  }
@@ -0,0 +1,26 @@
1
+ import * as i0 from "@angular/core";
2
+ /**
3
+ * Represents a card image component.
4
+ */
5
+ export declare class CardImageComponent {
6
+ private readonly config;
7
+ readonly element: import("@angular/core").ElementRef<HTMLElement>;
8
+ /**
9
+ * The ratio of the card image.
10
+ *
11
+ * @type {string}
12
+ * @default 'auto'
13
+ */
14
+ imageRatio: string;
15
+ /**
16
+ * The maximum height of the card image.
17
+ *
18
+ * @type {string}
19
+ * @default 'auto'
20
+ */
21
+ maxImageHeight: string;
22
+ protected get getMaxImageHeight(): string;
23
+ protected get getImageAspectRatio(): string;
24
+ static ɵfac: i0.ɵɵFactoryDeclaration<CardImageComponent, never>;
25
+ static ɵcmp: i0.ɵɵComponentDeclaration<CardImageComponent, "odx-card-image", never, { "imageRatio": { "alias": "imageRatio"; "required": false; }; "maxImageHeight": { "alias": "maxImageHeight"; "required": false; }; }, {}, never, ["odx-chip", "img"], true, never>;
26
+ }
@@ -1,2 +1,3 @@
1
1
  export * from './card-footer/card-footer.component';
2
+ export * from './card-image/card-image.component';
2
3
  export * from './launch-card-subtitle/launch-card-subtitle.component';
@@ -4,5 +4,5 @@ import * as i0 from "@angular/core";
4
4
  */
5
5
  export declare class CardContentDirective {
6
6
  static ɵfac: i0.ɵɵFactoryDeclaration<CardContentDirective, never>;
7
- static ɵdir: i0.ɵɵDirectiveDeclaration<CardContentDirective, "[odxCardContent]", never, {}, {}, never, never, true, never>;
7
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CardContentDirective, "[odxCardContent], odx-card-content", never, {}, {}, never, never, true, never>;
8
8
  }
@@ -1,2 +1 @@
1
1
  export * from './card-content.directive';
2
- export * from './card-title.directive';
@@ -3,4 +3,5 @@ export declare const CardVariant: {
3
3
  readonly DEFAULT: "default";
4
4
  readonly LAUNCH_TILE: "launch-tile";
5
5
  readonly LAUNCH_TILE_CENTERED: "launch-tile-centered";
6
+ readonly IMAGE_CARD: "image-card";
6
7
  };
@@ -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]=\"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", 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 }); }
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]=\"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" }]
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==
@@ -10,7 +10,7 @@ import { CalendarSelectionMode } from './models/selection-mode';
10
10
  * providers: [provideCalendarConfig({ selectionMode: CalendarSelectionMode.DateRange, locale: new BehaviorSubject<Locale>(deDE)})]
11
11
  * })
12
12
  * export class MyDateRangepickerComponent {}
13
- * ````
13
+ * ```
14
14
  *
15
15
  * @example
16
16
  * ```ts
@@ -28,4 +28,4 @@ export const { CalendarConfig, CalendarDefaultConfig, injectCalendarConfig, prov
28
28
  padding: 100,
29
29
  },
30
30
  });
31
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvY2FsZW5kYXIvc3JjL2xpYi9jYWxlbmRhci5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUErQ2hFOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxrQkFBa0IsQ0FDdEgsVUFBVSxFQUNWLGtDQUFrQyxFQUNsQztJQUNFLG1CQUFtQixFQUFFLElBQUk7SUFDekIsYUFBYSxFQUFFLHFCQUFxQixDQUFDLElBQUk7SUFDekMsUUFBUSxFQUFFO1FBQ1IsV0FBVyxFQUFFLENBQUM7S0FDZjtJQUNELFNBQVMsRUFBRTtRQUNULFdBQVcsRUFBRSxDQUFDO1FBQ2QsT0FBTyxFQUFFLEdBQUc7S0FDYjtDQUNGLENBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUNvbmZpZ1Rva2VucyB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBDYWxlbmRhclNlbGVjdGlvbk1vZGUgfSBmcm9tICcuL21vZGVscy9zZWxlY3Rpb24tbW9kZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsZW5kYXJDb25maWcge1xuICAvKipcbiAgICogRGlzcGxheXMgdGhlIGFkamFjZW50IGRheXMgaW4gbW9udGggY2FsZW5kYXIgdmlldy5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgZGlzcGxheUFkamFjZW50RGF5czogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFN3aXRjaGVzIGJldHdlZW4gc2luZ2xlIHNlbGVjdGlvbiBhbmQgYSBkYXRlcmFuZ2Ugc2VsZWN0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCBDYWxlbmRhclNlbGVjdGlvbk1vZGUuRGF0ZVxuICAgKi9cbiAgc2VsZWN0aW9uTW9kZTogQ2FsZW5kYXJTZWxlY3Rpb25Nb2RlO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIGZvciB0aGUgeWVhciB2aWV3LlxuICAgKlxuICAgKiBAdHlwZWRlZiB7T2JqZWN0fSBZZWFyVmlld0NvbmZpZ1xuICAgKiBAcHJvcGVydHkge251bWJlcn0gaXRlbXNQZXJSb3cgLSBOdW1iZXIgb2YgaXRlbXMgdG8gZGlzcGxheSBwZXIgcm93IGluIHRoZSB5ZWFyIHZpZXcuXG4gICAqIEBkZWZhdWx0IDNcbiAgICovXG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBjYWxlbmRhcidzIHllYXIgdmlldy5cbiAgICpcbiAgICogQHR5cGUge1llYXJWaWV3Q29uZmlnfVxuICAgKi9cbiAgeWVhclZpZXc6IHsgaXRlbXNQZXJSb3c6IG51bWJlciB9O1xuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgdGhlIHllYXJzIHZpZXcuXG4gICAqXG4gICAqIEB0eXBlZGVmIHtPYmplY3R9IFllYXJzVmlld0NvbmZpZ1xuICAgKiBAcHJvcGVydHkge251bWJlcn0gaXRlbXNQZXJSb3cgLSBOdW1iZXIgb2YgaXRlbXMgdG8gZGlzcGxheSBwZXIgcm93IGluIHRoZSB5ZWFycyB2aWV3LlxuICAgKiBAcHJvcGVydHkge251bWJlcn0gW3BhZGRpbmc9MTAwXSAtIFRoZSBudW1iZXIgb2YgeWVhciBpdGVtcyBiZWZvcmUgYW5kIGFmdGVyIHRoZSBjdXJyZW50IHllYXJcbiAgICogQGRlZmF1bHRcbiAgICogICBpdGVtc1BlclJvdzogMyxcbiAgICogICBwYWRkaW5nOiAxMDBcbiAgICovXG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBjYWxlbmRhcidzIHllYXJzIHZpZXcuXG4gICAqXG4gICAqIEB0eXBlIHtZZWFyc1ZpZXdDb25maWd9XG4gICAqL1xuICB5ZWFyc1ZpZXc6IHsgaXRlbXNQZXJSb3c6IG51bWJlcjsgcGFkZGluZzogbnVtYmVyIH07XG59XG5cbi8qKlxuICogVG9vbHMgZm9yIGN1c3RvbWl6aW5nIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjYWxlbmRhciBjb21wb25lbnRcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIEBDb21wb25lbnQoe1xuICogIC4uLlxuICogIHByb3ZpZGVyczogW3Byb3ZpZGVDYWxlbmRhckNvbmZpZyh7IHNlbGVjdGlvbk1vZGU6IENhbGVuZGFyU2VsZWN0aW9uTW9kZS5EYXRlUmFuZ2UsIGxvY2FsZTogbmV3IEJlaGF2aW9yU3ViamVjdDxMb2NhbGU+KGRlREUpfSldXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIE15RGF0ZVJhbmdlcGlja2VyQ29tcG9uZW50IHt9XG4gKiBgYGBgXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYHRzXG4gKiBjb25zdHJ1Y3RvcihASW5qZWN0KENhbGVuZGFyQ29uZmlnKSBwcml2YXRlIHJlYWRvbmx5IGNhbGVuZGFyQ29uZmlnOiBDYWxlbmRhckNvbmZpZykge31cbiAqIGBgYFxuICovXG5leHBvcnQgY29uc3QgeyBDYWxlbmRhckNvbmZpZywgQ2FsZW5kYXJEZWZhdWx0Q29uZmlnLCBpbmplY3RDYWxlbmRhckNvbmZpZywgcHJvdmlkZUNhbGVuZGFyQ29uZmlnIH0gPSBjcmVhdGVDb25maWdUb2tlbnMoXG4gICdDYWxlbmRhcicsXG4gICdAb2R4L2FuZ3VsYXIvY29tcG9uZW50cy9jYWxlbmRhcicsXG4gIHtcbiAgICBkaXNwbGF5QWRqYWNlbnREYXlzOiB0cnVlLFxuICAgIHNlbGVjdGlvbk1vZGU6IENhbGVuZGFyU2VsZWN0aW9uTW9kZS5EYXRlLFxuICAgIHllYXJWaWV3OiB7XG4gICAgICBpdGVtc1BlclJvdzogMyxcbiAgICB9LFxuICAgIHllYXJzVmlldzoge1xuICAgICAgaXRlbXNQZXJSb3c6IDMsXG4gICAgICBwYWRkaW5nOiAxMDAsXG4gICAgfSxcbiAgfSxcbik7XG4iXX0=
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL2NvbXBvbmVudHMvY2FsZW5kYXIvc3JjL2xpYi9jYWxlbmRhci5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUErQ2hFOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sRUFBRSxjQUFjLEVBQUUscUJBQXFCLEVBQUUsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUsR0FBRyxrQkFBa0IsQ0FDdEgsVUFBVSxFQUNWLGtDQUFrQyxFQUNsQztJQUNFLG1CQUFtQixFQUFFLElBQUk7SUFDekIsYUFBYSxFQUFFLHFCQUFxQixDQUFDLElBQUk7SUFDekMsUUFBUSxFQUFFO1FBQ1IsV0FBVyxFQUFFLENBQUM7S0FDZjtJQUNELFNBQVMsRUFBRTtRQUNULFdBQVcsRUFBRSxDQUFDO1FBQ2QsT0FBTyxFQUFFLEdBQUc7S0FDYjtDQUNGLENBQ0YsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUNvbmZpZ1Rva2VucyB9IGZyb20gJ0BvZHgvYW5ndWxhci91dGlscyc7XG5pbXBvcnQgeyBDYWxlbmRhclNlbGVjdGlvbk1vZGUgfSBmcm9tICcuL21vZGVscy9zZWxlY3Rpb24tbW9kZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsZW5kYXJDb25maWcge1xuICAvKipcbiAgICogRGlzcGxheXMgdGhlIGFkamFjZW50IGRheXMgaW4gbW9udGggY2FsZW5kYXIgdmlldy5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgZGlzcGxheUFkamFjZW50RGF5czogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFN3aXRjaGVzIGJldHdlZW4gc2luZ2xlIHNlbGVjdGlvbiBhbmQgYSBkYXRlcmFuZ2Ugc2VsZWN0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCBDYWxlbmRhclNlbGVjdGlvbk1vZGUuRGF0ZVxuICAgKi9cbiAgc2VsZWN0aW9uTW9kZTogQ2FsZW5kYXJTZWxlY3Rpb25Nb2RlO1xuXG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIGZvciB0aGUgeWVhciB2aWV3LlxuICAgKlxuICAgKiBAdHlwZWRlZiB7T2JqZWN0fSBZZWFyVmlld0NvbmZpZ1xuICAgKiBAcHJvcGVydHkge251bWJlcn0gaXRlbXNQZXJSb3cgLSBOdW1iZXIgb2YgaXRlbXMgdG8gZGlzcGxheSBwZXIgcm93IGluIHRoZSB5ZWFyIHZpZXcuXG4gICAqIEBkZWZhdWx0IDNcbiAgICovXG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBjYWxlbmRhcidzIHllYXIgdmlldy5cbiAgICpcbiAgICogQHR5cGUge1llYXJWaWV3Q29uZmlnfVxuICAgKi9cbiAgeWVhclZpZXc6IHsgaXRlbXNQZXJSb3c6IG51bWJlciB9O1xuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgdGhlIHllYXJzIHZpZXcuXG4gICAqXG4gICAqIEB0eXBlZGVmIHtPYmplY3R9IFllYXJzVmlld0NvbmZpZ1xuICAgKiBAcHJvcGVydHkge251bWJlcn0gaXRlbXNQZXJSb3cgLSBOdW1iZXIgb2YgaXRlbXMgdG8gZGlzcGxheSBwZXIgcm93IGluIHRoZSB5ZWFycyB2aWV3LlxuICAgKiBAcHJvcGVydHkge251bWJlcn0gW3BhZGRpbmc9MTAwXSAtIFRoZSBudW1iZXIgb2YgeWVhciBpdGVtcyBiZWZvcmUgYW5kIGFmdGVyIHRoZSBjdXJyZW50IHllYXJcbiAgICogQGRlZmF1bHRcbiAgICogICBpdGVtc1BlclJvdzogMyxcbiAgICogICBwYWRkaW5nOiAxMDBcbiAgICovXG4gIC8qKlxuICAgKiBDb25maWd1cmF0aW9uIG9wdGlvbnMgZm9yIHRoZSBjYWxlbmRhcidzIHllYXJzIHZpZXcuXG4gICAqXG4gICAqIEB0eXBlIHtZZWFyc1ZpZXdDb25maWd9XG4gICAqL1xuICB5ZWFyc1ZpZXc6IHsgaXRlbXNQZXJSb3c6IG51bWJlcjsgcGFkZGluZzogbnVtYmVyIH07XG59XG5cbi8qKlxuICogVG9vbHMgZm9yIGN1c3RvbWl6aW5nIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBjYWxlbmRhciBjb21wb25lbnRcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIEBDb21wb25lbnQoe1xuICogIC4uLlxuICogIHByb3ZpZGVyczogW3Byb3ZpZGVDYWxlbmRhckNvbmZpZyh7IHNlbGVjdGlvbk1vZGU6IENhbGVuZGFyU2VsZWN0aW9uTW9kZS5EYXRlUmFuZ2UsIGxvY2FsZTogbmV3IEJlaGF2aW9yU3ViamVjdDxMb2NhbGU+KGRlREUpfSldXG4gKiB9KVxuICogZXhwb3J0IGNsYXNzIE15RGF0ZVJhbmdlcGlja2VyQ29tcG9uZW50IHt9XG4gKiBgYGBcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIGNvbnN0cnVjdG9yKEBJbmplY3QoQ2FsZW5kYXJDb25maWcpIHByaXZhdGUgcmVhZG9ubHkgY2FsZW5kYXJDb25maWc6IENhbGVuZGFyQ29uZmlnKSB7fVxuICogYGBgXG4gKi9cbmV4cG9ydCBjb25zdCB7IENhbGVuZGFyQ29uZmlnLCBDYWxlbmRhckRlZmF1bHRDb25maWcsIGluamVjdENhbGVuZGFyQ29uZmlnLCBwcm92aWRlQ2FsZW5kYXJDb25maWcgfSA9IGNyZWF0ZUNvbmZpZ1Rva2VucyhcbiAgJ0NhbGVuZGFyJyxcbiAgJ0BvZHgvYW5ndWxhci9jb21wb25lbnRzL2NhbGVuZGFyJyxcbiAge1xuICAgIGRpc3BsYXlBZGphY2VudERheXM6IHRydWUsXG4gICAgc2VsZWN0aW9uTW9kZTogQ2FsZW5kYXJTZWxlY3Rpb25Nb2RlLkRhdGUsXG4gICAgeWVhclZpZXc6IHtcbiAgICAgIGl0ZW1zUGVyUm93OiAzLFxuICAgIH0sXG4gICAgeWVhcnNWaWV3OiB7XG4gICAgICBpdGVtc1BlclJvdzogMyxcbiAgICAgIHBhZGRpbmc6IDEwMCxcbiAgICB9LFxuICB9LFxuKTtcbiJdfQ==