@skyux/lookup 5.0.3 → 5.2.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 (72) hide show
  1. package/README.md +0 -1
  2. package/bundles/skyux-lookup-testing.umd.js +11 -15
  3. package/bundles/skyux-lookup.umd.js +1267 -841
  4. package/documentation.json +1199 -723
  5. package/esm2015/modules/autocomplete/autocomplete-adapter.service.js +5 -5
  6. package/esm2015/modules/autocomplete/autocomplete-default-search-function.js +9 -8
  7. package/esm2015/modules/autocomplete/autocomplete-input.directive.js +11 -19
  8. package/esm2015/modules/autocomplete/autocomplete-search-async-disabled.pipe.js +19 -0
  9. package/esm2015/modules/autocomplete/autocomplete.component.js +134 -46
  10. package/esm2015/modules/autocomplete/autocomplete.module.js +22 -17
  11. package/esm2015/modules/autocomplete/types/autocomplete-default-search-function-options.js +1 -1
  12. package/esm2015/modules/autocomplete/types/autocomplete-message-type.js +5 -1
  13. package/esm2015/modules/autocomplete/types/autocomplete-message.js +1 -1
  14. package/esm2015/modules/autocomplete/types/autocomplete-search-async-args.js +2 -0
  15. package/esm2015/modules/autocomplete/types/autocomplete-search-async-function.js +2 -0
  16. package/esm2015/modules/autocomplete/types/autocomplete-search-async-result-display-type.js +2 -0
  17. package/esm2015/modules/autocomplete/types/autocomplete-search-async-result.js +2 -0
  18. package/esm2015/modules/autocomplete/types/autocomplete-search-function-filter.js +1 -1
  19. package/esm2015/modules/autocomplete/types/autocomplete-search-function.js +1 -1
  20. package/esm2015/modules/autocomplete/types/autocomplete-show-more-args.js +1 -1
  21. package/esm2015/modules/country-field/country-field.component.js +31 -39
  22. package/esm2015/modules/country-field/country-field.module.js +9 -13
  23. package/esm2015/modules/country-field/types/country.js +1 -1
  24. package/esm2015/modules/lookup/lookup-adapter.service.js +4 -4
  25. package/esm2015/modules/lookup/lookup-autocomplete-adapter.js +15 -9
  26. package/esm2015/modules/lookup/lookup-item-selected.pipe.js +16 -0
  27. package/esm2015/modules/lookup/lookup-show-more-async-modal.component.js +184 -0
  28. package/esm2015/modules/lookup/lookup-show-more-modal.component.js +54 -38
  29. package/esm2015/modules/lookup/lookup.component.js +114 -68
  30. package/esm2015/modules/lookup/lookup.module.js +22 -14
  31. package/esm2015/modules/lookup/types/lookup-add-click-callback-args.js +1 -1
  32. package/esm2015/modules/lookup/types/lookup-add-click-event-args.js +1 -1
  33. package/esm2015/modules/lookup/types/lookup-select-mode.js +1 -1
  34. package/esm2015/modules/lookup/types/lookup-show-more-config.js +1 -1
  35. package/esm2015/modules/lookup/types/lookup-show-more-custom-picker.js +1 -1
  36. package/esm2015/modules/lookup/types/lookup-show-more-native-picker-async-context.js +7 -0
  37. package/esm2015/modules/lookup/types/lookup-show-more-native-picker-config.js +1 -1
  38. package/esm2015/modules/lookup/types/lookup-show-more-native-picker-context.js +1 -1
  39. package/esm2015/modules/search/search-adapter.service.js +6 -5
  40. package/esm2015/modules/search/search.component.js +35 -35
  41. package/esm2015/modules/search/search.module.js +9 -13
  42. package/esm2015/modules/shared/sky-lookup-resources.module.js +43 -12
  43. package/esm2015/modules/shared/sky-lookup-string-utils.js +8 -0
  44. package/esm2015/polyfills.js +4 -3
  45. package/esm2015/public-api.js +4 -1
  46. package/esm2015/testing/country-field/country-field-fixture.js +2 -2
  47. package/esm2015/testing/country-field/country-field-testing.module.js +6 -8
  48. package/esm2015/testing/search/search-fixture.js +1 -1
  49. package/esm2015/testing/search/search-testing.module.js +6 -8
  50. package/fesm2015/skyux-lookup-testing.js +11 -15
  51. package/fesm2015/skyux-lookup-testing.js.map +1 -1
  52. package/fesm2015/skyux-lookup.js +706 -317
  53. package/fesm2015/skyux-lookup.js.map +1 -1
  54. package/modules/autocomplete/autocomplete-search-async-disabled.pipe.d.ts +11 -0
  55. package/modules/autocomplete/autocomplete.component.d.ts +18 -2
  56. package/modules/autocomplete/autocomplete.module.d.ts +8 -7
  57. package/modules/autocomplete/types/autocomplete-message-type.d.ts +5 -1
  58. package/modules/autocomplete/types/autocomplete-search-async-args.d.ts +35 -0
  59. package/modules/autocomplete/types/autocomplete-search-async-function.d.ts +4 -0
  60. package/modules/autocomplete/types/autocomplete-search-async-result-display-type.d.ts +1 -0
  61. package/modules/autocomplete/types/autocomplete-search-async-result.d.ts +25 -0
  62. package/modules/lookup/lookup-autocomplete-adapter.d.ts +4 -2
  63. package/modules/lookup/lookup-item-selected.pipe.d.ts +7 -0
  64. package/modules/lookup/lookup-show-more-async-modal.component.d.ts +49 -0
  65. package/modules/lookup/lookup.component.d.ts +3 -0
  66. package/modules/lookup/lookup.module.d.ts +17 -15
  67. package/modules/lookup/types/lookup-show-more-native-picker-async-context.d.ts +17 -0
  68. package/modules/shared/sky-lookup-string-utils.d.ts +5 -0
  69. package/package.json +12 -12
  70. package/public-api.d.ts +3 -0
  71. package/bundles/skyux-lookup-testing.umd.js.map +0 -1
  72. package/bundles/skyux-lookup.umd.js.map +0 -1
@@ -0,0 +1,11 @@
1
+ import { EventEmitter, PipeTransform } from '@angular/core';
2
+ import { SkyAutocompleteSearchAsyncArgs } from './types/autocomplete-search-async-args';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * @internal
6
+ */
7
+ export declare class SkyAutcompleteSearchAsyncDisabledPipe implements PipeTransform {
8
+ transform(searchAsync: EventEmitter<SkyAutocompleteSearchAsyncArgs>, searchAsyncDisabled: boolean): boolean;
9
+ static ɵfac: i0.ɵɵFactoryDeclaration<SkyAutcompleteSearchAsyncDisabledPipe, never>;
10
+ static ɵpipe: i0.ɵɵPipeDeclaration<SkyAutcompleteSearchAsyncDisabledPipe, "skyAutocompleteSearchAsyncDisabled">;
11
+ }
@@ -8,6 +8,7 @@ import { SkyAutocompleteSearchFunctionFilter } from './types/autocomplete-search
8
8
  import { SkyAutocompleteSelectionChange } from './types/autocomplete-selection-change';
9
9
  import { SkyAutocompleteShowMoreArgs } from './types/autocomplete-show-more-args';
10
10
  import { SkyAutocompleteAdapterService } from './autocomplete-adapter.service';
11
+ import { SkyAutocompleteSearchAsyncArgs } from './types/autocomplete-search-async-args';
11
12
  import * as i0 from "@angular/core";
12
13
  /**
13
14
  * @internal
@@ -118,6 +119,12 @@ export declare class SkyAutocompleteComponent implements OnDestroy, AfterContent
118
119
  * @default No matches found
119
120
  */
120
121
  noResultsFoundText: string;
122
+ /**
123
+ * @internal
124
+ * Allows async search to be disabled even when a listener is specified for
125
+ * the `searchAsync` output.
126
+ */
127
+ searchAsyncDisabled: boolean;
121
128
  /**
122
129
  * @internal
123
130
  * Fires when users select the button to add options to the data source.
@@ -132,13 +139,16 @@ export declare class SkyAutocompleteComponent implements OnDestroy, AfterContent
132
139
  * Fires when users select items in the dropdown list.
133
140
  */
134
141
  get selectionChange(): EventEmitter<SkyAutocompleteSelectionChange>;
142
+ searchAsync: EventEmitter<SkyAutocompleteSearchAsyncArgs>;
135
143
  get searchResults(): SkyAutocompleteSearchResult[];
136
- get highlightText(): string;
144
+ get highlightText(): string[];
137
145
  isOpen: boolean;
138
146
  resultsListId: string;
139
147
  resultsWrapperId: string;
140
148
  searchText: string;
141
149
  get showActionsArea(): boolean;
150
+ isSearchingAsync: boolean;
151
+ searchResultsCount: number | undefined;
142
152
  private defaultSearchResultTemplate;
143
153
  private set inputDirective(value);
144
154
  private get inputDirective();
@@ -160,6 +170,7 @@ export declare class SkyAutocompleteComponent implements OnDestroy, AfterContent
160
170
  * elements provided in the consumer's own template.
161
171
  */
162
172
  private overlayFocusableElements;
173
+ private currentSearchSub;
163
174
  private _data;
164
175
  private _debounceTime;
165
176
  private _descriptorProperty;
@@ -186,6 +197,11 @@ export declare class SkyAutocompleteComponent implements OnDestroy, AfterContent
186
197
  isElementFocused(ref: HTMLElement): boolean;
187
198
  private searchTextChanged;
188
199
  private performSearch;
200
+ private cancelCurrentSearch;
201
+ /**
202
+ * Returns the text to highlight based on exact matches, case-insensitive matches, and matches for corresponding diacritical characters (a will match à).
203
+ */
204
+ private getHighlightText;
189
205
  private selectSearchResultById;
190
206
  private openDropdown;
191
207
  private closeDropdown;
@@ -202,6 +218,6 @@ export declare class SkyAutocompleteComponent implements OnDestroy, AfterContent
202
218
  private removeFocusedClass;
203
219
  private addFocusedClass;
204
220
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyAutocompleteComponent, [null, null, null, null, null, { optional: true; }]>;
205
- static ɵcmp: i0.ɵɵComponentDeclaration<SkyAutocompleteComponent, "sky-autocomplete", never, { "ariaLabelledBy": "ariaLabelledBy"; "data": "data"; "debounceTime": "debounceTime"; "descriptorProperty": "descriptorProperty"; "enableShowMore": "enableShowMore"; "messageStream": "messageStream"; "wrapperClass": "wrapperClass"; "propertiesToSearch": "propertiesToSearch"; "search": "search"; "searchResultTemplate": "searchResultTemplate"; "searchTextMinimumCharacters": "searchTextMinimumCharacters"; "searchFilters": "searchFilters"; "searchResultsLimit": "searchResultsLimit"; "showAddButton": "showAddButton"; "noResultsFoundText": "noResultsFoundText"; }, { "addClick": "addClick"; "showMoreClick": "showMoreClick"; "selectionChange": "selectionChange"; }, ["inputDirective"], ["*"]>;
221
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkyAutocompleteComponent, "sky-autocomplete", never, { "ariaLabelledBy": "ariaLabelledBy"; "data": "data"; "debounceTime": "debounceTime"; "descriptorProperty": "descriptorProperty"; "enableShowMore": "enableShowMore"; "messageStream": "messageStream"; "wrapperClass": "wrapperClass"; "propertiesToSearch": "propertiesToSearch"; "search": "search"; "searchResultTemplate": "searchResultTemplate"; "searchTextMinimumCharacters": "searchTextMinimumCharacters"; "searchFilters": "searchFilters"; "searchResultsLimit": "searchResultsLimit"; "showAddButton": "showAddButton"; "noResultsFoundText": "noResultsFoundText"; "searchAsyncDisabled": "searchAsyncDisabled"; }, { "addClick": "addClick"; "showMoreClick": "showMoreClick"; "selectionChange": "selectionChange"; "searchAsync": "searchAsync"; }, ["inputDirective"], ["*"]>;
206
222
  }
207
223
  export {};
@@ -1,14 +1,15 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./autocomplete.component";
3
3
  import * as i2 from "./autocomplete-input.directive";
4
- import * as i3 from "@angular/common";
5
- import * as i4 from "@angular/forms";
6
- import * as i5 from "@skyux/core";
7
- import * as i6 from "@skyux/indicators";
8
- import * as i7 from "../shared/sky-lookup-resources.module";
9
- import * as i8 from "@skyux/theme";
4
+ import * as i3 from "./autocomplete-search-async-disabled.pipe";
5
+ import * as i4 from "@angular/common";
6
+ import * as i5 from "@angular/forms";
7
+ import * as i6 from "@skyux/core";
8
+ import * as i7 from "@skyux/indicators";
9
+ import * as i8 from "../shared/sky-lookup-resources.module";
10
+ import * as i9 from "@skyux/theme";
10
11
  export declare class SkyAutocompleteModule {
11
12
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyAutocompleteModule, never>;
12
- static ɵmod: i0.ɵɵNgModuleDeclaration<SkyAutocompleteModule, [typeof i1.SkyAutocompleteComponent, typeof i2.SkyAutocompleteInputDirective], [typeof i3.CommonModule, typeof i4.FormsModule, typeof i5.SkyAffixModule, typeof i6.SkyTextHighlightModule, typeof i6.SkyIconModule, typeof i5.SkyIdModule, typeof i7.SkyLookupResourcesModule, typeof i5.SkyOverlayModule, typeof i8.SkyThemeModule], [typeof i1.SkyAutocompleteComponent, typeof i2.SkyAutocompleteInputDirective]>;
13
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SkyAutocompleteModule, [typeof i1.SkyAutocompleteComponent, typeof i2.SkyAutocompleteInputDirective, typeof i3.SkyAutcompleteSearchAsyncDisabledPipe], [typeof i4.CommonModule, typeof i5.FormsModule, typeof i6.SkyAffixModule, typeof i7.SkyTextHighlightModule, typeof i7.SkyIconModule, typeof i6.SkyIdModule, typeof i8.SkyLookupResourcesModule, typeof i6.SkyNumericModule, typeof i6.SkyOverlayModule, typeof i9.SkyThemeModule, typeof i7.SkyWaitModule], [typeof i1.SkyAutocompleteComponent, typeof i2.SkyAutocompleteInputDirective]>;
13
14
  static ɵinj: i0.ɵɵInjectorDeclaration<SkyAutocompleteModule>;
14
15
  }
@@ -5,5 +5,9 @@ export declare enum SkyAutocompleteMessageType {
5
5
  /**
6
6
  * Closes the dropdown.
7
7
  */
8
- CloseDropdown = 0
8
+ CloseDropdown = 0,
9
+ /**
10
+ * Repositions the dropdown.
11
+ */
12
+ RepositionDropdown = 1
9
13
  }
@@ -0,0 +1,35 @@
1
+ import { SkyAutocompleteSearchAsyncResult } from './autocomplete-search-async-result';
2
+ import { Observable } from 'rxjs';
3
+ import { AutocompleteSearchAsyncResultDisplayType } from './autocomplete-search-async-result-display-type';
4
+ /**
5
+ * Arguments passed when an asynchronous search is executed from the
6
+ * autocomplete or lookup component.
7
+ */
8
+ export interface SkyAutocompleteSearchAsyncArgs {
9
+ /**
10
+ * The search text entered by the user.
11
+ */
12
+ searchText: string;
13
+ /**
14
+ * How the search results will be displayed. Use this value to determine
15
+ * how many results to return.
16
+ */
17
+ displayType: AutocompleteSearchAsyncResultDisplayType;
18
+ /**
19
+ * The offset index of the first result to return. When search is executed
20
+ * as a result of an infinite scroll event, for example, offset will be set
21
+ * to the number of items already displayed.
22
+ */
23
+ offset: number;
24
+ /**
25
+ * A continuation token which can be set and then will be passed back with any future searches.
26
+ * This is helpful for applications which utilize a token instead of an offset when fetching data.
27
+ */
28
+ continuationData?: unknown;
29
+ /**
30
+ * An Observable representing the search results. Consumers should set this
31
+ * when the event fires so the autocomplete or lookup component can subscribe
32
+ * to it and then display the results.
33
+ */
34
+ result?: Observable<SkyAutocompleteSearchAsyncResult>;
35
+ }
@@ -0,0 +1,4 @@
1
+ import { Observable } from 'rxjs';
2
+ import { SkyAutocompleteSearchAsyncArgs } from './autocomplete-search-async-args';
3
+ import { SkyAutocompleteSearchAsyncResult } from './autocomplete-search-async-result';
4
+ export declare type SkyAutocompleteSearchAsyncFunction = (args: SkyAutocompleteSearchAsyncArgs) => Observable<SkyAutocompleteSearchAsyncResult>;
@@ -0,0 +1 @@
1
+ export declare type AutocompleteSearchAsyncResultDisplayType = 'popover' | 'modal';
@@ -0,0 +1,25 @@
1
+ /**
2
+ * The result of searching for items to display in an autocomplete or lookup field.
3
+ */
4
+ export interface SkyAutocompleteSearchAsyncResult {
5
+ /**
6
+ * Data provided on "load more" search result requests. Use this property for
7
+ * information such as a continuation token for paged database queries.
8
+ */
9
+ continuationData?: unknown;
10
+ /**
11
+ * Indicates whether there are more results that match the search criteria.
12
+ */
13
+ hasMore?: boolean;
14
+ /**
15
+ * A list of items matching the search criteria. When there are more items that match
16
+ * the search criteria, set the `hasMore` property to `true` more records can be lazy-loaded
17
+ * as the user scrolls through the search results.
18
+ */
19
+ items: unknown[];
20
+ /**
21
+ * The total number of records that match the search criteria, including items not returned in
22
+ * the current list of items.
23
+ */
24
+ totalCount: number;
25
+ }
@@ -1,4 +1,5 @@
1
- import { TemplateRef } from '@angular/core';
1
+ import { EventEmitter, TemplateRef } from '@angular/core';
2
+ import { SkyAutocompleteSearchAsyncArgs } from '../autocomplete/types/autocomplete-search-async-args';
2
3
  import { SkyAutocompleteSearchFunction } from '../autocomplete/types/autocomplete-search-function';
3
4
  import { SkyAutocompleteSearchFunctionFilter } from '../autocomplete/types/autocomplete-search-function-filter';
4
5
  import * as i0 from "@angular/core";
@@ -59,9 +60,10 @@ export declare class SkyLookupAutocompleteAdapter {
59
60
  * list. By default, the lookup component displays all matching results.
60
61
  */
61
62
  searchResultsLimit: number;
63
+ searchAsync: EventEmitter<SkyAutocompleteSearchAsyncArgs>;
62
64
  private _descriptorProperty;
63
65
  private _propertiesToSearch;
64
66
  private _search;
65
67
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyLookupAutocompleteAdapter, never>;
66
- static ɵdir: i0.ɵɵDirectiveDeclaration<SkyLookupAutocompleteAdapter, never, never, { "debounceTime": "debounceTime"; "descriptorProperty": "descriptorProperty"; "propertiesToSearch": "propertiesToSearch"; "search": "search"; "searchResultTemplate": "searchResultTemplate"; "searchTextMinimumCharacters": "searchTextMinimumCharacters"; "searchFilters": "searchFilters"; "searchResultsLimit": "searchResultsLimit"; }, {}, never>;
68
+ static ɵdir: i0.ɵɵDirectiveDeclaration<SkyLookupAutocompleteAdapter, never, never, { "debounceTime": "debounceTime"; "descriptorProperty": "descriptorProperty"; "propertiesToSearch": "propertiesToSearch"; "search": "search"; "searchResultTemplate": "searchResultTemplate"; "searchTextMinimumCharacters": "searchTextMinimumCharacters"; "searchFilters": "searchFilters"; "searchResultsLimit": "searchResultsLimit"; }, { "searchAsync": "searchAsync"; }, never>;
67
69
  }
@@ -0,0 +1,7 @@
1
+ import { PipeTransform } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export declare class SkyLookupItemSelectedPipe implements PipeTransform {
4
+ transform(id: unknown, selectedIdMap: Map<unknown, unknown>): boolean;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<SkyLookupItemSelectedPipe, never>;
6
+ static ɵpipe: i0.ɵɵPipeDeclaration<SkyLookupItemSelectedPipe, "skyLookupItemSelected">;
7
+ }
@@ -0,0 +1,49 @@
1
+ import { ChangeDetectorRef, OnDestroy, OnInit } from '@angular/core';
2
+ import { SkyModalInstance } from '@skyux/modals';
3
+ import { Subject } from 'rxjs';
4
+ import { SkyLookupShowMoreNativePickerAsyncContext } from './types/lookup-show-more-native-picker-async-context';
5
+ import * as i0 from "@angular/core";
6
+ /**
7
+ * @internal
8
+ * Internal component to implement the native picker.
9
+ */
10
+ export declare class SkyLookupShowMoreAsyncModalComponent implements OnInit, OnDestroy {
11
+ modalInstance: SkyModalInstance;
12
+ context: SkyLookupShowMoreNativePickerAsyncContext;
13
+ private changeDetector;
14
+ /**
15
+ * @internal
16
+ * Fires when users select the button to add new options to the list.
17
+ */
18
+ addClick: Subject<void>;
19
+ items: unknown[];
20
+ displayedItems: unknown[];
21
+ onlyShowSelected: boolean;
22
+ searchText: string;
23
+ isSearching: boolean;
24
+ hasMoreItems: boolean;
25
+ isLoadingMore: boolean;
26
+ selectedIdMap: Map<unknown, unknown>;
27
+ private continuationData;
28
+ private offset;
29
+ private ngUnsubscribe;
30
+ private currentSearchSub;
31
+ constructor(modalInstance: SkyModalInstance, context: SkyLookupShowMoreNativePickerAsyncContext, changeDetector: ChangeDetectorRef);
32
+ ngOnInit(): void;
33
+ ngOnDestroy(): void;
34
+ addButtonClicked(): void;
35
+ clearAll(): void;
36
+ itemClick(selectedItem: any): void;
37
+ onItemSelect(newSelectState: boolean, itemToSelect: any): void;
38
+ searchApplied(searchText: string): void;
39
+ selectAll(): void;
40
+ infiniteScrollEnd(): void;
41
+ save(): void;
42
+ private loadSearchResults;
43
+ private createInitialSelectedItemsMap;
44
+ private performSearch;
45
+ private updateDisplayedItems;
46
+ private cancelCurrentSearch;
47
+ static ɵfac: i0.ɵɵFactoryDeclaration<SkyLookupShowMoreAsyncModalComponent, never>;
48
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkyLookupShowMoreAsyncModalComponent, "sky-lookup-show-more-async-modal", never, {}, {}, never, never>;
49
+ }
@@ -15,6 +15,7 @@ import { SkyLookupAdapterService } from './lookup-adapter.service';
15
15
  import { SkyLookupAddClickEventArgs } from './types/lookup-add-click-event-args';
16
16
  import { SkyLookupSelectModeType } from './types/lookup-select-mode-type';
17
17
  import { SkyLookupShowMoreConfig } from './types/lookup-show-more-config';
18
+ import { SkyAutocompleteSearchAsyncArgs } from '../autocomplete/types/autocomplete-search-async-args';
18
19
  import * as i0 from "@angular/core";
19
20
  export declare class SkyLookupComponent extends SkyLookupAutocompleteAdapter implements OnInit, AfterViewInit, OnDestroy, ControlValueAccessor {
20
21
  private changeDetector;
@@ -133,7 +134,9 @@ export declare class SkyLookupComponent extends SkyLookupAutocompleteAdapter imp
133
134
  inputKeyup(event: KeyboardEvent): void;
134
135
  onSearchButtonClick(): void;
135
136
  onShowMoreClick(event: SkyAutocompleteShowMoreArgs): void;
137
+ private createNativePickerInstance;
136
138
  openPicker(initialSearch: string): void;
139
+ onSearchAsync(args: SkyAutocompleteSearchAsyncArgs): void;
137
140
  private addToSelected;
138
141
  private addEventListeners;
139
142
  private removeEventListeners;
@@ -1,21 +1,23 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./lookup.component";
3
- import * as i2 from "./lookup-show-more-modal.component";
4
- import * as i3 from "@angular/common";
5
- import * as i4 from "@angular/forms";
6
- import * as i5 from "../autocomplete/autocomplete.module";
7
- import * as i6 from "@skyux/forms";
8
- import * as i7 from "@skyux/indicators";
9
- import * as i8 from "@skyux/lists";
10
- import * as i9 from "@skyux/i18n";
11
- import * as i10 from "../shared/sky-lookup-resources.module";
12
- import * as i11 from "@skyux/modals";
13
- import * as i12 from "../search/search.module";
14
- import * as i13 from "@skyux/theme";
15
- import * as i14 from "@skyux/layout";
16
- import * as i15 from "@skyux/core";
3
+ import * as i2 from "./lookup-item-selected.pipe";
4
+ import * as i3 from "./lookup-show-more-async-modal.component";
5
+ import * as i4 from "./lookup-show-more-modal.component";
6
+ import * as i5 from "@angular/common";
7
+ import * as i6 from "@angular/forms";
8
+ import * as i7 from "../autocomplete/autocomplete.module";
9
+ import * as i8 from "@skyux/forms";
10
+ import * as i9 from "@skyux/indicators";
11
+ import * as i10 from "@skyux/lists";
12
+ import * as i11 from "@skyux/i18n";
13
+ import * as i12 from "../shared/sky-lookup-resources.module";
14
+ import * as i13 from "@skyux/modals";
15
+ import * as i14 from "../search/search.module";
16
+ import * as i15 from "@skyux/theme";
17
+ import * as i16 from "@skyux/layout";
18
+ import * as i17 from "@skyux/core";
17
19
  export declare class SkyLookupModule {
18
20
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyLookupModule, never>;
19
- static ɵmod: i0.ɵɵNgModuleDeclaration<SkyLookupModule, [typeof i1.SkyLookupComponent, typeof i2.SkyLookupShowMoreModalComponent], [typeof i3.CommonModule, typeof i4.FormsModule, typeof i5.SkyAutocompleteModule, typeof i6.SkyCheckboxModule, typeof i7.SkyIconModule, typeof i8.SkyInfiniteScrollModule, typeof i9.SkyI18nModule, typeof i10.SkyLookupResourcesModule, typeof i11.SkyModalModule, typeof i8.SkyRepeaterModule, typeof i12.SkySearchModule, typeof i13.SkyThemeModule, typeof i7.SkyTokensModule, typeof i14.SkyToolbarModule, typeof i15.SkyViewkeeperModule], [typeof i1.SkyLookupComponent]>;
21
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SkyLookupModule, [typeof i1.SkyLookupComponent, typeof i2.SkyLookupItemSelectedPipe, typeof i3.SkyLookupShowMoreAsyncModalComponent, typeof i4.SkyLookupShowMoreModalComponent], [typeof i5.CommonModule, typeof i6.FormsModule, typeof i7.SkyAutocompleteModule, typeof i8.SkyCheckboxModule, typeof i9.SkyIconModule, typeof i10.SkyInfiniteScrollModule, typeof i11.SkyI18nModule, typeof i12.SkyLookupResourcesModule, typeof i13.SkyModalModule, typeof i10.SkyRepeaterModule, typeof i14.SkySearchModule, typeof i15.SkyThemeModule, typeof i9.SkyTokensModule, typeof i16.SkyToolbarModule, typeof i17.SkyViewkeeperModule, typeof i9.SkyWaitModule], [typeof i1.SkyLookupComponent]>;
20
22
  static ɵinj: i0.ɵɵInjectorDeclaration<SkyLookupModule>;
21
23
  }
@@ -0,0 +1,17 @@
1
+ import { SkyAutocompleteSearchAsyncFunction } from '../../autocomplete/types/autocomplete-search-async-function';
2
+ import { SkyLookupSelectModeType } from './lookup-select-mode-type';
3
+ import { SkyLookupShowMoreNativePickerConfig } from './lookup-show-more-native-picker-config';
4
+ /**
5
+ * @internal
6
+ * Context for the show more native picker. These values are provided by the lookup component.
7
+ */
8
+ export declare class SkyLookupShowMoreNativePickerAsyncContext {
9
+ descriptorProperty: string;
10
+ idProperty: string;
11
+ initialSearch: string;
12
+ initialValue: unknown[];
13
+ searchAsync: SkyAutocompleteSearchAsyncFunction;
14
+ selectMode: SkyLookupSelectModeType;
15
+ showAddButton: boolean;
16
+ userConfig: SkyLookupShowMoreNativePickerConfig;
17
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Removes diacritical characters from strings and replaces them with their normalized equivalent.
3
+ * For example: è becomes e, Å becomes A.
4
+ */
5
+ export declare function normalizeDiacritics(value: string): string;
package/package.json CHANGED
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "@skyux/lookup",
3
- "version": "5.0.3",
3
+ "version": "5.2.0",
4
4
  "peerDependencies": {
5
- "@angular/common": "^12.2.10",
6
- "@angular/core": "^12.2.10",
7
- "@angular/router": "^12.2.10",
8
- "@skyux/core": "^5.0.0",
9
- "@skyux/modals": "^5.0.1",
10
- "@skyux/forms": "^5.0.0",
11
- "@skyux/i18n": "^5.0.0",
12
- "@skyux/indicators": "^5.0.0",
13
- "@skyux/layout": "^5.0.0",
14
- "@skyux/lists": "^5.0.0",
15
- "@skyux/theme": "^5.0.2"
5
+ "@angular/common": "^12.2.15",
6
+ "@angular/core": "^12.2.15",
7
+ "@angular/router": "^12.2.15",
8
+ "@skyux/core": "^5.2.2",
9
+ "@skyux/modals": "^5.0.2",
10
+ "@skyux/forms": "^5.0.2",
11
+ "@skyux/i18n": "^5.0.1",
12
+ "@skyux/indicators": "^5.1.2",
13
+ "@skyux/layout": "^5.2.0",
14
+ "@skyux/lists": "^5.0.4",
15
+ "@skyux/theme": "^5.0.4"
16
16
  },
17
17
  "dependencies": {
18
18
  "intl-tel-input": "14.1.0",
package/public-api.d.ts CHANGED
@@ -1,5 +1,8 @@
1
1
  export * from './modules/autocomplete/types/autocomplete-default-search-function-options';
2
2
  export * from './modules/autocomplete/types/autocomplete-input-text-change';
3
+ export * from './modules/autocomplete/types/autocomplete-search-async-args';
4
+ export * from './modules/autocomplete/types/autocomplete-search-async-result';
5
+ export * from './modules/autocomplete/types/autocomplete-search-async-result-display-type';
3
6
  export * from './modules/autocomplete/types/autocomplete-search-function';
4
7
  export * from './modules/autocomplete/types/autocomplete-search-function-filter';
5
8
  export * from './modules/autocomplete/types/autocomplete-search-function-response';
@@ -1 +0,0 @@
1
- {"version":3,"file":"skyux-lookup-testing.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/lookup/testing/src/country-field/country-field-fixture.ts","../../../projects/lookup/testing/src/country-field/country-field-testing.module.ts","../../../projects/lookup/testing/src/search/search-fixture.ts","../../../projects/lookup/testing/src/search/search-testing.module.ts","../../../projects/lookup/testing/src/skyux-lookup-testing.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import {\n DebugElement\n} from '@angular/core';\n\nimport {\n ComponentFixture\n} from '@angular/core/testing';\n\nimport {\n By\n} from '@angular/platform-browser';\n\nimport {\n SkyAppTestUtility\n} from '@skyux-sdk/testing';\n\n/**\n * Allows interaction with a SKY UX country field component.\n */\nexport class SkyCountryFieldFixture {\n private debugEl: DebugElement;\n\n /**\n * The value of the input field's autocomplete attribute.\n */\n public get autocompleteAttribute(): string {\n return this.getInputElement().getAttribute('autocomplete');\n }\n\n /**\n * A flag indicating if the country flag is currently visible.\n * The flag will be visible only if a selection has been made\n * and if the hideSelectedCountryFlag option is false.\n */\n public get countryFlagIsVisible(): boolean {\n const flag = this.getCountryFlag();\n return flag !== null;\n }\n\n /**\n * A flag indicating whether or not the input has been disabled.\n */\n public get disabled(): boolean {\n return this.getInputElement().disabled;\n }\n\n /**\n * The value of the input field.\n */\n public get searchText(): string {\n return this.getInputElement().value;\n }\n\n constructor(\n private fixture: ComponentFixture<any>,\n skyTestId: string\n ) {\n this.debugEl = SkyAppTestUtility.getDebugElementByTestId(fixture, skyTestId, 'sky-country-field');\n }\n\n /**\n * Enters the search text into the input field displaying search results, but making no selection.\n * @param searchText The name of the country to select.\n * @returns The list of country names matching the search text.\n */\n public async search(searchText: string): Promise<string[]> {\n const resultNodes = await this.searchAndGetResults(searchText, this.fixture);\n const resultArray = Array.prototype.slice.call(resultNodes);\n const results = resultArray.map((result: HTMLElement) => {\n const countryNameEl = result.querySelector('.sky-highlight-mark');\n const countryName = SkyAppTestUtility.getText(countryNameEl);\n return countryName;\n });\n\n this.fixture.detectChanges();\n await this.fixture.whenStable();\n\n return results;\n }\n\n /**\n * Enters the search text into the input field and selects the first result (if any).\n * @param searchText The name of the country to select.\n */\n public async searchAndSelectFirstResult(searchText: string): Promise<void> {\n await this.searchAndSelect(searchText, 0, this.fixture);\n\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n\n /**\n * Clears the country selection and input field.\n */\n public clear(): Promise<void> {\n this.enterSearch('', this.fixture);\n\n this.fixture.detectChanges();\n return this.fixture.whenStable();\n }\n\n //#region helpers\n\n private getCountryFlag(): DebugElement {\n return this.debugEl.query(By.css('.sky-country-field-flag'));\n }\n\n private getAutocompleteElement(): HTMLElement {\n return document.querySelector('.sky-autocomplete-results') as HTMLElement;\n }\n\n private getInputElement(): HTMLTextAreaElement {\n const debugEl = this.debugEl.query(By.css('textarea'));\n return debugEl.nativeElement as HTMLTextAreaElement;\n }\n\n private blurInput(fixture: ComponentFixture<any>): Promise<void> {\n SkyAppTestUtility.fireDomEvent(this.getInputElement(), 'blur');\n fixture.detectChanges();\n return fixture.whenStable();\n }\n\n private enterSearch(\n newValue: string,\n fixture: ComponentFixture<any>\n ): Promise<void> {\n const inputElement = this.getInputElement();\n inputElement.value = newValue;\n SkyAppTestUtility.fireDomEvent(inputElement, 'keyup');\n SkyAppTestUtility.fireDomEvent(inputElement, 'input');\n fixture.detectChanges();\n return fixture.whenStable();\n }\n\n private async searchAndGetResults(\n newValue: string,\n fixture: ComponentFixture<any>\n ): Promise<NodeListOf<HTMLElement>> {\n await this.enterSearch(newValue, fixture);\n fixture.detectChanges();\n await fixture.whenStable();\n return this.getAutocompleteElement().querySelectorAll('.sky-autocomplete-result');\n }\n\n private async searchAndSelect(\n newValue: string,\n index: number,\n fixture: ComponentFixture<any>\n ): Promise<void> {\n const inputElement = this.getInputElement();\n const searchResults = await this.searchAndGetResults(newValue, fixture);\n\n if (searchResults.length < (index + 1)) {\n throw new Error('Index out of range for results');\n }\n\n // Note: the ordering of these events is important!\n SkyAppTestUtility.fireDomEvent(inputElement, 'change');\n SkyAppTestUtility.fireDomEvent(searchResults[index], 'mousedown');\n this.blurInput(fixture);\n }\n\n //#endregion helpers\n}\n","import {\n NgModule\n} from '@angular/core';\n\nimport {\n SkyCountryFieldModule\n} from '@skyux/lookup';\n\n@NgModule({\n exports: [\n SkyCountryFieldModule\n ]\n})\nexport class SkyCountryFieldTestingModule { }\n","import {\n ComponentFixture\n} from '@angular/core/testing';\n\nimport {\n DebugElement\n} from '@angular/core';\n\nimport {\n By\n} from '@angular/platform-browser';\n\nimport {\n SkyAppTestUtility\n} from '@skyux-sdk/testing';\n\n/**\n * Allows interaction with a SKY UX search component.\n */\nexport class SkySearchFixture {\n\n /**\n * Gets the search's current text.\n */\n public get searchText(): string {\n return this.getInputEl().nativeElement.value;\n }\n\n /**\n * Gets the search's current placeholder text.\n */\n public get placeholderText(): string {\n return this.getInputEl().nativeElement.placeholder;\n }\n\n private debugEl: DebugElement;\n\n constructor(\n fixture: ComponentFixture<any>,\n skyTestId: string\n ) {\n this.debugEl = SkyAppTestUtility.getDebugElementByTestId(fixture, skyTestId, 'sky-search');\n }\n\n /**\n * Applies the specified search text, invoking the search.\n * @param searchText The search text to apply. If none is specified, the search's\n * current search text will be applied.\n */\n public apply(searchText?: string) {\n if (searchText) {\n SkyAppTestUtility.setInputValue(this.getInputEl().nativeElement, searchText);\n }\n\n const btnEl = this.getApplyBtnEl();\n\n btnEl.triggerEventHandler('click', {});\n }\n\n /**\n * Clears the current search text. If there is no search text or the search text is\n * not currently applied, an error is thrown.\n */\n public clear() {\n const clearEl = this.debugEl.query(By.css('.sky-input-group-clear'));\n\n if (!SkyAppTestUtility.isVisible(clearEl)) {\n throw new Error(\n 'There currently is no search text or the current search text has not been applied, ' +\n 'so the clear button is not visible.'\n );\n }\n\n const btnEl = this.getClearBtnEl();\n\n btnEl.triggerEventHandler('click', {});\n }\n\n private getApplyBtnEl(): DebugElement {\n return this.debugEl.query(By.css('.sky-search-btn-apply'));\n }\n\n private getClearBtnEl(): DebugElement {\n return this.debugEl.query(By.css('.sky-search-btn-clear'));\n }\n\n private getInputEl(): DebugElement {\n return this.debugEl.query(By.css('.sky-search-input'));\n }\n\n}\n","import {\n NgModule\n} from '@angular/core';\n\nimport {\n SkySearchModule\n} from '@skyux/lookup';\n\n@NgModule({\n exports: [\n SkySearchModule\n ]\n})\nexport class SkySearchTestingModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["SkyAppTestUtility","By","SkyCountryFieldModule","NgModule","SkySearchModule"],"mappings":"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"}